Em Seg, 2009-06-01 às 20:25 +0300, Ilya Petrov escreveu:
> > Also, the warning in case is supposed to be non-fatal. After the warning
> > the TS no longer works?
> 
> yep. it stopped working

Err, sorry, there is indeed a bug on code, and this warning which was
supposed to be non-fatal leaves the adc_mutex locked.

As your phone seems the be the only one where these warnings happen,
would you mind trying to cause this warning with the following patch
applied?

Thanks! :)

diff --git a/drivers/mfd/ezx-pcap.c b/drivers/mfd/ezx-pcap.c
index 671a7ef..c1de4af 100644
--- a/drivers/mfd/ezx-pcap.c
+++ b/drivers/mfd/ezx-pcap.c
@@ -238,8 +238,10 @@ static irqreturn_t pcap_adc_irq(int irq, void *_pcap)
        mutex_lock(&pcap->adc_mutex);
        req = pcap->adc_queue[pcap->adc_head];
 
-       if (WARN(!req, KERN_WARNING "adc irq without pending request\n"))
+       if (WARN(!req, KERN_WARNING "adc irq without pending request\n")) {
+               mutex_unlock(&pcap->adc_mutex);
                return IRQ_HANDLED;
+       }
 
        /* read requested channels results */
        ezx_pcap_read(pcap, PCAP_REG_ADC, &tmp);

-- 
Daniel Ribeiro


Reply via email to