drivers/: Make 'internal_delay' the default unless defined

Drop the explicit need to specify the default 'internal_delay'
callback function pointer in the programmer_entry struct.
This is a reasonable default for every other driver in the
tree with only the two exceptions of ch341a_spi.c and serprog.c.

Thus this simplifies driver development.

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

Change-Id: I17460bc2c0aebcbb48c8dfa052b260991525cc49
Signed-off-by: Edward O'Callaghan <quasisec@google.com>
Original-Reviewed-on: https://review.coreboot.org/c/flashrom/+/67391
Original-Reviewed-by: Peter Marheine <pmarheine@chromium.org>
Original-Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Original-Reviewed-by: Thomas Heijligen <src@posteo.de>
Original-Reviewed-by: Felix Singer <felixsinger@posteo.net>
Original-Reviewed-by: Nikolai Artemiev <nartemiev@google.com>
Reviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72359
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nico Huber <nico.h@gmx.de>
diff --git a/flashrom.c b/flashrom.c
index d08c130..c434cff 100644
--- a/flashrom.c
+++ b/flashrom.c
@@ -223,8 +223,12 @@
 
 void programmer_delay(unsigned int usecs)
 {
-	if (usecs > 0)
-		programmer->delay(usecs);
+	if (usecs > 0) {
+		if (programmer->delay)
+			programmer->delay(usecs);
+		else
+			internal_delay(usecs);
+	}
 }
 
 int read_memmapped(struct flashctx *flash, uint8_t *buf, unsigned int start,
@@ -1416,10 +1420,6 @@
 			msg_gerr("Programmer %s does not have a valid init function!\n", p->name);
 			ret = 1;
 		}
-		if (p->delay == NULL) {
-			msg_gerr("Programmer %s does not have a valid delay function!\n", p->name);
-			ret = 1;
-		}
 		if (p->map_flash_region == NULL) {
 			msg_gerr("Programmer %s does not have a valid map_flash_region function!\n", p->name);
 			ret = 1;