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 for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Mon, 13 Mar 2023 01:53:02 +0000
From:   Chris Packham <Chris.Packham@...iedtelesis.co.nz>
To:     Andi Shyti <andi.shyti@...nel.org>,
        "linux-i2c@...r.kernel.org" <linux-i2c@...r.kernel.org>,
        "devicetree@...r.kernel.org" <devicetree@...r.kernel.org>,
        "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
CC:     Wolfram Sang <wsa@...nel.org>, Rob Herring <robh+dt@...nel.org>,
        "Krzysztof Kozlowski" <krzysztof.kozlowski+dt@...aro.org>,
        Ryan Chen <ryan_chen@...eedtech.com>
Subject: Re: [PATCH v3 2/3] i2c: mpc: Use of_property_read_u32 instead of
 of_get_property


On 13/03/23 12:36, Andi Shyti wrote:
> "of_property_read_u32()" is preferred to "of_get_property()" for
> retreiving u32 from the device tree. Replace it.
>
> Suggested-by: Chris Packham <chris.packham@...iedtelesis.co.nz>
> Signed-off-by: Andi Shyti <andi.shyti@...nel.org>

Reviewed-by: Chris Packham <chris.packham@...iedtelesis.co.nz>

Gave the patches a spin on a P2041RDB so

Tested-by: Chris Packham <chris.packham@...iedtelesis.co.nz>

> ---
>   drivers/i2c/busses/i2c-mpc.c | 25 +++++++++++++------------
>   1 file changed, 13 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/i2c/busses/i2c-mpc.c b/drivers/i2c/busses/i2c-mpc.c
> index 81ac92bb4f6f..87e5c1725750 100644
> --- a/drivers/i2c/busses/i2c-mpc.c
> +++ b/drivers/i2c/busses/i2c-mpc.c
> @@ -770,7 +770,6 @@ static const struct i2c_algorithm mpc_algo = {
>   static struct i2c_adapter mpc_ops = {
>   	.owner = THIS_MODULE,
>   	.algo = &mpc_algo,
> -	.timeout = HZ,
>   };
>   
>   static struct i2c_bus_recovery_info fsl_i2c_recovery_info = {
> @@ -781,11 +780,9 @@ static int fsl_i2c_probe(struct platform_device *op)
>   {
>   	const struct mpc_i2c_data *data;
>   	struct mpc_i2c *i2c;
> -	const u32 *prop;
> -	u32 clock = MPC_I2C_CLOCK_LEGACY;
> -	int result = 0;
> -	int plen;
>   	struct clk *clk;
> +	int result;
> +	u32 clock;
>   	int err;
>   
>   	i2c = devm_kzalloc(&op->dev, sizeof(*i2c), GFP_KERNEL);
> @@ -831,10 +828,10 @@ static int fsl_i2c_probe(struct platform_device *op)
>   	if (of_property_read_bool(op->dev.of_node, "fsl,preserve-clocking")) {
>   		clock = MPC_I2C_CLOCK_PRESERVE;
>   	} else {
> -		prop = of_get_property(op->dev.of_node, "clock-frequency",
> -					&plen);
> -		if (prop && plen == sizeof(u32))
> -			clock = *prop;
> +		result = of_property_read_u32(op->dev.of_node,
> +					      "clock-frequency", &clock);
> +		if (result)
> +			clock = MPC_I2C_CLOCK_LEGACY;
>   	}
>   
>   	data = device_get_match_data(&op->dev);
> @@ -846,12 +843,16 @@ static int fsl_i2c_probe(struct platform_device *op)
>   			mpc_i2c_setup_8xxx(op->dev.of_node, i2c, clock);
>   	}
>   
> -	prop = of_get_property(op->dev.of_node, "fsl,timeout", &plen);
> -	if (prop && plen == sizeof(u32)) {
> -		mpc_ops.timeout = *prop * HZ / 1000000;
> +	result = of_property_read_u32(op->dev.of_node,
> +				      "fsl,timeout", &mpc_ops.timeout);
> +	if (!result) {
> +		mpc_ops.timeout *= HZ / 1000000;
>   		if (mpc_ops.timeout < 5)
>   			mpc_ops.timeout = 5;
> +	} else {
> +		mpc_ops.timeout = HZ;
>   	}
> +
>   	dev_info(i2c->dev, "timeout %u us\n", mpc_ops.timeout * 1000000 / HZ);
>   
>   	if (of_property_read_bool(op->dev.of_node, "fsl,i2c-erratum-a004447"))

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