- dmi-based-quirk-for-ibm-dock-ii-cardbus-controllers.patch removed from -mm tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Kernel Newbies FAQ]     [Kernel Archive]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Photo]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux