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>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	"Andy Gross" <agross@kernel.org>,
	Bjorn Andersson <andersson@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: Mon, 23 Oct 2023 22:42:31 +0530	[thread overview]
Message-ID: <fb5e5e1d-520c-4cbc-adde-f30e853421a1@quicinc.com> (raw)
In-Reply-To: <ZTZ-EvvbuA6HpycT@hovoldconsulting.com>



On 10/23/2023 7:37 PM, Johan Hovold wrote:
> On Mon, Oct 23, 2023 at 04:54:11PM +0530, Krishna Kurapati PSSNV wrote:
>> On 10/23/2023 2:51 PM, Johan Hovold wrote:
>>> On Mon, Oct 23, 2023 at 12:11:45AM +0530, Krishna Kurapati PSSNV wrote:
>>>> On 10/20/2023 6:53 PM, Johan Hovold wrote:
> 
>>>>> I also don't like the special handling of hs_phy_irq; if this is really
>>>>> just another name for the pwr_event_irq then this should be cleaned up
>>>>> before making the code more complicated than it needs to be.
>>>>>
>>>>> Make sure to clarify this before posting a new revision.
>>>>
>>>> hs_phy_irq is different from pwr_event_irq.
>>>
>>> How is it different and how are they used?
>>>
>>>> AFAIK, there is only one of this per controller.
>>>
>>> But previous controllers were all single port so this interrupt is
>>> likely also per-port, even if your comment below seems to suggest even
>>> SC8280XP has one, which is unexpected (and not described in the updated
>>> binding):
>>>
>>> 	Yes, all targets have the same IRQ's. Just that MP one's have
>>> 	multiple IRQ's of each type. But hs-phy_irq is only one in
>>> 	SC8280 as well.
>>>
>>> 	https://lore.kernel.org/lkml/70b2495f-1305-05b1-2039-9573d171fe24@quicinc.com/
>>>
>>> Please clarify.
>>>
>>
>> For sure pwr_event_irq and hs_phy_irq are different. I assumed it was
>> per-controller and not per-phy because I took reference from software
>> code we have on downstream and hs_phy for multiport is not used
>> anywhere. I don't see any functionality implemented in downstream for
>> that IRQ. And it is only one for single port controllers.
>>
>> But I got the following info from HW page and these are all the
>> interrupts (on apss processor) for multiport (extra details removed):
>>
>> u_usb31_scnd_mvs_pipe_wrapper_usb31_power_event_irq_0	SYS_apcsQgicSPI[130]
>> u_usb31_scnd_mvs_pipe_wrapper_usb31_power_event_irq_1	SYS_apcsQgicSPI[135]
>> u_usb31_scnd_mvs_pipe_wrapper_usb31_power_event_irq_3	SYS_apcsQgicSPI[856]
>> u_usb31_scnd_mvs_pipe_wrapper_usb31_power_event_irq_2	SYS_apcsQgicSPI[857]
>>
>> u_usb31_scnd_mvs_pipe_wrapper_usb31_ctrl_irq[0]	SYS_apcsQgicSPI[133]
>> u_usb31_scnd_mvs_pipe_wrapper_usb31_ctrl_irq[1]	SYS_apcsQgicSPI[134]
> 
> This second core interrupt is also missing in the updated binding... It
> is defined in the ACPI tables so presumably it is needed for the
> multiport controller.
> 
> Do you have any more details on this one?
> 
>> u_cm_usb3_uni_wrapper_mp0_usb3phy_debug_irq	SYS_apcsQgicSPI[668]
>> u_usb31_scnd_mvs_pipe_wrapper_usb31_bam_irq[0]	SYS_apcsQgicSPI[830]
>> u_cm_usb3_uni_wrapper_mp1_usb3phy_debug_irq	SYS_apcsQgicSPI[855]
>>
>> u_usb31_scnd_mvs_pipe_wrapper_usb31_hs_phy_irq_0	SYS_apcsQgicSPI[131]
>> u_usb31_scnd_mvs_pipe_wrapper_usb31_hs_phy_irq_1	SYS_apcsQgicSPI[136]
>> u_usb31_scnd_mvs_pipe_wrapper_usb31_hs_phy_irq_3	SYS_apcsQgicSPI[859]
>> u_usb31_scnd_mvs_pipe_wrapper_usb31_hs_phy_irq_2	SYS_apcsQgicSPI[860]
> 
> Ok, so at least we know hs_phy_irq and pwr_event_irq are distinct and
> both per-port.
> 
> The ACPI tables do not seem to include these, but yeah, that doesn't say
> much more than that the Windows implementation doesn't currently use
> them either.
> 
>> u_cm_dwc_usb2_hs0_usb2_dpse	apps_pdc_irq_out[127]
>> u_cm_dwc_usb2_hs0_usb2_dmse	apps_pdc_irq_out[126]
>> u_cm_dwc_usb2_hs1_usb2_dpse	apps_pdc_irq_out[129]
>> u_cm_dwc_usb2_hs1_usb2_dmse	apps_pdc_irq_out[128]
>> u_cm_dwc_usb2_hs2_usb2_dpse	apps_pdc_irq_out[131]
>> u_cm_dwc_usb2_hs2_usb2_dmse	apps_pdc_irq_out[130]
>> u_cm_dwc_usb2_hs3_usb2_dpse	apps_pdc_irq_out[133]
>> u_cm_dwc_usb2_hs3_usb2_dmse	apps_pdc_irq_out[132]
>> u_cm_usb3_uni_wrapper_mp0_qmp_usb3_lfps_rxterm_irq	apps_pdc_irq_out[16]
>> u_cm_usb3_uni_wrapper_mp1_qmp_usb3_lfps_rxterm_irq	apps_pdc_irq_out[17]
>>
>> Seems like there are 4 IRQ's for HS.
> 
> Right. And I assume there are hs_phy_irqs also for the first two USB
> controllers on sc8280xp?

Hi Johan,

There are, I can dig through and find out. Atleast in downstream I don't 
see any use of them.

> 
> Can you find out anything more about what hs_phy_irq is used for? It
> appears to be an HS wakeup interrupt like the dp/dm ones, but there are
> not really any details on how it is supposed to be used.
> 

  This IRQ is really not used in downstream controllers. Not sure if its 
a good idea to add driver code for that. I did some digging and I got 
the reason why I first said that there is only one hs_phy_irq for 
tertiary port of controller. The hardware programming sequence doesn't 
specify usage of these 4 IRQ's but the hw specifics mention that there 
are 4 of them. Adding driver support for these IRQ's is not a good idea 
(atleast at this point because they are not used in downstream and I am 
not sure what would be the side effect). For now I suggest we can add 
them in bindings and DT and not handle the 4 hs_phy_irq's in the driver 
code (meaning not add the hs_phy_irq to port structure we plan on adding 
to dwc3_qcom).

Also I plan on splitting the patchset into 4 parts (essentially 4 diff 
series):

1. Bindings update for hs_phy_irq's
2. DT patches for MP controller and platform specific files
3. Core driver update for supporting multiport
4. QCOM driver update for supporting wakeup/suspend/resume

This is in accordance to [1] and that way qcom code won't block core 
driver changes from getting merged. Core driver changes are independent 
and are sufficient to get multiport working.

[1]: 
https://lore.kernel.org/all/d4663197-8295-4967-a4f5-6cc91638fc0d@linaro.org/

Regards,
Krishna,

  reply	other threads:[~2023-10-23 17:12 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 [this message]
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
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=fb5e5e1d-520c-4cbc-adde-f30e853421a1@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.