Skip to content

Commit 2560540

Browse files
committed
Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mjg59/platform-drivers-x86
* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mjg59/platform-drivers-x86: (38 commits) acer-wmi: support Lenovo ideapad S205 wifi switch acerhdf.c: spaces in aliased changed to * platform-drivers-x86: ideapad-laptop: add missing ideapad_input_exit in ideapad_acpi_add error path x86 driver: fix typo in TDP override enabling Platform: fix samsung-laptop DMI identification for N150/N210/220/N230 dell-wmi: Add keys for Dell XPS L502X platform-drivers-x86: samsung-q10: make dmi_check_callback return 1 Platform: Samsung Q10 backlight driver platform-drivers-x86: intel_scu_ipc: convert to DEFINE_PCI_DEVICE_TABLE platform-drivers-x86: intel_rar_register: convert to DEFINE_PCI_DEVICE_TABLE platform-drivers-x86: intel_menlow: add missing return AE_OK for intel_menlow_register_sensor() platform-drivers-x86: intel_mid_thermal: fix memory leak platform-drivers-x86: msi-wmi: add missing sparse_keymap_free in msi_wmi_init error path Samsung Laptop platform driver: support N510 asus-wmi: add uwb rfkill support asus-wmi: add gps rfkill support asus-wmi: add CWAP support and clarify the meaning of WAPF bits asus-wmi: return proper value in store_cpufv() asus-wmi: check for temp1 presence asus-wmi: add thermal sensor ...
2 parents 45a05f9 + 15b956a commit 2560540

25 files changed

+799
-84
lines changed

Documentation/ABI/testing/sysfs-platform-ideapad-laptop

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,20 @@ KernelVersion: 2.6.37
44
Contact: "Ike Panhc <ike.pan@canonical.com>"
55
Description:
66
Control the power of camera module. 1 means on, 0 means off.
7+
8+
What: /sys/devices/platform/ideapad/cfg
9+
Date: Jun 2011
10+
KernelVersion: 3.1
11+
Contact: "Ike Panhc <ike.pan@canonical.com>"
12+
Description:
13+
Ideapad capability bits.
14+
Bit 8-10: 1 - Intel graphic only
15+
2 - ATI graphic only
16+
3 - Nvidia graphic only
17+
4 - Intel and ATI graphic
18+
5 - Intel and Nvidia graphic
19+
Bit 16: Bluetooth exist (1 for exist)
20+
Bit 17: 3G exist (1 for exist)
21+
Bit 18: Wifi exist (1 for exist)
22+
Bit 19: Camera exist (1 for exist)
23+

Documentation/feature-removal-schedule.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -581,3 +581,14 @@ Why: This driver has been superseded by g_mass_storage.
581581
Who: Alan Stern <stern@rowland.harvard.edu>
582582

583583
----------------------------
584+
585+
What: threeg and interface sysfs files in /sys/devices/platform/acer-wmi
586+
When: 2012
587+
Why: In 3.0, we can now autodetect internal 3G device and already have
588+
the threeg rfkill device. So, we plan to remove threeg sysfs support
589+
for it's no longer necessary.
590+
591+
We also plan to remove interface sysfs file that exposed which ACPI-WMI
592+
interface that was used by acer-wmi driver. It will replaced by
593+
information log when acer-wmi initial.
594+
Who: Lee, Chun-Yi <jlee@novell.com>

drivers/platform/x86/Kconfig

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -769,4 +769,12 @@ config INTEL_OAKTRAIL
769769
enable/disable the Camera, WiFi, BT etc. devices. If in doubt, say Y
770770
here; it will only load on supported platforms.
771771

772+
config SAMSUNG_Q10
773+
tristate "Samsung Q10 Extras"
774+
depends on SERIO_I8042
775+
select BACKLIGHT_CLASS_DEVICE
776+
---help---
777+
This driver provides support for backlight control on Samsung Q10
778+
and related laptops, including Dell Latitude X200.
779+
772780
endif # X86_PLATFORM_DEVICES

