From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [v1,07/12] usb: roles: Find the usb role switch by also matching against the device node From: Heikki Krogerus Message-Id: <20181203122534.GD24338@kuha.fi.intel.com> Date: Mon, 3 Dec 2018 14:25:34 +0200 To: Andy Shevchenko Cc: chenyu56@huawei.com, USB , devicetree , Linux Kernel Mailing List , Suzhuangluan , Kongfei , Greg Kroah-Hartman , Hans de Goede , John Stultz List-ID: SGksCgpPbiBNb24sIERlYyAwMywgMjAxOCBhdCAxMDoxNzoyMEFNICswMjAwLCBBbmR5IFNoZXZj aGVua28gd3JvdGU6Cj4gT24gTW9uLCBEZWMgMywgMjAxOCBhdCA1OjQ1IEFNIFl1IENoZW4gPGNo ZW55dTU2QGh1YXdlaS5jb20+IHdyb3RlOgo+ID4KPiA+IFRoaXMgcGF0Y2ggYWRkcyBjb2RlIGZv ciBzdXBwb3J0aW5nIGZpbmQgdXNiIHJvbGUgc3dpdGNoIGJ5IG1hdGNoaW5nIGFnYWluc3QKPiA+ IHRoZSBkZXZpY2Ugbm9kZSBkZXNjcmliZWQgdXNpbmcgb2ZfZ3JhcGguCj4gCj4gPiAgI2luY2x1 ZGUgPGxpbnV4L21vZHVsZS5oPgo+ID4gICNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgo+ID4gICNp bmNsdWRlIDxsaW51eC9zbGFiLmg+Cj4gPiArI2luY2x1ZGUgPGxpbnV4L29mLmg+Cj4gPiArI2lu Y2x1ZGUgPGxpbnV4L29mX2dyYXBoLmg+Cj4gCj4gS2VlcCBpdCBvcmRlcmVkLgo+IAo+ID4gK3N0 YXRpYyBpbnQgX19zd2l0Y2hfbWF0Y2hfYnlfb2Zfbm9kZShzdHJ1Y3QgZGV2aWNlICpkZXYsIGNv bnN0IHZvaWQgKm5hbWUpCj4gPiArewo+ID4gKyAgICAgICBpZiAoIWRldi0+cGFyZW50IHx8ICFk ZXYtPnBhcmVudC0+b2Zfbm9kZSkKPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gMDsKPiA+ICsK PiA+ICsgICAgICAgcmV0dXJuIG9mX25vZGVfbmFtZV9lcShkZXYtPnBhcmVudC0+b2Zfbm9kZSwg KGNvbnN0IGNoYXIgKiluYW1lKTsKPiA+ICt9Cj4gCj4gSSB0aGluayBIZWlra2kgaGFzIGludHJv ZHVjZWQgc29tZSBtb3JlIGdlbmVyaWMgZnVuY3Rpb24gZm9yIHRoaXMuCgpZZXMsIGZvciB0aGlz IEknbSBwcm9wb3NpbmcgYSBuZXcgZnVuY3Rpb24gZndub2RlX2dldF9uYW1lKCkgdGhhdApzaG91 bGQgYWxsb3cgdXMgdG8gc3VwcG9ydCBBQ1BJIGFzIHdlbGwgYXMgT0YgcGxhdGZvcm1zOgpodHRw czovL2xrbWwub3JnL2xrbWwvMjAxOC8xMS8yOC83ODQKCj4gPiAgICAgICAgIHN3ID0gZGV2aWNl X2Nvbm5lY3Rpb25fZmluZF9tYXRjaChkZXYsICJ1c2Itcm9sZS1zd2l0Y2giLCBOVUxMLAo+ID4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNiX3JvbGVfc3dpdGNo X21hdGNoKTsKPiAKPiA+ICsgICAgICAgc3cgPSBvZl9ncmFwaF9maW5kX21hdGNoX2J5X3R5cGUo ZGV2LCAidXNiLXJvbGUtc3dpdGNoIik7Cj4gCj4gV2h5IHRoaXMgaXMgaGVyZT8hIGRldmljZV9j b25uZWN0aW9uX2ZpbmRfbWF0Y2goKSBzaG91bGQgdGFrZSBjYXJlIGZvciBPRiBjYXNlLgoKRXhh Y3RseS4gZGV2aWNlX2Nvbm5lY3Rpb25fZmluZF9tYXRjaCgpIG5lZWRzIHRvIHBhcnNlIHRoZSBn cmFwaCAoT0YKYW5kIEFDUEkpLCBhbmQgSSBhbHJlYWR5IG1hZGUgcHJvcG9zYWwgKFJGQykgZm9y IHRoYXQ6Cmh0dHBzOi8vbGttbC5vcmcvbGttbC8yMDE4LzEwLzI0LzYxOQoKSSBoYXZlIHByZXBh cmVkIGEgbW9yZSBmaW5hbGl6ZWQgdmVyc2lvbiBvZiB0aG9zZSBwYXRjaGVzLiBJJ3ZlIGJlZW4K d2FpdGluZyBmb3IgdGhhdCBmd25vZGVfZ2V0X25hbWUoKSB0byBiZSBhY2NlcHRlZCBiZWZvcmUg c2VuZGluZyBpdApvdXQgc2luY2Ugd2UgYXJlIGdvaW5nIHRvIG5lZWQgdGhhdCBmdW5jdGlvbiwg YnV0IEknbGwgc2VuZCBhIG5ldyBSRkMKaWYgbm90aGluZyBoYXBwZW5zIHNvb24gd2l0aCB0aGF0 IGZ3bm9kZV9nZXRfbmFtZSgpIHNlcmllcy4KCgpCciwK From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heikki Krogerus Subject: Re: [PATCH v1 07/12] usb: roles: Find the usb role switch by also matching against the device node Date: Mon, 3 Dec 2018 14:25:34 +0200 Message-ID: <20181203122534.GD24338@kuha.fi.intel.com> References: <20181203034515.91412-1-chenyu56@huawei.com> <20181203034515.91412-8-chenyu56@huawei.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org To: Andy Shevchenko Cc: chenyu56@huawei.com, USB , devicetree , Linux Kernel Mailing List , Suzhuangluan , Kongfei , Greg Kroah-Hartman , Hans de Goede , John Stultz List-Id: devicetree@vger.kernel.org Hi, On Mon, Dec 03, 2018 at 10:17:20AM +0200, Andy Shevchenko wrote: > On Mon, Dec 3, 2018 at 5:45 AM Yu Chen wrote: > > > > This patch adds code for supporting find usb role switch by matching against > > the device node described using of_graph. > > > #include > > #include > > #include > > +#include > > +#include > > Keep it ordered. > > > +static int __switch_match_by_of_node(struct device *dev, const void *name) > > +{ > > + if (!dev->parent || !dev->parent->of_node) > > + return 0; > > + > > + return of_node_name_eq(dev->parent->of_node, (const char *)name); > > +} > > I think Heikki has introduced some more generic function for this. Yes, for this I'm proposing a new function fwnode_get_name() that should allow us to support ACPI as well as OF platforms: https://lkml.org/lkml/2018/11/28/784 > > sw = device_connection_find_match(dev, "usb-role-switch", NULL, > > usb_role_switch_match); > > > + sw = of_graph_find_match_by_type(dev, "usb-role-switch"); > > Why this is here?! device_connection_find_match() should take care for OF case. Exactly. device_connection_find_match() needs to parse the graph (OF and ACPI), and I already made proposal (RFC) for that: https://lkml.org/lkml/2018/10/24/619 I have prepared a more finalized version of those patches. I've been waiting for that fwnode_get_name() to be accepted before sending it out since we are going to need that function, but I'll send a new RFC if nothing happens soon with that fwnode_get_name() series. Br, -- heikki