aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Brown <broonie@sirena.org.uk>2007-02-19 15:15:40 -0500
committerJeff Garzik <jeff@garzik.org>2007-02-20 11:18:13 -0500
commit6aab44475a1355365f0a24abe6f8eb32185a701e (patch)
tree084fab50438559617142445b80059d901fc81cb8
parent68c90166e4aaa15ddcdd4778ad30bfb8b32534be (diff)
natsemi: Support Aculab E1/T1 PMXc cPCI carrier cards
Aculab E1/T1 PMXc cPCI carrier card cards present a natsemi on the cPCI bus with an oversized EEPROM using a direct MII<->MII connection with no PHY. This patch adds a new device table entry supporting these cards. Signed-Off-By: Mark Brown <broonie@sirena.org.uk> Signed-off-by: Jeff Garzik <jeff@garzik.org>
-rw-r--r--drivers/net/natsemi.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/net/natsemi.c b/drivers/net/natsemi.c
index 4e21f5510b90..adf29dd66798 100644
--- a/drivers/net/natsemi.c
+++ b/drivers/net/natsemi.c
@@ -244,6 +244,9 @@ enum {
244 MII_EN_SCRM = 0x0004, /* enable scrambler (tp) */ 244 MII_EN_SCRM = 0x0004, /* enable scrambler (tp) */
245}; 245};
246 246
247enum {
248 NATSEMI_FLAG_IGNORE_PHY = 0x1,
249};
247 250
248/* array of board data directly indexed by pci_tbl[x].driver_data */ 251/* array of board data directly indexed by pci_tbl[x].driver_data */
249static const struct { 252static const struct {
@@ -251,10 +254,12 @@ static const struct {
251 unsigned long flags; 254 unsigned long flags;
252 unsigned int eeprom_size; 255 unsigned int eeprom_size;
253} natsemi_pci_info[] __devinitdata = { 256} natsemi_pci_info[] __devinitdata = {
257 { "Aculab E1/T1 PMXc cPCI carrier card", NATSEMI_FLAG_IGNORE_PHY, 128 },
254 { "NatSemi DP8381[56]", 0, 24 }, 258 { "NatSemi DP8381[56]", 0, 24 },
255}; 259};
256 260
257static const struct pci_device_id natsemi_pci_tbl[] __devinitdata = { 261static const struct pci_device_id natsemi_pci_tbl[] __devinitdata = {
262 { PCI_VENDOR_ID_NS, 0x0020, 0x12d9, 0x000c, 0, 0, 0 },
258 { PCI_VENDOR_ID_NS, 0x0020, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, 263 { PCI_VENDOR_ID_NS, 0x0020, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },
259 { } /* terminate list */ 264 { } /* terminate list */
260}; 265};
@@ -811,7 +816,10 @@ static int __devinit natsemi_probe1 (struct pci_dev *pdev,
811 np->hands_off = 0; 816 np->hands_off = 0;
812 np->intr_status = 0; 817 np->intr_status = 0;
813 np->eeprom_size = natsemi_pci_info[chip_idx].eeprom_size; 818 np->eeprom_size = natsemi_pci_info[chip_idx].eeprom_size;
814 np->ignore_phy = 0; 819 if (natsemi_pci_info[chip_idx].flags & NATSEMI_FLAG_IGNORE_PHY)
820 np->ignore_phy = 1;
821 else
822 np->ignore_phy = 0;
815 823
816 /* Initial port: 824 /* Initial port:
817 * - If configured to ignore the PHY set up for external. 825 * - If configured to ignore the PHY set up for external.