mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 10:41:38 -04:00
SuperH updates for 3.5-rc1 merge window
- New CPUs: SH7734 (SH-4A), SH7264 and SH7269 (SH-2A) - New boards: RSK2+SH7264, RSK2+SH7269 - Unbreaking kgdb for SMP - Consolidation of _32/_64 page fault handling. - watchdog and legacy DMA chainsawing, part 1 - Conversion to evt2irq() hwirq lookup, to support relocation of vectored IRQs for irqdomains. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) iEYEABECAAYFAk+7gb4ACgkQGkmNcg7/o7hoPQCgvdQGi9dk3ewIBX9LQ9mL6L81 ls8An3PMKi9fHANnztVUAheP1U2DEanJ =v/VS -----END PGP SIGNATURE----- Merge tag 'sh-for-linus' of git://github.com/pmundt/linux-sh Pull SuperH updates from Paul Mundt: - New CPUs: SH7734 (SH-4A), SH7264 and SH7269 (SH-2A) - New boards: RSK2+SH7264, RSK2+SH7269 - Unbreaking kgdb for SMP - Consolidation of _32/_64 page fault handling. - watchdog and legacy DMA chainsawing, part 1 - Conversion to evt2irq() hwirq lookup, to support relocation of vectored IRQs for irqdomains. * tag 'sh-for-linus' of git://github.com/pmundt/linux-sh: (98 commits) sh: intc: Kill off special reservation interface. sh: Enable PIO API for hp6xx and se770x. sh: Kill off machvec IRQ hinting. sh: dma: More legacy cpu dma chainsawing. sh: Kill off MAX_DMA_ADDRESS leftovers. sh: Tidy up some of the cpu legacy dma header mess. sh: Move sh4a dma header from cpu-sh4 to cpu-sh4a. sh64: Fix up vmalloc fault range check. Revert "sh: Ensure fixmap and store queue space can co-exist." serial: sh-sci: Fix for port types without BRI interrupts. sh: legacy PCI evt2irq migration. sh: cpu dma evt2irq migration. sh: sh7763rdp evt2irq migration. sh: sdk7780 evt2irq migration. sh: migor evt2irq migration. sh: landisk evt2irq migration. sh: kfr2r09 evt2irq migration. sh: ecovec24 evt2irq migration. sh: ap325rxa evt2irq migration. sh: urquell evt2irq migration. ...
This commit is contained in:
commit
1d767cae4d
152 changed files with 13243 additions and 2205 deletions
|
|
@ -1052,9 +1052,17 @@ static int sci_request_irq(struct sci_port *port)
|
|||
if (SCIx_IRQ_IS_MUXED(port)) {
|
||||
i = SCIx_MUX_IRQ;
|
||||
irq = up->irq;
|
||||
} else
|
||||
} else {
|
||||
irq = port->cfg->irqs[i];
|
||||
|
||||
/*
|
||||
* Certain port types won't support all of the
|
||||
* available interrupt sources.
|
||||
*/
|
||||
if (unlikely(!irq))
|
||||
continue;
|
||||
}
|
||||
|
||||
desc = sci_irq_desc + i;
|
||||
port->irqstr[j] = kasprintf(GFP_KERNEL, "%s:%s",
|
||||
dev_name(up->dev), desc->desc);
|
||||
|
|
@ -1094,6 +1102,15 @@ static void sci_free_irq(struct sci_port *port)
|
|||
* IRQ first.
|
||||
*/
|
||||
for (i = 0; i < SCIx_NR_IRQS; i++) {
|
||||
unsigned int irq = port->cfg->irqs[i];
|
||||
|
||||
/*
|
||||
* Certain port types won't support all of the available
|
||||
* interrupt sources.
|
||||
*/
|
||||
if (unlikely(!irq))
|
||||
continue;
|
||||
|
||||
free_irq(port->cfg->irqs[i], port);
|
||||
kfree(port->irqstr[i]);
|
||||
|
||||
|
|
@ -1564,10 +1581,32 @@ static void sci_enable_ms(struct uart_port *port)
|
|||
|
||||
static void sci_break_ctl(struct uart_port *port, int break_state)
|
||||
{
|
||||
/*
|
||||
* Not supported by hardware. Most parts couple break and rx
|
||||
* interrupts together, with break detection always enabled.
|
||||
*/
|
||||
struct sci_port *s = to_sci_port(port);
|
||||
struct plat_sci_reg *reg = sci_regmap[s->cfg->regtype] + SCSPTR;
|
||||
unsigned short scscr, scsptr;
|
||||
|
||||
/* check wheter the port has SCSPTR */
|
||||
if (!reg->size) {
|
||||
/*
|
||||
* Not supported by hardware. Most parts couple break and rx
|
||||
* interrupts together, with break detection always enabled.
|
||||
*/
|
||||
return;
|
||||
}
|
||||
|
||||
scsptr = serial_port_in(port, SCSPTR);
|
||||
scscr = serial_port_in(port, SCSCR);
|
||||
|
||||
if (break_state == -1) {
|
||||
scsptr = (scsptr | SCSPTR_SPB2IO) & ~SCSPTR_SPB2DT;
|
||||
scscr &= ~SCSCR_TE;
|
||||
} else {
|
||||
scsptr = (scsptr | SCSPTR_SPB2DT) & ~SCSPTR_SPB2IO;
|
||||
scscr |= SCSCR_TE;
|
||||
}
|
||||
|
||||
serial_port_out(port, SCSPTR, scsptr);
|
||||
serial_port_out(port, SCSCR, scscr);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SERIAL_SH_SCI_DMA
|
||||
|
|
|
|||
Loading…
Reference in a new issue