drivers/platform/x86/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,3 +44,4 @@ obj-$(CONFIG_SAMSUNG_LAPTOP) += samsung-laptop.o
4444
obj-$(CONFIG_MXM_WMI) += mxm-wmi.o
4545
obj-$(CONFIG_INTEL_MID_POWER_BUTTON) += intel_mid_powerbtn.o
4646
obj-$(CONFIG_INTEL_OAKTRAIL) += intel_oaktrail.o
47+
obj-$(CONFIG_SAMSUNG_Q10) += samsung-q10.o

drivers/platform/x86/acer-wmi.c

Lines changed: 36 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ enum acer_wmi_event_ids {
9999
static const struct key_entry acer_wmi_keymap[] = {
100100
{KE_KEY, 0x01, {KEY_WLAN} }, /* WiFi */
101101
{KE_KEY, 0x03, {KEY_WLAN} }, /* WiFi */
102+
{KE_KEY, 0x04, {KEY_WLAN} }, /* WiFi */
102103
{KE_KEY, 0x12, {KEY_BLUETOOTH} }, /* BT */
103104
{KE_KEY, 0x21, {KEY_PROG1} }, /* Backup */
104105
{KE_KEY, 0x22, {KEY_PROG2} }, /* Arcade */
@@ -304,6 +305,10 @@ static struct quirk_entry quirk_fujitsu_amilo_li_1718 = {
304305
.wireless = 2,
305306
};
306307

308+
static struct quirk_entry quirk_lenovo_ideapad_s205 = {
309+
.wireless = 3,
310+
};
311+
307312
/* The Aspire One has a dummy ACPI-WMI interface - disable it */
308313
static struct dmi_system_id __devinitdata acer_blacklist[] = {
309314
{
@@ -450,6 +455,15 @@ static struct dmi_system_id acer_quirks[] = {
450455
},
451456
.driver_data = &quirk_medion_md_98300,
452457
},
458+
{
459+
.callback = dmi_matched,
460+
.ident = "Lenovo Ideapad S205",
461+
.matches = {
462+
DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
463+
DMI_MATCH(DMI_PRODUCT_NAME, "10382LG"),
464+
},
465+
.driver_data = &quirk_lenovo_ideapad_s205,
466+
},
453467
{}
454468
};
455469

@@ -542,6 +556,12 @@ struct wmi_interface *iface)
542556
return AE_ERROR;
543557
*value = result & 0x1;
544558
return AE_OK;
559+
case 3:
560+
err = ec_read(0x78, &result);
561+
if (err)
562+
return AE_ERROR;
563+
*value = result & 0x1;
564+
return AE_OK;
545565
default:
546566
err = ec_read(0xA, &result);
547567
if (err)
@@ -1266,8 +1286,13 @@ static void acer_rfkill_update(struct work_struct *ignored)
12661286
acpi_status status;
12671287

12681288
status = get_u32(&state, ACER_CAP_WIRELESS);
1269-
if (ACPI_SUCCESS(status))
1270-
rfkill_set_sw_state(wireless_rfkill, !state);
1289+
if (ACPI_SUCCESS(status)) {
1290+
if (quirks->wireless == 3) {
1291+
rfkill_set_hw_state(wireless_rfkill, !state);
1292+
} else {
1293+
rfkill_set_sw_state(wireless_rfkill, !state);
1294+
}
1295+
}
12711296

12721297
if (has_cap(ACER_CAP_BLUETOOTH)) {
12731298
status = get_u32(&state, ACER_CAP_BLUETOOTH);
@@ -1400,6 +1425,9 @@ static ssize_t show_bool_threeg(struct device *dev,
14001425
{
14011426
u32 result; \
14021427
acpi_status status;
1428+
1429+
pr_info("This threeg sysfs will be removed in 2012"
1430+
" - used by: %s\n", current->comm);
14031431
if (wmi_has_guid(WMID_GUID3))
14041432
status = wmid3_get_device_status(&result,
14051433
ACER_WMID3_GDS_THREEG);
@@ -1415,8 +1443,10 @@ static ssize_t set_bool_threeg(struct device *dev,
14151443
{
14161444
u32 tmp = simple_strtoul(buf, NULL, 10);
14171445
acpi_status status = set_u32(tmp, ACER_CAP_THREEG);
1418-
if (ACPI_FAILURE(status))
1419-
return -EINVAL;
1446+
pr_info("This threeg sysfs will be removed in 2012"
1447+
" - used by: %s\n", current->comm);
1448+
if (ACPI_FAILURE(status))
1449+
return -EINVAL;
14201450
return count;
14211451
}
14221452
static DEVICE_ATTR(threeg, S_IRUGO | S_IWUSR, show_bool_threeg,
@@ -1425,6 +1455,8 @@ static DEVICE_ATTR(threeg, S_IRUGO | S_IWUSR, show_bool_threeg,
14251455
static ssize_t show_interface(struct device *dev, struct device_attribute *attr,
14261456
char *buf)
14271457
{
1458+
pr_info("This interface sysfs will be removed in 2012"
1459+
" - used by: %s\n", current->comm);
14281460
switch (interface->type) {
14291461
case ACER_AMW0:
14301462
return sprintf(buf, "AMW0\n");

drivers/platform/x86/acerhdf.c

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,7 @@ static const struct bios_settings_t bios_tbl[] = {
182182
{"Acer", "Aspire 1810T", "v1.3308", 0x55, 0x58, {0x9e, 0x00} },
183183
{"Acer", "Aspire 1810TZ", "v1.3310", 0x55, 0x58, {0x9e, 0x00} },
184184
{"Acer", "Aspire 1810T", "v1.3310", 0x55, 0x58, {0x9e, 0x00} },
185+
{"Acer", "Aspire 1810TZ", "v1.3314", 0x55, 0x58, {0x9e, 0x00} },
185186
/* Acer 531 */
186187
{"Acer", "AO531h", "v0.3201", 0x55, 0x58, {0x20, 0x00} },
187188
/* Gateway */
@@ -703,15 +704,15 @@ MODULE_LICENSE("GPL");
703704
MODULE_AUTHOR("Peter Feuerer");
704705
MODULE_DESCRIPTION("Aspire One temperature and fan driver");
705706
MODULE_ALIAS("dmi:*:*Acer*:pnAOA*:");
706-
MODULE_ALIAS("dmi:*:*Acer*:pnAspire 1410*:");
707-
MODULE_ALIAS("dmi:*:*Acer*:pnAspire 1810*:");
707+
MODULE_ALIAS("dmi:*:*Acer*:pnAspire*1410*:");
708+
MODULE_ALIAS("dmi:*:*Acer*:pnAspire*1810*:");
708709
MODULE_ALIAS("dmi:*:*Acer*:pnAO531*:");
709710
MODULE_ALIAS("dmi:*:*Gateway*:pnAOA*:");
710711
MODULE_ALIAS("dmi:*:*Gateway*:pnLT31*:");
711-
MODULE_ALIAS("dmi:*:*Packard Bell*:pnAOA*:");
712-
MODULE_ALIAS("dmi:*:*Packard Bell*:pnDOA*:");
713-
MODULE_ALIAS("dmi:*:*Packard Bell*:pnDOTMU*:");
714-
MODULE_ALIAS("dmi:*:*Packard Bell*:pnDOTMA*:");
712+
MODULE_ALIAS("dmi:*:*Packard*Bell*:pnAOA*:");
713+
MODULE_ALIAS("dmi:*:*Packard*Bell*:pnDOA*:");
714+
MODULE_ALIAS("dmi:*:*Packard*Bell*:pnDOTMU*:");
715+
MODULE_ALIAS("dmi:*:*Packard*Bell*:pnDOTMA*:");
715716

716717
module_init(acerhdf_init);
717718
module_exit(acerhdf_exit);

drivers/platform/x86/asus-laptop.c

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -70,11 +70,10 @@ MODULE_LICENSE("GPL");
7070
* WAPF defines the behavior of the Fn+Fx wlan key
7171
* The significance of values is yet to be found, but
7272
* most of the time:
73-
* 0x0 will do nothing
74-
* 0x1 will allow to control the device with Fn+Fx key.
75-
* 0x4 will send an ACPI event (0x88) while pressing the Fn+Fx key
76-
* 0x5 like 0x1 or 0x4
77-
* So, if something doesn't work as you want, just try other values =)
73+
* Bit | Bluetooth | WLAN
74+
* 0 | Hardware | Hardware
75+
* 1 | Hardware | Software
76+
* 4 | Software | Software
7877
*/
7978
static uint wapf = 1;
8079
module_param(wapf, uint, 0444);

drivers/platform/x86/asus-nb-wmi.c

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,24 @@ MODULE_LICENSE("GPL");
3838

3939
MODULE_ALIAS("wmi:"ASUS_NB_WMI_EVENT_GUID);
4040

41+
/*
42+
* WAPF defines the behavior of the Fn+Fx wlan key
43+
* The significance of values is yet to be found, but
44+
* most of the time:
45+
* Bit | Bluetooth | WLAN
46+
* 0 | Hardware | Hardware
47+
* 1 | Hardware | Software
48+
* 4 | Software | Software
49+
*/
50+
static uint wapf;
51+
module_param(wapf, uint, 0444);
52+
MODULE_PARM_DESC(wapf, "WAPF value");
53+
54+
static void asus_nb_wmi_quirks(struct asus_wmi_driver *driver)
55+
{
56+
driver->wapf = wapf;
57+
}
58+
4159
static const struct key_entry asus_nb_wmi_keymap[] = {
4260
{ KE_KEY, 0x30, { KEY_VOLUMEUP } },
4361
{ KE_KEY, 0x31, { KEY_VOLUMEDOWN } },
@@ -53,16 +71,16 @@ static const struct key_entry asus_nb_wmi_keymap[] = {
5371
{ KE_KEY, 0x51, { KEY_WWW } },
5472
{ KE_KEY, 0x55, { KEY_CALC } },
5573
{ KE_KEY, 0x5C, { KEY_F15 } }, /* Power Gear key */
56-
{ KE_KEY, 0x5D, { KEY_WLAN } },
57-
{ KE_KEY, 0x5E, { KEY_WLAN } },
58-
{ KE_KEY, 0x5F, { KEY_WLAN } },
74+
{ KE_KEY, 0x5D, { KEY_WLAN } }, /* Wireless console Toggle */
75+
{ KE_KEY, 0x5E, { KEY_WLAN } }, /* Wireless console Enable */
76+
{ KE_KEY, 0x5F, { KEY_WLAN } }, /* Wireless console Disable */
5977
{ KE_KEY, 0x60, { KEY_SWITCHVIDEOMODE } },
6078
{ KE_KEY, 0x61, { KEY_SWITCHVIDEOMODE } },
6179
{ KE_KEY, 0x62, { KEY_SWITCHVIDEOMODE } },
6280
{ KE_KEY, 0x63, { KEY_SWITCHVIDEOMODE } },
6381
{ KE_KEY, 0x6B, { KEY_TOUCHPAD_TOGGLE } },
64-
{ KE_KEY, 0x7E, { KEY_BLUETOOTH } },
6582
{ KE_KEY, 0x7D, { KEY_BLUETOOTH } },
83+
{ KE_KEY, 0x7E, { KEY_BLUETOOTH } },
6684
{ KE_KEY, 0x82, { KEY_CAMERA } },
6785
{ KE_KEY, 0x88, { KEY_RFKILL } },
6886
{ KE_KEY, 0x8A, { KEY_PROG1 } },
@@ -81,6 +99,7 @@ static struct asus_wmi_driver asus_nb_wmi_driver = {
8199
.keymap = asus_nb_wmi_keymap,
82100
.input_name = "Asus WMI hotkeys",
83101
.input_phys = ASUS_NB_WMI_FILE "/input0",
102+
.quirks = asus_nb_wmi_quirks,
84103
};
85104

86105

0 commit comments

Comments
 (0)