• Jason Gerecke's avatar
    HID: wacom: Call 'wacom_query_tablet_data' only after 'hid_hw_start' · 86e88f0e
    Jason Gerecke authored
    When connecting the Cintiq Companion 2 as an external tablet (i.e., using
    it in "hybrid" mode) it has been seen to cause the kernel of the machine
    it is connected to to Oops. The cause has been traced to us attempting to
    switch the tablet's mode prior to actually starting HID device (resulting
    in the eventual dereference of the uninitialized control URB).
    
    Commit 3b164a00 moved the mode switch from occuring post-start to occurring
    pre-start. The change was not seen to cause issues largely due to the fact
    that most devices mode switch with 'hid_hw_raw_request' (which is safe to
    call prior to start) rather than 'hid_hw_request'.
    
    Moving the call back to its original location resolves the issue, but
    causes some touch-only Bamboo tablets (e.g. 056a:00d0) to stop working.
    The affected tablets require us to perform a mode switch on their
    vestigial pen interface prior ignoring with -ENODEV, meaning that the
    code which is responsible for doing the ignoring has to move as well.
    Signed-off-by: default avatarJason Gerecke <jason.gerecke@wacom.com>
    Reviewed-by: default avatarPing Cheng <pingc@wacom.com>
    Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
    86e88f0e
wacom_sys.c 49.7 KB