diff --git a/atahpt.c b/atahpt.c
index 4a37870..0667b05 100644
--- a/atahpt.c
+++ b/atahpt.c
@@ -75,7 +75,7 @@
 	reg32 |= (1 << 24);
 	rpci_write_long(dev, REG_FLASH_ACCESS, reg32);
 
-	register_par_master(&par_master_atahpt, BUS_PARALLEL);
+	register_par_master(&par_master_atahpt, BUS_PARALLEL, NULL);
 
 	return 0;
 }
diff --git a/atapromise.c b/atapromise.c
index c561a3c..881f5f1 100644
--- a/atapromise.c
+++ b/atapromise.c
@@ -140,7 +140,7 @@
 	}
 
 	max_rom_decode.parallel = rom_size;
-	register_par_master(&par_master_atapromise, BUS_PARALLEL);
+	register_par_master(&par_master_atapromise, BUS_PARALLEL, NULL);
 
 	msg_pwarn("Do not use this device as a generic programmer. It will leave anything outside\n"
 		  "the first %zu kB of the flash chip in an undefined state. It works fine for the\n"
diff --git a/atavia.c b/atavia.c
index 7be8959..28a4c4c 100644
--- a/atavia.c
+++ b/atavia.c
@@ -160,7 +160,7 @@
 		return 1;
 	}
 
-	register_par_master(&lpc_master_atavia, BUS_LPC);
+	register_par_master(&lpc_master_atavia, BUS_LPC, NULL);
 
 	return 0;
 }
diff --git a/drkaiser.c b/drkaiser.c
index 379fff9..dd2d68b 100644
--- a/drkaiser.c
+++ b/drkaiser.c
@@ -77,7 +77,7 @@
 		return 1;
 
 	max_rom_decode.parallel = 128 * 1024;
-	register_par_master(&par_master_drkaiser, BUS_PARALLEL);
+	register_par_master(&par_master_drkaiser, BUS_PARALLEL, NULL);
 
 	return 0;
 }
diff --git a/dummyflasher.c b/dummyflasher.c
index bddc2a7..a5eb10d 100644
--- a/dummyflasher.c
+++ b/dummyflasher.c
@@ -496,7 +496,8 @@
 	}
 	if (dummy_buses_supported & BUS_NONSPI)
 		register_par_master(&par_master_dummy,
-				    dummy_buses_supported & BUS_NONSPI);
+				    dummy_buses_supported & BUS_NONSPI,
+				    NULL);
 	if (dummy_buses_supported & BUS_SPI)
 		register_spi_master(&spi_master_dummyflasher, data);
 
diff --git a/gfxnvidia.c b/gfxnvidia.c
index faed11d..ec04a94 100644
--- a/gfxnvidia.c
+++ b/gfxnvidia.c
@@ -104,7 +104,7 @@
 
 	/* Write/erase doesn't work. */
 	programmer_may_write = false;
-	register_par_master(&par_master_gfxnvidia, BUS_PARALLEL);
+	register_par_master(&par_master_gfxnvidia, BUS_PARALLEL, NULL);
 
 	return 0;
 }
diff --git a/internal.c b/internal.c
index ef1921e..d37d802 100644
--- a/internal.c
+++ b/internal.c
@@ -316,7 +316,7 @@
 #endif
 
 	if (internal_buses_supported & BUS_NONSPI)
-		register_par_master(&par_master_internal, internal_buses_supported);
+		register_par_master(&par_master_internal, internal_buses_supported, NULL);
 
 	/* Report if a non-whitelisted laptop is detected that likely uses a legacy bus. */
 	if (is_laptop && !laptop_ok) {
diff --git a/it8212.c b/it8212.c
index 4c7f9ee..2e8af86 100644
--- a/it8212.c
+++ b/it8212.c
@@ -67,7 +67,7 @@
 	rpci_write_long(dev, PCI_ROM_ADDRESS, io_base_addr | 0x01);
 
 	max_rom_decode.parallel = IT8212_MEMMAP_SIZE;
-	register_par_master(&par_master_it8212, BUS_PARALLEL);
+	register_par_master(&par_master_it8212, BUS_PARALLEL, NULL);
 	return 0;
 }
 
diff --git a/nic3com.c b/nic3com.c
index cfde320..ffebe8a 100644
--- a/nic3com.c
+++ b/nic3com.c
@@ -120,7 +120,7 @@
 		return 1;
 
 	max_rom_decode.parallel = 128 * 1024;
-	register_par_master(&par_master_nic3com, BUS_PARALLEL);
+	register_par_master(&par_master_nic3com, BUS_PARALLEL, NULL);
 
 	return 0;
 }
