浏览代码

Merge git://git.iksaif.net/acpi4asus into x86-platform

Matthew Garrett 15 年之前
父节点
当前提交
db38a29111

+ 6 - 6
Documentation/ABI/testing/sysfs-platform-asus-laptop

@@ -1,4 +1,4 @@
-What:		/sys/devices/platform/asus-laptop/display
+What:		/sys/devices/platform/asus_laptop/display
 Date:		January 2007
 Date:		January 2007
 KernelVersion:	2.6.20
 KernelVersion:	2.6.20
 Contact:	"Corentin Chary" <corentincj@iksaif.net>
 Contact:	"Corentin Chary" <corentincj@iksaif.net>
@@ -13,7 +13,7 @@ Description:
 		Ex: - 0 (0000b) means no display
 		Ex: - 0 (0000b) means no display
 		    - 3 (0011b) CRT+LCD.
 		    - 3 (0011b) CRT+LCD.
 
 
-What:		/sys/devices/platform/asus-laptop/gps
+What:		/sys/devices/platform/asus_laptop/gps
 Date:		January 2007
 Date:		January 2007
 KernelVersion:	2.6.20
 KernelVersion:	2.6.20
 Contact:	"Corentin Chary" <corentincj@iksaif.net>
 Contact:	"Corentin Chary" <corentincj@iksaif.net>
@@ -21,7 +21,7 @@ Description:
 		Control the gps device. 1 means on, 0 means off.
 		Control the gps device. 1 means on, 0 means off.
 Users:		Lapsus
 Users:		Lapsus
 
 
-What:		/sys/devices/platform/asus-laptop/ledd
+What:		/sys/devices/platform/asus_laptop/ledd
 Date:		January 2007
 Date:		January 2007
 KernelVersion:	2.6.20
 KernelVersion:	2.6.20
 Contact:	"Corentin Chary" <corentincj@iksaif.net>
 Contact:	"Corentin Chary" <corentincj@iksaif.net>
@@ -29,11 +29,11 @@ Description:
 		Some models like the W1N have a LED display that can be
 		Some models like the W1N have a LED display that can be
 		used to display several informations.
 		used to display several informations.
 		To control the LED display, use the following :
 		To control the LED display, use the following :
-		    echo 0x0T000DDD > /sys/devices/platform/asus-laptop/
+		    echo 0x0T000DDD > /sys/devices/platform/asus_laptop/
 		where T control the 3 letters display, and DDD the 3 digits display.
 		where T control the 3 letters display, and DDD the 3 digits display.
 		The DDD table can be found in Documentation/laptops/asus-laptop.txt
 		The DDD table can be found in Documentation/laptops/asus-laptop.txt
 
 
-What:		/sys/devices/platform/asus-laptop/bluetooth
+What:		/sys/devices/platform/asus_laptop/bluetooth
 Date:		January 2007
 Date:		January 2007
 KernelVersion:	2.6.20
 KernelVersion:	2.6.20
 Contact:	"Corentin Chary" <corentincj@iksaif.net>
 Contact:	"Corentin Chary" <corentincj@iksaif.net>
@@ -42,7 +42,7 @@ Description:
 		This may control the led, the device or both.
 		This may control the led, the device or both.
 Users:		Lapsus
 Users:		Lapsus
 
 
-What:		/sys/devices/platform/asus-laptop/wlan
+What:		/sys/devices/platform/asus_laptop/wlan
 Date:		January 2007
 Date:		January 2007
 KernelVersion:	2.6.20
 KernelVersion:	2.6.20
 Contact:	"Corentin Chary" <corentincj@iksaif.net>
 Contact:	"Corentin Chary" <corentincj@iksaif.net>

+ 5 - 5
Documentation/ABI/testing/sysfs-platform-eeepc-laptop

@@ -1,4 +1,4 @@
-What:		/sys/devices/platform/eeepc-laptop/disp
+What:		/sys/devices/platform/eeepc/disp
 Date:		May 2008
 Date:		May 2008
 KernelVersion:	2.6.26
 KernelVersion:	2.6.26
 Contact:	"Corentin Chary" <corentincj@iksaif.net>
 Contact:	"Corentin Chary" <corentincj@iksaif.net>
@@ -9,21 +9,21 @@ Description:
 		- 3 = LCD+CRT
 		- 3 = LCD+CRT
 		If you run X11, you should use xrandr instead.
 		If you run X11, you should use xrandr instead.
 
 
-What:		/sys/devices/platform/eeepc-laptop/camera
+What:		/sys/devices/platform/eeepc/camera
 Date:		May 2008
 Date:		May 2008
 KernelVersion:	2.6.26
 KernelVersion:	2.6.26
 Contact:	"Corentin Chary" <corentincj@iksaif.net>
 Contact:	"Corentin Chary" <corentincj@iksaif.net>
 Description:
 Description:
 		Control the camera. 1 means on, 0 means off.
 		Control the camera. 1 means on, 0 means off.
 
 
-What:		/sys/devices/platform/eeepc-laptop/cardr
+What:		/sys/devices/platform/eeepc/cardr
 Date:		May 2008
 Date:		May 2008
 KernelVersion:	2.6.26
 KernelVersion:	2.6.26
 Contact:	"Corentin Chary" <corentincj@iksaif.net>
 Contact:	"Corentin Chary" <corentincj@iksaif.net>
 Description:
 Description:
 		Control the card reader. 1 means on, 0 means off.
 		Control the card reader. 1 means on, 0 means off.
 
 
-What:		/sys/devices/platform/eeepc-laptop/cpufv
+What:		/sys/devices/platform/eeepc/cpufv
 Date:		Jun 2009
 Date:		Jun 2009
 KernelVersion:	2.6.31
 KernelVersion:	2.6.31
 Contact:	"Corentin Chary" <corentincj@iksaif.net>
 Contact:	"Corentin Chary" <corentincj@iksaif.net>
@@ -42,7 +42,7 @@ Description:
 		    `------------ Availables modes
 		    `------------ Availables modes
 		For example, 0x301 means: mode 1 selected, 3 available modes.
 		For example, 0x301 means: mode 1 selected, 3 available modes.
 
 
-What:		/sys/devices/platform/eeepc-laptop/available_cpufv
+What:		/sys/devices/platform/eeepc/available_cpufv
 Date:		Jun 2009
 Date:		Jun 2009
 KernelVersion:	2.6.31
 KernelVersion:	2.6.31
 Contact:	"Corentin Chary" <corentincj@iksaif.net>
 Contact:	"Corentin Chary" <corentincj@iksaif.net>

+ 2 - 0
drivers/platform/x86/Kconfig

@@ -59,6 +59,8 @@ config ASUS_LAPTOP
 	select NEW_LEDS
 	select NEW_LEDS
 	select BACKLIGHT_CLASS_DEVICE
 	select BACKLIGHT_CLASS_DEVICE
 	depends on INPUT
 	depends on INPUT
+	depends on RFKILL || RFKILL = n
+	select INPUT_SPARSEKMAP
 	---help---
 	---help---
 	  This is the new Linux driver for Asus laptops. It may also support some
 	  This is the new Linux driver for Asus laptops. It may also support some
 	  MEDION, JVC or VICTOR laptops. It makes all the extra buttons generate
 	  MEDION, JVC or VICTOR laptops. It makes all the extra buttons generate

文件差异内容过多而无法显示
+ 441 - 356
drivers/platform/x86/asus-laptop.c


+ 20 - 1
drivers/platform/x86/eeepc-laptop.c

@@ -578,6 +578,8 @@ static void eeepc_rfkill_hotplug(struct eeepc_laptop *eeepc)
 	struct pci_dev *dev;
 	struct pci_dev *dev;
 	struct pci_bus *bus;
 	struct pci_bus *bus;
 	bool blocked = eeepc_wlan_rfkill_blocked(eeepc);
 	bool blocked = eeepc_wlan_rfkill_blocked(eeepc);
+	bool absent;
+	u32 l;
 
 
 	if (eeepc->wlan_rfkill)
 	if (eeepc->wlan_rfkill)
 		rfkill_set_sw_state(eeepc->wlan_rfkill, blocked);
 		rfkill_set_sw_state(eeepc->wlan_rfkill, blocked);
@@ -591,6 +593,22 @@ static void eeepc_rfkill_hotplug(struct eeepc_laptop *eeepc)
 			goto out_unlock;
 			goto out_unlock;
 		}
 		}
 
 
+		if (pci_bus_read_config_dword(bus, 0, PCI_VENDOR_ID, &l)) {
+			pr_err("Unable to read PCI config space?\n");
+			goto out_unlock;
+		}
+		absent = (l == 0xffffffff);
+
+		if (blocked != absent) {
+			pr_warning("BIOS says wireless lan is %s, "
+					"but the pci device is %s\n",
+				blocked ? "blocked" : "unblocked",
+				absent ? "absent" : "present");
+			pr_warning("skipped wireless hotplug as probably "
+					"inappropriate for this model\n");
+			goto out_unlock;
+		}
+
 		if (!blocked) {
 		if (!blocked) {
 			dev = pci_get_slot(bus, 0);
 			dev = pci_get_slot(bus, 0);
 			if (dev) {
 			if (dev) {
@@ -1277,7 +1295,8 @@ static void eeepc_dmi_check(struct eeepc_laptop *eeepc)
 	 * hotplug code. In fact, current hotplug code seems to unplug another
 	 * hotplug code. In fact, current hotplug code seems to unplug another
 	 * device...
 	 * device...
 	 */
 	 */
-	if (strcmp(model, "1005HA") == 0 || strcmp(model, "1201N") == 0) {
+	if (strcmp(model, "1005HA") == 0 || strcmp(model, "1201N") == 0 ||
+	    strcmp(model, "1005PE") == 0) {
 		eeepc->hotplug_disabled = true;
 		eeepc->hotplug_disabled = true;
 		pr_info("wlan hotplug disabled\n");
 		pr_info("wlan hotplug disabled\n");
 	}
 	}

部分文件因为文件数量过多而无法显示