1. 16 3月, 2011 3 次提交
  2. 08 3月, 2011 10 次提交
  3. 04 3月, 2011 3 次提交
  4. 24 2月, 2011 4 次提交
    • S
      ARM: Tegra: DMA: Fail safe if initialization fails · ccac0515
      Stephen Warren 提交于
      tegra_dma_init currently simply bails out early if any initialization fails.
      This skips various data-structure initialization. In turn, this means that
      tegra_dma_allocate_channel can still hand out channels. In this case, when
      tegra_dma_free_channel is called, which calls tegra_dma_cancel, the walking
      on ch->list will OOPS since the list's next/prev pointers may still be
      NULL.
      
      To solve this, add an explicit "initialized" flag, only set this once _init
      has fully completed successfully, and have _allocate_channel refuse to hand
      out channels if this is not set.
      
      While at it, simplify _init:
      * Remove redundant memsets
      * Use bitmap_fill to mark all channels as in-use up-front, and remove
        some now-redundant bitmap initialization loops.
      * Only mark a channel as free once all channel-related initialization has
        completed.
      
      Finally, the successful exit path from _init always has ret==0, so just
      hard-code that return. The error path still returns ret.
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Signed-off-by: NColin Cross <ccross@android.com>
      ccac0515
    • S
      ARM: Tegra: Rename clk_dev1/2 to cdev1/2 · ddb7d5d8
      Stephen Warren 提交于
      The ASoC machine driver was written assuming my previous patch to add
      complete support for these clocks, which named them cdev1/2. Rename
      the clocks to match that, to avoid churn in the ASoC driver.
      
      This rename also makes the clocks more consistent with other Tegra
      clocks irrespective of any of that.
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Signed-off-by: NColin Cross <ccross@android.com>
      ddb7d5d8
    • S
      ARM: Tegra: Rename I2S clocks to match driver name · 3c106bf5
      Stephen Warren 提交于
      The driver is tegra-i2s not just i2s. Rename the clocks to match, so that
      clk_get_sys can look up by driver name.
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Signed-off-by: NColin Cross <ccross@android.com>
      3c106bf5
    • S
      ARM: Tegra: Make tegra_dma_init a postcore_initcall · dc54c23b
      Stephen Warren 提交于
      The following commit makes the Tegra APB DMA engine fail to initialize
      correctly: 0cf6230a
      ARM: tegra: Move tegra_common_init to tegra_init_early
      
      The reason is that tegra_init_early_ calls tegra_dma_init which calls
      request_threaded_irq, which fails since the IRQ hasn't yet been marked
      valid; that only happens in tegra_init_irq, which gets called after
      tegra_init_early.
      
      This used to work OK, since tegra_init_early was tegra_common_init, which
      got called after tegra_init_irq, basically from the beginning of
      tegra_harmony_init.
      
      Solve this by converting tegra_dma_init to a postcore_initcall. This makes
      it execute late enough that IRQs are marked valid, and avoids having to
      add it back to every machine's init function.
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Signed-off-by: NColin Cross <ccross@android.com>
      dc54c23b
  5. 23 2月, 2011 15 次提交
  6. 22 2月, 2011 5 次提交