1. 11 Nov, 2009 3 commits
    • Janusz Krzysztofik's avatar
      omap: Fix omapfb/lcdc on OMAP1510 broken when PM set · 8561a84f
      Janusz Krzysztofik authored
      With CONFIG_PM=y, the omapfb/lcdc device on Amstrad Delta, after initially
      starting correctly, breaks with the following error messages:
      
      omapfb omapfb: resetting (status 0xffffff96,reset count 1)
      ...
      omapfb omapfb: resetting (status 0xffffff96,reset count 100)
      omapfb omapfb: too many reset attempts, giving up.
      
      Looking closer at this I have found that it had been broken almost 2 years ago
      with commit 2418996e, PM fixes for OMAP1.
      
      The definite reason for broken omapfb/lcdc behavoiur in PM mode
      appeared to be ARM_IDLECT1:IDLIF_ARM (bit 6) put into idle regardless of LCD
      DMA possibly running. The bit were set based on return value of the
      omap_dma_running() function that did not check for dedicated LCD DMA
      channel status. The patch below fixes this.
      
      Note that the hardcoded register value will be fixed during the next merge
      cycle to use OMAP_LCDC_ defines. Currently the OMAP_LCDC_ defines are local
      to drivers/video/omap/lcdc.c, so let's not start moving those right now.
      
      Created against linux-2.6.32-rc6
      
      Tested on Amstrad Delta
      Signed-off-by: default avatarJanusz Krzysztofik <jkrzyszt@tis.icnet.pl>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      8561a84f
    • Tobias Klauser's avatar
      omap: Use resource_size · 6d135242
      Tobias Klauser authored
      Use the resource_size function instead of manually calculating the
      resource size. This reduces the chance of introducing off-by-one errors
      and actually fixes one in mailbox.c.
      Signed-off-by: default avatarTobias Klauser <tklauser@distanz.ch>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      6d135242
    • Tao Hu's avatar
      omap: Fix race condition in omap dma driver · ee907324
      Tao Hu authored
      The bug could cause irq enable bit of one DMA channel is
      cleared/set unexpectedly when 2 (or more) drivers are calling
      omap_request_dma()/omap_free_dma() simultaneously
      Signed-off-by: default avatarFei Yang <AFY095@motorola.com>
      Signed-off-by: default avatarTao Hu <taohu@motorola.com>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      ee907324
  2. 03 Nov, 2009 26 commits
  3. 02 Nov, 2009 11 commits