[U-Boot] [PATCH] spi: cadence_qspi: Change to use devfdt_get_addr_index()

Change to use devfdt_get_addr_index() function to get fdt address.
Original code has compilation warning below:
drivers/spi/cadence_qspi.c: In function ‘cadence_spi_ofdata_to_platdata’: drivers/spi/cadence_qspi.c:297:18: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] plat->regbase = (void *)data[0]; ^ drivers/spi/cadence_qspi.c:298:18: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] plat->ahbbase = (void *)data[2]; ^ Signed-off-by: Ley Foon Tan ley.foon.tan@intel.com --- drivers/spi/cadence_qspi.c | 13 ++----------- 1 files changed, 2 insertions(+), 11 deletions(-)
diff --git a/drivers/spi/cadence_qspi.c b/drivers/spi/cadence_qspi.c index 7b312f8..f80d073 100644 --- a/drivers/spi/cadence_qspi.c +++ b/drivers/spi/cadence_qspi.c @@ -284,18 +284,9 @@ static int cadence_spi_ofdata_to_platdata(struct udevice *bus) const void *blob = gd->fdt_blob; int node = dev_of_offset(bus); int subnode; - u32 data[4]; - int ret;
- /* 2 base addresses are needed, lets get them from the DT */ - ret = fdtdec_get_int_array(blob, node, "reg", data, ARRAY_SIZE(data)); - if (ret) { - printf("Error: Can't get base addresses (ret=%d)!\n", ret); - return -ENODEV; - } - - plat->regbase = (void *)data[0]; - plat->ahbbase = (void *)data[2]; + plat->regbase = (void *)devfdt_get_addr_index(bus, 0); + plat->ahbbase = (void *)devfdt_get_addr_index(bus, 1); plat->is_decoded_cs = fdtdec_get_bool(blob, node, "cdns,is-decoded-cs"); plat->fifo_depth = fdtdec_get_uint(blob, node, "cdns,fifo-depth", 128); plat->fifo_width = fdtdec_get_uint(blob, node, "cdns,fifo-width", 4);

Cast data_bytes to integer.
Compilation warning as below:
In file included from include/linux/bug.h:7:0, from include/common.h:26, from drivers/spi/cadence_qspi.c:8: drivers/spi/cadence_qspi.c: In function ‘cadence_spi_xfer’: drivers/spi/cadence_qspi.c:211:8: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘size_t {aka long unsigned int}’ [-Wformat=] debug("%s: len=%d [bytes]\n", __func__, data_bytes); ^ include/linux/printk.h:37:21: note: in definition of macro ‘pr_fmt’ #define pr_fmt(fmt) fmt ^~~ include/log.h:142:2: note: in expansion of macro ‘debug_cond’ debug_cond(_DEBUG, fmt, ##args) ^~~~~~~~~~ drivers/spi/cadence_qspi.c:211:2: note: in expansion of macro ‘debug’ debug("%s: len=%d [bytes]\n", __func__, data_bytes);
Signed-off-by: Ley Foon Tan ley.foon.tan@intel.com --- drivers/spi/cadence_qspi.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/spi/cadence_qspi.c b/drivers/spi/cadence_qspi.c index f80d073..dc4b5a4 100644 --- a/drivers/spi/cadence_qspi.c +++ b/drivers/spi/cadence_qspi.c @@ -208,7 +208,7 @@ static int cadence_spi_xfer(struct udevice *dev, unsigned int bitlen, } else { data_bytes = bitlen / 8; } - debug("%s: len=%d [bytes]\n", __func__, data_bytes); + debug("%s: len=%d [bytes]\n", __func__, (int)data_bytes);
/* Set Chip select */ cadence_qspi_apb_chipselect(base, spi_chip_select(dev),

On 05/07/2018 11:42 AM, Ley Foon Tan wrote:
Cast data_bytes to integer.
Compilation warning as below:
In file included from include/linux/bug.h:7:0, from include/common.h:26, from drivers/spi/cadence_qspi.c:8: drivers/spi/cadence_qspi.c: In function ‘cadence_spi_xfer’: drivers/spi/cadence_qspi.c:211:8: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘size_t {aka long unsigned int}’ [-Wformat=] debug("%s: len=%d [bytes]\n", __func__, data_bytes); ^ include/linux/printk.h:37:21: note: in definition of macro ‘pr_fmt’ #define pr_fmt(fmt) fmt ^~~ include/log.h:142:2: note: in expansion of macro ‘debug_cond’ debug_cond(_DEBUG, fmt, ##args) ^~~~~~~~~~ drivers/spi/cadence_qspi.c:211:2: note: in expansion of macro ‘debug’ debug("%s: len=%d [bytes]\n", __func__, data_bytes);
Signed-off-by: Ley Foon Tan ley.foon.tan@intel.com
drivers/spi/cadence_qspi.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/spi/cadence_qspi.c b/drivers/spi/cadence_qspi.c index f80d073..dc4b5a4 100644 --- a/drivers/spi/cadence_qspi.c +++ b/drivers/spi/cadence_qspi.c @@ -208,7 +208,7 @@ static int cadence_spi_xfer(struct udevice *dev, unsigned int bitlen, } else { data_bytes = bitlen / 8; }
- debug("%s: len=%d [bytes]\n", __func__, data_bytes);
- debug("%s: len=%d [bytes]\n", __func__, (int)data_bytes);
This should probably be %lu instead of the cast.
/* Set Chip select */ cadence_qspi_apb_chipselect(base, spi_chip_select(dev),

On Fri, Jun 1, 2018 at 4:07 PM, Marek Vasut marek.vasut@gmail.com wrote:
On 05/07/2018 11:42 AM, Ley Foon Tan wrote:
Cast data_bytes to integer.
Compilation warning as below:
In file included from include/linux/bug.h:7:0, from include/common.h:26, from drivers/spi/cadence_qspi.c:8: drivers/spi/cadence_qspi.c: In function ‘cadence_spi_xfer’: drivers/spi/cadence_qspi.c:211:8: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘size_t {aka long unsigned int}’ [-Wformat=] debug("%s: len=%d [bytes]\n", __func__, data_bytes); ^ include/linux/printk.h:37:21: note: in definition of macro ‘pr_fmt’ #define pr_fmt(fmt) fmt ^~~ include/log.h:142:2: note: in expansion of macro ‘debug_cond’ debug_cond(_DEBUG, fmt, ##args) ^~~~~~~~~~ drivers/spi/cadence_qspi.c:211:2: note: in expansion of macro ‘debug’ debug("%s: len=%d [bytes]\n", __func__, data_bytes);
Signed-off-by: Ley Foon Tan ley.foon.tan@intel.com
drivers/spi/cadence_qspi.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/spi/cadence_qspi.c b/drivers/spi/cadence_qspi.c index f80d073..dc4b5a4 100644 --- a/drivers/spi/cadence_qspi.c +++ b/drivers/spi/cadence_qspi.c @@ -208,7 +208,7 @@ static int cadence_spi_xfer(struct udevice *dev, unsigned int bitlen, } else { data_bytes = bitlen / 8; }
debug("%s: len=%d [bytes]\n", __func__, data_bytes);
debug("%s: len=%d [bytes]\n", __func__, (int)data_bytes);
This should probably be %lu instead of the cast.
Okay.
/* Set Chip select */ cadence_qspi_apb_chipselect(base, spi_chip_select(dev),
Regards Ley Foon

Cast to ulong data type.
Compilation warning as below:
CC spl/drivers/spi/cadence_qspi_apb.o LD spl/lib/built-in.o drivers/spi/cadence_qspi_apb.c: In function ‘cadence_qspi_apb_indirect_write_setup’: drivers/spi/cadence_qspi_apb.c:696:18: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] cmdlen, (unsigned int)cmdbuf);
Signed-off-by: Ley Foon Tan ley.foon.tan@intel.com --- drivers/spi/cadence_qspi_apb.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/spi/cadence_qspi_apb.c b/drivers/spi/cadence_qspi_apb.c index aa3a9ff..5bef0ae 100644 --- a/drivers/spi/cadence_qspi_apb.c +++ b/drivers/spi/cadence_qspi_apb.c @@ -692,8 +692,8 @@ int cadence_qspi_apb_indirect_write_setup(struct cadence_spi_platdata *plat, unsigned int addr_bytes = cmdlen > 4 ? 4 : 3;
if (cmdlen < 4 || cmdbuf == NULL) { - printf("QSPI: iInvalid input argument, len %d cmdbuf 0x%08x\n", - cmdlen, (unsigned int)cmdbuf); + printf("QSPI: Invalid input argument, len %d cmdbuf 0x%08lx\n", + cmdlen, (unsigned long)cmdbuf); return -EINVAL; } /* Setup the indirect trigger address */

On 05/07/2018 11:42 AM, Ley Foon Tan wrote:
Cast to ulong data type.
Compilation warning as below:
CC spl/drivers/spi/cadence_qspi_apb.o LD spl/lib/built-in.o drivers/spi/cadence_qspi_apb.c: In function ‘cadence_qspi_apb_indirect_write_setup’: drivers/spi/cadence_qspi_apb.c:696:18: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] cmdlen, (unsigned int)cmdbuf);
Signed-off-by: Ley Foon Tan ley.foon.tan@intel.com
drivers/spi/cadence_qspi_apb.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/spi/cadence_qspi_apb.c b/drivers/spi/cadence_qspi_apb.c index aa3a9ff..5bef0ae 100644 --- a/drivers/spi/cadence_qspi_apb.c +++ b/drivers/spi/cadence_qspi_apb.c @@ -692,8 +692,8 @@ int cadence_qspi_apb_indirect_write_setup(struct cadence_spi_platdata *plat, unsigned int addr_bytes = cmdlen > 4 ? 4 : 3;
if (cmdlen < 4 || cmdbuf == NULL) {
printf("QSPI: iInvalid input argument, len %d cmdbuf 0x%08x\n",
cmdlen, (unsigned int)cmdbuf);
printf("QSPI: Invalid input argument, len %d cmdbuf 0x%08lx\n",
cmdlen, (unsigned long)cmdbuf);
%p ?
return -EINVAL;
} /* Setup the indirect trigger address */

On Fri, Jun 1, 2018 at 4:07 PM, Marek Vasut marek.vasut@gmail.com wrote:
On 05/07/2018 11:42 AM, Ley Foon Tan wrote:
Cast to ulong data type.
Compilation warning as below:
CC spl/drivers/spi/cadence_qspi_apb.o LD spl/lib/built-in.o drivers/spi/cadence_qspi_apb.c: In function ‘cadence_qspi_apb_indirect_write_setup’: drivers/spi/cadence_qspi_apb.c:696:18: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] cmdlen, (unsigned int)cmdbuf);
Signed-off-by: Ley Foon Tan ley.foon.tan@intel.com
drivers/spi/cadence_qspi_apb.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/spi/cadence_qspi_apb.c b/drivers/spi/cadence_qspi_apb.c index aa3a9ff..5bef0ae 100644 --- a/drivers/spi/cadence_qspi_apb.c +++ b/drivers/spi/cadence_qspi_apb.c @@ -692,8 +692,8 @@ int cadence_qspi_apb_indirect_write_setup(struct cadence_spi_platdata *plat, unsigned int addr_bytes = cmdlen > 4 ? 4 : 3;
if (cmdlen < 4 || cmdbuf == NULL) {
printf("QSPI: iInvalid input argument, len %d cmdbuf 0x%08x\n",
cmdlen, (unsigned int)cmdbuf);
printf("QSPI: Invalid input argument, len %d cmdbuf 0x%08lx\n",
cmdlen, (unsigned long)cmdbuf);
%p ?
Yes, can use %p.
return -EINVAL; } /* Setup the indirect trigger address */
Regards Ley Foon

On Mon, May 7, 2018 at 3:12 PM, Ley Foon Tan ley.foon.tan@intel.com wrote:
Change to use devfdt_get_addr_index() function to get fdt address.
Original code has compilation warning below:
drivers/spi/cadence_qspi.c: In function ‘cadence_spi_ofdata_to_platdata’: drivers/spi/cadence_qspi.c:297:18: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] plat->regbase = (void *)data[0]; ^ drivers/spi/cadence_qspi.c:298:18: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] plat->ahbbase = (void *)data[2];
was this a coverage-tool check, I didn't see any warning with arm compiler? make socfpga_arria5_defconfig && make

On Wed, May 16, 2018 at 9:33 PM, Jagan Teki jagannadh.teki@gmail.com wrote:
On Mon, May 7, 2018 at 3:12 PM, Ley Foon Tan ley.foon.tan@intel.com wrote:
Change to use devfdt_get_addr_index() function to get fdt address.
Original code has compilation warning below:
drivers/spi/cadence_qspi.c: In function ‘cadence_spi_ofdata_to_platdata’: drivers/spi/cadence_qspi.c:297:18: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] plat->regbase = (void *)data[0]; ^ drivers/spi/cadence_qspi.c:298:18: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] plat->ahbbase = (void *)data[2];
was this a coverage-tool check, I didn't see any warning with arm compiler? make socfpga_arria5_defconfig && make
This error came up if compile with ARM 64bit (aarch64-linux-gnu-).
Regards Ley Foon

On 05/07/2018 11:42 AM, Ley Foon Tan wrote:
Change to use devfdt_get_addr_index() function to get fdt address.
Original code has compilation warning below:
drivers/spi/cadence_qspi.c: In function ‘cadence_spi_ofdata_to_platdata’: drivers/spi/cadence_qspi.c:297:18: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] plat->regbase = (void *)data[0]; ^ drivers/spi/cadence_qspi.c:298:18: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] plat->ahbbase = (void *)data[2]; ^ Signed-off-by: Ley Foon Tan ley.foon.tan@intel.com
Acked-by: Marek Vasut marex@denx.de
drivers/spi/cadence_qspi.c | 13 ++----------- 1 files changed, 2 insertions(+), 11 deletions(-)
diff --git a/drivers/spi/cadence_qspi.c b/drivers/spi/cadence_qspi.c index 7b312f8..f80d073 100644 --- a/drivers/spi/cadence_qspi.c +++ b/drivers/spi/cadence_qspi.c @@ -284,18 +284,9 @@ static int cadence_spi_ofdata_to_platdata(struct udevice *bus) const void *blob = gd->fdt_blob; int node = dev_of_offset(bus); int subnode;
u32 data[4];
int ret;
/* 2 base addresses are needed, lets get them from the DT */
ret = fdtdec_get_int_array(blob, node, "reg", data, ARRAY_SIZE(data));
if (ret) {
printf("Error: Can't get base addresses (ret=%d)!\n", ret);
return -ENODEV;
}
plat->regbase = (void *)data[0];
plat->ahbbase = (void *)data[2];
- plat->regbase = (void *)devfdt_get_addr_index(bus, 0);
- plat->ahbbase = (void *)devfdt_get_addr_index(bus, 1); plat->is_decoded_cs = fdtdec_get_bool(blob, node, "cdns,is-decoded-cs"); plat->fifo_depth = fdtdec_get_uint(blob, node, "cdns,fifo-depth", 128); plat->fifo_width = fdtdec_get_uint(blob, node, "cdns,fifo-width", 4);

On Mon, May 7, 2018 at 3:12 PM, Ley Foon Tan ley.foon.tan@intel.com wrote:
Change to use devfdt_get_addr_index() function to get fdt address.
Original code has compilation warning below:
drivers/spi/cadence_qspi.c: In function ‘cadence_spi_ofdata_to_platdata’: drivers/spi/cadence_qspi.c:297:18: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] plat->regbase = (void *)data[0]; ^ drivers/spi/cadence_qspi.c:298:18: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] plat->ahbbase = (void *)data[2]; ^ Signed-off-by: Ley Foon Tan ley.foon.tan@intel.com
Reviewed-by: Jagan Teki jagan@openedev.com
Applied to u-boot-spi/master
participants (5)
-
Jagan Teki
-
Ley Foon Tan
-
Ley Foon Tan
-
Marek Vasut
-
Marek Vasut