All of lore.kernel.org
 help / color / mirror / Atom feed
From: Philipp Zabel <p.zabel@pengutronix.de>
To: "Paweł Anikiel" <pan@semihalf.com>,
	miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com,
	robh+dt@kernel.org, arnd@arndb.de, olof@lixom.net,
	soc@kernel.org, dinguyen@kernel.org
Cc: linux-mtd@lists.infradead.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, tn@semihalf.com,
	ka@semihalf.com, jam@semihalf.com
Subject: Re: [PATCH 3/3] reset: socfpga: add empty driver allowing consumers to probe
Date: Tue, 05 Oct 2021 11:34:07 +0200	[thread overview]
Message-ID: <ce254cc123f2809976c2f2404941a9074c458309.camel@pengutronix.de> (raw)
In-Reply-To: <20210920124141.1166544-4-pan@semihalf.com>

Hi Paweł,

On Mon, 2021-09-20 at 14:41 +0200, Paweł Anikiel wrote:
> The early reset driver doesn't ever probe, which causes consuming
> devices to be unable to probe. Add an empty driver to set this device
> as available, allowing consumers to probe.
> 
> Signed-off-by: Paweł Anikiel <pan@semihalf.com>
> ---
>  drivers/reset/reset-socfpga.c | 26 ++++++++++++++++++++++++++
>  1 file changed, 26 insertions(+)
> 
> diff --git a/drivers/reset/reset-socfpga.c b/drivers/reset/reset-socfpga.c
> index 2a72f861f798..8c6492e5693c 100644
> --- a/drivers/reset/reset-socfpga.c
> +++ b/drivers/reset/reset-socfpga.c
> @@ -92,3 +92,29 @@ void __init socfpga_reset_init(void)
>  	for_each_matching_node(np, socfpga_early_reset_dt_ids)
>  		a10_reset_init(np);
>  }
> +
> +/*
> + * The early driver is problematic, because it doesn't register
> + * itself as a driver. This causes certain device links to prevent
> + * consumer devices from probing. The hacky solution is to register
> + * an empty driver, whose only job is to attach itself to the reset
> + * manager and call probe.
> + */
> +static const struct of_device_id socfpga_reset_dt_ids[] = {
> +	{ .compatible = "altr,rst-mgr", },
> +	{ /* sentinel */ },
> +};
> +
> +static int reset_simple_probe(struct platform_device *pdev)
> +{
> +	return 0;
> +}
> +
> +static struct platform_driver reset_socfpga_driver = {
> +	.probe	= reset_simple_probe,
> +	.driver = {
> +		.name		= "socfpga-reset",
> +		.of_match_table	= socfpga_reset_dt_ids,
> +	},
> +};
> +builtin_platform_driver(reset_socfpga_driver);

If we can just let devlink delay all consumers until the empty driver is
probed, does the reset controller have to be registered early at all?

regards
Philipp

WARNING: multiple messages have this Message-ID (diff)
From: Philipp Zabel <p.zabel@pengutronix.de>
To: "Paweł Anikiel" <pan@semihalf.com>,
	miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com,
	robh+dt@kernel.org, arnd@arndb.de, olof@lixom.net,
	soc@kernel.org, dinguyen@kernel.org
Cc: linux-mtd@lists.infradead.org, devicetree@vger.kernel.org,
	 linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,  tn@semihalf.com,
	ka@semihalf.com, jam@semihalf.com
Subject: Re: [PATCH 3/3] reset: socfpga: add empty driver allowing consumers to probe
Date: Tue, 05 Oct 2021 11:34:07 +0200	[thread overview]
Message-ID: <ce254cc123f2809976c2f2404941a9074c458309.camel@pengutronix.de> (raw)
Message-ID: <20211005093407.jGBR-6daoZda851qz2d7vJavTYMV5J4bxyQmRVecM-A@z> (raw)
In-Reply-To: <20210920124141.1166544-4-pan@semihalf.com>

Hi Paweł,

