On Mon, Feb 28, 2005 at 08:27:59PM -0500, Dan Streetman wrote:
>
> On Thu, 24 Feb 2005, Vojtech Pavlik wrote:
>
> >> would a module parameter that selects raw or hw-calibrated be better?
> >
> >That'd be a conflict-less solution, indeed.
>
> ok, here's a patch to add a boolean parameter "raw_coordinates". It
> defaults to true, so behavior won't change by default.
>
> One note, in your bk tree you'd already changed the Y reporting to (MAX_YC
> - GET_YC), i.e. to flip Y. However, with 2 different possible maxes (raw
> and hw-calib), it was easier to just reverse the min/max Y's, since the
> max depends on the module param. It should work the same.
>
> Look ok?
Yes; applied. Reversed min/max behavior is currently undefined. I
changed it back to the original, although less simple solution.
> --- input/drivers/usb/input/mtouchusb.c 2005-02-23 15:54:37.000000000
> -0500
> +++ input-changed/drivers/usb/input/mtouchusb.c 2005-02-28
> 18:33:19.000000000 -0500
> @@ -34,6 +34,9 @@
> * Eliminated vendor/product module params
> * Performed multiple successfull tests with an EXII-5010UC
> *
> + * 1.5 02/27/2005 [EMAIL PROTECTED]
> + * Added module parameter to select raw or hw-calibrated coordinate
> reporting
> + *
>
> *****************************************************************************/
>
> #include <linux/config.h>
> @@ -52,11 +55,13 @@
> #include <linux/usb.h>
>
> #define MTOUCHUSB_MIN_XC 0x0
> -#define MTOUCHUSB_MAX_XC 0x4000
> +#define MTOUCHUSB_MAX_RAW_XC 0x4000
> +#define MTOUCHUSB_MAX_CALIB_XC 0xffff
> #define MTOUCHUSB_XC_FUZZ 0x0
> #define MTOUCHUSB_XC_FLAT 0x0
> #define MTOUCHUSB_MIN_YC 0x0
> -#define MTOUCHUSB_MAX_YC 0x4000
> +#define MTOUCHUSB_MAX_RAW_YC 0x4000
> +#define MTOUCHUSB_MAX_CALIB_YC 0xffff
> #define MTOUCHUSB_YC_FUZZ 0x0
> #define MTOUCHUSB_YC_FLAT 0x0
>
> @@ -65,15 +70,28 @@
> #define MTOUCHUSB_REPORT_DATA_SIZE 11
> #define MTOUCHUSB_REQ_CTRLLR_ID 10
>
> -#define MTOUCHUSB_GET_XC(data) (data[8]<<8 | data[7])
> -#define MTOUCHUSB_GET_YC(data) (data[10]<<8 | data[9])
> +#define MTOUCHUSB_GET_RAW_XC(data) (data[8]<<8 | data[7])
> +#define MTOUCHUSB_GET_CALIB_XC(data) (data[4]<<8 | data[3])
> +#define MTOUCHUSB_GET_RAW_YC(data) (data[10]<<8 | data[9])
> +#define MTOUCHUSB_GET_CALIB_YC(data) (data[6]<<8 | data[5])
> +#define MTOUCHUSB_GET_XC(data) (raw_coordinates ? \
> + MTOUCHUSB_GET_RAW_XC(data) : \
> + MTOUCHUSB_GET_CALIB_XC(data))
> +#define MTOUCHUSB_GET_YC(data) (raw_coordinates ? \
> + MTOUCHUSB_GET_RAW_YC(data) : \
> + MTOUCHUSB_GET_CALIB_YC(data))
> #define MTOUCHUSB_GET_TOUCHED(data) ((data[2] & 0x40) ? 1:0)
>
> -#define DRIVER_VERSION "v1.4"
> +#define DRIVER_VERSION "v1.5"
> #define DRIVER_AUTHOR "Todd E. Johnson, [EMAIL PROTECTED]"
> #define DRIVER_DESC "3M USB Touchscreen Driver"
> #define DRIVER_LICENSE "GPL"
>
> +static int raw_coordinates = 1;
> +
> +module_param(raw_coordinates, bool, S_IRUGO | S_IWUSR);
> +MODULE_PARM_DESC(raw_coordinates, "report raw coordinate values (y, default)
> or hardware-calibrated coordinate values (n)");
> +
> struct mtouch_usb {
> unsigned char *data;
> dma_addr_t data_dma;
> @@ -123,7 +141,7 @@
> input_report_abs(&mtouch->input, ABS_X,
> MTOUCHUSB_GET_XC(mtouch->data));
> input_report_abs(&mtouch->input, ABS_Y,
> - MTOUCHUSB_MAX_YC - MTOUCHUSB_GET_YC(mtouch->data));
> + MTOUCHUSB_GET_YC(mtouch->data));
> input_sync(&mtouch->input);
>
> exit:
> @@ -234,11 +252,13 @@
>
> /* Used to Scale Compensated Data and Flip Y */
> mtouch->input.absmin[ABS_X] = MTOUCHUSB_MIN_XC;
> - mtouch->input.absmax[ABS_X] = MTOUCHUSB_MAX_XC;
> + mtouch->input.absmax[ABS_X] = raw_coordinates ? \
> + MTOUCHUSB_MAX_RAW_XC :
> MTOUCHUSB_MAX_CALIB_XC;
> mtouch->input.absfuzz[ABS_X] = MTOUCHUSB_XC_FUZZ;
> mtouch->input.absflat[ABS_X] = MTOUCHUSB_XC_FLAT;
> - mtouch->input.absmin[ABS_Y] = MTOUCHUSB_MIN_YC;
> - mtouch->input.absmax[ABS_Y] = MTOUCHUSB_MAX_YC;
> + mtouch->input.absmin[ABS_Y] = raw_coordinates ? \
> + MTOUCHUSB_MAX_RAW_YC :
> MTOUCHUSB_MAX_CALIB_YC;
> + mtouch->input.absmax[ABS_Y] = MTOUCHUSB_MIN_YC;
> mtouch->input.absfuzz[ABS_Y] = MTOUCHUSB_YC_FUZZ;
> mtouch->input.absflat[ABS_Y] = MTOUCHUSB_YC_FLAT;
>
>
--
Vojtech Pavlik
SuSE Labs, SuSE CR
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel