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  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]
Date:   Mon, 18 Mar 2019 13:56:21 +0000
From:   Steve Twiss <stwiss.opensource@...semi.com>
To:     Mark Brown <broonie@...nel.org>
CC:     Axel Lin <axel.lin@...ics.com>,
        Support Opensource <Support.Opensource@...semi.com>,
        Liam Girdwood <lgirdwood@...il.com>,
        "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: RE: [PATCH 2/2] regulator: da9055: Convert to regulator core's
 simplified DT parsing code

Hi Mark,

For the DA9055, I have spoken with the management here. Dialog Semiconductor are
"no longer building the DA9055"; the device doesn't appear on the support portal
or website and; I have been told, "you can remove [it] from your list of
supported products".

But, as always: I realise that the Linux community will have different aims and
I would like to support those as much as I can.

There are many reasons to keep supporting the drivers, and not least because of
your comments from way-back, in 2014:

On Fri, 14 Feb 2014 14:56:43, Mark Brown wrote:
> We do fairly often see problems with people still using old boards for various
> reasons [and it] does not mean that the old silicon has been retired by users
> (even if [it is] just [used] for comparison purposes [...] - "that worked on
> the rev A boards, did we break the software?").

But it does seem that around 97% of this driver has not has not changed since
2014, so we are happy here at Dialog to remove our support from this DA9055
device.

Is there a Linux device driver retirement plan for obsoleted products? :)

Regards,
Steve

On 12 March 2019 15:48, Axel Lin wrote:

> To: Mark Brown <broonie@...nel.org>
> Subject: [PATCH 2/2] regulator: da9055: Convert to regulator core's simplified DT
> parsing code
> 
> Use regulator core's simplified DT parsing code to simply the driver
> implementation.
> 
> Signed-off-by: Axel Lin <axel.lin@...ics.com>
> ---
>  drivers/regulator/da9055-regulator.c | 67 +++-------------------------
>  1 file changed, 6 insertions(+), 61 deletions(-)
> 
> diff --git a/drivers/regulator/da9055-regulator.c b/drivers/regulator/da9055-
> regulator.c
> index 3c6fac793658..b7b4dddf5509 100644
> --- a/drivers/regulator/da9055-regulator.c
> +++ b/drivers/regulator/da9055-regulator.c
> @@ -338,6 +338,8 @@ static const struct regulator_ops da9055_ldo_ops = {
>  {\
>  	.reg_desc = {\
>  		.name = #_id,\
> +		.of_match = of_match_ptr(#_id),\
> +		.regulators_node = of_match_ptr("regulators"),\
>  		.ops = &da9055_ldo_ops,\
>  		.type = REGULATOR_VOLTAGE,\
>  		.id = DA9055_ID_##_id,\
> @@ -366,6 +368,8 @@ static const struct regulator_ops da9055_ldo_ops = {
>  {\
>  	.reg_desc = {\
>  		.name = #_id,\
> +		.of_match = of_match_ptr(#_id),\
> +		.regulators_node = of_match_ptr("regulators"),\
>  		.ops = &da9055_buck_ops,\
>  		.type = REGULATOR_VOLTAGE,\
>  		.id = DA9055_ID_##_id,\
> @@ -507,59 +511,6 @@ static inline struct da9055_regulator_info
> *find_regulator_info(int id)
>  	return NULL;
>  }
> 
> -#ifdef CONFIG_OF
> -static struct of_regulator_match da9055_reg_matches[] = {
> -	{ .name = "BUCK1", },
> -	{ .name = "BUCK2", },
> -	{ .name = "LDO1", },
> -	{ .name = "LDO2", },
> -	{ .name = "LDO3", },
> -	{ .name = "LDO4", },
> -	{ .name = "LDO5", },
> -	{ .name = "LDO6", },
> -};
> -
> -static int da9055_regulator_dt_init(struct platform_device *pdev,
> -				    struct da9055_regulator *regulator,
> -				    struct regulator_config *config,
> -				    int regid)
> -{
> -	struct device_node *nproot, *np;
> -	int ret;
> -
> -	nproot = of_node_get(pdev->dev.parent->of_node);
> -	if (!nproot)
> -		return -ENODEV;
> -
> -	np = of_get_child_by_name(nproot, "regulators");
> -	if (!np)
> -		return -ENODEV;
> -
> -	ret = of_regulator_match(&pdev->dev, np,
> &da9055_reg_matches[regid], 1);
> -	of_node_put(nproot);
> -	if (ret < 0) {
> -		dev_err(&pdev->dev, "Error matching regulator: %d\n", ret);
> -		return ret;
> -	}
> -
> -	config->init_data = da9055_reg_matches[regid].init_data;
> -	config->of_node = da9055_reg_matches[regid].of_node;
> -
> -	if (!config->of_node)
> -		return -ENODEV;
> -
> -	return 0;
> -}
> -#else
> -static inline int da9055_regulator_dt_init(struct platform_device *pdev,
> -				       struct da9055_regulator *regulator,
> -				       struct regulator_config *config,
> -				       int regid)
> -{
> -	return -ENODEV;
> -}
> -#endif /* CONFIG_OF */
> -
>  static int da9055_regulator_probe(struct platform_device *pdev)
>  {
>  	struct regulator_config config = { };
> @@ -580,18 +531,12 @@ static int da9055_regulator_probe(struct
> platform_device *pdev)
>  	}
> 
>  	regulator->da9055 = da9055;
> -	config.dev = &pdev->dev;
> +	config.dev = da9055->dev;
>  	config.driver_data = regulator;
>  	config.regmap = da9055->regmap;
> 
> -	if (pdata) {
> +	if (pdata)
>  		config.init_data = pdata->regulators[pdev->id];
> -	} else {
> -		ret = da9055_regulator_dt_init(pdev, regulator, &config,
> -					       pdev->id);
> -		if (ret < 0)
> -			return ret;
> -	}
> 
>  	ret = da9055_gpio_init(regulator, &config, pdata, pdev->id);
>  	if (ret < 0)
> --
> 2.17.1

Powered by blists - more mailing lists