lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-id: <f0d36362-ce75-02a0-0bfa-e265cba03b8b@samsung.com>
Date:   Wed, 22 Mar 2017 09:22:23 +0100
From:   Marek Szyprowski <m.szyprowski@...sung.com>
To:     linux-samsung-soc@...r.kernel.org, dmaengine@...r.kernel.org,
        linux-arm-kernel@...ts.infradead.org, linux-pm@...r.kernel.org,
        linux-kernel@...r.kernel.org
Cc:     Krzysztof Kozlowski <krzk@...nel.org>,
        Bartlomiej Zolnierkiewicz <b.zolnierkie@...sung.com>,
        Vinod Koul <vinod.koul@...el.com>,
        Ulf Hansson <ulf.hansson@...aro.org>,
        "Rafael J. Wysocki" <rjw@...ysocki.net>,
        Lars-Peter Clausen <lars@...afoo.de>,
        Arnd Bergmann <arnd@...db.de>, Inki Dae <inki.dae@...sung.com>
Subject: Re: [PATCH v8 2/3] dmaengine: pl330: remove pdata based initialization

Hi Vinod


On 2017-02-09 15:22, Marek Szyprowski wrote:
> This driver is now used only on platforms which support device tree, so
> it is safe to remove legacy platform data based initialization code.
>
> Signed-off-by: Marek Szyprowski <m.szyprowski@...sung.com>
> Reviewed-by: Ulf Hansson <ulf.hansson@...aro.org>
> Acked-by: Arnd Bergmann <arnd@...db.de>
> For plat-samsung:
> Acked-by: Krzysztof Kozlowski <krzk@...nel.org>

Vinod: This patch is completely independent from the rest of the changes
from that patchset. Could you apply it, or do you want me to resend it
separately? Runtime pm related changes will wait until a new DMA engine API
is ready.

