All of lore.kernel.org
 help / color / mirror / Atom feed
From: Krishna Kurapati PSSNV <quic_kriskura@quicinc.com>
To: Johan Hovold <johan@kernel.org>
Cc: Thinh Nguyen <Thinh.Nguyen@synopsys.com>,
	Bjorn Andersson <andersson@kernel.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Andy Gross <agross@kernel.org>,
	Konrad Dybcio <konrad.dybcio@linaro.org>,
	Rob Herring <robh+dt@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	Felipe Balbi <balbi@kernel.org>,
	Wesley Cheng <quic_wcheng@quicinc.com>,
	<linux-usb@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<linux-arm-msm@vger.kernel.org>, <devicetree@vger.kernel.org>,
	<quic_pkondeti@quicinc.com>, <quic_ppratap@quicinc.com>,
	<quic_jackp@quicinc.com>, <ahalaney@redhat.com>,
	<quic_shazhuss@quicinc.com>
Subject: Re: [PATCH v13 05/10] usb: dwc3: qcom: Refactor IRQ handling in QCOM Glue driver
Date: Fri, 10 Nov 2023 15:31:15 +0530	[thread overview]
Message-ID: <dc20ecc0-f930-49c5-9e21-5a6e4c8ce637@quicinc.com> (raw)
In-Reply-To: <ZU31gx-LY5GBJGPU@hovoldconsulting.com>

>>>>>> There are, I can dig through and find out. Atleast in downstream I don't
>>>>>> see any use of them.
>>>>>
>>>>> Yes, please do post how these are wired as well for completeness.
>>>
>>> Did you find these two interrupts as well?
> 
> Please answer.
> 

Yes.

Controller-1:
u_usb31_prim_mvs_wrapper_usb31_hs_phy_irq	SYS_apcsQgicSPI[806]
Controller-2:
u_usb31_prim_mvs_wrapper_usb31_hs_phy_irq	SYS_apcsQgicSPI[791]

>>>> As an experiment, I tried to test wakeup by pressing buttons on
>>>> connected keyboard when in suspend state or connecting/disconnecting
>>>> keyboard in suspended state on different ports and only see dp/dm IRQ's
>>>> getting fired although we register for hs_phy_irq as well:
>>>>
>>>> / # cat /proc/interrupts  |grep phy_
>>>> 171:   1  0   0   0  0  0  0  0       PDC 127 Edge      dp_hs_phy_1
>>>> 172:   2  0   0   0  0  0  0  0       PDC 126 Edge      dm_hs_phy_1
>>>> 173:   3  0   0   0  0  0  0  0       PDC 129 Edge      dp_hs_phy_2
>>>> 174:   4  0   0   0  0  0  0  0       PDC 128 Edge      dm_hs_phy_2
>>>> 175:   0  0   0   0  0  0  0  0       PDC 131 Edge      dp_hs_phy_3
>>>> 176:   2  0   0   0  0  0  0  0       PDC 130 Edge      dm_hs_phy_3
>>>> 177:   2  0   0   0  0  0  0  0       PDC 133 Edge      dp_hs_phy_4
>>>> 178:   5  0   0   0  0  0  0  0       PDC 132 Edge      dm_hs_phy_4
>>>> 179:   0  0   0   0  0  0  0  0       PDC  16 Level     ss_phy_1
>>>> 180:   0  0   0   0  0  0  0  0       PDC  17 Level     ss_phy_2
>>>> 181:   0  0   0   0  0  0  0  0     GICv3 163 Level     hs_phy_1
>>>> 182:   0  0   0   0  0  0  0  0     GICv3 168 Level     hs_phy_2
>>>> 183:   0  0   0   0  0  0  0  0     GICv3 892 Level     hs_phy_3
>>>> 184:   0  0   0   0  0  0  0  0     GICv3 891 Level     hs_phy_4
>>>
>>> Yes, but that doesn't really say much since you never enable the hs_phy
>>> interrupt in the PHY on suspend.
>>
>> I did register to and enabled the hs_phy_irq interrupt when I tested and
>> posted the above table.
> 
> Yes, but, again, you never enabled them in the PHY (cf. QUSB2) so it's
> hardly surprising that they do not fire.
> 
There is no register in femto phy address space of sc8280 (which I am 
currently testing) where we can configure these registers like qusb2 phy's.

> Still good to know that requesting them doesn't trigger spurious
> interrupts either since these are apparently enabled on most Qualcomm
> SoCs even though they are not used. We should fix that too.
> 
>>>> Since the hs_phy_irq is applicable only for qusb2 targets, do we still
>>>> need to add it to DT.
>>>
>>> Are you sure there's no support for hs_phy_irq also in the "femto" PHYs
>>> and that it's just that there is currently no driver support for using
>>> them?
>>>
>>> And why is it defined if there is truly no use for it?
>>
>> Femto phy's have nothing to be configured for interrupts like we do for
>> qusb2 phy's. I confirmed from hw validation team that they never used
>> hs_phy_irq for validating wakeup. They only used dp/dm IRQ's for wakeup.
> 
> Ok.
> 
> Is there some other (non-wakeup) functionality which may potentially use
> this interrupt?
> 

The only info I (and hw validation team) got from design team is:

1. Common IRQ for power and special events
2. Assert in case of remote wakeup, or resume when in Host or device 
respectively
3. Also upon disconnect while in suspend state.

Same as what we understand as remote wakeup functionality.

>>> Also, if hs_phy_irq and dp/dm_phy_irq were mutually exclusive, why does
>>> the following Qualcomm SoCs define all three?
>>>
>>
>> Similar to BAM IRQ's these might have been just ported over targets I
>> believe. I say so because HW Validation team confirmed they don't use this
>> interrupt at all on femto phy targets.
> 
> So then including the hs_phy_irq for most of these SoCs was a mistake
> and we should drop it from the bindings?
> 
> What about the QUSB2 SoCs that also define DP/DM, are both useable
> there?
> 
> And if so, is there any reason to prefer one mechanism over the other?
> 
No. I didn't ask this question to hw team whether dp/dm are used in 
qusb2 phy targets. Let me ask them.

While I do so, since there are no qusb2 targets present on femto phy's, 
do you suggest we still add them to port structure in dwc3-qcom ? I am 
inclined to add it because it would make implementation look cleaner 
w.r.t code and also spurious interrupts are not getting triggered (which 
was my primary concern as it was never tested).

I know that if hs_phy_irq is for qusb2 and dp/dm are for femto, the 
cleanup would be big.

Regards,
Krishna,

  reply	other threads:[~2023-11-10 10:01 UTC|newest]

