From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Shevchenko, Andriy" Subject: Re: [PATCH 11/31] dma: add channel request API that supports deferred probe Date: Mon, 18 Nov 2013 09:18:19 +0000 Message-ID: <1384766276.14845.155.camel@smile> References: <1384548866-13141-1-git-send-email-swarren@wwwdotorg.org> <1384548866-13141-12-git-send-email-swarren@wwwdotorg.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: Content-Language: en-US Content-ID: <6B367E4533E1FC44AA6347334DD536D6-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> Sender: linux-tegra-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: "Williams, Dan J" Cc: Stephen Warren , Stephen Warren , "treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org" , "pdeschrijver-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org" , "linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" , "linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org" , "dmaengine-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" , "Koul, Vinod" List-Id: linux-tegra@vger.kernel.org T24gRnJpLCAyMDEzLTExLTE1IGF0IDEzOjAxIC0wODAwLCBEYW4gV2lsbGlhbXMgd3JvdGU6DQo+ IE9uIEZyaSwgTm92IDE1LCAyMDEzIGF0IDEyOjU0IFBNLCBTdGVwaGVuIFdhcnJlbiA8c3dhcnJl bkB3d3dkb3Rvcmcub3JnPiB3cm90ZToNCg0KPiA+IEV2ZW50dWFsbHksIGFsbCBkcml2ZXJzIHNo b3VsZCBiZSBjb252ZXJ0ZWQgdG8gdGhpcyBuZXcgQVBJLCB0aGUgb2xkIEFQSQ0KPiA+IHJlbW92 ZWQsIGFuZCB0aGUgbmV3IEFQSSByZW5hbWVkIHRvIHRoZSBtb3JlIGRlc2lyYWJsZSBuYW1lLiAN Cg0KSSByZWFsbHkgd291bGQgbGlrZSB0byBzZWUgbW9yZSBzZW5zaWJsZSBhbmQgc2hvcnRlciBu YW1lcyBmb3IgdGhlIEFQSQ0KZnVuY3Rpb25zLg0KDQpbXQ0KDQo+ID4gYWNwaV9kbWFfcmVxdWVz dF9zbGF2ZV9jaGFuX2J5X2luZGV4KCkgZG9lc24ndCBhY3R1YWxseSBpbXBsZW1lbnQNCj4gPiBk ZWZlcnJlZCBwcm9iZS4gUGVyaGFwcyBpdCBzaG91bGQ/DQoNClllcyBpdCBzaG91bGQsIHRob3Vn aCBJIHByb3Bvc2Ugd2Ugd2lsbCBhZGQgdGhpcyBhIGJpdCBsYXRlciBzaW5jZSB3ZQ0Kd2lsbCBz dXJ2aXZlIHcvbyBpdC4NCg0KTXkgY29tbWVudHMgcmVnYXJkaW5nIGFjcGktZG1hLmMgYmVsb3cu DQoNCltdDQoNCj4gPiAtLS0gYS9kcml2ZXJzL2RtYS9hY3BpLWRtYS5jDQo+ID4gKysrIGIvZHJp dmVycy9kbWEvYWNwaS1kbWEuYw0KPiA+IEBAIC0zMzQsNyArMzM0LDcgQEAgc3RhdGljIGludCBh Y3BpX2RtYV9wYXJzZV9maXhlZF9kbWEoc3RydWN0IGFjcGlfcmVzb3VyY2UgKnJlcywgdm9pZCAq ZGF0YSkNCj4gPiAgICogQGRldjogICAgICAgc3RydWN0IGRldmljZSB0byBnZXQgRE1BIHJlcXVl c3QgZnJvbQ0KPiA+ICAgKiBAaW5kZXg6ICAgICBpbmRleCBvZiBGaXhlZERNQSBkZXNjcmlwdG9y IGZvciBAZGV2DQo+ID4gICAqDQo+ID4gLSAqIFJldHVybnMgcG9pbnRlciB0byBhcHByb3ByaWF0 ZSBkbWEgY2hhbm5lbCBvbiBzdWNjZXNzIG9yIE5VTEwgb24gZXJyb3IuDQo+ID4gKyAqIFJldHVy bnMgcG9pbnRlciB0byBhcHByb3ByaWF0ZSBkbWEgY2hhbm5lbCBvbiBzdWNjZXNzIG9yIGFuIGVy cm9yIHBvaW50ZXIuDQo+ID4gICAqLw0KPiA+ICBzdHJ1Y3QgZG1hX2NoYW4gKmFjcGlfZG1hX3Jl cXVlc3Rfc2xhdmVfY2hhbl9ieV9pbmRleChzdHJ1Y3QgZGV2aWNlICpkZXYsDQo+ID4gICAgICAg ICAgICAgICAgIHNpemVfdCBpbmRleCkNCj4gPiBAQCAtMzQ5LDEwICszNDksMTAgQEAgc3RydWN0 IGRtYV9jaGFuICphY3BpX2RtYV9yZXF1ZXN0X3NsYXZlX2NoYW5fYnlfaW5kZXgoc3RydWN0IGRl dmljZSAqZGV2LA0KDQpXZSB1c2UgZGVmYXVsdCB2YWx1ZSBvZiBjaGFuIGlmIGl0J3Mgbm90IGZv dW5kLiBQZXJoYXBzIHlvdSBoYXZlIHRvDQpjaGFuZ2UgaXQgYXMgd2VsbCB0byBzb21ldGhpbmcg bGlrZSBFUlJfUFRSKC1FTk9FTlQpLg0KDQpbXQ0KDQo+ID4gQEAgLTM2Nyw3ICszNjcsNyBAQCBz dHJ1Y3QgZG1hX2NoYW4gKmFjcGlfZG1hX3JlcXVlc3Rfc2xhdmVfY2hhbl9ieV9pbmRleChzdHJ1 Y3QgZGV2aWNlICpkZXYsDQo+ID4gICAgICAgICBhY3BpX2Rldl9mcmVlX3Jlc291cmNlX2xpc3Qo JnJlc291cmNlX2xpc3QpOw0KPiA+DQo+ID4gICAgICAgICBpZiAoZG1hX3NwZWMtPnNsYXZlX2lk IDwgMCB8fCBkbWFfc3BlYy0+Y2hhbl9pZCA8IDApDQo+ID4gLSAgICAgICAgICAgICAgIHJldHVy biBOVUxMOw0KPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gRVJSX1BUUigtRU5PREVWKTsNCg0K SW4gdGhpcyBjYXNlIEkgd291bGQgcmF0aGVyIHVzZSAtRU5PREFUQSwgc2luY2UgaXQgbWVhbnMg d2UgaGF2ZSBubw0KRml4ZWRETUEgZGVzY3JpcHRvciBmb3IgdGhlIGRldmljZSB1bmRlciBxdWVz dGlvbi4NCg0KW10NCg0KPiA+ICBzdHJ1Y3QgZG1hX2NoYW4gKmFjcGlfZG1hX3JlcXVlc3Rfc2xh dmVfY2hhbl9ieV9uYW1lKHN0cnVjdCBkZXZpY2UgKmRldiwNCj4gPiAgICAgICAgICAgICAgICAg Y29uc3QgY2hhciAqbmFtZSkNCj4gPiBAQCAtNDE1LDcgKzQxNSw3IEBAIHN0cnVjdCBkbWFfY2hh biAqYWNwaV9kbWFfcmVxdWVzdF9zbGF2ZV9jaGFuX2J5X25hbWUoc3RydWN0IGRldmljZSAqZGV2 LA0KPiA+ICAgICAgICAgZWxzZSBpZiAoIXN0cmNtcChuYW1lLCAicngiKSkNCj4gPiAgICAgICAg ICAgICAgICAgaW5kZXggPSAxOw0KPiA+ICAgICAgICAgZWxzZQ0KPiA+IC0gICAgICAgICAgICAg ICByZXR1cm4gTlVMTDsNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIEVSUl9QVFIoLUVOT0RF Vik7DQoNClBlcmhhcHMgLUVJTlZBTCwgc2luY2UgaXQgbWVhbnMgdGhlIGlucHV0IHBhcmFtZXRl ciBraW5kYSB3cm9uZy4NCg0KDQotLSANCkFuZHkgU2hldmNoZW5rbyA8YW5kcml5LnNoZXZjaGVu a29AaW50ZWwuY29tPg0KSW50ZWwgRmlubGFuZCBPeQ0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkludGVsIEZpbmxh bmQgT3kKUmVnaXN0ZXJlZCBBZGRyZXNzOiBQTCAyODEsIDAwMTgxIEhlbHNpbmtpIApCdXNpbmVz cyBJZGVudGl0eSBDb2RlOiAwMzU3NjA2IC0gNCAKRG9taWNpbGVkIGluIEhlbHNpbmtpIAoKVGhp cyBlLW1haWwgYW5kIGFueSBhdHRhY2htZW50cyBtYXkgY29udGFpbiBjb25maWRlbnRpYWwgbWF0 ZXJpYWwgZm9yCnRoZSBzb2xlIHVzZSBvZiB0aGUgaW50ZW5kZWQgcmVjaXBpZW50KHMpLiBBbnkg cmV2aWV3IG9yIGRpc3RyaWJ1dGlvbgpieSBvdGhlcnMgaXMgc3RyaWN0bHkgcHJvaGliaXRlZC4g SWYgeW91IGFyZSBub3QgdGhlIGludGVuZGVkCnJlY2lwaWVudCwgcGxlYXNlIGNvbnRhY3QgdGhl IHNlbmRlciBhbmQgZGVsZXRlIGFsbCBjb3BpZXMuCg== From mboxrd@z Thu Jan 1 00:00:00 1970 From: andriy.shevchenko@intel.com (Shevchenko, Andriy) Date: Mon, 18 Nov 2013 09:18:19 +0000 Subject: [PATCH 11/31] dma: add channel request API that supports deferred probe In-Reply-To: References: <1384548866-13141-1-git-send-email-swarren@wwwdotorg.org> <1384548866-13141-12-git-send-email-swarren@wwwdotorg.org> Message-ID: <1384766276.14845.155.camel@smile> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Fri, 2013-11-15 at 13:01 -0800, Dan Williams wrote: > On Fri, Nov 15, 2013 at 12:54 PM, Stephen Warren wrote: > > Eventually, all drivers should be converted to this new API, the old API > > removed, and the new API renamed to the more desirable name. I really would like to see more sensible and shorter names for the API functions. [] > > acpi_dma_request_slave_chan_by_index() doesn't actually implement > > deferred probe. Perhaps it should? Yes it should, though I propose we will add this a bit later since we will survive w/o it. My comments regarding acpi-dma.c below. [] > > --- a/drivers/dma/acpi-dma.c > > +++ b/drivers/dma/acpi-dma.c > > @@ -334,7 +334,7 @@ static int acpi_dma_parse_fixed_dma(struct acpi_resource *res, void *data) > > * @dev: struct device to get DMA request from > > * @index: index of FixedDMA descriptor for @dev > > * > > - * Returns pointer to appropriate dma channel on success or NULL on error. > > + * Returns pointer to appropriate dma channel on success or an error pointer. > > */ > > struct dma_chan *acpi_dma_request_slave_chan_by_index(struct device *dev, > > size_t index) > > @@ -349,10 +349,10 @@ struct dma_chan *acpi_dma_request_slave_chan_by_index(struct device *dev, We use default value of chan if it's not found. Perhaps you have to change it as well to something like ERR_PTR(-ENOENT). [] > > @@ -367,7 +367,7 @@ struct dma_chan *acpi_dma_request_slave_chan_by_index(struct device *dev, > > acpi_dev_free_resource_list(&resource_list); > > > > if (dma_spec->slave_id < 0 || dma_spec->chan_id < 0) > > - return NULL; > > + return ERR_PTR(-ENODEV); In this case I would rather use -ENODATA, since it means we have no FixedDMA descriptor for the device under question. [] > > struct dma_chan *acpi_dma_request_slave_chan_by_name(struct device *dev, > > const char *name) > > @@ -415,7 +415,7 @@ struct dma_chan *acpi_dma_request_slave_chan_by_name(struct device *dev, > > else if (!strcmp(name, "rx")) > > index = 1; > > else > > - return NULL; > > + return ERR_PTR(-ENODEV); Perhaps -EINVAL, since it means the input parameter kinda wrong. -- 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.