The touchscreen driver s3c2410_ts.c doesn't work well when using
the tslib, an abstraction layer for touchscreen panel events.
Tslib needs ABS_X ABS_Y and ABS_PRESSURE events to report, but only
the former two the driver can provide.
So this patch fixes the problem.
Signed-off-by: Wu DaoGuang <[email protected]>
---
drivers/input/touchscreen/s3c2410_ts.c | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/drivers/input/touchscreen/s3c2410_ts.c b/drivers/input/touchscreen/s3c2410_ts.c
index 8feb7f3..0cf4f12 100644
--- a/drivers/input/touchscreen/s3c2410_ts.c
+++ b/drivers/input/touchscreen/s3c2410_ts.c
@@ -126,6 +126,7 @@ static void touch_timer_fire(unsigned long data)
input_report_abs(ts.input, ABS_Y, ts.yp);
input_report_key(ts.input, BTN_TOUCH, 1);
+ input_report_abs(ts.input, ABS_PRESSURE, 1);
input_sync(ts.input);
ts.xp = 0;
@@ -140,6 +141,7 @@ static void touch_timer_fire(unsigned long data)
ts.count = 0;
input_report_key(ts.input, BTN_TOUCH, 0);
+ input_report_abs(ts.input, ABS_PRESSURE, 0);
input_sync(ts.input);
writel(WAIT4INT | INT_DOWN, ts.io + S3C2410_ADCTSC);
@@ -318,7 +320,7 @@ static int __devinit s3c2410ts_probe(struct platform_device *pdev)
ts.input->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH);
input_set_abs_params(ts.input, ABS_X, 0, 0x3FF, 0, 0);
input_set_abs_params(ts.input, ABS_Y, 0, 0x3FF, 0, 0);
-
+ input_set_abs_params(ts.input, ABS_PRESSURE, 0, 1, 0, 0);
ts.input->name = "S3C24XX TouchScreen";
ts.input->id.bustype = BUS_HOST;
ts.input->id.vendor = 0xDEAD;
--
1.7.1
On 2011-06-24 오전 11:15, Wu DaoGuang wrote:
> The touchscreen driver s3c2410_ts.c doesn't work well when using
> the tslib, an abstraction layer for touchscreen panel events.
> Tslib needs ABS_X ABS_Y and ABS_PRESSURE events to report, but only
> the former two the driver can provide.
>
> So this patch fixes the problem.
>
> Signed-off-by: Wu DaoGuang<[email protected]>
> ---
> drivers/input/touchscreen/s3c2410_ts.c | 4 +++-
> 1 files changed, 3 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/input/touchscreen/s3c2410_ts.c b/drivers/input/touchscreen/s3c2410_ts.c
> index 8feb7f3..0cf4f12 100644
> --- a/drivers/input/touchscreen/s3c2410_ts.c
> +++ b/drivers/input/touchscreen/s3c2410_ts.c
> @@ -126,6 +126,7 @@ static void touch_timer_fire(unsigned long data)
> input_report_abs(ts.input, ABS_Y, ts.yp);
>
> input_report_key(ts.input, BTN_TOUCH, 1);
> + input_report_abs(ts.input, ABS_PRESSURE, 1);
> input_sync(ts.input);
>
> ts.xp = 0;
> @@ -140,6 +141,7 @@ static void touch_timer_fire(unsigned long data)
> ts.count = 0;
>
> input_report_key(ts.input, BTN_TOUCH, 0);
> + input_report_abs(ts.input, ABS_PRESSURE, 0);
> input_sync(ts.input);
>
> writel(WAIT4INT | INT_DOWN, ts.io + S3C2410_ADCTSC);
> @@ -318,7 +320,7 @@ static int __devinit s3c2410ts_probe(struct platform_device *pdev)
> ts.input->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH);
> input_set_abs_params(ts.input, ABS_X, 0, 0x3FF, 0, 0);
> input_set_abs_params(ts.input, ABS_Y, 0, 0x3FF, 0, 0);
> -
> + input_set_abs_params(ts.input, ABS_PRESSURE, 0, 1, 0, 0);
> ts.input->name = "S3C24XX TouchScreen";
> ts.input->id.bustype = BUS_HOST;
> ts.input->id.vendor = 0xDEAD;
This is already NAKed patch.
Please refer https://lkml.org/lkml/2010/11/9/270
Thanks.
On Fri, Jun 24, 2011 at 10:15:38AM +0800, Wu DaoGuang wrote:
> The touchscreen driver s3c2410_ts.c doesn't work well when using
> the tslib, an abstraction layer for touchscreen panel events.
> Tslib needs ABS_X ABS_Y and ABS_PRESSURE events to report, but only
> the former two the driver can provide.
It seems much more sane to fix this in tslib, the kernel is not actually
reporting pressure meaningfully here and there's already BTN_TOUCH to
report if the pen is down.
2011/6/24 Mark Brown <[email protected]>:
> On Fri, Jun 24, 2011 at 10:15:38AM +0800, Wu DaoGuang wrote:
>> The touchscreen driver s3c2410_ts.c doesn't work well when using
>> the tslib, an abstraction layer for touchscreen panel events.
>> Tslib needs ABS_X ABS_Y and ABS_PRESSURE events to report, but only
>> the former two the driver can provide.
>
> It seems much more sane to fix this in tslib, the kernel is not actually
> reporting pressure meaningfully here and there's already BTN_TOUCH to
> report if the pen is down.
>
yeah,I will try to fix it in tslib.
Thanks a lot.
> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf Of daoguang
> wu
> Sent: 2011??6??27?? 10:15
> To: Mark Brown
> Cc: [email protected]; [email protected];
> [email protected]; [email protected];
> [email protected]; [email protected];
> [email protected]
> Subject: Re: [PATCH] INPUT:Add ABS_PRESSURE input event support for
> touchscreen driver
>
> 2011/6/24 Mark Brown <[email protected]>:
> > On Fri, Jun 24, 2011 at 10:15:38AM +0800, Wu DaoGuang wrote:
> >> The touchscreen driver s3c2410_ts.c doesn't work well when using
> >> the tslib, an abstraction layer for touchscreen panel events.
> >> Tslib needs ABS_X ABS_Y and ABS_PRESSURE events to report, but only
> >> the former two the driver can provide.
> >
> > It seems much more sane to fix this in tslib, the kernel is not actually
> > reporting pressure meaningfully here and there's already BTN_TOUCH to
> > report if the pen is down.
> >
> yeah,I will try to fix it in tslib.
You may send a patch to tslib.
> Thanks a lot.
>
> _______________________________________________
> linux-arm-kernel mailing list
> [email protected]
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>
>
> To report this email as spam click
> https://www.mailcontrol.com/sr/wQw0zmjPoHdJTZGyOCrrhg==
> t4zoc+!n!INSV2C4qhUHSr1YUlPAL0C6yBmfTIRMbBnxawg== .
Member of the CSR plc group of companies. CSR plc registered in England and Wales, registered number 4187346, registered office Churchill House, Cambridge Business Park, Cowley Road, Cambridge, CB4 0WZ, United Kingdom
More information can be found at http://www.csr.com. Follow CSR on Twitter at http://twitter.com/CSR_PLC and read our blog at http://www.csr.com/blog
????{.n?+???????+%?????ݶ??w??{.n?+????{??G?????{ay?ʇڙ?,j??f???h?????????z_??(?階?ݢj"???m??????G????????????&???~???iO???z??v?^?m????????????I?
2011/6/27 Dmitry Torokhov <[email protected]>:
>
>
> Baohua Song <[email protected]> wrote:
>
>>
>>
>>> -----Original Message-----
>>> From: [email protected]
>>> [mailto:[email protected]] On Behalf Of
>>daoguang
>>> wu
>>> Sent: 2011??6??27?? 10:15
>>> To: Mark Brown
>>> Cc: [email protected]; [email protected];
>>> [email protected]; [email protected];
>>> [email protected]; [email protected];
>>> [email protected]
>>> Subject: Re: [PATCH] INPUT:Add ABS_PRESSURE input event support for
>>> touchscreen driver
>>>
>>> 2011/6/24 Mark Brown <[email protected]>:
>>> > On Fri, Jun 24, 2011 at 10:15:38AM +0800, Wu DaoGuang wrote:
>>> >> The touchscreen driver s3c2410_ts.c doesn't work well when using
>>> >> the tslib, an abstraction layer for touchscreen panel events.
>>> >> Tslib needs ABS_X ABS_Y and ABS_PRESSURE events to report, but
>>only
>>> >> the former two the driver can provide.
>>> >
>>> > It seems much more sane to fix this in tslib, the kernel is not
>>actually
>>> > reporting pressure meaningfully here and there's already BTN_TOUCH
>>to
>>> > report if the pen is down.
>>> >
>>> yeah,I will try to fix it in tslib.
>>
>>You may send a patch to tslib.
>>
>
> This has already been fixed in tslib a couple years ago. I'm not sure if a
> new version was cut or not.
> --
> Dmitry
I try the latest tslib ,and find there is no such problem and the
latest version of tslib can be downloaded from
git://github.com/kergoth/tslib.git.
Thanks a lot.