rpms/kernel/devel linux-2.6-net-8139-pio-modparam.patch, NONE, 1.1 kernel.spec, 1.662, 1.663
Dave Jones (davej)
fedora-extras-commits at redhat.com
Wed May 28 17:49:12 UTC 2008
- Previous message (by thread): rpms/hdf/EL-4 hdf-4.2r2-libm.patch, NONE, 1.1 hdf-4.2r2-s390.patch, NONE, 1.1 hdf-4.2r2-sparc.patch, NONE, 1.1 hdf-4.2r3-ppc.patch, NONE, 1.1 .cvsignore, 1.3, 1.4 hdf.spec, 1.14, 1.15 sources, 1.3, 1.4 hdf-4.2r1-ppc.patch, 1.1, NONE
- Next message (by thread): rpms/hdf/EL-5 hdf-4.2r2-libm.patch, NONE, 1.1 hdf-4.2r2-s390.patch, NONE, 1.1 hdf-4.2r2-sparc.patch, NONE, 1.1 hdf-4.2r3-ppc.patch, NONE, 1.1 .cvsignore, 1.3, 1.4 hdf.spec, 1.14, 1.15 sources, 1.3, 1.4 hdf-4.2r1-ppc.patch, 1.1, NONE
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: davej
Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv31732
Modified Files:
kernel.spec
Added Files:
linux-2.6-net-8139-pio-modparam.patch
Log Message:
Make 8139too PIO/MMIO a module parameter
linux-2.6-net-8139-pio-modparam.patch:
--- NEW FILE linux-2.6-net-8139-pio-modparam.patch ---
Make PIO/MMIO a runtime thing via a module parameter.
This is needed to support devices that only work with PIO
without penalising devices that work fine with MMIO in
distro kernels.
Signed-off-by: Dave Jones <davej at redhat.com>
diff --git a/drivers/net/8139too.c b/drivers/net/8139too.c
index 53bd903..09ace39 100644
--- a/drivers/net/8139too.c
+++ b/drivers/net/8139too.c
@@ -120,11 +120,6 @@
NETIF_MSG_LINK)
-/* enable PIO instead of MMIO, if CONFIG_8139TOO_PIO is selected */
-#ifdef CONFIG_8139TOO_PIO
-#define USE_IO_OPS 1
-#endif
-
/* define to 1, 2 or 3 to enable copious debugging info */
#define RTL8139_DEBUG 0
@@ -156,6 +151,9 @@
static int media[MAX_UNITS] = {-1, -1, -1, -1, -1, -1, -1, -1};
static int full_duplex[MAX_UNITS] = {-1, -1, -1, -1, -1, -1, -1, -1};
+/* Whether to use MMIO or PIO. Default to MMIO. */
+static int use_pio;
+
/* Maximum number of multicast addresses to filter (vs. Rx-all-multicast).
The RTL chips use a 64 element hash table based on the Ethernet CRC. */
static int multicast_filter_limit = 32;
@@ -615,6 +613,7 @@ MODULE_DESCRIPTION ("RealTek RTL-8139 Fast Ethernet driver");
MODULE_LICENSE("GPL");
MODULE_VERSION(DRV_VERSION);
+module_param(use_pio, int, 0);
module_param(multicast_filter_limit, int, 0);
module_param_array(media, int, NULL, 0);
module_param_array(full_duplex, int, NULL, 0);
@@ -710,14 +709,13 @@ static void __rtl8139_cleanup_dev (struct net_device *dev)
assert (tp->pci_dev != NULL);
pdev = tp->pci_dev;
-#ifdef USE_IO_OPS
- if (tp->mmio_addr)
- ioport_unmap (tp->mmio_addr);
-#else
- if (tp->mmio_addr)
- pci_iounmap (pdev, tp->mmio_addr);
-#endif /* USE_IO_OPS */
-
+ if (use_pio) {
+ if (tp->mmio_addr)
+ ioport_unmap (tp->mmio_addr);
+ } else {
+ if (tp->mmio_addr)
+ pci_iounmap (pdev, tp->mmio_addr);
+ }
/* it's ok to call this even if we have no regions to free */
pci_release_regions (pdev);
@@ -791,32 +789,32 @@ static int __devinit rtl8139_init_board (struct pci_dev *pdev,
DPRINTK("PIO region size == 0x%02X\n", pio_len);
DPRINTK("MMIO region size == 0x%02lX\n", mmio_len);
-#ifdef USE_IO_OPS
- /* make sure PCI base addr 0 is PIO */
- if (!(pio_flags & IORESOURCE_IO)) {
- dev_err(&pdev->dev, "region #0 not a PIO resource, aborting\n");
- rc = -ENODEV;
- goto err_out;
- }
- /* check for weird/broken PCI region reporting */
- if (pio_len < RTL_MIN_IO_SIZE) {
- dev_err(&pdev->dev, "Invalid PCI I/O region size(s), aborting\n");
- rc = -ENODEV;
- goto err_out;
- }
-#else
- /* make sure PCI base addr 1 is MMIO */
- if (!(mmio_flags & IORESOURCE_MEM)) {
- dev_err(&pdev->dev, "region #1 not an MMIO resource, aborting\n");
- rc = -ENODEV;
- goto err_out;
- }
- if (mmio_len < RTL_MIN_IO_SIZE) {
- dev_err(&pdev->dev, "Invalid PCI mem region size(s), aborting\n");
- rc = -ENODEV;
- goto err_out;
+ if (use_pio) {
+ /* make sure PCI base addr 0 is PIO */
+ if (!(pio_flags & IORESOURCE_IO)) {
+ dev_err(&pdev->dev, "region #0 not a PIO resource, aborting\n");
+ rc = -ENODEV;
+ goto err_out;
+ }
+ /* check for weird/broken PCI region reporting */
+ if (pio_len < RTL_MIN_IO_SIZE) {
+ dev_err(&pdev->dev, "Invalid PCI I/O region size(s), aborting\n");
+ rc = -ENODEV;
+ goto err_out;
+ }
+ } else {
+ /* make sure PCI base addr 1 is MMIO */
+ if (!(mmio_flags & IORESOURCE_MEM)) {
+ dev_err(&pdev->dev, "region #1 not an MMIO resource, aborting\n");
+ rc = -ENODEV;
+ goto err_out;
+ }
+ if (mmio_len < RTL_MIN_IO_SIZE) {
+ dev_err(&pdev->dev, "Invalid PCI mem region size(s), aborting\n");
+ rc = -ENODEV;
+ goto err_out;
+ }
}
-#endif
rc = pci_request_regions (pdev, DRV_NAME);
if (rc)
@@ -826,28 +824,28 @@ static int __devinit rtl8139_init_board (struct pci_dev *pdev,
/* enable PCI bus-mastering */
pci_set_master (pdev);
-#ifdef USE_IO_OPS
- ioaddr = ioport_map(pio_start, pio_len);
- if (!ioaddr) {
- dev_err(&pdev->dev, "cannot map PIO, aborting\n");
- rc = -EIO;
- goto err_out;
- }
- dev->base_addr = pio_start;
- tp->mmio_addr = ioaddr;
- tp->regs_len = pio_len;
-#else
- /* ioremap MMIO region */
- ioaddr = pci_iomap(pdev, 1, 0);
- if (ioaddr == NULL) {
- dev_err(&pdev->dev, "cannot remap MMIO, aborting\n");
- rc = -EIO;
- goto err_out;
+ if (use_pio) {
+ ioaddr = ioport_map(pio_start, pio_len);
+ if (!ioaddr) {
+ dev_err(&pdev->dev, "cannot map PIO, aborting\n");
+ rc = -EIO;
+ goto err_out;
+ }
+ dev->base_addr = pio_start;
+ tp->mmio_addr = ioaddr;
+ tp->regs_len = pio_len;
+ } else {
+ /* ioremap MMIO region */
+ ioaddr = pci_iomap(pdev, 1, 0);
+ if (ioaddr == NULL) {
+ dev_err(&pdev->dev, "cannot remap MMIO, aborting\n");
+ rc = -EIO;
+ goto err_out;
+ }
+ dev->base_addr = (long) ioaddr;
+ tp->mmio_addr = ioaddr;
+ tp->regs_len = mmio_len;
}
- dev->base_addr = (long) ioaddr;
- tp->mmio_addr = ioaddr;
- tp->regs_len = mmio_len;
-#endif /* USE_IO_OPS */
/* Bring old chips out of low-power mode. */
RTL_W8 (HltClk, 'R');
@@ -2383,20 +2381,24 @@ static void rtl8139_set_msglevel(struct net_device *dev, u32 datum)
np->msg_enable = datum;
}
-/* TODO: we are too slack to do reg dumping for pio, for now */
-#ifdef CONFIG_8139TOO_PIO
-#define rtl8139_get_regs_len NULL
-#define rtl8139_get_regs NULL
-#else
static int rtl8139_get_regs_len(struct net_device *dev)
{
- struct rtl8139_private *np = netdev_priv(dev);
+ struct rtl8139_private *np;
+ /* TODO: we are too slack to do reg dumping for pio, for now */
+ if (use_pio)
+ return 0;
+ np = netdev_priv(dev);
return np->regs_len;
}
static void rtl8139_get_regs(struct net_device *dev, struct ethtool_regs *regs, void *regbuf)
{
- struct rtl8139_private *np = netdev_priv(dev);
+ struct rtl8139_private *np;
+
+ /* TODO: we are too slack to do reg dumping for pio, for now */
+ if (use_pio)
+ return;
+ np = netdev_priv(dev);
regs->version = RTL_REGS_VER;
@@ -2404,7 +2406,6 @@ static void rtl8139_get_regs(struct net_device *dev, struct ethtool_regs *regs,
memcpy_fromio(regbuf, np->mmio_addr, regs->len);
spin_unlock_irq(&np->lock);
}
-#endif /* CONFIG_8139TOO_MMIO */
static int rtl8139_get_sset_count(struct net_device *dev, int sset)
{
@@ -2610,6 +2611,11 @@ static int __init rtl8139_init_module (void)
printk (KERN_INFO RTL8139_DRIVER_NAME "\n");
#endif
+ /* enable PIO instead of MMIO, if CONFIG_8139TOO_PIO is selected */
+#ifdef CONFIG_8139TOO_PIO
+ use_pio = 1;
+#endif
+
return pci_register_driver(&rtl8139_pci_driver);
}
Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.662
retrieving revision 1.663
diff -u -r1.662 -r1.663
--- kernel.spec 28 May 2008 15:50:24 -0000 1.662
+++ kernel.spec 28 May 2008 17:48:25 -0000 1.663
@@ -597,6 +597,7 @@
Patch411: linux-2.6-hda-intel-fix-dma-position-inaccuracy.patch
Patch420: linux-2.6-squashfs.patch
Patch430: linux-2.6-net-silence-noisy-printks.patch
+Patch440: linux-2.6-net-8139-pio-modparam.patch
Patch450: linux-2.6-input-kill-stupid-messages.patch
Patch460: linux-2.6-serial-460800.patch
Patch510: linux-2.6-silence-noise.patch
@@ -1095,6 +1096,8 @@
# Networking
# Disable easy to trigger printk's.
ApplyPatch linux-2.6-net-silence-noisy-printks.patch
+# Make 8139too PIO/MMIO a module parameter
+ApplyPatch linux-2.6-net-8139-pio-modparam.patch
# Misc fixes
# The input layer spews crap no-one cares about.
@@ -1772,6 +1775,9 @@
%changelog
* Wed May 28 2008 Dave Jones <davej at redhat.com>
+- Make 8139too PIO/MMIO a module parameter
+
+* Wed May 28 2008 Dave Jones <davej at redhat.com>
- 2.6.26-rc4-git1
* Wed May 28 2008 Dave Jones <davej at redhat.com>
- Previous message (by thread): rpms/hdf/EL-4 hdf-4.2r2-libm.patch, NONE, 1.1 hdf-4.2r2-s390.patch, NONE, 1.1 hdf-4.2r2-sparc.patch, NONE, 1.1 hdf-4.2r3-ppc.patch, NONE, 1.1 .cvsignore, 1.3, 1.4 hdf.spec, 1.14, 1.15 sources, 1.3, 1.4 hdf-4.2r1-ppc.patch, 1.1, NONE
- Next message (by thread): rpms/hdf/EL-5 hdf-4.2r2-libm.patch, NONE, 1.1 hdf-4.2r2-s390.patch, NONE, 1.1 hdf-4.2r2-sparc.patch, NONE, 1.1 hdf-4.2r3-ppc.patch, NONE, 1.1 .cvsignore, 1.3, 1.4 hdf.spec, 1.14, 1.15 sources, 1.3, 1.4 hdf-4.2r1-ppc.patch, 1.1, NONE
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-extras-commits
mailing list