Re: [PATCH] ARM: tegra: APB DMA: Enable clock and remove reset.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jan 5, 2011 at 1:32 PM, Stephen Warren <swarren@xxxxxxxxxxxxx> wrote:
> From: Stephen Warren <swarren@xxxxxxxxxx>
>
> Signed-off-by: Stephen Warren <swarren@xxxxxxxxxx>
> ---
> This is for, and rediff'd against, for-next.
>
> The Tegra audio driver relies on this. The other DMA driver fix I just
> sent might rely on this in order to get zero fuzz/offset.
>
>  arch/arm/mach-tegra/dma.c           |   14 ++++++++++++++
>  arch/arm/mach-tegra/tegra2_clocks.c |    6 ++++++
>  2 files changed, 20 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/mach-tegra/dma.c b/arch/arm/mach-tegra/dma.c
> index edda6ec..d8eb096 100644
> --- a/arch/arm/mach-tegra/dma.c
> +++ b/arch/arm/mach-tegra/dma.c
> @@ -27,6 +27,7 @@
>  #include <linux/err.h>
>  #include <linux/irq.h>
>  #include <linux/delay.h>
> +#include <linux/clk.h>
>  #include <mach/dma.h>
>  #include <mach/irqs.h>
>  #include <mach/iomap.h>
> @@ -646,6 +647,19 @@ int __init tegra_dma_init(void)
>        int i;
>        unsigned int irq;
>        void __iomem *addr;
> +       struct clk *c;
> +
> +       c = clk_get_sys("tegra-dma", NULL);
> +       if (IS_ERR(c)) {
> +               pr_err("Unable to get clock for APB DMA\n");
> +               ret = PTR_ERR(c);
> +               goto fail;
> +       }
> +       ret = clk_enable(c);
> +       if (ret != 0) {
> +               pr_err("Unable to enable clock for APB DMA\n");
> +               goto fail;
> +       }
>
>        addr = IO_ADDRESS(TEGRA_APB_DMA_BASE);
>        writel(GEN_ENABLE, addr + APB_DMA_GEN);
> diff --git a/arch/arm/mach-tegra/tegra2_clocks.c b/arch/arm/mach-tegra/tegra2_clocks.c
> index f7e1e68..ef46313 100644
> --- a/arch/arm/mach-tegra/tegra2_clocks.c
> +++ b/arch/arm/mach-tegra/tegra2_clocks.c
> @@ -1588,6 +1588,11 @@ static struct clk_mux_sel mux_clk_32k[] = {
>        { 0, 0},
>  };
>
> +static struct clk_mux_sel mux_pclk[] = {
> +       { .input = &tegra_clk_pclk, .value = 0},
> +       { 0, 0},
> +};
> +
>  #define PERIPH_CLK(_name, _dev, _con, _clk_num, _reg, _max, _inputs, _flags) \
>        {                                               \
>                .name      = _name,                     \
> @@ -1604,6 +1609,7 @@ static struct clk_mux_sel mux_clk_32k[] = {
>        }
>
>  struct clk tegra_periph_clks[] = {
> +       PERIPH_CLK("apbdma",    "tegra-dma",            NULL,   34,     0,      108000000, mux_pclk,                    0),
>        PERIPH_CLK("rtc",       "rtc-tegra",            NULL,   4,      0,      32768,     mux_clk_32k,                 PERIPH_NO_RESET),
>        PERIPH_CLK("timer",     "timer",                NULL,   5,      0,      26000000,  mux_clk_m,                   0),
>        PERIPH_CLK("i2s1",      "i2s.0",                NULL,   11,     0x100,  26000000,  mux_pllaout0_audio2x_pllp_clkm,      MUX | DIV_U71),
> --
> 1.7.0.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>

Pushed to tegra for-next
--
To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [ARM Kernel]     [Linux ARM]     [Linux ARM MSM]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux