diff mbox

phy: ralink: fix 64-bit build warning

Message ID 20170823134019.927267-1-arnd@arndb.de
State Accepted
Commit e593beaf60e003c4e0d65e6ea9ceb75c2971afbc
Headers show

Commit Message

Arnd Bergmann Aug. 23, 2017, 1:39 p.m. UTC
Casting between an 'int' and a pointer causes a warning on
64-bit architectures in compile-testing this driver:

drivers/phy/ralink/phy-ralink-usb.c: In function 'ralink_usb_phy_probe':
drivers/phy/ralink/phy-ralink-usb.c:195:13: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]

This changes the code to cast to uintptr_t instead. This is
guaranteed to do what we want on all architectures and avoids
the warning.

Fixes: 2411a736ff09 ("phy: ralink-usb: add driver for Mediatek/Ralink")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>

---
 drivers/phy/ralink/phy-ralink-usb.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

-- 
2.9.0

Comments

John Crispin Aug. 23, 2017, 1:49 p.m. UTC | #1
On 23/08/17 15:39, Arnd Bergmann wrote:
> Casting between an 'int' and a pointer causes a warning on

> 64-bit architectures in compile-testing this driver:

>

> drivers/phy/ralink/phy-ralink-usb.c: In function 'ralink_usb_phy_probe':

> drivers/phy/ralink/phy-ralink-usb.c:195:13: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]

>

> This changes the code to cast to uintptr_t instead. This is

> guaranteed to do what we want on all architectures and avoids

> the warning.

>

> Fixes: 2411a736ff09 ("phy: ralink-usb: add driver for Mediatek/Ralink")

> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Acked-by: John Crispin <john@phrozen.org>


gregkh: can you fold this into the commit sitting inside usb-next ?



> ---

>   drivers/phy/ralink/phy-ralink-usb.c | 14 +++++++-------

>   1 file changed, 7 insertions(+), 7 deletions(-)

>

> diff --git a/drivers/phy/ralink/phy-ralink-usb.c b/drivers/phy/ralink/phy-ralink-usb.c

> index d19088c0ce5c..4fea31f8ac1c 100644

> --- a/drivers/phy/ralink/phy-ralink-usb.c

> +++ b/drivers/phy/ralink/phy-ralink-usb.c

> @@ -160,18 +160,18 @@ static struct phy_ops ralink_usb_phy_ops = {

>   static const struct of_device_id ralink_usb_phy_of_match[] = {

>   	{

>   		.compatible = "ralink,rt3352-usbphy",

> -		.data = (void *) (RT_CLKCFG1_UPHY1_CLK_EN |

> -				  RT_CLKCFG1_UPHY0_CLK_EN)

> +		.data = (void *)(uintptr_t)(RT_CLKCFG1_UPHY1_CLK_EN |

> +					    RT_CLKCFG1_UPHY0_CLK_EN)

>   	},

>   	{

>   		.compatible = "mediatek,mt7620-usbphy",

> -		.data = (void *) (MT7620_CLKCFG1_UPHY1_CLK_EN |

> -				  MT7620_CLKCFG1_UPHY0_CLK_EN)

> +		.data = (void *)(uintptr_t)(MT7620_CLKCFG1_UPHY1_CLK_EN |

> +					    MT7620_CLKCFG1_UPHY0_CLK_EN)

>   	},

>   	{

>   		.compatible = "mediatek,mt7628-usbphy",

> -		.data = (void *) (MT7620_CLKCFG1_UPHY1_CLK_EN |

> -				  MT7620_CLKCFG1_UPHY0_CLK_EN) },

> +		.data = (void *)(uintptr_t)(MT7620_CLKCFG1_UPHY1_CLK_EN |

> +					    MT7620_CLKCFG1_UPHY0_CLK_EN) },

>   	{ },

>   };

>   MODULE_DEVICE_TABLE(of, ralink_usb_phy_of_match);

> @@ -192,7 +192,7 @@ static int ralink_usb_phy_probe(struct platform_device *pdev)

>   	if (!phy)

>   		return -ENOMEM;

>   

> -	phy->clk = (u32) match->data;

> +	phy->clk = (uintptr_t)match->data;

>   	phy->base = NULL;

>   

>   	phy->sysctl = syscon_regmap_lookup_by_phandle(dev->of_node, "ralink,sysctl");
Kishon Vijay Abraham I Aug. 23, 2017, 1:58 p.m. UTC | #2
On Wednesday 23 August 2017 07:09 PM, Arnd Bergmann wrote:
> Casting between an 'int' and a pointer causes a warning on

> 64-bit architectures in compile-testing this driver:

> 

> drivers/phy/ralink/phy-ralink-usb.c: In function 'ralink_usb_phy_probe':

> drivers/phy/ralink/phy-ralink-usb.c:195:13: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]

> 

> This changes the code to cast to uintptr_t instead. This is

> guaranteed to do what we want on all architectures and avoids

> the warning.

> 

> Fixes: 2411a736ff09 ("phy: ralink-usb: add driver for Mediatek/Ralink")

> Signed-off-by: Arnd Bergmann <arnd@arndb.de>


Acked-by: Kishon Vijay Abraham I <kishon@ti.com>

> ---

>  drivers/phy/ralink/phy-ralink-usb.c | 14 +++++++-------

>  1 file changed, 7 insertions(+), 7 deletions(-)

> 

> diff --git a/drivers/phy/ralink/phy-ralink-usb.c b/drivers/phy/ralink/phy-ralink-usb.c

> index d19088c0ce5c..4fea31f8ac1c 100644

> --- a/drivers/phy/ralink/phy-ralink-usb.c

> +++ b/drivers/phy/ralink/phy-ralink-usb.c

> @@ -160,18 +160,18 @@ static struct phy_ops ralink_usb_phy_ops = {

>  static const struct of_device_id ralink_usb_phy_of_match[] = {

>  	{

>  		.compatible = "ralink,rt3352-usbphy",

> -		.data = (void *) (RT_CLKCFG1_UPHY1_CLK_EN |

> -				  RT_CLKCFG1_UPHY0_CLK_EN)

> +		.data = (void *)(uintptr_t)(RT_CLKCFG1_UPHY1_CLK_EN |

> +					    RT_CLKCFG1_UPHY0_CLK_EN)

>  	},

>  	{

>  		.compatible = "mediatek,mt7620-usbphy",

> -		.data = (void *) (MT7620_CLKCFG1_UPHY1_CLK_EN |

> -				  MT7620_CLKCFG1_UPHY0_CLK_EN)

> +		.data = (void *)(uintptr_t)(MT7620_CLKCFG1_UPHY1_CLK_EN |

> +					    MT7620_CLKCFG1_UPHY0_CLK_EN)

>  	},

>  	{

>  		.compatible = "mediatek,mt7628-usbphy",

> -		.data = (void *) (MT7620_CLKCFG1_UPHY1_CLK_EN |

> -				  MT7620_CLKCFG1_UPHY0_CLK_EN) },

> +		.data = (void *)(uintptr_t)(MT7620_CLKCFG1_UPHY1_CLK_EN |

> +					    MT7620_CLKCFG1_UPHY0_CLK_EN) },

>  	{ },

>  };

>  MODULE_DEVICE_TABLE(of, ralink_usb_phy_of_match);

> @@ -192,7 +192,7 @@ static int ralink_usb_phy_probe(struct platform_device *pdev)

>  	if (!phy)

>  		return -ENOMEM;

>  

> -	phy->clk = (u32) match->data;

> +	phy->clk = (uintptr_t)match->data;

>  	phy->base = NULL;

>  

>  	phy->sysctl = syscon_regmap_lookup_by_phandle(dev->of_node, "ralink,sysctl");

>
Harvey Hunt Aug. 23, 2017, 1:59 p.m. UTC | #3
Hi Arnd,

On 23/08/17 14:39, Arnd Bergmann wrote:
> Casting between an 'int' and a pointer causes a warning on

> 64-bit architectures in compile-testing this driver:

> 

> drivers/phy/ralink/phy-ralink-usb.c: In function 'ralink_usb_phy_probe':

> drivers/phy/ralink/phy-ralink-usb.c:195:13: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]

> 

> This changes the code to cast to uintptr_t instead. This is

> guaranteed to do what we want on all architectures and avoids

> the warning.

> 

> Fixes: 2411a736ff09 ("phy: ralink-usb: add driver for Mediatek/Ralink")

> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

> ---

>   drivers/phy/ralink/phy-ralink-usb.c | 14 +++++++-------

>   1 file changed, 7 insertions(+), 7 deletions(-)

[...]

Thanks for fixing this - it was on my TODO list.

Tested-by Harvey Hunt <harvey.hunt@imgtec.com>
Reviewed-by Harvey Hunt <harvey.hunt@imgtec.com>

Thanks,

Harvey
Kishon Vijay Abraham I Aug. 23, 2017, 2:20 p.m. UTC | #4
Greg,

On Wednesday 23 August 2017 07:09 PM, Arnd Bergmann wrote:
> Casting between an 'int' and a pointer causes a warning on

> 64-bit architectures in compile-testing this driver:

> 

> drivers/phy/ralink/phy-ralink-usb.c: In function 'ralink_usb_phy_probe':

> drivers/phy/ralink/phy-ralink-usb.c:195:13: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]

> 

> This changes the code to cast to uintptr_t instead. This is

> guaranteed to do what we want on all architectures and avoids

> the warning.

> 

> Fixes: 2411a736ff09 ("phy: ralink-usb: add driver for Mediatek/Ralink")

> Signed-off-by: Arnd Bergmann <arnd@arndb.de>


Can you pick this patch to fix the compiler warning.

Thanks
Kishon
> ---

>  drivers/phy/ralink/phy-ralink-usb.c | 14 +++++++-------

>  1 file changed, 7 insertions(+), 7 deletions(-)

> 

> diff --git a/drivers/phy/ralink/phy-ralink-usb.c b/drivers/phy/ralink/phy-ralink-usb.c

> index d19088c0ce5c..4fea31f8ac1c 100644

> --- a/drivers/phy/ralink/phy-ralink-usb.c

> +++ b/drivers/phy/ralink/phy-ralink-usb.c

> @@ -160,18 +160,18 @@ static struct phy_ops ralink_usb_phy_ops = {

>  static const struct of_device_id ralink_usb_phy_of_match[] = {

>  	{

>  		.compatible = "ralink,rt3352-usbphy",

> -		.data = (void *) (RT_CLKCFG1_UPHY1_CLK_EN |

> -				  RT_CLKCFG1_UPHY0_CLK_EN)

> +		.data = (void *)(uintptr_t)(RT_CLKCFG1_UPHY1_CLK_EN |

> +					    RT_CLKCFG1_UPHY0_CLK_EN)

>  	},

>  	{

>  		.compatible = "mediatek,mt7620-usbphy",

> -		.data = (void *) (MT7620_CLKCFG1_UPHY1_CLK_EN |

> -				  MT7620_CLKCFG1_UPHY0_CLK_EN)

> +		.data = (void *)(uintptr_t)(MT7620_CLKCFG1_UPHY1_CLK_EN |

> +					    MT7620_CLKCFG1_UPHY0_CLK_EN)

>  	},

>  	{

>  		.compatible = "mediatek,mt7628-usbphy",

> -		.data = (void *) (MT7620_CLKCFG1_UPHY1_CLK_EN |

> -				  MT7620_CLKCFG1_UPHY0_CLK_EN) },

> +		.data = (void *)(uintptr_t)(MT7620_CLKCFG1_UPHY1_CLK_EN |

> +					    MT7620_CLKCFG1_UPHY0_CLK_EN) },

>  	{ },

>  };

>  MODULE_DEVICE_TABLE(of, ralink_usb_phy_of_match);

> @@ -192,7 +192,7 @@ static int ralink_usb_phy_probe(struct platform_device *pdev)

>  	if (!phy)

>  		return -ENOMEM;

>  

> -	phy->clk = (u32) match->data;

> +	phy->clk = (uintptr_t)match->data;

>  	phy->base = NULL;

>  

>  	phy->sysctl = syscon_regmap_lookup_by_phandle(dev->of_node, "ralink,sysctl");

>
Greg KH Aug. 23, 2017, 11:30 p.m. UTC | #5
On Wed, Aug 23, 2017 at 07:50:46PM +0530, Kishon Vijay Abraham I wrote:
> Greg,

> 

> On Wednesday 23 August 2017 07:09 PM, Arnd Bergmann wrote:

> > Casting between an 'int' and a pointer causes a warning on

> > 64-bit architectures in compile-testing this driver:

> > 

> > drivers/phy/ralink/phy-ralink-usb.c: In function 'ralink_usb_phy_probe':

> > drivers/phy/ralink/phy-ralink-usb.c:195:13: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]

> > 

> > This changes the code to cast to uintptr_t instead. This is

> > guaranteed to do what we want on all architectures and avoids

> > the warning.

> > 

> > Fixes: 2411a736ff09 ("phy: ralink-usb: add driver for Mediatek/Ralink")

> > Signed-off-by: Arnd Bergmann <arnd@arndb.de>

> 

> Can you pick this patch to fix the compiler warning.


Can you resend it to me in a format that I can apply it in?

thanks,

greg k-h
Kishon Vijay Abraham I Aug. 24, 2017, 7:49 a.m. UTC | #6
Greg,

On Thursday 24 August 2017 05:00 AM, Greg Kroah-Hartman wrote:
> On Wed, Aug 23, 2017 at 07:50:46PM +0530, Kishon Vijay Abraham I wrote:

>> Greg,

>>

>> On Wednesday 23 August 2017 07:09 PM, Arnd Bergmann wrote:

>>> Casting between an 'int' and a pointer causes a warning on

>>> 64-bit architectures in compile-testing this driver:

>>>

>>> drivers/phy/ralink/phy-ralink-usb.c: In function 'ralink_usb_phy_probe':

>>> drivers/phy/ralink/phy-ralink-usb.c:195:13: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]

>>>

>>> This changes the code to cast to uintptr_t instead. This is

>>> guaranteed to do what we want on all architectures and avoids

>>> the warning.

>>>

>>> Fixes: 2411a736ff09 ("phy: ralink-usb: add driver for Mediatek/Ralink")

>>> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

>>

>> Can you pick this patch to fix the compiler warning.

> 

> Can you resend it to me in a format that I can apply it in?


sent them now.

Thanks
Kishon
diff mbox

Patch

diff --git a/drivers/phy/ralink/phy-ralink-usb.c b/drivers/phy/ralink/phy-ralink-usb.c
index d19088c0ce5c..4fea31f8ac1c 100644
--- a/drivers/phy/ralink/phy-ralink-usb.c
+++ b/drivers/phy/ralink/phy-ralink-usb.c
@@ -160,18 +160,18 @@  static struct phy_ops ralink_usb_phy_ops = {
 static const struct of_device_id ralink_usb_phy_of_match[] = {
 	{
 		.compatible = "ralink,rt3352-usbphy",
-		.data = (void *) (RT_CLKCFG1_UPHY1_CLK_EN |
-				  RT_CLKCFG1_UPHY0_CLK_EN)
+		.data = (void *)(uintptr_t)(RT_CLKCFG1_UPHY1_CLK_EN |
+					    RT_CLKCFG1_UPHY0_CLK_EN)
 	},
 	{
 		.compatible = "mediatek,mt7620-usbphy",
-		.data = (void *) (MT7620_CLKCFG1_UPHY1_CLK_EN |
-				  MT7620_CLKCFG1_UPHY0_CLK_EN)
+		.data = (void *)(uintptr_t)(MT7620_CLKCFG1_UPHY1_CLK_EN |
+					    MT7620_CLKCFG1_UPHY0_CLK_EN)
 	},
 	{
 		.compatible = "mediatek,mt7628-usbphy",
-		.data = (void *) (MT7620_CLKCFG1_UPHY1_CLK_EN |
-				  MT7620_CLKCFG1_UPHY0_CLK_EN) },
+		.data = (void *)(uintptr_t)(MT7620_CLKCFG1_UPHY1_CLK_EN |
+					    MT7620_CLKCFG1_UPHY0_CLK_EN) },
 	{ },
 };
 MODULE_DEVICE_TABLE(of, ralink_usb_phy_of_match);
@@ -192,7 +192,7 @@  static int ralink_usb_phy_probe(struct platform_device *pdev)
 	if (!phy)
 		return -ENOMEM;
 
-	phy->clk = (u32) match->data;
+	phy->clk = (uintptr_t)match->data;
 	phy->base = NULL;
 
 	phy->sysctl = syscon_regmap_lookup_by_phandle(dev->of_node, "ralink,sysctl");