Message ID | 1418722801-10630-1-git-send-email-andriy.shevchenko@linux.intel.com (mailing list archive) |
---|---|
State | Rejected |
Headers | show |
On Tue, Dec 16, 2014 at 11:40:01AM +0200, Andy Shevchenko wrote: > In case of the PCI driver we will get a warning: > dw_dmac_pci 0000:00:18.0: Unbalanced pm_runtime_enable! > dw_dmac_pci 0000:00:18.0: DesignWare DMA Controller, 8 channels > > This happens due to pm_runtime_enable() call from the driver when PM runtime is > enabled by core. > > This patch moves that call to the platform driver where it might make sense. Hmmm, sorry but it is not clear to me how moving it from core to platform helps solve the problem. Also this make more sense in core as it can be common acorss various devices
T24gTW9uLCAyMDE0LTEyLTIyIGF0IDIwOjM2ICswNTMwLCBWaW5vZCBLb3VsIHdyb3RlOg0KPiBP biBUdWUsIERlYyAxNiwgMjAxNCBhdCAxMTo0MDowMUFNICswMjAwLCBBbmR5IFNoZXZjaGVua28g d3JvdGU6DQo+ID4gSW4gY2FzZSBvZiB0aGUgUENJIGRyaXZlciB3ZSB3aWxsIGdldCBhIHdhcm5p bmc6DQo+ID4gIGR3X2RtYWNfcGNpIDAwMDA6MDA6MTguMDogVW5iYWxhbmNlZCBwbV9ydW50aW1l X2VuYWJsZSENCj4gPiAgZHdfZG1hY19wY2kgMDAwMDowMDoxOC4wOiBEZXNpZ25XYXJlIERNQSBD b250cm9sbGVyLCA4IGNoYW5uZWxzDQo+ID4gDQo+ID4gVGhpcyBoYXBwZW5zIGR1ZSB0byBwbV9y dW50aW1lX2VuYWJsZSgpIGNhbGwgZnJvbSB0aGUgZHJpdmVyIHdoZW4gUE0gcnVudGltZSBpcw0K PiA+IGVuYWJsZWQgYnkgY29yZS4NCj4gPiANCj4gPiBUaGlzIHBhdGNoIG1vdmVzIHRoYXQgY2Fs bCB0byB0aGUgcGxhdGZvcm0gZHJpdmVyIHdoZXJlIGl0IG1pZ2h0IG1ha2Ugc2Vuc2UuDQo+IEht bW0sIHNvcnJ5IGJ1dCBpdCBpcyBub3QgY2xlYXIgdG8gbWUgaG93IG1vdmluZyBpdCBmcm9tIGNv cmUgdG8gcGxhdGZvcm0NCj4gaGVscHMgc29sdmUgdGhlIHByb2JsZW0uDQoNCkluIGNhc2Ugb2Yg UENJIGRyaXZlciB3ZSBhbHJlYWR5IGhhdmUgcnVudGltZSBQTSBlbmFibGVkLCBtZWFud2hpbGUg aXQncw0Kbm90IHRydWUgZm9yIGFuIEFDUEkgY2FzZSAoc2luY2UgdGhlcmUgaXMgbm8gX1BTMCAv IF9QUzMgbWV0aG9kcyBmb3IgdGhlDQpETUEgZGV2aWNlKS4NCg0KPiAgQWxzbyB0aGlzIG1ha2Ug bW9yZSBzZW5zZSBpbiBjb3JlIGFzIGl0IGNhbiBiZQ0KPiBjb21tb24gYWNvcnNzIHZhcmlvdXMg ZGV2aWNlcw0KDQpXZSBjYW4gZW5hYmxlIGl0IGlmIGl0IHdhcyBkaXNhYmxlZC4NCg0KPiANCj4g LS0gDQo+IH5WaW5vZA0KPiANCj4gPiANCj4gPiBGaXhlczogYmIzMmJhZjc2ZTU2IChkbWFlbmdp bmU6IGR3OiBlbmFibGUgcnVudGltZSBQTSkNCj4gPiBTaWduZWQtb2ZmLWJ5OiBBbmR5IFNoZXZj aGVua28gPGFuZHJpeS5zaGV2Y2hlbmtvQGxpbnV4LmludGVsLmNvbT4NCj4gPiAtLS0NCj4gPiBW aW5vZCwgdGhpcyBpcyBhIG1hdGVyaWFsIGZvciB2My4xOS1yYzEuIENvdWxkIHlvdSwgcGxlYXNl LCByZXZpZXcgYW5kIGFwcGx5Pw0KPiA+IA0KPiA+ICBkcml2ZXJzL2RtYS9kdy9jb3JlLmMgICAg IHwgMiAtLQ0KPiA+ICBkcml2ZXJzL2RtYS9kdy9wbGF0Zm9ybS5jIHwgNSArKysrKw0KPiA+ICAy IGZpbGVzIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkNCj4gPiANCj4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEvZHcvY29yZS5jIGIvZHJpdmVycy9kbWEvZHcvY29y ZS5jDQo+ID4gaW5kZXggYmJhZTIwMi4uZGNmMTlmMCAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJz L2RtYS9kdy9jb3JlLmMNCj4gPiArKysgYi9kcml2ZXJzL2RtYS9kdy9jb3JlLmMNCj4gPiBAQCAt MTU2OSw3ICsxNTY5LDYgQEAgaW50IGR3X2RtYV9wcm9iZShzdHJ1Y3QgZHdfZG1hX2NoaXAgKmNo aXAsIHN0cnVjdCBkd19kbWFfcGxhdGZvcm1fZGF0YSAqcGRhdGEpDQo+ID4gIAlkdy0+dHlwZSA9 IGNoaXAtPnR5cGU7DQo+ID4gIAljaGlwLT5kdyA9IGR3Ow0KPiA+ICANCj4gPiAtCXBtX3J1bnRp bWVfZW5hYmxlKGNoaXAtPmRldik7DQo+ID4gIAlwbV9ydW50aW1lX2dldF9zeW5jKGNoaXAtPmRl dik7DQo+ID4gIA0KPiA+ICAJZHdfcGFyYW1zID0gZG1hX3JlYWRfYnlhZGRyKGNoaXAtPnJlZ3Ms IERXX1BBUkFNUyk7DQo+ID4gQEAgLTE3NjgsNyArMTc2Nyw2IEBAIGludCBkd19kbWFfcmVtb3Zl KHN0cnVjdCBkd19kbWFfY2hpcCAqY2hpcCkNCj4gPiAgCX0NCj4gPiAgDQo+ID4gIAlwbV9ydW50 aW1lX3B1dF9zeW5jX3N1c3BlbmQoY2hpcC0+ZGV2KTsNCj4gPiAtCXBtX3J1bnRpbWVfZGlzYWJs ZShjaGlwLT5kZXYpOw0KPiA+ICAJcmV0dXJuIDA7DQo+ID4gIH0NCj4gPiAgRVhQT1JUX1NZTUJP TF9HUEwoZHdfZG1hX3JlbW92ZSk7DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1hL2R3L3Bs YXRmb3JtLmMgYi9kcml2ZXJzL2RtYS9kdy9wbGF0Zm9ybS5jDQo+ID4gaW5kZXggNDIwMzZkZC4u N2VkYzk5ZiAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2RtYS9kdy9wbGF0Zm9ybS5jDQo+ID4g KysrIGIvZHJpdmVycy9kbWEvZHcvcGxhdGZvcm0uYw0KPiA+IEBAIC0xNSw2ICsxNSw3IEBADQo+ ID4gICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4NCj4gPiAgI2luY2x1ZGUgPGxpbnV4L2Rldmlj ZS5oPg0KPiA+ICAjaW5jbHVkZSA8bGludXgvY2xrLmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51eC9w bV9ydW50aW1lLmg+DQo+ID4gICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4NCj4g PiAgI2luY2x1ZGUgPGxpbnV4L2RtYWVuZ2luZS5oPg0KPiA+ICAjaW5jbHVkZSA8bGludXgvZG1h LW1hcHBpbmcuaD4NCj4gPiBAQCAtMTg3LDYgKzE4OCw4IEBAIHN0YXRpYyBpbnQgZHdfcHJvYmUo c3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikNCj4gPiAgCWlmIChlcnIpDQo+ID4gIAkJcmV0 dXJuIGVycjsNCj4gPiAgDQo+ID4gKwlwbV9ydW50aW1lX2VuYWJsZSgmcGRldi0+ZGV2KTsNCj4g PiArDQo+ID4gIAllcnIgPSBkd19kbWFfcHJvYmUoY2hpcCwgcGRhdGEpOw0KPiA+ICAJaWYgKGVy cikNCj4gPiAgCQlnb3RvIGVycl9kd19kbWFfcHJvYmU7DQo+ID4gQEAgLTIwNyw2ICsyMTAsNyBA QCBzdGF0aWMgaW50IGR3X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ID4g IAlyZXR1cm4gMDsNCj4gPiAgDQo+ID4gIGVycl9kd19kbWFfcHJvYmU6DQo+ID4gKwlwbV9ydW50 aW1lX2Rpc2FibGUoJnBkZXYtPmRldik7DQo+ID4gIAljbGtfZGlzYWJsZV91bnByZXBhcmUoY2hp cC0+Y2xrKTsNCj4gPiAgCXJldHVybiBlcnI7DQo+ID4gIH0NCj4gPiBAQCAtMjE5LDYgKzIyMyw3 IEBAIHN0YXRpYyBpbnQgZHdfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ ID4gIAkJb2ZfZG1hX2NvbnRyb2xsZXJfZnJlZShwZGV2LT5kZXYub2Zfbm9kZSk7DQo+ID4gIA0K PiA+ICAJZHdfZG1hX3JlbW92ZShjaGlwKTsNCj4gPiArCXBtX3J1bnRpbWVfZGlzYWJsZSgmcGRl di0+ZGV2KTsNCj4gPiAgCWNsa19kaXNhYmxlX3VucHJlcGFyZShjaGlwLT5jbGspOw0KPiA+ICAN Cj4gPiAgCXJldHVybiAwOw0KPiA+IC0tIA0KPiA+IDIuMS4zDQo+ID4gDQo+IA0KDQoNCi0tIA0K QW5keSBTaGV2Y2hlbmtvIDxhbmRyaXkuc2hldmNoZW5rb0BpbnRlbC5jb20+DQpJbnRlbCBGaW5s YW5kIE95DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KSW50ZWwgRmlubGFuZCBPeQpSZWdpc3RlcmVkIEFkZHJlc3M6 IFBMIDI4MSwgMDAxODEgSGVsc2lua2kgCkJ1c2luZXNzIElkZW50aXR5IENvZGU6IDAzNTc2MDYg LSA0IApEb21pY2lsZWQgaW4gSGVsc2lua2kgCgpUaGlzIGUtbWFpbCBhbmQgYW55IGF0dGFjaG1l bnRzIG1heSBjb250YWluIGNvbmZpZGVudGlhbCBtYXRlcmlhbCBmb3IKdGhlIHNvbGUgdXNlIG9m IHRoZSBpbnRlbmRlZCByZWNpcGllbnQocykuIEFueSByZXZpZXcgb3IgZGlzdHJpYnV0aW9uCmJ5 IG90aGVycyBpcyBzdHJpY3RseSBwcm9oaWJpdGVkLiBJZiB5b3UgYXJlIG5vdCB0aGUgaW50ZW5k ZWQKcmVjaXBpZW50LCBwbGVhc2UgY29udGFjdCB0aGUgc2VuZGVyIGFuZCBkZWxldGUgYWxsIGNv cGllcy4K -- To unsubscribe from this list: send the line "unsubscribe dmaengine" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, Dec 30, 2014 at 08:04:51PM +0530, Shevchenko, Andriy wrote: > On Mon, 2014-12-22 at 20:36 +0530, Vinod Koul wrote: > > On Tue, Dec 16, 2014 at 11:40:01AM +0200, Andy Shevchenko wrote: > > > In case of the PCI driver we will get a warning: > > > dw_dmac_pci 0000:00:18.0: Unbalanced pm_runtime_enable! > > > dw_dmac_pci 0000:00:18.0: DesignWare DMA Controller, 8 channels > > > > > > This happens due to pm_runtime_enable() call from the driver when PM runtime is > > > enabled by core. > > > > > > This patch moves that call to the platform driver where it might make sense. > > Hmmm, sorry but it is not clear to me how moving it from core to platform > > helps solve the problem. > > In case of PCI driver we already have runtime PM enabled, meanwhile it's > not true for an ACPI case (since there is no _PS0 / _PS3 methods for the > DMA device). > > > Also this make more sense in core as it can be > > common acorss various devices > > We can enable it if it was disabled. okay, I see the point. But this patch fails to apply on rc1, can you please rebase and resend
diff --git a/drivers/dma/dw/core.c b/drivers/dma/dw/core.c index bbae202..dcf19f0 100644 --- a/drivers/dma/dw/core.c +++ b/drivers/dma/dw/core.c @@ -1569,7 +1569,6 @@ int dw_dma_probe(struct dw_dma_chip *chip, struct dw_dma_platform_data *pdata) dw->type = chip->type; chip->dw = dw; - pm_runtime_enable(chip->dev); pm_runtime_get_sync(chip->dev); dw_params = dma_read_byaddr(chip->regs, DW_PARAMS); @@ -1768,7 +1767,6 @@ int dw_dma_remove(struct dw_dma_chip *chip) } pm_runtime_put_sync_suspend(chip->dev); - pm_runtime_disable(chip->dev); return 0; } EXPORT_SYMBOL_GPL(dw_dma_remove); diff --git a/drivers/dma/dw/platform.c b/drivers/dma/dw/platform.c index 42036dd..7edc99f 100644 --- a/drivers/dma/dw/platform.c +++ b/drivers/dma/dw/platform.c @@ -15,6 +15,7 @@ #include <linux/module.h> #include <linux/device.h> #include <linux/clk.h> +#include <linux/pm_runtime.h> #include <linux/platform_device.h> #include <linux/dmaengine.h> #include <linux/dma-mapping.h> @@ -187,6 +188,8 @@ static int dw_probe(struct platform_device *pdev) if (err) return err; + pm_runtime_enable(&pdev->dev); + err = dw_dma_probe(chip, pdata); if (err) goto err_dw_dma_probe; @@ -207,6 +210,7 @@ static int dw_probe(struct platform_device *pdev) return 0; err_dw_dma_probe: + pm_runtime_disable(&pdev->dev); clk_disable_unprepare(chip->clk); return err; } @@ -219,6 +223,7 @@ static int dw_remove(struct platform_device *pdev) of_dma_controller_free(pdev->dev.of_node); dw_dma_remove(chip); + pm_runtime_disable(&pdev->dev); clk_disable_unprepare(chip->clk); return 0;
In case of the PCI driver we will get a warning: dw_dmac_pci 0000:00:18.0: Unbalanced pm_runtime_enable! dw_dmac_pci 0000:00:18.0: DesignWare DMA Controller, 8 channels This happens due to pm_runtime_enable() call from the driver when PM runtime is enabled by core. This patch moves that call to the platform driver where it might make sense. Fixes: bb32baf76e56 (dmaengine: dw: enable runtime PM) Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> --- Vinod, this is a material for v3.19-rc1. Could you, please, review and apply? drivers/dma/dw/core.c | 2 -- drivers/dma/dw/platform.c | 5 +++++ 2 files changed, 5 insertions(+), 2 deletions(-)