2024-03-21 01:54:27

by Duanqiang Wen

[permalink] [raw]
Subject: [PATCH net v2] net: txgbe: fix i2c dev name cannot match clkdev

txgbe clkdev shortened clk_name, so i2c_dev info_name
also need to shorten. Otherwise, i2c_dev cannot initialize
clock. And had "i2c_dw" string in a define.

Fixes: e30cef001da2 ("net: txgbe: fix clk_name exceed MAX_DEV_ID limits")

Signed-off-by: Duanqiang Wen <[email protected]>
---
drivers/net/ethernet/wangxun/txgbe/txgbe_phy.c | 6 +++---
drivers/net/ethernet/wangxun/txgbe/txgbe_phy.h | 2 ++
2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/wangxun/txgbe/txgbe_phy.c b/drivers/net/ethernet/wangxun/txgbe/txgbe_phy.c
index 5b5d5e4310d1..3f61f161f1ed 100644
--- a/drivers/net/ethernet/wangxun/txgbe/txgbe_phy.c
+++ b/drivers/net/ethernet/wangxun/txgbe/txgbe_phy.c
@@ -571,8 +571,8 @@ static int txgbe_clock_register(struct txgbe *txgbe)
char clk_name[32];
struct clk *clk;

- snprintf(clk_name, sizeof(clk_name), "i2c_dw.%d",
- pci_dev_id(pdev));
+ snprintf(clk_name, sizeof(clk_name), "%s.%d",
+ TXGBE_I2C_CLK_DEV_NAME, pci_dev_id(pdev));

clk = clk_register_fixed_rate(NULL, clk_name, NULL, 0, 156250000);
if (IS_ERR(clk))
@@ -634,7 +634,7 @@ static int txgbe_i2c_register(struct txgbe *txgbe)

info.parent = &pdev->dev;
info.fwnode = software_node_fwnode(txgbe->nodes.group[SWNODE_I2C]);
- info.name = "i2c_designware";
+ info.name = TXGBE_I2C_CLK_DEV_NAME;
info.id = pci_dev_id(pdev);

info.res = &DEFINE_RES_IRQ(pdev->irq);
diff --git a/drivers/net/ethernet/wangxun/txgbe/txgbe_phy.h b/drivers/net/ethernet/wangxun/txgbe/txgbe_phy.h
index 8a026d804fe2..c7f2157f3d95 100644
--- a/drivers/net/ethernet/wangxun/txgbe/txgbe_phy.h
+++ b/drivers/net/ethernet/wangxun/txgbe/txgbe_phy.h
@@ -4,6 +4,8 @@
#ifndef _TXGBE_PHY_H_
#define _TXGBE_PHY_H_

+#define TXGBE_I2C_CLK_DEV_NAME "i2c_dw"
+
irqreturn_t txgbe_gpio_irq_handler(int irq, void *data);
void txgbe_reinit_gpio_intr(struct wx *wx);
irqreturn_t txgbe_link_irq_handler(int irq, void *data);
--
2.27.0



2024-03-21 02:00:36

by Jiawen Wu

[permalink] [raw]
Subject: RE: [PATCH net v2] net: txgbe: fix i2c dev name cannot match clkdev



> -----Original Message-----
> From: Duanqiang Wen <[email protected]>
> Sent: Thursday, March 21, 2024 9:52 AM
> To: [email protected]; [email protected]; [email protected]; [email protected];
> [email protected]; [email protected]; [email protected]; [email protected]; [email protected];
> [email protected]; [email protected]
> Cc: Duanqiang Wen <[email protected]>
> Subject: [PATCH net v2] net: txgbe: fix i2c dev name cannot match clkdev
>
> txgbe clkdev shortened clk_name, so i2c_dev info_name
> also need to shorten. Otherwise, i2c_dev cannot initialize
> clock. And had "i2c_dw" string in a define.
>
> Fixes: e30cef001da2 ("net: txgbe: fix clk_name exceed MAX_DEV_ID limits")
>
> Signed-off-by: Duanqiang Wen <[email protected]>
> ---
> drivers/net/ethernet/wangxun/txgbe/txgbe_phy.c | 6 +++---
> drivers/net/ethernet/wangxun/txgbe/txgbe_phy.h | 2 ++
> 2 files changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/ethernet/wangxun/txgbe/txgbe_phy.c b/drivers/net/ethernet/wangxun/txgbe/txgbe_phy.c
> index 5b5d5e4310d1..3f61f161f1ed 100644
> --- a/drivers/net/ethernet/wangxun/txgbe/txgbe_phy.c
> +++ b/drivers/net/ethernet/wangxun/txgbe/txgbe_phy.c
> @@ -571,8 +571,8 @@ static int txgbe_clock_register(struct txgbe *txgbe)
> char clk_name[32];
> struct clk *clk;
>
> - snprintf(clk_name, sizeof(clk_name), "i2c_dw.%d",
> - pci_dev_id(pdev));
> + snprintf(clk_name, sizeof(clk_name), "%s.%d",
> + TXGBE_I2C_CLK_DEV_NAME, pci_dev_id(pdev));
>
> clk = clk_register_fixed_rate(NULL, clk_name, NULL, 0, 156250000);
> if (IS_ERR(clk))
> @@ -634,7 +634,7 @@ static int txgbe_i2c_register(struct txgbe *txgbe)
>
> info.parent = &pdev->dev;
> info.fwnode = software_node_fwnode(txgbe->nodes.group[SWNODE_I2C]);
> - info.name = "i2c_designware";
> + info.name = TXGBE_I2C_CLK_DEV_NAME;
> info.id = pci_dev_id(pdev);
>
> info.res = &DEFINE_RES_IRQ(pdev->irq);
> diff --git a/drivers/net/ethernet/wangxun/txgbe/txgbe_phy.h b/drivers/net/ethernet/wangxun/txgbe/txgbe_phy.h
> index 8a026d804fe2..c7f2157f3d95 100644
> --- a/drivers/net/ethernet/wangxun/txgbe/txgbe_phy.h
> +++ b/drivers/net/ethernet/wangxun/txgbe/txgbe_phy.h
> @@ -4,6 +4,8 @@
> #ifndef _TXGBE_PHY_H_
> #define _TXGBE_PHY_H_
>
> +#define TXGBE_I2C_CLK_DEV_NAME "i2c_dw"

