08 Aug, 2011

1 commit


29 Mar, 2011

1 commit


04 Mar, 2011

1 commit

  • This patch makes the various mach dirs that use the plat-orion GPIO
    code pass in GPIO-related platform info (GPIO controller base address,
    secondary base IRQ number, etc) explicitly, instead of having
    plat-orion get those values by including a mach dir include file --
    the latter mechanism is problematic if you want to support multiple
    ARM platforms in the same kernel image.

    Signed-off-by: Lennert Buytenhek
    Signed-off-by: Nicolas Pitre

    Lennert Buytenhek
     

24 Apr, 2009

1 commit

  • Symbols like SOFT_RESET are way too generic to be exported at large.
    To avoid this, let's move the mbus bridge register defines into a
    separate file and include it where needed. This affects mach-kirkwood,
    mach-loki, mach-mv78xx0 and mach-orion5x simultaneously as they all
    share code in plat-orion which relies on those defines.

    Some other defines have been moved to narrower scopes, or simply deleted
    when they had no user.

    This fixes compilation problem with mpt2sas on the above listed
    platforms.

    Signed-off-by: Nicolas Pitre
    Signed-off-by: Russell King

    Nicolas Pitre
     

18 Feb, 2009

1 commit

  • The GPIO interrupts can be configured as either level triggered or edge
    triggered, with a default of level triggered. When an edge triggered
    interrupt is requested, the gpio_irq_set_type method is called which
    currently switches the given IRQ descriptor between two struct irq_chip
    instances: orion_gpio_irq_level_chip and orion_gpio_irq_edge_chip. This
    happens via __setup_irq() which also calls irq_chip_set_defaults() to
    assign default methods to uninitialized ones. The problem is that
    irq_chip_set_defaults() is called before the irq_chip reference is
    switched, leaving the new irq_chip (orion_gpio_irq_edge_chip in this
    case) with uninitialized methods such as chip->startup() causing a kernel
    oops.

    Many solutions are possible, such as making irq_chip_set_defaults() global
    and calling it from gpio_irq_set_type(), or calling __irq_set_trigger()
    before irq_chip_set_defaults() in __setup_irq(). But those require
    modifications to the generic IRQ code which might have adverse effect on
    other architectures, and that would still be a fragile arrangement.
    Manually copying the missing methods from within gpio_irq_set_type()
    would be really ugly and it would break again the day new methods with
    automatic defaults are added.

    A better solution is to have a single irq_chip instance which can deal
    with both edge and level triggered interrupts. It is also a good idea
    to switch the IRQ handler instead, as the edge IRQ handler allows for
    one edge IRQ event to be queued as the IRQ is actually masked only when
    that second IRQ is received, at which point the hardware can queue an
    additional IRQ event, making edge triggered interrupts a bit more
    reliable.

    Tested-by: Martin Michlmayr

    Signed-off-by: Nicolas Pitre
    Signed-off-by: Russell King

    Nicolas Pitre
     

21 Dec, 2008

2 commits


10 Oct, 2008

1 commit


09 Oct, 2008

1 commit


06 Sep, 2008

1 commit


09 Aug, 2008

1 commit


07 Aug, 2008

1 commit


27 Jul, 2008

1 commit

  • IRQT_* and __IRQT_* were obsoleted long ago by patch [3692/1].
    Remove them completely. Sed script for the reference:

    s/__IRQT_RISEDGE/IRQ_TYPE_EDGE_RISING/g
    s/__IRQT_FALEDGE/IRQ_TYPE_EDGE_FALLING/g
    s/__IRQT_LOWLVL/IRQ_TYPE_LEVEL_LOW/g
    s/__IRQT_HIGHLVL/IRQ_TYPE_LEVEL_HIGH/g
    s/IRQT_RISING/IRQ_TYPE_EDGE_RISING/g
    s/IRQT_FALLING/IRQ_TYPE_EDGE_FALLING/g
    s/IRQT_BOTHEDGE/IRQ_TYPE_EDGE_BOTH/g
    s/IRQT_LOW/IRQ_TYPE_LEVEL_LOW/g
    s/IRQT_HIGH/IRQ_TYPE_LEVEL_HIGH/g
    s/IRQT_PROBE/IRQ_TYPE_PROBE/g
    s/IRQT_NOEDGE/IRQ_TYPE_NONE/g

    Signed-off-by: Dmitry Baryshkov
    Signed-off-by: Russell King

    Dmitry Baryshkov
     

23 Jun, 2008

1 commit


28 Mar, 2008

1 commit

  • Do a global s/orion/orion5x/ of the Orion 5x-specific bits (i.e.
    not the plat-orion bits.)

    Signed-off-by: Lennert Buytenhek
    Reviewed-by: Tzachi Perelstein
    Acked-by: Saeed Bishara
    Acked-by: Russell King
    Signed-off-by: Nicolas Pitre

    Lennert Buytenhek