Loading arch/arm/mach-msm/devices.c +57 −1 Original line number Diff line number Diff line Loading @@ -165,8 +165,19 @@ static struct resource resources_sdc1[] = { }, { .start = INT_SDC1_0, .end = INT_SDC1_0, .flags = IORESOURCE_IRQ, .name = "cmd_irq", }, { .start = INT_SDC1_1, .end = INT_SDC1_1, .flags = IORESOURCE_IRQ, .name = "pio_irq", }, { .flags = IORESOURCE_IRQ | IORESOURCE_DISABLED, .name = "status_irq" }, { .start = 8, Loading @@ -183,8 +194,19 @@ static struct resource resources_sdc2[] = { }, { .start = INT_SDC2_0, .end = INT_SDC2_0, .flags = IORESOURCE_IRQ, .name = "cmd_irq", }, { .start = INT_SDC2_1, .end = INT_SDC2_1, .flags = IORESOURCE_IRQ, .name = "pio_irq", }, { .flags = IORESOURCE_IRQ | IORESOURCE_DISABLED, .name = "status_irq" }, { .start = 8, Loading @@ -201,8 +223,19 @@ static struct resource resources_sdc3[] = { }, { .start = INT_SDC3_0, .end = INT_SDC3_0, .flags = IORESOURCE_IRQ, .name = "cmd_irq", }, { .start = INT_SDC3_1, .end = INT_SDC3_1, .flags = IORESOURCE_IRQ, .name = "pio_irq", }, { .flags = IORESOURCE_IRQ | IORESOURCE_DISABLED, .name = "status_irq" }, { .start = 8, Loading @@ -219,8 +252,19 @@ static struct resource resources_sdc4[] = { }, { .start = INT_SDC4_0, .end = INT_SDC4_0, .flags = IORESOURCE_IRQ, .name = "cmd_irq", }, { .start = INT_SDC4_1, .end = INT_SDC4_1, .flags = IORESOURCE_IRQ, .name = "pio_irq", }, { .flags = IORESOURCE_IRQ | IORESOURCE_DISABLED, .name = "status_irq" }, { .start = 8, Loading Loading @@ -276,15 +320,27 @@ static struct platform_device *msm_sdcc_devices[] __initdata = { &msm_device_sdc4, }; int __init msm_add_sdcc(unsigned int controller, struct mmc_platform_data *plat) int __init msm_add_sdcc(unsigned int controller, struct mmc_platform_data *plat, unsigned int stat_irq, unsigned long stat_irq_flags) { struct platform_device *pdev; struct resource *res; if (controller < 1 || controller > 4) return -EINVAL; pdev = msm_sdcc_devices[controller-1]; pdev->dev.platform_data = plat; res = platform_get_resource_byname(pdev, IORESOURCE_IRQ, "status_irq"); if (!res) return -EINVAL; else if (stat_irq) { res->start = res->end = stat_irq; res->flags &= ~IORESOURCE_DISABLED; res->flags |= stat_irq_flags; } return platform_device_register(pdev); } Loading
arch/arm/mach-msm/devices.c +57 −1 Original line number Diff line number Diff line Loading @@ -165,8 +165,19 @@ static struct resource resources_sdc1[] = { }, { .start = INT_SDC1_0, .end = INT_SDC1_0, .flags = IORESOURCE_IRQ, .name = "cmd_irq", }, { .start = INT_SDC1_1, .end = INT_SDC1_1, .flags = IORESOURCE_IRQ, .name = "pio_irq", }, { .flags = IORESOURCE_IRQ | IORESOURCE_DISABLED, .name = "status_irq" }, { .start = 8, Loading @@ -183,8 +194,19 @@ static struct resource resources_sdc2[] = { }, { .start = INT_SDC2_0, .end = INT_SDC2_0, .flags = IORESOURCE_IRQ, .name = "cmd_irq", }, { .start = INT_SDC2_1, .end = INT_SDC2_1, .flags = IORESOURCE_IRQ, .name = "pio_irq", }, { .flags = IORESOURCE_IRQ | IORESOURCE_DISABLED, .name = "status_irq" }, { .start = 8, Loading @@ -201,8 +223,19 @@ static struct resource resources_sdc3[] = { }, { .start = INT_SDC3_0, .end = INT_SDC3_0, .flags = IORESOURCE_IRQ, .name = "cmd_irq", }, { .start = INT_SDC3_1, .end = INT_SDC3_1, .flags = IORESOURCE_IRQ, .name = "pio_irq", }, { .flags = IORESOURCE_IRQ | IORESOURCE_DISABLED, .name = "status_irq" }, { .start = 8, Loading @@ -219,8 +252,19 @@ static struct resource resources_sdc4[] = { }, { .start = INT_SDC4_0, .end = INT_SDC4_0, .flags = IORESOURCE_IRQ, .name = "cmd_irq", }, { .start = INT_SDC4_1, .end = INT_SDC4_1, .flags = IORESOURCE_IRQ, .name = "pio_irq", }, { .flags = IORESOURCE_IRQ | IORESOURCE_DISABLED, .name = "status_irq" }, { .start = 8, Loading Loading @@ -276,15 +320,27 @@ static struct platform_device *msm_sdcc_devices[] __initdata = { &msm_device_sdc4, }; int __init msm_add_sdcc(unsigned int controller, struct mmc_platform_data *plat) int __init msm_add_sdcc(unsigned int controller, struct mmc_platform_data *plat, unsigned int stat_irq, unsigned long stat_irq_flags) { struct platform_device *pdev; struct resource *res; if (controller < 1 || controller > 4) return -EINVAL; pdev = msm_sdcc_devices[controller-1]; pdev->dev.platform_data = plat; res = platform_get_resource_byname(pdev, IORESOURCE_IRQ, "status_irq"); if (!res) return -EINVAL; else if (stat_irq) { res->start = res->end = stat_irq; res->flags &= ~IORESOURCE_DISABLED; res->flags |= stat_irq_flags; } return platform_device_register(pdev); }