Subject: [PATCH 2.6.14-rc5 1/1] : mv643xx_eth_pcidev - implements hotplug for the marvell gige functionality by probing the northbridge pci id.

From: Sven Luther <[email-masked]>
Date: Tue, 25 Oct 2005 09:51:59 +0200

Add Marvell gigabit ethernet hotplug through the northbridge pci id support
for the Pegasos machines.

Signed-off-by: Nicolas DET <[email-masked]>
Signed-off-by: Sven Luther <[email-masked]>

---
This patch is not optimal, as the proper way to handling this is to bring full
hotplug support to the platform drivers, but this would be much more invasive
and far reaching a project. This approach matches the marvell discovery
northbridge pci id to load the driver for the builtin gigabit ethernet
function, and is similar of what is done already using the discover module
loading technique. With more and more distributions moving to using hotplug
only to probe for modules to load, this patch becomes necessary.

Friendly,

Sven Luther
diff -Naur a/drivers/net/mv643xx_eth.c b/drivers/net/mv643xx_eth.c
--- a/drivers/net/mv643xx_eth.c	2005-10-25 09:20:50.604386000 +0200
+++ b/drivers/net/mv643xx_eth.c	2005-10-25 09:20:14.596386000 +0200
@@ -36,6 +36,10 @@
 #include <linux/udp.h>
 #include <linux/etherdevice.h>
 
+#ifdef CONFIG_PPC_MULTIPLATFORM
+#include <linux/pci.h>
+#endif
+
 #include <linux/bitops.h>
 #include <linux/delay.h>
 #include <linux/ethtool.h>
@@ -1640,6 +1644,16 @@
 		" and Dale Farnsworth");
 MODULE_DESCRIPTION("Ethernet driver for Marvell MV643XX");
 
+#ifdef CONFIG_PPC_MULTIPLATFORM
+static struct pci_device_id pci_marvell_mv64360[] = {
+	{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL, PCI_DEVICE_ID_MARVELL_MV64360) },
+	{ }
+};
+
+MODULE_DEVICE_TABLE(pci, pci_marvell_mv64360);
+#endif
+
+
 /*
  * The second part is the low level driver of the gigE ethernet ports.
  */