Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 235551
b: refs/heads/master
c: 72af476
h: refs/heads/master
i:
  235549: 814eca6
  235547: 67ffa0e
  235543: 2693948
  235535: 5348a26
  235519: eacc397
v: v3
  • Loading branch information
Tobias Klauser authored and Greg Kroah-Hartman committed Feb 22, 2011
1 parent a960d44 commit d629bcc
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 20 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 3231f075070ac61ab7174a9a82bdc6d7b1de10bb
refs/heads/master: 72af4762ee640b717a30761e27fc55126c686568
61 changes: 42 additions & 19 deletions trunk/drivers/tty/serial/altera_jtaguart.c
Original file line number Diff line number Diff line change
Expand Up @@ -409,36 +409,59 @@ static int __devinit altera_jtaguart_probe(struct platform_device *pdev)
{
struct altera_jtaguart_platform_uart *platp = pdev->dev.platform_data;
struct uart_port *port;
int i;
struct resource *res_irq, *res_mem;
int i = pdev->id;

for (i = 0; i < ALTERA_JTAGUART_MAXPORTS && platp[i].mapbase; i++) {
port = &altera_jtaguart_ports[i].port;
/* -1 emphasizes that the platform must have one port, no .N suffix */
if (i == -1)
i = 0;

port->line = i;
port->type = PORT_ALTERA_JTAGUART;
port->mapbase = platp[i].mapbase;
port->membase = ioremap(port->mapbase, ALTERA_JTAGUART_SIZE);
port->iotype = SERIAL_IO_MEM;
port->irq = platp[i].irq;
port->ops = &altera_jtaguart_ops;
port->flags = ASYNC_BOOT_AUTOCONF;
if (i >= ALTERA_JTAGUART_MAXPORTS)
return -EINVAL;

uart_add_one_port(&altera_jtaguart_driver, port);
}
port = &altera_jtaguart_ports[i].port;

res_mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (res_mem)
port->mapbase = res_mem->start;
else if (platp)
port->mapbase = platp->mapbase;
else
return -ENODEV;

res_irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
if (res_irq)
port->irq = res_irq->start;
else if (platp)
port->irq = platp->irq;
else
return -ENODEV;

port->membase = ioremap(port->mapbase, ALTERA_JTAGUART_SIZE);
if (!port->membase)
return -ENOMEM;

port->line = i;
port->type = PORT_ALTERA_JTAGUART;
port->iotype = SERIAL_IO_MEM;
port->ops = &altera_jtaguart_ops;
port->flags = ASYNC_BOOT_AUTOCONF;

uart_add_one_port(&altera_jtaguart_driver, port);

return 0;
}

static int __devexit altera_jtaguart_remove(struct platform_device *pdev)
{
struct uart_port *port;
int i;
int i = pdev->id;

for (i = 0; i < ALTERA_JTAGUART_MAXPORTS; i++) {
port = &altera_jtaguart_ports[i].port;
if (port)
uart_remove_one_port(&altera_jtaguart_driver, port);
}
if (i == -1)
i = 0;

port = &altera_jtaguart_ports[i].port;
uart_remove_one_port(&altera_jtaguart_driver, port);

return 0;
}
Expand Down

0 comments on commit d629bcc

Please sign in to comment.