On Tue, Dec 09, 2014 at 11:53:45AM +0100, Geert Uytterhoeven wrote: > Hi Wolfram, > > On Fri, Nov 7, 2014 at 11:11 AM, Wolfram Sang <wsa@xxxxxxxxxxxxx> wrote: > > --- a/drivers/i2c/busses/i2c-sh_mobile.c > > +++ b/drivers/i2c/busses/i2c-sh_mobile.c > > @@ -727,6 +886,21 @@ static int sh_mobile_i2c_probe(struct platform_device *dev) > > if (ret) > > return ret; > > > > + /* Init DMA */ > > + sg_init_table(&pd->sg, 1); > > + pd->dma_direction = DMA_NONE; > > + ret = sh_mobile_i2c_request_dma_chan(pd->dev, DMA_DEV_TO_MEM, > > + res->start + ICDR, &pd->dma_rx); > > + if (ret == -EPROBE_DEFER) > > + return ret; > > + > > + ret = sh_mobile_i2c_request_dma_chan(pd->dev, DMA_MEM_TO_DEV, > > + res->start + ICDR, &pd->dma_tx); > > + if (ret == -EPROBE_DEFER) { > > + sh_mobile_i2c_release_dma(pd); > > + return ret; > > + } > > + > > If the DTS contains "dma" and "dma-names" properties, but CONFIG_RCAR_DMAC > is disabled, sh_mobile_i2c_request_dma_chan() returns -EPROBE_DEFER, > and the driver fails to initialize. > > If I remove the "dma" and "dma-names" properties, the driver does fall back > to PIO mode. > > I think this is a regression. The only solution I can think of is to not bail out here and retry again before every transfer? Doesn't sound elegant, though...
Attachment:
signature.asc
Description: Digital signature