|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Problems after enabling rcv/xmit interrupts of ns16550 on OMAP5
Hi Ian,
I think I've caught the point why your patch works while mine don't.
On Jul 11, 2013, at 7:21 PM, Ian Campbell <Ian.Campbell@xxxxxxxxxx> wrote:
> ...
> char __iomem *remapped_io_base; /* Remapped virtual address of MMIO. */
> /* UART with IRQ line: interrupt-driven I/O. */
> struct irqaction irqaction;
> @@ -56,6 +60,7 @@ static struct ns16550 {
> u32 bar;
> u16 cr;
> u8 bar_idx;
> + struct dt_irq dt_irq;
Here you added a new dt_irq struct component.
> } ns16550_com[2] = { { 0 } };
> ...
> +
> + uart->baud = BAUD_AUTO;//115200;
> + uart->clock_hz = UART_CLOCK_HZ;
> + uart->data_bits = 8;
> + uart->parity = PARITY_NONE;
> + uart->stop_bits = 1;
> + //uart->irq = defaults->irq;
And uart->irq is no longer initialized.
> ...
> + res = dt_device_get_irq(dev, 0, &uart->dt_irq);
> + if ( res )
> + {
> + early_printk("ns16550: Unable to retrieve the IRQ\n");
> + return res;
> + }
> +
> + /* Register with generic serial driver. */
> + serial_register_uart(uart - ns16550_com, &ns16550_driver, uart);
> ...
However, in ns16550_setup_postirq() and ns16550_init_postirq(), there are
blocks like this:
if ( uart->irq > 0 )
{
/* Master interrupt enable; also keep DTR/RTS asserted. */
ns_write_reg(uart, MCR, MCR_OUT2 | MCR_OUT2 | MCR_DTR | MCR_RTS);
/* Enabled receive and transmit interrupts
ns_write_reg(hart, IER, IER_ERDAI | IER_ETHREI);
}
and this:
if ( uart->irq > 0 )
{
uart->irqaction.handler = ns16550_interrupt;
uart->irqaction.name = "ns16550";
uart->irqaction.dev_id = port;
if ( (rc = setup_dt_irq(&uart->dt_irq, &uart->irqaction)) != 0)
printk("ERROR: Failed to allocate ns16550 DT IRQ %d\n", hart->irq);
}
This means you have neither registered the irq nor enabled the interrupts. If I
turned both of these two blocks into:
if ( uart->dt_irq.irq > )
{
...
}
There is the same phenomenon that I described in previous email. And If I
comment either of these two blocks in my patch, my implementation works.
Any ideas?
Cheers,
Baozi
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |