programmer: Smoothen register_spi_master() API

It was impossible to register a const struct spi_master that would
point to dynamically allocated `data`. Fix that so that we won't
have to create more mutable globals.

Change-Id: I0c753b3db050fb87d4bbe2301a7ead854f28456f
Signed-off-by: Nico Huber <nico.h@gmx.de>
Original-Reviewed-on: https://review.coreboot.org/c/flashrom/+/54066
Original-Reviewed-by: Anastasia Klimchuk <aklm@chromium.org>
Original-Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72179
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
diff --git a/spi.c b/spi.c
index 86141cc..5ee9a24 100644
--- a/spi.c
+++ b/spi.c
@@ -129,7 +129,7 @@
 	return flash->mst->spi.write_aai(flash, buf, start, len);
 }
 
-int register_spi_master(const struct spi_master *mst)
+int register_spi_master(const struct spi_master *mst, void *data)
 {
 	struct registered_master rmst;
 
@@ -146,5 +146,7 @@
 
 	rmst.buses_supported = BUS_SPI;
 	rmst.spi = *mst;
+	if (data)
+		rmst.spi.data = data;
 	return register_master(&rmst);
 }