David Brownell wrote:
> > please correct me if i'm wrong i only don't want to blacklist complete
> > chipset-series
> 
> Then feel free to develop and submit a better fix.  That'd
> be more practical if AMD's workaround were public.  As I
> understand it, the bulk of the production chips have this
> erratum.  More power to RedHat getting info from AMD.
> Meanwhile, this patch improves robustness.

Comprimise?

This patch make it a config option to enable the AMD-756.
It's marked DANGEROUS and EXPERIMENTAL, and is only
available if CONFIG_EXPERIMENTAL is set.

This makes the default to blacklist the AMD-756
but it can be used if one wants to try.

        -Thomas
diff -u --new-file --recursive linux-2.4.3-ac2.orig/drivers/usb/Config.in 
linux-2.4.3-ac2/drivers/usb/Config.in
--- linux-2.4.3-ac2.orig/drivers/usb/Config.in  Wed Apr  4 15:23:13 2001
+++ linux-2.4.3-ac2/drivers/usb/Config.in       Wed Apr  4 16:13:52 2001
@@ -24,6 +24,9 @@
       dep_tristate '  UHCI Alternate Driver (JE) support' CONFIG_USB_UHCI_ALT 
$CONFIG_USB
    fi
    dep_tristate '  OHCI (Compaq, iMacs, OPTi, SiS, ALi, ...) support' CONFIG_USB_OHCI 
$CONFIG_USB
+   if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
+      bool '  AMD-756 OHCI support (DANGEROUS)(EXPERIMENTAL)' CONFIG_AMD_OHCI_OK
+   fi

    comment 'USB Device Class drivers'
    dep_tristate '  USB Audio support' CONFIG_USB_AUDIO $CONFIG_USB $CONFIG_SOUND
diff -u --new-file --recursive linux-2.4.3-ac2.orig/drivers/usb/usb-ohci.c 
linux-2.4.3-ac2/drivers/usb/usb-ohci.c
--- linux-2.4.3-ac2.orig/drivers/usb/usb-ohci.c Wed Apr  4 15:23:15 2001
+++ linux-2.4.3-ac2/drivers/usb/usb-ohci.c      Wed Apr  4 16:18:01 2001
@@ -2332,13 +2332,14 @@
        unsigned long mem_resource, mem_len;
        void *mem_base;

+#ifndef CONFIG_AMD_OHCI_OK
        /* blacklisted hardware? */
        if (id->driver_data) {
                info ("%s (%s): %s", dev->slot_name,
                        dev->name, (char *) id->driver_data);
                return -ENODEV;
        }
-
+#endif
        if (pci_enable_device(dev) < 0)
                return -ENODEV;

@@ -2508,6 +2509,7 @@
         * AMD-756 [Viper] USB has a serious erratum when used with
         * lowspeed devices like mice; oopses have been seen.  The
         * vendor workaround needs an NDA ... for now, blacklist it.
+        * Use CONFIG_AMD_OHCI_OK to try anyway.
         */
        vendor:         0x1022,
        device:         0x740c,

Reply via email to