this reads fine and works fine for me although i don't really agree with all this return () and comment changing.. if everyone did that there would be tons of unnecessary changes, the existing style is fine... but anyway, meh, the diff works
cheers On Thu, Sep 30, 2010 at 04:12:20AM +0600, Alexandr Shadchin wrote: > On Thu, Sep 30, 2010 at 02:50:54AM +0600, Alexandr Shadchin wrote: > > On Mon, Sep 27, 2010 at 11:42:35PM +0600, Alexandr Shadchin wrote: > > > On Fri, Sep 24, 2010 at 05:40:37PM +0400, Alexandr Shadchin wrote: > > > > Hi! > > > > > > > > Paul Irofti proposed to split the diff in a few easy steps. > > > > Step 1 - merge drivers pms and pmsi. > > > > > > > > > > Step 2 - cleanup, standardization of interfaces and preparation > > > for easy addition of new devices. Now the resume of work in polling mode. > > > > > > > Regen for -current. Also small improvements: > > 1) add function pms_dev_reset() > > 2) in struct pms_protocol add function sync() - for check synchronization, > > proc () - for processing packet. > > > > That diff is way too big to commit in one piece. I'll try to split it into > several pieces. > > Pieces 1 - cleanup code > > -- > Alexandr Shadchin > > > Index: pms.c > =================================================================== > RCS file: /cvs/src/sys/dev/pckbc/pms.c,v > retrieving revision 1.5 > diff -u -p -r1.5 pms.c > --- pms.c 27 Sep 2010 18:16:25 -0000 1.5 > +++ pms.c 29 Sep 2010 16:05:58 -0000 > @@ -57,15 +57,11 @@ struct pms_softc { /* driver status inf > struct device *sc_wsmousedev; > }; > > -int pmsprobe(struct device *, void *, void *); > -void pmsattach(struct device *, struct device *, void *); > -int pmsactivate(struct device *, int); > -void pmsinput(void *, int); > +int pmsprobe(struct device *, void *, void *); > +void pmsattach(struct device *, struct device *, void *); > +int pmsactivate(struct device *, int); > > -struct cfattach pms_ca = { > - sizeof(struct pms_softc), pmsprobe, pmsattach, NULL, > - pmsactivate > -}; > +void pmsinput(void *, int); > > int pms_change_state(struct pms_softc *, int); > int pms_ioctl(void *, u_long, caddr_t, int, struct proc *); > @@ -74,6 +70,15 @@ void pms_disable(void *); > > int pms_setintellimode(pckbc_tag_t, pckbc_slot_t); > > +struct cfattach pms_ca = { > + sizeof(struct pms_softc), pmsprobe, pmsattach, NULL, > + pmsactivate > +}; > + > +struct cfdriver pms_cd = { > + NULL, "pms", DV_DULL > +}; > + > const struct wsmouse_accessops pms_accessops = { > pms_enable, > pms_ioctl, > @@ -92,31 +97,28 @@ pms_setintellimode(pckbc_tag_t tag, pckb > cmd[1] = rates[i]; > res = pckbc_enqueue_cmd(tag, slot, cmd, 2, 0, 0, NULL); > if (res) > - return (0); > + return 0; > } > > cmd[0] = PMS_SEND_DEV_ID; > res = pckbc_enqueue_cmd(tag, slot, cmd, 1, 1, 1, resp); > if (res || resp[0] != 3) > - return (0); > + return 0; > > - return (1); > + return 1; > } > > int > -pmsprobe(parent, match, aux) > - struct device *parent; > - void *match; > - void *aux; > +pmsprobe(struct device *parent, void *match, void *aux) > { > struct pckbc_attach_args *pa = aux; > u_char cmd[1], resp[2]; > int res; > > if (pa->pa_slot != PCKBC_AUX_SLOT) > - return (0); > + return 0; > > - /* Flush any garbage. */ > + /* flush any garbage */ > pckbc_flush(pa->pa_tag, pa->pa_slot); > > /* reset the device */ > @@ -126,11 +128,11 @@ pmsprobe(parent, match, aux) > #ifdef DEBUG > printf("pmsprobe: reset error %d\n", res); > #endif > - return (0); > + return 0; > } > if (resp[0] != PMS_RSTDONE) { > printf("pmsprobe: reset response 0x%x\n", resp[0]); > - return (0); > + return 0; > } > > /* get type number (0 = mouse) */ > @@ -138,21 +140,19 @@ pmsprobe(parent, match, aux) > #ifdef DEBUG > printf("pmsprobe: type 0x%x\n", resp[1]); > #endif > - return (0); > + return 0; > } > > - return (10); > + return 1; > } > > void > -pmsattach(parent, self, aux) > - struct device *parent, *self; > - void *aux; > +pmsattach(struct device *parent, struct device *self, void *aux) > { > struct pms_softc *sc = (void *)self; > struct pckbc_attach_args *pa = aux; > struct wsmousedev_attach_args a; > - u_char cmd[1], resp[2]; > + u_char cmd[1]; > int res; > > sc->sc_kbctag = pa->pa_tag; > @@ -160,24 +160,8 @@ pmsattach(parent, self, aux) > > printf("\n"); > > - /* Flush any garbage. */ > - pckbc_flush(pa->pa_tag, pa->pa_slot); > - > - /* reset the device */ > - cmd[0] = PMS_RESET; > - res = pckbc_poll_cmd(pa->pa_tag, pa->pa_slot, cmd, 1, 2, resp, 1); > -#ifdef DEBUG > - if (res || resp[0] != PMS_RSTDONE || resp[1] != 0) { > - printf("pmsattach: reset error\n"); > - return; > - } > -#endif > - > - sc->inputstate = 0; > - sc->oldbuttons = 0; > - > pckbc_set_inputhandler(sc->sc_kbctag, sc->sc_kbcslot, > - pmsinput, sc, sc->sc_dev.dv_xname); > + pmsinput, sc, sc->sc_dev.dv_xname); > > a.accessops = &pms_accessops; > a.accesscookie = sc; > @@ -213,7 +197,7 @@ pmsactivate(struct device *self, int act > pms_change_state(sc, PMS_STATE_ENABLED); > break; > } > - return (0); > + return 0; > } > > int > @@ -226,6 +210,7 @@ pms_change_state(struct pms_softc *sc, i > case PMS_STATE_ENABLED: > if (sc->sc_state == PMS_STATE_ENABLED) > return EBUSY; > + > sc->inputstate = 0; > sc->oldbuttons = 0; > > @@ -239,36 +224,8 @@ pms_change_state(struct pms_softc *sc, i > cmd, 1, 0, 1, 0); > if (res) > printf("pms_enable: command error\n"); > -#if 0 > - { > - u_char scmd[2]; > - > - scmd[0] = PMS_SET_RES; > - scmd[1] = 3; /* 8 counts/mm */ > - res = pckbc_enqueue_cmd(sc->sc_kbctag, sc->sc_kbcslot, > scmd, > - 2, 0, 1, 0); > - if (res) > - printf("pms_enable: setup error1 (%d)\n", res); > - > - scmd[0] = PMS_SET_SCALE21; > - res = pckbc_enqueue_cmd(sc->sc_kbctag, sc->sc_kbcslot, > scmd, > - 1, 0, 1, 0); > - if (res) > - printf("pms_enable: setup error2 (%d)\n", res); > - > - scmd[0] = PMS_SET_SAMPLE; > - scmd[1] = 100; /* 100 samples/sec */ > - res = pckbc_enqueue_cmd(sc->sc_kbctag, sc->sc_kbcslot, > scmd, > - 2, 0, 1, 0); > - if (res) > - printf("pms_enable: setup error3 (%d)\n", res); > - } > -#endif > - sc->sc_state = newstate; > break; > case PMS_STATE_DISABLED: > - > - /* FALLTHROUGH */ > case PMS_STATE_SUSPENDED: > cmd[0] = PMS_DEV_DISABLE; > res = pckbc_enqueue_cmd(sc->sc_kbctag, sc->sc_kbcslot, > @@ -276,39 +233,32 @@ pms_change_state(struct pms_softc *sc, i > if (res) > printf("pms_disable: command error\n"); > pckbc_slot_enable(sc->sc_kbctag, sc->sc_kbcslot, 0); > - sc->sc_state = newstate; > break; > } > + sc->sc_state = newstate; > return 0; > } > > int > -pms_enable(v) > - void *v; > +pms_enable(void *vsc) > { > - struct pms_softc *sc = v; > + struct pms_softc *sc = vsc; > > return pms_change_state(sc, PMS_STATE_ENABLED); > } > > void > -pms_disable(v) > - void *v; > +pms_disable(void *vsc) > { > - struct pms_softc *sc = v; > + struct pms_softc *sc = vsc; > > pms_change_state(sc, PMS_STATE_DISABLED); > } > > int > -pms_ioctl(v, cmd, data, flag, p) > - void *v; > - u_long cmd; > - caddr_t data; > - int flag; > - struct proc *p; > +pms_ioctl(void *vsc, u_long cmd, caddr_t data, int flag, struct proc *p) > { > - struct pms_softc *sc = v; > + struct pms_softc *sc = vsc; > u_char kbcmd[2]; > int i; > > @@ -316,28 +266,26 @@ pms_ioctl(v, cmd, data, flag, p) > case WSMOUSEIO_GTYPE: > *(u_int *)data = WSMOUSE_TYPE_PS2; > break; > - > case WSMOUSEIO_SRES: > - i = ((int) *(u_int *)data - 12) / 25; > + i = ((int) *(u_int *)data - 12) / 25; > /* valid values are {0,1,2,3} */ > if (i < 0) > i = 0; > if (i > 3) > i = 3; > - > + > kbcmd[0] = PMS_SET_RES; > - kbcmd[1] = (unsigned char) i; > - i = pckbc_enqueue_cmd(sc->sc_kbctag, sc->sc_kbcslot, kbcmd, > + kbcmd[1] = (unsigned char) i; > + i = pckbc_enqueue_cmd(sc->sc_kbctag, sc->sc_kbcslot, kbcmd, > 2, 0, 1, 0); > - > + > if (i) > printf("pms_ioctl: SET_RES command error\n"); > break; > - > default: > - return (-1); > + return -1; > } > - return (0); > + return 0; > } > > /* Masks for the first byte of a packet */ > @@ -345,9 +293,8 @@ pms_ioctl(v, cmd, data, flag, p) > #define PS2RBUTMASK 0x02 > #define PS2MBUTMASK 0x04 > > -void pmsinput(vsc, data) > -void *vsc; > -int data; > +void > +pmsinput(void *vsc, int data) > { > struct pms_softc *sc = vsc; > signed char dz = 0; > @@ -403,7 +350,3 @@ int data; > > return; > } > - > -struct cfdriver pms_cd = { > - NULL, "pms", DV_DULL > -}; > Index: pmsreg.h > =================================================================== > RCS file: /cvs/src/sys/dev/pckbc/pmsreg.h,v > retrieving revision 1.1 > diff -u -p -r1.1 pmsreg.h > --- pmsreg.h 1 Aug 2007 12:16:59 -0000 1.1 > +++ pmsreg.h 29 Sep 2010 16:05:58 -0000 > @@ -2,19 +2,21 @@ > /* $NetBSD: psmreg.h,v 1.1 1998/03/22 15:41:28 drochner Exp $ */ > > /* mouse commands */ > -#define PMS_SET_SCALE11 0xe6 /* set scaling 1:1 */ > -#define PMS_SET_SCALE21 0xe7 /* set scaling 2:1 */ > -#define PMS_SET_RES 0xe8 /* set resolution (0..3) */ > -#define PMS_GET_SCALE 0xe9 /* get scaling factor */ > -#define PMS_SEND_DEV_STATUS 0xe9 > -#define PMS_SET_STREAM 0xea /* set streaming mode */ > -#define PMS_SEND_DEV_DATA 0xeb > +#define PMS_SET_SCALE11 0xe6 /* set scaling 1:1 */ > +#define PMS_SET_SCALE21 0xe7 /* set scaling 2:1 */ > +#define PMS_SET_RES 0xe8 /* set resolution (0..3) */ > +#define PMS_SEND_DEV_STATUS 0xe9 /* status request */ > +#define PMS_SET_STREAM_MODE 0xea > +#define PMS_SEND_DEV_DATA 0xeb /* read data */ > +#define PMS_RESET_WRAP_MODE 0xec > +#define PMS_SET_WRAP_MODE 0xed > #define PMS_SET_REMOTE_MODE 0xf0 > -#define PMS_SEND_DEV_ID 0xf2 > -#define PMS_SET_SAMPLE 0xf3 /* set sampling rate */ > -#define PMS_DEV_ENABLE 0xf4 /* mouse on */ > -#define PMS_DEV_DISABLE 0xf5 /* mouse off */ > +#define PMS_SEND_DEV_ID 0xf2 /* read device type */ > +#define PMS_SET_SAMPLE 0xf3 /* set sampling rate */ > +#define PMS_DEV_ENABLE 0xf4 /* mouse on */ > +#define PMS_DEV_DISABLE 0xf5 /* mouse off */ > #define PMS_SET_DEFAULTS 0xf6 > -#define PMS_RESET 0xff /* reset */ > +#define PMS_RESEND 0xfe > +#define PMS_RESET 0xff /* reset */ > > -#define PMS_RSTDONE 0xaa > +#define PMS_RSTDONE 0xaa