On Thu, Feb 03, 2005 at 07:34:16PM -0500, Dmitry Torokhov wrote:
> On Thursday 03 February 2005 17:43, Stephen Evanchik wrote:
> > Vojtech,
> > 
> > Here is a patch that exposes the IBM TrackPoint's extended properties
> > as well as scroll wheel emulation.
> > 
> > 
> 
> Hi,
> 
> Very nice although I have a couple of comments.
> 
> >  /*
> > + * Try to initialize the IBM TrackPoint
> > + */
> > +   if (max_proto > PSMOUSE_PS2 && trackpoint_init(psmouse) == 0) {
> > +           psmouse->vendor = "IBM";
> > +           psmouse->name = "TrackPoint";
> > + 
> > +           return PSMOUSE_PS2;
> 
> Why PSMOUSE_PS2? Reconnect will surely not like it.

Indeed. IIRC this patch killed wheel mouse detection in ubuntu.

> 
> > +int tp_sens = TP_DEF_SENS;
> > +module_param_named(sens, tp_sens, uint, 0);
> > +MODULE_PARM_DESC(sens, "Sensitivity");
> ....
> > +int tp_mb_scroll = TP_DEF_MB_SCROLL;
> > +module_param_named(mb_scroll, tp_mb_scroll, uint, 0);
> > +MODULE_PARM_DESC(mb_scroll, "Scroll with middle button");
> 
> All of this should be handled via sysfs dynamically, we don't need any
> more pmouse module parameters.

Exactly.

> > +        remove_proc_entry("neg_inertia", tp_dir);
> > +        remove_proc_entry("speed", tp_dir);
> > +        remove_proc_entry("sensitivity", tp_dir);
> > +        remove_proc_entry("trackpoint", NULL);
> > +}
> 
> No new proc stuff please (it will be visible from sysfs when you redo the
> module parameters).

... automatically, even ...

> > +
> > +           tp->scrolling = 0;
> > +           tp->mb_was_down = 0;
> > +   }
> > +        else if(tp->scrolling) {
> > +
> > +           /* Vertical scrolling */
> > +           diff = (int) ((packet[0] << 3) & 0x100) - (int) packet[2];
> > +                if( diff < -2 ) {
> > +                   input_report_rel(&psmouse->dev, REL_WHEEL, 1);
> > +           }
> > +           else if(diff > 2) {
> > +                   input_report_rel(&psmouse->dev, REL_WHEEL, -1);
> > +           }
> > +
> > +                /* Horizontal scrolling */
> > +                diff = (int) packet[1] - (int) ((packet[0] << 4) & 0x100);
> > +                if( diff < -2) {
> > +                        input_report_rel(&psmouse->dev, REL_HWHEEL, 1);
> > +                }
> > +                else if( diff > 2) {
> > +                        input_report_rel(&psmouse->dev, REL_HWHEEL, -1);
> > +                }
> > +
> > +           packet[1] &= 0x00;
> > +           packet[2] &= 0x00;
> > +   }
> 
> Looks like whitespace damage (tabs vs spaces) plus it should be "} else {"
> on one line.

What a shame that this thing doesn't have a raw mode where it'd report
the pressure ...

> > +int trackpoint_reconnect(struct psmouse *psmouse)
> > +{
> > +   unsigned char toggle;
> > +   struct trackpoint_data *tp = psmouse->private;
> > +
> > +   /* Push the config to the device */
> > +   
> 
> I'd like to verify that it still recognized as trackpoint - suspends often
> play tricks on PS/2 devices.
> 
> > +
> > +   printk("IBM TrackPoint firmware: 0x%02X\n", param[1]);
> 
> KERN_INFO?

-- 
Vojtech Pavlik
SuSE Labs, SuSE CR
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to