From: Maxim Levitsky <maximlevitsky@gmail.com>
To: netdev@vger.kernel.org
Cc: linux-kernel@vger.kernel.org,
Maxim Levitsky <maximlevitsky@gmail.com>,
Maxim Levitsky <maxim-levitsky@gmail.com>
Subject: [PATCH 2/6] DMFE: move pci ID definitions into pci_ids.h and clean up the code
Date: Sat, 6 Feb 2010 22:18:58 +0200 [thread overview]
Message-ID: <1265487542-4447-3-git-send-email-maximlevitsky@gmail.com> (raw)
In-Reply-To: <1265487542-4447-1-git-send-email-maximlevitsky@gmail.com>
Signed-off-by: Maxim Levitsky <maxim-levitsky@gmail.com>
---
drivers/net/tulip/dmfe.c | 53 +++++++++++++++++++++++++--------------------
drivers/net/tulip/dmfe.h | 15 +++---------
include/linux/pci_ids.h | 6 +++++
3 files changed, 39 insertions(+), 35 deletions(-)
diff --git a/drivers/net/tulip/dmfe.c b/drivers/net/tulip/dmfe.c
index 158ffc2..ee93651 100644
--- a/drivers/net/tulip/dmfe.c
+++ b/drivers/net/tulip/dmfe.c
@@ -81,6 +81,7 @@
#include <linux/spinlock.h>
#include <linux/crc32.h>
#include <linux/bitops.h>
+#include <linux/pci_ids.h>
#include <asm/processor.h>
#include <linux/io.h>
@@ -143,7 +144,7 @@ static int dmfe_open(struct net_device *dev)
db->PHY_reg4 = 0x1e0;
/* CR6 operation mode decision */
- if (!chkmode || (db->chip_id == PCI_DM9132_ID) ||
+ if (!chkmode || (db->chip_id == PCI_DEVICE_ID_DAVICOM_DM9132) ||
(db->chip_revision >= 0x30)) {
db->cr6_data |= DMFE_TXTH_256;
db->cr0_data = CR0_DEFAULT;
@@ -234,7 +235,7 @@ static void dmfe_hardware_init(struct net_device *dev)
/* RESET Phyxcer Chip by GPR port bit 7 */
outl(0x180, ioaddr + DCR12); /* Let bit 7 output port */
- if (db->chip_id == PCI_DM9009_ID) {
+ if (db->chip_id == PCI_DEVICE_ID_DAVICOM_DM9009) {
outl(0x80, ioaddr + DCR12); /* Issue RESET signal */
mdelay(300); /* Delay 300 ms */
}
@@ -255,7 +256,7 @@ static void dmfe_hardware_init(struct net_device *dev)
dmfe_update_cr6(db->cr6_data, ioaddr);
/* Send setup frame */
- if (db->chip_id == PCI_DM9132_ID)
+ if (db->chip_id == PCI_DEVICE_ID_DAVICOM_DM9132)
dm9132_id_table(dev, dev->mc_count); /* DM9132 */
else
dmfe_send_filter_frame(dev, dev->mc_count); /* DM9102/DM9102A */
@@ -625,7 +626,7 @@ static void dmfe_set_filter_mode(struct net_device *dev)
}
DMFE_DBUG(0, "Set multicast address", dev->mc_count);
- if (db->chip_id == PCI_DM9132_ID)
+ if (db->chip_id == PCI_DEVICE_ID_DAVICOM_DM9132)
dm9132_id_table(dev, dev->mc_count); /* DM9132 */
else
dmfe_send_filter_frame(dev, dev->mc_count); /* DM9102/DM9102A */
@@ -653,7 +654,8 @@ static void dmfe_timer(unsigned long data)
/* Media mode process when Link OK before enter this route */
if (db->first_in_callback == 0) {
db->first_in_callback = 1;
- if (db->chip_type && (db->chip_id == PCI_DM9102_ID)) {
+
+ if (db->chip_type && (db->chip_id == PCI_DEVICE_ID_DAVICOM_DM9102)) {
db->cr6_data &= ~0x40000;
dmfe_update_cr6(db->cr6_data, db->ioaddr);
phy_write(db->ioaddr,
@@ -706,14 +708,16 @@ static void dmfe_timer(unsigned long data)
}
/* Link status check, Dynamic media type change */
- if (db->chip_id == PCI_DM9132_ID)
+ if (db->chip_id == PCI_DEVICE_ID_DAVICOM_DM9132)
tmp_cr12 = inb(db->ioaddr + DCR9 + 3); /* DM9132 */
else
tmp_cr12 = inb(db->ioaddr + DCR12); /* DM9102/DM9102A */
- if (((db->chip_id == PCI_DM9102_ID) &&
+
+ if (((db->chip_id == PCI_DEVICE_ID_DAVICOM_DM9102) &&
(db->chip_revision == 0x30)) ||
- ((db->chip_id == PCI_DM9132_ID) &&
+
+ ((db->chip_id == PCI_DEVICE_ID_DAVICOM_DM9132) &&
(db->chip_revision == 0x10))) {
/* DM9102A Chip */
if (tmp_cr12 & 2)
@@ -1111,7 +1115,7 @@ static u8 dmfe_sense_speed(struct dmfe_board_info *db)
if ((phy_mode & 0x24) == 0x24) {
- if (db->chip_id == PCI_DM9132_ID) /* DM9132 */
+ if (db->chip_id == PCI_DEVICE_ID_DAVICOM_DM9132) /* DM9132 */
phy_mode = phy_read(db->ioaddr,
db->phy_addr, 7, db->chip_id) & 0xf000;
else /* DM9102/DM9102A */
@@ -1164,7 +1168,7 @@ static void dmfe_set_phyxcer(struct dmfe_board_info *db)
dmfe_update_cr6(db->cr6_data, db->ioaddr);
/* DM9009 Chip: Phyxcer reg18 bit12=0 */
- if (db->chip_id == PCI_DM9009_ID) {
+ if (db->chip_id == PCI_DEVICE_ID_DAVICOM_DM9009) {
phy_reg = phy_read(db->ioaddr,
db->phy_addr, 18, db->chip_id) & ~0x1000;
@@ -1196,7 +1200,7 @@ static void dmfe_set_phyxcer(struct dmfe_board_info *db)
break;
}
- if (db->chip_id == PCI_DM9009_ID)
+ if (db->chip_id == PCI_DEVICE_ID_DAVICOM_DM9009)
phy_reg &= 0x61;
}
@@ -1208,7 +1212,7 @@ static void dmfe_set_phyxcer(struct dmfe_board_info *db)
phy_write(db->ioaddr, db->phy_addr, 4, phy_reg, db->chip_id);
/* Restart Auto-Negotiation */
- if (db->chip_type && (db->chip_id == PCI_DM9102_ID))
+ if (db->chip_type && (db->chip_id == PCI_DEVICE_ID_DAVICOM_DM9102))
phy_write(db->ioaddr, db->phy_addr, 0, 0x1800, db->chip_id);
if (!db->chip_type)
phy_write(db->ioaddr, db->phy_addr, 0, 0x1200, db->chip_id);
@@ -1265,7 +1269,7 @@ static void dmfe_process_mode(struct dmfe_board_info *db)
phy_write(db->ioaddr,
db->phy_addr, 0, phy_reg, db->chip_id);
- if (db->chip_type && (db->chip_id == PCI_DM9102_ID))
+ if (db->chip_type && (db->chip_id == PCI_DEVICE_ID_DAVICOM_DM9102))
mdelay(20);
phy_write(db->ioaddr,
db->phy_addr, 0, phy_reg, db->chip_id);
@@ -1284,7 +1288,7 @@ static void phy_write(unsigned long iobase, u8 phy_addr, u8 offset,
u16 i;
unsigned long ioaddr;
- if (chip_id == PCI_DM9132_ID) {
+ if (chip_id == PCI_DEVICE_ID_DAVICOM_DM9132) {
ioaddr = iobase + 0x80 + offset * 4;
outw(phy_data, ioaddr);
} else {
@@ -1335,7 +1339,7 @@ static u16 phy_read(unsigned long iobase, u8 phy_addr, u8 offset, u32 chip_id)
u16 phy_data;
unsigned long ioaddr;
- if (chip_id == PCI_DM9132_ID) {
+ if (chip_id == PCI_DEVICE_ID_DAVICOM_DM9132) {
/* DM9132 Chip */
ioaddr = iobase + 0x80 + offset * 4;
phy_data = inw(ioaddr);
@@ -1765,8 +1769,8 @@ static int __devinit dmfe_probe(struct pci_dev *pdev,
* tulip driver, except for early DM9100s.
*/
#ifdef CONFIG_TULIP_DM910X
- if ((ent->driver_data == PCI_DM9100_ID && pdev->revision >= 0x30) ||
- ent->driver_data == PCI_DM9102_ID) {
+ if ((pdev->device == PCI_DEVICE_ID_DAVICOM_DM9100 && pdev->revision >= 0x30) ||
+ pdev->device == PCI_DEVICE_ID_DAVICOM_DM9102) {
struct device_node *dp = pci_device_to_OF_node(pdev);
if (dp && of_get_property(dp, "local-mac-address", NULL)) {
@@ -1801,6 +1805,7 @@ static int __devinit dmfe_probe(struct pci_dev *pdev,
goto err_out_disable;
}
+
if (pci_resource_len(pdev, 0) < (CHK_IO_SIZE(pdev))) {
printk(KERN_ERR DRV_NAME ": Allocated I/O size too small\n");
err = -ENODEV;
@@ -1841,7 +1846,7 @@ static int __devinit dmfe_probe(struct pci_dev *pdev,
db->buf_pool_start = db->buf_pool_ptr;
db->buf_pool_dma_start = db->buf_pool_dma_ptr;
- db->chip_id = ent->driver_data;
+ db->chip_id = pdev->device;
db->ioaddr = pci_resource_start(pdev, 0);
db->chip_revision = pdev->revision;
db->wol_mode = 0;
@@ -1876,9 +1881,9 @@ static int __devinit dmfe_probe(struct pci_dev *pdev,
if (err)
goto err_out_free_buf;
- printk(KERN_INFO "%s: Davicom DM%04lx at pci%s, %pM, irq %d.\n",
+ printk(KERN_INFO "%s: Davicom DM%04x at pci%s, %pM, irq %d.\n",
dev->name,
- ent->driver_data >> 16,
+ pdev->device,
pci_name(pdev),
dev->dev_addr,
dev->irq);
@@ -2001,10 +2006,10 @@ static int dmfe_resume(struct pci_dev *pci_dev)
static struct pci_device_id dmfe_pci_tbl[] = {
- { 0x1282, 0x9132, PCI_ANY_ID, PCI_ANY_ID, 0, 0, PCI_DM9132_ID },
- { 0x1282, 0x9102, PCI_ANY_ID, PCI_ANY_ID, 0, 0, PCI_DM9102_ID },
- { 0x1282, 0x9100, PCI_ANY_ID, PCI_ANY_ID, 0, 0, PCI_DM9100_ID },
- { 0x1282, 0x9009, PCI_ANY_ID, PCI_ANY_ID, 0, 0, PCI_DM9009_ID },
+ { PCI_VDEVICE(DAVICOM, PCI_DEVICE_ID_DAVICOM_DM9132) },
+ { PCI_VDEVICE(DAVICOM, PCI_DEVICE_ID_DAVICOM_DM9102) },
+ { PCI_VDEVICE(DAVICOM, PCI_DEVICE_ID_DAVICOM_DM9100) },
+ { PCI_VDEVICE(DAVICOM, PCI_DEVICE_ID_DAVICOM_DM9009) },
{ 0, }
};
MODULE_DEVICE_TABLE(pci, dmfe_pci_tbl);
diff --git a/drivers/net/tulip/dmfe.h b/drivers/net/tulip/dmfe.h
index 363e822..3bd2d87 100644
--- a/drivers/net/tulip/dmfe.h
+++ b/drivers/net/tulip/dmfe.h
@@ -64,10 +64,6 @@
#define DRV_VERSION "1.36.4"
#define DRV_RELDATE "2002-01-17"
-#define PCI_DM9132_ID 0x91321282 /* Davicom DM9132 ID */
-#define PCI_DM9102_ID 0x91021282 /* Davicom DM9102 ID */
-#define PCI_DM9100_ID 0x91001282 /* Davicom DM9100 ID */
-#define PCI_DM9009_ID 0x90091282 /* Davicom DM9009 ID */
#define DM9102_IO_SIZE 0x80
#define DM9102A_IO_SIZE 0x100
@@ -152,14 +148,11 @@
udelay(5); \
} while (0);
-#define __CHK_IO_SIZE(pci_id, dev_rev) \
- ((((pci_id) == PCI_DM9132_ID) || ((dev_rev) >= 0x30)) ? \
- DM9102A_IO_SIZE : DM9102_IO_SIZE)
-
-#define CHK_IO_SIZE(pci_dev) \
- (__CHK_IO_SIZE(((pci_dev)->device << 16) | (pci_dev)->vendor, \
- (pci_dev)->revision))
+#define CHK_IO_SIZE(pdev) \
+ ((pdev)->device == PCI_DEVICE_ID_DAVICOM_DM9132 || \
+ (pdev)->revision > 0x30 ? \
+ DM9102A_IO_SIZE : DM9102_IO_SIZE)
/* Structure/enum declaration ------------------------------- */
struct tx_desc {
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
index cca8a04..3086715 100644
--- a/include/linux/pci_ids.h
+++ b/include/linux/pci_ids.h
@@ -1416,6 +1416,12 @@
#define PCI_DEVICE_ID_VORTEX_GDT6x11RP 0x0104
#define PCI_DEVICE_ID_VORTEX_GDT6x21RP 0x0105
+#define PCI_VENDOR_ID_DAVICOM 0x1282
+#define PCI_DEVICE_ID_DAVICOM_DM9132 0x9132
+#define PCI_DEVICE_ID_DAVICOM_DM9102 0x9102
+#define PCI_DEVICE_ID_DAVICOM_DM9100 0x9100
+#define PCI_DEVICE_ID_DAVICOM_DM9009 0x9009
+
#define PCI_VENDOR_ID_EF 0x111a
#define PCI_DEVICE_ID_EF_ATM_FPGA 0x0000
#define PCI_DEVICE_ID_EF_ATM_ASIC 0x0002
--
1.6.3.3
next prev parent reply other threads:[~2010-02-06 20:19 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-06 20:18 Some fixes and cleanups for DMFE nework driver Maxim Levitsky
2010-02-06 20:18 ` [PATCH 1/6] dmfe: trivial cleanups: Maxim Levitsky
2010-02-06 20:18 ` Maxim Levitsky [this message]
2010-02-10 21:18 ` [PATCH 2/6] DMFE: move pci ID definitions into pci_ids.h and clean up the code David Miller
2010-02-10 21:22 ` David Miller
2010-02-11 17:25 ` Maxim Levitsky
2010-02-06 20:18 ` [PATCH 3/6] dmfe: workaround chipset bug Maxim Levitsky
2010-02-06 20:19 ` [PATCH 4/6] DMFE: WOL fixes: Maxim Levitsky
2010-02-06 20:19 ` [PATCH 5/6] DMFE: add .shutdown Maxim Levitsky
2010-02-06 20:19 ` [PATCH 6/6] DMFE: don't reinitialize the hardware if device wasn't open Maxim Levitsky
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1265487542-4447-3-git-send-email-maximlevitsky@gmail.com \
--to=maximlevitsky@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=maxim-levitsky@gmail.com \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.