Message ID | 20230711124519.1591123-1-apatel@ventanamicro.com |
---|---|
State | Superseded |
Headers | show |
Series | lib: utils/gpio: Fix RV32 compile error for designware GPIO driver | expand |
在 2023-07-11星期二的 18:15 +0530,Anup Patel写道: > Currently, we see following compile error in the designeware GPIO driver > for RV32 systems: > > lib/utils/gpio/fdt_gpio_designware.c:115:20: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] > 115 | chip->dr = (void *)addr + (bank * 0xc); > | ^ > lib/utils/gpio/fdt_gpio_designware.c:116:21: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] > 116 | chip->ext = (void *)addr + (bank * 4) + 0x50; > > We fix the above error using an explicit type-cast to 'unsigned long'. > > Fixes: 7828eebaaa77 ("gpio/desginware: add Synopsys DesignWare APB GPIO support") > Signed-off-by: Anup Patel <apatel@ventanamicro.com> > --- > lib/utils/gpio/fdt_gpio_designware.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/lib/utils/gpio/fdt_gpio_designware.c b/lib/utils/gpio/fdt_gpio_designware.c > index 6223d7e..603e5a0 100644 > --- a/lib/utils/gpio/fdt_gpio_designware.c > +++ b/lib/utils/gpio/fdt_gpio_designware.c > @@ -112,8 +112,8 @@ static int dw_gpio_init_bank(void *fdt, int nodeoff, u32 phandle, > > chip = &dw_gpio_chip_array[dw_gpio_chip_count]; > > - chip->dr = (void *)addr + (bank * 0xc); > - chip->ext = (void *)addr + (bank * 4) + 0x50; > + chip->dr = (void *)(ulong)addr + (bank * 0xc); > + chip->ext = (void *)(ulong)addr + (bank * 4) + 0x50; Replacing ulong with uintptr_t would be better. Otherwise it looks good to me. Reviewed-by: Xiang W <wxjstz@126.com> > chip->chip.driver = &fdt_gpio_designware; > chip->chip.id = phandle; > chip->chip.ngpio = nr_pins; > -- > 2.34.1 > >
diff --git a/lib/utils/gpio/fdt_gpio_designware.c b/lib/utils/gpio/fdt_gpio_designware.c index 6223d7e..603e5a0 100644 --- a/lib/utils/gpio/fdt_gpio_designware.c +++ b/lib/utils/gpio/fdt_gpio_designware.c @@ -112,8 +112,8 @@ static int dw_gpio_init_bank(void *fdt, int nodeoff, u32 phandle, chip = &dw_gpio_chip_array[dw_gpio_chip_count]; - chip->dr = (void *)addr + (bank * 0xc); - chip->ext = (void *)addr + (bank * 4) + 0x50; + chip->dr = (void *)(ulong)addr + (bank * 0xc); + chip->ext = (void *)(ulong)addr + (bank * 4) + 0x50; chip->chip.driver = &fdt_gpio_designware; chip->chip.id = phandle; chip->chip.ngpio = nr_pins;
Currently, we see following compile error in the designeware GPIO driver for RV32 systems: lib/utils/gpio/fdt_gpio_designware.c:115:20: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] 115 | chip->dr = (void *)addr + (bank * 0xc); | ^ lib/utils/gpio/fdt_gpio_designware.c:116:21: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] 116 | chip->ext = (void *)addr + (bank * 4) + 0x50; We fix the above error using an explicit type-cast to 'unsigned long'. Fixes: 7828eebaaa77 ("gpio/desginware: add Synopsys DesignWare APB GPIO support") Signed-off-by: Anup Patel <apatel@ventanamicro.com> --- lib/utils/gpio/fdt_gpio_designware.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)