Patch "iio: adc: bcm_iproc_adc: swap primary and secondary isr handler's" has been added to the 4.11-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
iio: adc: bcm_iproc_adc: swap primary and secondary isr handler's
to the 4.11-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
iio-adc-bcm_iproc_adc-swap-primary-and-secondary-isr-handler-s.patch
and it can be found in the queue-4.11 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
f7d86ecf83cb66d3c4c6ac4edb1dd50c0919aa2bMon Sep 17 00:00:00 2001
From: Raveendra Padasalagi <[email protected]>
Date: Tue, 16 May 2017 12:22:42 +0530
Subject: iio: adc: bcm_iproc_adc: swap primary and secondary isr handler's
From: Raveendra Padasalagi <[email protected]>
commit f7d86ecf83cb66d3c4c6ac4edb1dd50c0919aa2b upstream.
The third argument of devm_request_threaded_irq() is the primary handler. It is called in hardirq context and checks whether the interrupt is relevant to the device. If the primary handler returns IRQ_WAKE_THREAD, the secondary handler (a.k.a. handler thread) is scheduled to run in process context.
bcm_iproc_adc.c uses the secondary handler as the primary one and the other way around. So this patch fixes the same, along with re-naming the secondary handler and primary handler names properly.
Tested on the BCM9583XX iProc SoC based boards.
--- drivers/iio/adc/bcm_iproc_adc.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
drivers/iio/adc/bcm_iproc_adc.c +4 -4
@@ -143,7 +143,7 @@ static void iproc_adc_reg_dump(struct iiiproc_adc_dbg_reg (dev, adc_priv,IPROC_SOFT_BYPASS_DATA ); } -static irqreturn_t iproc_adc_interrupt_handler (int irq,void *data) +static irqreturn_t iproc_adc_interrupt_thread (int irq,void *data) {u32 channel_intr_status;u32 intr_status;
@@ -167,7 +167,7 @@ static irqreturn_t iproc_adc_interrupt_hreturn IRQ_NONE ; } -static irqreturn_t iproc_adc_interrupt_thread (int irq,void *data) +static irqreturn_t iproc_adc_interrupt_handler (int irq,void *data) {irqreturn_t retval =IRQ_NONE ;struct iproc_adc_priv *adc_priv;
@@ -181,7 +181,7 @@ static irqreturn_t iproc_adc_interrupt_t adc_priv =iio_priv (indio_dev);regmap_read (adc_priv->regmap,IPROC_INTERRUPT_STATUS , &intr_status); -dev_dbg (&indio_dev->dev,"iproc_adc_interrupt_thread(),INTRPT_STS:%x\n" , +dev_dbg (&indio_dev->dev,"iproc_adc_interrupt_handler(),INTRPT_STS:%x\n" , intr_status); intr_channels = (intr_status &IPROC_ADC_INTR_MASK ) >>IPROC_ADC_INTR ;
@@ -566,8 +566,8 @@ static int iproc_adc_probe(struct platfo } ret =devm_request_threaded_irq (&pdev->dev, adc_priv->irqno, - iproc_adc_interrupt_thread, iproc_adc_interrupt_handler, + iproc_adc_interrupt_thread,IRQF_SHARED ,"iproc-adc" , indio_dev);if (ret) {dev_err (&pdev->dev,"request_irq error %d\n" , ret);
Patches currently in stable-queue which might be from [email protected] are
queue-4.11/iio-adc-bcm_iproc_adc-swap-primary-and-secondary-isr-handler-s.patch