On Mon, 2021-09-20 at 14:41 +0200, Paweł Anikiel wrote:
> The early reset driver doesn't ever probe, which causes consuming
> devices to be unable to probe. Add an empty driver to set this device
> as available, allowing consumers to probe.
> 
> Signed-off-by: Paweł Anikiel <pan@semihalf.com>
> ---
>  drivers/reset/reset-socfpga.c | 26 ++++++++++++++++++++++++++
>  1 file changed, 26 insertions(+)
> 
> diff --git a/drivers/reset/reset-socfpga.c b/drivers/reset/reset-socfpga.c
> index 2a72f861f798..8c6492e5693c 100644
> --- a/drivers/reset/reset-socfpga.c
> +++ b/drivers/reset/reset-socfpga.c
> @@ -92,3 +92,29 @@ void __init socfpga_reset_init(void)
>  	for_each_matching_node(np, socfpga_early_reset_dt_ids)
>  		a10_reset_init(np);
>  }
> +
> +/*
> + * The early driver is problematic, because it doesn't register
> + * itself as a driver. This causes certain device links to prevent
> + * consumer devices from probing. The hacky solution is to register
> + * an empty driver, whose only job is to attach itself to the reset
> + * manager and call probe.
> + */
> +static const struct of_device_id socfpga_reset_dt_ids[] = {
> +	{ .compatible = "altr,rst-mgr", },
> +	{ /* sentinel */ },
> +};
> +
> +static int reset_simple_probe(struct platform_device *pdev)
> +{
> +	return 0;
> +}
> +
> +static struct platform_driver reset_socfpga_driver = {
> +	.probe	= reset_simple_probe,
> +	.driver = {
> +		.name		= "socfpga-reset",
> +		.of_match_table	= socfpga_reset_dt_ids,
> +	},
> +};
> +builtin_platform_driver(reset_socfpga_driver);

If we can just let devlink delay all consumers until the empty driver is
probed, does the reset controller have to be registered early at all?

regards
Philipp

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

WARNING: multiple messages have this Message-ID (diff)
From: Philipp Zabel <p.zabel@pengutronix.de>
To: "Paweł Anikiel" <pan@semihalf.com>,
	miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com,
	robh+dt@kernel.org, arnd@arndb.de, olof@lixom.net,
	soc@kernel.org, dinguyen@kernel.org
Cc: linux-mtd@lists.infradead.org, devicetree@vger.kernel.org,
	 linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,  tn@semihalf.com,
	ka@semihalf.com, jam@semihalf.com
Subject: Re: [PATCH 3/3] reset: socfpga: add empty driver allowing consumers to probe
Date: Tue, 05 Oct 2021 11:34:07 +0200	[thread overview]
Message-ID: <ce254cc123f2809976c2f2404941a9074c458309.camel@pengutronix.de> (raw)
Message-ID: <20211005093407.6FCAsOZYukqdChGyMhvCtKU-0iQe1qmWgVVlQSxU-40@z> (raw)
In-Reply-To: <20210920124141.1166544-4-pan@semihalf.com>

Hi Paweł,

