Commit 15a063f7 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'sh-for-linus' of git://github.com/pmundt/linux-sh

Pull SuperH fixes from Paul Mundt.

* tag 'sh-for-linus' of git://github.com/pmundt/linux-sh:
  sh: intc: Handle domain association for sparseirq pre-allocated vectors.
  sh: sh7269: Fix LCD pinmux
  sh: dma: fix request_irq usage
parents 1dd8372d fa75ce64
...@@ -335,7 +335,7 @@ static int dmae_irq_init(void) ...@@ -335,7 +335,7 @@ static int dmae_irq_init(void)
for (n = 0; n < NR_DMAE; n++) { for (n = 0; n < NR_DMAE; n++) {
int i = request_irq(get_dma_error_irq(n), dma_err, int i = request_irq(get_dma_error_irq(n), dma_err,
IRQF_SHARED, dmae_name[n], NULL); IRQF_SHARED, dmae_name[n], (void *)dmae_name[n]);
if (unlikely(i < 0)) { if (unlikely(i < 0)) {
printk(KERN_ERR "%s request_irq fail\n", dmae_name[n]); printk(KERN_ERR "%s request_irq fail\n", dmae_name[n]);
return i; return i;
......
...@@ -183,18 +183,30 @@ enum { ...@@ -183,18 +183,30 @@ enum {
GPIO_FN_DV_DATA1, GPIO_FN_DV_DATA0, GPIO_FN_DV_DATA1, GPIO_FN_DV_DATA0,
GPIO_FN_LCD_CLK, GPIO_FN_LCD_EXTCLK, GPIO_FN_LCD_CLK, GPIO_FN_LCD_EXTCLK,
GPIO_FN_LCD_VSYNC, GPIO_FN_LCD_HSYNC, GPIO_FN_LCD_DE, GPIO_FN_LCD_VSYNC, GPIO_FN_LCD_HSYNC, GPIO_FN_LCD_DE,
GPIO_FN_LCD_DATA23, GPIO_FN_LCD_DATA22, GPIO_FN_LCD_DATA23_PG23, GPIO_FN_LCD_DATA22_PG22,
GPIO_FN_LCD_DATA21, GPIO_FN_LCD_DATA20, GPIO_FN_LCD_DATA21_PG21, GPIO_FN_LCD_DATA20_PG20,
GPIO_FN_LCD_DATA19, GPIO_FN_LCD_DATA18, GPIO_FN_LCD_DATA19_PG19, GPIO_FN_LCD_DATA18_PG18,
GPIO_FN_LCD_DATA17, GPIO_FN_LCD_DATA16, GPIO_FN_LCD_DATA17_PG17, GPIO_FN_LCD_DATA16_PG16,
GPIO_FN_LCD_DATA15, GPIO_FN_LCD_DATA14, GPIO_FN_LCD_DATA15_PG15, GPIO_FN_LCD_DATA14_PG14,
GPIO_FN_LCD_DATA13, GPIO_FN_LCD_DATA12, GPIO_FN_LCD_DATA13_PG13, GPIO_FN_LCD_DATA12_PG12,
GPIO_FN_LCD_DATA11, GPIO_FN_LCD_DATA10, GPIO_FN_LCD_DATA11_PG11, GPIO_FN_LCD_DATA10_PG10,
GPIO_FN_LCD_DATA9, GPIO_FN_LCD_DATA8, GPIO_FN_LCD_DATA9_PG9, GPIO_FN_LCD_DATA8_PG8,
GPIO_FN_LCD_DATA7, GPIO_FN_LCD_DATA6, GPIO_FN_LCD_DATA7_PG7, GPIO_FN_LCD_DATA6_PG6,
GPIO_FN_LCD_DATA5, GPIO_FN_LCD_DATA4, GPIO_FN_LCD_DATA5_PG5, GPIO_FN_LCD_DATA4_PG4,
GPIO_FN_LCD_DATA3, GPIO_FN_LCD_DATA2, GPIO_FN_LCD_DATA3_PG3, GPIO_FN_LCD_DATA2_PG2,
GPIO_FN_LCD_DATA1, GPIO_FN_LCD_DATA0, GPIO_FN_LCD_DATA1_PG1, GPIO_FN_LCD_DATA0_PG0,
GPIO_FN_LCD_DATA23_PJ23, GPIO_FN_LCD_DATA22_PJ22,
GPIO_FN_LCD_DATA21_PJ21, GPIO_FN_LCD_DATA20_PJ20,
GPIO_FN_LCD_DATA19_PJ19, GPIO_FN_LCD_DATA18_PJ18,
GPIO_FN_LCD_DATA17_PJ17, GPIO_FN_LCD_DATA16_PJ16,
GPIO_FN_LCD_DATA15_PJ15, GPIO_FN_LCD_DATA14_PJ14,
GPIO_FN_LCD_DATA13_PJ13, GPIO_FN_LCD_DATA12_PJ12,
GPIO_FN_LCD_DATA11_PJ11, GPIO_FN_LCD_DATA10_PJ10,
GPIO_FN_LCD_DATA9_PJ9, GPIO_FN_LCD_DATA8_PJ8,
GPIO_FN_LCD_DATA7_PJ7, GPIO_FN_LCD_DATA6_PJ6,
GPIO_FN_LCD_DATA5_PJ5, GPIO_FN_LCD_DATA4_PJ4,
GPIO_FN_LCD_DATA3_PJ3, GPIO_FN_LCD_DATA2_PJ2,
GPIO_FN_LCD_DATA1_PJ1, GPIO_FN_LCD_DATA0_PJ0,
GPIO_FN_LCD_M_DISP, GPIO_FN_LCD_M_DISP,
}; };
......
This diff is collapsed.
...@@ -324,9 +324,17 @@ int __init register_intc_controller(struct intc_desc *desc) ...@@ -324,9 +324,17 @@ int __init register_intc_controller(struct intc_desc *desc)
res = irq_create_identity_mapping(d->domain, irq); res = irq_create_identity_mapping(d->domain, irq);
if (unlikely(res)) { if (unlikely(res)) {
pr_err("can't get irq_desc for %d\n", irq); if (res == -EEXIST) {
res = irq_domain_associate(d->domain, irq, irq);
if (unlikely(res)) {
pr_err("domain association failure\n");
continue;
}
} else {
pr_err("can't identity map IRQ %d\n", irq);
continue; continue;
} }
}
intc_irq_xlate_set(irq, vect->enum_id, d); intc_irq_xlate_set(irq, vect->enum_id, d);
intc_register_irq(desc, d, vect->enum_id, irq); intc_register_irq(desc, d, vect->enum_id, irq);
...@@ -345,9 +353,20 @@ int __init register_intc_controller(struct intc_desc *desc) ...@@ -345,9 +353,20 @@ int __init register_intc_controller(struct intc_desc *desc)
*/ */
res = irq_create_identity_mapping(d->domain, irq2); res = irq_create_identity_mapping(d->domain, irq2);
if (unlikely(res)) { if (unlikely(res)) {
pr_err("can't get irq_desc for %d\n", irq2); if (res == -EEXIST) {
res = irq_domain_associate(d->domain,
irq, irq);
if (unlikely(res)) {
pr_err("domain association "
"failure\n");
continue;
}
} else {
pr_err("can't identity map IRQ %d\n",
irq);
continue; continue;
} }
}
vect2->enum_id = 0; vect2->enum_id = 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment