Subject: [PATCH] mv643xx_eth_pcidev : implement hotplug by matching the Discovery II/III northbridge pci id (Was: + mv643xx_eth_pcidev-implements-hotplug-for-the-marvell-gige-functionality-by-probing-the-northbridge-pci-id.patch added to -mm tree)

From: Sven Luther <[email-masked]>
Date: Tue, 3 Oct 2006 14:33:03 +0200

From: Sven Luther <[email-masked]>

Match the Marvell Discovery II/III northbridge pci id to add hotplug
support for the builtin gigabit ethernet driver (mv643xx_eth).

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

---

On Tue, Sep 19, 2006 at 09:34:10AM -0700, Andrew Morton wrote:
> On Tue, 19 Sep 2006 17:16:11 +0200
> Sven Luther <[email-masked]> wrote:
> 
> > I was wondering if you still had this patch in your tree, and what its status
> > for upstream inclusion where ? 
> 
> It's in Jeff's net driver tree and I assume he plans on merging it into 2.6.19.

Since i couldn't find any trace of this patch either in the -mm tree or the
-netdev one, i am now resubmitting a cleaned up version of this patch.

The patch was originally submitted on october 25 2005, and signed off by :

Signed-off-by: Nicolas DET <[email-masked]>
Signed-off-by: Sven Luther <[email-masked]>
Cc: Jeff Garzik <[email-masked]>
Signed-off-by: Andrew Morton <[email-masked]>

Altough the proper solution to this issue would be to add hotplug support to
the plateform devices through the OF device tree, no support for this has been
added since last year, and with most major distribution having switched to
using udev or something similar, it is important to have a solution for
autoloading this driver. This patch has been in activity in the debian
distribution since last year, and it is possible other distributions use it as
well.

So, i wonder if it would be possible to still add it to 2.6.19, even though
the official schedule is closed, or if not, to add it for 2.6.20 ? 

Friendly,

Sven Luther

--- linux/drivers/net/mv643xx_eth.c.orig	2006-10-03 14:21:33.000000000 +0200
+++ linux/drivers/net/mv643xx_eth.c	2006-10-03 14:23:54.000000000 +0200
@@ -43,6 +43,8 @@
 #include <linux/ethtool.h>
 #include <linux/platform_device.h>
 
+#include <linux/pci.h>
+
 #include <asm/io.h>
 #include <asm/types.h>
 #include <asm/pgtable.h>
@@ -1563,6 +1565,15 @@
 		" and Dale Farnsworth");
 MODULE_DESCRIPTION("Ethernet driver for Marvell MV643XX");
 
+static struct pci_device_id pci_marvell_mv64360[] = {
+	{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL, PCI_DEVICE_ID_MARVELL_MV64360) },
+	{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL, PCI_DEVICE_ID_MARVELL_MV64460) },
+	{ }
+};
+
+MODULE_DEVICE_TABLE(pci, pci_marvell_mv64360);
+
+
 /*
  * The second part is the low level driver of the gigE ethernet ports.
  */