From: Jesse Huang <[email protected]>
Remove CONFIG_SUNDANCE_MMIO, mask of mapping address
Change Logs:
Remove CONFIG_SUNDANCE_MMIO, mask of mapping address
---
drivers/net/sundance.c | 13 ++++++-------
1 files changed, 6 insertions(+), 7 deletions(-)
dc932975858ae18801620d04212c516ced6920bd
diff --git a/drivers/net/sundance.c b/drivers/net/sundance.c
index 910ea17..2bde1b3 100755
--- a/drivers/net/sundance.c
+++ b/drivers/net/sundance.c
@@ -21,8 +21,8 @@
*/
#define DRV_NAME "sundance"
-#define DRV_VERSION "1.2"
-#define DRV_RELDATE "03-Aug-2006"
+#define DRV_VERSION "1.01+LK1.13"
+#define DRV_RELDATE "04-Aug-2006"
/* The user-configurable values.
@@ -199,10 +199,6 @@ IVc. Errata
*/
-/* Work-around for Kendin chip bugs. */
-#ifndef CONFIG_SUNDANCE_MMIO
-#define USE_IO_OPS 1
-#endif
static const struct pci_device_id sundance_pci_tbl[] = {
{ 0x1186, 0x1002, 0x1186, 0x1002, 0, 0, 0 },
@@ -491,10 +487,13 @@ #endif
if (pci_request_regions(pdev, DRV_NAME))
goto err_out_netdev;
- ioaddr = pci_iomap(pdev, bar, netdev_io_size);
+ ioaddr =(void __iomem *)
+ ((unsigned long)pci_iomap(pdev, bar, netdev_io_size) &
+ 0xffffff80);
if (!ioaddr)
goto err_out_res;
+
for (i = 0; i < 3; i++)
((u16 *)dev->dev_addr)[i] =
le16_to_cpu(eeprom_read(ioaddr, i + EEPROM_SA_OFFSET));
--
1.3.GIT
Jesse Huang wrote:
> -/* Work-around for Kendin chip bugs. */
> -#ifndef CONFIG_SUNDANCE_MMIO
> -#define USE_IO_OPS 1
> -#endif
Why? This simply eliminates the ability of the user to set the driver
configuration at Kconfig time, requiring them to edit the driver to
achieve the same functionality.
> @@ -491,10 +487,13 @@ #endif
> if (pci_request_regions(pdev, DRV_NAME))
> goto err_out_netdev;
>
> - ioaddr = pci_iomap(pdev, bar, netdev_io_size);
> + ioaddr =(void __iomem *)
> + ((unsigned long)pci_iomap(pdev, bar, netdev_io_size) &
> + 0xffffff80);
NAK, this is very wrong. pci_iomap() returns a "cookie", which you are
not allowed to modify in any way.
Jeff