mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Elson Serrao <elson.serrao@oss.qualcomm.com>
To: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
	Bjorn Andersson <andersson@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Konrad Dybcio <konradybcio@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Rob Herring <robh@kernel.org>
Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,
	linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org,
	Peter Chen <peter.chen@kernel.org>
Subject: Re: [PATCH v7 4/8] usb: misc: qcom_eud: add per-path role switch support
Date: Tue, 22 Sep 2026 21:42:50 -0700	[thread overview]
Message-ID: <1d8c0aab-90d5-4052-9676-bc7dda7c77ec@oss.qualcomm.com> (raw)
In-Reply-To: <6495b9d1-fbf1-4ab2-bbb7-2ea20e82a1e2@oss.qualcomm.com>



On 9/21/2026 5:36 AM, Konrad Dybcio wrote:
> On 8/31/26 5:01 AM, Elson Serrao wrote:
>> The EUD hardware can support multiple High-Speed USB paths, each connected
>> to different USB controllers. The current implementation uses a single
>> chip-level role switch, which cannot properly handle multi-path
>> configurations where each path needs independent role management. Since
>> EUD is physically present between the USB connector and the controller,
>> it should also relay the role change requests from the connector.
>>
>> Restructure the driver to support per-path role switches and remove the
>> chip-level role switch. Additionally, as EUD need not modify the USB
>> role upon enabling, remove the unnecessary role switch call from
>> enable_eud().
>>
>> Reviewed-by: Peter Chen <peter.chen@kernel.org>
>> Signed-off-by: Elson Serrao <elson.serrao@oss.qualcomm.com>
>> ---
> 
> [...]
> 
>> +	of_property_read_string(controller_node, "dr_mode", &dr_mode);
>> +
>> +	/* No role switch needed for fixed role controllers */
>> +	if (!strcmp(dr_mode, "host")) {
>> +		path->curr_role = USB_ROLE_HOST;
>> +		of_node_put(controller_node);
>> +		return 0;
>> +	}
>> +
>> +	if (!strcmp(dr_mode, "peripheral")) {
>> +		path->curr_role = USB_ROLE_DEVICE;
>> +		of_node_put(controller_node);
>> +		return 0;
>> +	}
> 
> I was thinking.. wouldn't that also get rid of the virtual detach
> functionality on fixed-role controllers?
> 

For the attached DWC3 controller (the only controller coupled
with EUD as of today), a cable disconnect in fixed `dr_mode`
configurations is effectively a no-op from the controller's perspective,
as the disconnect event simply does not reach the controller and hence
DISCONNECT irq is never generated. The behavior being emulated by the
EUD driver for these fixed-role configurations therefore matches that
of a real cable disconnect, where the detach event is not propagated
to the controller. As such, there is no need to handle virtual detach
for these configurations, since it would not emulate any real
use-case scenario.
 
That said, I do agree that if a real use case arises in the future,
either due to changes in DWC3 HW/SW behavior where cable disconnect
handling becomes meaningful in fixed `dr_mode` configurations, then
we would need to revisit this logic.

Thanks
Elson

> dwc3 currently only registers a role_switch if it's in OTG mode,
> but other drivers (such as dwc2) do it unconditionally - see
> 
> https://lore.kernel.org/linux-usb/8fabc049-7fdf-498a-a3ef-6f2570d510c8@oss.qualcomm.com/T/#u
> 
> if that's the reason, we can change the dwc3 driver to match
> since the maintainer there expressed he wouldn't mind
> 
> Konrad

  reply	other threads:[~2026-09-23  4:42 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-31  3:01 [PATCH v7 0/8] Improve Qualcomm EUD driver and platform support Elson Serrao
2026-08-31  3:01 ` [PATCH v7 1/8] dt-bindings: soc: qcom: eud: Add per-path child nodes for UTMI routing Elson Serrao
2026-08-31 22:39   ` Bjorn Andersson
2026-08-31  3:01 ` [PATCH v7 2/8] usb: misc: qcom_eud: add sysfs attribute for port selection Elson Serrao
2026-08-31  3:01 ` [PATCH v7 3/8] usb: misc: qcom_eud: add per-path High-Speed PHY control Elson Serrao
2026-08-31  3:01 ` [PATCH v7 4/8] usb: misc: qcom_eud: add per-path role switch support Elson Serrao
2026-09-21 12:36   ` Konrad Dybcio
2026-09-23  4:42     ` Elson Serrao [this message]
2026-08-31  3:01 ` [PATCH v7 5/8] usb: misc: qcom_eud: improve enable_store API Elson Serrao
2026-08-31  3:01 ` [PATCH v7 6/8] usb: misc: qcom_eud: add role-based EUD control Elson Serrao
2026-09-01 11:36   ` Konrad Dybcio
2026-09-10  1:37     ` Elson Serrao
2026-08-31  3:01 ` [PATCH v7 7/8] usb: misc: qcom_eud: fix virtual attach/detach event handling Elson Serrao
2026-08-31  3:01 ` [PATCH v7 8/8] arm64: dts: qcom: kodiak: Desribe EUD UTMI routing and connector mapping Elson Serrao

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1d8c0aab-90d5-4052-9676-bc7dda7c77ec@oss.qualcomm.com \
    --to=elson.serrao@oss.qualcomm.com \
    --cc=andersson@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dmitry.baryshkov@oss.qualcomm.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=konrad.dybcio@oss.qualcomm.com \
    --cc=konradybcio@kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=peter.chen@kernel.org \
    --cc=robh@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®