diff --git a/nicintel.c b/nicintel.c
index f4cd39e..50dbfb5 100644
--- a/nicintel.c
+++ b/nicintel.c
@@ -99,7 +99,7 @@
 	pci_rmmio_writew(0x0001, nicintel_control_bar + CSR_FCR);
 
 	max_rom_decode.parallel = NICINTEL_MEMMAP_SIZE;
-	register_par_master(&par_master_nicintel, BUS_PARALLEL);
+	register_par_master(&par_master_nicintel, BUS_PARALLEL, NULL);
 
 	return 0;
 }
diff --git a/nicnatsemi.c b/nicnatsemi.c
index 71aed2d..d1d13e5 100644
--- a/nicnatsemi.c
+++ b/nicnatsemi.c
@@ -71,7 +71,7 @@
 	 * functions below wants to be 0x0000FFFF.
 	 */
 	max_rom_decode.parallel = 131072;
-	register_par_master(&par_master_nicnatsemi, BUS_PARALLEL);
+	register_par_master(&par_master_nicnatsemi, BUS_PARALLEL, NULL);
 
 	return 0;
 }
diff --git a/nicrealtek.c b/nicrealtek.c
index b01df72..16ede42 100644
--- a/nicrealtek.c
+++ b/nicrealtek.c
@@ -86,7 +86,7 @@
 	if (register_shutdown(nicrealtek_shutdown, NULL))
 		return 1;
 
-	register_par_master(&par_master_nicrealtek, BUS_PARALLEL);
+	register_par_master(&par_master_nicrealtek, BUS_PARALLEL, NULL);
 
 	return 0;
 }
diff --git a/programmer.c b/programmer.c
index d7f1968..943886b 100644
--- a/programmer.c
+++ b/programmer.c
@@ -81,7 +81,8 @@
 }
 
 int register_par_master(const struct par_master *mst,
-			    const enum chipbustype buses)
+			    const enum chipbustype buses,
+			    void *data)
 {
 	struct registered_master rmst;
 	if (!mst->chip_writeb || !mst->chip_writew || !mst->chip_writel ||
@@ -95,6 +96,8 @@
 
 	rmst.buses_supported = buses;
 	rmst.par = *mst;
+	if (data)
+		rmst.par.data = data;
 	return register_master(&rmst);
 }
 
diff --git a/programmer.h b/programmer.h
index f7ce7bc..7134b94 100644
--- a/programmer.h
+++ b/programmer.h
@@ -425,7 +425,7 @@
 	void (*chip_readn) (const struct flashctx *flash, uint8_t *buf, const chipaddr addr, size_t len);
 	void *data;
 };
-int register_par_master(const struct par_master *mst, const enum chipbustype buses);
+int register_par_master(const struct par_master *mst, const enum chipbustype buses, void *data);
 struct registered_master {
 	enum chipbustype buses_supported;
 	union {
diff --git a/satamv.c b/satamv.c
index 319ccce..e3970d7 100644
--- a/satamv.c
+++ b/satamv.c
@@ -148,7 +148,7 @@
 	/* 512 kByte with two 8-bit latches, and
 	 * 4 MByte with additional 3-bit latch. */
 	max_rom_decode.parallel = 4 * 1024 * 1024;
-	register_par_master(&par_master_satamv, BUS_PARALLEL);
+	register_par_master(&par_master_satamv, BUS_PARALLEL, NULL);
 
 	return 0;
 }
diff --git a/satasii.c b/satasii.c
index d396a5d..2c6105e 100644
--- a/satasii.c
+++ b/satasii.c
@@ -100,7 +100,7 @@
 	if ((id != 0x0680) && (!(pci_mmio_readl(sii_bar) & (1 << 26))))
 		msg_pwarn("Warning: Flash seems unconnected.\n");
 
-	register_par_master(&par_master_satasii, BUS_PARALLEL);
+	register_par_master(&par_master_satasii, BUS_PARALLEL, NULL);
 
 	return 0;
 }
diff --git a/serprog.c b/serprog.c
index 2626be1..ab559bb 100644
--- a/serprog.c
+++ b/serprog.c
@@ -706,7 +706,7 @@
 	if (serprog_buses_supported & BUS_SPI)
 		register_spi_master(&spi_master_serprog, NULL);
 	if (serprog_buses_supported & BUS_NONSPI)
-		register_par_master(&par_master_serprog, serprog_buses_supported & BUS_NONSPI);
+		register_par_master(&par_master_serprog, serprog_buses_supported & BUS_NONSPI, NULL);
 	return 0;
 }
 
