lkml.org 
[lkml]   [2014]   [Nov]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 1/7] input: alps: Set correct name of psmouse device in alps_init()
    Date
    On some laptops after starting them from off state (not after reboot), function
    alps_probe_trackstick_v3() (called from function alps_identify()) does not
    detect trackstick. To fix this problem we need to reset device. But function
    alps_identify() is called also from alps_detect() and we do not want to reset
    device in detect function because it will slow down initialization of all other
    non alps devices.

    This patch moves code for setting correct device name & protocol from function
    alps_detect() to alps_init() which already doing full device reset.

    So this patch removes need to do trackstick detection in alps_detect() function.

    Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
    ---
    drivers/input/mouse/alps.c | 17 ++++++++++++++---
    1 file changed, 14 insertions(+), 3 deletions(-)

    diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
    index 8d85c79..9ffa98d 100644
    --- a/drivers/input/mouse/alps.c
    +++ b/drivers/input/mouse/alps.c
    @@ -2392,6 +2392,10 @@ int alps_init(struct psmouse *psmouse)
    if (input_register_device(priv->dev2))
    goto init_fail;

    + if (!(priv->flags & ALPS_DUALPOINT))
    + psmouse->name = "GlidePoint TouchPad";
    + psmouse->model = priv->proto_version;
    +
    psmouse->protocol_handler = alps_process_byte;
    psmouse->poll = alps_poll;
    psmouse->disconnect = alps_disconnect;
    @@ -2422,11 +2426,18 @@ int alps_detect(struct psmouse *psmouse, bool set_properties)
    return -1;

    if (set_properties) {
    + /*
    + * NOTE: To detect model and trackstick presence we need to do
    + * full device reset. To speed up detection and prevent
    + * calling duplicate initialization sequence (both in
    + * alps_detect() and alps_init()) we set model/protocol
    + * version and correct name in alps_init() (which will
    + * do full device reset). For now set name to DualPoint.
    + */
    psmouse->vendor = "ALPS";
    - psmouse->name = dummy.flags & ALPS_DUALPOINT ?
    - "DualPoint TouchPad" : "GlidePoint";
    - psmouse->model = dummy.proto_version << 8;
    + psmouse->name = "DualPoint TouchPad";
    }
    +
    return 0;
    }

    --
    1.7.9.5
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2014-11-14 21:21    [W:4.927 / U:0.296 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site