spi: Make 'default_spi_write_aai' the default unless defined

A NULL func pointer is necessary and sufficient for the
condition `NULL func pointer => default_spi_write_aai' as to not
need this explicit specification of 'default'.

Therefore drop the explicit need to specify the 'default_spi_write_aai'
callback function pointer in the spi_master struct. This is a reasonable
default for every other driver in the tree with only a few exceptions.

This simplifies the code and driver development.

flashrom-stable: Updated `dirtyjtag_spi` which was added earlier.

Change-Id: I7f14aaea0edcf0c08cea0e9cd27d58152707fb2a
Signed-off-by: Edward O'Callaghan <quasisec@google.com>
Original-Reviewed-on: https://review.coreboot.org/c/flashrom/+/67479
Original-Reviewed-by: Peter Marheine <pmarheine@chromium.org>
Original-Reviewed-by: Anastasia Klimchuk <aklm@chromium.org>
Original-Reviewed-by: Felix Singer <felixsinger@posteo.net>
Reviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72369
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nico Huber <nico.h@gmx.de>
diff --git a/bitbang_spi.c b/bitbang_spi.c
index f319957..30f6519 100644
--- a/bitbang_spi.c
+++ b/bitbang_spi.c
@@ -77,7 +77,6 @@
 	.multicommand	= default_spi_send_multicommand,
 	.read		= default_spi_read,
 	.write_256	= default_spi_write_256,
-	.write_aai	= default_spi_write_aai,
 };
 
 #if 0 // until it is needed
diff --git a/buspirate_spi.c b/buspirate_spi.c
index 5dee4ed..f4d2f0b 100644
--- a/buspirate_spi.c
+++ b/buspirate_spi.c
@@ -145,7 +145,6 @@
 	.multicommand	= default_spi_send_multicommand,
 	.read		= default_spi_read,
 	.write_256	= default_spi_write_256,
-	.write_aai	= default_spi_write_aai,
 	.shutdown	= buspirate_spi_shutdown,
 };
 
diff --git a/ch341a_spi.c b/ch341a_spi.c
index a3ea93d..b023562 100644
--- a/ch341a_spi.c
+++ b/ch341a_spi.c
@@ -397,7 +397,6 @@
 	.multicommand	= default_spi_send_multicommand,
 	.read		= default_spi_read,
 	.write_256	= default_spi_write_256,
-	.write_aai	= default_spi_write_aai,
 	.shutdown	= ch341a_spi_shutdown,
 };
 
diff --git a/digilent_spi.c b/digilent_spi.c
index cd73c65..a05b958 100644
--- a/digilent_spi.c
+++ b/digilent_spi.c
@@ -322,7 +322,6 @@
 	.multicommand	= default_spi_send_multicommand,
 	.read		= default_spi_read,
 	.write_256	= default_spi_write_256,
-	.write_aai	= default_spi_write_aai,
 	.shutdown	= digilent_spi_shutdown,
 };
 
diff --git a/dirtyjtag_spi.c b/dirtyjtag_spi.c
index 35add46..4002c7c 100644
--- a/dirtyjtag_spi.c
+++ b/dirtyjtag_spi.c
@@ -197,7 +197,6 @@
 	.multicommand	= default_spi_send_multicommand,
 	.read		= default_spi_read,
 	.write_256	= default_spi_write_256,
-	.write_aai	= default_spi_write_aai,
 	.shutdown	= dirtyjtag_spi_shutdown,
 };
 
diff --git a/dummyflasher.c b/dummyflasher.c
index 56ba338..02b75b1 100644
--- a/dummyflasher.c
+++ b/dummyflasher.c
@@ -121,7 +121,6 @@
 	.multicommand	= default_spi_send_multicommand,
 	.read		= default_spi_read,
 	.write_256	= dummy_spi_write_256,
-	.write_aai	= default_spi_write_aai,
 };
 
 static const struct par_master par_master_dummyflasher = {
diff --git a/ft2232_spi.c b/ft2232_spi.c
index 378566e..921672c 100644
--- a/ft2232_spi.c
+++ b/ft2232_spi.c
@@ -295,7 +295,6 @@
 	.multicommand	= ft2232_spi_send_multicommand,
 	.read		= default_spi_read,
 	.write_256	= default_spi_write_256,
-	.write_aai	= default_spi_write_aai,
 	.shutdown	= ft2232_shutdown,
 };
 
diff --git a/ichspi.c b/ichspi.c
index eb90d57..fc3c9a9 100644
--- a/ichspi.c
+++ b/ichspi.c
@@ -1698,7 +1698,6 @@
 	.multicommand	= ich_spi_send_multicommand,
 	.read		= default_spi_read,
 	.write_256	= default_spi_write_256,
-	.write_aai	= default_spi_write_aai,
 };
 
 static const struct spi_master spi_master_ich9 = {
@@ -1708,7 +1707,6 @@
 	.multicommand	= ich_spi_send_multicommand,
 	.read		= default_spi_read,
 	.write_256	= default_spi_write_256,
-	.write_aai	= default_spi_write_aai,
 };
 
 static const struct opaque_master opaque_master_ich_hwseq = {
@@ -2075,7 +2073,6 @@
 	.multicommand	= ich_spi_send_multicommand,
 	.read		= default_spi_read,
 	.write_256	= default_spi_write_256,
-	.write_aai	= default_spi_write_aai,
 };
 
 int via_init_spi(uint32_t mmio_base)
diff --git a/jlink_spi.c b/jlink_spi.c
index 3559882..09c4dbc 100644
--- a/jlink_spi.c
+++ b/jlink_spi.c
@@ -167,7 +167,6 @@
 	.multicommand	= default_spi_send_multicommand,
 	.read		= default_spi_read,
 	.write_256	= default_spi_write_256,
-	.write_aai	= default_spi_write_aai,
 	.features	= SPI_MASTER_4BA,
 	.shutdown	= jlink_spi_shutdown,
 };
diff --git a/linux_spi.c b/linux_spi.c
index c4ba915..17b3900 100644
--- a/linux_spi.c
+++ b/linux_spi.c
@@ -67,7 +67,6 @@
 	.multicommand	= default_spi_send_multicommand,
 	.read		= linux_spi_read,
 	.write_256	= linux_spi_write_256,
-	.write_aai	= default_spi_write_aai,
 	.shutdown	= linux_spi_shutdown,
 };
 
diff --git a/mstarddc_spi.c b/mstarddc_spi.c
index d303e21..2c61d98 100644
--- a/mstarddc_spi.c
+++ b/mstarddc_spi.c
@@ -222,7 +222,6 @@
 	.multicommand	= default_spi_send_multicommand,
 	.read		= default_spi_read,
 	.write_256	= default_spi_write_256,
-	.write_aai	= default_spi_write_aai,
 	.shutdown	= mstarddc_spi_shutdown,
 };
 
diff --git a/ni845x_spi.c b/ni845x_spi.c
index 415b276..0889d35 100644
--- a/ni845x_spi.c
+++ b/ni845x_spi.c
@@ -631,7 +631,6 @@
 	.multicommand	= default_spi_send_multicommand,
 	.read		= default_spi_read,
 	.write_256	= default_spi_write_256,
-	.write_aai	= default_spi_write_aai,
 	.shutdown	= ni845x_spi_shutdown,
 };
 
diff --git a/pickit2_spi.c b/pickit2_spi.c
index 240723c..b402421 100644
--- a/pickit2_spi.c
+++ b/pickit2_spi.c
@@ -349,7 +349,6 @@
 	.multicommand	= default_spi_send_multicommand,
 	.read		= default_spi_read,
 	.write_256	= default_spi_write_256,
-	.write_aai	= default_spi_write_aai,
 	.shutdown	= pickit2_shutdown,
 };
 
diff --git a/sb600spi.c b/sb600spi.c
index 4e954a9..8827fb9 100644
--- a/sb600spi.c
+++ b/sb600spi.c
@@ -68,7 +68,6 @@
 	.multicommand	= default_spi_send_multicommand,
 	.read		= default_spi_read,
 	.write_256	= default_spi_write_256,
-	.write_aai	= default_spi_write_aai,
 };
 
 static struct spi_master spi_master_yangtze = {
@@ -78,7 +77,6 @@
 	.multicommand	= default_spi_send_multicommand,
 	.read		= default_spi_read,
 	.write_256	= default_spi_write_256,
-	.write_aai	= default_spi_write_aai,
 };
 
 static int find_smbus_dev_rev(uint16_t vendor, uint16_t device)
diff --git a/serprog.c b/serprog.c
index 8b2af8a..eb15219 100644
--- a/serprog.c
+++ b/serprog.c
@@ -332,7 +332,6 @@
 	.multicommand	= default_spi_send_multicommand,
 	.read		= default_spi_read,
 	.write_256	= default_spi_write_256,
-	.write_aai	= default_spi_write_aai,
 };
 
 static void serprog_chip_writeb(const struct flashctx *flash, uint8_t val,
diff --git a/spi.c b/spi.c
index b7a7a21..ac79f73 100644
--- a/spi.c
+++ b/spi.c
@@ -126,7 +126,9 @@
 
 int spi_aai_write(struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len)
 {
-	return flash->mst->spi.write_aai(flash, buf, start, len);
+	if (flash->mst->spi.write_aai)
+		return flash->mst->spi.write_aai(flash, buf, start, len);
+	return default_spi_write_aai(flash, buf, start, len);
 }
 
 int register_spi_master(const struct spi_master *mst, void *data)
@@ -140,7 +142,7 @@
 		}
 	}
 
-	if (!mst->write_aai || !mst->write_256 || !mst->read || !mst->command ||
+	if (!mst->write_256 || !mst->read || !mst->command ||
 	    !mst->multicommand ||
 	    ((mst->command == default_spi_send_command) &&
 	     (mst->multicommand == default_spi_send_multicommand))) {
diff --git a/stlinkv3_spi.c b/stlinkv3_spi.c
index f5d31e2..59d9c16 100644
--- a/stlinkv3_spi.c
+++ b/stlinkv3_spi.c
@@ -444,7 +444,6 @@
 	.multicommand	= default_spi_send_multicommand,
 	.read		= default_spi_read,
 	.write_256	= default_spi_write_256,
-	.write_aai	= default_spi_write_aai,
 	.shutdown	= stlinkv3_spi_shutdown,
 };
 
diff --git a/usbblaster_spi.c b/usbblaster_spi.c
index 8f05088..1a26e36 100644
--- a/usbblaster_spi.c
+++ b/usbblaster_spi.c
@@ -209,7 +209,6 @@
 	.multicommand	= default_spi_send_multicommand,
 	.read		= default_spi_read,
 	.write_256	= default_spi_write_256,
-	.write_aai	= default_spi_write_aai,
 };
 
 const struct programmer_entry programmer_usbblaster_spi = {