programmer: Make use of new register_spi_master() API

Pass pointers to dynamically allocated data to register_spi_master().
This way we can avoid some mutable globals.

flashrom-stable: Updated `dirtyjtag_spi` and `dediprog`
                 that were added/refactored earlier.

Change-Id: Id7821f1db3284b7b5b3d0abfd878b979c53870a1
Signed-off-by: Nico Huber <nico.h@gmx.de>
Original-Reviewed-on: https://review.coreboot.org/c/flashrom/+/54067
Original-Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72200
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
diff --git a/dummyflasher.c b/dummyflasher.c
index 01597f9..bddc2a7 100644
--- a/dummyflasher.c
+++ b/dummyflasher.c
@@ -113,7 +113,7 @@
 static uint32_t dummy_chip_readl(const struct flashctx *flash, const chipaddr addr);
 static void dummy_chip_readn(const struct flashctx *flash, uint8_t *buf, const chipaddr addr, size_t len);
 
-static struct spi_master spi_master_dummyflasher = {
+static const struct spi_master spi_master_dummyflasher = {
 	.features	= SPI_MASTER_4BA,
 	.max_data_read	= MAX_DATA_READ_UNLIMITED,
 	.max_data_write	= MAX_DATA_UNSPECIFIED,
@@ -441,7 +441,6 @@
 		return 1;
 	}
 	data->emu_chip = EMULATE_NONE;
-	spi_master_dummyflasher.data = data;
 	par_master_dummy.data = data;
 
 	msg_pspew("%s\n", __func__);
@@ -499,7 +498,7 @@
 		register_par_master(&par_master_dummy,
 				    dummy_buses_supported & BUS_NONSPI);
 	if (dummy_buses_supported & BUS_SPI)
-		register_spi_master(&spi_master_dummyflasher, NULL);
+		register_spi_master(&spi_master_dummyflasher, data);
 
 	return 0;
 }