Message ID | 20210109123545.12001-5-bmeng.cn@gmail.com |
---|---|
State | Superseded |
Headers | show |
Series | hw/ssi: imx_spi: Fix various bugs in the imx_spi model | expand |
On 1/9/21 1:35 PM, Bin Meng wrote: > From: Bin Meng <bin.meng@windriver.com> > > Current implementation of the imx spi controller expects the burst > length to be multiple of 8, which is the most normal use case. s/normal/common/? > > In case the burst length is not what we expect, log it to give user > a chance to notice it. > > Signed-off-by: Bin Meng <bin.meng@windriver.com> > > --- > > Changes in v3: > - new patch: log unimplemented burst length > > hw/ssi/imx_spi.c | 11 ++++++++++- > 1 file changed, 10 insertions(+), 1 deletion(-) > > diff --git a/hw/ssi/imx_spi.c b/hw/ssi/imx_spi.c > index 880939f595..609d4b658e 100644 > --- a/hw/ssi/imx_spi.c > +++ b/hw/ssi/imx_spi.c > @@ -128,7 +128,16 @@ static uint8_t imx_spi_selected_channel(IMXSPIState *s) > > static uint32_t imx_spi_burst_length(IMXSPIState *s) > { > - return EXTRACT(s->regs[ECSPI_CONREG], ECSPI_CONREG_BURST_LENGTH) + 1; > + uint32_t burst; > + > + burst = EXTRACT(s->regs[ECSPI_CONREG], ECSPI_CONREG_BURST_LENGTH) + 1; > + if (burst % 8) { > + qemu_log_mask(LOG_UNIMP, > + "[%s]%s: burst length not multiple of 8!\n", > + TYPE_IMX_SPI, __func__); Please log the burst length value in the log message. With it: Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > + } > + > + return burst; > } > > static bool imx_spi_is_enabled(IMXSPIState *s) >
diff --git a/hw/ssi/imx_spi.c b/hw/ssi/imx_spi.c index 880939f595..609d4b658e 100644 --- a/hw/ssi/imx_spi.c +++ b/hw/ssi/imx_spi.c @@ -128,7 +128,16 @@ static uint8_t imx_spi_selected_channel(IMXSPIState *s) static uint32_t imx_spi_burst_length(IMXSPIState *s) { - return EXTRACT(s->regs[ECSPI_CONREG], ECSPI_CONREG_BURST_LENGTH) + 1; + uint32_t burst; + + burst = EXTRACT(s->regs[ECSPI_CONREG], ECSPI_CONREG_BURST_LENGTH) + 1; + if (burst % 8) { + qemu_log_mask(LOG_UNIMP, + "[%s]%s: burst length not multiple of 8!\n", + TYPE_IMX_SPI, __func__); + } + + return burst; } static bool imx_spi_is_enabled(IMXSPIState *s)