Hi Nicolas, On Monday 19 March 2007 01:19, Nicolas Boichat wrote: > +???????/* initialize the input class */ > +???????applesmc_idev->name = "applesmc"; You may want to set applesmc_idev->id.bus = BUS_HOST; > +???????applesmc_idev->cdev.dev = &pdev->dev; > +???????applesmc_idev->evbit[0] = BIT(EV_ABS); > +???????input_set_abs_params(applesmc_idev, ABS_X, > +???????????????????????-256, 256, APPLESMC_INPUT_FUZZ, APPLESMC_INPUT_FLAT); > +???????input_set_abs_params(applesmc_idev, ABS_Y, > +???????????????????????-256, 256, APPLESMC_INPUT_FUZZ, APPLESMC_INPUT_FLAT); > + > +???????input_register_device(applesmc_idev); Please add error hanling here. > + > +???????/* start up our timer for the input device */ > +???????init_timer(&applesmc_timer); > +???????applesmc_timer.function = applesmc_mousedev_poll; > +???????applesmc_timer.expires = jiffies + APPLESMC_POLL_PERIOD; > +???????add_timer(&applesmc_timer); > Please consider implemention open and close methods for the input device and start/stop timer from there - there is no point of checking hardware state if noone is listening to events. -- Dmitry