Thread (17 messages) 17 messages, 2 authors, 2011-12-26

Re: [PATCH 2/2] Input: tsc2007 - Add a z1_low_threshhold platform data parameter

flat view

From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date: 2011-12-04 08:54:13
Also in: lkml

On Thu, Dec 01, 2011 at 05:04:55PM +0800, Feng Tang wrote:
Hi Dmitry,


On Thu, 1 Dec 2011 16:45:24 +0800
Dmitry Torokhov [off-list ref] wrote:

quoted
quoted
quoted
Even if we add the pressure threshold would not that noise cause
endless stream of interrupts?
No, there is no endless interrupts for tsc2007. Without the z1
threshold, the while circle in tsc2007_soft_irq will run endlessly
as the noise data will be seen as a valid data:

		rt = tsc2007_calculate_pressure(ts, &tc);
		if (rt == 0 && !ts->get_pendown_state) {
			/*
			 * If pressure reported is 0 and we don't
have
			 * callback to check pendown state, we have
to
			 * assume that pen was lifted up.
			 */
			break;
		}

With the z1 threshold check, the rt will be 0 for noise data, and
the code flow broke out.
What I meant is with the threshold check we'll break out of the ISR
but why won't IRQ be raised again?
The IRQ will be fired again after we exist the tsc2007_soft_irq in my
test, as I re-enable the irq before existing the code.
quoted
quoted
quoted
Also, what kind of z2 is reported with low z1? And do you
implement get_pendown_state()?
z2 seems normal as some data between 3000-4000. We don't have a
get_pendown_state().
OK, there is max_rt platform parameter. I think we should employ it
instead and break out if we get several incorrect samples in a row.
Too bad you do not have a dedicate method.
No, the max_rt won't help here, if the rt > max_rt, it won't break the
while loop, but just issue a warning message

		if (rt <= ts->max_rt) {
			.......

		} else {
			/*
			 * Sample found inconsistent by debouncing or pressure is
			 * beyond the maximum. Don't report it to user space,
			 * repeat at least once more the measurement.
			 */
			dev_dbg(&ts->client->dev, "ignored pressure %d\n", rt);
		}
What I meant that we need to ajust the logic to _exit_ the loop if we
receive several samples with rt > max_rt instead of adding a new
parameter.

Thanks.

-- 
Dmitry
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help