On Mon, 2021-09-20 at 14:41 +0200, Paweł Anikiel wrote:
> The early reset driver doesn't ever probe, which causes consuming
> devices to be unable to probe. Add an empty driver to set this device
> as available, allowing consumers to probe.
> 
> Signed-off-by: Paweł Anikiel <pan@semihalf.com>
> ---
>  drivers/reset/reset-socfpga.c | 26 ++++++++++++++++++++++++++
>  1 file changed, 26 insertions(+)
> 
> diff --git a/drivers/reset/reset-socfpga.c b/drivers/reset/reset-socfpga.c
> index 2a72f861f798..8c6492e5693c 100644
> --- a/drivers/reset/reset-socfpga.c
> +++ b/drivers/reset/reset-socfpga.c
> @@ -92,3 +92,29 @@ void __init socfpga_reset_init(void)
>  	for_each_matching_node(np, socfpga_early_reset_dt_ids)
>  		a10_reset_init(np);
>  }
> +
> +/*
> + * The early driver is problematic, because it doesn't register
> + * itself as a driver. This causes certain device links to prevent
> + * consumer devices from probing. The hacky solution is to register
> + * an empty driver, whose only job is to attach itself to the reset
> + * manager and call probe.
> + */
> +static const struct of_device_id socfpga_reset_dt_ids[] = {
> +	{ .compatible = "altr,rst-mgr", },
> +	{ /* sentinel */ },
> +};
> +
> +static int reset_simple_probe(struct platform_device *pdev)
> +{
> +	return 0;
> +}
> +
> +static struct platform_driver reset_socfpga_driver = {
> +	.probe	= reset_simple_probe,
> +	.driver = {
> +		.name		= "socfpga-reset",
> +		.of_match_table	= socfpga_reset_dt_ids,
> +	},
> +};
> +builtin_platform_driver(reset_socfpga_driver);

If we can just let devlink delay all consumers until the empty driver is
probed, does the reset controller have to be registered early at all?

regards
Philipp

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2021-10-05  9:34 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-20 12:41 [PATCH 0/3] Add support for the Mercury+ AA1 module Paweł Anikiel
2021-09-20 12:41 ` Paweł Anikiel
2021-09-20 12:41 ` Paweł Anikiel
2021-09-20 12:41 ` [PATCH 1/3] dt-bindings: mtd: spi-nor: add n25q00 schema Paweł Anikiel
2021-09-20 12:41   ` Paweł Anikiel
2021-09-20 12:41   ` Paweł Anikiel
2021-09-23 16:56   ` Rob Herring
2021-09-23 16:56     ` Rob Herring
2021-09-23 16:56     ` Rob Herring
2021-09-23 18:59   ` Pratyush Yadav
2021-09-23 18:59     ` Pratyush Yadav
2021-09-23 18:59     ` Pratyush Yadav
2021-10-05 11:59     ` Tudor.Ambarus
2021-10-05 11:59       ` Tudor.Ambarus
2021-10-05 11:59       ` Tudor.Ambarus
2021-09-20 12:41 ` [PATCH 2/3] dts: socfpga: Add Mercury+ AA1 devicetree Paweł Anikiel
2021-09-23 16:56   ` Rob Herring
2021-09-23 16:56     ` Rob Herring
2021-09-23 16:56     ` Rob Herring
2021-09-20 12:41 ` Paweł Anikiel
2021-09-20 12:41   ` Paweł Anikiel
2021-09-20 12:41   ` Paweł Anikiel
2021-09-20 12:41 ` [PATCH 3/3] reset: socfpga: add empty driver allowing consumers to probe Paweł Anikiel
2021-09-20 12:41   ` Paweł Anikiel
2021-09-20 12:41   ` Paweł Anikiel
2021-10-05  9:34   ` Philipp Zabel [this message]
2021-10-05  9:34     ` Philipp Zabel
2021-10-05  9:34     ` Philipp Zabel
2021-10-05 11:12     ` Paweł Anikiel
2021-10-05 11:12       ` Paweł Anikiel
2021-10-05 11:12       ` Paweł Anikiel
2021-10-05 10:22       ` Philipp Zabel
2021-10-05 10:22         ` Philipp Zabel
2021-10-05 10:22         ` Philipp Zabel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ce254cc123f2809976c2f2404941a9074c458309.camel@pengutronix.de \
    --to=p.zabel@pengutronix.de \
    --cc=arnd@arndb.de \
    --cc=devicetree@vger.kernel.org \
    --cc=dinguyen@kernel.org \
    --cc=jam@semihalf.com \
    --cc=ka@semihalf.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=miquel.raynal@bootlin.com \
    --cc=olof@lixom.net \
    --cc=pan@semihalf.com \
    --cc=richard@nod.at \
    --cc=robh+dt@kernel.org \
    --cc=soc@kernel.org \
    --cc=tn@semihalf.com \
    --cc=vigneshr@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.