On Tue, Jan 20, 2015 at 8:57 PM, Heikki Krogerus <heikki.krogerus@xxxxxxxxxxxxxxx> wrote: > When requesting clock in the platform driver, leaving > chip->clk value as NULL if -ENOENT is returned, and > continue. With other errors returning failure. It makes the > driver usable on platforms that do not provide the clock. > > Signed-off-by: Heikki Krogerus <heikki.krogerus@xxxxxxxxxxxxxxx> > --- > drivers/dma/dw/platform.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/drivers/dma/dw/platform.c b/drivers/dma/dw/platform.c > index 32ea1ac..b183bc0 100644 > --- a/drivers/dma/dw/platform.c > +++ b/drivers/dma/dw/platform.c > @@ -180,8 +180,12 @@ static int dw_probe(struct platform_device *pdev) > chip->dev = dev; > > chip->clk = devm_clk_get(chip->dev, "hclk"); > - if (IS_ERR(chip->clk)) > - return PTR_ERR(chip->clk); > + if (IS_ERR(chip->clk)) { > + if (PTR_ERR(chip->clk) == -ENOENT) > + chip->clk = NULL; This is wrong and reasons are mentioned in this thread: http://lists.infradead.org/pipermail/linux-arm-kernel/2012-March/088437.html You don't need to set it to NULL, if CONFIG_HAVE_CLK isn't set the dummy routines would take care of it. -- To unsubscribe from this list: send the line "unsubscribe dmaengine" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html