- 15 6月, 2015 1 次提交
-
-
由 Javier Martinez Canillas 提交于
Commit 1b84f2a4 ("mfd: cros_ec: Use fixed size arrays to transfer data with the EC") modified the struct cros_ec_command fields to not use pointers for the input and output buffers and use fixed length arrays instead. This change was made because the cros_ec ioctl API uses that struct cros_ec_command to allow user-space to send commands to the EC and to get data from the EC. So using pointers made the API not 64-bit safe. Unfortunately this approach was not flexible enough for all the use-cases since there may be a need to send larger commands on newer versions of the EC command protocol. So to avoid to choose a constant length that it may be too big for most commands and thus wasting memory and CPU cycles on copy from and to user-space or having a size that is too small for some big commands, use a zero-length array that is both 64-bit safe and flexible. The same buffer is used for both output and input data so the maximum of these values should be used to allocate it. Suggested-by: NGwendal Grignou <gwendal@chromium.org> Signed-off-by: NJavier Martinez Canillas <javier.martinez@collabora.co.uk> Tested-by: NHeiko Stuebner <heiko@sntech.de> Acked-by: NLee Jones <lee.jones@linaro.org> Acked-by: NOlof Johansson <olof@lixom.net> Signed-off-by: NLee Jones <lee.jones@linaro.org>
-
- 07 4月, 2015 1 次提交
-
-
由 Tomeu Vizoso 提交于
As the comment right before explains, the keyboard state is to be cleared only if the EC wasn't a wakeup source in the last suspend. Without this commit, there's an unneeded delay when resuming from suspend and we also lose the key that was pressed while suspended. Signed-off-by: NTomeu Vizoso <tomeu.vizoso@collabora.com> Reviewed-by: NJavier Martinez Canillas <javier.martinez@collabora.co.uk> Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
- 27 2月, 2015 1 次提交
-
-
由 Javier Martinez Canillas 提交于
The struct cros_ec_command will be used as an ioctl() argument for the API to control the ChromeOS EC from user-space. So the data structure has to be 64-bit safe to make it compatible between 32 and 64 avoiding the need for a compat ioctl interface. Since pointers are self-aligned to different byte boundaries, use fixed size arrays instead of pointers for transferring ingoing and outgoing data with the Embedded Controller. Also, re-arrange struct members by decreasing alignment requirements to reduce the needing padding size. Signed-off-by: NJavier Martinez Canillas <javier.martinez@collabora.co.uk> Acked-by: NLee Jones <lee.jones@linaro.org> Tested-by: NGwendal Grignou <gwendal@chromium.org> Reviewed-by: NGwendal Grignou <gwendal@chromium.org> Signed-off-by: NOlof Johansson <olof@lixom.net>
-
- 10 10月, 2014 1 次提交
-
-
由 Sjoerd Simons 提交于
To enable the cros_ec_keyb driver to be auto-loaded when build as module add an of match table (and export it) to match the modalias information passed on to userspace as the Cros EC MFD driver registers the MFD subdevices with an of_compatibility string. Signed-off-by: NSjoerd Simons <sjoerd.simons@collabora.co.uk> Reviewed-by: NJavier Martinez Canillas <javier.martinez@collabora.co.uk> Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
- 07 10月, 2014 1 次提交
-
-
由 Andrew Bresticker 提交于
Instead of having users of the ChromeOS EC call the interface-specific cmd_xfer() callback directly, introduce a central cros_ec_cmd_xfer() to use instead. This will allow us to put all the locking and retry logic in one place instead of duplicating it across the different drivers. Signed-off-by: NAndrew Bresticker <abrestic@chromium.org> Reviewed-by: NSimon Glass <sjg@chromium.org> Signed-off-by: NJavier Martinez Canillas <javier.martinez@collabora.co.uk> Reviewed-by: NDoug Anderson <dianders@chromium.org> Signed-off-by: NLee Jones <lee.jones@linaro.org>
-
- 04 9月, 2014 1 次提交
-
-
由 Todd Broch 提交于
Previous algorithm was a bit conservative and complicating with respect to identifying key ghosting. This CL uses the bitops hamming weight function (hweight8) to count the number of matching rows for colM & colN. If that number is > 1 ghosting is present. Additionally it removes NULL keys and our one virtual keypress KEY_BATTERY from consideration as these inputs are never physical keypresses. Signed-off-by: NTodd Broch <tbroch@chromium.org> Reviewed-by: NVincent Palatin <vpalatin@chromium.org> Reviewed-by: NLuigi Semenzato <semenzato@chromium.org> Tested-by: NAndreas Färber <afaerber@suse.de> Signed-off-by: NJavier Martinez Canillas <javier.martinez@collabora.co.uk> Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
- 09 7月, 2014 2 次提交
-
-
由 Andrew Bresticker 提交于
If we receive EC interrupts after the cros_ec driver has probed, but before the cros_ec_keyb driver has probed, the cros_ec IRQ handler will not run the cros_ec_keyb notifier and the EC will leave the IRQ line asserted. The cros_ec IRQ handler then returns IRQ_HANDLED and the resulting flood of interrupts causes the machine to hang. Since the EC interrupt is currently only used for the keyboard, move the setup and handling of the EC interrupt to the cros_ec_keyb driver. Signed-off-by: NAndrew Bresticker <abrestic@chromium.org> Signed-off-by: NDoug Anderson <dianders@chromium.org> Acked-by: NDmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: NLee Jones <lee.jones@linaro.org>
-
由 Bill Richardson 提交于
Remove the three wrapper functions that talk to the EC without passing all the desired arguments and just use the underlying communication function that passes everything in a struct intead. This is internal code refactoring only. Nothing should change. Signed-off-by: NBill Richardson <wfrichar@chromium.org> Signed-off-by: NDoug Anderson <dianders@chromium.org> Reviewed-by: NSimon Glass <sjg@chromium.org> Acked-by: NWolfram Sang <wsa@the-dreams.de> Acked-by: NDmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: NLee Jones <lee.jones@linaro.org>
-
- 01 1月, 2014 1 次提交
-
-
由 Doug Anderson 提交于
The driver can't deal with two entries its keymap having the same keycode. When this happens it will get confused about whether the key is down or up and will cause some screwy behavior. We need to have two entries for KEY_BACKSLASH to handle US and UK keyboards. Specifically: * On the US keyboard the backslash key (above enter) is r3 c11 and is supposed to be reported as BACKSLASH. * On the UK keyboard the # key (left of enter) is r4 c10 and is supposed to be reported as BACKSLASH. * On the UK keyboard the \ key (left of Z) is r2 c7 and is supposed to be reported as KEY_102ND. Note that both keyboards (US and UK) have only one physical backslash key so the constraint that each physical key should have its own keycode still stands. Signed-off-by: NDoug Anderson <dianders@chromium.org> Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
- 23 6月, 2013 1 次提交
-
-
由 Geert Uytterhoeven 提交于
If CONFIG_PM_SLEEP is not set: drivers/input/keyboard/cros_ec_keyb.c:211: warning: ‘cros_ec_keyb_clear_keyboard’ defined but not used Move the definition of cros_ec_keyb_clear_keyboard() inside the section protected by #ifdef CONFIG_PM_SLEEP to fix this. Signed-off-by: NGeert Uytterhoeven <geert@linux-m68k.org> Acked-by: NSimon Glass <sjg@chromium.org> Acked-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
- 05 4月, 2013 1 次提交
-
-
由 Simon Glass 提交于
Use the key-matrix layer to interpret key scan information from the EC and inject input based on the FDT-supplied key map. This driver registers itself with the ChromeOS EC driver to perform communications. The matrix-keypad FDT binding is used with a small addition to control ghosting. Signed-off-by: NSimon Glass <sjg@chromium.org> Signed-off-by: NLuigi Semenzato <semenzato@chromium.org> Signed-off-by: NVincent Palatin <vpalatin@chromium.org> Acked-by: NDmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: NSamuel Ortiz <sameo@linux.intel.com>
-