Hi Matthew,

On Saturday 24 March 2007 00:33, Matthew Garrett wrote:
> Ah, ignore that - it is in fact defined in the model ID field (should 
> have read the specs more closely first!) - if bits 0-3 equal 0x02, then 
> the pad is oval rather than rectangular (which matches the dumps I have 
> access to). So, the remaining question is how should this be exported to 
> userspace? In terms of interpreting scrolling, it's helpful for the 
> driver to know that the pad is circular.
> 

Would something like below do (untested)?

-- 
Dmitry


Input: synaptics - export model bits

Encode synaptics model in psmouse->model so it will be
exported via sysfs as input_dev->id.version and become
visible for applications.

Signed-off-by: Dmitry Torokhov <[EMAIL PROTECTED]>
---

 drivers/input/mouse/synaptics.c |   10 ++++++++++
 1 files changed, 10 insertions(+)

Index: work/drivers/input/mouse/synaptics.c
===================================================================
--- work.orig/drivers/input/mouse/synaptics.c
+++ work/drivers/input/mouse/synaptics.c
@@ -655,6 +655,16 @@ int synaptics_init(struct psmouse *psmou
 
        set_input_params(psmouse->dev, priv);
 
+       /*
+        * Encode touchpad model so that it can be used to set
+        * input device->id.verssion and be visible to userspace.
+        * Because version is __u16 we have to drop something.
+        * Hardware info bits seem to be good candidates as they
+        * are documented to be for Synapticss corp. internal use.
+        */
+       psmouse->model = ((priv->model_id & 0x00ff0000) >> 8) |
+                         (priv->model_id & 0x000000ff);
+
        psmouse->protocol_handler = synaptics_process_byte;
        psmouse->set_rate = synaptics_set_rate;
        psmouse->disconnect = synaptics_disconnect;

Reply via email to