Re: [RFC][PATCH] USB touch screen driver, all-in-one
From: Lanslott Gish
Date: Mon Mar 20 2006 - 23:21:29 EST
On 3/18/06, Daniel Ritz <daniel.ritz-ml@xxxxxxxxxxxxxx> wrote:
> On Friday 17 March 2006 03.46, Lanslott Gish wrote:
> > On 3/16/06, Daniel Ritz <daniel.ritz-ml@xxxxxxxxxxxxxx> wrote:
> > "invert" is great, thx.
> > evtouch(X11 driver) called these swap_x and swap_y
> >
>
> i think i drop it alltogether. as greg already mentioned it should be
> sysfs attributes. ( besides it's completely doable in userspace. and
> evtouch can do it. )
>
> >
> >
> > BTW, may i also suggest add more module_param to max_x, max_y, min_x, min_y ?
> > i think these options is useful, too.
>
> no chance. (and if i remember correctly it's possible via evdev ioctl)
>
i could use my device in X without evtouch.o or any X-module or any
xorg.conf modified, but wrong positions to cursor.
and consider using touchscreens in console(framebuffer) mode, or
without evtouch in X, or devices do not provide several functions.
suppose we can something in /etc/rc.d/rc.local or some files:
/sbin/modprobe usbtouchscreen swap_xy=1,min_x=123,max_y=456,....
we don't need any calibrate tool or guest several functions from
devices, and complete this module.
Anyway, just some suggestions. thx :)
regards,
Lanslott Gish
> > > >
> > > > /* device specifc data/functions */
> > > > @@ -224,13 +231,17 @@
> > > > * PanJit Part
> > > > */
> > > > #ifdef CONFIG_USB_TOUCHSCREEN_PANJIT
> > > > +
> > > > static int panjit_read_data(char *pkt, int *x, int *y, int *touch, int *press)
> > > > {
> > > > - *x = pkt[1] | (pkt[2] << 8);
> > > > - *y = pkt[3] | (pkt[4] << 8);
> > > > + *x = (pkt[1] & 0x0F) | ((pkt[2]& 0xFF) << 8);
> > > > + *y = (pkt[3] & 0x0F) | ((pkt[4]& 0xFF) << 8);
> > >
> > > that just can't be right. you probably mean
> > > + *y = pkt[3] | ((pkt[4] & 0x0F) << 8);
> > >
> > > otherwise you mask out bits 4-7. but you want to limit it to 12 bits...
> > > (btw. no need for the & 0xFF mask since *pkt is char)
> > >
> >
> > you are right, sorry for my fault. the truely way is
> >
> >
> > still need 12 bits( 0x0FFF) and the masks to avoid get negative.
>
> my latest patch has it right. and no, you don't need the mask for the lower
> 8 bits, only for the upper 4.
>
--
L.G, Life's Good~
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/