From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 09531378D8C; Fri, 6 Mar 2026 16:24:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772814287; cv=none; b=o+kuCoDedEHQVmZQd6F80EUGOl9OFQDY6BU17U5qBsSnFHLwAV5kKnreIVXWiI2sC8h/WJYmxTZGMA/gQ88ZziToLxNII4PRUFrT4C1Rs8ST4WOYA0lLiTINdhYSeq57HeqCEWtvi2A4kIREjEcns1tkfn2zMzxChWaX5obUFus= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772814287; c=relaxed/simple; bh=mVUOZgbOS6DXJitOQxj/krcy0RsEcW4DOajHXSahOI4=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=ZP9NV+4uD3dAers6rn49Hf26ZUB06pZsGrMedmGrglpIora22YyXU5NcQ8tN38NAkpcgkqSJsufxoQCHl8H0eL4A+Nmoa5PJGf/Db0KShMrj7tUu5526MJcSITEMfdzHap1g8uggII7/jpcy/bsvbdDk0J7pItRfasul3eFIFP8= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=oS8FfrAG; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="oS8FfrAG" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1772814284; bh=mVUOZgbOS6DXJitOQxj/krcy0RsEcW4DOajHXSahOI4=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=oS8FfrAG3CtxyX5R8gOSkNaq42QIwQgNT1EOA8DQ4gmIi0draP1YVLYybBuE711i2 gARIKjTE/OdfbTlyVWcobOFYLhAIwWNMzOY/Un1+K8fFynaIxqmWQV4yDaNwzvhZ8d cJsLJAT+OkxIRWO/5FjVhD8dJunjx1lyZbL/SRLImRqRKtS5u1i8xMyfb8gWcxER8u oGA+g46pZra/RTSCw9QSELKAt56yb5UCTQ3a9iVJ26D8MldGikauTcMld4lrH1tq2b ddtzdVOtj1sE9zHOokumlZC6zrVUBvp6RD3XfEzPhGJEguUiQbVO1VzbBKUFod+RXT dIfjpF1Lsy1HA== Received: from [IPV6:2a01:e0a:212:79f0:be92:a52a:153f:7a60] (unknown [IPv6:2a01:e0a:212:79f0:be92:a52a:153f:7a60]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: aferraris) by bali.collaboradmins.com (Postfix) with ESMTPSA id DFF8117E0EAC; Fri, 6 Mar 2026 17:24:43 +0100 (CET) Message-ID: <736aabca-e39b-4cef-b914-a894e0867bba@collabora.com> Date: Fri, 6 Mar 2026 17:24:43 +0100 Precedence: bulk X-Mailing-List: linux-usb@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] Revert "tcpm: allow looking for role_sw device in the main node" To: Xu Yang Cc: badhri@google.com, heikki.krogerus@linux.intel.com, gregkh@linuxfoundation.org, dsimic@manjaro.org, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, jun.li@nxp.com References: <20260224110139.3812757-1-xu.yang_2@nxp.com> <30bc5aeb-382b-49e0-824a-303230110313@collabora.com> <073cbeb3-04a8-4b26-a7b6-ef0b7654c34c@collabora.com> <46zvnvkhnoa5w27o72tkex2rw6ha3fuisyeomhmsl5s5453x7b@fib4tezyywke> From: Arnaud Ferraris Content-Language: en-US, fr Autocrypt: addr=arnaud.ferraris@collabora.com; keydata= xsFNBF6V3oEBEADExzr1s9YngScJ0KNMGen7k3cH1sn0h7tf7AFlXA94jXBgFyzIMT5lqey0 9LwcO6AIkFF+gRVAKIblkeacsy5W6OQXgdFMitx936oAcU0XYQ2X5NxCQHzEsWYzkLIZnFTB Ur3CW9HtAjAircED5KVJzA1GM8BEFfG3LoonWsw0CO9UN2arwT1uLARSPgL6LPpmo1IOSwJh D6vtOyzlRrLkw4KHzUobEiIjxzjXttH8TC3I6OSb8kavG08cmA+DMf/nLFxK0QbdOP2wSZ0w UTU6RBikuLmDBaT4PphuwtAgVwhO9l0PNRoYzugrXuRF0RCLpmJN05tz/o/w7Y8ieLgQE8Om xGKXJyo0T4wlUl9ARM9Y0ZIRhdI1alFspBcF63oyZmOAT+2fPLr6W0fEfmtMBhDaZun2ZdKR M1JwTTkh8jVLs3svM3Ch2JjiH0kgYA0oza5fXaB9s4Fa4fxpmacx8fawKR5r/BhmYNK15PPd YxIZJqnTJgCDI2G4tQ9K+Eev1rBo6i8n96rDqxTxdyQixMhxMmGtj6/bknpVIN947ABKDHdt UsWa4E+qwFrYDXT7RxhL+JGn4VrtIR1kpTJHfmVXnn+RW7JKdDkalvEuXJSOArszcgpDlYRq +ZT/ybdcmdtuz8+Ev0fig/9WdPBHwg5oKDlT6+iN0oISAzoFSQARAQABzS9Bcm5hdWQgRmVy cmFyaXMgPGFybmF1ZC5mZXJyYXJpc0Bjb2xsYWJvcmEuY29tPsLBlAQTAQgAPgIbAwULCQgH AwUVCgkICwUWAgMBAAIeAQIXgBYhBHlts5PcP/QCIrbqItPrtZZruZGWBQJlp4UlBQkMOAKk AAoJENPrtZZruZGW/jsP/iY7xHszgSsLpmm/Nei09de28i5+KQgOfOFPEIUwY6e+SJDlc0CN 5wBEGsiehI+ntDyYXjaQaWzwZbZ+iclSvZpINyekIeYFgfCwfraXMQ2rf0Hl1msu5BGZs7nz w9aQyNKRaS7mkMQlUKZAjV/rqmdrYyQX2b05Pznc/tI8Qj+QDnE097smlqwcPsCLMFjvEpdy t1iVfqM7rlEjCZR+agb/amAdG9FYDHuUaqhewgB/jVTnA7m19QI1hGDVhZ3pI7DFFQC5+Q7m 4E7snHk9mdnzQKZO+w6DBjRgnRBtiifzlbb3UqTv6yZgVqrL3ENedco7Y1umVyXoqT4nz5SZ 2CdWaEJx00JDQP/P1Fc4KBj40DrKScib2ZzIXVpzej4Ab2S0Kq7UuS/8fPA8Z7wUwPs4AXrb KZ3pNnh0t5uAWS3sh7IRTvEBquwa9F129EB2HoalJl+fpSJz0qTCTknrPkMY9KhRcXH43CjX mvvSaqkFs2R0jO01tZBpWUlyfQoJgrqMw4A+EcmjLg2NeVgRNrPaH2hPtdBegcAdKqc6nuBa HZ8m01cVCQw6hC3rceWBx42GeFt8F4we8LzbAbfo67hXASyWBRHfzt84zoPOy25mpNaIJB/u 7/bO+63d64NxuRlZiLvGZxABTpLI2pBKeZFwnFMkh4aMvS9P4ymdPdGIzsFNBF6V3oEBEAC2 wPaxEIKrqMR3f58Tj2j/fIaTxzqv5g449HN5+mkMzl05fNtlkWMpxDQhMPKaNDYgayaVBujP GSr0x3Na3nf7olOF1MWe396vhhHsOgsCglpdpZnOu6VBfUBjUnwtFr0GldBfGKsFQcC5/lOo FFLF6mUJgvXhfBEcaFkqBXjndRSIYI/6Jo3ryTbUZGuorOVlC97RZEZYOS8detm/MPyuoXMN Wp+UKXMrHe9b6+GW0r1qtoP9arCS0wVsE6pFsUnAXtjre4tsFf6CZIBZG9+JsQpHuk4ooeac hYKnYu+KN4cxbjozheeRQmLCcis6sZ3OnlwEroYKKzH88sAOJRSSlF2DtuyqEHJkzuhZxauR Qr1IV1zYQxVTncga7Qv18mOBhvQUoZHMbZUlKMlPgvEofzvim6mKWuMa7wrZEYpmwu4O+hv0 cJiddomrfqjVJVXYOPL7Wln6B+2MSzx7tlkErGOzRqnaFURh4ozFj5MI/p4aFSjVnwvhm8bW ha26I4pEV2uwSiDWPuUN4DBwbic5HRB5/zM5tdKJ1k95NXAMShtdIR5095fc+4RgDYXWlSk4 GO30TrRq79jWvwZM4Zi1UzdzQoQKx4CerOqKHsr2JgAcYhMZ2iIJeLanxfMhKPXm7gZSMBM9 RbR+LbURmbUuBltRveD1u+W0u/hYoVk5jwARAQABwsF2BBgBCAAgAhsMFiEEeW2zk9w/9AIi tuoi0+u1lmu5kZYFAmWnhAkACgkQ0+u1lmu5kZbj+A//WQWE3YEn1aAXyb89DYEWALeASiWX a1PMAZRP5sYtpzBUwL8Ch9VRrb08eipZg8NvYfPoPUCgGOcn+ZCp/4xT+LbmLQ6Bt90i8LPP liNlPLpkmBK57CXfD6f/0ntwRbNmEBoJGUpEe4mDVEHlle+RQO4aLxOjLcpTqocMc28vZp6u 1ZRNP7YDq3OqUmUR5C3KxIGAPuqc8ODktRZaWKUHJBnvqzUEElVdDbKnSXtrQbG6oP84wabX Do8NPonMd2AY0ATKX1xVHf1C+xqdzcChd+NaxmJ4uGuMojRQa2y991wM1cep0eWr34W5dN7i AKo0yD8kNk73guU43PCFT5SJ20+LtbwLEN13MSvOxfLwf4/wy+OU1cCm1gN617D59Vym7nGo H2zdM9IA5dIALuLOksesRqzO8ZV8yD8q1WqpKwWpy32piEmW/2w1eEHsgRbsX68D8qO0ad0d 67AW3CmTtpLg58/3CpBN7l2yQ55iqqQcHHhxJSAxGgzBQ4wyOau6q/1i17FCYoXfSQI0mJZx OSAczP+kGnkQKkgo4xMODyU3aWmCEFfDP1gxZlhPLbd0qR39h3do3bx5D16yF1mjm9r1GhKh OnYrUe4QH6N7K+DMJh0j7XIzQmwhEH26f2TUesr7deZEms4GGOyzREbD9y0UBYOIl8YHMdd9 L9jD4jU= In-Reply-To: <46zvnvkhnoa5w27o72tkex2rw6ha3fuisyeomhmsl5s5453x7b@fib4tezyywke> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hi Xu, Le 06/03/2026 à 10:52, Xu Yang a écrit : > Hi Arnaud, > > On Thu, Mar 05, 2026 at 05:36:08PM +0100, Arnaud Ferraris wrote: >> Hi Xu, >> >> Le 05/03/2026 à 10:40, Xu Yang a écrit : >>> On Fri, Feb 27, 2026 at 04:45:30PM +0100, Arnaud Ferraris wrote: >>>> Hi Xu, >>>> >>>> Le 25/02/2026 à 03:57, Xu Yang a écrit : >>>>> Hi Arnaud, >>>>> >>>>> On Tue, Feb 24, 2026 at 12:33:33PM +0100, Arnaud Ferraris wrote: >>>>>> Hi, >>>>>> >>>>>> Le 24/02/2026 à 12:01, Xu Yang a écrit : >>>>>>> This reverts commit 1366cd228b0c67b60a2c0c26ef37fe9f7cfedb7f. >>>>>> >>>>>> I believe a plain revert isn't the right solution here, as we'll get to the >>>>>> same point as we were before 1366cd228b0c, where some devices stopped >>>>>> working properly with newer kernels. >>>>> >>>>> I don't think 1366cd228b0c fix the real root problem because the description >>>>> should be wrong in the commit message. If -EPROBE_DEFER is returned by >>>>> fwnode_usb_role_switch_get(), the ports node should be in connector node >>>>> instead of tcpc node. However, you get the error when ports in tcpc node. >>>>> >>>>> Could you double check the issue, so we can find a proper solution and avoid >>>>> the further regression? >>>> >>>> Sure, I'll come up with more details asap, either tomorrow or early next >>>> week. >>> >>> Do you have any updates about this? >> >> I do, sorry it took so long... >> >> So fwnode_usb_role_switch_get() does indeed return -EPROBE_DEFER, then >> keeps doing so on later attempts if I revert my patch. However, >> usb_role_switch_get() succeeds on first try. >> >> Please note that: >> 1. I don't understand much (if any) of the Linux typec stack, and only >> noticed 2d8713f807 broke my device, hence my attempted fix >> 2. said device is the PinePhone Pro, using an out-of-tree dts (and many >> drivers) from https://codeberg.org/megi/linux >> >> The proper solution likely lies somewhere in the "get proper drivers >> and upstream dts for this device" land, although I definitely can't >> commit to this. >> >> I think saving the fwnode_usb_role_switch_get() return value and >> restoring it if usb_role_switch_get() fails would be a decent >> workaround, although I'm definitely open to suggestions. >> >> Feel free to let me know if there's any other test I could run, I'll do >> my best at replying promptly. > > Thanks for your update! > > After review the dts file, I finally find you meet the issue with: > > usb-role-switch = <&typec_extcon_bridge>; > > instead of using below device graph port node. > > fusb0: typec-portc@22 { > compatible = "fcs,fusb302"; > ... > > port { > remote-endpoint = <&typec_extcon_bridge>; > }; > > connector { > ... > }; > }; > > The commit 1366cd228b0 message "If ports are defined in the tcpc main node" > has confused me at the beginning. Right, that's where my lack of understanding played its part, sorry for the confusion... > > Anyway, it should be another potential issue. Can you test whether below > patch fix your issue? > > diff --git a/drivers/usb/roles/class.c b/drivers/usb/roles/class.c > index b8e28ceca51e..edec139b68b5 100644 > --- a/drivers/usb/roles/class.c > +++ b/drivers/usb/roles/class.c > @@ -139,9 +139,14 @@ static void *usb_role_switch_match(const struct fwnode_handle *fwnode, const cha > static struct usb_role_switch * > usb_role_switch_is_parent(struct fwnode_handle *fwnode) > { > - struct fwnode_handle *parent = fwnode_get_parent(fwnode); > + struct fwnode_handle *parent; > struct device *dev; > > + if (!fwnode_device_is_compatible(fwnode, "usb-b-connector")) > + return NULL; > + > + parent = fwnode_get_parent(fwnode); > + > if (!fwnode_property_present(parent, "usb-role-switch")) { > fwnode_handle_put(parent); > return NULL; I can confirm that reverting 1366cd228b0 and applying the above works on this device. Thanks, Arnaud > > Thanks, > Xu Yang