1. 22 Feb, 2009 2 commits
    • Andrei Birjukov's avatar
      [ARM] at91: fix for Atmel AT91 powersaving · d82ad6d6
      Andrei Birjukov authored
      We've discovered that our AT91SAM9260 board consumed too much power when
      returning from a slowclock low-power mode.  RAM self-refresh is enabled in
      a bootloader in our case, this is how we saw a difference.  Estimated ca.
      30mA more on 4V battery than the same state before powersaving.
      
      After a small research we found that there seems to be a bogus
      sdram_selfrefresh_disable() call at the end of at91_pm_enter() call, which
      overwrites the LPR register with uninitialized value.  Please find the
      suggested patch attached.
      
      This patch fixes correct restoring of LPR register of the Atmel AT91 SDRAM
      controller when returning from a power saving mode.
      Signed-off-by: default avatarAndrei Birjukov <andrei.birjukov@artecdesign.ee>
      Acked-by: default avatarAndrew Victor <linux@maxim.org.za>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      d82ad6d6
    • Russell King's avatar
      [ARM] RiscPC: Fix etherh oops · 8cfd9e92
      Russell King authored
      The 8390 driver was structured by Al Viro to allow the flexibility
      required by platforms.  lib8390.c contains the core code which drivers
      explicitly include:
      - 8390.c includes lib8390.c to provide the standard ISA based driver.
      - etherh.c includes it with the accessors defined for RiscPC platforms,
        where it is addressed via the MMIO accessors with a device dependent
        register spacing.
      
      Other platform drivers do something similar.
      
      However, b9a9b4b0 caused the kernel to contain not only the etherh
      private build of lib8390 (included in etherh.c) but also lib8390.c
      itself, and referred the new net_device_ops methods to the ISA version.
      The result of this is is not pretty:
      
      Unable to handle kernel paging request at virtual address 12032030
      pgd = c8330000
      [12032030] *pgd=00000000
      Internal error: Oops: 18331805 [#1]
      Modules linked in: ipv6
      CPU: 0    Not tainted  (2.6.29-rc3 #167)
      PC is at do_set_multicast_list+0xd0/0x190
      LR is at bitrev32+0x28/0x34
      pc : [<c017aab4>]    lr : [<c0139120>]    psr: a0000093
      sp : c8321d9c  ip : c8321d84  fp : c8321dbc
      r10: c80c6800  r9 : 00000000  r8 : c80c6b60
      r7 : c80c6b80  r6 : cc80c800  r5 : c80c6800  r4 : 00000000
      r3 : cc80c80c  r2 : 00000004  r1 : 00000007  r0 : e0000000
      Flags: NzCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment user
      ...
      
      Fix up b9a9b4b0 by making etherh's net_device_ops refer to the internal
      lib8390 functions, and remove the build of the ISA 8390.c driver.
      Acked-by: default avatarDavid S. Miller <davem@davemloft.net>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      8cfd9e92
  2. 21 Feb, 2009 37 commits
  3. 20 Feb, 2009 1 commit