Thread (36 messages) 36 messages, 7 authors, 2021-09-17

Re: [PATCH 0/3] Implement role-switch notifications from dwc3-drd to dwc3-qcom

From: Felipe Balbi <balbi@kernel.org>
Date: 2021-08-25 15:21:21
Also in: linux-arm-msm

Hi,

Rob Herring [off-list ref] writes:
quoted
Bjorn Andersson [off-list ref] writes:
quoted
On Wed 07 Jul 20:06 PDT 2021, Peter Chen wrote:
quoted
On 21-07-07 14:03:19, Bjorn Andersson wrote:
quoted
On Tue 06 Jul 20:57 CDT 2021, Peter Chen wrote:

Allow me to reorder your two questions:
quoted
And why using a notifier need to concern core's deferral probe?
The problem at hand calls for the core for somehow invoking
dwc3_qcom_vbus_overrride_enable() with a pointer to dwc3_qcom passed.

This means that dwc3-qcom somehow needs to inform the dwc3-core about
this (and stash the pointer). And this can't be done until dwc3-core
actually exist, which it won't until dwc3_probe() has completed
successfully (or in particular allocated struct dwc).
Maybe you misunderstood the notifier I meant previous, my pointer was
calling glue layer API directly.

Role switch is from dwc3-core, when it occurs, it means structure dwc3 has
allocated successfully, you could call glue layer notifier at function
dwc3_usb_role_switch_set directly.
Some references of my idea [1] [2]

[1] Function ci_hdrc_msm_notify_event at ci_hdrc_msm_notify_event
[2] https://source.codeaurora.org/external/imx/linux-imx/tree/drivers/usb/dwc3/core.c?h=lf-5.10.y#n205
Hi Peter, I took a proper look at this again, hoping to find a way to
pass a callback pointer from dwc3-qcom to the dwc3 core, that can be
called from __dwc3_set_mode() to inform the Qualcomm glue about mode
changes.
I would rather keep the strict separation between glue and core.
On the surface that seems nice, but obviously there are issues with
the approach. It's also not how pretty much every other instance of
licensed IP blocks are structured.

The specific need here seems to be multiple entities needing role
switch notifications. Seems like that should be solved in a generic
way.
right, solve it generically without breaking the module isolation ;-)

-- 
balbi
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help