From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lee Jones Subject: Re: [PATCH] soc: ti: wkup_m3_ipc: switch to using remoteproc OF infrastructure Date: Fri, 12 Aug 2016 12:02:01 +0100 Message-ID: <20160812110201.GD25844@dell> References: <20160812003529.519-1-s-anna@ti.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20160812003529.519-1-s-anna@ti.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: Suman Anna Cc: Dave Gerlach , Tony Lindgren , linux-remoteproc@vger.kernel.org, Bjorn Andersson , Rob Herring , Santosh Shilimkar , linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org List-Id: linux-omap@vger.kernel.org T24gVGh1LCAxMSBBdWcgMjAxNiwgU3VtYW4gQW5uYSB3cm90ZToKCj4gVGhlIHJlbW90ZXByb2Mg ZnJhbWV3b3JrIGhhcyBiZWVuIGVuaGFuY2VkIHJlY2VudGx5IHRvIHByb3ZpZGUgbmV3Cj4gT0Yg QVBJIHRvIHJldHJpZXZlIGEgcmVtb3RlcHJvYyBoYW5kbGUgYnkgY2xpZW50IGRyaXZlcnMgdGhy b3VnaCBhCj4gc3RhbmRhcmQgJ3Jwcm9jcycgcHJvcGVydHkgaW4gY2xpZW50IG5vZGVzLiBUaGUg d2t1cF9tM19pcGMgZHJpdmVyCj4gaGFzIGJlZW4gdXNpbmcgYSBjdXN0b20gJ3RpLHJwcm9jJyBw cm9wZXJ0eSB1bnRpbCBub3csIHN3aXRjaCB0aGlzCj4gdG8gdXNlIHRoaXMgbmV3IE9GIGluZnJh c3RydWN0dXJlLiBUaGUgd2t1cF9tM19pcGMgZHJpdmVyIGhhcyBiZWVuCj4gZml4ZWQgdXAgdG8g cHJvdmlkZSBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciBvbGRlciBEVEJzIGJ5Cj4gcmVwbGFj aW5nIHRoZSBvbGRlciBwcm9wZXJ0eSB3aXRoIHRoZSBzdGFuZGFyZCBuZXdlciBwcm9wZXJ0eS4K PiAKPiBUaGUgd2t1cF9tM19pcGMgYmluZGluZyBoYXMgYWxzbyBiZWVuIHVwZGF0ZWQgYWNjb3Jk aW5nbHkuCj4gCj4gU2lnbmVkLW9mZi1ieTogU3VtYW4gQW5uYSA8cy1hbm5hQHRpLmNvbT4KPiAt LS0KPiBUaGlzIHBhdGNoIGlzIGJhc2VkIG9uIHRoZSBkaXNjdXNzaW9uIFsxXSBmb3IgaW50cm9k dWNpbmcgbmV3IHN0YW5kYXJkCj4gT0YgQVBJIGluIHJlbW90ZXByb2MgY29yZSBzZXJpZXMgWzJd IGFuZCB0aGUgZXhwb3J0aW5nIG9mIGNvdXBsZSBvZgo+IGZ1bmN0aW9ucyBpbiBPRiBiYXNlIGNv ZGUgWzNdLgo+IAo+IFdpdGggdGhpcyBpbiBwbGFjZSwgdGhlIHJlbW90ZXByb2MgY29yZSBuZWVk IG5vdCBiZSBsb29raW5nIGZvciB0aGUKPiBUSSBzcGVjaWZpYyBwcm9wZXJ0eSBhbnltb3JlLiBJ IHdpbGwgc3VibWl0IHRoZSBEVFMgY2hhbmdlcyBvbmNlIHRoaXMKPiBtYWtlcyBpdCB0byBtYWlu bGluZS4KPiAKPiByZWdhcmRzCj4gU3VtYW4KPiAKPiBbMV0gaHR0cHM6Ly9wYXRjaHdvcmsua2Vy bmVsLm9yZy9wYXRjaC85MjM3NzY3Lwo+IFsyXSBodHRwOi8vbWFyYy5pbmZvLz9sPWxpbnV4LWtl cm5lbCZtPTE0Njg5NDM0MTcwMTAxMCZ3PTIKPiBbM10gaHR0cHM6Ly9wYXRjaHdvcmsua2VybmVs Lm9yZy9wYXRjaC85Mjc2MTgxLwo+IAo+ICAuLi4vZGV2aWNldHJlZS9iaW5kaW5ncy9zb2MvdGkv d2t1cF9tM19pcGMudHh0ICAgICB8ICA5ICsrKysrKy0tCj4gIGRyaXZlcnMvc29jL3RpL3drdXBf bTNfaXBjLmMgICAgICAgICAgICAgICAgICAgICAgIHwgMjYgKysrKysrKysrKysrKysrKysrKysr LQo+ICAyIGZpbGVzIGNoYW5nZWQsIDMyIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCj4g Cj4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9zb2MvdGkv d2t1cF9tM19pcGMudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3NvYy90 aS93a3VwX20zX2lwYy50eHQKPiBpbmRleCA0MDE1NTA0ODdlZDYuLjJlYTdkZDkxYWNmZiAxMDA2 NDQKPiAtLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvc29jL3RpL3drdXBf bTNfaXBjLnR4dAo+ICsrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9zb2Mv dGkvd2t1cF9tM19pcGMudHh0Cj4gQEAgLTIzLDEyICsyMywxNyBAQCBSZXF1aXJlZCBwcm9wZXJ0 aWVzOgo+ICAJCQl3aXRoIHRoZSBXYWtldXAgTTMgcHJvY2Vzc29yCj4gIC0gaW50ZXJydXB0czoJ CUNvbnRhaW5zIHRoZSBpbnRlcnJ1cHQgaW5mb3JtYXRpb24gZm9yIHRoZSB3a3VwX20zCj4gIAkJ CWludGVycnVwdCB0aGF0IHNpZ25hbHMgdGhlIE1QVS4KPiAtLSB0aSxycHJvYzoJCXBoYW5kbGUg dG8gdGhlIHdrdXBfbTMgcnByb2Mgbm9kZSBzbyB0aGUgSVBDIGRyaXZlcgo+ICstIHJwcm9jczoJ CXBoYW5kbGUgdG8gdGhlIHdrdXBfbTMgcnByb2Mgbm9kZSBzbyB0aGUgSVBDIGRyaXZlcgo+ICAJ CQljYW4gYm9vdCBpdC4KPiAgLSBtYm94ZXM6CQlwaGFuZGxlcyB1c2VkIGJ5IElQQyBmcmFtZXdv cmsgdG8gZ2V0IGNvcnJlY3QgbWJveAo+ICAJCQljaGFubmVsIGZvciBjb21tdW5pY2F0aW9uLiBN dXN0IHBvaW50IHRvIGFwcHJvcHJpYXRlCj4gIAkJCW1ib3hfd2t1cG0zIGNoaWxkIG5vZGUuCj4g IAo+ICtEZXByZWNhdGVkIHByb3BlcnRpZXM6Cj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAr LSB0aSxycHJvYzoJCVRoaXMgcHJvcGVydHkgaGFzIGJlZW4gcmVwbGFjZWQgd2l0aCB0aGUgInJw cm9jcyIKPiArCQkJcHJvcGVydHkuCj4gKwo+ICBFeGFtcGxlOgo+ICAtLS0tLS0tLQo+ICAvKiBB TTMzeHggKi8KPiBAQCAtNDgsNyArNTMsNyBAQCBFeGFtcGxlOgo+ICAJCQkJY29tcGF0aWJsZSA9 ICJ0aSxhbTMzNTItd2t1cC1tMy1pcGMiOwo+ICAJCQkJcmVnID0gPDB4MTMyNCAweDI0PjsKPiAg CQkJCWludGVycnVwdHMgPSA8Nzg+Owo+IC0JCQkJdGkscnByb2MgPSA8JndrdXBfbTM+Owo+ICsJ CQkJcnByb2NzID0gPCZ3a3VwX20zPjsKPiAgCQkJCW1ib3hlcyA9IDwmbWFpbGJveCAmbWJveF93 a3VwbTM+Owo+ICAJCQl9Owo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9zb2MvdGkvd2t1cF9t M19pcGMuYyBiL2RyaXZlcnMvc29jL3RpL3drdXBfbTNfaXBjLmMKPiBpbmRleCA4ODIzY2M4MWFl NDUuLjg2MDg1ZjliZjZhOCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3NvYy90aS93a3VwX20zX2lw Yy5jCj4gKysrIGIvZHJpdmVycy9zb2MvdGkvd2t1cF9tM19pcGMuYwo+IEBAIC0xLDcgKzEsNyBA QAo+ICAvKgo+ICAgKiBBTXgzIFdrdXAgTTMgSVBDIGRyaXZlcgo+ICAgKgo+IC0gKiBDb3B5cmln aHQgKEMpIDIwMTUgVGV4YXMgSW5zdHJ1bWVudHMsIEluYy4KPiArICogQ29weXJpZ2h0IChDKSAy MDE1LTIwMTYgVGV4YXMgSW5zdHJ1bWVudHMsIEluYy4KPiAgICoKPiAgICogRGF2ZSBHZXJsYWNo IDxkLWdlcmxhY2hAdGkuY29tPgo+ICAgKgo+IEBAIC0zOTAsNiArMzkwLDggQEAgc3RhdGljIGlu dCB3a3VwX20zX2lwY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICAJc3Ry dWN0IHJlc291cmNlICpyZXM7Cj4gIAlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2s7Cj4gIAlzdHJ1 Y3Qgd2t1cF9tM19pcGMgKm0zX2lwYzsKPiArCXN0cnVjdCBwcm9wZXJ0eSAqbnByb3AsICpvcHJv cDsKPiArCWNvbnN0IGNoYXIgbnByb3BfbmFtZVtdID0gInJwcm9jcyI7Cj4gIAo+ICAJbTNfaXBj ID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCptM19pcGMpLCBHRlBfS0VSTkVMKTsKPiAgCWlm ICghbTNfaXBjKQo+IEBAIC00MTUsNiArNDE3LDI4IEBAIHN0YXRpYyBpbnQgd2t1cF9tM19pcGNf cHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAgCQlyZXR1cm4gcmV0Owo+ICAJ fQo+ICAKPiArCS8qIHByb3ZpZGUgY29tcGF0aWJpbGl0eSBmb3Igb2xkZXIgRFRCcyB1c2luZyB0 aSxycHJvYyBwcm9wZXJ0eSAqLwo+ICsJbnByb3AgPSBvZl9maW5kX3Byb3BlcnR5KGRldi0+b2Zf bm9kZSwgInJwcm9jcyIsIE5VTEwpOwo+ICsJaWYgKCFucHJvcCkgewo+ICsJCW9wcm9wID0gb2Zf ZmluZF9wcm9wZXJ0eShkZXYtPm9mX25vZGUsICJ0aSxycHJvYyIsIE5VTEwpOwo+ICsJCWlmICgh b3Byb3ApIHsKPiArCQkJZGV2X2VycigmcGRldi0+ZGV2LCAibm9kZSBpcyBtaXNzaW5nIHRpLHJw cm9jIHByb3BlcnR5XG4iKTsKPiArCQkJcmV0dXJuIC1FTk9ERVY7Cj4gKwkJfQo+ICsKPiArCQlu cHJvcCA9IGt6YWxsb2Moc2l6ZW9mKCpucHJvcCkgKyBzaXplb2YobnByb3BfbmFtZSksCj4gKwkJ CQlHRlBfS0VSTkVMKTsKPiArCQlpZiAoIW5wcm9wKQo+ICsJCQlyZXR1cm4gLUVOT01FTTsKPiAr Cj4gKwkJbnByb3AtPm5hbWUgPSAoY2hhciAqKW5wcm9wICsgc2l6ZW9mKCpucHJvcCk7Cj4gKwkJ c25wcmludGYobnByb3AtPm5hbWUsIHNpemVvZihucHJvcF9uYW1lKSwgbnByb3BfbmFtZSk7Cj4g KwkJbnByb3AtPnZhbHVlID0gb3Byb3AtPnZhbHVlOwo+ICsJCW5wcm9wLT5sZW5ndGggPSBvcHJv cC0+bGVuZ3RoOwo+ICsJCW9mX3VwZGF0ZV9wcm9wZXJ0eShkZXYtPm9mX25vZGUsIG5wcm9wKTsK PiArCQlvZl9yZW1vdmVfcHJvcGVydHkoZGV2LT5vZl9ub2RlLCBvcHJvcCk7Cj4gKwl9Cj4gKwoK KzEgZm9yIGdldHRpbmcgdGhlIGZ1bmN0aW9uYWxpdHkgb3V0IG9mIGNvcmUgY29kZS4KCi0xMDAg Zm9yIGhhdmluZyB0byBqdW1wIHRob3VnaCBhbGwgdGhlc2UgaG9vcHMuCgpJZiB5b3UgYXJlIGdv aW5nIHRvIGtlZXAgYWxsIG9mIHRoaXMsIEkgd291bGQgYXQgbGVhc3QgdHVjayBpdCBhd2F5IGlu CmEgaGVhZGVyIGZpbGUgb3Igc29tZXRoaW5nLgoKPiAgCW0zX2lwYy0+bWJveF9jbGllbnQuZGV2 ID0gZGV2Owo+ICAJbTNfaXBjLT5tYm94X2NsaWVudC50eF9kb25lID0gTlVMTDsKPiAgCW0zX2lw Yy0+bWJveF9jbGllbnQudHhfcHJlcGFyZSA9IE5VTEw7CgotLSAKTGVlIEpvbmVzCkxpbmFybyBT VE1pY3JvZWxlY3Ryb25pY3MgTGFuZGluZyBUZWFtIExlYWQKTGluYXJvLm9yZyDilIIgT3BlbiBz b3VyY2Ugc29mdHdhcmUgZm9yIEFSTSBTb0NzCkZvbGxvdyBMaW5hcm86IEZhY2Vib29rIHwgVHdp dHRlciB8IEJsb2cKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMu aW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2xpbnV4LWFybS1rZXJuZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Return-Path: Date: Fri, 12 Aug 2016 12:02:01 +0100 From: Lee Jones Subject: Re: [PATCH] soc: ti: wkup_m3_ipc: switch to using remoteproc OF infrastructure Message-ID: <20160812110201.GD25844@dell> References: <20160812003529.519-1-s-anna@ti.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20160812003529.519-1-s-anna@ti.com> To: Suman Anna Cc: Santosh Shilimkar , Tony Lindgren , Bjorn Andersson , Rob Herring , Dave Gerlach , linux-omap@vger.kernel.org, linux-remoteproc@vger.kernel.org, linux-arm-kernel@lists.infradead.org List-ID: On Thu, 11 Aug 2016, Suman Anna wrote: > The remoteproc framework has been enhanced recently to provide new > OF API to retrieve a remoteproc handle by client drivers through a > standard 'rprocs' property in client nodes. The wkup_m3_ipc driver > has been using a custom 'ti,rproc' property until now, switch this > to use this new OF infrastructure. The wkup_m3_ipc driver has been > fixed up to provide backward compatibility for older DTBs by > replacing the older property with the standard newer property. > > The wkup_m3_ipc binding has also been updated accordingly. > > Signed-off-by: Suman Anna > --- > This patch is based on the discussion [1] for introducing new standard > OF API in remoteproc core series [2] and the exporting of couple of > functions in OF base code [3]. > > With this in place, the remoteproc core need not be looking for the > TI specific property anymore. I will submit the DTS changes once this > makes it to mainline. > > regards > Suman > > [1] https://patchwork.kernel.org/patch/9237767/ > [2] http://marc.info/?l=linux-kernel&m=146894341701010&w=2 > [3] https://patchwork.kernel.org/patch/9276181/ > > .../devicetree/bindings/soc/ti/wkup_m3_ipc.txt | 9 ++++++-- > drivers/soc/ti/wkup_m3_ipc.c | 26 +++++++++++++++++++++- > 2 files changed, 32 insertions(+), 3 deletions(-) > > diff --git a/Documentation/devicetree/bindings/soc/ti/wkup_m3_ipc.txt b/Documentation/devicetree/bindings/soc/ti/wkup_m3_ipc.txt > index 401550487ed6..2ea7dd91acff 100644 > --- a/Documentation/devicetree/bindings/soc/ti/wkup_m3_ipc.txt > +++ b/Documentation/devicetree/bindings/soc/ti/wkup_m3_ipc.txt > @@ -23,12 +23,17 @@ Required properties: > with the Wakeup M3 processor > - interrupts: Contains the interrupt information for the wkup_m3 > interrupt that signals the MPU. > -- ti,rproc: phandle to the wkup_m3 rproc node so the IPC driver > +- rprocs: phandle to the wkup_m3 rproc node so the IPC driver > can boot it. > - mboxes: phandles used by IPC framework to get correct mbox > channel for communication. Must point to appropriate > mbox_wkupm3 child node. > > +Deprecated properties: > +---------------------- > +- ti,rproc: This property has been replaced with the "rprocs" > + property. > + > Example: > -------- > /* AM33xx */ > @@ -48,7 +53,7 @@ Example: > compatible = "ti,am3352-wkup-m3-ipc"; > reg = <0x1324 0x24>; > interrupts = <78>; > - ti,rproc = <&wkup_m3>; > + rprocs = <&wkup_m3>; > mboxes = <&mailbox &mbox_wkupm3>; > }; > > diff --git a/drivers/soc/ti/wkup_m3_ipc.c b/drivers/soc/ti/wkup_m3_ipc.c > index 8823cc81ae45..86085f9bf6a8 100644 > --- a/drivers/soc/ti/wkup_m3_ipc.c > +++ b/drivers/soc/ti/wkup_m3_ipc.c > @@ -1,7 +1,7 @@ > /* > * AMx3 Wkup M3 IPC driver > * > - * Copyright (C) 2015 Texas Instruments, Inc. > + * Copyright (C) 2015-2016 Texas Instruments, Inc. > * > * Dave Gerlach > * > @@ -390,6 +390,8 @@ static int wkup_m3_ipc_probe(struct platform_device *pdev) > struct resource *res; > struct task_struct *task; > struct wkup_m3_ipc *m3_ipc; > + struct property *nprop, *oprop; > + const char nprop_name[] = "rprocs"; > > m3_ipc = devm_kzalloc(dev, sizeof(*m3_ipc), GFP_KERNEL); > if (!m3_ipc) > @@ -415,6 +417,28 @@ static int wkup_m3_ipc_probe(struct platform_device *pdev) > return ret; > } > > + /* provide compatibility for older DTBs using ti,rproc property */ > + nprop = of_find_property(dev->of_node, "rprocs", NULL); > + if (!nprop) { > + oprop = of_find_property(dev->of_node, "ti,rproc", NULL); > + if (!oprop) { > + dev_err(&pdev->dev, "node is missing ti,rproc property\n"); > + return -ENODEV; > + } > + > + nprop = kzalloc(sizeof(*nprop) + sizeof(nprop_name), > + GFP_KERNEL); > + if (!nprop) > + return -ENOMEM; > + > + nprop->name = (char *)nprop + sizeof(*nprop); > + snprintf(nprop->name, sizeof(nprop_name), nprop_name); > + nprop->value = oprop->value; > + nprop->length = oprop->length; > + of_update_property(dev->of_node, nprop); > + of_remove_property(dev->of_node, oprop); > + } > + +1 for getting the functionality out of core code. -100 for having to jump though all these hoops. If you are going to keep all of this, I would at least tuck it away in a header file or something. > m3_ipc->mbox_client.dev = dev; > m3_ipc->mbox_client.tx_done = NULL; > m3_ipc->mbox_client.tx_prepare = NULL; -- Lee Jones Linaro STMicroelectronics Landing Team Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog From mboxrd@z Thu Jan 1 00:00:00 1970 From: lee.jones@linaro.org (Lee Jones) Date: Fri, 12 Aug 2016 12:02:01 +0100 Subject: [PATCH] soc: ti: wkup_m3_ipc: switch to using remoteproc OF infrastructure In-Reply-To: <20160812003529.519-1-s-anna@ti.com> References: <20160812003529.519-1-s-anna@ti.com> Message-ID: <20160812110201.GD25844@dell> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Thu, 11 Aug 2016, Suman Anna wrote: > The remoteproc framework has been enhanced recently to provide new > OF API to retrieve a remoteproc handle by client drivers through a > standard 'rprocs' property in client nodes. The wkup_m3_ipc driver > has been using a custom 'ti,rproc' property until now, switch this > to use this new OF infrastructure. The wkup_m3_ipc driver has been > fixed up to provide backward compatibility for older DTBs by > replacing the older property with the standard newer property. > > The wkup_m3_ipc binding has also been updated accordingly. > > Signed-off-by: Suman Anna > --- > This patch is based on the discussion [1] for introducing new standard > OF API in remoteproc core series [2] and the exporting of couple of > functions in OF base code [3]. > > With this in place, the remoteproc core need not be looking for the > TI specific property anymore. I will submit the DTS changes once this > makes it to mainline. > > regards > Suman > > [1] https://patchwork.kernel.org/patch/9237767/ > [2] http://marc.info/?l=linux-kernel&m=146894341701010&w=2 > [3] https://patchwork.kernel.org/patch/9276181/ > > .../devicetree/bindings/soc/ti/wkup_m3_ipc.txt | 9 ++++++-- > drivers/soc/ti/wkup_m3_ipc.c | 26 +++++++++++++++++++++- > 2 files changed, 32 insertions(+), 3 deletions(-) > > diff --git a/Documentation/devicetree/bindings/soc/ti/wkup_m3_ipc.txt b/Documentation/devicetree/bindings/soc/ti/wkup_m3_ipc.txt > index 401550487ed6..2ea7dd91acff 100644 > --- a/Documentation/devicetree/bindings/soc/ti/wkup_m3_ipc.txt > +++ b/Documentation/devicetree/bindings/soc/ti/wkup_m3_ipc.txt > @@ -23,12 +23,17 @@ Required properties: > with the Wakeup M3 processor > - interrupts: Contains the interrupt information for the wkup_m3 > interrupt that signals the MPU. > -- ti,rproc: phandle to the wkup_m3 rproc node so the IPC driver > +- rprocs: phandle to the wkup_m3 rproc node so the IPC driver > can boot it. > - mboxes: phandles used by IPC framework to get correct mbox > channel for communication. Must point to appropriate > mbox_wkupm3 child node. > > +Deprecated properties: > +---------------------- > +- ti,rproc: This property has been replaced with the "rprocs" > + property. > + > Example: > -------- > /* AM33xx */ > @@ -48,7 +53,7 @@ Example: > compatible = "ti,am3352-wkup-m3-ipc"; > reg = <0x1324 0x24>; > interrupts = <78>; > - ti,rproc = <&wkup_m3>; > + rprocs = <&wkup_m3>; > mboxes = <&mailbox &mbox_wkupm3>; > }; > > diff --git a/drivers/soc/ti/wkup_m3_ipc.c b/drivers/soc/ti/wkup_m3_ipc.c > index 8823cc81ae45..86085f9bf6a8 100644 > --- a/drivers/soc/ti/wkup_m3_ipc.c > +++ b/drivers/soc/ti/wkup_m3_ipc.c > @@ -1,7 +1,7 @@ > /* > * AMx3 Wkup M3 IPC driver > * > - * Copyright (C) 2015 Texas Instruments, Inc. > + * Copyright (C) 2015-2016 Texas Instruments, Inc. > * > * Dave Gerlach > * > @@ -390,6 +390,8 @@ static int wkup_m3_ipc_probe(struct platform_device *pdev) > struct resource *res; > struct task_struct *task; > struct wkup_m3_ipc *m3_ipc; > + struct property *nprop, *oprop; > + const char nprop_name[] = "rprocs"; > > m3_ipc = devm_kzalloc(dev, sizeof(*m3_ipc), GFP_KERNEL); > if (!m3_ipc) > @@ -415,6 +417,28 @@ static int wkup_m3_ipc_probe(struct platform_device *pdev) > return ret; > } > > + /* provide compatibility for older DTBs using ti,rproc property */ > + nprop = of_find_property(dev->of_node, "rprocs", NULL); > + if (!nprop) { > + oprop = of_find_property(dev->of_node, "ti,rproc", NULL); > + if (!oprop) { > + dev_err(&pdev->dev, "node is missing ti,rproc property\n"); > + return -ENODEV; > + } > + > + nprop = kzalloc(sizeof(*nprop) + sizeof(nprop_name), > + GFP_KERNEL); > + if (!nprop) > + return -ENOMEM; > + > + nprop->name = (char *)nprop + sizeof(*nprop); > + snprintf(nprop->name, sizeof(nprop_name), nprop_name); > + nprop->value = oprop->value; > + nprop->length = oprop->length; > + of_update_property(dev->of_node, nprop); > + of_remove_property(dev->of_node, oprop); > + } > + +1 for getting the functionality out of core code. -100 for having to jump though all these hoops. If you are going to keep all of this, I would at least tuck it away in a header file or something. > m3_ipc->mbox_client.dev = dev; > m3_ipc->mbox_client.tx_done = NULL; > m3_ipc->mbox_client.tx_prepare = NULL; -- Lee Jones Linaro STMicroelectronics Landing Team Lead Linaro.org ? Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog