07 Feb, 2008

1 commit

  • On the sam9 EK boards, the LCD backlight is hooked up to a PWM output from
    the LCD controller. It's controlled by "contrast" registers though.

    This patch lets boards declare that they have that kind of backlight
    control. The driver can then export this control, letting screenblank and
    other operations actually take effect ... reducing the typically
    substantial power drain from the backlight.

    Note that it's not fully cooked
    - doesn't force backlight off during system suspend
    - the "power" and "blank" events may not be done right
    This should be easily added in the future.

    [nicolas.ferre@atmel.com: remove unneeded inline and rename functions]
    Signed-off-by: David Brownell
    Signed-off-by: Nicolas Ferre
    Cc: Andrew Victor
    Cc: Russell King
    Cc: "Antonino A. Daplas"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Brownell
     

05 Feb, 2008

1 commit

  • * at91:
    [ARM] 4802/1: Fix typo and remove vague comment
    [ARM] 4660/3: at91: allow selecting UART for early kernel messages
    [ARM] 4739/1: at91sam9263: make gpio bank C and D irqs work

    * ixp:
    [ARM] 4809/2: ixp4xx: Merge dsmg600-power.c into dsmg600-setup.c
    [ARM] 4808/2: ixp4xx: Merge nas100d-power.c into nas100d-setup.c
    [ARM] 4807/2: ixp4xx: Merge nslu2-power.c into nslu2-setup.c
    [ARM] 4806/1: ixp4xx: Ethernet support for the nslu2 and nas100d boards
    [ARM] 4805/1: ixp4xx: Use leds-gpio driver instead of IXP4XX-GPIO-LED driver
    [ARM] 4715/2: Ethernet support for IXDP425 boards
    [ARM] 4714/2: Headers for IXP4xx built-in Ethernet and WAN drivers
    [ARM] 4713/3: Adds drivers for IXP4xx QMgr and NPE features
    [ARM] 4712/2: Adds functions to read and write IXP4xx "feature" bits
    [ARM] 4774/2: ixp4xx: Register dsmg600 rtc i2c_board_info
    [ARM] 4773/2: ixp4xx: Register nas100d rtc i2c_board_info
    [ARM] 4772/2: ixp4xx: Register nslu2 rtc i2c_board_info
    [ARM] 4769/2: ixp4xx: Button updates for the dsmg600 board
    [ARM] 4768/2: ixp4xx: Button and LED updates for the nas100d board
    [ARM] 4767/2: ixp4xx: Add bitops.h include to io.h
    [ARM] 4766/2: ixp4xx: Update ixp4xx_defconfig, enabling all supported boards

    * master:
    [ARM] 4810/1: - Fix 'section mismatch' building warnings
    [ARM] xtime_seqlock: fix more ARM machines for xtime deadlocking
    [ARM] 21285 serial: fix build error

    * misc:
    [ARM] 4736/1: Export atags to userspace and allow kexec to use customised atags

    * pxa:
    [ARM] 4798/1: pcm027: fix missing header file
    [ARM] 4803/1: pxa: fix building issue of poodle.c caused by patch 4737/1
    [ARM] 4801/1: pxa: fix building issues of missing pxa2xx-regs.h
    [ARM] pxa: introduce sysdev for pxa3xx static memory controller
    [ARM] pxa: add preliminary suspend/resume code for pxa3xx
    [ARM] pxa: introduce sysdev for GPIO register saving/restoring
    [ARM] pxa: introduce sysdev for IRQ register saving/restoring
    [ARM] pxa: fix the warning of undeclared "struct pxaohci_platform_data"
    [ARM] pxa: change set_kset_name() to direct name assignment for MFP sysclass

    * realview:
    [ARM] 4822/1: RealView: Change the REALVIEW_MPCORE configuration option
    [ARM] 4821/1: RealView: Remove the platform dependencies from localtimer.c
    [ARM] 4820/1: RealView: Select the timer IRQ at run-time
    [ARM] 4819/1: RealView: Fix entry-macro.S to work with multiple platforms
    [ARM] 4818/1: RealView: Add core-tile detection
    [ARM] 4817/1: RealView: Move the AMBA resource definitions to realview_eb.c
    [ARM] 4816/1: RealView: Move the platform-specific definitions into board-eb.h
    [ARM] 4815/1: RealView: Add clockevents suport for the local timers
    [ARM] 4814/1: RealView: Add broadcasting clockevents support for ARM11MPCore
    [ARM] 4813/1: Add SMP helper functions for clockevents support
    [ARM] 4812/1: RealView: clockevents support for the RealView platforms
    [ARM] 4811/1: RealView: clocksource support for the RealView platforms

    Russell King
     

04 Feb, 2008

3 commits

  • Currently early kernel messages, i.e., those from uncompression, go to the
    debugging UART. And if it is enabled in the platform configuration, but
    not initialized by the bootloader, the machine hangs, waiting for UART
    status change. Besides, having those messages on another UART - typically
    the console UART - may be preferrable. This patch allows selecting the
    UART in kernel configuration.

    Signed-off-by: Guennadi Liakhovetski
    Acked-by: Andrew Victor
    Signed-off-by: Russell King

    Guennadi Liakhovetski
     
  • On the at91sam9263, IRQs for GPIO banks C and D don't currently work.
    This is because banks C, D, and E share one clock and toplevel IRQ, but
    the AT91 code setting up and handling GPIO IRQs expects no sharing.
    This patch:

    - Fixes GPIO IRQ setup and handling to cope with GPIO banks that are
    shared like on sam9263 chips, by setting up a list of those banks
    and making the IRQ dispatching logic scan that list.

    - Precomputes the address of each bank's registers, saving it with
    other per-bank data so that it no longer needs to be constantly
    recomputed during IRQs and other GPIO operations. That shrinks
    hot-path code, while helping the GPIO bank irq updates.

    - Fixes a minor bug where IRQ_TYPE_NONE was wrongly rejected (it just
    means "use the default", which is "both edges" here).

    Signed-off-by: David Brownell
    Acked-by: Andrew Victor
    Signed-off-by: Russell King

    David Brownell
     
  • move update_process_times() out from under xtime_lock.

    Signed-off-by: Peter Zijlstra
    Signed-off-by: Russell King

    Peter Zijlstra
     

02 Feb, 2008

1 commit

  • On ACPI systems the target state set by acpi_pm_set_target() is
    reset by acpi_pm_finish(), but that need not be called if the
    suspend fails.  All platforms that use the .set_target() global
    suspend callback are affected by analogous issues.

    For this reason, we need an additional global suspend callback that
    will reset the target state regardless of whether or not the suspend
    is successful.  Also, it is reasonable to rename the .set_target()
    callback, since it will be used for a different purpose on ACPI
    systems (due to ACPI 1.0x code ordering requirements).

    Introduce the global suspend callback .end() to be executed at the
    end of the suspend sequence and rename the .set_target() global
    suspend callback to .begin().

    Signed-off-by: Rafael J. Wysocki
    Signed-off-by: Len Brown

    Rafael J. Wysocki
     

28 Jan, 2008

1 commit

  • From: Nicolas Ferre

    On the at92sam9263ek board, tell the input subsystem about the buttons.
    This patch is taken from Andrew Victor's at91 patchset, then updated to
    match the latest kernel code and to use labels printed on the board.

    Also update the at91sam9261ek buttons to cope with input changes.

    Signed-off-by: David Brownell
    Acked-by: Andrew Victor
    Signed-off-by: Russell King

    David Brownell
     

26 Jan, 2008

20 commits


07 Jan, 2008

1 commit


27 Nov, 2007

3 commits

  • The incorrect GPIO pins are being initialized for the buttons on the
    Atmel AT91SAM9261-EK board. This buggy configuration turns LCD screen
    blue...

    Signed-off-by: Nicolas Ferre
    Signed-off-by: Andrew Victor
    Signed-off-by: Russell King

    Andrew Victor
     
  • The AT91 I2C driver is currently marked as "broken" due to hardware
    issues. This patch enables AT91-based platforms to also use the
    bitbanged GPIO for I2C.

    This updates platform setup logic (setting up an i2c-gpio device
    using the same pins as the i2c-at91 device, unless only the BROKEN
    driver is enabled).

    Also make use of the new-style initialization of I2C devices using
    i2c_register_board_info().

    Signed-off-by: David Brownell
    Signed-off-by: Andrew Victor
    Signed-off-by: Russell King

    Andrew Victor
     
  • The calculation for the Master clock divisor (MDIV) is different on the
    SAM9 processors than on the AT91RM9200.

    Orignal patch from Sascha Erlacher.

    Also use the defined AT91_PMC_PRES instead of hard-coded bitmasks.

    Signed-off-by: Andrew Victor
    Signed-off-by: Russell King

    Andrew Victor
     

20 Oct, 2007

1 commit


19 Oct, 2007

2 commits

  • The name of 'struct pm_ops' suggests that it is related to the power
    management in general, but in fact it is only related to suspend.  Moreover,
    its name should indicate what this structure is used for, so it seems
    reasonable to change it to 'struct platform_suspend_ops'.  In that case, the
    name of the global variable of this type used by the PM core and the names of
    related functions should be changed accordingly.

    Signed-off-by: Rafael J. Wysocki
    Acked-by: Pavel Machek
    Cc: Len Brown
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rafael J. Wysocki
     
  • Move the definition of 'struct pm_ops' and related functions from
    to .

    There are, at least, the following reasons to do that:
    * 'struct pm_ops' is specifically related to suspend and not to the power
    management in general.
    * As long as 'struct pm_ops' is defined in , any modification of it
    causes the entire kernel to be recompiled, which is unnecessary and annoying.
    * Some suspend-related features are already defined in , so it
    is logical to move the definition of 'struct pm_ops' into there.
    * 'struct hibernation_ops', being the hibernation-related counterpart of
    'struct pm_ops', is defined in .

    Signed-off-by: Rafael J. Wysocki
    Acked-by: Pavel Machek
    Cc: Len Brown
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rafael J. Wysocki
     

13 Oct, 2007

6 commits

  • GENERIC_TIME and GENERIC_CLOCKEVENTS support for the at91rm9200.

    - Oneshot mode (used for NO_HZ and high res timers) uses the
    alarm to emulate a real oneshot timer; the trickiest bit is
    how to avoid some lowlevel races. Thanks to Remy Bohmer for
    various fixes to this code.

    - Tighten up periodic mode support using the PIT.

    - Streamline reads of the 32KHz counter. Thanks to Marc Pignat
    for some testing results: the CRTR register has *very* odd
    behavior. The reread appears to work around stranger glitches
    than just getting an old clock value (which would quickly
    self-correct).

    - Remove the rounding-up of tick_usec to 10.009 msec (32KiHz/100),
    since that no longer acts correct (time increases too fast).

    Note that the at91sam9 and at91x40 chips need other solutions,
    since they don't have the same system timer module.

    Signed-off-by: David Brownell
    Acked-by: Bill Gatliff
    Acked-by:Remy Bohmer
    Signed-off-by: Russell King

    David Brownell
     
  • Configuration support for the AT91x40 CPU and EB01 board.

    Signed-off-by: Greg Ungerer
    Acked-by: Andrew Victor
    Signed-off-by: Russell King

    Greg Ungerer
     
  • Makefile build support for the Atmel AT91x40 CPU and EB01 board support.

    Signed-off-by: Greg Ungerer
    Acked-by: Andrew Victor
    Signed-off-by: Russell King

    Greg Ungerer
     
  • Support for the Atmel EB01 board (based on the Atmel AT91x40 CPU).

    Signed-off-by: Greg Ungerer
    Acked-by: Andrew Victor
    Signed-off-by: Russell King

    Greg Ungerer
     
  • Prototypes for the at91x40 CPU support functions.

    Signed-off-by: Greg Ungerer
    Acked-by: Andrew Victor
    Signed-off-by: Russell King

    Greg Ungerer
     
  • Interrupt setup support for the Atmel AT91x40 CPU family.

    Signed-off-by: Greg Ungerer
    Acked-by: Andrew Victor
    Signed-off-by: Russell King

    Greg Ungerer