[prev in list] [next in list] [prev in thread] [next in thread]
List: linux-omap
Subject: Re: [PATCH] remoteproc/wkup_m3: Drop legacy platform data no longer needed
From: Suman Anna <s-anna () ti ! com>
Date: 2021-01-28 23:14:38
Message-ID: ec2b5581-b207-f7ed-2f0d-09e5b5d9dfaa () ti ! com
[Download RAW message or body]
Hi Tony,
On 1/28/21 2:44 AM, Tony Lindgren wrote:
> We have v5.11 booting am3 and 4 with ti-sysc interconnect target module
> driver and genpd. As part of that conversion, wkup_m3 driver got converted
> to optionally use reset driver instead of legacy platform data with
> commit 57df7e370d2a ("remoteproc/wkup_m3: Use reset control driver if
> available").
>
> The related SoC calls already got removed with commit b62168e516da ("ARM:
> OMAP2+: Fix am4 only build after genpd changes").
>
> We can now just drop the legacy platform data for v5.12 or later, there's
> no rush to do this for v5.11.
>
> Cc: Arnd Bergmann <arnd@arndb.de>
> Cc: Dave Gerlach <d-gerlach@ti.com>
> Cc: Rob Herring <robh+dt@kernel.org>
> Cc: Suman Anna <s-anna@ti.com>
> Signed-off-by: Tony Lindgren <tony@atomide.com>
> ---
> arch/arm/mach-omap2/pdata-quirks.c | 1 -
> drivers/remoteproc/wkup_m3_rproc.c | 37 ++-------------------------
> include/linux/platform_data/wkup_m3.h | 22 ----------------
> 3 files changed, 2 insertions(+), 58 deletions(-)
> delete mode 100644 include/linux/platform_data/wkup_m3.h
>
> diff --git a/arch/arm/mach-omap2/pdata-quirks.c b/arch/arm/mach-omap2/pdata-quirks.c
> --- a/arch/arm/mach-omap2/pdata-quirks.c
> +++ b/arch/arm/mach-omap2/pdata-quirks.c
> @@ -21,7 +21,6 @@
> #include <linux/platform_data/hsmmc-omap.h>
> #include <linux/platform_data/iommu-omap.h>
> #include <linux/platform_data/ti-sysc.h>
> -#include <linux/platform_data/wkup_m3.h>
> #include <linux/platform_data/asoc-ti-mcbsp.h>
> #include <linux/platform_data/ti-prm.h>
>
> diff --git a/drivers/remoteproc/wkup_m3_rproc.c b/drivers/remoteproc/wkup_m3_rproc.c
> --- a/drivers/remoteproc/wkup_m3_rproc.c
> +++ b/drivers/remoteproc/wkup_m3_rproc.c
> @@ -19,8 +19,6 @@
> #include <linux/remoteproc.h>
> #include <linux/reset.h>
>
> -#include <linux/platform_data/wkup_m3.h>
> -
> #include "remoteproc_internal.h"
>
> #define WKUPM3_MEM_MAX 2
> @@ -56,37 +54,15 @@ struct wkup_m3_rproc {
> static int wkup_m3_rproc_start(struct rproc *rproc)
> {
> struct wkup_m3_rproc *wkupm3 = rproc->priv;
> - struct platform_device *pdev = wkupm3->pdev;
> - struct device *dev = &pdev->dev;
> - struct wkup_m3_platform_data *pdata = dev_get_platdata(dev);
> - int error = 0;
> -
> - error = reset_control_deassert(wkupm3->rsts);
>
> - if (!wkupm3->rsts && pdata->deassert_reset(pdev, pdata->reset_name)) {
> - dev_err(dev, "Unable to reset wkup_m3!\n");
> - error = -ENODEV;
> - }
> -
> - return error;
> + return reset_control_deassert(wkupm3->rsts);
> }
>
> static int wkup_m3_rproc_stop(struct rproc *rproc)
> {
> struct wkup_m3_rproc *wkupm3 = rproc->priv;
> - struct platform_device *pdev = wkupm3->pdev;
> - struct device *dev = &pdev->dev;
> - struct wkup_m3_platform_data *pdata = dev_get_platdata(dev);
> - int error = 0;
>
> - error = reset_control_assert(wkupm3->rsts);
> -
> - if (!wkupm3->rsts && pdata->assert_reset(pdev, pdata->reset_name)) {
> - dev_err(dev, "Unable to assert reset of wkup_m3!\n");
> - error = -ENODEV;
> - }
> -
> - return error;
> + return reset_control_assert(wkupm3->rsts);
> }
>
> static void *wkup_m3_rproc_da_to_va(struct rproc *rproc, u64 da, size_t len)
> @@ -128,7 +104,6 @@ MODULE_DEVICE_TABLE(of, wkup_m3_rproc_of_match);
> static int wkup_m3_rproc_probe(struct platform_device *pdev)
> {
> struct device *dev = &pdev->dev;
> - struct wkup_m3_platform_data *pdata = dev->platform_data;
> /* umem always needs to be processed first */
> const char *mem_names[WKUPM3_MEM_MAX] = { "umem", "dmem" };
> struct wkup_m3_rproc *wkupm3;
> @@ -171,14 +146,6 @@ static int wkup_m3_rproc_probe(struct platform_device *pdev)
> wkupm3->rsts = devm_reset_control_get_optional_shared(dev, "rstctrl");
We should no longer be using the optional variant now that this is what is
expected. Otherwise, rest of the changes look good. Any reason to use the shared
variant, I need to take a closer look at how the resets are represented.
Do I need anything else or I should be able to test this patch on latest 5.11-rc
or master?
regards
Suman
> if (IS_ERR(wkupm3->rsts))
> return PTR_ERR(wkupm3->rsts);
> - if (!wkupm3->rsts) {
> - if (!(pdata && pdata->deassert_reset && pdata->assert_reset &&
> - pdata->reset_name)) {
> - dev_err(dev, "Platform data missing!\n");
> - ret = -ENODEV;
> - goto err_put_rproc;
> - }
> - }
>
> for (i = 0; i < ARRAY_SIZE(mem_names); i++) {
> res = platform_get_resource_byname(pdev, IORESOURCE_MEM,
> diff --git a/include/linux/platform_data/wkup_m3.h b/include/linux/platform_data/wkup_m3.h
> deleted file mode 100644
> --- a/include/linux/platform_data/wkup_m3.h
> +++ /dev/null
> @@ -1,22 +0,0 @@
> -/* SPDX-License-Identifier: GPL-2.0-only */
> -/*
> - * TI Wakeup M3 remote processor platform data
> - *
> - * Copyright (C) 2014-2015 Texas Instruments, Inc.
> - *
> - * Dave Gerlach <d-gerlach@ti.com>
> - */
> -
> -#ifndef _LINUX_PLATFORM_DATA_WKUP_M3_H
> -#define _LINUX_PLATFORM_DATA_WKUP_M3_H
> -
> -struct platform_device;
> -
> -struct wkup_m3_platform_data {
> - const char *reset_name;
> -
> - int (*assert_reset)(struct platform_device *pdev, const char *name);
> - int (*deassert_reset)(struct platform_device *pdev, const char *name);
> -};
> -
> -#endif /* _LINUX_PLATFORM_DATA_WKUP_M3_H */
>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic