* [PATCH] [RFC] ARM: shmobile: g4evm: Use multiple irq vectors for SDHI
@ 2011-08-26 10:13 Simon Horman
2011-08-26 12:17 ` Guennadi Liakhovetski
0 siblings, 1 reply; 6+ messages in thread
From: Simon Horman @ 2011-08-26 10:13 UTC (permalink / raw)
To: linux-mmc, linux-sh
Cc: Paul Mundt, Guennadi Liakhovetski, Magnus Damm, Simon Horman
This patch is based on "ARM: arch-shmobile: Use multiple irq vectors for SDHI"
It removes multiplexing of the SDHI vectors and names each IRQ source
to allow the SDHI driver to used source-specific handlers.
This is untested as I do not have access to a working g4evm.
Signed-off-by: Simon Horman <horms@verge.net.au>
---
Requires "mmc: sdhi: Allow specific IRQ sources to use corresponding handlers."
*** compile tested only ***
---
arch/arm/mach-shmobile/board-g4evm.c | 26 ++++++++++++++++++++++-
arch/arm/mach-shmobile/intc-sh7377.c | 36 ++++++++++++++++-----------------
2 files changed, 41 insertions(+), 21 deletions(-)
diff --git a/arch/arm/mach-shmobile/board-g4evm.c b/arch/arm/mach-shmobile/board-g4evm.c
index 8e3c555..60721f1 100644
--- a/arch/arm/mach-shmobile/board-g4evm.c
+++ b/arch/arm/mach-shmobile/board-g4evm.c
@@ -209,7 +209,18 @@ static struct resource sdhi0_resources[] = {
.flags = IORESOURCE_MEM,
},
[1] = {
- .start = evt2irq(0x0e00), /* SDHI0 */
+ .name = SH_MOBILE_SDHI_IRQ_CARD_DETECT,
+ .start = evt2irq(0x0e00) /* SDHI0_SDHI0I0 */,
+ .flags = IORESOURCE_IRQ,
+ },
+ [2] = {
+ .name = SH_MOBILE_SDHI_IRQ_SDCARD,
+ .start = evt2irq(0x0e20) /* SDHI0_SDHI0I1 */,
+ .flags = IORESOURCE_IRQ,
+ },
+ [3] = {
+ .name = SH_MOBILE_SDHI_IRQ_SDIO,
+ .start = evt2irq(0x0e40) /* SDHI0_SDHI0I2 */,
.flags = IORESOURCE_IRQ,
},
};
@@ -236,7 +247,18 @@ static struct resource sdhi1_resources[] = {
.flags = IORESOURCE_MEM,
},
[1] = {
- .start = evt2irq(0x0e80), /* SDHI1 */
+ .name = SH_MOBILE_SDHI_IRQ_CARD_DETECT,
+ .start = evt2irq(0x0e80) /* SDHI1_SDHI0I0 */,
+ .flags = IORESOURCE_IRQ,
+ },
+ [2] = {
+ .name = SH_MOBILE_SDHI_IRQ_SDCARD,
+ .start = evt2irq(0x0ea0) /* SDHI1_SDHI0I1 */,
+ .flags = IORESOURCE_IRQ,
+ },
+ [3] = {
+ .name = SH_MOBILE_SDHI_IRQ_SDIO,
+ .start = evt2irq(0x0ec0) /* SDHI1_SDHI0I2 */,
.flags = IORESOURCE_IRQ,
},
};
diff --git a/arch/arm/mach-shmobile/intc-sh7377.c b/arch/arm/mach-shmobile/intc-sh7377.c
index fe45154..6395687 100644
--- a/arch/arm/mach-shmobile/intc-sh7377.c
+++ b/arch/arm/mach-shmobile/intc-sh7377.c
@@ -27,8 +27,6 @@
enum {
UNUSED_INTCA = 0,
- ENABLED,
- DISABLED,
/* interrupt sources INTCA */
IRQ0A, IRQ1A, IRQ2A, IRQ3A, IRQ4A, IRQ5A, IRQ6A, IRQ7A,
@@ -51,8 +49,8 @@ enum {
MSIOF2, MSIOF1,
SCIFA4, SCIFA5, SCIFB,
FLCTL_FLSTEI, FLCTL_FLTENDI, FLCTL_FLTREQ0I, FLCTL_FLTREQ1I,
- SDHI0,
- SDHI1,
+ SDHI0_SDHI0I0, SDHI0_SDHI0I1, SDHI0_SDHI0I2, SDHI0_SDHI0I3,
+ SDHI1_SDHI1I0, SDHI1_SDHI1I1, SDHI1_SDHI1I2, SDHI1_SDHI1I3,
MSU_MSU, MSU_MSU2,
IRREM,
MSUG,
@@ -87,7 +85,7 @@ enum {
/* interrupt groups INTCA */
DMAC_1, DMAC_2, DMAC2_1, DMAC2_2, DMAC3_1, DMAC3_2, SHWYSTAT,
AP_ARM1, AP_ARM2, USBHS, SPU2, FLCTL, IIC1,
- ICUSB, ICUDMC
+ ICUSB, ICUDMC, SDHI0, SDHI1,
};
static struct intc_vect intca_vectors[] __initdata = {
@@ -130,10 +128,10 @@ static struct intc_vect intca_vectors[] __initdata = {
INTC_VECT(SCIFB, 0x0d60),
INTC_VECT(FLCTL_FLSTEI, 0x0d80), INTC_VECT(FLCTL_FLTENDI, 0x0da0),
INTC_VECT(FLCTL_FLTREQ0I, 0x0dc0), INTC_VECT(FLCTL_FLTREQ1I, 0x0de0),
- INTC_VECT(SDHI0, 0x0e00), INTC_VECT(SDHI0, 0x0e20),
- INTC_VECT(SDHI0, 0x0e40), INTC_VECT(SDHI0, 0x0e60),
- INTC_VECT(SDHI1, 0x0e80), INTC_VECT(SDHI1, 0x0ea0),
- INTC_VECT(SDHI1, 0x0ec0), INTC_VECT(SDHI1, 0x0ee0),
+ INTC_VECT(SDHI0_SDHI0I0, 0x0e00), INTC_VECT(SDHI0_SDHI0I1, 0x0e20),
+ INTC_VECT(SDHI0_SDHI0I2, 0x0e40), INTC_VECT(SDHI0_SDHI0I3, 0x0e60),
+ INTC_VECT(SDHI1_SDHI1I0, 0x0e80), INTC_VECT(SDHI1_SDHI1I1, 0x0ea0),
+ INTC_VECT(SDHI1_SDHI1I2, 0x0ec0), INTC_VECT(SDHI1_SDHI1I3, 0x0ee0),
INTC_VECT(MSU_MSU, 0x0f20), INTC_VECT(MSU_MSU2, 0x0f40),
INTC_VECT(IRREM, 0x0f60),
INTC_VECT(MSUG, 0x0fa0),
@@ -200,6 +198,10 @@ static struct intc_group intca_groups[] __initdata = {
INTC_GROUP(SHWYSTAT, SHWYSTAT_RT, SHWYSTAT_HS, SHWYSTAT_COM),
INTC_GROUP(ICUSB, ICUSB_ICUSB0, ICUSB_ICUSB1),
INTC_GROUP(ICUDMC, ICUDMC_ICUDMC1, ICUDMC_ICUDMC2),
+ INTC_GROUP(SDHI0, SDHI0_SDHI0I0, SDHI0_SDHI0I1,
+ SDHI0_SDHI0I2, SDHI0_SDHI0I3),
+ INTC_GROUP(SDHI1, SDHI1_SDHI1I0, SDHI1_SDHI1I1,
+ SDHI1_SDHI1I2, SDHI1_SDHI1I3)
};
static struct intc_mask_reg intca_mask_registers[] __initdata = {
@@ -234,10 +236,10 @@ static struct intc_mask_reg intca_mask_registers[] __initdata = {
{ SCIFB, SCIFA5, SCIFA4, MSIOF1,
0, 0, MSIOF2, 0 } },
{ 0xe694009c, 0xe69400dc, 8, /* IMR7A / IMCR7A */
- { DISABLED, ENABLED, ENABLED, ENABLED,
+ { SDHI0_SDHI0I3, SDHI0_SDHI0I2, SDHI0_SDHI0I1, SDHI0_SDHI0I0,
FLCTL_FLTREQ1I, FLCTL_FLTREQ0I, FLCTL_FLTENDI, FLCTL_FLSTEI } },
{ 0xe69400a0, 0xe69400e0, 8, /* IMR8A / IMCR8A */
- { DISABLED, ENABLED, ENABLED, ENABLED,
+ { SDHI1_SDHI1I3, SDHI1_SDHI1I2, SDHI1_SDHI1I1, SDHI1_SDHI1I0,
TTI20, USBDMAC_USHDMI, 0, MSUG } },
{ 0xe69400a4, 0xe69400e4, 8, /* IMR9A / IMCR9A */
{ CMT1_CMT13, CMT1_CMT12, CMT1_CMT11, CMT1_CMT10,
@@ -337,14 +339,10 @@ static struct intc_mask_reg intca_ack_registers[] __initdata = {
{ IRQ24A, IRQ25A, IRQ26A, IRQ27A, IRQ28A, IRQ29A, IRQ30A, IRQ31A } },
};
-static struct intc_desc intca_desc __initdata = {
- .name = "sh7377-intca",
- .force_enable = ENABLED,
- .force_disable = DISABLED,
- .hw = INTC_HW_DESC(intca_vectors, intca_groups,
- intca_mask_registers, intca_prio_registers,
- intca_sense_registers, intca_ack_registers),
-};
+static DECLARE_INTC_DESC_ACK(intca_desc, "sh7377-intca",
+ intca_vectors, intca_groups,
+ intca_mask_registers, intca_prio_registers,
+ intca_sense_registers, intca_ack_registers);
/* this macro ignore entry which is also in INTCA */
#define __IGNORE(a...)
--
1.7.5.4
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] [RFC] ARM: shmobile: g4evm: Use multiple irq vectors for SDHI
2011-08-26 10:13 [PATCH] [RFC] ARM: shmobile: g4evm: Use multiple irq vectors for SDHI Simon Horman
@ 2011-08-26 12:17 ` Guennadi Liakhovetski
2011-08-26 12:34 ` Simon Horman
0 siblings, 1 reply; 6+ messages in thread
From: Guennadi Liakhovetski @ 2011-08-26 12:17 UTC (permalink / raw)
To: Simon Horman; +Cc: linux-mmc, linux-sh, Paul Mundt, Magnus Damm
On Fri, 26 Aug 2011, Simon Horman wrote:
> This patch is based on "ARM: arch-shmobile: Use multiple irq vectors for SDHI"
>
> It removes multiplexing of the SDHI vectors and names each IRQ source
> to allow the SDHI driver to used source-specific handlers.
>
> This is untested as I do not have access to a working g4evm.
>
> Signed-off-by: Simon Horman <horms@verge.net.au>
>
> ---
>
> Requires "mmc: sdhi: Allow specific IRQ sources to use corresponding handlers."
>
> *** compile tested only ***
> ---
> arch/arm/mach-shmobile/board-g4evm.c | 26 ++++++++++++++++++++++-
> arch/arm/mach-shmobile/intc-sh7377.c | 36 ++++++++++++++++-----------------
This second file should not be here, right?
Thanks
Guennadi
> 2 files changed, 41 insertions(+), 21 deletions(-)
>
> diff --git a/arch/arm/mach-shmobile/board-g4evm.c b/arch/arm/mach-shmobile/board-g4evm.c
> index 8e3c555..60721f1 100644
> --- a/arch/arm/mach-shmobile/board-g4evm.c
> +++ b/arch/arm/mach-shmobile/board-g4evm.c
> @@ -209,7 +209,18 @@ static struct resource sdhi0_resources[] = {
> .flags = IORESOURCE_MEM,
> },
> [1] = {
> - .start = evt2irq(0x0e00), /* SDHI0 */
> + .name = SH_MOBILE_SDHI_IRQ_CARD_DETECT,
> + .start = evt2irq(0x0e00) /* SDHI0_SDHI0I0 */,
> + .flags = IORESOURCE_IRQ,
> + },
> + [2] = {
> + .name = SH_MOBILE_SDHI_IRQ_SDCARD,
> + .start = evt2irq(0x0e20) /* SDHI0_SDHI0I1 */,
> + .flags = IORESOURCE_IRQ,
> + },
> + [3] = {
> + .name = SH_MOBILE_SDHI_IRQ_SDIO,
> + .start = evt2irq(0x0e40) /* SDHI0_SDHI0I2 */,
> .flags = IORESOURCE_IRQ,
> },
> };
> @@ -236,7 +247,18 @@ static struct resource sdhi1_resources[] = {
> .flags = IORESOURCE_MEM,
> },
> [1] = {
> - .start = evt2irq(0x0e80), /* SDHI1 */
> + .name = SH_MOBILE_SDHI_IRQ_CARD_DETECT,
> + .start = evt2irq(0x0e80) /* SDHI1_SDHI0I0 */,
> + .flags = IORESOURCE_IRQ,
> + },
> + [2] = {
> + .name = SH_MOBILE_SDHI_IRQ_SDCARD,
> + .start = evt2irq(0x0ea0) /* SDHI1_SDHI0I1 */,
> + .flags = IORESOURCE_IRQ,
> + },
> + [3] = {
> + .name = SH_MOBILE_SDHI_IRQ_SDIO,
> + .start = evt2irq(0x0ec0) /* SDHI1_SDHI0I2 */,
> .flags = IORESOURCE_IRQ,
> },
> };
> diff --git a/arch/arm/mach-shmobile/intc-sh7377.c b/arch/arm/mach-shmobile/intc-sh7377.c
> index fe45154..6395687 100644
> --- a/arch/arm/mach-shmobile/intc-sh7377.c
> +++ b/arch/arm/mach-shmobile/intc-sh7377.c
> @@ -27,8 +27,6 @@
>
> enum {
> UNUSED_INTCA = 0,
> - ENABLED,
> - DISABLED,
>
> /* interrupt sources INTCA */
> IRQ0A, IRQ1A, IRQ2A, IRQ3A, IRQ4A, IRQ5A, IRQ6A, IRQ7A,
> @@ -51,8 +49,8 @@ enum {
> MSIOF2, MSIOF1,
> SCIFA4, SCIFA5, SCIFB,
> FLCTL_FLSTEI, FLCTL_FLTENDI, FLCTL_FLTREQ0I, FLCTL_FLTREQ1I,
> - SDHI0,
> - SDHI1,
> + SDHI0_SDHI0I0, SDHI0_SDHI0I1, SDHI0_SDHI0I2, SDHI0_SDHI0I3,
> + SDHI1_SDHI1I0, SDHI1_SDHI1I1, SDHI1_SDHI1I2, SDHI1_SDHI1I3,
> MSU_MSU, MSU_MSU2,
> IRREM,
> MSUG,
> @@ -87,7 +85,7 @@ enum {
> /* interrupt groups INTCA */
> DMAC_1, DMAC_2, DMAC2_1, DMAC2_2, DMAC3_1, DMAC3_2, SHWYSTAT,
> AP_ARM1, AP_ARM2, USBHS, SPU2, FLCTL, IIC1,
> - ICUSB, ICUDMC
> + ICUSB, ICUDMC, SDHI0, SDHI1,
> };
>
> static struct intc_vect intca_vectors[] __initdata = {
> @@ -130,10 +128,10 @@ static struct intc_vect intca_vectors[] __initdata = {
> INTC_VECT(SCIFB, 0x0d60),
> INTC_VECT(FLCTL_FLSTEI, 0x0d80), INTC_VECT(FLCTL_FLTENDI, 0x0da0),
> INTC_VECT(FLCTL_FLTREQ0I, 0x0dc0), INTC_VECT(FLCTL_FLTREQ1I, 0x0de0),
> - INTC_VECT(SDHI0, 0x0e00), INTC_VECT(SDHI0, 0x0e20),
> - INTC_VECT(SDHI0, 0x0e40), INTC_VECT(SDHI0, 0x0e60),
> - INTC_VECT(SDHI1, 0x0e80), INTC_VECT(SDHI1, 0x0ea0),
> - INTC_VECT(SDHI1, 0x0ec0), INTC_VECT(SDHI1, 0x0ee0),
> + INTC_VECT(SDHI0_SDHI0I0, 0x0e00), INTC_VECT(SDHI0_SDHI0I1, 0x0e20),
> + INTC_VECT(SDHI0_SDHI0I2, 0x0e40), INTC_VECT(SDHI0_SDHI0I3, 0x0e60),
> + INTC_VECT(SDHI1_SDHI1I0, 0x0e80), INTC_VECT(SDHI1_SDHI1I1, 0x0ea0),
> + INTC_VECT(SDHI1_SDHI1I2, 0x0ec0), INTC_VECT(SDHI1_SDHI1I3, 0x0ee0),
> INTC_VECT(MSU_MSU, 0x0f20), INTC_VECT(MSU_MSU2, 0x0f40),
> INTC_VECT(IRREM, 0x0f60),
> INTC_VECT(MSUG, 0x0fa0),
> @@ -200,6 +198,10 @@ static struct intc_group intca_groups[] __initdata = {
> INTC_GROUP(SHWYSTAT, SHWYSTAT_RT, SHWYSTAT_HS, SHWYSTAT_COM),
> INTC_GROUP(ICUSB, ICUSB_ICUSB0, ICUSB_ICUSB1),
> INTC_GROUP(ICUDMC, ICUDMC_ICUDMC1, ICUDMC_ICUDMC2),
> + INTC_GROUP(SDHI0, SDHI0_SDHI0I0, SDHI0_SDHI0I1,
> + SDHI0_SDHI0I2, SDHI0_SDHI0I3),
> + INTC_GROUP(SDHI1, SDHI1_SDHI1I0, SDHI1_SDHI1I1,
> + SDHI1_SDHI1I2, SDHI1_SDHI1I3)
> };
>
> static struct intc_mask_reg intca_mask_registers[] __initdata = {
> @@ -234,10 +236,10 @@ static struct intc_mask_reg intca_mask_registers[] __initdata = {
> { SCIFB, SCIFA5, SCIFA4, MSIOF1,
> 0, 0, MSIOF2, 0 } },
> { 0xe694009c, 0xe69400dc, 8, /* IMR7A / IMCR7A */
> - { DISABLED, ENABLED, ENABLED, ENABLED,
> + { SDHI0_SDHI0I3, SDHI0_SDHI0I2, SDHI0_SDHI0I1, SDHI0_SDHI0I0,
> FLCTL_FLTREQ1I, FLCTL_FLTREQ0I, FLCTL_FLTENDI, FLCTL_FLSTEI } },
> { 0xe69400a0, 0xe69400e0, 8, /* IMR8A / IMCR8A */
> - { DISABLED, ENABLED, ENABLED, ENABLED,
> + { SDHI1_SDHI1I3, SDHI1_SDHI1I2, SDHI1_SDHI1I1, SDHI1_SDHI1I0,
> TTI20, USBDMAC_USHDMI, 0, MSUG } },
> { 0xe69400a4, 0xe69400e4, 8, /* IMR9A / IMCR9A */
> { CMT1_CMT13, CMT1_CMT12, CMT1_CMT11, CMT1_CMT10,
> @@ -337,14 +339,10 @@ static struct intc_mask_reg intca_ack_registers[] __initdata = {
> { IRQ24A, IRQ25A, IRQ26A, IRQ27A, IRQ28A, IRQ29A, IRQ30A, IRQ31A } },
> };
>
> -static struct intc_desc intca_desc __initdata = {
> - .name = "sh7377-intca",
> - .force_enable = ENABLED,
> - .force_disable = DISABLED,
> - .hw = INTC_HW_DESC(intca_vectors, intca_groups,
> - intca_mask_registers, intca_prio_registers,
> - intca_sense_registers, intca_ack_registers),
> -};
> +static DECLARE_INTC_DESC_ACK(intca_desc, "sh7377-intca",
> + intca_vectors, intca_groups,
> + intca_mask_registers, intca_prio_registers,
> + intca_sense_registers, intca_ack_registers);
>
> /* this macro ignore entry which is also in INTCA */
> #define __IGNORE(a...)
> --
> 1.7.5.4
>
---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] [RFC] ARM: shmobile: g4evm: Use multiple irq vectors for SDHI
2011-08-26 12:17 ` Guennadi Liakhovetski
@ 2011-08-26 12:34 ` Simon Horman
2011-08-26 12:56 ` Guennadi Liakhovetski
0 siblings, 1 reply; 6+ messages in thread
From: Simon Horman @ 2011-08-26 12:34 UTC (permalink / raw)
To: Guennadi Liakhovetski; +Cc: linux-mmc, linux-sh, Paul Mundt, Magnus Damm
On Fri, Aug 26, 2011 at 02:17:20PM +0200, Guennadi Liakhovetski wrote:
> On Fri, 26 Aug 2011, Simon Horman wrote:
>
> > This patch is based on "ARM: arch-shmobile: Use multiple irq vectors for SDHI"
> >
> > It removes multiplexing of the SDHI vectors and names each IRQ source
> > to allow the SDHI driver to used source-specific handlers.
> >
> > This is untested as I do not have access to a working g4evm.
> >
> > Signed-off-by: Simon Horman <horms@verge.net.au>
> >
> > ---
> >
> > Requires "mmc: sdhi: Allow specific IRQ sources to use corresponding handlers."
> >
> > *** compile tested only ***
> > ---
> > arch/arm/mach-shmobile/board-g4evm.c | 26 ++++++++++++++++++++++-
> > arch/arm/mach-shmobile/intc-sh7377.c | 36 ++++++++++++++++-----------------
>
> This second file should not be here, right?
I believe that the g4evm uses the sh7377 and that the multiplexing of
SDHIinterrupts for the 7377 need to be removed in order to provide multiple
SDHI irq sources.
Am I missing something?
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] [RFC] ARM: shmobile: g4evm: Use multiple irq vectors for SDHI
2011-08-26 12:34 ` Simon Horman
@ 2011-08-26 12:56 ` Guennadi Liakhovetski
2011-08-26 13:06 ` Simon Horman
0 siblings, 1 reply; 6+ messages in thread
From: Guennadi Liakhovetski @ 2011-08-26 12:56 UTC (permalink / raw)
To: Simon Horman; +Cc: linux-mmc, linux-sh, Paul Mundt, Magnus Damm
On Fri, 26 Aug 2011, Simon Horman wrote:
> On Fri, Aug 26, 2011 at 02:17:20PM +0200, Guennadi Liakhovetski wrote:
> > On Fri, 26 Aug 2011, Simon Horman wrote:
> >
> > > This patch is based on "ARM: arch-shmobile: Use multiple irq vectors for SDHI"
> > >
> > > It removes multiplexing of the SDHI vectors and names each IRQ source
> > > to allow the SDHI driver to used source-specific handlers.
> > >
> > > This is untested as I do not have access to a working g4evm.
> > >
> > > Signed-off-by: Simon Horman <horms@verge.net.au>
> > >
> > > ---
> > >
> > > Requires "mmc: sdhi: Allow specific IRQ sources to use corresponding handlers."
> > >
> > > *** compile tested only ***
> > > ---
> > > arch/arm/mach-shmobile/board-g4evm.c | 26 ++++++++++++++++++++++-
> > > arch/arm/mach-shmobile/intc-sh7377.c | 36 ++++++++++++++++-----------------
> >
> > This second file should not be here, right?
>
> I believe that the g4evm uses the sh7377 and that the multiplexing of
> SDHIinterrupts for the 7377 need to be removed in order to provide multiple
> SDHI irq sources.
>
> Am I missing something?
Maybe not, I just misread your patch description as that it only should
touch the board itself. Since intc-sh7377.c has to be touched too, this
should be tested, I think. And I don't have any 7377 hardware available.
Also, would anything break, if we split this into three patches? The first
one would only modify g4evm.c with demuxed IRQs but without names. Then
the sdhi/tmio driver will install the generic ISR for each of them, and in
fact all interrupts would still only come on one IRQ. Then the second
patch would modify intc-sh7377.c, after which IRQs will be routed to
different vectors. And the third patch would then add names to IRQs. But
maybe Paul prefers a single patch for all that.
Thanks
Guennadi
---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] [RFC] ARM: shmobile: g4evm: Use multiple irq vectors for SDHI
2011-08-26 12:56 ` Guennadi Liakhovetski
@ 2011-08-26 13:06 ` Simon Horman
2011-08-30 3:45 ` Simon Horman
0 siblings, 1 reply; 6+ messages in thread
From: Simon Horman @ 2011-08-26 13:06 UTC (permalink / raw)
To: Guennadi Liakhovetski; +Cc: linux-mmc, linux-sh, Paul Mundt, Magnus Damm
On Fri, Aug 26, 2011 at 02:56:50PM +0200, Guennadi Liakhovetski wrote:
> On Fri, 26 Aug 2011, Simon Horman wrote:
>
> > On Fri, Aug 26, 2011 at 02:17:20PM +0200, Guennadi Liakhovetski wrote:
> > > On Fri, 26 Aug 2011, Simon Horman wrote:
> > >
> > > > This patch is based on "ARM: arch-shmobile: Use multiple irq vectors for SDHI"
> > > >
> > > > It removes multiplexing of the SDHI vectors and names each IRQ source
> > > > to allow the SDHI driver to used source-specific handlers.
> > > >
> > > > This is untested as I do not have access to a working g4evm.
> > > >
> > > > Signed-off-by: Simon Horman <horms@verge.net.au>
> > > >
> > > > ---
> > > >
> > > > Requires "mmc: sdhi: Allow specific IRQ sources to use corresponding handlers."
> > > >
> > > > *** compile tested only ***
> > > > ---
> > > > arch/arm/mach-shmobile/board-g4evm.c | 26 ++++++++++++++++++++++-
> > > > arch/arm/mach-shmobile/intc-sh7377.c | 36 ++++++++++++++++-----------------
> > >
> > > This second file should not be here, right?
> >
> > I believe that the g4evm uses the sh7377 and that the multiplexing of
> > SDHIinterrupts for the 7377 need to be removed in order to provide multiple
> > SDHI irq sources.
> >
> > Am I missing something?
>
> Maybe not, I just misread your patch description as that it only should
> touch the board itself. Since intc-sh7377.c has to be touched too, this
> should be tested, I think. And I don't have any 7377 hardware available.
I agree that this needs to be tested (or dropped).
And its annoying that neither of us have the hardware at this time.
> Also, would anything break, if we split this into three patches? The first
> one would only modify g4evm.c with demuxed IRQs but without names. Then
> the sdhi/tmio driver will install the generic ISR for each of them, and in
> fact all interrupts would still only come on one IRQ. Then the second
> patch would modify intc-sh7377.c, after which IRQs will be routed to
> different vectors. And the third patch would then add names to IRQs. But
> maybe Paul prefers a single patch for all that.
Personally I think a single patch is the way to go.
Though I have no strong feelings on the issue.
With regards to your question about splitting the patch. Adding the names
as a separate patch should be fine for the reason you describe. However, I
suspect the other split you suggest would not work.
In any case, two patches would reflect the way the changes
have been made on the 7372 (mackerel and ap4evb).
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] [RFC] ARM: shmobile: g4evm: Use multiple irq vectors for SDHI
2011-08-26 13:06 ` Simon Horman
@ 2011-08-30 3:45 ` Simon Horman
0 siblings, 0 replies; 6+ messages in thread
From: Simon Horman @ 2011-08-30 3:45 UTC (permalink / raw)
To: Guennadi Liakhovetski; +Cc: linux-mmc, linux-sh, Paul Mundt, Magnus Damm
On Fri, Aug 26, 2011 at 10:06:45PM +0900, Simon Horman wrote:
> On Fri, Aug 26, 2011 at 02:56:50PM +0200, Guennadi Liakhovetski wrote:
> > On Fri, 26 Aug 2011, Simon Horman wrote:
> >
> > > On Fri, Aug 26, 2011 at 02:17:20PM +0200, Guennadi Liakhovetski wrote:
> > > > On Fri, 26 Aug 2011, Simon Horman wrote:
> > > >
> > > > > This patch is based on "ARM: arch-shmobile: Use multiple irq vectors for SDHI"
> > > > >
> > > > > It removes multiplexing of the SDHI vectors and names each IRQ source
> > > > > to allow the SDHI driver to used source-specific handlers.
> > > > >
> > > > > This is untested as I do not have access to a working g4evm.
> > > > >
> > > > > Signed-off-by: Simon Horman <horms@verge.net.au>
> > > > >
> > > > > ---
> > > > >
> > > > > Requires "mmc: sdhi: Allow specific IRQ sources to use corresponding handlers."
> > > > >
> > > > > *** compile tested only ***
> > > > > ---
> > > > > arch/arm/mach-shmobile/board-g4evm.c | 26 ++++++++++++++++++++++-
> > > > > arch/arm/mach-shmobile/intc-sh7377.c | 36 ++++++++++++++++-----------------
> > > >
> > > > This second file should not be here, right?
> > >
> > > I believe that the g4evm uses the sh7377 and that the multiplexing of
> > > SDHIinterrupts for the 7377 need to be removed in order to provide multiple
> > > SDHI irq sources.
> > >
> > > Am I missing something?
> >
> > Maybe not, I just misread your patch description as that it only should
> > touch the board itself. Since intc-sh7377.c has to be touched too, this
> > should be tested, I think. And I don't have any 7377 hardware available.
>
> I agree that this needs to be tested (or dropped).
> And its annoying that neither of us have the hardware at this time.
Hi Guennadi,
I spoke with Magnus yesterday and there doesn't seem to be any realistic
chance of accessing hardware to test this patch on in the near future.
So I would like to just leave it sitting in the mailing list archive as
an RFC for now.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2011-08-30 3:45 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-26 10:13 [PATCH] [RFC] ARM: shmobile: g4evm: Use multiple irq vectors for SDHI Simon Horman
2011-08-26 12:17 ` Guennadi Liakhovetski
2011-08-26 12:34 ` Simon Horman
2011-08-26 12:56 ` Guennadi Liakhovetski
2011-08-26 13:06 ` Simon Horman
2011-08-30 3:45 ` Simon Horman
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox