lkml.org 
[lkml]   [2014]   [Jul]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.14 39/59] powerpc/serial: Use saner flags when creating legacy ports
    Date
    3.14-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Benjamin Herrenschmidt <benh@kernel.crashing.org>

    commit c4cad90f9e9dcb85afc5e75a02ae3522ed077296 upstream.

    We had a mix & match of flags used when creating legacy ports
    depending on where we found them in the device-tree. Among others
    we were missing UPF_SKIP_TEST for some kind of ISA ports which is
    a problem as quite a few UARTs out there don't support the loopback
    test (such as a lot of BMCs).

    Let's pick the set of flags used by the SoC code and generalize it
    which means autoconf, no loopback test, irq maybe shared and fixed
    port.

    Sending to stable as the lack of UPF_SKIP_TEST is breaking
    serial on some machines so I want this back into distros

    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    arch/powerpc/kernel/legacy_serial.c | 15 +++++++++------
    1 file changed, 9 insertions(+), 6 deletions(-)

    --- a/arch/powerpc/kernel/legacy_serial.c
    +++ b/arch/powerpc/kernel/legacy_serial.c
    @@ -48,6 +48,9 @@ static struct of_device_id legacy_serial
    static unsigned int legacy_serial_count;
    static int legacy_serial_console = -1;

    +static const upf_t legacy_port_flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST |
    + UPF_SHARE_IRQ | UPF_FIXED_PORT;
    +
    static unsigned int tsi_serial_in(struct uart_port *p, int offset)
    {
    unsigned int tmp;
    @@ -153,8 +156,6 @@ static int __init add_legacy_soc_port(st
    {
    u64 addr;
    const __be32 *addrp;
    - upf_t flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_SHARE_IRQ
    - | UPF_FIXED_PORT;
    struct device_node *tsi = of_get_parent(np);

    /* We only support ports that have a clock frequency properly
    @@ -185,9 +186,11 @@ static int __init add_legacy_soc_port(st
    * IO port value. It will be fixed up later along with the irq
    */
    if (tsi && !strcmp(tsi->type, "tsi-bridge"))
    - return add_legacy_port(np, -1, UPIO_TSI, addr, addr, NO_IRQ, flags, 0);
    + return add_legacy_port(np, -1, UPIO_TSI, addr, addr,
    + NO_IRQ, legacy_port_flags, 0);
    else
    - return add_legacy_port(np, -1, UPIO_MEM, addr, addr, NO_IRQ, flags, 0);
    + return add_legacy_port(np, -1, UPIO_MEM, addr, addr,
    + NO_IRQ, legacy_port_flags, 0);
    }

    static int __init add_legacy_isa_port(struct device_node *np,
    @@ -233,7 +236,7 @@ static int __init add_legacy_isa_port(st

    /* Add port, irq will be dealt with later */
    return add_legacy_port(np, index, UPIO_PORT, be32_to_cpu(reg[1]),
    - taddr, NO_IRQ, UPF_BOOT_AUTOCONF, 0);
    + taddr, NO_IRQ, legacy_port_flags, 0);

    }

    @@ -306,7 +309,7 @@ static int __init add_legacy_pci_port(st
    * IO port value. It will be fixed up later along with the irq
    */
    return add_legacy_port(np, index, iotype, base, addr, NO_IRQ,
    - UPF_BOOT_AUTOCONF, np != pci_dev);
    + legacy_port_flags, np != pci_dev);
    }
    #endif




    \
     
     \ /
      Last update: 2014-07-05 02:01    [W:2.453 / U:0.076 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site