aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2010-08-03ips driver: make it less chattyJesse Barnes1-2/+2
We don't need a dev_warn when we exceed a thermal or power limit as we'll handle it appropriately by clamping down on the CPU, GPU or both as needed. Signed-off-by: Jesse Barnes <[email protected]> Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03intel_scu_ipc: fix size field for intel_scu_ipc_commandHong Liu1-1/+1
Size for PMIC read/write command is byte, while it is DWORD for other IPC commands. Signed-off-by: Hong Liu <[email protected]> Signed-off-by: ALan Cox <[email protected]> Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03intel_scu_ipc: return -EIO for error condition in busy_loopHong Liu1-1/+4
Signed-off-by: Hong Liu <[email protected]> Signed-off-by: Alan Cox <[email protected]> Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03intel_scu_ipc: fix data packing of PMIC command on MoorestownHong Liu1-5/+6
Data is 2-byte per entry for PMIC read-modify-update command. Signed-off-by: Hong Liu <[email protected]> Signed-off-by: Alan Cox <[email protected]> Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03Clean up command packing on MRST.Andy Ross1-18/+11
Don't pass more bytes in the command length field than we filled. Signed-off-by: Andy Ross <[email protected]> Signed-off-by: Alan Cox <[email protected]> Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03zero the stack buffer before giving random garbage to the SCUArjan van de Ven1-0/+2
some messages take 4 bytes, but only fill 3 bytes.... this patch makes sure that whatever we send to the SCU is zeroed first Signed-off-by: Arjan van de Ven <[email protected]> Signed-off-by: Alan Cox <[email protected]> Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03Fix stack buffer size for IPC writev messagesArjan van de Ven1-2/+2
The stack buffer for IPC messages was 16 bytes, limiting messages to a size of 4 (each message is 32 bit). However, the touch screen driver is trying to send messages of size 5.... (AC: Set to 20 bytes having checked the max size allowed) Signed-off-by: Arjan van de Ven <[email protected]> Signed-off-by: Alan Cox <[email protected]> Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03intel_scu_ipc: Use the new cpu identification functionAlan Cox1-12/+5
This provides an architecture level board identify function to replace the cpuid direct usage Signed-off-by: Alan Cox <[email protected]> Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03intel_scu_ipc: tidy up unused bitsSreedhara DS1-4/+0
Delete unused constants IPC_CMD_INDIRECT_RD and IPC_CMD_INDIRECT_WR Remove multiple inclusion of header file "asm/mrst.h" Signed-off-by: Sreedhara DS <[email protected]> Signed-off-by: Alan Cox <[email protected]> Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03Remove indirect read write api support.Sreedhara DS2-96/+0
The firmware of production devices does not support this interface so this is dead code. Signed-off-by: Sreedhara DS <[email protected]> Signed-off-by: Alan Cox <[email protected]> Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03intel_scu_ipc: Support Medfield processorsSreedhara DS1-20/+33
Changes to work on bothMmoorestown and Medfield New pci id added for Medfield Return type of ipc_data_readl chnaged from u8 to u32 Signed-off-by: Sreedhara DS <[email protected]> Signed-off-by: Alan Cox <[email protected]> Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03intel_scu_ipc: detect CPU type automaticallySreedhara DS1-7/+12
Intel SCU message formats depend upon the processor type. Replace the module option with automatic detection of the processor type. Signed-off-by: Sreedhara DS <[email protected]> Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03x86 plat: limit x86 platform driver menu to X86Jan Engelhardt1-0/+1
My .config contains ACER_WMI=m. On SPARC. That does not make sense. Restrict the x86 platform driver menu to x86. Signed-off-by: Jan Engelhardt <[email protected]> Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03acpi ec_sys: Be more cautious about ec write accessThomas Renninger2-10/+32
- Set Kconfig option default n - Only allow root to read/write io file (sever bug!) - Introduce write support module param -> default off - Properly clean up if any debugfs files cannot be created Signed-off-by: Thomas Renninger <[email protected]> CC: [email protected] CC: [email protected] CC: [email protected] CC: [email protected] Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03acpi ec: Fix possible double io port registrationThomas Renninger1-10/+10
which will result in a harmless but ugly WARN message on some machines. Signed-off-by: Thomas Renninger <[email protected]> CC: [email protected] CC: [email protected] CC: [email protected] CC: [email protected] CC: [email protected] Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03hp-wmi: acpi_drivers.h is already included through acpi.h two lines belowThomas Renninger1-1/+0
Signed-off-by: Thomas Renninger <[email protected]> CC: [email protected] CC: [email protected] CC: [email protected] Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03hp-wmi: Fix mixing up of and/or directiveThomas Renninger1-1/+3
This should have been an "and". Additionally checking for !obj is even better. Signed-off-by: Thomas Renninger <[email protected]> CC: [email protected] CC: [email protected] CC: [email protected] Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03dell-laptop: make dell_laptop_i8042_filter() staticAxel Lin1-1/+1
Make dell_laptop_i8042_filter() static as it's used only in dell-laptop.c Signed-off-by: Axel Lin <[email protected]> Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03asus-laptop: fix asus_input_init error pathAxel Lin1-5/+5
This patch includes below fixes: 1. return -ENOMEM instead of 0 if input_allocate_device fail. 2. fix wrong goto if sparse_keymap_setup fail. 3. fix wrong goto if input_register_device fail. Signed-off-by: Axel Lin <[email protected]> Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03msi-wmi: make needlessly global symbols staticAxel Lin1-1/+1
backlight is needlessly defined global. This patch makes the symbol static. Signed-off-by: Axel Lin <[email protected]> Acked-by: Anisse Astier <[email protected]> Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03toshiba-acpi: Add support for Toshiba Illumination.Pierre Ducroquet1-0/+117
Add support for Toshiba Illumination. This is a set of LEDs installed on some Toshiba laptops. It is controlled through ACPI, the commands has been found through reverse engineering. It has been tested on a Toshiba Qosmio G50-122. Signed-off-by: Pierre Ducroquet <[email protected]> Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03compal-laptop: depends on POWER_SUPPLYRandy Dunlap1-0/+1
compal-laptop uses power_supply interfaces so it should depend on POWER_SUPPLY. ERROR: "power_supply_register" [drivers/platform/x86/compal-laptop.ko] undefined! ERROR: "power_supply_unregister" [drivers/platform/x86/compal-laptop.ko] undefined! Signed-off-by: Randy Dunlap <[email protected]> Cc: Cezary Jackiewicz <[email protected]> Cc: Matthew Garrett <[email protected]> Cc: [email protected] Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03gpio: Add PMIC GPIO block supportAlek Du4-0/+364
Moorestown has PMIC chip which contains GPIO blocks. The PMIC chip is connected to Langwell by SPI interface. So this GPIO driver will be regarded as SPI GPIO expander though the actual GPIO access is through IPC and SRAM. The SPI master contoller will probe this device driver by parsing SPIB table. Cleaned up for new IPC, GPE removed and some printk and other tidying by Alan Cox. Fixes for points noted by Matthew Garrett Signed-off-by: Alek Du <[email protected]> Signed-off-by: Alan Cox <[email protected]> Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03ACPI: Register EC io ports in /proc/ioportsThomas Renninger1-2/+10
Formerly these have been exposed through /proc/.. Better register them where all IO ports should get registered and scream loud if someone else claims to use them. EC data and command port typically should show up like this then: ... 0060-0060 : keyboard 0062-0062 : EC data 0064-0064 : keyboard 0066-0066 : EC command 0070-0071 : rtc0 ... Signed-off-by: Thomas Renninger <[email protected]> CC: Alexey Starikovskiy <[email protected]> CC: Len Brown <[email protected]> CC: [email protected] CC: [email protected] CC: Bjorn Helgaas <[email protected]> CC: [email protected] Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03ACPI: Provide /sys/kernel/debug//ec/ec0/io for binary access to the ECThomas Renninger1-0/+86
A userspace app to easily read/write the EC can be found here: ftp://ftp.suse.com/pub/people/trenn/sources/ec/ec_access.c Multiple ECs are not supported, but shouldn't be hard to add as soon as the ec driver itself will support them. Signed-off-by: Thomas Renninger <[email protected]> CC: Alexey Starikovskiy <[email protected]> CC: Len Brown <[email protected]> CC: [email protected] CC: [email protected] CC: [email protected] Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03ACPI: Provide /sys/kernel/debug/ec/...Thomas Renninger5-13/+100
This patch provides the same information through debugfs, which previously was provided through /proc/acpi/embedded_controller/*/info This is the gpe the EC is connected to and whether the global lock gets used. The io ports used are added to /proc/ioports in another patch. Beside the fact that /proc/acpi is deprecated for quite some time, this info is not needed for applications and thus can be moved to debugfs instead of a public interface like /sys. Signed-off-by: Thomas Renninger <[email protected]> CC: Alexey Starikovskiy <[email protected]> CC: Len Brown <[email protected]> CC: [email protected] CC: [email protected] CC: Bjorn Helgaas <[email protected]> CC: [email protected] Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03Documentation: Add new /sys/kernel/debug/ec/* files to ABIThomas Renninger1-0/+20
Signed-off-by: Thomas Renninger <[email protected]> CC: Alexey Starikovskiy <[email protected]> CC: Len Brown <[email protected]> CC: [email protected] CC: [email protected] CC: [email protected] Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03X86 platform driver: Fix section mismatch in wmi.cThomas Renninger1-2/+2
The .add function must not be declared __init. Signed-off-by: Thomas Renninger <[email protected]> CC: Alexey Starikovskiy <[email protected]> CC: Len Brown <[email protected]> CC: [email protected] CC: [email protected] CC: [email protected] Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03X86 platform drivers: Remove EC dump from thinkpad_acpiThomas Renninger2-133/+11
There is a general interface for that now (provided by other patches in this patch series): /sys/kernel/debug/ec/*/io Signed-off-by: Thomas Renninger <[email protected]> CC: Alexey Starikovskiy <[email protected]> CC: Len Brown <[email protected]> CC: [email protected] CC: [email protected] CC: [email protected] CC: Henrique de Moraes Holschuh <[email protected]> CC: [email protected] Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03ACPI: Remove /proc/acpi/embedded_controller/..Thomas Renninger1-80/+1
Other patches in this series add the same info to /sys/... and /proc/ioports. The info removed should never have been used in an application, eventually someone read it manually. /proc/acpi is deprecated for more than a year anyway... Signed-off-by: Thomas Renninger <[email protected]> CC: Alexey Starikovskiy <[email protected]> CC: Len Brown <[email protected]> CC: [email protected] CC: [email protected] CC: [email protected] Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03panasonic-laptop: fix acpi_pcc_write_sset return valueAxel Lin1-5/+2
In current implementation, acpi_pcc_write_sset return 1 if write is successful, 0 if write is failed. But all the callers consider acpi_pcc_write_sset return 0 if write is successful and return negtive if write is failed. This patch changes the implementation of acpi_pcc_write_sset to return 0 if write is successful, -EIO if write is failed. Signed-off-by: Axel Lin <[email protected]> Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03eeepc-laptop: fix hotplug_disabled module_param permissionsAxel Lin1-1/+1
The hotplug_disabled module parameter is determinated at the module load time. Change the value after the module is loaded does not make sense and has no effect at all, thus set the permissions to 0444 instead of 0644. Signed-off-by: Axel Lin <[email protected]> Cc: Corentin Chary <[email protected]> Cc: Matthew Garrett <[email protected]> Cc: Alan Jenkins <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03asus-laptop: fix wapf, wlan_status and bluetooth_status module_param permissionsAxel Lin1-3/+3
The wapf module parameters defines the behavior of the Fn+Fx wlan key. The wlan_status and bluetooth_status module parameters are for setting the wlan/bluetooth status on boot. All above module parameters are determinated only at the module load time. Change the value after the module is loaded does not make sense and has no effect at all, thus set the permissions to 0444 instead of 0644. Signed-off-by: Axel Lin <[email protected]> Cc: Corentin Chary <[email protected]> Cc: Matthew Garrett <[email protected]> Cc: Alan Jenkins <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03acer-wmi: remove non-used acer_quirks struct definitionAxel Lin1-11/+0
Remove non-used acer_quirks struct definition. Signed-off-by: Axel Lin <[email protected]> Cc: Carlos Corbacho <[email protected]> Cc: Matthew Garrett <[email protected]> Cc: Thomas Renninger <[email protected]> Cc: Alan Jenkins <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03acer-wmi: fix memory leaks in wmab_execute error pathAxel Lin1-8/+16
When acpi_evaluate_object() is passed ACPI_ALLOCATE_BUFFER, the caller must kfree the returned buffer if AE_OK is returned. Call Trace: wmab_execute -> wmi_evaluate_method -> acpi_evaluate_object Thus if callers of wmab_execute() pass ACPI_ALLOCATE_BUFFER, the return buffer must be kfreed if wmab_execute return AE_OK. [[email protected]: avoid multiple return points, remove unneeded cast, remove unneeded initialisation of `status'] Signed-off-by: Axel Lin <[email protected]> Acked-by: Carlos Corbacho <[email protected]> Cc: Matthew Garrett <[email protected]> Cc: Thomas Renninger <[email protected]> Cc: Alan Jenkins <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03acer-wmi: fix memory leaks in WMID_set_capabilities and get_wmid_devicesAxel Lin1-3/+7
When acpi_evaluate_object() is passed ACPI_ALLOCATE_BUFFER, the caller must kfree the returned buffer if AE_OK is returned. The callers of wmi_query_block() pass ACPI_ALLOCATE_BUFFER, and thus must check its return value before accessing or kfree() on the buffer. This patch adds a missing kfree(out.pointer) before exit WMID_set_capabilities() and get_wmid_devices(). Signed-off-by: Axel Lin <[email protected]> Acked-by: Carlos Corbacho <[email protected]> Cc: Matthew Garrett <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03toshiba_acpi: rename add_device() and remove_device() to ↵Axel Lin1-4/+4
create_toshiba_proc_entries() and remove_toshiba_proc_entries() To improve readability rename add_device() to create_toshiba_proc_entries() and rename remove_device() to remove_toshiba_proc_entries(). Signed-off-by: Axel Lin <[email protected]> Cc: Matthew Garrett <[email protected]> Cc: Márton Németh <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03hp-wmi: add return value checking for input_allocate_device()Axel Lin1-0/+2
Add error checking and return -ENOMEM if input_allocate_device() fail. Signed-off-by: Axel Lin <[email protected]> Acked-by: Thomas Renninger <[email protected]> Cc: Matthew Garrett <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03toshiba_acpi: make remove_device() and add_device() voidAxel Lin1-11/+3
remove_device() and add_device() are not related to ACPI APIs, it does not make sense to return acpi_status for both functions. Current implementation of add_device() always AE_OK, thus the return value checking for add_device() always return false for ACPI_FAILURE(status). This patch makes add_device() to be void and remove the unnecessary return value checking. remove_proc_entry() won't fail, thus change remove_device() to be void. Signed-off-by: Axel Lin <[email protected]> Cc: Matthew Garrett <[email protected]> Cc: Márton Németh <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03acerhdf: fix resource reclaim in error pathAxel Lin1-7/+16
Fix resource reclaim in below cases: 1. acerhdf_register_platform() does not properly handle platform_device_alloc() failure and platform_device_add() failure This patch adds error handing for acerhdf_register_platform(). 2. acerhdf_register_platform() return err with acerhdf_dev == NULL. as a result, acerhdf_unregister_platform() does not do resource reclaim in acerhdf_init() error path. This patch adds error handing for acerhdf_register_platform(), thus correct the error handing path in acerhdf_init(). goto out_err instead of err_unreg if acerhdf_register_platform() fail. 3. platform_device_del() should only used in error handling. Current implementation missed a platform_device_put() in acerhdf_exit. This patch fixes it by using platform_device_unregister() instead of platform_device_del() in acerhdf_unregister_platform. Signed-off-by: Axel Lin <[email protected]> Acked-by: Peter Feuerer <[email protected]> Cc: Matthew Garrett <[email protected]> Acked-by: Borislav Petkov <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03asus-laptop: return proper error for store_ledd if write_acpi_int failAxel Lin1-3/+4
In current implementation, store_ledd() does not return error if write_acpi_int fail. This patch fixes it by return -ENODEV if write_acpi_int fail. Signed-off-by: Axel Lin <[email protected]> Cc: Matthew Garrett <[email protected]> Cc: Corentin Chary <[email protected]> Cc: Alan Jenkins <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03asus-laptop: fix incorrect return value for write_acpi_int_ret if handle is NULLAxel Lin1-1/+1
According to the comments of write_acpi_int_ret(), write_acpi_int_ret() should return 0 if write is successful, -1 else. Thus if handle is NULL, the write does not happen, it should return -1. Signed-off-by: Axel Lin <[email protected]> Cc: Matthew Garrett <[email protected]> Cc: Corentin Chary <[email protected]> Cc: Alan Jenkins <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03msi-laptop: make struct rfkill_ops constAxel Lin1-3/+3
rfkill uses a const struct rfkill_ops pointer. Signed-off-by: Axel Lin <[email protected]> Cc: Matthew Garrett <[email protected]> Cc: Lennart Poettering <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03fujitsu-laptop: make needlessly global symbols staticAxel Lin1-2/+2
The following symbols are needlessly defined global: logolamp_led kblamps_led This patch makes the symbols static. Signed-off-by: Axel Lin <[email protected]> Cc: Matthew Garrett <[email protected]> Acked-by: Jonathan Woithe <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03classmate-laptop: make needlessly global symbols staticAxel Lin1-1/+1
cmpc_accel_sensitivity_attr is needlessly defined global. This patch makes the symbol static. Signed-off-by: Axel Lin <[email protected]> Acked-by: Thadeu Lima de Souza Cascardo <[email protected]> Cc: Daniel Oliveira Nascimento <[email protected]> Cc: Matthew Garrett <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03acerhdf: make needlessly global symbols staticAxel Lin1-5/+5
The following symbols are needlessly defined global: thz_dev cl_dev acerhdf_dev acerhdf_dev_ops acerhdf_cooling_ops This patch makes the symbols static. Signed-off-by: Axel Lin <[email protected]> Acked-by: Borislav Petkov <[email protected]> Acked-by: Peter Feuerer <[email protected]> Cc: Matthew Garrett <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03asus_acpi: fix coding style to improve readabilityAxel Lin1-3/+3
In the case of no match ( hotk->model == END_MODEL ), the only posible case to return 0 is to have a Samsung P30 detected. This patch improves readability by moving related code after if/else clause to be inside if clause. Signed-off-by: Axel Lin <[email protected]> Cc: Corentin Chary <[email protected]> Cc: Karol Kozimor <[email protected]> Cc: Matthew Garrett <[email protected]> Cc: Len Brown <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03asus_acpi: fix a memory leak in asus_hotk_get_info()Axel Lin1-2/+3
In the case of no match ( hotk->model == END_MODEL ), model sholud be kfreed before return AE_OK. This patch includes below fixes: 1. adds a missing kfree(model) before return AE_OK. 2. asus_hotk_get_info should return int, thus return 0 instead of AE_OK. Signed-off-by: Axel Lin <[email protected]> Cc: Corentin Chary <[email protected]> Cc: Karol Kozimor <[email protected]> Cc: Matthew Garrett <[email protected]> Cc: Len Brown <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03compal-laptop/fujitsu-laptop/msi-laptop: make dmi_check_cb to return 1 ↵Axel Lin3-5/+5
instead of 0 dmi_check_system() walks the table running matching functions until someone returns non zero or we hit the end. This patch makes dmi_check_cb to return 1 so dmi_check_system() return immediately when a match is found. Signed-off-by: Axel Lin <[email protected]> Acked-by: Jonathan Woithe <[email protected]> Cc: Matthew Garrett <[email protected]>a Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Matthew Garrett <[email protected]>
2010-08-03compal-laptop: add JHL90, battery & hwmon interfaceRoald Frederickx1-105/+822
The driver now supports the Compal JHL90 (which I use) and it has some added features. The biggest novelties are a battery interface (power_supply) and a temperature and fan control interface (hmwon). It also adds a power-off feature to the backlight subsystem and it exports a few files that can enable/disable wake_on_XXX events. Much of the original code of the old features is still there, but I've changed some names to keep the naming more coherent with the added functionalities. (Sorry for the huge patch) Some technical stuff about the new driver: First of all, I'm not sure if the extra features also work on the other Compal boards. Currently they only get enabled if the DMI data indicates you are on a JHL90 board. Secondly, I've noticed a quirk in my fan controller. I have to re-send the wanted pwm-level to the controller every so often. If I don't do this, the fanspeed will slowly rise until after a couple of minutes it's at full speed. (Note that every normal userland application will probably update the pwm-level every so often anyway, based on temperature readings, so this might not be an issue in practice) If this turns out to be a problem with all the controllers, maybe we should implement a kernel timer and have the driver re-send the pwm level every XX seconds to make this transparent to userspace? (However, I couldn't immediately find a way to do this cleanly.) Additional information can be found in the source comments. [[email protected]: coding-style fixes] [[email protected]: add missing semicolon] Signed-off-by: Roald Frederickx <[email protected]> Cc: Matthew Garrett <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Matthew Garrett <[email protected]>