The patch titled DMI based quirk for IBM Dock II cardbus controllers has been removed from the -mm tree. Its filename was dmi-based-quirk-for-ibm-dock-ii-cardbus-controllers.patch This patch was dropped because it was nacked by the maintainer ------------------------------------------------------ Subject: DMI based quirk for IBM Dock II cardbus controllers From: Kristen Carlson Accardi <kristen.c.accardi@xxxxxxxxx> Replace the old quirk - using DMI to detect the T20, we can just apply the fix to the cardbus bridge when the T20 is docked. On the ThinkPad T20 laptop, when hotdocking into the IBM Dock II station, the _DCK AML (i.e. ACPI based docking function) does not correctly configure the cardbus controllers on the dock station. This used to be a pci quirk, but since it is really driver specific, am moving into the driver. Also, we are now using DMI to detect whether the laptop that has docked is a T20, because the fixup isn't neccessary on other laptops with correctly written AML. Signed-off-by: Kristen Carlson Accardi <kristen.c.accardi@xxxxxxxxx> Cc: Pavel Kysilka <goldenfish@xxxxxxx> Cc: Greg Kroah-Hartman <gregkh@xxxxxxx> Cc: Dominik Brodowski <linux@xxxxxxxxxxxxxxxxxxxx> Cc: Daniel Ritz <daniel.ritz@xxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- drivers/pcmcia/yenta_socket.c | 36 ++++++++++++++++++++++++++++++++ 1 files changed, 36 insertions(+) diff -puN drivers/pcmcia/yenta_socket.c~dmi-based-quirk-for-ibm-dock-ii-cardbus-controllers drivers/pcmcia/yenta_socket.c --- a/drivers/pcmcia/yenta_socket.c~dmi-based-quirk-for-ibm-dock-ii-cardbus-controllers +++ a/drivers/pcmcia/yenta_socket.c @@ -17,6 +17,7 @@ #include <linux/interrupt.h> #include <linux/delay.h> #include <linux/module.h> +#include <linux/dmi.h> #include <pcmcia/cs_types.h> #include <pcmcia/ss.h> @@ -1076,6 +1077,15 @@ static void yenta_fixup_parent_bridge(st } } +static struct dmi_system_id __devinitdata t20_dmi_table[] = { + { + .ident = "IBM ThinkPad T20", + .matches = { DMI_MATCH(DMI_BOARD_VENDOR, "IBM"), + DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T20"), }, + }, + {}, +}; + /* * Initialize a cardbus controller. Make sure we have a usable * interrupt, and that we can map the cardbus area. Fill in the @@ -1150,6 +1160,32 @@ static int __devinit yenta_probe (struct printk(KERN_INFO "Yenta: CardBus bridge found at %s [%04x:%04x]\n", pci_name(dev), dev->subsystem_vendor, dev->subsystem_device); + /* + * see if we are the cardbus controller on the + * IBM Dock II + */ + if (dmi_check_system(t20_dmi_table) && + dev->subsystem_device == 0x0148) { + u32 val; + + /* + * After hot docking, the AML on the + * IBM T20 will not correctly configure + * the cardbus bridge. We will need to + * fix this up ourselves. Tie the 2 interrupt + * pins to INTA, and configure the multifunction + * routing register to handle this. + */ + printk(KERN_INFO "Found IBM Dock II Cardbus Bridge " + "fixing up config"); + pci_read_config_dword(dev, 0x8c, &val); + val = ((val & 0xffffff00) | 0x1002); + pci_write_config_dword(dev, 0x8c, val); + pci_read_config_dword(dev, 0x80, &val); + val = ((val & 0x00ffff00) | 0x2864c077); + pci_write_config_dword(dev, 0x80, val); + + } yenta_config_init(socket); /* Disable all events */ _ Patches currently in -mm which might be from kristen.c.accardi@xxxxxxxxx are revert-pci-quirk-for-ibm-dock-ii-cardbus-controllers.patch dmi-based-quirk-for-ibm-dock-ii-cardbus-controllers.patch git-acpi.patch git-libata-all.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html