ACPI patches for Linux-2.6.25-rc2
Subsystems (12)
Len Brown
reviewersorry if this is a repeat.
backing down to git 1.5.4 to see if it can send
messages that vger.kernel.org likes...
thanks,
-Len
Len Brown
reviewerPATCH 1/26 ACPI: EC: Use proper handle for boot EC
From: Alexey Starikovskiy <[email protected]>
Fall back to ACPI_ROOT_HANDLE only in case of error.
ACPI: EC: EC description table is found, configuring boot EC
ACPI Error (evregion-0316): No handler for Region [ECOR] (ffff81007a651620) [EmbeddedControl] [20070126] ACPI Error (exfldio-0289): Region EmbeddedControl(3) has no handler [20070126]
http://bugzilla.kernel.org/show_bug.cgi?id=9916
--- drivers/acpi/ec.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-)
drivers/acpi/ec.c +5 -1
@@ -943,7 +943,11 @@ int __init acpi_ec_ecdt_probe(void) boot_ec->command_addr = ecdt_ptr->control.address; boot_ec->data_addr = ecdt_ptr->data.address; boot_ec->gpe = ecdt_ptr->gpe; - boot_ec->handle =ACPI_ROOT_OBJECT ; +if (ACPI_FAILURE (acpi_get_handle (NULL , ecdt_ptr->id, + &boot_ec->handle))) { +pr_info ("Failed to locate handle for boot EC\n" ); + boot_ec->handle =ACPI_ROOT_OBJECT ; + } }else {/* This workaround is needed only on some broken machines, * which require early EC, but fail to provide ECDT */
Signature · 1 line
1.5.4
Len Brown
reviewerPATCH 2/26 kernel-doc: fix pci-acpi warning
In reply to Len BrownFrom: Randy Dunlap <[email protected]>
Fix PCI kernel-doc warning:
Warning(linux-2.6.24-git12//drivers/pci/pci-acpi.c:166): No description found for parameter 'hid'
--- drivers/pci/pci-acpi.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)
drivers/pci/pci-acpi.c +1 -0
@@ -158,6 +158,7 @@ run_osc_out:/** * __pci_osc_support_set - register OS support to Firmware * @flags: OS support bits +* @hid: hardware ID * * Update OS support fields and doing a _OSC Query to obtain an update * from Firmware on supported control bits.
Signature · 1 line
1.5.4
Len Brown
reviewerPATCH 3/26 thermal: validate input parameters
In reply to Len BrownFrom: Thomas Sujith <[email protected]>
Added sanity check to make sure that thermal zone
and cooling device exists.
--- drivers/thermal/thermal.c | 13 ++++++++++++- 1 files changed, 12 insertions(+), 1 deletions(-)
drivers/thermal/thermal.c +12 -1
@@ -306,12 +306,23 @@ int thermal_zone_bind_cooling_device(struct thermal_zone_device *tz, {struct thermal_cooling_device_instance *dev;struct thermal_cooling_device_instance *pos; +struct thermal_zone_device *pos1; +struct thermal_cooling_device *pos2;int result;if (trip >= tz->trips || (trip <0 && trip !=THERMAL_TRIPS_NONE ))return -EINVAL ; -if (!tz || !cdev) +list_for_each_entry (pos1, &thermal_tz_list, node) { +if (pos1 == tz) +break ; + } +list_for_each_entry (pos2, &thermal_cdev_list, node) { +if (pos2 == cdev) +break ; + } + +if (tz != pos1 || cdev != pos2)return -EINVAL ; dev =
Signature · 1 line
1.5.4
Len Brown
reviewerPATCH 4/26 thermal: use ERR_PTR for returning error
In reply to Len BrownFrom: Thomas Sujith <[email protected]>
Need to return using ERR_PTR instead of NULL
in case of errors.
--- drivers/thermal/thermal.c | 26 +++++++++++++------------- 1 files changed, 13 insertions(+), 13 deletions(-)
drivers/thermal/thermal.c +13 -13
@@ -448,20 +448,20 @@ struct thermal_cooling_device *thermal_cooling_device_register(char *type,int result;if (strlen (type) >=THERMAL_NAME_LENGTH ) -return NULL ; +return ERR_PTR (-EINVAL );if (!ops || !ops->get_max_state || !ops->get_cur_state || !ops->set_cur_state) -return NULL ; +return ERR_PTR (-EINVAL ); cdev =kzalloc (sizeof (struct thermal_cooling_device ),GFP_KERNEL );if (!cdev) -return NULL ; +return ERR_PTR (-ENOMEM ); result =get_idr (&thermal_cdev_idr, &thermal_idr_lock, &cdev->id);if (result) {kfree (cdev); -return NULL ; +return ERR_PTR (result); }strcpy (cdev->type, type);
@@ -473,7 +473,7 @@ struct thermal_cooling_device *thermal_cooling_device_register(char *type,if (result) {release_idr (&thermal_cdev_idr, &thermal_idr_lock, cdev->id);kfree (cdev); -return NULL ; +return ERR_PTR (result); }/* sys I/F */
@@ -509,7 +509,7 @@ struct thermal_cooling_device *thermal_cooling_device_register(char *type, unregister:release_idr (&thermal_cdev_idr, &thermal_idr_lock, cdev->id);device_unregister (&cdev->device); -return NULL ; +return ERR_PTR (result); }EXPORT_SYMBOL (thermal_cooling_device_register);
@@ -581,17 +581,17 @@ struct thermal_zone_device *thermal_zone_device_register(char *type,int count;if (strlen (type) >=THERMAL_NAME_LENGTH ) -return NULL ; +return ERR_PTR (-EINVAL );if (trips >THERMAL_MAX_TRIPS || trips <0 ) -return NULL ; +return ERR_PTR (-EINVAL );if (!ops || !ops->get_temp) -return NULL ; +return ERR_PTR (-EINVAL ); tz =kzalloc (sizeof (struct thermal_zone_device ),GFP_KERNEL );if (!tz) -return NULL ; +return ERR_PTR (-ENOMEM );INIT_LIST_HEAD (&tz->cooling_devices);idr_init (&tz->idr);
@@ -599,7 +599,7 @@ struct thermal_zone_device *thermal_zone_device_register(char *type, result =get_idr (&thermal_tz_idr, &thermal_idr_lock, &tz->id);if (result) {kfree (tz); -return NULL ; +return ERR_PTR (result); }strcpy (tz->type, type);
@@ -612,7 +612,7 @@ struct thermal_zone_device *thermal_zone_device_register(char *type,if (result) {release_idr (&thermal_tz_idr, &thermal_idr_lock, tz->id);kfree (tz); -return NULL ; +return ERR_PTR (result); }/* sys I/F */
@@ -654,7 +654,7 @@ struct thermal_zone_device *thermal_zone_device_register(char *type, unregister:release_idr (&thermal_tz_idr, &thermal_idr_lock, tz->id);device_unregister (&tz->device); -return NULL ; +return ERR_PTR (result); }EXPORT_SYMBOL (thermal_zone_device_register);
Signature · 1 line
1.5.4
Len Brown
reviewerPATCH 5/26 ACPI fan: extract return values using PTR_ERR
In reply to Len BrownFrom: Thomas Sujith <[email protected]>
Need to extract errors using PTR_ERR macro and process accordingly. thermal_cooling_device_register returning NULL means that CONFIG_THERMAL=n and in that case no need to create symbolic links.
--- drivers/acpi/fan.c | 30 ++++++++++++++++++------------ 1 files changed, 18 insertions(+), 12 deletions(-)
drivers/acpi/fan.c +18 -12
@@ -256,22 +256,28 @@ static int acpi_fan_add(struct acpi_device *device) cdev =thermal_cooling_device_register ("Fan" , device, &fan_cooling_ops); -if (cdev) +if (IS_ERR (cdev)) { + result =PTR_ERR (cdev); + goto end; + } +if (cdev) { printk(KERN_INFO PREFIX"%s is registered as cooling_device%d\n" , device->dev.bus_id, cdev->id); -else - goto end; -acpi_driver_data (device) = cdev; - result =sysfs_create_link (&device->dev.kobj, &cdev->device.kobj, -"thermal_cooling" ); -if (result) -return result; - result =sysfs_create_link (&cdev->device.kobj, &device->dev.kobj, -"device" ); -if (result) -return result; +acpi_driver_data (device) = cdev; + result =sysfs_create_link (&device->dev.kobj, + &cdev->device.kobj, +"thermal_cooling" ); +if (result) +return result; + + result =sysfs_create_link (&cdev->device.kobj, + &device->dev.kobj, +"device" ); +if (result) +return result; + } result =acpi_fan_add_fs (device);if (result)
Signature · 1 line
1.5.4
Len Brown
reviewerPATCH 6/26 ACPI: thermal: Check whether cooling device exists before unregistering
In reply to Len BrownFrom: Zhao Yakui <[email protected]>
OS should check whether the cooling device exists before it is unregistered. If it doesn't exists, it is unnecessary to remove the sysfs link and call the function of thermal_cooling_device_unregister.
http://bugzilla.kernel.org/show_bug.cgi?id=9982
--- drivers/acpi/processor_core.c | 10 ++++++---- 1 files changed, 6 insertions(+), 4 deletions(-)
drivers/acpi/processor_core.c +6 -4
@@ -809,10 +809,12 @@ static int acpi_processor_remove(struct acpi_device *device, int type)acpi_processor_remove_fs (device); -sysfs_remove_link (&device->dev.kobj,"thermal_cooling" ); -sysfs_remove_link (&pr->cdev->device.kobj,"device" ); -thermal_cooling_device_unregister (pr->cdev); - pr->cdev =NULL ; +if (pr->cdev) { +sysfs_remove_link (&device->dev.kobj,"thermal_cooling" ); +sysfs_remove_link (&pr->cdev->device.kobj,"device" ); +thermal_cooling_device_unregister (pr->cdev); + pr->cdev =NULL ; + } processors[pr->id] =NULL ;
Signature · 1 line
1.5.4
Len Brown
reviewerPATCH 7/26 ACPI thermal: extract return values using PTR_ERR
In reply to Len BrownFrom: Thomas Sujith <[email protected]>
Need to extract errors using PTR_ERR macro and process accordingly.thermal_cooling_device_register returning NULL means that CONFIG_THERMAL=n and in that case no need to create symbolic links.
--- drivers/acpi/processor_core.c | 37 ++++++++++++++++++++++--------------- 1 files changed, 22 insertions(+), 15 deletions(-)
drivers/acpi/processor_core.c +22 -15
@@ -670,21 +670,26 @@ static int __cpuinit acpi_processor_start(struct acpi_device *device) pr->cdev =thermal_cooling_device_register ("Processor" , device, &processor_cooling_ops); -if (pr->cdev) +if (IS_ERR (pr->cdev)) { + result =PTR_ERR (pr->cdev); + goto end; + } +if (pr->cdev) { printk(KERN_INFO PREFIX"%s is registered as cooling_device%d\n" , device->dev.bus_id, pr->cdev->id); -else - goto end; - result =sysfs_create_link (&device->dev.kobj, &pr->cdev->device.kobj, -"thermal_cooling" ); -if (result) -return result; - result =sysfs_create_link (&pr->cdev->device.kobj, &device->dev.kobj, -"device" ); -if (result) -return result; + result =sysfs_create_link (&device->dev.kobj, + &pr->cdev->device.kobj, +"thermal_cooling" ); +if (result) +return result; + result =sysfs_create_link (&pr->cdev->device.kobj, + &device->dev.kobj, +"device" ); +if (result) +return result; + }if (pr->flags.throttling) { printk(KERN_INFO PREFIX "%s [%s] (supports",
@@ -809,10 +814,12 @@ static int acpi_processor_remove(struct acpi_device *device, int type)acpi_processor_remove_fs (device); -sysfs_remove_link (&device->dev.kobj,"thermal_cooling" ); -sysfs_remove_link (&pr->cdev->device.kobj,"device" ); -thermal_cooling_device_unregister (pr->cdev); - pr->cdev =NULL ; +if (pr->cdev) { +sysfs_remove_link (&device->dev.kobj,"thermal_cooling" ); +sysfs_remove_link (&pr->cdev->device.kobj,"device" ); +thermal_cooling_device_unregister (pr->cdev); + pr->cdev =NULL ; + } processors[pr->id] =NULL ;
Signature · 1 line
1.5.4
Len Brown
reviewerPATCH 8/26 ACPI video: check for error from thermal_cooling_device_register
In reply to Len BrownFrom: Thomas Sujith <[email protected]>
Need to check whether thermal_cooling_device_register returned ERROR or not.
--- drivers/acpi/video.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-)
drivers/acpi/video.c +3 -0
@@ -731,6 +731,9 @@ static void acpi_video_device_find_cap(struct acpi_video_device *device) device->cdev =thermal_cooling_device_register ("LCD" , device->dev, &video_cooling_ops); +if (IS_ERR (device->cdev)) +return ; +if (device->cdev) { printk(KERN_INFO PREFIX "%s is registered as cooling_device%d\n",
Signature · 1 line
1.5.4
Len Brown
reviewerPATCH 9/26 intel_menlo: extract return values using PTR_ERR
In reply to Len BrownFrom: Thomas Sujith <[email protected]>
Need to extract errors using PTR_ERR macro and process accordingly.thermal_cooling_device_register returning NULL means that CONFIG_THERMAL=n and in that case no need to create symbolic links.
--- drivers/misc/intel_menlow.c | 11 +++++++---- 1 files changed, 7 insertions(+), 4 deletions(-)
drivers/misc/intel_menlow.c +7 -4
@@ -170,10 +170,13 @@ static int intel_menlow_memory_add(struct acpi_device *device) cdev =thermal_cooling_device_register ("Memory controller" , device, &memory_cooling_ops); -acpi_driver_data (device) = cdev; -if (!cdev) - result = -ENODEV ; -else { +if (IS_ERR (cdev)) { + result =PTR_ERR (cdev); + goto end; + } + +if (cdev) { +acpi_driver_data (device) = cdev; result =sysfs_create_link (&device->dev.kobj, &cdev->device.kobj,"thermal_cooling" );if (result)
Signature · 1 line
1.5.4
Len Brown
reviewerPATCH 10/26 ACPI: thinkpad-acpi: trivial fix to module_desc typo
In reply to Len BrownFrom: Henrique de Moraes Holschuh <[email protected]>
Thanks to Damjan <[email protected]> for noticing this one.
--- drivers/misc/thinkpad_acpi.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
drivers/misc/thinkpad_acpi.c +1 -1
@@ -5918,7 +5918,7 @@ MODULE_PARM_DESC(hotkey_report_mode,#define TPACPI_PARAM (feature) \ module_param_call(feature, set_ibm_param, NULL, NULL, 0); \ - MODULE_PARM_DESC(feature, "Simulates thinkpad-aci procfs command " \ + MODULE_PARM_DESC(feature, "Simulates thinkpad-acpi procfs command " \ "at module load, see documentation")TPACPI_PARAM (hotkey);
Signature · 1 line
1.5.4
Len Brown
reviewerPATCH 11/26 ACPI: thinkpad-acpi: trivial fix to documentation
In reply to Len BrownFrom: Henrique de Moraes Holschuh <[email protected]>
Fix a stray ibm-acpi that should have been replaced with thinkpad-acpi. Thanks to Damjan <[email protected]> for noticing this one.
--- Documentation/laptops/thinkpad-acpi.txt | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
Documentation/laptops/thinkpad-acpi.txt +1 -1
@@ -1309,7 +1309,7 @@ Enabling debugging output The module takes a debug parameter which can be used to selectively enable various classes of debugging output, for example: - modprobe ibm_acpi debug=0xffff + modprobe thinkpad_acpi debug=0xffff will enable all debugging output classes. It takes a bitmask, so to enable more than one output class, just add their values.
Signature · 1 line
1.5.4
Len Brown
reviewerPATCH 12/26 ACPI: thinkpad-acpi: always track input device open/close
In reply to Len BrownFrom: Henrique de Moraes Holschuh <[email protected]>
The open() and close() hooks for the input device are useful even when hotkey NVRAM polling support is not in use, so it is better to always have them around.
--- drivers/misc/thinkpad_acpi.c | 13 ++++++++----- 1 files changed, 8 insertions(+), 5 deletions(-)
drivers/misc/thinkpad_acpi.c +8 -5
@@ -1417,6 +1417,14 @@ static void hotkey_poll_setup_safe(int may_warn) mutex_unlock(&hotkey_mutex); } +#else /* CONFIG_THINKPAD_ACPI_HOTKEY_POLL */ + +static void hotkey_poll_setup_safe (int __unused) +{ +} + +#endif /* CONFIG_THINKPAD_ACPI_HOTKEY_POLL */ +static int hotkey_inputdev_open (struct input_dev *dev) {switch (tpacpi_lifecycle) {
@@ -1444,7 +1452,6 @@ static void hotkey_inputdev_close(struct input_dev *dev)if (tpacpi_lifecycle ==TPACPI_LIFE_RUNNING )hotkey_poll_setup_safe (0 ); } -#endif /* CONFIG_THINKPAD_ACPI_HOTKEY_POLL */ /* sysfs hotkey enable ------------------------------------------------- */ static ssize_t hotkey_enable_show(struct device *dev,
@@ -2023,12 +2030,10 @@ static int __init hotkey_init(struct ibm_init_struct *iibm) (hotkey_report_mode <2 ) ? "enabled" : "disabled"); -#ifdef CONFIG_THINKPAD_ACPI_HOTKEY_POLL tpacpi_inputdev->open = &hotkey_inputdev_open; tpacpi_inputdev->close = &hotkey_inputdev_close;hotkey_poll_setup_safe (1 ); -#endif }return (tp_features.hotkey)?0 :1 ;
@@ -2221,9 +2226,7 @@ static void hotkey_resume(void)hotkey_radio_sw_notify_change ();hotkey_wakeup_reason_notify_change ();hotkey_wakeup_hotunplug_complete_notify_change (); -#ifdef CONFIG_THINKPAD_ACPI_HOTKEY_POLL hotkey_poll_setup_safe (0 ); -#endif }/* procfs -------------------------------------------------------------- */
Signature · 1 line
1.5.4
Len Brown
reviewerPATCH 13/26 ACPI: thinkpad-acpi: synchronize input device switches
In reply to Len BrownFrom: Henrique de Moraes Holschuh <[email protected]>
Issue EV_SW events at module init time to synchronize the input device with the current state of the switch, otherwise we might lose the first event.
--- drivers/misc/thinkpad_acpi.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)
drivers/misc/thinkpad_acpi.c +1 -0
@@ -2034,6 +2034,7 @@ static int __init hotkey_init(struct ibm_init_struct *iibm) tpacpi_inputdev->close = &hotkey_inputdev_close;hotkey_poll_setup_safe (1 ); +tpacpi_input_send_radiosw (); }return (tp_features.hotkey)?0 :1 ;
Signature · 1 line
1.5.4
Len Brown
reviewerPATCH 14/26 ACPI: thinkpad-acpi: make the video output feature optional
In reply to Len BrownFrom: Henrique de Moraes Holschuh <[email protected]>
The video output port control feature is not very useful on many ThinkPads (especially when a X server is running), and lately userspace is getting better and better at it, so it makes sense to allow users to stripe out the thinkpad-acpi video feature from their kernels and save at least 2KB.
--- drivers/misc/Kconfig | 17 +++++++++++++++++ drivers/misc/thinkpad_acpi.c | 20 +++++++++++++------- 2 files changed, 30 insertions(+), 7 deletions(-)
drivers/misc/Kconfig +17 -0
@@ -258,6 +258,23 @@ config THINKPAD_ACPI_BAY If you are not sure, say Y here. +config THINKPAD_ACPI_VIDEO + bool "Video output control support" + depends on THINKPAD_ACPI + default y + ---help--- + Allows the thinkpad_acpi driver to provide an interface to control + the various video output ports. + + This feature often won't work well, depending on ThinkPad model, + display state, video output devices in use, whether there is a X + server running, phase of the moon, and the current mood of + Schroedinger's cat. If you can use X.org's RandR to control + your ThinkPad's video output ports instead of this feature, + don't think twice: do it and say N here to save some memory. + + If you are not sure, say Y here. + config THINKPAD_ACPI_HOTKEY_POLL bool "Suport NVRAM polling for hot keys" depends on THINKPAD_ACPI
drivers/misc/thinkpad_acpi.c +13 -7
@@ -301,6 +301,13 @@ TPACPI_HANDLE(hkey, ec, "\\_SB.HKEY", /* 600e/x, 770e, 770x */"HKEY" ,/* all others */ ); /* 570 */ +TPACPI_HANDLE (vid, root,"\\_SB.PCI.AGP.VGA" ,/* 570 */ +"\\_SB.PCI0.AGP0.VID0" ,/* 600e/x, 770x */ +"\\_SB.PCI0.VID0" ,/* 770e */ +"\\_SB.PCI0.VID" ,/* A21e, G4x, R50e, X30, X40 */ + "\\_SB.PCI0.AGP.VID", /* all others */ + );/* R30, R31 */ +/************************************************************************* * ACPI helpers
@@ -2680,6 +2687,8 @@ static struct ibm_struct wan_driver_data = {* Video subdriver */ +#ifdef CONFIG_THINKPAD_ACPI_VIDEO +enum video_access_mode {TPACPI_VIDEO_NONE =0 , TPACPI_VIDEO_570, /* 570 */
@@ -2707,13 +2716,6 @@ static int video_orig_autosw;static int video_autosw_get (void );static int video_autosw_set (int enable); -TPACPI_HANDLE (vid, root,"\\_SB.PCI.AGP.VGA" ,/* 570 */ -"\\_SB.PCI0.AGP0.VID0" ,/* 600e/x, 770x */ -"\\_SB.PCI0.VID0" ,/* 770e */ -"\\_SB.PCI0.VID" ,/* A21e, G4x, R50e, X30, X40 */ - "\\_SB.PCI0.AGP.VID", /* all others */ - );/* R30, R31 */ -TPACPI_HANDLE (vid2, root,"\\_SB.PCI0.AGPB.VID" );/* G41 */ static int __init video_init (struct ibm_init_struct *iibm)
@@ -3023,6 +3025,8 @@ static struct ibm_struct video_driver_data = { .exit = video_exit, }; +#endif /* CONFIG_THINKPAD_ACPI_VIDEO */ +/************************************************************************* * Light (thinklight) subdriver */
@@ -5807,10 +5811,12 @@ static struct ibm_init_struct ibms_init[] __initdata = { .init = wan_init, .data = &wan_driver_data, }, +#ifdef CONFIG_THINKPAD_ACPI_VIDEO { .init = video_init, .data = &video_driver_data, }, +#endif { .init = light_init, .data = &light_driver_data,
Signature · 1 line
1.5.4
Len Brown
reviewerPATCH 15/26 ACPI: thinkpad-acpi: issue input events for tablet swivel events
In reply to Len BrownFrom: Henrique de Moraes Holschuh <[email protected]>
Issue EV_SW SW_TABLET_MODE events for HKEY events 0x5009 and 0x500A on the X41t/X60t/X61t. As usual, we suppress the HKEY events on the netlink interface to avoid sending duplicate events to userspace.
--- Documentation/laptops/thinkpad-acpi.txt | 4 ++-- drivers/misc/thinkpad_acpi.c | 22 ++++++++++++++++++++-- 2 files changed, 22 insertions(+), 4 deletions(-)
Documentation/laptops/thinkpad-acpi.txt +2 -2
@@ -491,6 +491,8 @@ generate input device EV_KEY events. Non hot-key ACPI HKEY event map: 0x5001 Lid closed 0x5002 Lid opened +0x5009 Tablet swivel: switched to tablet mode +0x500A Tablet swivel: switched to normal mode 0x7000 Radio Switch may have changed state The above events are not propagated by the driver, except for legacy
@@ -505,8 +507,6 @@ The above events are never propagated by the driver. 0x3003 Bay ejection (see 0x2x05) complete, can sleep again 0x4003 Undocked (see 0x2x04), can sleep again -0x5009 Tablet swivel: switched to tablet mode -0x500A Tablet swivel: switched to normal mode 0x500B Tablet pen insterted into its storage bay 0x500C Tablet pen removed from its storage bay 0x5010 Brightness level changed (newer Lenovo BIOSes)
drivers/misc/thinkpad_acpi.c +20 -2
@@ -1172,6 +1172,17 @@ static void tpacpi_input_send_radiosw(void)mutex_unlock (&tpacpi_inputdev_send_mutex); } +static void tpacpi_input_send_tabletsw (unsigned int state) +{ +mutex_lock (&tpacpi_inputdev_send_mutex); + +input_report_switch (tpacpi_inputdev, +SW_TABLET_MODE , !!state); +input_sync (tpacpi_inputdev); + +mutex_unlock (&tpacpi_inputdev_send_mutex); +} +static void tpacpi_input_send_key (unsigned int scancode) {unsigned int keycode;
@@ -2020,6 +2031,10 @@ static int __init hotkey_init(struct ibm_init_struct *iibm)set_bit (EV_SW , tpacpi_inputdev->evbit);set_bit (SW_RADIO , tpacpi_inputdev->swbit); } +if (thinkpad_id.vendor ==PCI_VENDOR_ID_LENOVO ) { +set_bit (EV_SW , tpacpi_inputdev->evbit); +set_bit (SW_TABLET_MODE , tpacpi_inputdev->swbit); + }dbg_printk (TPACPI_DBG_INIT ,"enabling hot key handling\n" );
@@ -2169,11 +2184,14 @@ static void hotkey_notify(struct ibm_struct *ibm, u32 event)/* 0x5000-0x5FFF: human interface helpers */ switch (hkey) {case 0x5010 :/* Lenovo new BIOS: brightness changed */ -case 0x5009 :/* X61t: swivel up (tablet mode) */ -case 0x500a :/* X61t: swivel down (normal mode) */ case 0x500b :/* X61t: tablet pen inserted into bay */ case 0x500c :/* X61t: tablet pen removed from bay */ break ; +case 0x5009 :/* X61t: swivel up (tablet mode) */ +case 0x500a :/* X61t: swivel down (normal mode) */ +tpacpi_input_send_tabletsw ((hkey ==0x5009 )); + send_acpi_ev =0 ; +break ;case 0x5001 :case 0x5002 :/* LID switch events. Do not propagate */
Signature · 1 line
1.5.4
Len Brown
reviewerPATCH 16/26 ACPI: thinkpad-acpi: improve thinkpad-acpi input device documentation
In reply to Len BrownFrom: Henrique de Moraes Holschuh <[email protected]>
Fix a few spelling errors, and also document the EV_SW events thinkpad-acpi can issue.
--- Documentation/laptops/thinkpad-acpi.txt | 48 +++++++++++++++++------------- 1 files changed, 27 insertions(+), 21 deletions(-)
Documentation/laptops/thinkpad-acpi.txt +27 -21
@@ -160,7 +160,7 @@ Hot keys procfs: /proc/acpi/ibm/hotkey sysfs device attribute: hotkey_* -In a ThinkPad, the ACPI HKEY handler is responsible for comunicating +In a ThinkPad, the ACPI HKEY handler is responsible for communicating some important events and also keyboard hot key presses to the operating system. Enabling the hotkey functionality of thinkpad-acpi signals the firmware that such a driver is present, and modifies how the ThinkPad
@@ -193,7 +193,7 @@ Not all bits in the mask can be modified. Not all bits that can be modified do anything. Not all hot keys can be individually controlled by the mask. Some models do not support the mask at all, and in those models, hot keys cannot be controlled individually. The behaviour of -the mask is, therefore, higly dependent on the ThinkPad model. +the mask is, therefore, highly dependent on the ThinkPad model. Note that unmasking some keys prevents their default behavior. For example, if Fn+F5 is unmasked, that key will no longer enable/disable
@@ -288,7 +288,7 @@ sysfs notes: in ACPI event mode, volume up/down/mute are reported as separate events, but this behaviour may be corrected in future releases of this driver, in which case the - ThinkPad volume mixer user interface semanthics will be + ThinkPad volume mixer user interface semantics will be enforced. hotkey_poll_freq:
@@ -308,7 +308,7 @@ sysfs notes: hotkey_radio_sw: if the ThinkPad has a hardware radio switch, this attribute will read 0 if the switch is in the "radios - disabled" postition, and 1 if the switch is in the + disabled" position, and 1 if the switch is in the "radios enabled" position. This attribute has poll()/select() support.
@@ -339,7 +339,7 @@ sysfs notes: wakeup_hotunplug_complete: Set to 1 if the system was waken up because of an undock or bay ejection request, and that request - was sucessfully completed. At this point, it might + was successfully completed. At this point, it might be useful to send the system back to sleep, at the user's choice. Refer to HKEY events 0x4003 and 0x3003, below.
@@ -392,7 +392,7 @@ event code Key Notes Lenovo: battery 0x1004 0x03 FN+F4 Sleep button (ACPI sleep button - semanthics, i.e. sleep-to-RAM). + semantics, i.e. sleep-to-RAM). It is always generate some kind of event, either the hot key event or a ACPI sleep button
@@ -403,12 +403,12 @@ event code Key Notes time passes. 0x1005 0x04 FN+F5 Radio. Enables/disables - the internal BlueTooth hardware + the internal Bluetooth hardware and W-WAN card if left in control of the firmware. Does not affect the WLAN card. Should be used to turn on/off all - radios (bluetooth+W-WAN+WLAN), + radios (Bluetooth+W-WAN+WLAN), really. 0x1006 0x05 FN+F6 -
@@ -417,7 +417,7 @@ event code Key Notes Do you feel lucky today? 0x1008 0x07 FN+F8 IBM: toggle screen expand - Lenovo: configure ultranav + Lenovo: configure UltraNav 0x1009 0x08 FN+F9 - .. .. ..
@@ -447,7 +447,7 @@ event code Key Notes 0x1011 0x10 FN+END Brightness down. See brightness up for details. -0x1012 0x11 FN+PGUP Thinklight toggle. This key is +0x1012 0x11 FN+PGUP ThinkLight toggle. This key is always handled by the firmware, even when unmasked.
@@ -469,7 +469,7 @@ event code Key Notes key is always handled by the firmware, even when unmasked. -0x1018 0x17 THINKPAD Thinkpad/Access IBM/Lenovo key +0x1018 0x17 THINKPAD ThinkPad/Access IBM/Lenovo key 0x1019 0x18 unknown .. .. ..
@@ -488,6 +488,12 @@ If a key is mapped to KEY_UNKNOWN, it generates an input event that includes an scan code. If a key is mapped to anything else, it will generate input device EV_KEY events. +In addition to the EV_KEY events, thinkpad-acpi may also issue EV_SW +events for switches: + +SW_RADIO T60 and later hardare rfkill rocker switch +SW_TABLET_MODE Tablet ThinkPads HKEY events 0x5009 and 0x500A + Non hot-key ACPI HKEY event map: 0x5001 Lid closed 0x5002 Lid opened
@@ -507,7 +513,7 @@ The above events are never propagated by the driver. 0x3003 Bay ejection (see 0x2x05) complete, can sleep again 0x4003 Undocked (see 0x2x04), can sleep again -0x500B Tablet pen insterted into its storage bay +0x500B Tablet pen inserted into its storage bay 0x500C Tablet pen removed from its storage bay 0x5010 Brightness level changed (newer Lenovo BIOSes)
@@ -539,7 +545,7 @@ sysfs (it is read-only). If the hotkey_report_mode module parameter is set to 1 or 2, it cannot be changed later through sysfs (any writes will return -EPERM to signal that hotkey_report_mode was locked. On 2.6.23 and later, where -hotkey_report_mode cannot be changed at all, writes will return -EACES). +hotkey_report_mode cannot be changed at all, writes will return -EACCES). hotkey_report_mode set to 1 makes the driver export through the procfs ACPI event interface all hot key presses (which are *also* sent to the
@@ -584,7 +590,7 @@ Sysfs notes: 0: disables Bluetooth / Bluetooth is disabled 1: enables Bluetooth / Bluetooth is enabled. - Note: this interface will be probably be superseeded by the + Note: this interface will be probably be superseded by the generic rfkill class, so it is NOT to be considered stable yet. Video output control -- /proc/acpi/ibm/video
@@ -791,12 +797,12 @@ on the X40 (tpb is the ThinkPad Buttons utility): 1 - Related to "Volume up" key press 2 - Related to "Mute on" key press 3 - Related to "Access IBM" key press - 4 - Related to "LCD brightness up" key pess + 4 - Related to "LCD brightness up" key press 5 - Related to "LCD brightness down" key press 11 - Related to "toggle screen expansion" key press/function 12 - Related to "ThinkLight on" 13 - Related to "ThinkLight off" - 14 - Related to "ThinkLight" key press (toggle thinklight) + 14 - Related to "ThinkLight" key press (toggle ThinkLight) The cmos command interface is prone to firmware split-brain problems, as in newer ThinkPads it is just a compatibility layer. Do not use it, it is
@@ -1024,7 +1030,7 @@ There are two interfaces to the firmware for direct brightness control, EC and CMOS. To select which one should be used, use the brightness_mode module parameter: brightness_mode=1 selects EC mode, brightness_mode=2 selects CMOS mode, brightness_mode=3 selects both EC -and CMOS. The driver tries to autodetect which interface to use. +and CMOS. The driver tries to auto-detect which interface to use. When display backlight brightness controls are available through the standard ACPI interface, it is best to use it instead of this direct
@@ -1266,8 +1272,8 @@ experimental=1 parameter when loading the module. This feature shows the presence and current state of a W-WAN (Sierra Wireless EV-DO) device. -It was tested on a Lenovo Thinkpad X60. It should probably work on other -Thinkpad models which come with this module installed. +It was tested on a Lenovo ThinkPad X60. It should probably work on other +ThinkPad models which come with this module installed. Procfs notes:
@@ -1286,7 +1292,7 @@ Sysfs notes: 0: disables WWAN card / WWAN card is disabled 1: enables WWAN card / WWAN card is enabled. - Note: this interface will be probably be superseeded by the + Note: this interface will be probably be superseded by the generic rfkill class, so it is NOT to be considered stable yet. Multiple Commands, Module Parameters
@@ -1356,7 +1362,7 @@ Sysfs interface changelog: NVRAM is compiled out by the user because it is unneeded/undesired in the first place). 0x020101: Marker for thinkpad-acpi with hot key NVRAM polling - and proper hotkey_mask semanthics (version 8 of the + and proper hotkey_mask semantics (version 8 of the NVRAM polling patch). Some development snapshots of 0.18 had an earlier version that did strange things to hotkey_mask.
Signature · 1 line
1.5.4
Len Brown
reviewerPATCH 17/26 ACPI: thinkpad-acpi: minor hotkey_radio_sw fixes
In reply to Len BrownFrom: Henrique de Moraes Holschuh <[email protected]>
Fixes some minor points in the radio switch code and docs.
--- Documentation/laptops/thinkpad-acpi.txt | 2 +- drivers/misc/thinkpad_acpi.c | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-)
Documentation/laptops/thinkpad-acpi.txt +1 -1
@@ -306,7 +306,7 @@ sysfs notes: The recommended polling frequency is 10Hz. hotkey_radio_sw: - if the ThinkPad has a hardware radio switch, this + If the ThinkPad has a hardware radio switch, this attribute will read 0 if the switch is in the "radios disabled" position, and 1 if the switch is in the "radios enabled" position.
drivers/misc/thinkpad_acpi.c +4 -4
@@ -1161,15 +1161,15 @@ static void tpacpi_input_send_radiosw(void) {int wlsw; -mutex_lock (&tpacpi_inputdev_send_mutex); -if (tp_features.hotkey_wlsw && !hotkey_get_wlsw (&wlsw)) { +mutex_lock (&tpacpi_inputdev_send_mutex); +input_report_switch (tpacpi_inputdev,SW_RADIO , !!wlsw);input_sync (tpacpi_inputdev); - } -mutex_unlock (&tpacpi_inputdev_send_mutex); +mutex_unlock (&tpacpi_inputdev_send_mutex); + } }static void tpacpi_input_send_tabletsw (unsigned int state)
Signature · 1 line
1.5.4
Len Brown
reviewerPATCH 18/26 ACPI: thinkpad-acpi: add tablet-mode reporting
In reply to Len BrownFrom: Henrique de Moraes Holschuh <[email protected]>
A quick study of the 0x5009/0x500A HKEY event on the X61t DSDT revealed the existence of the EC HTAB register (EC 0x0f, bit 7), and a compare with the X41t DSDT shows that HKEY.MHKG can be used to verify if the ThinkPad is tablet-capable (MHKG present), and in tablet mode (bit 3 of MHKG return is set).
Add an attribute to report this information, "hotkey_tablet_mode". This attribute has poll()/select() support, and can be used along with EV_SW SW_TABLET_MODE to hook userspace to tablet events.
--- Documentation/laptops/thinkpad-acpi.txt | 7 +++ drivers/misc/thinkpad_acpi.c | 79 ++++++++++++++++++++++++++---- 2 files changed, 75 insertions(+), 11 deletions(-)
Documentation/laptops/thinkpad-acpi.txt +7 -0
@@ -313,6 +313,13 @@ sysfs notes: This attribute has poll()/select() support. + hotkey_tablet_mode: + If the ThinkPad has tablet capabilities, this attribute + will read 0 if the ThinkPad is in normal mode, and + 1 if the ThinkPad is in tablet mode. + + This attribute has poll()/select() support. + hotkey_report_mode: Returns the state of the procfs ACPI event report mode filter for hot keys. If it is set to 1 (the default),
drivers/misc/thinkpad_acpi.c +68 -11
148 lines not on this page · raw message
Signature · 1 line
1.5.4
Len Brown
reviewerPATCH 19/26 ACPI: sparse fix, replace macro with static function
In reply to Len BrownFrom: Harvey Harrison <[email protected]>
replace acpi_util_eval_error macro with static function.
Avoid these sparse warnings due to using buffer within the macro. drivers/acpi/utils.c:273:3: warning: symbol 'buffer' shadows an earlier one drivers/acpi/utils.c:259:21: originally declared here drivers/acpi/utils.c:279:3: warning: symbol 'buffer' shadows an earlier one drivers/acpi/utils.c:259:21: originally declared here drivers/acpi/utils.c:368:3: warning: symbol 'buffer' shadows an earlier one drivers/acpi/utils.c:348:21: originally declared here drivers/acpi/utils.c:375:3: warning: symbol 'buffer' shadows an earlier one drivers/acpi/utils.c:348:21: originally declared here drivers/acpi/utils.c:382:3: warning: symbol 'buffer' shadows an earlier one drivers/acpi/utils.c:348:21: originally declared here drivers/acpi/utils.c:402:4: warning: symbol 'buffer' shadows an earlier one drivers/acpi/utils.c:348:21: originally declared here
--- drivers/acpi/utils.c | 18 +++++++++++------- 1 files changed, 11 insertions(+), 7 deletions(-)
drivers/acpi/utils.c +11 -7
@@ -36,16 +36,20 @@ ACPI_MODULE_NAME("utils");/* -------------------------------------------------------------------------- Object Evaluation Helpers -------------------------------------------------------------------------- */ +static void +acpi_util_eval_error (acpi_handle h,acpi_string p,acpi_status s) +{#ifdef ACPI_DEBUG_OUTPUT -#define acpi_util_eval_error (h,p,s) {\ - char prefix[80] = {'\0'};\ - struct acpi_buffer buffer = {sizeof(prefix), prefix};\ - acpi_get_name(h, ACPI_FULL_PATHNAME, &buffer);\ - ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Evaluate [%s.%s]: %s\n",\ - (char *) prefix, p, acpi_format_exception(s))); } +char prefix[80 ] = {'\0' }; +struct acpi_buffer buffer = {sizeof (prefix), prefix}; +acpi_get_name (h,ACPI_FULL_PATHNAME , &buffer); +ACPI_DEBUG_PRINT ((ACPI_DB_INFO ,"Evaluate [%s.%s]: %s\n" , + (char *) prefix, p,acpi_format_exception (s)));#else -#define acpi_util_eval_error (h,p,s) +return ;#endif +} +acpi_status acpi_extract_package (union acpi_object *package,struct acpi_buffer *format,struct acpi_buffer *buffer)
Signature · 1 line
1.5.4
Len Brown
reviewerPATCH 20/26 acer-wmi: Add DMI match for mail LED on Acer TravelMate 4200 series
In reply to Len BrownFrom: Carlos Corbacho <[email protected]>
The TM4200 series use the same method as the TM2490 series to control the mail LED, so add a DMI based quirk for these laptops.
--- drivers/misc/acer-wmi.c | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-)
drivers/misc/acer-wmi.c +9 -0
@@ -273,6 +273,15 @@ static struct dmi_system_id acer_quirks[] = { }, { .callback = dmi_matched, + .ident = "Acer TravelMate 4200", + .matches = { +DMI_MATCH (DMI_SYS_VENDOR ,"Acer" ), + DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 4200"), + }, + .driver_data = &quirk_acer_travelmate_2490, + }, + { + .callback = dmi_matched, .ident = "Medion MD 98300", .matches = { DMI_MATCH(DMI_SYS_VENDOR, "MEDION"),
Signature · 1 line
1.5.4
Len Brown
reviewerPATCH 21/26 ACPI: remove is_processor_present prototype
In reply to Len BrownFrom: Glauber Costa <[email protected]>
The function itself is defined just below, so this prototype is not really useful.
--- drivers/acpi/processor_core.c | 2 -- 1 files changed, 0 insertions(+), 2 deletions(-)
drivers/acpi/processor_core.c +0 -2
@@ -826,8 +826,6 @@ static int acpi_processor_remove(struct acpi_device *device, int type)* Acpi processor hotplug support * ****************************************************************************/ -static int is_processor_present (acpi_handle handle); -static int is_processor_present (acpi_handle handle) {acpi_status status;
Signature · 1 line
1.5.4
Len Brown
reviewerPATCH 22/26 ACPI: TSC breaks atkbd suspend
In reply to Len BrownFrom: Pavel Machek <[email protected]>
TSC is used even on machines when CONFIG_X86_TSC is not set (X86_TSC means _require_ TSC), but it is not properly disabled when it is unusable, because ACPI code understood the config switch as "may use TSC".
This actually fixes suspend problems on my x60.
--- drivers/acpi/processor_idle.c | 10 +++++----- 1 files changed, 5 insertions(+), 5 deletions(-)
drivers/acpi/processor_idle.c +5 -5
@@ -364,7 +364,7 @@ int acpi_processor_resume(struct acpi_device * device)return 0 ; } -#if defined (CONFIG_GENERIC_TIME ) && defined (CONFIG_X86_TSC ) +#if defined (CONFIG_GENERIC_TIME ) && defined (CONFIG_X86 )static int tsc_halts_in_c (int state) {switch (boot_cpu_data.x86_vendor) {
@@ -544,7 +544,7 @@ static void acpi_processor_idle(void)/* Get end time (ticks) */ t2 =inl (acpi_gbl_FADT.xpm_timer_block.address); -#if defined (CONFIG_GENERIC_TIME ) && defined (CONFIG_X86_TSC ) +#if defined (CONFIG_GENERIC_TIME ) && defined (CONFIG_X86 )/* TSC halts in C2, so notify users */ if (tsc_halts_in_c (ACPI_STATE_C2 ))mark_tsc_unstable ("possible TSC halt in C2" );
@@ -609,7 +609,7 @@ static void acpi_processor_idle(void)acpi_set_register (ACPI_BITREG_ARB_DISABLE ,0 ); } -#if defined (CONFIG_GENERIC_TIME ) && defined (CONFIG_X86_TSC ) +#if defined (CONFIG_GENERIC_TIME ) && defined (CONFIG_X86 )/* TSC halts in C3, so notify users */ if (tsc_halts_in_c (ACPI_STATE_C3 ))mark_tsc_unstable ("TSC halts in C3" );
@@ -1500,7 +1500,7 @@ static int acpi_idle_enter_simple(struct cpuidle_device *dev,acpi_idle_do_entry (cx); t2 =inl (acpi_gbl_FADT.xpm_timer_block.address); -#if defined (CONFIG_GENERIC_TIME ) && defined (CONFIG_X86_TSC ) +#if defined (CONFIG_GENERIC_TIME ) && defined (CONFIG_X86 )/* TSC could halt in idle, so notify users */ if (tsc_halts_in_c (cx->type))mark_tsc_unstable ("TSC halts in idle" );;
@@ -1614,7 +1614,7 @@ static int acpi_idle_enter_bm(struct cpuidle_device *dev,spin_unlock (&c3_lock); } -#if defined (CONFIG_GENERIC_TIME ) && defined (CONFIG_X86_TSC ) +#if defined (CONFIG_GENERIC_TIME ) && defined (CONFIG_X86 )/* TSC could halt in idle, so notify users */ if (tsc_halts_in_c (ACPI_STATE_C3 ))mark_tsc_unstable ("TSC halts in idle" );
Signature · 1 line
1.5.4
Len Brown
reviewerPATCH 23/26 ACPI: fix build warning
In reply to Len BrownFrom: Ming Lin <[email protected]>
CC drivers/acpi/executer/exregion.odrivers/acpi/executer/exregion.c: In function ‘acpi_ex_pci_config_space_handler’:drivers/acpi/executer/exregion.c:369: attention : passing argument 3 of ‘acpi_os_read_pci_configuration’ from incompatible pointer type
exposed by 10270d4838bdc493781f5a1cf2e90e9c34c9142f
http://bugzilla.kernel.org/show_bug.cgi?id=9989
--- drivers/acpi/executer/exregion.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-)
drivers/acpi/executer/exregion.c +3 -2
@@ -338,6 +338,7 @@ acpi_ex_pci_config_space_handler(u32 function,acpi_status status =AE_OK ;struct acpi_pci_id *pci_id;u16 pci_register; +u32 value32;ACPI_FUNCTION_TRACE (ex_pci_config_space_handler);
@@ -364,9 +365,9 @@ acpi_ex_pci_config_space_handler(u32 function,switch (function) {case ACPI_READ : - *value =0 ; status =acpi_os_read_pci_configuration (pci_id, pci_register, - value, bit_width); + &value32, bit_width); + *value = value32;break ;case ACPI_WRITE :
Signature · 6 lines
1.5.4 - To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
Len Brown
reviewerPATCH 24/26 Hibernation: Handle DEBUG_PAGEALLOC on x86
In reply to Len BrownFrom: Rafael J. Wysocki <[email protected]>
Make hibernation work with CONFIG_DEBUG_PAGEALLOC set on x86, by checking if the pages to be copied are marked as present in the kernel mapping and temporarily marking them as present if that's not the case. No functional modifications are introduced if CONFIG_DEBUG_PAGEALLOC is unset.
--- arch/x86/mm/pageattr.c | 19 ++++++++++++++++++- include/linux/mm.h | 6 ++++++ kernel/power/snapshot.c | 42 +++++++++++++++++++++++++++++------------- 3 files changed, 53 insertions(+), 14 deletions(-)
arch/x86/mm/pageattr.c +18 -1
@@ -899,7 +899,24 @@ void kernel_map_pages(struct page *page, int numpages, int enable)*/ cpa_fill_pool(); } -#endif + +#ifdef CONFIG_HIBERNATION + +bool kernel_page_present (struct page *page) +{ +unsigned int level; +pte_t *pte; + +if (PageHighMem (page)) +return false; + + pte =lookup_address ((unsigned long )page_address (page), &level); +return (pte_val (*pte) & _PAGE_PRESENT); +} + +#endif /* CONFIG_HIBERNATION */ + +#endif /* CONFIG_DEBUG_PAGEALLOC */ /* * The testcases use internal knowledge of the implementation that shouldn't
include/linux/mm.h +6 -0
@@ -1171,12 +1171,18 @@ static inline void enable_debug_pagealloc(void) { debug_pagealloc_enabled =1 ; } +#ifdef CONFIG_HIBERNATION +extern bool kernel_page_present (struct page *page); +#endif /* CONFIG_HIBERNATION */ #else static inline void kernel_map_pages (struct page *page,int numpages,int enable) {}static inline void enable_debug_pagealloc (void ) { } +#ifdef CONFIG_HIBERNATION +static inline bool kernel_page_present (struct page *page) {return true; } +#endif /* CONFIG_HIBERNATION */ #endif extern struct vm_area_struct *get_gate_vma (struct task_struct *tsk);
kernel/power/snapshot.c +29 -13
87 lines not on this page · raw message
Signature · 1 line
1.5.4
Len Brown
reviewerPATCH 25/26 PCI ACPI: Fix comment describing acpi_pci_choose_state
In reply to Len BrownFrom: Rafael J. Wysocki <[email protected]>
The last line of the comment preceding the definition of acpi_pci_choose_state() is incorrect. Remove it.
--- drivers/pci/pci-acpi.c | 2 -- 1 files changed, 0 insertions(+), 2 deletions(-)
drivers/pci/pci-acpi.c +0 -2
@@ -241,8 +241,6 @@ EXPORT_SYMBOL(pci_osc_control_set);* choose from highest power _SxD to lowest power _SxW * else // no _PRW at S-state x * choose highest power _SxD or any lower power -* -* currently we simply return _SxD, if present. */ static pci_power_t acpi_pci_choose_state(struct pci_dev *pdev,
Signature · 1 line
1.5.4
Len Brown
reviewerPATCH 26/26 PM: Make suspend_device() static
In reply to Len BrownFrom: Adrian Bunk <[email protected]>
suspend_device() can become static.
--- drivers/base/power/main.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
drivers/base/power/main.c +1 -1
@@ -415,7 +415,7 @@ EXPORT_SYMBOL_GPL(device_power_down);* @dev: Device. * @state: Power state device is entering. */ -int suspend_device (struct device *dev,pm_message_t state) +static int suspend_device (struct device *dev,pm_message_t state) {int error =0 ;
Signature · 1 line
1.5.4
Quoted 3 lines · Len Brown
sorry if this is a repeat.
backing down to git 1.5.4 to see if it can send
messages that vger.kernel.org likes...
Any specific reason why the patch I sent one week ago should not not go into 2.6.25-rc2?
ACPI: Do not pass NULL to acpi_get_handle() when looking for _EJD
Thanks,
Holger
Len Brown
reviewerQuoted 10 lines · Holger Macht
Quoted 3 lines · Len Brown
sorry if this is a repeat.
backing down to git 1.5.4 to see if it can send
messages that vger.kernel.org likes...Any specific reason why the patch I sent one week ago should not not go into 2.6.25-rc2?
ACPI: Do not pass NULL to
acpi_get_handle()when looking for_EJD
I didn't notice that one.
it is on the test branch now.
thanks,
-Len