Please add the define in txgbe_type.h

> +
> irqreturn_t txgbe_gpio_irq_handler(int irq, void *data);
> void txgbe_reinit_gpio_intr(struct wx *wx);
> irqreturn_t txgbe_link_irq_handler(int irq, void *data);
> --
> 2.27.0
>


2024-03-21 13:31:57

by Jiri Pirko

[permalink] [raw]
Subject: Re: [PATCH net v2] net: txgbe: fix i2c dev name cannot match clkdev

Thu, Mar 21, 2024 at 02:58:24AM CET, [email protected] wrote:
>
>
>> -----Original Message-----
>> From: Duanqiang Wen <[email protected]>
>> Sent: Thursday, March 21, 2024 9:52 AM
>> To: [email protected]; [email protected]; [email protected]; [email protected];
>> [email protected]; [email protected]; [email protected]; [email protected]; [email protected];
>> [email protected]; [email protected]
>> Cc: Duanqiang Wen <[email protected]>
>> Subject: [PATCH net v2] net: txgbe: fix i2c dev name cannot match clkdev
>>
>> txgbe clkdev shortened clk_name, so i2c_dev info_name
>> also need to shorten. Otherwise, i2c_dev cannot initialize
>> clock. And had "i2c_dw" string in a define.
>>
>> Fixes: e30cef001da2 ("net: txgbe: fix clk_name exceed MAX_DEV_ID limits")
>>
>> Signed-off-by: Duanqiang Wen <[email protected]>
>> ---
>> drivers/net/ethernet/wangxun/txgbe/txgbe_phy.c | 6 +++---
>> drivers/net/ethernet/wangxun/txgbe/txgbe_phy.h | 2 ++
>> 2 files changed, 5 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/net/ethernet/wangxun/txgbe/txgbe_phy.c b/drivers/net/ethernet/wangxun/txgbe/txgbe_phy.c
>> index 5b5d5e4310d1..3f61f161f1ed 100644
>> --- a/drivers/net/ethernet/wangxun/txgbe/txgbe_phy.c
>> +++ b/drivers/net/ethernet/wangxun/txgbe/txgbe_phy.c
>> @@ -571,8 +571,8 @@ static int txgbe_clock_register(struct txgbe *txgbe)
>> char clk_name[32];
>> struct clk *clk;
>>
>> - snprintf(clk_name, sizeof(clk_name), "i2c_dw.%d",
>> - pci_dev_id(pdev));
>> + snprintf(clk_name, sizeof(clk_name), "%s.%d",
>> + TXGBE_I2C_CLK_DEV_NAME, pci_dev_id(pdev));
>>
>> clk = clk_register_fixed_rate(NULL, clk_name, NULL, 0, 156250000);
>> if (IS_ERR(clk))
>> @@ -634,7 +634,7 @@ static int txgbe_i2c_register(struct txgbe *txgbe)
>>
>> info.parent = &pdev->dev;
>> info.fwnode = software_node_fwnode(txgbe->nodes.group[SWNODE_I2C]);
>> - info.name = "i2c_designware";
>> + info.name = TXGBE_I2C_CLK_DEV_NAME;
>> info.id = pci_dev_id(pdev);
>>
>> info.res = &DEFINE_RES_IRQ(pdev->irq);
>> diff --git a/drivers/net/ethernet/wangxun/txgbe/txgbe_phy.h b/drivers/net/ethernet/wangxun/txgbe/txgbe_phy.h
>> index 8a026d804fe2..c7f2157f3d95 100644
>> --- a/drivers/net/ethernet/wangxun/txgbe/txgbe_phy.h
>> +++ b/drivers/net/ethernet/wangxun/txgbe/txgbe_phy.h
>> @@ -4,6 +4,8 @@
>> #ifndef _TXGBE_PHY_H_
>> #define _TXGBE_PHY_H_
>>
>> +#define TXGBE_I2C_CLK_DEV_NAME "i2c_dw"
>
>Please add the define in txgbe_type.h

Well, since it is used in txgbe_phy.c, it should be probably
rather defined locally in txgbe_phy.c.

Anyhow
Reviewed-by: Jiri Pirko <[email protected]>



>
>> +
>> irqreturn_t txgbe_gpio_irq_handler(int irq, void *data);
>> void txgbe_reinit_gpio_intr(struct wx *wx);
>> irqreturn_t txgbe_link_irq_handler(int irq, void *data);
>> --
>> 2.27.0
>>
>
>