Don't strip off the rest of the irq_data struct when calling one of
the s3c_irqsub_* functions. This enables using its hwirq field
later on.

Signed-off-by: Heiko Stuebner <he...@sntech.de>
---
 arch/arm/mach-s3c24xx/irq-s3c2412.c      |    6 +++---
 arch/arm/mach-s3c24xx/irq-s3c2416.c      |   24 ++++++++++++------------
 arch/arm/mach-s3c24xx/irq-s3c2440.c      |    6 +++---
 arch/arm/mach-s3c24xx/irq-s3c2443.c      |   30 +++++++++++++++---------------
 arch/arm/mach-s3c24xx/irq-s3c244x.c      |    6 +++---
 arch/arm/plat-samsung/include/plat/irq.h |   18 +++++++++---------
 drivers/irqchip/irq-s3c24xx.c            |   24 ++++++++++++------------
 7 files changed, 57 insertions(+), 57 deletions(-)

diff --git a/arch/arm/mach-s3c24xx/irq-s3c2412.c 
b/arch/arm/mach-s3c24xx/irq-s3c2412.c
index e65619d..2cee386 100644
--- a/arch/arm/mach-s3c24xx/irq-s3c2412.c
+++ b/arch/arm/mach-s3c24xx/irq-s3c2412.c
@@ -134,17 +134,17 @@ static void s3c2412_irq_demux_cfsdi(unsigned int irq, 
struct irq_desc *desc)
 
 static void s3c2412_irq_cfsdi_mask(struct irq_data *data)
 {
-       s3c_irqsub_mask(data->irq, INTMSK_CFSDI, SUBMSK_CFSDI);
+       s3c_irqsub_mask(data, INTMSK_CFSDI, SUBMSK_CFSDI);
 }
 
 static void s3c2412_irq_cfsdi_unmask(struct irq_data *data)
 {
-       s3c_irqsub_unmask(data->irq, INTMSK_CFSDI);
+       s3c_irqsub_unmask(data, INTMSK_CFSDI);
 }
 
 static void s3c2412_irq_cfsdi_ack(struct irq_data *data)
 {
-       s3c_irqsub_maskack(data->irq, INTMSK_CFSDI, SUBMSK_CFSDI);
+       s3c_irqsub_maskack(data, INTMSK_CFSDI, SUBMSK_CFSDI);
 }
 
 static struct irq_chip s3c2412_irq_cfsdi = {
diff --git a/arch/arm/mach-s3c24xx/irq-s3c2416.c 
b/arch/arm/mach-s3c24xx/irq-s3c2416.c
index ff141b0..149d406 100644
--- a/arch/arm/mach-s3c24xx/irq-s3c2416.c
+++ b/arch/arm/mach-s3c24xx/irq-s3c2416.c
@@ -80,17 +80,17 @@ static void s3c2416_irq_demux_wdtac97(unsigned int irq, 
struct irq_desc *desc)
 
 static void s3c2416_irq_wdtac97_mask(struct irq_data *data)
 {
-       s3c_irqsub_mask(data->irq, INTMSK_WDTAC97, SUBMSK_WDTAC97);
+       s3c_irqsub_mask(data, INTMSK_WDTAC97, SUBMSK_WDTAC97);
 }
 
 static void s3c2416_irq_wdtac97_unmask(struct irq_data *data)
 {
-       s3c_irqsub_unmask(data->irq, INTMSK_WDTAC97);
+       s3c_irqsub_unmask(data, INTMSK_WDTAC97);
 }
 
 static void s3c2416_irq_wdtac97_ack(struct irq_data *data)
 {
-       s3c_irqsub_maskack(data->irq, INTMSK_WDTAC97, SUBMSK_WDTAC97);
+       s3c_irqsub_maskack(data, INTMSK_WDTAC97, SUBMSK_WDTAC97);
 }
 
 static struct irq_chip s3c2416_irq_wdtac97 = {
@@ -111,17 +111,17 @@ static void s3c2416_irq_demux_lcd(unsigned int irq, 
struct irq_desc *desc)
 
 static void s3c2416_irq_lcd_mask(struct irq_data *data)
 {
-       s3c_irqsub_mask(data->irq, INTMSK_LCD, SUBMSK_LCD);
+       s3c_irqsub_mask(data, INTMSK_LCD, SUBMSK_LCD);
 }
 
 static void s3c2416_irq_lcd_unmask(struct irq_data *data)
 {
-       s3c_irqsub_unmask(data->irq, INTMSK_LCD);
+       s3c_irqsub_unmask(data, INTMSK_LCD);
 }
 
 static void s3c2416_irq_lcd_ack(struct irq_data *data)
 {
-       s3c_irqsub_maskack(data->irq, INTMSK_LCD, SUBMSK_LCD);
+       s3c_irqsub_maskack(data, INTMSK_LCD, SUBMSK_LCD);
 }
 
 static struct irq_chip s3c2416_irq_lcd = {
@@ -143,17 +143,17 @@ static void s3c2416_irq_demux_dma(unsigned int irq, 
struct irq_desc *desc)
 
 static void s3c2416_irq_dma_mask(struct irq_data *data)
 {
-       s3c_irqsub_mask(data->irq, INTMSK_DMA, SUBMSK_DMA);
+       s3c_irqsub_mask(data, INTMSK_DMA, SUBMSK_DMA);
 }
 
 static void s3c2416_irq_dma_unmask(struct irq_data *data)
 {
-       s3c_irqsub_unmask(data->irq, INTMSK_DMA);
+       s3c_irqsub_unmask(data, INTMSK_DMA);
 }
 
 static void s3c2416_irq_dma_ack(struct irq_data *data)
 {
-       s3c_irqsub_maskack(data->irq, INTMSK_DMA, SUBMSK_DMA);
+       s3c_irqsub_maskack(data, INTMSK_DMA, SUBMSK_DMA);
 }
 
 static struct irq_chip s3c2416_irq_dma = {
@@ -174,17 +174,17 @@ static void s3c2416_irq_demux_uart3(unsigned int irq, 
struct irq_desc *desc)
 
 static void s3c2416_irq_uart3_mask(struct irq_data *data)
 {
-       s3c_irqsub_mask(data->irq, INTMSK_UART3, SUBMSK_UART3);
+       s3c_irqsub_mask(data, INTMSK_UART3, SUBMSK_UART3);
 }
 
 static void s3c2416_irq_uart3_unmask(struct irq_data *data)
 {
-       s3c_irqsub_unmask(data->irq, INTMSK_UART3);
+       s3c_irqsub_unmask(data, INTMSK_UART3);
 }
 
 static void s3c2416_irq_uart3_ack(struct irq_data *data)
 {
-       s3c_irqsub_maskack(data->irq, INTMSK_UART3, SUBMSK_UART3);
+       s3c_irqsub_maskack(data, INTMSK_UART3, SUBMSK_UART3);
 }
 
 static struct irq_chip s3c2416_irq_uart3 = {
diff --git a/arch/arm/mach-s3c24xx/irq-s3c2440.c 
b/arch/arm/mach-s3c24xx/irq-s3c2440.c
index 4a18cde..99fada9 100644
--- a/arch/arm/mach-s3c24xx/irq-s3c2440.c
+++ b/arch/arm/mach-s3c24xx/irq-s3c2440.c
@@ -71,19 +71,19 @@ static void s3c_irq_demux_wdtac97(unsigned int irq,
 static void
 s3c_irq_wdtac97_mask(struct irq_data *data)
 {
-       s3c_irqsub_mask(data->irq, INTMSK_WDT, 3 << 13);
+       s3c_irqsub_mask(data, INTMSK_WDT, 3 << 13);
 }
 
 static void
 s3c_irq_wdtac97_unmask(struct irq_data *data)
 {
-       s3c_irqsub_unmask(data->irq, INTMSK_WDT);
+       s3c_irqsub_unmask(data, INTMSK_WDT);
 }
 
 static void
 s3c_irq_wdtac97_ack(struct irq_data *data)
 {
-       s3c_irqsub_maskack(data->irq, INTMSK_WDT, 3 << 13);
+       s3c_irqsub_maskack(data, INTMSK_WDT, 3 << 13);
 }
 
 static struct irq_chip s3c_irq_wdtac97 = {
diff --git a/arch/arm/mach-s3c24xx/irq-s3c2443.c 
b/arch/arm/mach-s3c24xx/irq-s3c2443.c
index 5e69109..0d9f77a 100644
--- a/arch/arm/mach-s3c24xx/irq-s3c2443.c
+++ b/arch/arm/mach-s3c24xx/irq-s3c2443.c
@@ -77,17 +77,17 @@ static void s3c2443_irq_demux_wdtac97(unsigned int irq, 
struct irq_desc *desc)
 
 static void s3c2443_irq_wdtac97_mask(struct irq_data *data)
 {
-       s3c_irqsub_mask(data->irq, INTMSK_WDTAC97, SUBMSK_WDTAC97);
+       s3c_irqsub_mask(data, INTMSK_WDTAC97, SUBMSK_WDTAC97);
 }
 
 static void s3c2443_irq_wdtac97_unmask(struct irq_data *data)
 {
-       s3c_irqsub_unmask(data->irq, INTMSK_WDTAC97);
+       s3c_irqsub_unmask(data, INTMSK_WDTAC97);
 }
 
 static void s3c2443_irq_wdtac97_ack(struct irq_data *data)
 {
-       s3c_irqsub_maskack(data->irq, INTMSK_WDTAC97, SUBMSK_WDTAC97);
+       s3c_irqsub_maskack(data, INTMSK_WDTAC97, SUBMSK_WDTAC97);
 }
 
 static struct irq_chip s3c2443_irq_wdtac97 = {
@@ -108,17 +108,17 @@ static void s3c2443_irq_demux_lcd(unsigned int irq, 
struct irq_desc *desc)
 
 static void s3c2443_irq_lcd_mask(struct irq_data *data)
 {
-       s3c_irqsub_mask(data->irq, INTMSK_LCD, SUBMSK_LCD);
+       s3c_irqsub_mask(data, INTMSK_LCD, SUBMSK_LCD);
 }
 
 static void s3c2443_irq_lcd_unmask(struct irq_data *data)
 {
-       s3c_irqsub_unmask(data->irq, INTMSK_LCD);
+       s3c_irqsub_unmask(data, INTMSK_LCD);
 }
 
 static void s3c2443_irq_lcd_ack(struct irq_data *data)
 {
-       s3c_irqsub_maskack(data->irq, INTMSK_LCD, SUBMSK_LCD);
+       s3c_irqsub_maskack(data, INTMSK_LCD, SUBMSK_LCD);
 }
 
 static struct irq_chip s3c2443_irq_lcd = {
@@ -139,17 +139,17 @@ static void s3c2443_irq_demux_dma(unsigned int irq, 
struct irq_desc *desc)
 
 static void s3c2443_irq_dma_mask(struct irq_data *data)
 {
-       s3c_irqsub_mask(data->irq, INTMSK_DMA, SUBMSK_DMA);
+       s3c_irqsub_mask(data, INTMSK_DMA, SUBMSK_DMA);
 }
 
 static void s3c2443_irq_dma_unmask(struct irq_data *data)
 {
-       s3c_irqsub_unmask(data->irq, INTMSK_DMA);
+       s3c_irqsub_unmask(data, INTMSK_DMA);
 }
 
 static void s3c2443_irq_dma_ack(struct irq_data *data)
 {
-       s3c_irqsub_maskack(data->irq, INTMSK_DMA, SUBMSK_DMA);
+       s3c_irqsub_maskack(data, INTMSK_DMA, SUBMSK_DMA);
 }
 
 static struct irq_chip s3c2443_irq_dma = {
@@ -170,17 +170,17 @@ static void s3c2443_irq_demux_uart3(unsigned int irq, 
struct irq_desc *desc)
 
 static void s3c2443_irq_uart3_mask(struct irq_data *data)
 {
-       s3c_irqsub_mask(data->irq, INTMSK_UART3, SUBMSK_UART3);
+       s3c_irqsub_mask(data, INTMSK_UART3, SUBMSK_UART3);
 }
 
 static void s3c2443_irq_uart3_unmask(struct irq_data *data)
 {
-       s3c_irqsub_unmask(data->irq, INTMSK_UART3);
+       s3c_irqsub_unmask(data, INTMSK_UART3);
 }
 
 static void s3c2443_irq_uart3_ack(struct irq_data *data)
 {
-       s3c_irqsub_maskack(data->irq, INTMSK_UART3, SUBMSK_UART3);
+       s3c_irqsub_maskack(data, INTMSK_UART3, SUBMSK_UART3);
 }
 
 static struct irq_chip s3c2443_irq_uart3 = {
@@ -201,17 +201,17 @@ static void s3c2443_irq_demux_cam(unsigned int irq, 
struct irq_desc *desc)
 
 static void s3c2443_irq_cam_mask(struct irq_data *data)
 {
-       s3c_irqsub_mask(data->irq, INTMSK_CAM, SUBMSK_CAM);
+       s3c_irqsub_mask(data, INTMSK_CAM, SUBMSK_CAM);
 }
 
 static void s3c2443_irq_cam_unmask(struct irq_data *data)
 {
-       s3c_irqsub_unmask(data->irq, INTMSK_CAM);
+       s3c_irqsub_unmask(data, INTMSK_CAM);
 }
 
 static void s3c2443_irq_cam_ack(struct irq_data *data)
 {
-       s3c_irqsub_maskack(data->irq, INTMSK_CAM, SUBMSK_CAM);
+       s3c_irqsub_maskack(data, INTMSK_CAM, SUBMSK_CAM);
 }
 
 static struct irq_chip s3c2443_irq_cam = {
diff --git a/arch/arm/mach-s3c24xx/irq-s3c244x.c 
b/arch/arm/mach-s3c24xx/irq-s3c244x.c
index 5fe8e58..7a3f53d 100644
--- a/arch/arm/mach-s3c24xx/irq-s3c244x.c
+++ b/arch/arm/mach-s3c24xx/irq-s3c244x.c
@@ -70,19 +70,19 @@ static void s3c_irq_demux_cam(unsigned int irq,
 static void
 s3c_irq_cam_mask(struct irq_data *data)
 {
-       s3c_irqsub_mask(data->irq, INTMSK_CAM, 3 << 11);
+       s3c_irqsub_mask(data, INTMSK_CAM, 3 << 11);
 }
 
 static void
 s3c_irq_cam_unmask(struct irq_data *data)
 {
-       s3c_irqsub_unmask(data->irq, INTMSK_CAM);
+       s3c_irqsub_unmask(data, INTMSK_CAM);
 }
 
 static void
 s3c_irq_cam_ack(struct irq_data *data)
 {
-       s3c_irqsub_maskack(data->irq, INTMSK_CAM, 3 << 11);
+       s3c_irqsub_maskack(data, INTMSK_CAM, 3 << 11);
 }
 
 static struct irq_chip s3c_irq_cam = {
diff --git a/arch/arm/plat-samsung/include/plat/irq.h 
b/arch/arm/plat-samsung/include/plat/irq.h
index e21a89b..3ae54dc 100644
--- a/arch/arm/plat-samsung/include/plat/irq.h
+++ b/arch/arm/plat-samsung/include/plat/irq.h
@@ -25,7 +25,7 @@
 extern struct irq_chip s3c_irq_level_chip;
 extern struct irq_chip s3c_irq_chip;
 
-static inline void s3c_irqsub_mask(unsigned int irqno,
+static inline void s3c_irqsub_mask(struct irq_data *data,
                                   unsigned int parentbit,
                                   int subcheck)
 {
@@ -35,7 +35,7 @@ static inline void s3c_irqsub_mask(unsigned int irqno,
        submask = __raw_readl(S3C2410_INTSUBMSK);
        mask = __raw_readl(S3C2410_INTMSK);
 
-       submask |= (1UL << (irqno - IRQ_S3CUART_RX0));
+       submask |= (1UL << (data->irq - IRQ_S3CUART_RX0));
 
        /* check to see if we need to mask the parent IRQ */
 
@@ -47,7 +47,7 @@ static inline void s3c_irqsub_mask(unsigned int irqno,
 
 }
 
-static inline void s3c_irqsub_unmask(unsigned int irqno,
+static inline void s3c_irqsub_unmask(struct irq_data *data,
                                     unsigned int parentbit)
 {
        unsigned long mask;
@@ -56,7 +56,7 @@ static inline void s3c_irqsub_unmask(unsigned int irqno,
        submask = __raw_readl(S3C2410_INTSUBMSK);
        mask = __raw_readl(S3C2410_INTMSK);
 
-       submask &= ~(1UL << (irqno - IRQ_S3CUART_RX0));
+       submask &= ~(1UL << (data->irq - IRQ_S3CUART_RX0));
        mask &= ~parentbit;
 
        /* write back masks */
@@ -65,13 +65,13 @@ static inline void s3c_irqsub_unmask(unsigned int irqno,
 }
 
 
-static inline void s3c_irqsub_maskack(unsigned int irqno,
+static inline void s3c_irqsub_maskack(struct irq_data *data,
                                      unsigned int parentmask,
                                      unsigned int group)
 {
-       unsigned int bit = 1UL << (irqno - IRQ_S3CUART_RX0);
+       unsigned int bit = 1UL << (data->irq - IRQ_S3CUART_RX0);
 
-       s3c_irqsub_mask(irqno, parentmask, group);
+       s3c_irqsub_mask(data, parentmask, group);
 
        __raw_writel(bit, S3C2410_SUBSRCPND);
 
@@ -86,11 +86,11 @@ static inline void s3c_irqsub_maskack(unsigned int irqno,
        }
 }
 
-static inline void s3c_irqsub_ack(unsigned int irqno,
+static inline void s3c_irqsub_ack(struct irq_data *data,
                                  unsigned int parentmask,
                                  unsigned int group)
 {
-       unsigned int bit = 1UL << (irqno - IRQ_S3CUART_RX0);
+       unsigned int bit = 1UL << (data->irq - IRQ_S3CUART_RX0);
 
        __raw_writel(bit, S3C2410_SUBSRCPND);
 
diff --git a/drivers/irqchip/irq-s3c24xx.c b/drivers/irqchip/irq-s3c24xx.c
index cf9d04d..073e614 100644
--- a/drivers/irqchip/irq-s3c24xx.c
+++ b/drivers/irqchip/irq-s3c24xx.c
@@ -258,19 +258,19 @@ static struct irq_chip s3c_irq_eint0t4 = {
 static void
 s3c_irq_uart0_mask(struct irq_data *data)
 {
-       s3c_irqsub_mask(data->irq, INTMSK_UART0, 7);
+       s3c_irqsub_mask(data, INTMSK_UART0, 7);
 }
 
 static void
 s3c_irq_uart0_unmask(struct irq_data *data)
 {
-       s3c_irqsub_unmask(data->irq, INTMSK_UART0);
+       s3c_irqsub_unmask(data, INTMSK_UART0);
 }
 
 static void
 s3c_irq_uart0_ack(struct irq_data *data)
 {
-       s3c_irqsub_maskack(data->irq, INTMSK_UART0, 7);
+       s3c_irqsub_maskack(data, INTMSK_UART0, 7);
 }
 
 static struct irq_chip s3c_irq_uart0 = {
@@ -285,19 +285,19 @@ static struct irq_chip s3c_irq_uart0 = {
 static void
 s3c_irq_uart1_mask(struct irq_data *data)
 {
-       s3c_irqsub_mask(data->irq, INTMSK_UART1, 7 << 3);
+       s3c_irqsub_mask(data, INTMSK_UART1, 7 << 3);
 }
 
 static void
 s3c_irq_uart1_unmask(struct irq_data *data)
 {
-       s3c_irqsub_unmask(data->irq, INTMSK_UART1);
+       s3c_irqsub_unmask(data, INTMSK_UART1);
 }
 
 static void
 s3c_irq_uart1_ack(struct irq_data *data)
 {
-       s3c_irqsub_maskack(data->irq, INTMSK_UART1, 7 << 3);
+       s3c_irqsub_maskack(data, INTMSK_UART1, 7 << 3);
 }
 
 static struct irq_chip s3c_irq_uart1 = {
@@ -312,19 +312,19 @@ static struct irq_chip s3c_irq_uart1 = {
 static void
 s3c_irq_uart2_mask(struct irq_data *data)
 {
-       s3c_irqsub_mask(data->irq, INTMSK_UART2, 7 << 6);
+       s3c_irqsub_mask(data, INTMSK_UART2, 7 << 6);
 }
 
 static void
 s3c_irq_uart2_unmask(struct irq_data *data)
 {
-       s3c_irqsub_unmask(data->irq, INTMSK_UART2);
+       s3c_irqsub_unmask(data, INTMSK_UART2);
 }
 
 static void
 s3c_irq_uart2_ack(struct irq_data *data)
 {
-       s3c_irqsub_maskack(data->irq, INTMSK_UART2, 7 << 6);
+       s3c_irqsub_maskack(data, INTMSK_UART2, 7 << 6);
 }
 
 static struct irq_chip s3c_irq_uart2 = {
@@ -339,19 +339,19 @@ static struct irq_chip s3c_irq_uart2 = {
 static void
 s3c_irq_adc_mask(struct irq_data *d)
 {
-       s3c_irqsub_mask(d->irq, INTMSK_ADCPARENT, 3 << 9);
+       s3c_irqsub_mask(d, INTMSK_ADCPARENT, 3 << 9);
 }
 
 static void
 s3c_irq_adc_unmask(struct irq_data *d)
 {
-       s3c_irqsub_unmask(d->irq, INTMSK_ADCPARENT);
+       s3c_irqsub_unmask(d, INTMSK_ADCPARENT);
 }
 
 static void
 s3c_irq_adc_ack(struct irq_data *d)
 {
-       s3c_irqsub_ack(d->irq, INTMSK_ADCPARENT, 3 << 9);
+       s3c_irqsub_ack(d, INTMSK_ADCPARENT, 3 << 9);
 }
 
 static struct irq_chip s3c_irq_adc = {
-- 
1.7.2.3

--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to