From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Shevchenko, Andriy" Subject: Re: [PATCH v2 2/7] ACPI / LPSS: allow to use specific PM domain during ->probe() Date: Thu, 3 Dec 2015 19:29:55 +0000 Message-ID: <1449171008.15393.158.camel@intel.com> References: <1448551153-84719-1-git-send-email-andriy.shevchenko@linux.intel.com> <565733A2.6050900@linux.intel.com> <1448556317.15393.77.camel@linux.intel.com> <10907323.ZOUAMFPIfU@vostro.rjw.lan> <1448618173.15393.104.camel@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1448618173.15393.104.camel@linux.intel.com> Content-Language: en-US Content-ID: <73A9168C73415D4D9748B0EEB8FA9104@intel.com> Sender: linux-kernel-owner@vger.kernel.org To: "rjw@rjwysocki.net" Cc: "Koul, Vinod" , "linux-kernel@vger.kernel.org" , "tglx@linutronix.de" , "dmaengine@vger.kernel.org" , "jarkko.nikula@linux.intel.com" , "mika.westerberg@linux.intel.com" , "gregkh@linuxfoundation.org" , "linux-acpi@vger.kernel.org" List-Id: linux-acpi@vger.kernel.org T24gRnJpLCAyMDE1LTExLTI3IGF0IDExOjU2ICswMjAwLCBBbmR5IFNoZXZjaGVua28gd3JvdGU6 DQo+ID4gPiA+ID7CoA0KPiBPbiBGcmksIDIwMTUtMTEtMjcgYXQgMDA6MTUgKzAxMDAsIFJhZmFl bCBKLiBXeXNvY2tpIHdyb3RlOg0KPiA+IE9uIFRodXJzZGF5LCBOb3ZlbWJlciAyNiwgMjAxNSAw Njo0NToxNyBQTSBBbmR5IFNoZXZjaGVua28gd3JvdGU6DQo+ID4gPiBPbiBUaHUsIDIwMTUtMTEt MjYgYXQgMTg6MzAgKzAyMDAsIEphcmtrbyBOaWt1bGEgd3JvdGU6DQo+ID4gPiA+IE9uIDExLzI2 LzIwMTUgMDU6MTkgUE0sIEFuZHkgU2hldmNoZW5rbyB3cm90ZToNCj4gPiA+ID4gVGhpcyB3b24n dCBmaXggbGlrZSByZXZlcnQgb2Ygb3JpZ2luYWwgY29tbWl0IGRvZXMuDQoNCkphcmtrbywgSSB3 aWxsIHNwbGl0IHRoaXMgb25lIHRvIHRoZSByZXZlcnQgKHdpdGggRml4ZXMgdGFnKSBhbmQgbmV3 DQpwYXRjaCB0byB0YXJnZXQgRE1BIGlzc3VlLg0KwqAgwqDCoA0KDQo+ID4gPiA+IFByaW1hcnkg cHJvYmxlbSBoZXJlIA0KPiA+ID4gPiBpcyB0aGF0IHRoZXJlIGlzIG5vIGV4cGxpY2l0IHBvd2Vy IG9uIGF0IGFsbCBkdXJpbmcgTFBTUyBkZXZpY2UNCj4gPiA+ID4gcHJvYmUNCj4gPiA+ID4gYmVj YXVzZSBkZXYtPnBtX2RvbWFpbiBpcyBzZXQgYmVmb3JlIHByb2JpbmcuDQo+ID4gPiANCj4gPiA+ IEFuZCB3ZSBjYW4ndCBkbyB0aGlzIGFzIGluIHZlcnkgb3JpZ2luYWwgY29kZSBvZiBhY3BpX2xw c3MuYw0KPiA+ID4gc2luY2UNCj4gPiA+IERNQQ0KPiA+ID4gaGFzIHRvIGJlIHN1cmUgaXQncyBw b3dlcmVkIG9uIHdoaWxlIHByb2JpbmcuIFdlIGNvdWxkIGd1YXJhbnRlZQ0KPiA+ID4gdGhpcw0K PiA+ID4gb25seSBpbiBjYXNlIHdoZW4gUE0gZG9tYWluIGlzIGFzc2lnbmVkIGFscmVhZHkgYW5k IHdlIGRvIG91cg0KPiA+ID4gcXVpcmsNCj4gPiA+IGZvcg0KPiA+ID4gaXQuDQo+ID4gPiANCj4g PiA+IEZyb20gbXkgcG9pbnQgb2YgdmlldyB3ZSBoYXZlIHRvIGZpeCBoYW5nIGZpcnN0IHNpbmNl IGl0J3MgbW9zdA0KPiA+ID4gcGFpbmZ1bA0KPiA+ID4gY2FzZSBmb3IgdXNlcnMgYW5kIHRoZWly IGV4cGVyaWVuY2UuIFRob3VnaCBJJ20gb3BlbiB0byBhbnkNCj4gPiA+IGJldHRlcg0KPiA+ID4g c29sdXRpb24gaWYgeW91IGhhdmUgYW55IGluIG1pbmQuDQo+ID4gPiANCj4gPiA+ID4gDQo+ID4g PiA+IGRyaXZlcl9wcm9iZV9kZXZpY2UNCj4gPiA+ID4gwqDCoMKgcGxhdGZvcm1fZHJ2X3Byb3Zl DQo+ID4gPiA+IMKgwqDCoMKgwqBkZXZfcG1fZG9tYWluX2F0dGFjaA0KPiA+ID4gPiDCoMKgwqDC oMKgwqDCoGFjcGlfZGV2X3BtX2F0dGFjaA0KPiA+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqByZXR1 cm5zIGluc3RhbnRseSBiZWNhdXNlIG9mIGRldi0+cG1fZG9tYWluIGlzIHNldA0KPiA+IA0KPiA+ IFRoaXMgbG9va3MgbGlrZSBhIGNhbmRpZGF0ZSBmb3IgdGhlIG5ldyBQTSBkb21haW4gY2FsbGJh Y2tzLA0KPiA+IC0+YWN0aXZhdGUgYW5kDQo+ID4gLT5kaXNtaXNzLg0KPiA+IA0KPiA+IC0+YWN0 aXZhdGUoKSBpcyBjYWxsZWQgYmVmb3JlIHRoZSBwcm9iZSwgc28gaXQgbWF5IHBvd2VyIHVwIHRo aW5ncy4NCj4gPiANCj4gPiAtPmRpc21pc3MoKSBpbiB0dXJuIGlzIGNhbGxlZCBpbiB0aGUgZmFp bGVkIHByb2JlIGNhc2UsIHNvIGl0IGNhbg0KPiA+IGRvDQo+ID4gdGhlDQo+ID4gY2xlYW51cC4N Cj4gPiANCj4gPiBIYXZlIHlvdSBjb25zaWRlcmVkIHVzaW5nIHRoZXNlPw0KPiANCj4gVGhhbmtz IGZvciB0aGUgaGludC4gV2Ugd2lsbCBjaGVjayB0aGlzLg0KDQpJIGJyaWVmbHkgY2hlY2tlZCB0 aGlzIGZvciBETUEgaXNzdWUuIEl0IHdpbGwgbm90IGhlbHAgYW55aG93LCBzbyB3ZQ0KKmhhdmUg dG8qIG1vdmUgYSBwb3dlciBkb21haW4gYXNzaWdubWVudCB0byB0aGUgQklORCBzdGFnZS4NCg0K Rm9yIEkyQyBhbmQgcmVzdCBMUFNTIGRldmljZXMgdGhpcyBtaWdodCBoZWxwICh0aG91Z2ggZGlk bid0IGxvb2sNCmRlZXBseSkuIE15IHVuZGVyc3RhbmRpbmcgdGhhdCB3ZSBhc3NpZ24gdGhvc2Ug Y2FsbGJhY2tzIGluIHRoZSBMUFNTDQpjdXN0b20gUE0gZG9tYWluIGFuZCBjYWxsIHRoZW0gZXhw bGljaXRseSBpbiBhY3BpX2xwc3MuYy4NCg0KVGhlIGNvZGUgd2lsbCBiZSB0aGUgc2FtZSBhcyB3 ZSBhcmUgdXNpbmcgbm93IHRvIGJyaW5nIGRldmljZSBmcm9tDQpydW50aW1lIHN1c3BlbmQgcmVz dW1lLiBUaGlzIG1lYW5zIHdoZW5ldmVyIHdlIGNhbGwgcHJvYmUgZm9yIGUuZy4gSTJDDQp3ZSBl bmQgdXAgaW4gYSBzZXF1ZW5jZSBzaW1pbGFyIHRvOg0KwqBwbV9ydW50aW1lX3Jlc3VtZShJMkMp Ow0KwqAtPnByb2JlKEkyQyk7DQrCoHBtX3J1bnRpbWVfc3VzcGVuZChJMkMpOw0KDQpJIHdpbGwg dHJ5IHRvIG1vY2sgdXAgdGhpcyBhbmQgY2hlY2sgaWYgaXQgd2lsbCB3b3JrLCB0aG91Z2ggaGF2 ZSBubw0KaWRlYSB3aGF0IHRvIGRvIGlmIEkyQyBkdXJpbmcgcHJvYmUgY2FsbHMgcG1fcnVudGlt ZV9mb3JiaWQoKS4NCg0KSmFya2tvLCB3aGF0IGRvIHlvdSB0aGluaz8NCg0KLS0gDQpBbmR5IFNo ZXZjaGVua28gPGFuZHJpeS5zaGV2Y2hlbmtvQGludGVsLmNvbT4NCkludGVsIEZpbmxhbmQgT3kN Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpJbnRlbCBGaW5sYW5kIE95ClJlZ2lzdGVyZWQgQWRkcmVzczogUEwgMjgx LCAwMDE4MSBIZWxzaW5raSAKQnVzaW5lc3MgSWRlbnRpdHkgQ29kZTogMDM1NzYwNiAtIDQgCkRv bWljaWxlZCBpbiBIZWxzaW5raSAKClRoaXMgZS1tYWlsIGFuZCBhbnkgYXR0YWNobWVudHMgbWF5 IGNvbnRhaW4gY29uZmlkZW50aWFsIG1hdGVyaWFsIGZvcgp0aGUgc29sZSB1c2Ugb2YgdGhlIGlu dGVuZGVkIHJlY2lwaWVudChzKS4gQW55IHJldmlldyBvciBkaXN0cmlidXRpb24KYnkgb3RoZXJz IGlzIHN0cmljdGx5IHByb2hpYml0ZWQuIElmIHlvdSBhcmUgbm90IHRoZSBpbnRlbmRlZApyZWNp cGllbnQsIHBsZWFzZSBjb250YWN0IHRoZSBzZW5kZXIgYW5kIGRlbGV0ZSBhbGwgY29waWVzLgo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753315AbbLCTaE (ORCPT ); Thu, 3 Dec 2015 14:30:04 -0500 Received: from mga11.intel.com ([192.55.52.93]:32291 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751618AbbLCT37 (ORCPT ); Thu, 3 Dec 2015 14:29:59 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.20,378,1444719600"; d="scan'208";a="612090048" From: "Shevchenko, Andriy" To: "rjw@rjwysocki.net" CC: "Koul, Vinod" , "linux-kernel@vger.kernel.org" , "tglx@linutronix.de" , "dmaengine@vger.kernel.org" , "jarkko.nikula@linux.intel.com" , "mika.westerberg@linux.intel.com" , "gregkh@linuxfoundation.org" , "linux-acpi@vger.kernel.org" Subject: Re: [PATCH v2 2/7] ACPI / LPSS: allow to use specific PM domain during ->probe() Thread-Topic: [PATCH v2 2/7] ACPI / LPSS: allow to use specific PM domain during ->probe() Thread-Index: AQHRLgD9R2k7CPoEoEKkXwKHiKBNZg== Date: Thu, 3 Dec 2015 19:29:55 +0000 Message-ID: <1449171008.15393.158.camel@intel.com> References: <1448551153-84719-1-git-send-email-andriy.shevchenko@linux.intel.com> <565733A2.6050900@linux.intel.com> <1448556317.15393.77.camel@linux.intel.com> <10907323.ZOUAMFPIfU@vostro.rjw.lan> <1448618173.15393.104.camel@linux.intel.com> In-Reply-To: <1448618173.15393.104.camel@linux.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.237.72.86] Content-Type: text/plain; charset="utf-8" Content-ID: <73A9168C73415D4D9748B0EEB8FA9104@intel.com> MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by mail.home.local id tB3JUBST016951 On Fri, 2015-11-27 at 11:56 +0200, Andy Shevchenko wrote: > > > > >  > On Fri, 2015-11-27 at 00:15 +0100, Rafael J. Wysocki wrote: > > On Thursday, November 26, 2015 06:45:17 PM Andy Shevchenko wrote: > > > On Thu, 2015-11-26 at 18:30 +0200, Jarkko Nikula wrote: > > > > On 11/26/2015 05:19 PM, Andy Shevchenko wrote: > > > > This won't fix like revert of original commit does. Jarkko, I will split this one to the revert (with Fixes tag) and new patch to target DMA issue.      > > > > Primary problem here > > > > is that there is no explicit power on at all during LPSS device > > > > probe > > > > because dev->pm_domain is set before probing. > > > > > > And we can't do this as in very original code of acpi_lpss.c > > > since > > > DMA > > > has to be sure it's powered on while probing. We could guarantee > > > this > > > only in case when PM domain is assigned already and we do our > > > quirk > > > for > > > it. > > > > > > From my point of view we have to fix hang first since it's most > > > painful > > > case for users and their experience. Though I'm open to any > > > better > > > solution if you have any in mind. > > > > > > > > > > > driver_probe_device > > > >    platform_drv_prove > > > >      dev_pm_domain_attach > > > >        acpi_dev_pm_attach > > > >          returns instantly because of dev->pm_domain is set > > > > This looks like a candidate for the new PM domain callbacks, > > ->activate and > > ->dismiss. > > > > ->activate() is called before the probe, so it may power up things. > > > > ->dismiss() in turn is called in the failed probe case, so it can > > do > > the > > cleanup. > > > > Have you considered using these? > > Thanks for the hint. We will check this. I briefly checked this for DMA issue. It will not help anyhow, so we *have to* move a power domain assignment to the BIND stage. For I2C and rest LPSS devices this might help (though didn't look deeply). My understanding that we assign those callbacks in the LPSS custom PM domain and call them explicitly in acpi_lpss.c. The code will be the same as we are using now to bring device from runtime suspend resume. This means whenever we call probe for e.g. I2C we end up in a sequence similar to:  pm_runtime_resume(I2C);  ->probe(I2C);  pm_runtime_suspend(I2C); I will try to mock up this and check if it will work, though have no idea what to do if I2C during probe calls pm_runtime_forbid(). Jarkko, what do you think? -- Andy Shevchenko Intel Finland Oy --------------------------------------------------------------------- Intel Finland Oy Registered Address: PL 281, 00181 Helsinki Business Identity Code: 0357606 - 4 Domiciled in Helsinki This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies. {.n++%ݶw{.n+{G{ayʇڙ,jfhz_(階ݢj"mG?&~iOzv^m ?I