From: Pavel Machek <pavel@ucw.cz>
To: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: "Maxime Ripard" <maxime.ripard@free-electrons.com>,
"Sebastian Reichel" <sre@kernel.org>,
"kernel list" <linux-kernel@vger.kernel.org>,
"Pali Rohár" <pali.rohar@gmail.com>,
"Ivaylo Dimitrov" <ivo.g.dimitrov.75@gmail.com>
Subject: Re: 4.1 touchscreen regression on n900 -- pinpointed [was Re: linux-n900 v4.1-rc4]
Date: Fri, 29 May 2015 23:58:18 +0200 [thread overview]
Message-ID: <20150529215818.GA21633@amd> (raw)
In-Reply-To: <20150529213649.GB7429@dtor-ws>
On Fri 2015-05-29 14:36:49, Dmitry Torokhov wrote:
> On Fri, May 29, 2015 at 11:17:22PM +0200, Pavel Machek wrote:
> > On Fri 2015-05-29 21:57:40, Maxime Ripard wrote:
> > > On Fri, May 29, 2015 at 09:25:05PM +0200, Pavel Machek wrote:
> > > > On Fri 2015-05-29 21:08:16, Pavel Machek wrote:
> > > > > Hi!
> > > > >
> > > > > > mh I remember having problems with tsc2005 before. It helped to
> > > > > > reset the controller (should actually happen automatically when it
> > > > > > hangs, but I'm not sure, that it actually works).
> > > > >
> > > > > Ok, I did some more testing, and found out rather bogus values in
> > > > > evtest:
> > > > >
> > > > > Input device name: "TSC2005 touchscreen"
> > > > > Supported events:
> > > > > Event type 0 (EV_SYN)
> > > > > Event type 1 (EV_KEY)
> > > > > Event code 330 (BTN_TOUCH)
> > > > > Event type 3 (EV_ABS)
> > > > > Event code 0 (ABS_X)
> > > > > Value 2514
> > > > > Min 0
> > > > > Max 0
> > > > > Fuzz 4
> > > > >
> > > > > Which made me go through the git logs, and these patches looked
> > > > > suspicious. After a revert... yes, touchscreen works as well as it
> > > > > worked before.
> > > > >
> > > > > 0a363a380954e10fece7cd9931b66056eeb07d56
> > > > > 3eea8b5d68c801fec788b411582b803463834752
> > > > >
> > > > > (It is impossible to revert just 3eea..)
> > > >
> > > > Hmm, I see:
> > > >
> > > > touchscreen-max-x = <4096>;
> > > > touchscreen-max-y = <4096>;
> > > > ...that's n900 dts.. this should be size-x/size-y... so we have a bug
> > > > in dts.
> > > >
> > > > But the 3eea8b5d68c801fec788b411582b803463834752 is buggy, it should
> > > > not overwrite ->maximum for axis it has no devicetree data for.
> > >
> > > What do you mean? touchscreen-max-* _is_ device tree data for an axis.
> > >
> > > > Maybe replacing
> > > >
> > > > + if (maximum || fuzz)
> > > >
> > > > in 3eea to (maximum && fuzz)... would help, but it is late in the
> > > > cycle now, so I'd suggest just reverting 3eea8b.
> > >
> > > No, both maximum and fuzz are optional. You can perfectly have one
> > > without another.
> >
> > Yes, which is something you got wrong.
> >
> > Apply this on top of 3eea8b5d68c801fec788b411582b803463834752, and
> > you'll get simpler code, that works like it did before.
> >
> > Maxime, since you caused the regression, can I ask you to put the
> > other patches on top of it, test it still works for you and submit it
> > properly?
> >
> > [If you want to return in !test_bit case, and are sure it does not
> > break anything, feel free to do that.]
> >
> > Thanks,
> > Pavel
> >
> > Signed-off-by: Pavel Machek <pavel@ucw.cz>
> >
> > diff --git a/drivers/input/touchscreen/of_touchscreen.c b/drivers/input/touchscreen/of_touchscreen.c
> > index b82b520..e626c8a 100644
> > --- a/drivers/input/touchscreen/of_touchscreen.c
> > +++ b/drivers/input/touchscreen/of_touchscreen.c
> > @@ -11,39 +11,23 @@
> >
> > #include <linux/of.h>
> > #include <linux/input.h>
> > -#include <linux/input/mt.h>
> > #include <linux/input/touchscreen.h>
> >
> > -static u32 of_get_optional_u32(struct device_node *np,
> > - const char *property)
> > -{
> > - u32 val = 0;
> > -
> > - of_property_read_u32(np, property, &val);
> > -
> > - return val;
> > -}
> > -
> > static void touchscreen_set_params(struct input_dev *dev,
> > unsigned long axis,
> > - int max, int fuzz)
> > + char *max, char *fuzz)
> > {
> > struct input_absinfo *absinfo;
> > + struct device_node *np = dev->dev.parent->of_node;
> >
> > if (!test_bit(axis, dev->absbit)) {
> > - /*
> > - * Emit a warning only if the axis is not a multitouch
> > - * axis, which might not be set by the driver.
> > - */
> > - if (!input_is_mt_axis(axis))
> > - dev_warn(&dev->dev,
> > - "DT specifies parameters but the axis is not set up\n");
> > - return;
> > + dev_warn(&dev->dev,
> > + "DT specifies parameters but the axis is not set up\n");
>
> No, this is not right either. We do not want to bitch about axis not
> being set up if there is nothing in DT mentioning this axis.
Well, we should not bitch at all, that should have been followup patch.
> Plus the code structure won't work well if we decide to add more to it
> (such as min, or flat, or resolution).
Do you want to try to cook up something that works?
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
prev parent reply other threads:[~2015-05-29 21:58 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <201505241444.41039@pali>
[not found] ` <20150527132545.GA23434@amd>
[not found] ` <20150527133311.GJ30798@pali>
[not found] ` <20150527143722.GA28108@amd>
[not found] ` <20150527145837.GA13223@earth>
2015-05-29 19:08 ` 4.1 touchscreen regression on n900 -- pinpointed [was Re: linux-n900 v4.1-rc4] Pavel Machek
2015-05-29 19:25 ` Pavel Machek
2015-05-29 19:32 ` [PATCH] fix n900 dts file to work around 4.1 touchscreen regression on n900 Pavel Machek
2015-05-29 19:49 ` Felipe Balbi
2015-05-29 19:56 ` Pavel Machek
2015-05-29 20:17 ` Maxime Ripard
2015-05-29 20:21 ` Felipe Balbi
2015-05-29 20:29 ` Dmitry Torokhov
2015-05-29 20:34 ` Pavel Machek
2015-05-29 20:48 ` Dmitry Torokhov
2015-05-29 21:02 ` Pavel Machek
2015-05-29 21:38 ` Dmitry Torokhov
2015-06-01 9:55 ` Maxime Ripard
2015-06-01 14:06 ` Please revert 3eea8b5d68c801fec788b411582b803463834752 as it breaks touchscreen " Pavel Machek
2015-06-01 14:58 ` Maxime Ripard
2015-06-01 15:21 ` Pavel Machek
2015-06-01 17:47 ` Dmitry Torokhov
2015-06-01 20:27 ` Pavel Machek
2015-06-01 20:45 ` Dmitry Torokhov
2015-06-01 20:54 ` Tony Lindgren
2015-06-01 21:22 ` Maxime Ripard
2015-06-01 21:32 ` Dmitry Torokhov
2015-06-02 8:25 ` Pavel Machek
2015-06-02 9:44 ` Maxime Ripard
2015-06-02 17:58 ` Dmitry Torokhov
2015-06-02 18:08 ` Dmitry Torokhov
2015-06-25 20:25 ` Pavel Machek
2015-05-29 20:22 ` [PATCH] fix n900 dts file to work around 4.1 touchscreen regression " Dmitry Torokhov
2015-05-29 20:03 ` Maxime Ripard
2015-05-29 20:18 ` Tony Lindgren
2015-05-29 20:30 ` Pavel Machek
2015-05-30 10:14 ` Pavel Machek
2015-06-01 9:49 ` Maxime Ripard
2015-06-01 9:54 ` Pavel Machek
2015-05-30 2:21 ` Sebastian Reichel
2015-05-30 2:24 ` [PATCH] Input: of_touchscreen - remove interdependence of max/fuzz values Sebastian Reichel
2015-05-30 6:26 ` Pavel Machek
2015-05-29 19:57 ` 4.1 touchscreen regression on n900 -- pinpointed [was Re: linux-n900 v4.1-rc4] Maxime Ripard
2015-05-29 20:29 ` Pavel Machek
2015-05-29 21:17 ` Pavel Machek
2015-05-29 21:36 ` Dmitry Torokhov
2015-05-29 21:58 ` Pavel Machek [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150529215818.GA21633@amd \
--to=pavel@ucw.cz \
--cc=dmitry.torokhov@gmail.com \
--cc=ivo.g.dimitrov.75@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=maxime.ripard@free-electrons.com \
--cc=pali.rohar@gmail.com \
--cc=sre@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).