2015-11-17 11:08:11

by Saurabh Sengar

[permalink] [raw]
Subject: [PATCH] usb: chipidea: removing of_find_property

call to of_find_property() before of_property_read_u32() is unnecessary.
of_property_read_u32() anyway calls to of_find_property() only.

Signed-off-by: Saurabh Sengar <[email protected]>
---
drivers/usb/chipidea/core.c | 67 ++++++++++++++++++++++-----------------------
1 file changed, 32 insertions(+), 35 deletions(-)

diff --git a/drivers/usb/chipidea/core.c b/drivers/usb/chipidea/core.c
index 965d0e2..8a4c22c 100644
--- a/drivers/usb/chipidea/core.c
+++ b/drivers/usb/chipidea/core.c
@@ -643,6 +643,7 @@ static int ci_get_platdata(struct device *dev,
struct extcon_dev *ext_vbus, *ext_id;
struct ci_hdrc_cable *cable;
int ret;
+ u32 pval;

if (!platdata->phy_mode)
platdata->phy_mode = of_usb_get_phy_mode(dev->of_node);
@@ -688,52 +689,48 @@ static int ci_get_platdata(struct device *dev,
if (usb_get_maximum_speed(dev) == USB_SPEED_FULL)
platdata->flags |= CI_HDRC_FORCE_FULLSPEED;

- if (of_find_property(dev->of_node, "phy-clkgate-delay-us", NULL))
- of_property_read_u32(dev->of_node, "phy-clkgate-delay-us",
- &platdata->phy_clkgate_delay_us);
+ if (!of_property_read_u32(dev->of_node, "phy-clkgate-delay-us",
+ &pval))
+ platdata->phy_clkgate_delay_us = pval;

platdata->itc_setting = 1;
- if (of_find_property(dev->of_node, "itc-setting", NULL)) {
- ret = of_property_read_u32(dev->of_node, "itc-setting",
- &platdata->itc_setting);
- if (ret) {
- dev_err(dev,
- "failed to get itc-setting\n");
- return ret;
- }
+
+ ret = of_property_read_u32(dev->of_node, "itc-setting", &pval);
+ if (!ret)
+ platdata->itc_setting = pval;
+ else if (ret != -EINVAL) {
+ dev_err(dev, "failed to get itc-setting\n");
+ return ret;
}

- if (of_find_property(dev->of_node, "ahb-burst-config", NULL)) {
- ret = of_property_read_u32(dev->of_node, "ahb-burst-config",
- &platdata->ahb_burst_config);
- if (ret) {
- dev_err(dev,
- "failed to get ahb-burst-config\n");
- return ret;
- }
+ ret = of_property_read_u32(dev->of_node, "ahb-burst-config",
+ &pval);
+ if (!ret) {
+ platdata->ahb_burst_config = pval;
platdata->flags |= CI_HDRC_OVERRIDE_AHB_BURST;
+ } else if (ret != -EINVAL) {
+ dev_err(dev, "failed to get ahb-burst-config\n");
+ return ret;
}

- if (of_find_property(dev->of_node, "tx-burst-size-dword", NULL)) {
- ret = of_property_read_u32(dev->of_node, "tx-burst-size-dword",
- &platdata->tx_burst_size);
- if (ret) {
- dev_err(dev,
- "failed to get tx-burst-size-dword\n");
- return ret;
- }
+ ret = of_property_read_u32(dev->of_node, "tx-burst-size-dword",
+ &pval);
+ if (!ret) {
+ platdata->tx_burst_size = pval;
platdata->flags |= CI_HDRC_OVERRIDE_TX_BURST;
+ } else if (ret != -EINVAL) {
+ dev_err(dev, "failed to get tx-burst-size-dword\n");
+ return ret;
}

- if (of_find_property(dev->of_node, "rx-burst-size-dword", NULL)) {
- ret = of_property_read_u32(dev->of_node, "rx-burst-size-dword",
- &platdata->rx_burst_size);
- if (ret) {
- dev_err(dev,
- "failed to get rx-burst-size-dword\n");
- return ret;
- }
+ ret = of_property_read_u32(dev->of_node, "rx-burst-size-dword",
+ &pval);
+ if (!ret) {
+ platdata->rx_burst_size = pval;
platdata->flags |= CI_HDRC_OVERRIDE_RX_BURST;
+ } else if (ret != -EINVAL) {
+ dev_err(dev, "failed to get rx-burst-size-dword\n");
+ return ret;
}

ext_id = ERR_PTR(-ENODEV);
--
1.9.1


2015-11-17 11:20:22

by Måns Rullgård

[permalink] [raw]
Subject: Re: [PATCH] usb: chipidea: removing of_find_property

Saurabh Sengar <[email protected]> writes:

> call to of_find_property() before of_property_read_u32() is unnecessary.
> of_property_read_u32() anyway calls to of_find_property() only.
>
> Signed-off-by: Saurabh Sengar <[email protected]>
> ---
> drivers/usb/chipidea/core.c | 67 ++++++++++++++++++++++-----------------------
> 1 file changed, 32 insertions(+), 35 deletions(-)
>
> diff --git a/drivers/usb/chipidea/core.c b/drivers/usb/chipidea/core.c
> index 965d0e2..8a4c22c 100644
> --- a/drivers/usb/chipidea/core.c
> +++ b/drivers/usb/chipidea/core.c
> @@ -643,6 +643,7 @@ static int ci_get_platdata(struct device *dev,
> struct extcon_dev *ext_vbus, *ext_id;
> struct ci_hdrc_cable *cable;
> int ret;
> + u32 pval;
>
> if (!platdata->phy_mode)
> platdata->phy_mode = of_usb_get_phy_mode(dev->of_node);
> @@ -688,52 +689,48 @@ static int ci_get_platdata(struct device *dev,
> if (usb_get_maximum_speed(dev) == USB_SPEED_FULL)
> platdata->flags |= CI_HDRC_FORCE_FULLSPEED;
>
> - if (of_find_property(dev->of_node, "phy-clkgate-delay-us", NULL))
> - of_property_read_u32(dev->of_node, "phy-clkgate-delay-us",
> - &platdata->phy_clkgate_delay_us);
> + if (!of_property_read_u32(dev->of_node, "phy-clkgate-delay-us",
> + &pval))
> + platdata->phy_clkgate_delay_us = pval;

You don't need to use the pval temporary as of_property_read_u32 only
modifies the destination on success.

--
M?ns Rullg?rd
[email protected]

2015-11-17 11:40:20

by Saurabh Sengar

[permalink] [raw]
Subject: [PATCH v2] usb: chipidea: removing of_find_property

call to of_find_property() before of_property_read_u32() is unnecessary.
of_property_read_u32() anyway calls to of_find_property() only.

Signed-off-by: Saurabh Sengar <[email protected]>
---
v2: removed pval variable
drivers/usb/chipidea/core.c | 61 +++++++++++++++++++--------------------------
1 file changed, 26 insertions(+), 35 deletions(-)

diff --git a/drivers/usb/chipidea/core.c b/drivers/usb/chipidea/core.c
index 965d0e2..916a20d 100644
--- a/drivers/usb/chipidea/core.c
+++ b/drivers/usb/chipidea/core.c
@@ -688,52 +688,43 @@ static int ci_get_platdata(struct device *dev,
if (usb_get_maximum_speed(dev) == USB_SPEED_FULL)
platdata->flags |= CI_HDRC_FORCE_FULLSPEED;

- if (of_find_property(dev->of_node, "phy-clkgate-delay-us", NULL))
- of_property_read_u32(dev->of_node, "phy-clkgate-delay-us",
- &platdata->phy_clkgate_delay_us);
+ if (!of_property_read_u32(dev->of_node, "phy-clkgate-delay-us",
+ &platdata->phy_clkgate_delay_us))

platdata->itc_setting = 1;
- if (of_find_property(dev->of_node, "itc-setting", NULL)) {
- ret = of_property_read_u32(dev->of_node, "itc-setting",
- &platdata->itc_setting);
- if (ret) {
- dev_err(dev,
- "failed to get itc-setting\n");
- return ret;
- }
+
+ ret = of_property_read_u32(dev->of_node, "itc-setting",
+ &platdata->itc_setting);
+ if (ret && ret != -EINVAL) {
+ dev_err(dev, "failed to get itc-setting\n");
+ return ret;
}

- if (of_find_property(dev->of_node, "ahb-burst-config", NULL)) {
- ret = of_property_read_u32(dev->of_node, "ahb-burst-config",
- &platdata->ahb_burst_config);
- if (ret) {
- dev_err(dev,
- "failed to get ahb-burst-config\n");
- return ret;
- }
+ ret = of_property_read_u32(dev->of_node, "ahb-burst-config",
+ &platdata->ahb_burst_config);
+ if (!ret) {
platdata->flags |= CI_HDRC_OVERRIDE_AHB_BURST;
+ } else if (ret != -EINVAL) {
+ dev_err(dev, "failed to get ahb-burst-config\n");
+ return ret;
}

- if (of_find_property(dev->of_node, "tx-burst-size-dword", NULL)) {
- ret = of_property_read_u32(dev->of_node, "tx-burst-size-dword",
- &platdata->tx_burst_size);
- if (ret) {
- dev_err(dev,
- "failed to get tx-burst-size-dword\n");
- return ret;
- }
+ ret = of_property_read_u32(dev->of_node, "tx-burst-size-dword",
+ &platdata->tx_burst_size);
+ if (!ret) {
platdata->flags |= CI_HDRC_OVERRIDE_TX_BURST;
+ } else if (ret != -EINVAL) {
+ dev_err(dev, "failed to get tx-burst-size-dword\n");
+ return ret;
}

- if (of_find_property(dev->of_node, "rx-burst-size-dword", NULL)) {
- ret = of_property_read_u32(dev->of_node, "rx-burst-size-dword",
- &platdata->rx_burst_size);
- if (ret) {
- dev_err(dev,
- "failed to get rx-burst-size-dword\n");
- return ret;
- }
+ ret = of_property_read_u32(dev->of_node, "rx-burst-size-dword",
+ &platdata->rx_burst_size);
+ if (!ret) {
platdata->flags |= CI_HDRC_OVERRIDE_RX_BURST;
+ } else if (ret != -EINVAL) {
+ dev_err(dev, "failed to get rx-burst-size-dword\n");
+ return ret;
}

ext_id = ERR_PTR(-ENODEV);
--
1.9.1

2015-11-17 11:44:35

by Måns Rullgård

[permalink] [raw]
Subject: Re: [PATCH v2] usb: chipidea: removing of_find_property

Saurabh Sengar <[email protected]> writes:

> call to of_find_property() before of_property_read_u32() is unnecessary.
> of_property_read_u32() anyway calls to of_find_property() only.
>
> Signed-off-by: Saurabh Sengar <[email protected]>
> ---
> v2: removed pval variable
> drivers/usb/chipidea/core.c | 61 +++++++++++++++++++--------------------------
> 1 file changed, 26 insertions(+), 35 deletions(-)
>
> diff --git a/drivers/usb/chipidea/core.c b/drivers/usb/chipidea/core.c
> index 965d0e2..916a20d 100644
> --- a/drivers/usb/chipidea/core.c
> +++ b/drivers/usb/chipidea/core.c
> @@ -688,52 +688,43 @@ static int ci_get_platdata(struct device *dev,
> if (usb_get_maximum_speed(dev) == USB_SPEED_FULL)
> platdata->flags |= CI_HDRC_FORCE_FULLSPEED;
>
> - if (of_find_property(dev->of_node, "phy-clkgate-delay-us", NULL))
> - of_property_read_u32(dev->of_node, "phy-clkgate-delay-us",
> - &platdata->phy_clkgate_delay_us);
> + if (!of_property_read_u32(dev->of_node, "phy-clkgate-delay-us",
> + &platdata->phy_clkgate_delay_us))
>
> platdata->itc_setting = 1;

Drop that if(). Since we're ignoring of_property_read_u32() failing,
there is no need to test its return value, and code above incorrectly
makes the next statement conditional.

--
M?ns Rullg?rd
[email protected]

2015-11-17 11:52:38

by Saurabh Sengar

[permalink] [raw]
Subject: [PATCH v3] usb: chipidea: removing of_find_property

call to of_find_property() before of_property_read_u32() is unnecessary.
of_property_read_u32() anyway calls to of_find_property() only.

Signed-off-by: Saurabh Sengar <[email protected]>
---
v2 : removed pval variable
v3 : removed unnecessary if condition
drivers/usb/chipidea/core.c | 59 +++++++++++++++++++--------------------------
1 file changed, 25 insertions(+), 34 deletions(-)

diff --git a/drivers/usb/chipidea/core.c b/drivers/usb/chipidea/core.c
index 965d0e2..960a925 100644
--- a/drivers/usb/chipidea/core.c
+++ b/drivers/usb/chipidea/core.c
@@ -688,52 +688,43 @@ static int ci_get_platdata(struct device *dev,
if (usb_get_maximum_speed(dev) == USB_SPEED_FULL)
platdata->flags |= CI_HDRC_FORCE_FULLSPEED;

- if (of_find_property(dev->of_node, "phy-clkgate-delay-us", NULL))
- of_property_read_u32(dev->of_node, "phy-clkgate-delay-us",
+ of_property_read_u32(dev->of_node, "phy-clkgate-delay-us",
&platdata->phy_clkgate_delay_us);

platdata->itc_setting = 1;
- if (of_find_property(dev->of_node, "itc-setting", NULL)) {
- ret = of_property_read_u32(dev->of_node, "itc-setting",
- &platdata->itc_setting);
- if (ret) {
- dev_err(dev,
- "failed to get itc-setting\n");
- return ret;
- }
+
+ ret = of_property_read_u32(dev->of_node, "itc-setting",
+ &platdata->itc_setting);
+ if (ret && ret != -EINVAL) {
+ dev_err(dev, "failed to get itc-setting\n");
+ return ret;
}

- if (of_find_property(dev->of_node, "ahb-burst-config", NULL)) {
- ret = of_property_read_u32(dev->of_node, "ahb-burst-config",
- &platdata->ahb_burst_config);
- if (ret) {
- dev_err(dev,
- "failed to get ahb-burst-config\n");
- return ret;
- }
+ ret = of_property_read_u32(dev->of_node, "ahb-burst-config",
+ &platdata->ahb_burst_config);
+ if (!ret) {
platdata->flags |= CI_HDRC_OVERRIDE_AHB_BURST;
+ } else if (ret != -EINVAL) {
+ dev_err(dev, "failed to get ahb-burst-config\n");
+ return ret;
}

- if (of_find_property(dev->of_node, "tx-burst-size-dword", NULL)) {
- ret = of_property_read_u32(dev->of_node, "tx-burst-size-dword",
- &platdata->tx_burst_size);
- if (ret) {
- dev_err(dev,
- "failed to get tx-burst-size-dword\n");
- return ret;
- }
+ ret = of_property_read_u32(dev->of_node, "tx-burst-size-dword",
+ &platdata->tx_burst_size);
+ if (!ret) {
platdata->flags |= CI_HDRC_OVERRIDE_TX_BURST;
+ } else if (ret != -EINVAL) {
+ dev_err(dev, "failed to get tx-burst-size-dword\n");
+ return ret;
}

- if (of_find_property(dev->of_node, "rx-burst-size-dword", NULL)) {
- ret = of_property_read_u32(dev->of_node, "rx-burst-size-dword",
- &platdata->rx_burst_size);
- if (ret) {
- dev_err(dev,
- "failed to get rx-burst-size-dword\n");
- return ret;
- }
+ ret = of_property_read_u32(dev->of_node, "rx-burst-size-dword",
+ &platdata->rx_burst_size);
+ if (!ret) {
platdata->flags |= CI_HDRC_OVERRIDE_RX_BURST;
+ } else if (ret != -EINVAL) {
+ dev_err(dev, "failed to get rx-burst-size-dword\n");
+ return ret;
}

ext_id = ERR_PTR(-ENODEV);
--
1.9.1

2015-11-17 12:58:15

by Julia Lawall

[permalink] [raw]
Subject: Re: [PATCH v2] usb: chipidea: removing of_find_property

Please check. The code, with the blank line on line 692, looks strange.

julia

On Tue, 17 Nov 2015, kbuild test robot wrote:

> CC: [email protected]
> In-Reply-To: <[email protected]>
> TO: Saurabh Sengar <[email protected]>
> CC: [email protected], [email protected], [email protected], [email protected], [email protected], Saurabh Sengar <[email protected]>
> CC: Saurabh Sengar <[email protected]>
>
> Hi Saurabh,
>
> [auto build test WARNING on peter.chen-usb/ci-for-usb-next]
> [also build test WARNING on v4.4-rc1 next-20151117]
>
> url: https://github.com/0day-ci/linux/commits/Saurabh-Sengar/usb-chipidea-removing-of_find_property/20151117-194333
> base: https://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb ci-for-usb-next
> :::::: branch date: 68 minutes ago
> :::::: commit date: 68 minutes ago
>
> >> drivers/usb/chipidea/core.c:693:1-27: code aligned with following code on line 695
>
> git remote add linux-review https://github.com/0day-ci/linux
> git remote update linux-review
> git checkout 4375ac1189e900bbde912d31ec3bb66572c0784a
> vim +693 drivers/usb/chipidea/core.c
>
> 63863b98 Heikki Krogerus 2015-09-21 687 if (usb_get_maximum_speed(dev) == USB_SPEED_FULL)
> 4f6743d5 Michael Grzeschik 2014-02-19 688 platdata->flags |= CI_HDRC_FORCE_FULLSPEED;
> 4f6743d5 Michael Grzeschik 2014-02-19 689
> 4375ac11 Saurabh Sengar 2015-11-17 690 if (!of_property_read_u32(dev->of_node, "phy-clkgate-delay-us",
> 4375ac11 Saurabh Sengar 2015-11-17 691 &platdata->phy_clkgate_delay_us))
> 1fbf4628 Fabio Estevam 2015-09-08 692
> df96ed8d Peter Chen 2014-09-22 @693 platdata->itc_setting = 1;
> 4375ac11 Saurabh Sengar 2015-11-17 694
> df96ed8d Peter Chen 2014-09-22 @695 ret = of_property_read_u32(dev->of_node, "itc-setting",
> df96ed8d Peter Chen 2014-09-22 696 &platdata->itc_setting);
> 4375ac11 Saurabh Sengar 2015-11-17 697 if (ret && ret != -EINVAL) {
> 4375ac11 Saurabh Sengar 2015-11-17 698 dev_err(dev, "failed to get itc-setting\n");
>
> :::::: The code at line 693 was first introduced by commit
> :::::: df96ed8dced21426c54c7f69cf7513e75280957a usb: chipidea: introduce ITC tuning interface
>
> :::::: TO: Peter Chen <[email protected]>
> :::::: CC: Peter Chen <[email protected]>
>
> ---
> 0-DAY kernel test infrastructure Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all Intel Corporation
>

2015-11-17 13:11:36

by Saurabh Sengar

[permalink] [raw]
Subject: Re: [PATCH v2] usb: chipidea: removing of_find_property

Hi Julia,

You have used v2 of patch, I have sent v3 of patch too. 1:30 hour before
Please use version 3 as that is the latest.
version 3 : https://lkml.org/lkml/2015/11/17/243

Sorry for trouble.

Regards,
Saurabh

On 17 November 2015 at 18:28, Julia Lawall <[email protected]> wrote:
> Please check. The code, with the blank line on line 692, looks strange.
>
> julia
>
> On Tue, 17 Nov 2015, kbuild test robot wrote:
>
>> CC: [email protected]
>> In-Reply-To: <[email protected]>
>> TO: Saurabh Sengar <[email protected]>
>> CC: [email protected], [email protected], [email protected], [email protected], [email protected], Saurabh Sengar <[email protected]>
>> CC: Saurabh Sengar <[email protected]>
>>
>> Hi Saurabh,
>>
>> [auto build test WARNING on peter.chen-usb/ci-for-usb-next]
>> [also build test WARNING on v4.4-rc1 next-20151117]
>>
>> url: https://github.com/0day-ci/linux/commits/Saurabh-Sengar/usb-chipidea-removing-of_find_property/20151117-194333
>> base: https://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb ci-for-usb-next
>> :::::: branch date: 68 minutes ago
>> :::::: commit date: 68 minutes ago
>>
>> >> drivers/usb/chipidea/core.c:693:1-27: code aligned with following code on line 695
>>
>> git remote add linux-review https://github.com/0day-ci/linux
>> git remote update linux-review
>> git checkout 4375ac1189e900bbde912d31ec3bb66572c0784a
>> vim +693 drivers/usb/chipidea/core.c
>>
>> 63863b98 Heikki Krogerus 2015-09-21 687 if (usb_get_maximum_speed(dev) == USB_SPEED_FULL)
>> 4f6743d5 Michael Grzeschik 2014-02-19 688 platdata->flags |= CI_HDRC_FORCE_FULLSPEED;
>> 4f6743d5 Michael Grzeschik 2014-02-19 689
>> 4375ac11 Saurabh Sengar 2015-11-17 690 if (!of_property_read_u32(dev->of_node, "phy-clkgate-delay-us",
>> 4375ac11 Saurabh Sengar 2015-11-17 691 &platdata->phy_clkgate_delay_us))
>> 1fbf4628 Fabio Estevam 2015-09-08 692
>> df96ed8d Peter Chen 2014-09-22 @693 platdata->itc_setting = 1;
>> 4375ac11 Saurabh Sengar 2015-11-17 694
>> df96ed8d Peter Chen 2014-09-22 @695 ret = of_property_read_u32(dev->of_node, "itc-setting",
>> df96ed8d Peter Chen 2014-09-22 696 &platdata->itc_setting);
>> 4375ac11 Saurabh Sengar 2015-11-17 697 if (ret && ret != -EINVAL) {
>> 4375ac11 Saurabh Sengar 2015-11-17 698 dev_err(dev, "failed to get itc-setting\n");
>>
>> :::::: The code at line 693 was first introduced by commit
>> :::::: df96ed8dced21426c54c7f69cf7513e75280957a usb: chipidea: introduce ITC tuning interface
>>
>> :::::: TO: Peter Chen <[email protected]>
>> :::::: CC: Peter Chen <[email protected]>
>>
>> ---
>> 0-DAY kernel test infrastructure Open Source Technology Center
>> https://lists.01.org/pipermail/kbuild-all Intel Corporation
>>

2015-11-18 03:41:06

by Peter Chen

[permalink] [raw]
Subject: Re: [PATCH v3] usb: chipidea: removing of_find_property

On Tue, Nov 17, 2015 at 05:22:26PM +0530, Saurabh Sengar wrote:
> call to of_find_property() before of_property_read_u32() is unnecessary.
> of_property_read_u32() anyway calls to of_find_property() only.
>
> Signed-off-by: Saurabh Sengar <[email protected]>
> ---
> v2 : removed pval variable
> v3 : removed unnecessary if condition
> drivers/usb/chipidea/core.c | 59 +++++++++++++++++++--------------------------
> 1 file changed, 25 insertions(+), 34 deletions(-)
>
> diff --git a/drivers/usb/chipidea/core.c b/drivers/usb/chipidea/core.c
> index 965d0e2..960a925 100644
> --- a/drivers/usb/chipidea/core.c
> +++ b/drivers/usb/chipidea/core.c
> @@ -688,52 +688,43 @@ static int ci_get_platdata(struct device *dev,
> if (usb_get_maximum_speed(dev) == USB_SPEED_FULL)
> platdata->flags |= CI_HDRC_FORCE_FULLSPEED;
>
> - if (of_find_property(dev->of_node, "phy-clkgate-delay-us", NULL))
> - of_property_read_u32(dev->of_node, "phy-clkgate-delay-us",
> + of_property_read_u32(dev->of_node, "phy-clkgate-delay-us",
> &platdata->phy_clkgate_delay_us);
>
> platdata->itc_setting = 1;
> - if (of_find_property(dev->of_node, "itc-setting", NULL)) {
> - ret = of_property_read_u32(dev->of_node, "itc-setting",
> - &platdata->itc_setting);
> - if (ret) {
> - dev_err(dev,
> - "failed to get itc-setting\n");
> - return ret;
> - }
> +
> + ret = of_property_read_u32(dev->of_node, "itc-setting",
> + &platdata->itc_setting);
> + if (ret && ret != -EINVAL) {
> + dev_err(dev, "failed to get itc-setting\n");
> + return ret;
> }

For this one, you may not need to check return value, since
platdata->itc_setting is optional, and doesn't need to set
any flags if platdata->itc_setting is valid.

Other changes are ok for me.

Peter

>
> - if (of_find_property(dev->of_node, "ahb-burst-config", NULL)) {
> - ret = of_property_read_u32(dev->of_node, "ahb-burst-config",
> - &platdata->ahb_burst_config);
> - if (ret) {
> - dev_err(dev,
> - "failed to get ahb-burst-config\n");
> - return ret;
> - }
> + ret = of_property_read_u32(dev->of_node, "ahb-burst-config",
> + &platdata->ahb_burst_config);
> + if (!ret) {
> platdata->flags |= CI_HDRC_OVERRIDE_AHB_BURST;
> + } else if (ret != -EINVAL) {
> + dev_err(dev, "failed to get ahb-burst-config\n");
> + return ret;
> }
>
> - if (of_find_property(dev->of_node, "tx-burst-size-dword", NULL)) {
> - ret = of_property_read_u32(dev->of_node, "tx-burst-size-dword",
> - &platdata->tx_burst_size);
> - if (ret) {
> - dev_err(dev,
> - "failed to get tx-burst-size-dword\n");
> - return ret;
> - }
> + ret = of_property_read_u32(dev->of_node, "tx-burst-size-dword",
> + &platdata->tx_burst_size);
> + if (!ret) {
> platdata->flags |= CI_HDRC_OVERRIDE_TX_BURST;
> + } else if (ret != -EINVAL) {
> + dev_err(dev, "failed to get tx-burst-size-dword\n");
> + return ret;
> }
>
> - if (of_find_property(dev->of_node, "rx-burst-size-dword", NULL)) {
> - ret = of_property_read_u32(dev->of_node, "rx-burst-size-dword",
> - &platdata->rx_burst_size);
> - if (ret) {
> - dev_err(dev,
> - "failed to get rx-burst-size-dword\n");
> - return ret;
> - }
> + ret = of_property_read_u32(dev->of_node, "rx-burst-size-dword",
> + &platdata->rx_burst_size);
> + if (!ret) {
> platdata->flags |= CI_HDRC_OVERRIDE_RX_BURST;
> + } else if (ret != -EINVAL) {
> + dev_err(dev, "failed to get rx-burst-size-dword\n");
> + return ret;
> }
>
> ext_id = ERR_PTR(-ENODEV);
> --
> 1.9.1
>

--

Best Regards,
Peter Chen

2015-11-18 04:00:41

by Saurabh Sengar

[permalink] [raw]
Subject: Re: [PATCH v3] usb: chipidea: removing of_find_property

Hi Peter,

Yes itc_setting is still optional, in case dts does not pass this
property, return type will be -EINVAL and there would be no problem.
The function will break only if there is 'No data'(-ENODATA) or
'overflow'(-ENODATA) error for this property.
In case this is not OK, I will send a another patch(v4) as you have suggested.

Regards,
Saurabh

On 18 November 2015 at 09:08, Peter Chen <[email protected]> wrote:
> On Tue, Nov 17, 2015 at 05:22:26PM +0530, Saurabh Sengar wrote:
>> call to of_find_property() before of_property_read_u32() is unnecessary.
>> of_property_read_u32() anyway calls to of_find_property() only.
>>
>> Signed-off-by: Saurabh Sengar <[email protected]>
>> ---
>> v2 : removed pval variable
>> v3 : removed unnecessary if condition
>> drivers/usb/chipidea/core.c | 59 +++++++++++++++++++--------------------------
>> 1 file changed, 25 insertions(+), 34 deletions(-)
>>
>> diff --git a/drivers/usb/chipidea/core.c b/drivers/usb/chipidea/core.c
>> index 965d0e2..960a925 100644
>> --- a/drivers/usb/chipidea/core.c
>> +++ b/drivers/usb/chipidea/core.c
>> @@ -688,52 +688,43 @@ static int ci_get_platdata(struct device *dev,
>> if (usb_get_maximum_speed(dev) == USB_SPEED_FULL)
>> platdata->flags |= CI_HDRC_FORCE_FULLSPEED;
>>
>> - if (of_find_property(dev->of_node, "phy-clkgate-delay-us", NULL))
>> - of_property_read_u32(dev->of_node, "phy-clkgate-delay-us",
>> + of_property_read_u32(dev->of_node, "phy-clkgate-delay-us",
>> &platdata->phy_clkgate_delay_us);
>>
>> platdata->itc_setting = 1;
>> - if (of_find_property(dev->of_node, "itc-setting", NULL)) {
>> - ret = of_property_read_u32(dev->of_node, "itc-setting",
>> - &platdata->itc_setting);
>> - if (ret) {
>> - dev_err(dev,
>> - "failed to get itc-setting\n");
>> - return ret;
>> - }
>> +
>> + ret = of_property_read_u32(dev->of_node, "itc-setting",
>> + &platdata->itc_setting);
>> + if (ret && ret != -EINVAL) {
>> + dev_err(dev, "failed to get itc-setting\n");
>> + return ret;
>> }
>
> For this one, you may not need to check return value, since
> platdata->itc_setting is optional, and doesn't need to set
> any flags if platdata->itc_setting is valid.
>
> Other changes are ok for me.
>
> Peter
>
>>
>> - if (of_find_property(dev->of_node, "ahb-burst-config", NULL)) {
>> - ret = of_property_read_u32(dev->of_node, "ahb-burst-config",
>> - &platdata->ahb_burst_config);
>> - if (ret) {
>> - dev_err(dev,
>> - "failed to get ahb-burst-config\n");
>> - return ret;
>> - }
>> + ret = of_property_read_u32(dev->of_node, "ahb-burst-config",
>> + &platdata->ahb_burst_config);
>> + if (!ret) {
>> platdata->flags |= CI_HDRC_OVERRIDE_AHB_BURST;
>> + } else if (ret != -EINVAL) {
>> + dev_err(dev, "failed to get ahb-burst-config\n");
>> + return ret;
>> }
>>
>> - if (of_find_property(dev->of_node, "tx-burst-size-dword", NULL)) {
>> - ret = of_property_read_u32(dev->of_node, "tx-burst-size-dword",
>> - &platdata->tx_burst_size);
>> - if (ret) {
>> - dev_err(dev,
>> - "failed to get tx-burst-size-dword\n");
>> - return ret;
>> - }
>> + ret = of_property_read_u32(dev->of_node, "tx-burst-size-dword",
>> + &platdata->tx_burst_size);
>> + if (!ret) {
>> platdata->flags |= CI_HDRC_OVERRIDE_TX_BURST;
>> + } else if (ret != -EINVAL) {
>> + dev_err(dev, "failed to get tx-burst-size-dword\n");
>> + return ret;
>> }
>>
>> - if (of_find_property(dev->of_node, "rx-burst-size-dword", NULL)) {
>> - ret = of_property_read_u32(dev->of_node, "rx-burst-size-dword",
>> - &platdata->rx_burst_size);
>> - if (ret) {
>> - dev_err(dev,
>> - "failed to get rx-burst-size-dword\n");
>> - return ret;
>> - }
>> + ret = of_property_read_u32(dev->of_node, "rx-burst-size-dword",
>> + &platdata->rx_burst_size);
>> + if (!ret) {
>> platdata->flags |= CI_HDRC_OVERRIDE_RX_BURST;
>> + } else if (ret != -EINVAL) {
>> + dev_err(dev, "failed to get rx-burst-size-dword\n");
>> + return ret;
>> }
>>
>> ext_id = ERR_PTR(-ENODEV);
>> --
>> 1.9.1
>>
>
> --
>
> Best Regards,
> Peter Chen

2015-11-18 04:10:31

by Saurabh Sengar

[permalink] [raw]
Subject: [PATCH v4] usb: chipidea: removing of_find_property

call to of_find_property() before of_property_read_u32() is unnecessary.
of_property_read_u32() anyway calls to of_find_property() only.

Signed-off-by: Saurabh Sengar <[email protected]>
---
v4 : removed return type check for optional property 'itc-setting'

drivers/usb/chipidea/core.c | 57 +++++++++++++++++----------------------------
1 file changed, 22 insertions(+), 35 deletions(-)

diff --git a/drivers/usb/chipidea/core.c b/drivers/usb/chipidea/core.c
index 965d0e2..3d1c3c5 100644
--- a/drivers/usb/chipidea/core.c
+++ b/drivers/usb/chipidea/core.c
@@ -688,52 +688,39 @@ static int ci_get_platdata(struct device *dev,
if (usb_get_maximum_speed(dev) == USB_SPEED_FULL)
platdata->flags |= CI_HDRC_FORCE_FULLSPEED;

- if (of_find_property(dev->of_node, "phy-clkgate-delay-us", NULL))
- of_property_read_u32(dev->of_node, "phy-clkgate-delay-us",
+ of_property_read_u32(dev->of_node, "phy-clkgate-delay-us",
&platdata->phy_clkgate_delay_us);

platdata->itc_setting = 1;
- if (of_find_property(dev->of_node, "itc-setting", NULL)) {
- ret = of_property_read_u32(dev->of_node, "itc-setting",
- &platdata->itc_setting);
- if (ret) {
- dev_err(dev,
- "failed to get itc-setting\n");
- return ret;
- }
- }

- if (of_find_property(dev->of_node, "ahb-burst-config", NULL)) {
- ret = of_property_read_u32(dev->of_node, "ahb-burst-config",
- &platdata->ahb_burst_config);
- if (ret) {
- dev_err(dev,
- "failed to get ahb-burst-config\n");
- return ret;
- }
+ of_property_read_u32(dev->of_node, "itc-setting",
+ &platdata->itc_setting);
+
+ ret = of_property_read_u32(dev->of_node, "ahb-burst-config",
+ &platdata->ahb_burst_config);
+ if (!ret) {
platdata->flags |= CI_HDRC_OVERRIDE_AHB_BURST;
+ } else if (ret != -EINVAL) {
+ dev_err(dev, "failed to get ahb-burst-config\n");
+ return ret;
}

- if (of_find_property(dev->of_node, "tx-burst-size-dword", NULL)) {
- ret = of_property_read_u32(dev->of_node, "tx-burst-size-dword",
- &platdata->tx_burst_size);
- if (ret) {
- dev_err(dev,
- "failed to get tx-burst-size-dword\n");
- return ret;
- }
+ ret = of_property_read_u32(dev->of_node, "tx-burst-size-dword",
+ &platdata->tx_burst_size);
+ if (!ret) {
platdata->flags |= CI_HDRC_OVERRIDE_TX_BURST;
+ } else if (ret != -EINVAL) {
+ dev_err(dev, "failed to get tx-burst-size-dword\n");
+ return ret;
}

- if (of_find_property(dev->of_node, "rx-burst-size-dword", NULL)) {
- ret = of_property_read_u32(dev->of_node, "rx-burst-size-dword",
- &platdata->rx_burst_size);
- if (ret) {
- dev_err(dev,
- "failed to get rx-burst-size-dword\n");
- return ret;
- }
+ ret = of_property_read_u32(dev->of_node, "rx-burst-size-dword",
+ &platdata->rx_burst_size);
+ if (!ret) {
platdata->flags |= CI_HDRC_OVERRIDE_RX_BURST;
+ } else if (ret != -EINVAL) {
+ dev_err(dev, "failed to get rx-burst-size-dword\n");
+ return ret;
}

ext_id = ERR_PTR(-ENODEV);
--
1.9.1

2015-11-18 05:01:40

by Peter Chen

[permalink] [raw]
Subject: Re: [PATCH v3] usb: chipidea: removing of_find_property

On Wed, Nov 18, 2015 at 09:30:39AM +0530, Saurabh Sengar wrote:
> Hi Peter,
>
> Yes itc_setting is still optional, in case dts does not pass this
> property, return type will be -EINVAL and there would be no problem.
> The function will break only if there is 'No data'(-ENODATA) or
> 'overflow'(-ENODATA) error for this property.

If there is an error, the variable pass to of_property_read_u32 will
not be changed.

Peter
> In case this is not OK, I will send a another patch(v4) as you have suggested.
>
> Regards,
> Saurabh
>
> On 18 November 2015 at 09:08, Peter Chen <[email protected]> wrote:
> > On Tue, Nov 17, 2015 at 05:22:26PM +0530, Saurabh Sengar wrote:
> >> call to of_find_property() before of_property_read_u32() is unnecessary.
> >> of_property_read_u32() anyway calls to of_find_property() only.
> >>
> >> Signed-off-by: Saurabh Sengar <[email protected]>
> >> ---
> >> v2 : removed pval variable
> >> v3 : removed unnecessary if condition
> >> drivers/usb/chipidea/core.c | 59 +++++++++++++++++++--------------------------
> >> 1 file changed, 25 insertions(+), 34 deletions(-)
> >>
> >> diff --git a/drivers/usb/chipidea/core.c b/drivers/usb/chipidea/core.c
> >> index 965d0e2..960a925 100644
> >> --- a/drivers/usb/chipidea/core.c
> >> +++ b/drivers/usb/chipidea/core.c
> >> @@ -688,52 +688,43 @@ static int ci_get_platdata(struct device *dev,
> >> if (usb_get_maximum_speed(dev) == USB_SPEED_FULL)
> >> platdata->flags |= CI_HDRC_FORCE_FULLSPEED;
> >>
> >> - if (of_find_property(dev->of_node, "phy-clkgate-delay-us", NULL))
> >> - of_property_read_u32(dev->of_node, "phy-clkgate-delay-us",
> >> + of_property_read_u32(dev->of_node, "phy-clkgate-delay-us",
> >> &platdata->phy_clkgate_delay_us);
> >>
> >> platdata->itc_setting = 1;
> >> - if (of_find_property(dev->of_node, "itc-setting", NULL)) {
> >> - ret = of_property_read_u32(dev->of_node, "itc-setting",
> >> - &platdata->itc_setting);
> >> - if (ret) {
> >> - dev_err(dev,
> >> - "failed to get itc-setting\n");
> >> - return ret;
> >> - }
> >> +
> >> + ret = of_property_read_u32(dev->of_node, "itc-setting",
> >> + &platdata->itc_setting);
> >> + if (ret && ret != -EINVAL) {
> >> + dev_err(dev, "failed to get itc-setting\n");
> >> + return ret;
> >> }
> >
> > For this one, you may not need to check return value, since
> > platdata->itc_setting is optional, and doesn't need to set
> > any flags if platdata->itc_setting is valid.
> >
> > Other changes are ok for me.
> >
> > Peter
> >
> >>
> >> - if (of_find_property(dev->of_node, "ahb-burst-config", NULL)) {
> >> - ret = of_property_read_u32(dev->of_node, "ahb-burst-config",
> >> - &platdata->ahb_burst_config);
> >> - if (ret) {
> >> - dev_err(dev,
> >> - "failed to get ahb-burst-config\n");
> >> - return ret;
> >> - }
> >> + ret = of_property_read_u32(dev->of_node, "ahb-burst-config",
> >> + &platdata->ahb_burst_config);
> >> + if (!ret) {
> >> platdata->flags |= CI_HDRC_OVERRIDE_AHB_BURST;
> >> + } else if (ret != -EINVAL) {
> >> + dev_err(dev, "failed to get ahb-burst-config\n");
> >> + return ret;
> >> }
> >>
> >> - if (of_find_property(dev->of_node, "tx-burst-size-dword", NULL)) {
> >> - ret = of_property_read_u32(dev->of_node, "tx-burst-size-dword",
> >> - &platdata->tx_burst_size);
> >> - if (ret) {
> >> - dev_err(dev,
> >> - "failed to get tx-burst-size-dword\n");
> >> - return ret;
> >> - }
> >> + ret = of_property_read_u32(dev->of_node, "tx-burst-size-dword",
> >> + &platdata->tx_burst_size);
> >> + if (!ret) {
> >> platdata->flags |= CI_HDRC_OVERRIDE_TX_BURST;
> >> + } else if (ret != -EINVAL) {
> >> + dev_err(dev, "failed to get tx-burst-size-dword\n");
> >> + return ret;
> >> }
> >>
> >> - if (of_find_property(dev->of_node, "rx-burst-size-dword", NULL)) {
> >> - ret = of_property_read_u32(dev->of_node, "rx-burst-size-dword",
> >> - &platdata->rx_burst_size);
> >> - if (ret) {
> >> - dev_err(dev,
> >> - "failed to get rx-burst-size-dword\n");
> >> - return ret;
> >> - }
> >> + ret = of_property_read_u32(dev->of_node, "rx-burst-size-dword",
> >> + &platdata->rx_burst_size);
> >> + if (!ret) {
> >> platdata->flags |= CI_HDRC_OVERRIDE_RX_BURST;
> >> + } else if (ret != -EINVAL) {
> >> + dev_err(dev, "failed to get rx-burst-size-dword\n");
> >> + return ret;
> >> }
> >>
> >> ext_id = ERR_PTR(-ENODEV);
> >> --
> >> 1.9.1
> >>
> >
> > --
> >
> > Best Regards,
> > Peter Chen

--

Best Regards,
Peter Chen

2015-11-18 06:08:10

by Peter Chen

[permalink] [raw]
Subject: Re: [PATCH v4] usb: chipidea: removing of_find_property

On Wed, Nov 18, 2015 at 09:40:12AM +0530, Saurabh Sengar wrote:
> call to of_find_property() before of_property_read_u32() is unnecessary.
> of_property_read_u32() anyway calls to of_find_property() only.
>
> Signed-off-by: Saurabh Sengar <[email protected]>
> ---
> v4 : removed return type check for optional property 'itc-setting'
>
> drivers/usb/chipidea/core.c | 57 +++++++++++++++++----------------------------
> 1 file changed, 22 insertions(+), 35 deletions(-)
>
> diff --git a/drivers/usb/chipidea/core.c b/drivers/usb/chipidea/core.c
> index 965d0e2..3d1c3c5 100644
> --- a/drivers/usb/chipidea/core.c
> +++ b/drivers/usb/chipidea/core.c
> @@ -688,52 +688,39 @@ static int ci_get_platdata(struct device *dev,
> if (usb_get_maximum_speed(dev) == USB_SPEED_FULL)
> platdata->flags |= CI_HDRC_FORCE_FULLSPEED;
>
> - if (of_find_property(dev->of_node, "phy-clkgate-delay-us", NULL))
> - of_property_read_u32(dev->of_node, "phy-clkgate-delay-us",
> + of_property_read_u32(dev->of_node, "phy-clkgate-delay-us",
> &platdata->phy_clkgate_delay_us);
>
> platdata->itc_setting = 1;
> - if (of_find_property(dev->of_node, "itc-setting", NULL)) {
> - ret = of_property_read_u32(dev->of_node, "itc-setting",
> - &platdata->itc_setting);
> - if (ret) {
> - dev_err(dev,
> - "failed to get itc-setting\n");
> - return ret;
> - }
> - }
>
> - if (of_find_property(dev->of_node, "ahb-burst-config", NULL)) {
> - ret = of_property_read_u32(dev->of_node, "ahb-burst-config",
> - &platdata->ahb_burst_config);
> - if (ret) {
> - dev_err(dev,
> - "failed to get ahb-burst-config\n");
> - return ret;
> - }
> + of_property_read_u32(dev->of_node, "itc-setting",
> + &platdata->itc_setting);
> +
> + ret = of_property_read_u32(dev->of_node, "ahb-burst-config",
> + &platdata->ahb_burst_config);
> + if (!ret) {
> platdata->flags |= CI_HDRC_OVERRIDE_AHB_BURST;
> + } else if (ret != -EINVAL) {
> + dev_err(dev, "failed to get ahb-burst-config\n");
> + return ret;
> }

Sorry, one more comment, why we don't quit if the 'ret' is other error
value?

Peter

>
> - if (of_find_property(dev->of_node, "tx-burst-size-dword", NULL)) {
> - ret = of_property_read_u32(dev->of_node, "tx-burst-size-dword",
> - &platdata->tx_burst_size);
> - if (ret) {
> - dev_err(dev,
> - "failed to get tx-burst-size-dword\n");
> - return ret;
> - }
> + ret = of_property_read_u32(dev->of_node, "tx-burst-size-dword",
> + &platdata->tx_burst_size);
> + if (!ret) {
> platdata->flags |= CI_HDRC_OVERRIDE_TX_BURST;
> + } else if (ret != -EINVAL) {
> + dev_err(dev, "failed to get tx-burst-size-dword\n");
> + return ret;
> }
>
> - if (of_find_property(dev->of_node, "rx-burst-size-dword", NULL)) {
> - ret = of_property_read_u32(dev->of_node, "rx-burst-size-dword",
> - &platdata->rx_burst_size);
> - if (ret) {
> - dev_err(dev,
> - "failed to get rx-burst-size-dword\n");
> - return ret;
> - }
> + ret = of_property_read_u32(dev->of_node, "rx-burst-size-dword",
> + &platdata->rx_burst_size);
> + if (!ret) {
> platdata->flags |= CI_HDRC_OVERRIDE_RX_BURST;
> + } else if (ret != -EINVAL) {
> + dev_err(dev, "failed to get rx-burst-size-dword\n");
> + return ret;
> }
>
> ext_id = ERR_PTR(-ENODEV);
> --
> 1.9.1
>

--

Best Regards,
Peter Chen

2015-11-18 06:18:38

by Saurabh Sengar

[permalink] [raw]
Subject: Re: [PATCH v4] usb: chipidea: removing of_find_property

On 18 November 2015 at 11:35, Peter Chen <[email protected]> wrote:
> On Wed, Nov 18, 2015 at 09:40:12AM +0530, Saurabh Sengar wrote:
>> call to of_find_property() before of_property_read_u32() is unnecessary.
>> of_property_read_u32() anyway calls to of_find_property() only.
>>
>> Signed-off-by: Saurabh Sengar <[email protected]>
>> ---
>> v4 : removed return type check for optional property 'itc-setting'
>>
>> drivers/usb/chipidea/core.c | 57 +++++++++++++++++----------------------------
>> 1 file changed, 22 insertions(+), 35 deletions(-)
>>
>> diff --git a/drivers/usb/chipidea/core.c b/drivers/usb/chipidea/core.c
>> index 965d0e2..3d1c3c5 100644
>> --- a/drivers/usb/chipidea/core.c
>> +++ b/drivers/usb/chipidea/core.c
>> @@ -688,52 +688,39 @@ static int ci_get_platdata(struct device *dev,
>> if (usb_get_maximum_speed(dev) == USB_SPEED_FULL)
>> platdata->flags |= CI_HDRC_FORCE_FULLSPEED;
>>
>> - if (of_find_property(dev->of_node, "phy-clkgate-delay-us", NULL))
>> - of_property_read_u32(dev->of_node, "phy-clkgate-delay-us",
>> + of_property_read_u32(dev->of_node, "phy-clkgate-delay-us",
>> &platdata->phy_clkgate_delay_us);
>>
>> platdata->itc_setting = 1;
>> - if (of_find_property(dev->of_node, "itc-setting", NULL)) {
>> - ret = of_property_read_u32(dev->of_node, "itc-setting",
>> - &platdata->itc_setting);
>> - if (ret) {
>> - dev_err(dev,
>> - "failed to get itc-setting\n");
>> - return ret;
>> - }
>> - }
>>
>> - if (of_find_property(dev->of_node, "ahb-burst-config", NULL)) {
>> - ret = of_property_read_u32(dev->of_node, "ahb-burst-config",
>> - &platdata->ahb_burst_config);
>> - if (ret) {
>> - dev_err(dev,
>> - "failed to get ahb-burst-config\n");
>> - return ret;
>> - }
>> + of_property_read_u32(dev->of_node, "itc-setting",
>> + &platdata->itc_setting);
>> +
>> + ret = of_property_read_u32(dev->of_node, "ahb-burst-config",
>> + &platdata->ahb_burst_config);
>> + if (!ret) {
>> platdata->flags |= CI_HDRC_OVERRIDE_AHB_BURST;
>> + } else if (ret != -EINVAL) {
>> + dev_err(dev, "failed to get ahb-burst-config\n");
>> + return ret;
>> }

>Sorry, one more comment, why we don't quit if the 'ret' is other error
>value?
>
> Peter

We quit if error is anything other then -EINVAL.
In case of -EINVAL, it means we are deliberating ignoring that
property thus left it.
Also the previous functionality was like this when we were using
of_find_property().
Please let me know if this need to be changed, that we need to return
in all kind of error, I will fix it and send it in patch v5.


Regards,
Saurabh

2015-11-18 07:27:30

by Peter Chen

[permalink] [raw]
Subject: Re: [PATCH v4] usb: chipidea: removing of_find_property

On Wed, Nov 18, 2015 at 11:48:36AM +0530, Saurabh Sengar wrote:
> On 18 November 2015 at 11:35, Peter Chen <[email protected]> wrote:
> > On Wed, Nov 18, 2015 at 09:40:12AM +0530, Saurabh Sengar wrote:
> >> call to of_find_property() before of_property_read_u32() is unnecessary.
> >> of_property_read_u32() anyway calls to of_find_property() only.
> >>
> >> Signed-off-by: Saurabh Sengar <[email protected]>
> >> ---
> >> v4 : removed return type check for optional property 'itc-setting'
> >>
> >> drivers/usb/chipidea/core.c | 57 +++++++++++++++++----------------------------
> >> 1 file changed, 22 insertions(+), 35 deletions(-)
> >>
> >> diff --git a/drivers/usb/chipidea/core.c b/drivers/usb/chipidea/core.c
> >> index 965d0e2..3d1c3c5 100644
> >> --- a/drivers/usb/chipidea/core.c
> >> +++ b/drivers/usb/chipidea/core.c
> >> @@ -688,52 +688,39 @@ static int ci_get_platdata(struct device *dev,
> >> if (usb_get_maximum_speed(dev) == USB_SPEED_FULL)
> >> platdata->flags |= CI_HDRC_FORCE_FULLSPEED;
> >>
> >> - if (of_find_property(dev->of_node, "phy-clkgate-delay-us", NULL))
> >> - of_property_read_u32(dev->of_node, "phy-clkgate-delay-us",
> >> + of_property_read_u32(dev->of_node, "phy-clkgate-delay-us",
> >> &platdata->phy_clkgate_delay_us);
> >>
> >> platdata->itc_setting = 1;
> >> - if (of_find_property(dev->of_node, "itc-setting", NULL)) {
> >> - ret = of_property_read_u32(dev->of_node, "itc-setting",
> >> - &platdata->itc_setting);
> >> - if (ret) {
> >> - dev_err(dev,
> >> - "failed to get itc-setting\n");
> >> - return ret;
> >> - }
> >> - }
> >>
> >> - if (of_find_property(dev->of_node, "ahb-burst-config", NULL)) {
> >> - ret = of_property_read_u32(dev->of_node, "ahb-burst-config",
> >> - &platdata->ahb_burst_config);
> >> - if (ret) {
> >> - dev_err(dev,
> >> - "failed to get ahb-burst-config\n");
> >> - return ret;
> >> - }
> >> + of_property_read_u32(dev->of_node, "itc-setting",
> >> + &platdata->itc_setting);
> >> +
> >> + ret = of_property_read_u32(dev->of_node, "ahb-burst-config",
> >> + &platdata->ahb_burst_config);
> >> + if (!ret) {
> >> platdata->flags |= CI_HDRC_OVERRIDE_AHB_BURST;
> >> + } else if (ret != -EINVAL) {
> >> + dev_err(dev, "failed to get ahb-burst-config\n");
> >> + return ret;
> >> }
>
> >Sorry, one more comment, why we don't quit if the 'ret' is other error
> >value?
> >
> > Peter
>
> We quit if error is anything other then -EINVAL.
> In case of -EINVAL, it means we are deliberating ignoring that
> property thus left it.
> Also the previous functionality was like this when we were using
> of_find_property().
> Please let me know if this need to be changed, that we need to return
> in all kind of error, I will fix it and send it in patch v5.
>

I am clear now, I will queue it.

--

Best Regards,
Peter Chen

2015-11-18 07:41:47

by Saurabh Sengar

[permalink] [raw]
Subject: Re: [PATCH v4] usb: chipidea: removing of_find_property

On 18 November 2015 at 12:54, Peter Chen <[email protected]> wrote:
> I am clear now, I will queue it.


Thank you