From: Nicolas Dechesne Date: Tue, 12 Apr 2016 09:38:56 +0000 (+0200) Subject: Merge branch 'release/qcomlt-4.4' into stable-4.4 X-Git-Tag: KARO-TXSD-2017-03-24~88 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=3e4bf0b78405694fd1ab4371c73e80932be21e3a;p=karo-tx-linux.git Merge branch 'release/qcomlt-4.4' into stable-4.4 --- 3e4bf0b78405694fd1ab4371c73e80932be21e3a diff --cc drivers/base/platform.c index 176b59f5bc47,835dbee900ee..c385585b8e20 --- a/drivers/base/platform.c +++ b/drivers/base/platform.c @@@ -512,18 -512,21 +512,26 @@@ static int platform_drv_probe(struct de if (ret < 0) return ret; + ret = of_dma_configure_ops(_dev, _dev->of_node); + if (ret < 0) + goto done; + ret = dev_pm_domain_attach(_dev, true); - if (ret != -EPROBE_DEFER && drv->probe) { - ret = drv->probe(dev); - if (ret) - dev_pm_domain_detach(_dev, true); + if (ret != -EPROBE_DEFER) { + if (drv->probe) { + ret = drv->probe(dev); + if (ret) + dev_pm_domain_detach(_dev, true); + } else { + /* don't fail if just dev_pm_domain_attach failed */ + ret = 0; + } } + if (ret) + of_dma_deconfigure(_dev); + + done: if (drv->prevent_deferred_probe && ret == -EPROBE_DEFER) { dev_warn(_dev, "probe deferral not supported\n"); ret = -ENXIO;