lkml.org 
[lkml]   [2014]   [Apr]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.4 025/134] HID: clean up quirk for Sony RF receivers
    Date
    3.4-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Fernando Luis Vazquez Cao <fernando@oss.ntt.co.jp>

    commit 99d249021abd4341771523ed8dd7946276103432 upstream.

    Document what the fix-up is does and make it more robust by ensuring
    that it is only applied to the USB interface that corresponds to the
    mouse (sony_report_fixup() is called once per interface during probing).

    Cc: linux-input@vger.kernel.org
    Cc: linux-usb@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Fernando Luis Vazquez Cao <fernando@oss.ntt.co.jp>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Cc: Yijing Wang <wangyijing@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/hid/hid-sony.c | 14 ++++++++++++--
    1 file changed, 12 insertions(+), 2 deletions(-)

    --- a/drivers/hid/hid-sony.c
    +++ b/drivers/hid/hid-sony.c
    @@ -44,9 +44,19 @@ static __u8 *sony_report_fixup(struct hi
    {
    struct sony_sc *sc = hid_get_drvdata(hdev);

    - if ((sc->quirks & VAIO_RDESC_CONSTANT) &&
    - *rsize >= 56 && rdesc[54] == 0x81 && rdesc[55] == 0x07) {
    + /*
    + * Some Sony RF receivers wrongly declare the mouse pointer as a
    + * a constant non-data variable.
    + */
    + if ((sc->quirks & VAIO_RDESC_CONSTANT) && *rsize >= 56 &&
    + /* usage page: generic desktop controls */
    + /* rdesc[0] == 0x05 && rdesc[1] == 0x01 && */
    + /* usage: mouse */
    + rdesc[2] == 0x09 && rdesc[3] == 0x02 &&
    + /* input (usage page for x,y axes): constant, variable, relative */
    + rdesc[54] == 0x81 && rdesc[55] == 0x07) {
    hid_info(hdev, "Fixing up Sony RF Receiver report descriptor\n");
    + /* input: data, variable, relative */
    rdesc[55] = 0x06;
    }




    \
     
     \ /
      Last update: 2014-04-10 06:21    [W:2.902 / U:0.124 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site