[email protected] writes:

> From: Sandeep Paulraj <[email protected]>
>
> EDMA queues in DM365 are a little different than those
> on other DaVinci's. On DM365 Q0 and Q1 have the larger
> FIFO size. We want Q0 and Q1 to be used by codecs and
> DVSDK demos.
> MMC driver is the only driver which uses the flag
> 'EVENTQ_DEFAULT'. So MMC driver should be using Q2 instead of
> Q1 on DM365.
> This patch allows us to declare a "default queue" from
> SOC specific code. If it is not declared then the EDMA
> driver assumes a default of queue 1.
>
> Signed-off-by: Sandeep Paulraj <[email protected]>

Thanks, pushing today.

> ---
>  arch/arm/mach-davinci/dm365.c             |    1 +
>  arch/arm/mach-davinci/dma.c               |    7 ++++++-
>  arch/arm/mach-davinci/include/mach/edma.h |    1 +
>  3 files changed, 8 insertions(+), 1 deletions(-)
>
> diff --git a/arch/arm/mach-davinci/dm365.c b/arch/arm/mach-davinci/dm365.c
> index f02bce8..aa3b0bb 100644
> --- a/arch/arm/mach-davinci/dm365.c
> +++ b/arch/arm/mach-davinci/dm365.c
> @@ -741,6 +741,7 @@ static struct edma_soc_info dm365_edma_info[] = {
>               .n_cc                   = 1,
>               .queue_tc_mapping       = dm365_queue_tc_mapping,
>               .queue_priority_mapping = dm365_queue_priority_mapping,
> +             .default_queue          = EVENTQ_2,
>       },
>  };
>  
> diff --git a/arch/arm/mach-davinci/dma.c b/arch/arm/mach-davinci/dma.c
> index 5908f77..e6d7e6a 100644
> --- a/arch/arm/mach-davinci/dma.c
> +++ b/arch/arm/mach-davinci/dma.c
> @@ -225,6 +225,7 @@ struct edma {
>       unsigned        num_slots;
>       unsigned        num_tc;
>       unsigned        num_cc;
> +     enum dma_event_q        default_queue;
>  
>       /* list of channels with no even trigger; terminated by "-1" */
>       const s8        *noevent;
> @@ -267,7 +268,7 @@ static void map_dmach_queue(unsigned ctlr, unsigned ch_no,
>  
>       /* default to low priority queue */
>       if (queue_no == EVENTQ_DEFAULT)
> -             queue_no = EVENTQ_1;
> +             queue_no = edma_info[ctlr]->default_queue;
>  
>       queue_no &= 7;
>       edma_modify_array(ctlr, EDMA_DMAQNUM, (ch_no >> 3),
> @@ -1249,6 +1250,10 @@ static int __init edma_probe(struct platform_device 
> *pdev)
>               edma_info[j]->num_cc = min_t(unsigned, info[j].n_cc,
>                                                       EDMA_MAX_CC);
>  
> +             edma_info[j]->default_queue = info[j].default_queue;
> +             if (!edma_info[j]->default_queue)
> +                     edma_info[j]->default_queue = EVENTQ_1;
> +
>               dev_dbg(&pdev->dev, "DMA REG BASE ADDR=%p\n",
>                       edmacc_regs_base[j]);
>  
> diff --git a/arch/arm/mach-davinci/include/mach/edma.h 
> b/arch/arm/mach-davinci/include/mach/edma.h
> index 5d48962..3c7dc2d 100644
> --- a/arch/arm/mach-davinci/include/mach/edma.h
> +++ b/arch/arm/mach-davinci/include/mach/edma.h
> @@ -271,6 +271,7 @@ struct edma_soc_info {
>       unsigned        n_slot;
>       unsigned        n_tc;
>       unsigned        n_cc;
> +     enum dma_event_q        default_queue;
>  
>       /* list of channels with no even trigger; terminated by "-1" */
>       const s8        *noevent;
> -- 
> 1.6.0.4
>
> _______________________________________________
> Davinci-linux-open-source mailing list
> [email protected]
> http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to