From: Konrad Dybcio <konrad.dybcio@linaro.org>
To: Krishna Kurapati PSSNV <quic_kriskura@quicinc.com>,
Bjorn Andersson <andersson@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>, Rob Herring <robh+dt@kernel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
Felipe Balbi <balbi@kernel.org>,
Wesley Cheng <quic_wcheng@quicinc.com>,
Johan Hovold <johan@kernel.org>,
Mathias Nyman <mathias.nyman@intel.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 v10 06/11] usb: dwc3: qcom: Refactor IRQ handling in QCOM Glue driver
Date: Tue, 8 Aug 2023 13:50:06 +0200 [thread overview]
Message-ID: <30b1fe67-bab5-4add-8d89-cc8e06cd8c7f@linaro.org> (raw)
In-Reply-To: <dc800b15-e35d-207b-73a8-9a3d2261f4f5@quicinc.com>
On 8.08.2023 10:32, Krishna Kurapati PSSNV wrote:
> +
>>> +enum dwc3_qcom_phy_irq_identifier {
>>> + HS_PHY_IRQ = 0,
>>> + DP_HS_PHY_IRQ,
>>> + DM_HS_PHY_IRQ,
>>> + SS_PHY_IRQ,
>>> };
>>
>> This enum is unused.
>>
>
> Hi Bjorn,
>
> I didn't use the enum directly, but used its members in the get_port_irq call below.
>
>> [..]
>>> +static int dwc3_get_acpi_index(const struct dwc3_acpi_pdata *pdata, int irq_index)
>>> +{
>>> + int acpi_index = -1;
>>> +
>>> + if (!pdata)
>>> + return -1;
>>> +
>>> + if (irq_index == DP_HS_PHY_IRQ)
>>> + acpi_index = pdata->dp_hs_phy_irq_index;
>>> + else if (irq_index == DM_HS_PHY_IRQ)
>>> + acpi_index = pdata->dm_hs_phy_irq_index;
>>> + else if (irq_index == SS_PHY_IRQ)
>>> + acpi_index = pdata->ss_phy_irq_index;
>>
>> It looks favourable to put these in an array, instead of having to pull
>> them out of 4 different variables conditionally.
>>
>>> +
>>> + return acpi_index;
>>> +}
>>> +
>>> +static int dwc3_get_port_irq(struct platform_device *pdev, u8 port_index)
>>> +{
>>> + struct dwc3_qcom *qcom = platform_get_drvdata(pdev);
>>> + bool is_mp_supported = (qcom->data->num_ports > 1) ? true : false;
>>> + const struct dwc3_acpi_pdata *pdata = qcom->acpi_pdata;
>>> + char *disp_name;
>>> + int acpi_index;
>>> + char *dt_name;
>>> + int ret;
>>> + int irq;
>>> + int i;
>>> +
>>> + /*
>>> + * We need to read only DP/DM/SS IRQ's here.
>>> + * So loop over from 1->3 and accordingly modify respective phy_irq[].
>>> + */
>>> + for (i = 1; i < MAX_PHY_IRQ; i++) {
>>> +
>>> + if (!is_mp_supported && (port_index == 0)) {
>>> + if (i == DP_HS_PHY_IRQ) {
>>> + dt_name = devm_kasprintf(&pdev->dev, GFP_KERNEL,
>>> + "dp_hs_phy_irq");
>>> + disp_name = devm_kasprintf(&pdev->dev, GFP_KERNEL,
>>> + "qcom_dwc3 DP_HS");
>>> + } else if (i == DM_HS_PHY_IRQ) {
>>> + dt_name = devm_kasprintf(&pdev->dev, GFP_KERNEL,
>>> + "dm_hs_phy_irq");
>>> + disp_name = devm_kasprintf(&pdev->dev, GFP_KERNEL,
>>> + "qcom_dwc3 DM_HS");
>>> + } else if (i == SS_PHY_IRQ) {
>>> + dt_name = devm_kasprintf(&pdev->dev, GFP_KERNEL,
>>> + "ss_phy_irq");
>>> + disp_name = devm_kasprintf(&pdev->dev, GFP_KERNEL,
>>> + "qcom_dwc3 SS");
> Bjorn, Konrad,
>
> If we are to remove this repetitive loops, we might need to make a 2D array for all of Dp/Dm/Ss interrutps and make a global array of names to be used for irq lookup and use them to reduce the if-else-if stuff here. If that is fine, I can make those changes, else I would like to stick to this approach for now because if we don't add the global array of names, prepping them seperately for dp/dm/ss would again lead us to making if-else loops like above.
>
> Please let me know your thoughts on this.
Can we not just reuse the associated interrupt-names from the devicetree
if present?
Konrad
next prev parent reply other threads:[~2023-08-08 19:07 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-27 22:32 [PATCH v10 00/11] Add multiport support for DWC3 controllers Krishna Kurapati
2023-07-27 22:32 ` [PATCH v10 01/11] dt-bindings: usb: qcom,dwc3: Add bindings for SC8280 Multiport Krishna Kurapati
2023-07-28 12:55 ` Krzysztof Kozlowski
2023-07-27 22:32 ` [PATCH v10 02/11] dt-bindings: usb: Add bindings for multiport properties on DWC3 controller Krishna Kurapati
2023-07-27 22:32 ` [PATCH v10 03/11] usb: dwc3: core: Access XHCI address space temporarily to read port info Krishna Kurapati
2023-08-01 0:57 ` Thinh Nguyen
2023-07-27 22:33 ` [PATCH v10 04/11] usb: dwc3: core: Skip setting event buffers for host only controllers Krishna Kurapati
2023-08-01 0:59 ` Thinh Nguyen
2023-07-27 22:33 ` [PATCH v10 05/11] usb: dwc3: core: Refactor PHY logic to support Multiport Controller Krishna Kurapati
2023-07-27 22:33 ` [PATCH v10 06/11] usb: dwc3: qcom: Refactor IRQ handling in QCOM Glue driver Krishna Kurapati
2023-08-06 5:11 ` Bjorn Andersson
2023-08-07 5:46 ` Krishna Kurapati PSSNV
2023-08-08 8:32 ` Krishna Kurapati PSSNV
2023-08-08 11:50 ` Konrad Dybcio [this message]
2023-08-09 6:06 ` Krishna Kurapati PSSNV
2023-08-11 17:05 ` Konrad Dybcio
2023-08-12 8:44 ` Krishna Kurapati PSSNV
2023-08-23 10:12 ` Krishna Kurapati PSSNV
2023-09-05 6:05 ` Krishna Kurapati PSSNV
2023-07-27 22:33 ` [PATCH v10 07/11] usb: dwc3: qcom: Enable wakeup for applicable ports of multiport Krishna Kurapati
2023-07-27 22:33 ` [PATCH v10 08/11] usb: dwc3: qcom: Add multiport suspend/resume support for wrapper Krishna Kurapati
2023-07-27 22:33 ` [PATCH v10 09/11] arm64: dts: qcom: sc8280xp: Add multiport controller node for SC8280 Krishna Kurapati
2023-07-27 22:33 ` [PATCH v10 10/11] arm64: dts: qcom: sa8295p: Enable tertiary controller and its 4 USB ports Krishna Kurapati
2023-07-27 22:33 ` [PATCH v10 11/11] arm64: dts: qcom: sa8540-ride: Enable first port of tertiary usb controller Krishna Kurapati
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=30b1fe67-bab5-4add-8d89-cc8e06cd8c7f@linaro.org \
--to=konrad.dybcio@linaro.org \
--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=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=mathias.nyman@intel.com \
--cc=p.zabel@pengutronix.de \
--cc=quic_jackp@quicinc.com \
--cc=quic_kriskura@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).