* [PATCH 1/1] phy: rockchip: naneng-combphy: compatible with old DT for RK3568
@ 2025-01-06 7:00 Chukun Pan
2025-01-06 7:33 ` Philipp Zabel
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Chukun Pan @ 2025-01-06 7:00 UTC (permalink / raw)
To: Vinod Koul
Cc: Heiko Stuebner, Philipp Zabel, Kishon Vijay Abraham I,
Jianfeng Liu, linux-arm-kernel, linux-rockchip, linux-phy,
linux-kernel, Chukun Pan
The device tree of RK3568 did not specify reset-names before.
So add fallback to old behaviour to be compatible with old DT.
Fixes: fbcbffbac994 ("phy: rockchip: naneng-combphy: fix phy reset")
Cc: Jianfeng Liu <liujianfeng1994@gmail.com>
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
---
drivers/phy/rockchip/phy-rockchip-naneng-combphy.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/phy/rockchip/phy-rockchip-naneng-combphy.c b/drivers/phy/rockchip/phy-rockchip-naneng-combphy.c
index a1532ef8bbe9..372f5c07b5bd 100644
--- a/drivers/phy/rockchip/phy-rockchip-naneng-combphy.c
+++ b/drivers/phy/rockchip/phy-rockchip-naneng-combphy.c
@@ -325,6 +325,10 @@ static int rockchip_combphy_parse_dt(struct device *dev, struct rockchip_combphy
priv->ext_refclk = device_property_present(dev, "rockchip,ext-refclk");
priv->phy_rst = devm_reset_control_get(dev, "phy");
+ /* fallback to old behaviour */
+ if (IS_ERR(ERR_PTR(priv->phy_rst)))
+ priv->phy_rst = devm_reset_control_array_get_exclusive(dev);
+
if (IS_ERR(priv->phy_rst))
return dev_err_probe(dev, PTR_ERR(priv->phy_rst), "failed to get phy reset\n");
--
2.25.1
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 1/1] phy: rockchip: naneng-combphy: compatible with old DT for RK3568
2025-01-06 7:00 [PATCH 1/1] phy: rockchip: naneng-combphy: compatible with old DT for RK3568 Chukun Pan
@ 2025-01-06 7:33 ` Philipp Zabel
2025-01-06 7:50 ` [PATCH 1/2] " Chukun Pan
2025-01-06 12:03 ` kernel test robot
2025-01-06 21:37 ` kernel test robot
2 siblings, 1 reply; 6+ messages in thread
From: Philipp Zabel @ 2025-01-06 7:33 UTC (permalink / raw)
To: Chukun Pan, Vinod Koul
Cc: Heiko Stuebner, Kishon Vijay Abraham I, Jianfeng Liu,
linux-arm-kernel, linux-rockchip, linux-phy, linux-kernel
On Mo, 2025-01-06 at 15:00 +0800, Chukun Pan wrote:
> The device tree of RK3568 did not specify reset-names before.
> So add fallback to old behaviour to be compatible with old DT.
>
> Fixes: fbcbffbac994 ("phy: rockchip: naneng-combphy: fix phy reset")
> Cc: Jianfeng Liu <liujianfeng1994@gmail.com>
> Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
> ---
> drivers/phy/rockchip/phy-rockchip-naneng-combphy.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/phy/rockchip/phy-rockchip-naneng-combphy.c b/drivers/phy/rockchip/phy-rockchip-naneng-combphy.c
> index a1532ef8bbe9..372f5c07b5bd 100644
> --- a/drivers/phy/rockchip/phy-rockchip-naneng-combphy.c
> +++ b/drivers/phy/rockchip/phy-rockchip-naneng-combphy.c
> @@ -325,6 +325,10 @@ static int rockchip_combphy_parse_dt(struct device *dev, struct rockchip_combphy
> priv->ext_refclk = device_property_present(dev, "rockchip,ext-refclk");
>
> priv->phy_rst = devm_reset_control_get(dev, "phy");
This should be devm_reset_control_get_exclusive().
> + /* fallback to old behaviour */
> + if (IS_ERR(ERR_PTR(priv->phy_rst)))
Drop superfluous ERR_PTR().
> + priv->phy_rst = devm_reset_control_array_get_exclusive(dev);
> +
I'd drop the empty line, keep error handling close.
> if (IS_ERR(priv->phy_rst))
> return dev_err_probe(dev, PTR_ERR(priv->phy_rst), "failed to get phy reset\n");
>
regards
Philipp
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] Re: [PATCH 1/1] phy: rockchip: naneng-combphy: compatible with old DT for RK3568
2025-01-06 7:33 ` Philipp Zabel
@ 2025-01-06 7:50 ` Chukun Pan
2025-01-06 9:19 ` Philipp Zabel
0 siblings, 1 reply; 6+ messages in thread
From: Chukun Pan @ 2025-01-06 7:50 UTC (permalink / raw)
To: p.zabel
Cc: amadeus, heiko, kishon, linux-arm-kernel, linux-kernel, linux-phy,
linux-rockchip, liujianfeng1994, vkoul
Hi,
>> diff --git a/drivers/phy/rockchip/phy-rockchip-naneng-combphy.c b/drivers/phy/rockchip/phy-rockchip-naneng-combphy.c
>> index a1532ef8bbe9..372f5c07b5bd 100644
>> --- a/drivers/phy/rockchip/phy-rockchip-naneng-combphy.c
>> +++ b/drivers/phy/rockchip/phy-rockchip-naneng-combphy.c
>> @@ -325,6 +325,10 @@ static int rockchip_combphy_parse_dt(struct device *dev, struct rockchip_combphy
>> priv->ext_refclk = device_property_present(dev, "rockchip,ext-refclk");
>>
>> priv->phy_rst = devm_reset_control_get(dev, "phy");
>
> This should be devm_reset_control_get_exclusive().
I will change this.
>> + /* fallback to old behaviour */
>> + if (IS_ERR(ERR_PTR(priv->phy_rst)))
>
> Drop superfluous ERR_PTR().
I think it would be better if I changed it to this?
if (PTR_ERR(priv->phy_rst) == -ENOENT)
priv->phy_rst = devm_reset_control_array_get_exclusive(dev);
Thanks,
Chukun
--
2.25.1
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] Re: [PATCH 1/1] phy: rockchip: naneng-combphy: compatible with old DT for RK3568
2025-01-06 7:50 ` [PATCH 1/2] " Chukun Pan
@ 2025-01-06 9:19 ` Philipp Zabel
0 siblings, 0 replies; 6+ messages in thread
From: Philipp Zabel @ 2025-01-06 9:19 UTC (permalink / raw)
To: Chukun Pan
Cc: heiko, kishon, linux-arm-kernel, linux-kernel, linux-phy,
linux-rockchip, liujianfeng1994, vkoul
On Mo, 2025-01-06 at 15:50 +0800, Chukun Pan wrote:
> Hi,
> > > diff --git a/drivers/phy/rockchip/phy-rockchip-naneng-combphy.c b/drivers/phy/rockchip/phy-rockchip-naneng-combphy.c
> > > index a1532ef8bbe9..372f5c07b5bd 100644
> > > --- a/drivers/phy/rockchip/phy-rockchip-naneng-combphy.c
> > > +++ b/drivers/phy/rockchip/phy-rockchip-naneng-combphy.c
> > > @@ -325,6 +325,10 @@ static int rockchip_combphy_parse_dt(struct device *dev, struct rockchip_combphy
> > > priv->ext_refclk = device_property_present(dev, "rockchip,ext-refclk");
> > >
> > > priv->phy_rst = devm_reset_control_get(dev, "phy");
> >
> > This should be devm_reset_control_get_exclusive().
>
> I will change this.
>
> > > + /* fallback to old behaviour */
> > > + if (IS_ERR(ERR_PTR(priv->phy_rst)))
> >
> > Drop superfluous ERR_PTR().
>
> I think it would be better if I changed it to this?
>
> if (PTR_ERR(priv->phy_rst) == -ENOENT)
> priv->phy_rst = devm_reset_control_array_get_exclusive(dev);
I agree, otherwise this would ignore a broken reset-names property in
the device tree. When the resets property is broken, the fallback would
fail anyway.
regards
Philipp
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/1] phy: rockchip: naneng-combphy: compatible with old DT for RK3568
2025-01-06 7:00 [PATCH 1/1] phy: rockchip: naneng-combphy: compatible with old DT for RK3568 Chukun Pan
2025-01-06 7:33 ` Philipp Zabel
@ 2025-01-06 12:03 ` kernel test robot
2025-01-06 21:37 ` kernel test robot
2 siblings, 0 replies; 6+ messages in thread
From: kernel test robot @ 2025-01-06 12:03 UTC (permalink / raw)
To: Chukun Pan, Vinod Koul
Cc: llvm, oe-kbuild-all, Heiko Stuebner, Philipp Zabel,
Kishon Vijay Abraham I, Jianfeng Liu, linux-arm-kernel,
linux-rockchip, linux-phy, linux-kernel, Chukun Pan
Hi Chukun,
kernel test robot noticed the following build errors:
[auto build test ERROR on linus/master]
[also build test ERROR on v6.13-rc6 next-20250106]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Chukun-Pan/phy-rockchip-naneng-combphy-compatible-with-old-DT-for-RK3568/20250106-150311
base: linus/master
patch link: https://lore.kernel.org/r/20250106070000.605284-1-amadeus%40jmu.edu.cn
patch subject: [PATCH 1/1] phy: rockchip: naneng-combphy: compatible with old DT for RK3568
config: arm64-randconfig-004-20250106 (https://download.01.org/0day-ci/archive/20250106/202501061921.ToV59CNC-lkp@intel.com/config)
compiler: clang version 20.0.0git (https://github.com/llvm/llvm-project 096551537b2a747a3387726ca618ceeb3950e9bc)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250106/202501061921.ToV59CNC-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202501061921.ToV59CNC-lkp@intel.com/
All errors (new ones prefixed by >>):
In file included from drivers/phy/rockchip/phy-rockchip-naneng-combphy.c:12:
In file included from include/linux/phy/phy.h:17:
In file included from include/linux/regulator/consumer.h:35:
In file included from include/linux/suspend.h:5:
In file included from include/linux/swap.h:9:
In file included from include/linux/memcontrol.h:21:
In file included from include/linux/mm.h:2224:
include/linux/vmstat.h:504:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
504 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
505 | item];
| ~~~~
include/linux/vmstat.h:511:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
511 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
512 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:524:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
524 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
525 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
>> drivers/phy/rockchip/phy-rockchip-naneng-combphy.c:314:21: error: incompatible pointer to integer conversion passing 'struct reset_control *' to parameter of type 'long' [-Wint-conversion]
314 | if (IS_ERR(ERR_PTR(priv->phy_rst)))
| ^~~~~~~~~~~~~
include/linux/err.h:39:48: note: passing argument to parameter 'error' here
39 | static inline void * __must_check ERR_PTR(long error)
| ^
3 warnings and 1 error generated.
vim +314 drivers/phy/rockchip/phy-rockchip-naneng-combphy.c
274
275 static int rockchip_combphy_parse_dt(struct device *dev, struct rockchip_combphy_priv *priv)
276 {
277 int i;
278
279 priv->num_clks = devm_clk_bulk_get_all(dev, &priv->clks);
280 if (priv->num_clks < 1)
281 return -EINVAL;
282
283 priv->refclk = NULL;
284 for (i = 0; i < priv->num_clks; i++) {
285 if (!strncmp(priv->clks[i].id, "ref", 3)) {
286 priv->refclk = priv->clks[i].clk;
287 break;
288 }
289 }
290
291 if (!priv->refclk) {
292 dev_err(dev, "no refclk found\n");
293 return -EINVAL;
294 }
295
296 priv->pipe_grf = syscon_regmap_lookup_by_phandle(dev->of_node, "rockchip,pipe-grf");
297 if (IS_ERR(priv->pipe_grf)) {
298 dev_err(dev, "failed to find peri_ctrl pipe-grf regmap\n");
299 return PTR_ERR(priv->pipe_grf);
300 }
301
302 priv->phy_grf = syscon_regmap_lookup_by_phandle(dev->of_node, "rockchip,pipe-phy-grf");
303 if (IS_ERR(priv->phy_grf)) {
304 dev_err(dev, "failed to find peri_ctrl pipe-phy-grf regmap\n");
305 return PTR_ERR(priv->phy_grf);
306 }
307
308 priv->enable_ssc = device_property_present(dev, "rockchip,enable-ssc");
309
310 priv->ext_refclk = device_property_present(dev, "rockchip,ext-refclk");
311
312 priv->phy_rst = devm_reset_control_get(dev, "phy");
313 /* fallback to old behaviour */
> 314 if (IS_ERR(ERR_PTR(priv->phy_rst)))
315 priv->phy_rst = devm_reset_control_array_get_exclusive(dev);
316
317 if (IS_ERR(priv->phy_rst))
318 return dev_err_probe(dev, PTR_ERR(priv->phy_rst), "failed to get phy reset\n");
319
320 return 0;
321 }
322
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/1] phy: rockchip: naneng-combphy: compatible with old DT for RK3568
2025-01-06 7:00 [PATCH 1/1] phy: rockchip: naneng-combphy: compatible with old DT for RK3568 Chukun Pan
2025-01-06 7:33 ` Philipp Zabel
2025-01-06 12:03 ` kernel test robot
@ 2025-01-06 21:37 ` kernel test robot
2 siblings, 0 replies; 6+ messages in thread
From: kernel test robot @ 2025-01-06 21:37 UTC (permalink / raw)
To: Chukun Pan, Vinod Koul
Cc: oe-kbuild-all, Heiko Stuebner, Philipp Zabel,
Kishon Vijay Abraham I, Jianfeng Liu, linux-arm-kernel,
linux-rockchip, linux-phy, linux-kernel, Chukun Pan
Hi Chukun,
kernel test robot noticed the following build errors:
[auto build test ERROR on linus/master]
[also build test ERROR on v6.13-rc6 next-20250106]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Chukun-Pan/phy-rockchip-naneng-combphy-compatible-with-old-DT-for-RK3568/20250106-150311
base: linus/master
patch link: https://lore.kernel.org/r/20250106070000.605284-1-amadeus%40jmu.edu.cn
patch subject: [PATCH 1/1] phy: rockchip: naneng-combphy: compatible with old DT for RK3568
config: arm64-defconfig (https://download.01.org/0day-ci/archive/20250107/202501070458.qKEuL2HH-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250107/202501070458.qKEuL2HH-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202501070458.qKEuL2HH-lkp@intel.com/
All errors (new ones prefixed by >>):
drivers/phy/rockchip/phy-rockchip-naneng-combphy.c: In function 'rockchip_combphy_parse_dt':
>> drivers/phy/rockchip/phy-rockchip-naneng-combphy.c:314:32: error: passing argument 1 of 'ERR_PTR' makes integer from pointer without a cast [-Wint-conversion]
314 | if (IS_ERR(ERR_PTR(priv->phy_rst)))
| ~~~~^~~~~~~~~
| |
| struct reset_control *
In file included from include/linux/clk.h:12,
from drivers/phy/rockchip/phy-rockchip-naneng-combphy.c:9:
include/linux/err.h:39:48: note: expected 'long int' but argument is of type 'struct reset_control *'
39 | static inline void * __must_check ERR_PTR(long error)
| ~~~~~^~~~~
vim +/ERR_PTR +314 drivers/phy/rockchip/phy-rockchip-naneng-combphy.c
274
275 static int rockchip_combphy_parse_dt(struct device *dev, struct rockchip_combphy_priv *priv)
276 {
277 int i;
278
279 priv->num_clks = devm_clk_bulk_get_all(dev, &priv->clks);
280 if (priv->num_clks < 1)
281 return -EINVAL;
282
283 priv->refclk = NULL;
284 for (i = 0; i < priv->num_clks; i++) {
285 if (!strncmp(priv->clks[i].id, "ref", 3)) {
286 priv->refclk = priv->clks[i].clk;
287 break;
288 }
289 }
290
291 if (!priv->refclk) {
292 dev_err(dev, "no refclk found\n");
293 return -EINVAL;
294 }
295
296 priv->pipe_grf = syscon_regmap_lookup_by_phandle(dev->of_node, "rockchip,pipe-grf");
297 if (IS_ERR(priv->pipe_grf)) {
298 dev_err(dev, "failed to find peri_ctrl pipe-grf regmap\n");
299 return PTR_ERR(priv->pipe_grf);
300 }
301
302 priv->phy_grf = syscon_regmap_lookup_by_phandle(dev->of_node, "rockchip,pipe-phy-grf");
303 if (IS_ERR(priv->phy_grf)) {
304 dev_err(dev, "failed to find peri_ctrl pipe-phy-grf regmap\n");
305 return PTR_ERR(priv->phy_grf);
306 }
307
308 priv->enable_ssc = device_property_present(dev, "rockchip,enable-ssc");
309
310 priv->ext_refclk = device_property_present(dev, "rockchip,ext-refclk");
311
312 priv->phy_rst = devm_reset_control_get(dev, "phy");
313 /* fallback to old behaviour */
> 314 if (IS_ERR(ERR_PTR(priv->phy_rst)))
315 priv->phy_rst = devm_reset_control_array_get_exclusive(dev);
316
317 if (IS_ERR(priv->phy_rst))
318 return dev_err_probe(dev, PTR_ERR(priv->phy_rst), "failed to get phy reset\n");
319
320 return 0;
321 }
322
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2025-01-06 21:39 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-06 7:00 [PATCH 1/1] phy: rockchip: naneng-combphy: compatible with old DT for RK3568 Chukun Pan
2025-01-06 7:33 ` Philipp Zabel
2025-01-06 7:50 ` [PATCH 1/2] " Chukun Pan
2025-01-06 9:19 ` Philipp Zabel
2025-01-06 12:03 ` kernel test robot
2025-01-06 21:37 ` kernel test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).