> ---
>   arch/arm/plat-samsung/devs.c |  1 -
>   drivers/dma/pl330.c          | 42 ++++++++----------------------------------
>   include/linux/amba/pl330.h   | 35 -----------------------------------
>   3 files changed, 8 insertions(+), 70 deletions(-)
>   delete mode 100644 include/linux/amba/pl330.h
>
> diff --git a/arch/arm/plat-samsung/devs.c b/arch/arm/plat-samsung/devs.c
> index 03fac123676d..dc269d9143bc 100644
> --- a/arch/arm/plat-samsung/devs.c
> +++ b/arch/arm/plat-samsung/devs.c
> @@ -10,7 +10,6 @@
>    * published by the Free Software Foundation.
>   */
>   
> -#include <linux/amba/pl330.h>
>   #include <linux/kernel.h>
>   #include <linux/types.h>
>   #include <linux/interrupt.h>
> diff --git a/drivers/dma/pl330.c b/drivers/dma/pl330.c
> index f37f4978dabb..8b0da7fa520d 100644
> --- a/drivers/dma/pl330.c
> +++ b/drivers/dma/pl330.c
> @@ -22,7 +22,6 @@
>   #include <linux/dma-mapping.h>
>   #include <linux/dmaengine.h>
>   #include <linux/amba/bus.h>
> -#include <linux/amba/pl330.h>
>   #include <linux/scatterlist.h>
>   #include <linux/of.h>
>   #include <linux/of_dma.h>
> @@ -2077,18 +2076,6 @@ static void pl330_tasklet(unsigned long data)
>   	}
>   }
>   
> -bool pl330_filter(struct dma_chan *chan, void *param)
> -{
> -	u8 *peri_id;
> -
> -	if (chan->device->dev->driver != &pl330_driver.drv)
> -		return false;
> -
> -	peri_id = chan->private;
> -	return *peri_id == (unsigned long)param;
> -}
> -EXPORT_SYMBOL(pl330_filter);
> -
>   static struct dma_chan *of_dma_pl330_xlate(struct of_phandle_args *dma_spec,
>   						struct of_dma *ofdma)
>   {
> @@ -2833,7 +2820,6 @@ static int __maybe_unused pl330_resume(struct device *dev)
>   static int
>   pl330_probe(struct amba_device *adev, const struct amba_id *id)
>   {
> -	struct dma_pl330_platdata *pdat;
>   	struct pl330_config *pcfg;
>   	struct pl330_dmac *pl330;
>   	struct dma_pl330_chan *pch, *_p;
> @@ -2843,8 +2829,6 @@ static int __maybe_unused pl330_resume(struct device *dev)
>   	int num_chan;
>   	struct device_node *np = adev->dev.of_node;
>   
> -	pdat = dev_get_platdata(&adev->dev);
> -
>   	ret = dma_set_mask_and_coherent(&adev->dev, DMA_BIT_MASK(32));
>   	if (ret)
>   		return ret;
> @@ -2857,7 +2841,7 @@ static int __maybe_unused pl330_resume(struct device *dev)
>   	pd = &pl330->ddma;
>   	pd->dev = &adev->dev;
>   
> -	pl330->mcbufsz = pdat ? pdat->mcbuf_sz : 0;
> +	pl330->mcbufsz = 0;
>   
>   	/* get quirk */
>   	for (i = 0; i < ARRAY_SIZE(of_quirks); i++)
> @@ -2901,10 +2885,7 @@ static int __maybe_unused pl330_resume(struct device *dev)
>   	INIT_LIST_HEAD(&pd->channels);
>   
>   	/* Initialize channel parameters */
> -	if (pdat)
> -		num_chan = max_t(int, pdat->nr_valid_peri, pcfg->num_chan);
> -	else
> -		num_chan = max_t(int, pcfg->num_peri, pcfg->num_chan);
> +	num_chan = max_t(int, pcfg->num_peri, pcfg->num_chan);
>   
>   	pl330->num_peripherals = num_chan;
>   
> @@ -2916,11 +2897,8 @@ static int __maybe_unused pl330_resume(struct device *dev)
>   
>   	for (i = 0; i < num_chan; i++) {
>   		pch = &pl330->peripherals[i];
> -		if (!adev->dev.of_node)
> -			pch->chan.private = pdat ? &pdat->peri_id[i] : NULL;
> -		else
> -			pch->chan.private = adev->dev.of_node;
>   
> +		pch->chan.private = adev->dev.of_node;
>   		INIT_LIST_HEAD(&pch->submitted_list);
>   		INIT_LIST_HEAD(&pch->work_list);
>   		INIT_LIST_HEAD(&pch->completed_list);
> @@ -2933,15 +2911,11 @@ static int __maybe_unused pl330_resume(struct device *dev)
>   		list_add_tail(&pch->chan.device_node, &pd->channels);
>   	}
>   
> -	if (pdat) {
> -		pd->cap_mask = pdat->cap_mask;
> -	} else {
> -		dma_cap_set(DMA_MEMCPY, pd->cap_mask);
> -		if (pcfg->num_peri) {
> -			dma_cap_set(DMA_SLAVE, pd->cap_mask);
> -			dma_cap_set(DMA_CYCLIC, pd->cap_mask);
> -			dma_cap_set(DMA_PRIVATE, pd->cap_mask);
> -		}
> +	dma_cap_set(DMA_MEMCPY, pd->cap_mask);
> +	if (pcfg->num_peri) {
> +		dma_cap_set(DMA_SLAVE, pd->cap_mask);
> +		dma_cap_set(DMA_CYCLIC, pd->cap_mask);
> +		dma_cap_set(DMA_PRIVATE, pd->cap_mask);
>   	}
>   
>   	pd->device_alloc_chan_resources = pl330_alloc_chan_resources;
> diff --git a/include/linux/amba/pl330.h b/include/linux/amba/pl330.h
> deleted file mode 100644
> index fe93758e8403..000000000000
> --- a/include/linux/amba/pl330.h
> +++ /dev/null
> @@ -1,35 +0,0 @@
> -/* linux/include/linux/amba/pl330.h
> - *
> - * Copyright (C) 2010 Samsung Electronics Co. Ltd.
> - *	Jaswinder Singh <jassi.brar@...sung.com>
> - *
> - * This program is free software; you can redistribute it and/or modify
> - * it under the terms of the GNU General Public License as published by
> - * the Free Software Foundation; either version 2 of the License, or
> - * (at your option) any later version.
> - */
> -
> -#ifndef	__AMBA_PL330_H_
> -#define	__AMBA_PL330_H_
> -
> -#include <linux/dmaengine.h>
> -
> -struct dma_pl330_platdata {
> -	/*
> -	 * Number of valid peripherals connected to DMAC.
> -	 * This may be different from the value read from
> -	 * CR0, as the PL330 implementation might have 'holes'
> -	 * in the peri list or the peri could also be reached
> -	 * from another DMAC which the platform prefers.
> -	 */
> -	u8 nr_valid_peri;
> -	/* Array of valid peripherals */
> -	u8 *peri_id;
> -	/* Operational capabilities */
> -	dma_cap_mask_t cap_mask;
> -	/* Bytes to allocate for MC buffer */
> -	unsigned mcbuf_sz;
> -};
> -
> -extern bool pl330_filter(struct dma_chan *chan, void *param);
> -#endif	/* __AMBA_PL330_H_ */

Best regards
-- 
Marek Szyprowski, PhD
Samsung R&D Institute Poland

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