Re: [PATCH] Driver support FSL RaidEngine device.

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

 



2 quick notes below, I'll take a closer look when I get a chance.

On Mon, Feb 24, 2014 at 11:19 PM,  <xuelin.shi@xxxxxxxxxxxxx> wrote:
> From: Xuelin Shi <xuelin.shi@xxxxxxxxxxxxx>
>
> The RaidEngine is a new FSL hardware used for Raid5/6 acceration.
>
> This patch enables the RaidEngine functionality and provides
> hardware offloading capability for memcpy, xor and pq computation.
> It works with async_tx.
>
> Signed-off-by: Harninder Rai <harninder.rai@xxxxxxxxxxxxx>
> Signed-off-by: Naveen Burmi <naveenburmi@xxxxxxxxxxxxx>
> Signed-off-by: Xuelin Shi <xuelin.shi@xxxxxxxxxxxxx>
> ---
>  drivers/dma/Kconfig    |  12 +
>  drivers/dma/Makefile   |   1 +
>  drivers/dma/fsl_raid.c | 905 +++++++++++++++++++++++++++++++++++++++++++++++++
>  drivers/dma/fsl_raid.h | 310 +++++++++++++++++
>  4 files changed, 1228 insertions(+)
>  create mode 100644 drivers/dma/fsl_raid.c
>  create mode 100644 drivers/dma/fsl_raid.h
>
> diff --git a/drivers/dma/Kconfig b/drivers/dma/Kconfig
> index 605b016..c15b10b 100644
> --- a/drivers/dma/Kconfig
> +++ b/drivers/dma/Kconfig
> @@ -100,6 +100,18 @@ config FSL_DMA
>           EloPlus is on mpc85xx and mpc86xx and Pxxx parts, and the Elo3 is on
>           some Txxx and Bxxx parts.
>
> +config FSL_RAID
> +        tristate "Freescale RAID engine Support"
> +        depends on FSL_SOC && !FSL_DMA
> +        select DMA_ENGINE
> +        select DMA_ENGINE_RAID
> +        select ASYNC_TX_ENABLE_CHANNEL_SWITCH

Channel switching support is planned to be removed because it is
incompatible with the dma mapping api.  It's also unnecessary in this
driver as it appears a given channel has all the raid capabilities.

[..]
> +/* Per job ring data structure */
> +struct re_jr {
> +       dma_cookie_t completed_cookie;
> +       spinlock_t desc_lock; /* queue lock */
> +       struct list_head ack_q;  /* wait to acked queue */
> +       struct list_head active_q; /* already issued on hw, not completed */
> +       struct list_head submit_q;
> +       struct list_head free_q; /* alloc available queue */
> +       struct device *dev;
> +       struct re_drv_private *re_dev;
> +       struct dma_chan chan;
> +       struct jr_config_regs *jrregs;
> +       int irq;
> +       struct tasklet_struct irqtask;

Please convert to threaded irqs.  Tasklets are discouraged for new drivers.

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




[Index of Archives]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux PCI]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux