Re: [PATCH] i2c: stm32: remove unnecessary DMA kernel error log

From: Alain Volmat
Date: Thu Sep 10 2020 - 05:31:12 EST


Hi Holger,

Thanks for your patch.
there is an ongoing tree wide action to update all those common pattern
of checking for the -EPROBE_DEFER.

I thus propose, to first integrate the patch [i2c: stm32: Simplify with dev_err_probe()] that has been proposed few days ago, and on top of that add an
additional patch to check for the -ENODEV error case due to DMA being
optional.

I've prepared a patch for that and will post it now, could you consider it ?

Alain

On Fri, Aug 14, 2020 at 02:13:55PM +0000, Holger Assmann wrote:
> We currently print errors twice when there is an actual error
> when requesting a DMA channel, once in stm32f7_i2c_probe()
> when stm32_i2c_dma_request() fails and once more in
> stm32_i2c_dma_request() itself. stm32_i2c_dma_request() is only
> called from stm32f7_i2c_probe(), so we could drop the duplicate
> error message.
>
> This has the effect that we no longer warn about absence of a
> DMA channel. This is intended as it is not mandatory for the
> i2c-stm32 devices to have DMA enabled. Also, the overall number
> of DMA channels on the STM32 is limited and has to be shared
> with other peripherals. This may lead to DMA being intentionally
> off for specific devices.
>
> This patch removes the unnecessary error message.
>
> Fixes: e07a89775c71 ("i2c: stm32: don't print an error on probe deferral")
> Signed-off-by: Holger Assmann <h.assmann@xxxxxxxxxxxxxx>
> ---
> drivers/i2c/busses/i2c-stm32.c | 5 -----
> 1 file changed, 5 deletions(-)
>
> diff --git a/drivers/i2c/busses/i2c-stm32.c b/drivers/i2c/busses/i2c-stm32.c
> index 3f69a3bb6119..cc05a4202559 100644
> --- a/drivers/i2c/busses/i2c-stm32.c
> +++ b/drivers/i2c/busses/i2c-stm32.c
> @@ -26,8 +26,6 @@ struct stm32_i2c_dma *stm32_i2c_dma_request(struct device *dev,
> dma->chan_tx = dma_request_chan(dev, "tx");
> if (IS_ERR(dma->chan_tx)) {
> ret = PTR_ERR(dma->chan_tx);
> - if (ret != -EPROBE_DEFER)
> - dev_err(dev, "can't request DMA tx channel\n");
> goto fail_al;
> }
>
> @@ -46,9 +44,6 @@ struct stm32_i2c_dma *stm32_i2c_dma_request(struct device *dev,
> dma->chan_rx = dma_request_chan(dev, "rx");
> if (IS_ERR(dma->chan_rx)) {
> ret = PTR_ERR(dma->chan_rx);
> - if (ret != -EPROBE_DEFER)
> - dev_err(dev, "can't request DMA rx channel\n");
> -
> goto fail_tx;
> }
>
> --
> 2.20.1
>