Let the programmer driver decide how to do AAI transfers

Currently spi_aai_write() is implemented without an abstraction
mechanism for the programmer driver. This adds another function
pointer 'write_aai' to struct spi_programmer, which is set to
default_spi_write_aai (renamed spi_aai_write) for all programmers
for now.

A patch which utilises this abstraction in the dediprog driver will
follow.

Corresponding to flashrom svn r1543.

Signed-off-by: Nico Huber <nico.huber@secunet.com>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
diff --git a/spi.c b/spi.c
index b2d3eb0..62e1430 100644
--- a/spi.c
+++ b/spi.c
@@ -161,11 +161,17 @@
 	}
 }
 
+int spi_aai_write(struct flashctx *flash, uint8_t *buf,
+		  unsigned int start, unsigned int len)
+{
+	return flash->pgm->spi.write_aai(flash, buf, start, len);
+}
+
 int register_spi_programmer(const struct spi_programmer *pgm)
 {
 	struct registered_programmer rpgm;
 
-	if (!pgm->write_256 || !pgm->read || !pgm->command ||
+	if (!pgm->write_aai || !pgm->write_256 || !pgm->read || !pgm->command ||
 	    !pgm->multicommand ||
 	    ((pgm->command == default_spi_send_command) &&
 	     (pgm->multicommand == default_spi_send_multicommand))) {