Re: [PATCH v3 1/2] input: touch: eeti: move ISR code to own function

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 29/4/2019 9:30 AM, Dmitry Torokhov wrote:
> On Mon, Apr 29, 2019 at 08:30:37AM +0200, Daniel Mack wrote:
>> Move the ISR handling code to its own function and change the logic to bail
>> immediately in case of .running is false or if the attn_gpio is available
>> but unasserted.
>>
>> This allows us to call the function at any time to check for the state of
>> attn_gpio.
>>
>> Signed-off-by: Daniel Mack <daniel@xxxxxxxxxx>
>> ---
>> v3: break out at the end of the loop for setups with !eeti->attn_gpio
>>
>>  drivers/input/touchscreen/eeti_ts.c | 33 ++++++++++++++++++++---------
>>  1 file changed, 23 insertions(+), 10 deletions(-)
>>
>> diff --git a/drivers/input/touchscreen/eeti_ts.c b/drivers/input/touchscreen/eeti_ts.c
>> index 7fe41965c5d1..67c54413ad2b 100644
>> --- a/drivers/input/touchscreen/eeti_ts.c
>> +++ b/drivers/input/touchscreen/eeti_ts.c
>> @@ -75,14 +75,19 @@ static void eeti_ts_report_event(struct eeti_ts *eeti, u8 *buf)
>>  	input_sync(eeti->input);
>>  }
>>  
>> -static irqreturn_t eeti_ts_isr(int irq, void *dev_id)
>> +static void eeti_ts_read(struct eeti_ts *eeti)
>>  {
>> -	struct eeti_ts *eeti = dev_id;
>> -	int len;
>> -	int error;
>> +	int len, error;
>>  	char buf[6];
>>  
>> -	do {
>> +	for (;;) {
>> +		if (!eeti->running)
>> +			break;
>> +
>> +		if (eeti->attn_gpio &&
>> +		    gpiod_get_value_cansleep(eeti->attn_gpio) == 0)
>> +			break;
>> +
> 
> This became a bit messy IMO. Maybe we should define eeti_ts_read as only
> the code below (up to while) and from resume do:

You're right, that's cleaner. v4 coming up.

Thanks again!
Daniel



[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux