- 21 4月, 2017 7 次提交
-
-
由 Darren Hart (VMware) 提交于
The new hp_wmi_read_int function returns a negative value in case of error, pass this on directly rather than always replacing it with -EINVAL. Signed-off-by: NDarren Hart (VMware) <dvhart@infradead.org> Tested-by: NCarlo Caione <carlo@endlessm.com> Reviewed-by: NAndy Shevchenko <andy.shevchenko@gmail.com>
-
由 Darren Hart (VMware) 提交于
Use the DEVICE_ATTR_(RO|RW) macros, ranaming the show and store functions accordingly. Signed-off-by: NDarren Hart (VMware) <dvhart@infradead.org> Tested-by: NCarlo Caione <carlo@endlessm.com> Reviewed-by: NAndy Shevchenko <andy.shevchenko@gmail.com>
-
由 Darren Hart (VMware) 提交于
Both dock and tablet use the HPWMI_HARDWARE_QUERY, but require different masks. Rather than using two functions with magic masks, define the masks, and use a common accessor. Signed-off-by: NDarren Hart (VMware) <dvhart@infradead.org> Tested-by: NCarlo Caione <carlo@endlessm.com> Reviewed-by: NAndy Shevchenko <andy.shevchenko@gmail.com>
-
由 Darren Hart (VMware) 提交于
Use the new hp_wmi_read_int() function and add a WARN_ONCE() to the TBD regarding passing the error through. These are used in a null return function unfortunately. Signed-off-by: NDarren Hart (VMware) <dvhart@infradead.org> Tested-by: NCarlo Caione <carlo@endlessm.com> Reviewed-by: NAndy Shevchenko <andy.shevchenko@gmail.com>
-
由 Darren Hart (VMware) 提交于
Several functions perform the same WMI read int with different query arguments. Refactor this into a single hp_wmi_read_int function. Signed-off-by: NDarren Hart (VMware) <dvhart@infradead.org> Tested-by: NCarlo Caione <carlo@endlessm.com> Reviewed-by: NAndy Shevchenko <andy.shevchenko@gmail.com>
-
由 Darren Hart (VMware) 提交于
Use enums consistently throughout the hp-wmi driver for groups of related constants. Use hex and align the assignment within groups. Move the *QUERY constants into an enum, create a new enum defining the READ, WRITE, and ODM constants and use them instead of 0 and 1 at the call sites. Set the command directly instead of using the ternary operator since both 1 and 3 as previously documented would result in the command being set to 0x2. Signed-off-by: NDarren Hart (VMware) <dvhart@infradead.org> Tested-by: NCarlo Caione <carlo@endlessm.com> Reviewed-by: NAndy Shevchenko <andy.shevchenko@gmail.com>
-
由 Darren Hart (VMware) 提交于
Declare like types on one line. Order declarations in decreasing length where possible. Signed-off-by: NDarren Hart (VMware) <dvhart@infradead.org> Tested-by: NCarlo Caione <carlo@endlessm.com> Reviewed-by: NAndy Shevchenko <andy.shevchenko@gmail.com>
-
- 20 4月, 2017 1 次提交
-
-
由 Carlo Caione 提交于
All the helper functions (i.e. hp_wmi_dock_state, hp_wmi_tablet_state, ...) using hp_wmi_perform_query to perform an HP WMI query shadow the returned value in case of error. We return -EINVAL only when the HP WMI query returns a positive value (the specific error code) to not mix this up with the actual value returned by the helper function. Suggested-by: NAndy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: NCarlo Caione <carlo@endlessm.com> Signed-off-by: NDarren Hart (VMware) <dvhart@infradead.org>
-
- 14 4月, 2017 2 次提交
-
-
由 Carlo Caione 提交于
The current driver code is not checking for the error values returned by 'hp_wmi_dock_state()' and 'hp_wmi_tablet_state()' before passing the returned values down to 'input_report_switch()'. This error code is being translated to '1' in the input subsystem, reporting the wrong status. The biggest problem caused by this issue is that several laptops are wrongly reported by the driver as docked, preventing them to be put to sleep using the LID (and in most cases they are not even dockable). With this patch we create the report switches only if we are able to read the dock and tablet mode status correctly from ACPI. Signed-off-by: NCarlo Caione <carlo@endlessm.com> Signed-off-by: NDarren Hart (VMware) <dvhart@infradead.org>
-
由 Carlo Caione 提交于
hp_wmi_tablet_state() fails to return the correct error code when hp_wmi_perform_query() returns the HP WMI query specific error code that is a positive value. Signed-off-by: NCarlo Caione <carlo@endlessm.com> Signed-off-by: NDarren Hart (VMware) <dvhart@infradead.org>
-
- 15 3月, 2017 1 次提交
-
-
由 Michał Kępień 提交于
As sparse_keymap_setup() now uses a managed memory allocation for the keymap copy it creates, the latter is freed automatically. Remove all calls to sparse_keymap_free(). Signed-off-by: NMichał Kępień <kernel@kempniu.pl> Signed-off-by: NAndy Shevchenko <andriy.shevchenko@linux.intel.com>
-
- 29 6月, 2016 1 次提交
-
-
由 Alex Hung 提交于
Several users reported wifi cannot be unblocked as discussed in [1]. This patch removes the use of the 2009 flag by BIOS but uses the actual WMI function calls - it will be skipped if WMI reports unsupported. [1] https://bugzilla.kernel.org/show_bug.cgi?id=69131Signed-off-by: NAlex Hung <alex.hung@canonical.com> Tested-by: NEvgenii Shatokhin <eugene.shatokhin@yandex.ru> Cc: stable@vger.kernel.org Signed-off-by: NDarren Hart <dvhart@linux.intel.com>
-
- 24 3月, 2016 2 次提交
-
-
由 Maciej S. Szmigiero 提交于
GPS rfkill support via pre-2009 WMI interface uses hp_wmi_get_sw_state() and hp_wmi_get_hw_state() to query its current hard and soft block state, respectively. In hp_wmi_get_sw_state() a mask is calculated which bit should be checked in an int value returned by firmware to get current block state: 0x200 << (r * 8) which with r being 3 for GPS results in overflow and mask of zero. The same goes for hp_wmi_get_hw_state(). This effectively means that GPS rfkill on this WMI interface is considered always both hard and soft blocked. Unfortunately, later when rfkill subsystem calls hp_wmi_set_block() to sync this block to hardware firmware at least on my old nc6400 gets confused and sets both hard and soft blocks on WiFi and BT. This happens for example on hp-wmi module load. Since due to overflow described above it is dubious that this ever worked correctly and HP laptops with modems having GPS support seem to all have been released well past year 2009 let's just remove GPS rfkill support via pre-2009 WMI interface. Signed-off-by: NMaciej S. Szmigiero <mail@maciej.szmigiero.name> Signed-off-by: NDarren Hart <dvhart@linux.intel.com>
-
由 Maciej S. Szmigiero 提交于
rfkill registration order in hp_wmi_rfkill_setup() is: 1) WiFi, 2) BT, 3) WWAN, 5) GPS. Unregistration when cleaning up on error return should happen in reverse order. This means that: If BT rfkill fails to be allocated we possibly need to first unregister WiFi rfkill before destroying it. The same goes with (WWAN, BT) and (GPS, WWAN) pairs. Also, if WWAN rfkill fails to register we need to (possibly) unregister BT not the GPS one. And if GPS rfkill fails to register we need to unregister WWAN not the BT one. We never need to unregister GPS rfkill here since if GPS rfkill registration succeeds this function returns without error so no cleanup is necessary. Signed-off-by: NMaciej S. Szmigiero <mail@maciej.szmigiero.name> Signed-off-by: NDarren Hart <dvhart@linux.intel.com>
-
- 18 9月, 2015 1 次提交
-
-
由 Kyle Evans 提交于
Do not write initialize magic on systems that do not have feature query 0xb. Fixes Bug #82451. Redefine FEATURE_QUERY to align with 0xb and FEATURE2 with 0xd for code clearity. Add a new test function, hp_wmi_bios_2008_later() & simplify hp_wmi_bios_2009_later(), which fixes a bug in cases where an improper value is returned. Probably also fixes Bug #69131. Add missing __init tag. Signed-off-by: NKyle Evans <kvans32@gmail.com> Cc: stable@vger.kernel.org Signed-off-by: NDarren Hart <dvhart@linux.intel.com>
-
- 07 3月, 2015 1 次提交
-
-
由 Stefan Brüns 提交于
Signed-off-by: NStefan Brüns <stefan.bruens@rwth-aachen.de> Acked-by: NJiri Kosina <jkosina@suse.cz> Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
- 20 10月, 2014 1 次提交
-
-
由 Wolfram Sang 提交于
A platform_driver does not need to set an owner, it will be populated by the driver core. Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
-
- 16 8月, 2014 1 次提交
-
-
由 Mathias Krause 提交于
These functions are only called from other initialization routines, so can be marked __init, too. Signed-off-by: NMathias Krause <minipli@googlemail.com> Signed-off-by: NMatthew Garrett <matthew.garrett@nebula.com>
-
- 11 6月, 2014 1 次提交
-
-
由 Kyle Evans 提交于
This is a third attempt to enable these buttons. The new variable being commit 997daa1b (i.e. hp-wmi: detect "2009 BIOS or later"). Older systems that do not have the 2009 BIOS query method respond with a dummy value, in this case 4. Using that, we can target a fairly narrow group of systems. i.e. old enough to not have HPWMI_FEATURE_QUERY 0xd, but new enough to have HPWMI_BIOS_QUERY 0x9. This group may be further limited if some systems respond with something other than 4 to non-existant feature queries. Signed-off-by: NKyle Evans <kvans32@gmail.com> Signed-off-by: NMatthew Garrett <matthew.garrett@nebula.com>
-
- 21 11月, 2013 1 次提交
-
-
由 Alex Hung 提交于
Some HP BIOS has dummy WMI 0x05 cmd and it causes wireless set cmd to fail. This patch fixes the problem by detecting "2009 BIOS or later" flag which determines whether WMI 0x1b is supported and is used to replace WMI 0x05. Signed-off-by: NAlex Hung <alex.hung@canonical.com> Signed-off-by: NMatthew Garrett <matthew.garrett@nebula.com>
-
- 05 9月, 2013 1 次提交
-
-
由 Kirill Tkhai 提交于
Register order is: wifi bluetooth wwan gps So unregister order must be: gps wwan bluetiith wifi But currently gps and wwan are swapped. Fix that. Also fix goto links. Signed-off-by: NKirill Tkhai <tkhai@yandex.ru> CC: Matthew Garrett <matthew.garrett@nebula.com> Signed-off-by: NMatthew Garrett <matthew.garrett@nebula.com>
-
- 19 8月, 2013 1 次提交
-
-
由 Matthew Garrett 提交于
This reverts commit b253c9d1. It's still causing problems on some systems. Signed-off-by: NMatthew Garrett <matthew.garrett@nebula.com>
-
- 11 7月, 2013 1 次提交
-
-
由 Alex Hung 提交于
HP laptops include a POST code error query 0x2A that reports which point BIOS fails to boot at. The error code is kept in CMOS until it is cleared. Signed-off-by: NAlex Hung <alex.hung@canonical.com> Signed-off-by: NMatthew Garrett <matthew.garrett@nebula.com>
-
- 08 7月, 2013 1 次提交
-
-
由 Matthew Garrett 提交于
Kyle Evans discovered that he needed to set some bits in an EC register in order to receive hotkey events. Doing so blindly broke some otherwise working HP laptops. It turns out that there's a WMI call that accesses the same register, so let's try calling that instead. Signed-off-by: NMatthew Garrett <matthew.garrett@nebula.com> Cc: Kyle Evans <kvans32@gmail.com>
-
- 02 6月, 2013 1 次提交
-
-
由 lan,Tianyu 提交于
HP wmi platform driver fails to initialize GPS and causes poweroff failure in HP Elitebook 6930p. Call Trace: [<ffffffffa088d25a>] hp_wmi_bios_setup+0x25a/0x3a0 [hp_wmi] [<ffffffff8135978c>] platform_drv_probe+0x3c/0x70 [<ffffffff81356d6a>] ? driver_sysfs_add+0x7a/0xb0 [<ffffffff81357407>] driver_probe_device+0x87/0x3a0 [<ffffffff813577f3>] __driver_attach+0x93/0xa0 [<ffffffff81357760>] ? __device_attach+0x40/0x40 [<ffffffff81355403>] bus_for_each_dev+0x63/0xa0 [<ffffffff81356e8e>] driver_attach+0x1e/0x20 [<ffffffff81356a28>] bus_add_driver+0x1f8/0x2b0 [<ffffffff81357e81>] driver_register+0x71/0x150 [<ffffffff813594e6>] platform_driver_register+0x46/0x50 [<ffffffff813595ab>] platform_driver_probe+0x1b/0xa0 [<ffffffffa088d55e>] hp_wmi_init+0x1be/0x1fb [hp_wmi] [<ffffffffa088d3a0>] ? hp_wmi_bios_setup+0x3a0/0x3a0 [hp_wmi] [<ffffffff8100210a>] do_one_initcall+0x10a/0x160 [<ffffffff810bdac6>] load_module+0x1b46/0x2640 [<ffffffff8128da20>] ? ddebug_proc_write+0xf0/0xf0 [<ffffffff810be662>] sys_init_module+0xa2/0xf0 [<ffffffff814d975d>] system_call_fastpath+0x1a/0x1f Code: 48 ff ff ff 80 7b 24 00 74 d2 41 83 e5 01 45 38 ec 74 c9 48 8d bb a0 03 00 00 e8 ed fb aa e0 5b 41 5c 41 5d 44 89 f0 41 5e 5d c3 <0f> 0b 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 66 66 66 66 RIP [<ffffffffa05c57af>] rfkill_set_hw_state+0x9f/0xb0 [rfkill] RSP <ffff880071523b60> Check code and find this error is caused by misusing variable bluetooth_rfkill where gps_rfkill should be. Reported-and-tested-by: NIru Cai <mytbk920423@gmail.com> References: https://bugzilla.kernel.org/show_bug.cgi?id=58401 Cc: All <stable@vger.kernel.org> Signed-off-by: NLan Tianyu <tianyu.lan@intel.com> Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
-
- 09 5月, 2013 1 次提交
-
-
由 Alex Hung 提交于
New HP laptops start generating new events, and hp-wmi prints unknown event_ids for them. This patch also removes these messages Signed-off-by: NAlex Hung <alex.hung@canonical.com> Signed-off-by: NMatthew Garrett <matthew.garrett@nebula.com>
-
- 19 4月, 2013 1 次提交
-
-
由 Matthew Garrett 提交于
This reverts commit fabf85e3 which breaks hotkey support on some other HP laptops. We'll try doing this differently in 3.10. Signed-off-by: NMatthew Garrett <matthew.garrett@nebula.com>
-
- 27 2月, 2013 2 次提交
-
-
由 Dmitry Torokhov 提交于
The driver will not quite work if someone unbinds the platform device from the platform driver via sysfs (moreover it will bomb is the driver built into the kernel as hp_wmi_bios_remove is marked as __exit and will not be present in the kernel). To fix it let's use platform_driver_probe() instead of platform_driver_register(), which disables binding/unbinding via sysfs. This also allows us to mark hp_wmi_bios_setup as __init and discard it once module is initialized. Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: NMatthew Garrett <matthew.garrett@nebula.com>
-
由 Kyle Evans 提交于
Several models of HP laptops using the same DSDT have hotkey buttons that do not work until the EC is configured to enable them. Signed-off-by: NKyle Evans <kvans32@gmail.com> Signed-off-by: NMatthew Garrett <matthew.garrett@nebula.com>
-
- 25 2月, 2013 1 次提交
-
-
由 Trepák Vilmos 提交于
Add rfkill support for the GPS radio found in HP laptops (HP Elitebook 2170p and the like) using the Ericsson F5321/H5321 Mobile Broadband Module. Signed-off-by: NViliam Trepák <trepo@netcomga.sk> Signed-off-by: NMatthew Garrett <matthew.garrett@nebula.com>
-
- 04 1月, 2013 1 次提交
-
-
由 Greg Kroah-Hartman 提交于
CONFIG_HOTPLUG is going away as an option. As a result, the __dev* markings need to be removed. This change removes the use of __devinit, __devexit_p, __devinitdata, __devinitconst, and __devexit from these drivers. Based on patches originally written by Bill Pemberton, but redone by me in order to handle some of the coding style issues better, by hand. Cc: Bill Pemberton <wfp5p@virginia.edu> Cc: Joey Lee <jlee@novell.com> Cc: Matthew Garrett <mjg@redhat.com> Cc: Peter Feuerer <peter@piie.net> Cc: Corentin Chary <corentin.chary@gmail.com> Cc: Cezary Jackiewicz <cezary.jackiewicz@gmail.com> Cc: Robert Gerlach <khnz@gmx.de> Cc: Ike Panhc <ike.pan@canonical.com> Cc: Henrique de Moraes Holschuh <ibm-acpi@hmh.eng.br> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
- 01 6月, 2012 1 次提交
-
-
由 Dan Carpenter 提交于
rfkill_alloc() returns NULL on failure. Check for it, to make the static checkers happy. Signed-off-by: NDan Carpenter <dan.carpenter@oracle.com> Signed-off-by: NMatthew Garrett <mjg@redhat.com>
-
- 11 7月, 2011 1 次提交
-
-
由 Eric Dumazet 提交于
[ 191.310008] WARNING: kmemcheck: Caught 32-bit read from freed memory (f0d25f14) [ 191.310011] c056d2f088000000105fd2f00000000050415353040000000000000000000000 [ 191.310020] i i i i f f f f f f f f f f f f f f f f f f f f f f f f f f f f [ 191.310027] ^ [ 191.310029] [ 191.310032] Pid: 737, comm: modprobe Not tainted 3.0.0-rc5+ #268 Hewlett-Packard HP Compaq 6005 Pro SFF PC/3047h [ 191.310036] EIP: 0060:[<f80b3104>] EFLAGS: 00010286 CPU: 0 [ 191.310039] EIP is at hp_wmi_perform_query+0x104/0x150 [hp_wmi] [ 191.310041] EAX: f0d25601 EBX: f0d25f00 ECX: 000121cf EDX: 000121ce [ 191.310043] ESI: f0d25f10 EDI: f0f97ea8 EBP: f0f97ec4 ESP: c173f34c [ 191.310045] DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 [ 191.310046] CR0: 8005003b CR2: f540c000 CR3: 30f30000 CR4: 000006d0 [ 191.310048] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000 [ 191.310050] DR6: ffff4ff0 DR7: 00000400 [ 191.310051] [<f80b317b>] hp_wmi_dock_state+0x2b/0x40 [hp_wmi] [ 191.310054] [<f80b6093>] hp_wmi_init+0x93/0x1a8 [hp_wmi] [ 191.310057] [<c10011f0>] do_one_initcall+0x30/0x170 [ 191.310061] [<c107ab9f>] sys_init_module+0xef/0x1a60 [ 191.310064] [<c149f998>] sysenter_do_call+0x12/0x28 [ 191.310067] [<ffffffff>] 0xffffffff Signed-off-by: NEric Dumazet <eric.dumazet@gmail.com> Signed-off-by: NMatthew Garrett <mjg@redhat.com>
-
- 28 5月, 2011 1 次提交
-
-
由 Joe Perches 提交于
Added pr_fmt and converted printks to pr_<level>. Removed now unused PREFIX and UNIMPL #defines. Signed-off-by: NJoe Perches <joe@perches.com> Signed-off-by: NMatthew Garrett <mjg@redhat.com>
-
- 28 3月, 2011 6 次提交
-
-
由 Anssi Hannula 提交于
Some recent HP laptops use a new wireless query command type 0x1b. Add support for it. Tested on HP Mini 5102. Signed-off-by: NAnssi Hannula <anssi.hannula@iki.fi> Signed-off-by: NMatthew Garrett <mjg@redhat.com>
-
由 Anssi Hannula 提交于
hp_wmi_rfkill_setup cleans up after itself now, so failing completely is no longer necessary. Signed-off-by: NAnssi Hannula <anssi.hannula@iki.fi> Signed-off-by: NMatthew Garrett <mjg@redhat.com>
-
由 Anssi Hannula 提交于
NULLify rfkill pointers during initialization. This prevents dereference of invalid pointer in case the driver is rebound and some rfkill device isn't detected anymore. Clear them also in hp_wmi_rfkill_setup failure path so that an rfkill initialization failure doesn't need to be fatal for the whole driver. Signed-off-by: NAnssi Hannula <anssi.hannula@iki.fi> Signed-off-by: NMatthew Garrett <mjg@redhat.com>
-
由 Anssi Hannula 提交于
Split initialization of rfkill devices from hp_wmi_bios_setup() to hp_wmi_rfkill_setup(). This makes the code somewhat cleaner, especially with the future command 0x1b rfkill support. Signed-off-by: NAnssi Hannula <anssi.hannula@iki.fi> Signed-off-by: NMatthew Garrett <mjg@redhat.com>
-
由 Anssi Hannula 提交于
Split buffersize parameter of hp_wmi_perform_query to insize and outsize. Existing callers are changed to use the same value for insize and outsize to avoid any regressions, with the exception of hp_wmi_set_block where the output buffer is unused and therefore outsize is set to 0 (this change is not seen by BIOS code). The maximum input buffer size is kept at 4 bytes as per struct bios_args. Some commands exist that take longer buffers, but they haven't been implemented. The data portion of bios_args can be trivially made dynamically allocated later when such larger buffers become needed. Signed-off-by: NAnssi Hannula <anssi.hannula@iki.fi> Signed-off-by: NMatthew Garrett <mjg@redhat.com>
-
由 Anssi Hannula 提交于
Remove the status variable from hp_wmi_perform_query which holds the return value from wmi_evaluate_method(). It is never checked as the function bails out if the output buffer hasn't been allocated which indicates the call failed. Signed-off-by: NAnssi Hannula <anssi.hannula@iki.fi> Signed-off-by: NMatthew Garrett <mjg@redhat.com>
-