Thread overview: 87+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-07 15:47 [PATCH v13 00/10] Add multiport support for DWC3 controllers Krishna Kurapati
2023-10-07 15:47 ` [PATCH v13 01/10] usb: dwc3: core: Access XHCI address space temporarily to read port info Krishna Kurapati
2023-10-20  8:32   ` Johan Hovold
2023-10-20  9:42     ` Krishna Kurapati PSSNV
2023-10-23  8:44       ` Johan Hovold
2023-10-07 15:47 ` [PATCH v13 02/10] usb: dwc3: core: Skip setting event buffers for host only controllers Krishna Kurapati
2023-10-20  8:38   ` Johan Hovold
2023-10-07 15:47 ` [PATCH v13 03/10] usb: dwc3: core: Refactor PHY logic to support Multiport Controller Krishna Kurapati
2023-10-12 17:26   ` Thinh Nguyen
2023-10-20  9:57   ` Johan Hovold
2023-10-20 11:41     ` Krishna Kurapati PSSNV
2023-10-23  8:52       ` Johan Hovold
2023-10-22 18:03     ` Krishna Kurapati PSSNV
2023-10-23  9:11       ` Johan Hovold
2023-10-23 12:33         ` Krishna Kurapati PSSNV
2023-10-23 14:10           ` Johan Hovold
2023-10-07 15:48 ` [PATCH v13 04/10] usb: dwc3: qcom: Add helper function to request threaded IRQ Krishna Kurapati
2023-10-20 12:30   ` Johan Hovold
2023-10-07 15:48 ` [PATCH v13 05/10] usb: dwc3: qcom: Refactor IRQ handling in QCOM Glue driver Krishna Kurapati
2023-10-20 13:23   ` Johan Hovold
2023-10-22 18:41     ` Krishna Kurapati PSSNV
2023-10-23  9:21       ` Johan Hovold
2023-10-23 11:24         ` Krishna Kurapati PSSNV
2023-10-23 14:07           ` Johan Hovold
2023-10-23 17:12             ` Krishna Kurapati PSSNV
2023-10-24  6:56               ` Johan Hovold
2023-10-24  8:53                 ` Krishna Kurapati PSSNV
2023-10-24  9:18                   ` Johan Hovold
2023-10-24  9:23                     ` Greg Kroah-Hartman
2023-10-24  9:29                       ` Johan Hovold
2023-10-24  9:54                         ` Greg Kroah-Hartman
2023-11-03 10:04                 ` Krishna Kurapati PSSNV
2023-11-07  8:29                   ` Krishna Kurapati PSSNV
2023-11-09 15:18                   ` Johan Hovold
2023-11-09 16:38                     ` Krishna Kurapati PSSNV
2023-11-09 20:25                       ` Wesley Cheng
2023-11-10  9:28                         ` Johan Hovold
2023-11-10  9:18                       ` Johan Hovold
2023-11-10 10:01                         ` Krishna Kurapati PSSNV [this message]
2023-11-10 10:44                           ` Johan Hovold
2023-11-10 11:09                             ` Krishna Kurapati PSSNV
2023-11-15 17:42                     ` Krishna Kurapati PSSNV
2023-11-16 13:03                       ` Johan Hovold
2023-11-22 19:32                         ` Krishna Kurapati PSSNV
2023-11-23 13:44                           ` Johan Hovold
2023-11-24  9:00                             ` Krishna Kurapati PSSNV
2023-11-24  9:13                               ` Krzysztof Kozlowski
2023-11-24 10:13                               ` Johan Hovold
2023-11-24 10:38                                 ` Krishna Kurapati PSSNV
2023-11-24 11:19                                   ` Johan Hovold
2023-10-07 15:48 ` [PATCH v13 06/10] usb: dwc3: qcom: Enable wakeup for applicable ports of multiport Krishna Kurapati
2023-10-23 15:47   ` Johan Hovold
2023-10-23 17:27     ` Krishna Kurapati PSSNV
2023-10-24  7:10       ` Johan Hovold
2023-10-24  8:41         ` Krishna Kurapati PSSNV
2023-10-24  9:06           ` Johan Hovold
2023-10-07 15:48 ` [PATCH v13 07/10] usb: dwc3: qcom: Add multiport suspend/resume support for wrapper Krishna Kurapati
2023-10-23 15:58   ` Johan Hovold
2023-10-23 17:22     ` Krishna Kurapati PSSNV
2023-10-24  7:03       ` Johan Hovold
2023-10-07 15:48 ` [PATCH v13 08/10] arm64: dts: qcom: sc8280xp: Add multiport controller node for SC8280 Krishna Kurapati
2023-10-08 11:11   ` Krzysztof Kozlowski
2023-10-08 11:21     ` Krishna Kurapati PSSNV
2023-10-08 11:23       ` Krzysztof Kozlowski
2023-10-12 16:40   ` Konrad Dybcio
2023-10-12 17:02     ` Krishna Kurapati PSSNV
2023-10-18 11:57       ` Krishna Kurapati PSSNV
2023-10-23 16:09   ` Johan Hovold
2023-10-23 17:16     ` Krzysztof Kozlowski
2023-10-23 17:34     ` Krishna Kurapati PSSNV
2023-10-24  7:13       ` Johan Hovold
2023-10-07 15:48 ` [PATCH v13 09/10] arm64: dts: qcom: sa8295p: Enable tertiary controller and its 4 USB ports Krishna Kurapati
2023-10-12 16:40   ` Konrad Dybcio
2023-10-23 16:23   ` Johan Hovold
2023-10-23 17:42     ` Krishna Kurapati PSSNV
2023-10-24  7:20       ` Johan Hovold
2023-10-24  8:26         ` Krishna Kurapati PSSNV
2023-10-07 15:48 ` [PATCH v13 10/10] arm64: dts: qcom: sa8540-ride: Enable first port of tertiary usb controller Krishna Kurapati
2023-10-12 16:41   ` Konrad Dybcio
2023-10-23 16:30   ` Johan Hovold
2023-10-08 10:43 ` [PATCH v13 00/10] Add multiport support for DWC3 controllers Krzysztof Kozlowski
2023-10-08 11:01   ` Krishna Kurapati PSSNV
2023-10-08 11:09     ` Krzysztof Kozlowski
2023-10-10 20:51 ` Konrad Dybcio
2023-10-11  5:11   ` Krishna Kurapati PSSNV
2023-10-11  9:34     ` Konrad Dybcio
2023-10-12  6:17       ` Krishna Kurapati PSSNV

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=dc20ecc0-f930-49c5-9e21-5a6e4c8ce637@quicinc.com \
    --to=quic_kriskura@quicinc.com \
    --cc=Thinh.Nguyen@synopsys.com \
    --cc=agross@kernel.org \
    --cc=ahalaney@redhat.com \
    --cc=andersson@kernel.org \
    --cc=balbi@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=johan@kernel.org \
    --cc=konrad.dybcio@linaro.org \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=p.zabel@pengutronix.de \
    --cc=quic_jackp@quicinc.com \
    --cc=quic_pkondeti@quicinc.com \
    --cc=quic_ppratap@quicinc.com \
    --cc=quic_shazhuss@quicinc.com \
    --cc=quic_wcheng@quicinc.com \
    --cc=robh+dt@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.