diff mbox

[1/2] ARM: shmobile: irqpin: add a DT property to enable masking on parent

Message ID Pine.LNX.4.64.1305241109530.1090@axis700.grange (mailing list archive)
State Superseded
Headers show

Commit Message

Guennadi Liakhovetski May 24, 2013, 9:13 a.m. UTC
To disable spurious interrupts, that get triggered on certain hardware, the
irqpin driver masks them on the parent interrupt controller. To specify
such broken devices a .control_parent parameter can be provided in the
platform data. In the DT case we need a property, to do the same.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
---

These two patches simply split the earlier "ARM: shmobile: irqpin: fix 
handling of spurious interrupts in DT case" patch into two parts. 
Otherwise no change.

 .../interrupt-controller/renesas,intc-irqpin.txt   |    2 ++
 drivers/irqchip/irq-renesas-intc-irqpin.c          |    7 +++++--
 2 files changed, 7 insertions(+), 2 deletions(-)

Comments

Simon Horman May 25, 2013, 12:39 a.m. UTC | #1
On Fri, May 24, 2013 at 11:13:03AM +0200, Guennadi Liakhovetski wrote:
> To disable spurious interrupts, that get triggered on certain hardware, the
> irqpin driver masks them on the parent interrupt controller. To specify
> such broken devices a .control_parent parameter can be provided in the
> platform data. In the DT case we need a property, to do the same.
> 
> Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
> ---
> 
> These two patches simply split the earlier "ARM: shmobile: irqpin: fix 
> handling of spurious interrupts in DT case" patch into two parts. 
> Otherwise no change.

Magnus,

could you please review this series?

> 
>  .../interrupt-controller/renesas,intc-irqpin.txt   |    2 ++
>  drivers/irqchip/irq-renesas-intc-irqpin.c          |    7 +++++--
>  2 files changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/interrupt-controller/renesas,intc-irqpin.txt b/Documentation/devicetree/bindings/interrupt-controller/renesas,intc-irqpin.txt
> index c6f09b7..152b10a 100644
> --- a/Documentation/devicetree/bindings/interrupt-controller/renesas,intc-irqpin.txt
> +++ b/Documentation/devicetree/bindings/interrupt-controller/renesas,intc-irqpin.txt
> @@ -11,3 +11,5 @@ Optional properties:
>    resource allocation properties
>  - sense-bitfield-width: width of a single sense bitfield in the SENSE register,
>    if different from the default 4 bits
> +- control-parent: disable and enable interrupts on the parent interrupt
> +  controller, needed for some broken implementations
> diff --git a/drivers/irqchip/irq-renesas-intc-irqpin.c b/drivers/irqchip/irq-renesas-intc-irqpin.c
> index 4aca1b2..82cec63 100644
> --- a/drivers/irqchip/irq-renesas-intc-irqpin.c
> +++ b/drivers/irqchip/irq-renesas-intc-irqpin.c
> @@ -348,11 +348,14 @@ static int intc_irqpin_probe(struct platform_device *pdev)
>  	}
>  
>  	/* deal with driver instance configuration */
> -	if (pdata)
> +	if (pdata) {
>  		memcpy(&p->config, pdata, sizeof(*pdata));
> -	else
> +	} else {
>  		of_property_read_u32(pdev->dev.of_node, "sense-bitfield-width",
>  				     &p->config.sense_bitfield_width);
> +		p->config.control_parent = of_property_read_bool(pdev->dev.of_node,
> +								 "control-parent");
> +	}
>  	if (!p->config.sense_bitfield_width)
>  		p->config.sense_bitfield_width = 4; /* default to 4 bits */
>  
> -- 
> 1.7.2.5
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Magnus Damm June 11, 2013, 9:37 a.m. UTC | #2
On Fri, May 24, 2013 at 6:13 PM, Guennadi Liakhovetski
<g.liakhovetski@gmx.de> wrote:
> To disable spurious interrupts, that get triggered on certain hardware, the
> irqpin driver masks them on the parent interrupt controller. To specify
> such broken devices a .control_parent parameter can be provided in the
> platform data. In the DT case we need a property, to do the same.
>
> Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
> ---
>
> These two patches simply split the earlier "ARM: shmobile: irqpin: fix
> handling of spurious interrupts in DT case" patch into two parts.
> Otherwise no change.

I'm fine with this portion of the patch series. Thanks for your help!

Acked-by: Magnus Damm <damm@opensource.se>
--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Simon Horman June 12, 2013, 8:38 a.m. UTC | #3
On Tue, Jun 11, 2013 at 06:37:24PM +0900, Magnus Damm wrote:
> On Fri, May 24, 2013 at 6:13 PM, Guennadi Liakhovetski
> <g.liakhovetski@gmx.de> wrote:
> > To disable spurious interrupts, that get triggered on certain hardware, the
> > irqpin driver masks them on the parent interrupt controller. To specify
> > such broken devices a .control_parent parameter can be provided in the
> > platform data. In the DT case we need a property, to do the same.
> >
> > Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
> > ---
> >
> > These two patches simply split the earlier "ARM: shmobile: irqpin: fix
> > handling of spurious interrupts in DT case" patch into two parts.
> > Otherwise no change.
> 
> I'm fine with this portion of the patch series. Thanks for your help!
>
> Acked-by: Magnus Damm <damm@opensource.se>

I believe that this patch depends on
"irqchip: renesas-intc-irqpin: DT binding for sense bitfield width"
which Arnd has requested some modifications to.

"I think you should add documentation here about how the two interrupt
cells are to be interpreted, to allow people to fill the values from a data
sheet or board schematic."
http://www.spinics.net/lists/linux-sh/msg20202.html

Please post a fresh series that:

1. Includes a fresh version of "irqchip: renesas-intc-irqpin: DT binding
   for sense bitfield width" with Arnd's concerns addressed.

2. Includes this patch with Magnus's Ack.

Please be sure to CC Arnd on the new series.
--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Simon Horman June 18, 2013, 7:41 a.m. UTC | #4
On Wed, Jun 12, 2013 at 05:38:50PM +0900, Simon Horman wrote:
> On Tue, Jun 11, 2013 at 06:37:24PM +0900, Magnus Damm wrote:
> > On Fri, May 24, 2013 at 6:13 PM, Guennadi Liakhovetski
> > <g.liakhovetski@gmx.de> wrote:
> > > To disable spurious interrupts, that get triggered on certain hardware, the
> > > irqpin driver masks them on the parent interrupt controller. To specify
> > > such broken devices a .control_parent parameter can be provided in the
> > > platform data. In the DT case we need a property, to do the same.
> > >
> > > Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
> > > ---
> > >
> > > These two patches simply split the earlier "ARM: shmobile: irqpin: fix
> > > handling of spurious interrupts in DT case" patch into two parts.
> > > Otherwise no change.
> > 
> > I'm fine with this portion of the patch series. Thanks for your help!
> >
> > Acked-by: Magnus Damm <damm@opensource.se>
> 
> I believe that this patch depends on
> "irqchip: renesas-intc-irqpin: DT binding for sense bitfield width"
> which Arnd has requested some modifications to.
> 
> "I think you should add documentation here about how the two interrupt
> cells are to be interpreted, to allow people to fill the values from a data
> sheet or board schematic."
> http://www.spinics.net/lists/linux-sh/msg20202.html
> 
> Please post a fresh series that:
> 
> 1. Includes a fresh version of "irqchip: renesas-intc-irqpin: DT binding
>    for sense bitfield width" with Arnd's concerns addressed.
> 
> 2. Includes this patch with Magnus's Ack.
> 
> Please be sure to CC Arnd on the new series.

Hi Guennadi,

I see that you reposted "irqchip: renesas-intc-irqpin: DT binding
for sense bitfield width", which I have queued-up, without this patch.

Please rebase this patch and repost it with Magnus's Ack.
--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/interrupt-controller/renesas,intc-irqpin.txt b/Documentation/devicetree/bindings/interrupt-controller/renesas,intc-irqpin.txt
index c6f09b7..152b10a 100644
--- a/Documentation/devicetree/bindings/interrupt-controller/renesas,intc-irqpin.txt
+++ b/Documentation/devicetree/bindings/interrupt-controller/renesas,intc-irqpin.txt
@@ -11,3 +11,5 @@  Optional properties:
   resource allocation properties
 - sense-bitfield-width: width of a single sense bitfield in the SENSE register,
   if different from the default 4 bits
+- control-parent: disable and enable interrupts on the parent interrupt
+  controller, needed for some broken implementations
diff --git a/drivers/irqchip/irq-renesas-intc-irqpin.c b/drivers/irqchip/irq-renesas-intc-irqpin.c
index 4aca1b2..82cec63 100644
--- a/drivers/irqchip/irq-renesas-intc-irqpin.c
+++ b/drivers/irqchip/irq-renesas-intc-irqpin.c
@@ -348,11 +348,14 @@  static int intc_irqpin_probe(struct platform_device *pdev)
 	}
 
 	/* deal with driver instance configuration */
-	if (pdata)
+	if (pdata) {
 		memcpy(&p->config, pdata, sizeof(*pdata));
-	else
+	} else {
 		of_property_read_u32(pdev->dev.of_node, "sense-bitfield-width",
 				     &p->config.sense_bitfield_width);
+		p->config.control_parent = of_property_read_bool(pdev->dev.of_node,
+								 "control-parent");
+	}
 	if (!p->config.sense_bitfield_width)
 		p->config.sense_bitfield_width = 4; /* default to 4 bits */