From 3588a600c706d84d6c4c4975a237bc85e7bf0fd2 Mon Sep 17 00:00:00 2001 From: Benjamin Herrenschmidt Date: Mon, 30 Mar 2009 17:34:04 +0000 Subject: [PATCH] --- yaml --- r: 142518 b: refs/heads/master c: f08b7e9f551fa74219bf32df483fb95c58aad94b h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/serial/pmac_zilog.c | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 8c09ec7e9333..c20c7af65a2b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b6966b1be568e83a48585369731f1123a6f85157 +refs/heads/master: f08b7e9f551fa74219bf32df483fb95c58aad94b diff --git a/trunk/drivers/serial/pmac_zilog.c b/trunk/drivers/serial/pmac_zilog.c index ad3488504010..9c1243fbd512 100644 --- a/trunk/drivers/serial/pmac_zilog.c +++ b/trunk/drivers/serial/pmac_zilog.c @@ -1538,6 +1538,21 @@ static int __init pmz_init_port(struct uart_pmac_port *uap) uap->port.type = PORT_PMAC_ZILOG; uap->port.flags = 0; + /* + * Fixup for the port on Gatwick for which the device-tree has + * missing interrupts. Normally, the macio_dev would contain + * fixed up interrupt info, but we use the device-tree directly + * here due to early probing so we need the fixup too. + */ + if (uap->port.irq == NO_IRQ && + np->parent && np->parent->parent && + of_device_is_compatible(np->parent->parent, "gatwick")) { + /* IRQs on gatwick are offset by 64 */ + uap->port.irq = irq_create_mapping(NULL, 64 + 15); + uap->tx_dma_irq = irq_create_mapping(NULL, 64 + 4); + uap->rx_dma_irq = irq_create_mapping(NULL, 64 + 5); + } + /* Setup some valid baud rate information in the register * shadows so we don't write crap there before baud rate is * first initialized.