From: Quanyang Wang <quanyang.w...@windriver.com> 64-bit division "(u64 A) / (u32 B)" will break linking on ARCH arm:
arm-linux-gnueabihf-ld: drivers/spi/spi-cadence-quadspi.o: in function `cqspi_setdlldelay': spi-cadence-quadspi.c:(.text+0x1400): undefined reference to `__aeabi_uldivmod' Fix this by using do_div. Signed-off-by: Quanyang Wang <quanyang.w...@windriver.com> --- drivers/spi/spi-cadence-quadspi.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/spi/spi-cadence-quadspi.c b/drivers/spi/spi-cadence-quadspi.c index af95b6b97a6f8..1dd10504234d2 100644 --- a/drivers/spi/spi-cadence-quadspi.c +++ b/drivers/spi/spi-cadence-quadspi.c @@ -326,7 +326,7 @@ struct cqspi_driver_platdata { #define CQSPI_RESET_TYPE_HWPIN 0 #define CQSPI_READ_ID 0x9F #define CQSPI_READ_ID_LEN 6 -#define TERA_MACRO 1000000000000l +#define TERA_MACRO 1000000000000ULL #define SILICON_VER_MASK 0xFF #define SILICON_VER_1 0x10 #define CQSPI_DLL_MODE_MASTER 0 @@ -1363,6 +1363,7 @@ static int cqspi_setdlldelay(struct spi_mem *mem) u8 dummy_flag = 0; u32 reg; u8 count; + u64 tera_macro = TERA_MACRO; u8 max_index = 0, min_index = 0; struct spi_mem_op op = SPI_MEM_OP(SPI_MEM_OP_CMD(CQSPI_READ_ID, 8), @@ -1375,7 +1376,7 @@ static int cqspi_setdlldelay(struct spi_mem *mem) return ret; f_pdata = &cqspi->f_pdata[mem->spi->chip_select]; - max_tap = ((TERA_MACRO / cqspi->master_ref_clk_hz) / 160); + max_tap = (do_div(tera_macro, cqspi->master_ref_clk_hz) / 160); if (cqspi->dll_mode == CQSPI_DLL_MODE_MASTER) { /* Drive DLL reset bit to low */ writel(0, cqspi->iobase + CQSPI_REG_PHY_CONFIG); -- 2.25.1
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#10104): https://lists.yoctoproject.org/g/linux-yocto/message/10104 Mute This Topic: https://lists.yoctoproject.org/mt/84148463/21656 Group Owner: linux-yocto+ow...@lists.yoctoproject.org Unsubscribe: https://lists.yoctoproject.org/g/linux-yocto/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-