From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> To: Wesley Cheng <quic_wcheng@quicinc.com> Cc: srinivas.kandagatla@linaro.org, mathias.nyman@intel.com, perex@perex.cz, broonie@kernel.org, lgirdwood@gmail.com, andersson@kernel.org, krzysztof.kozlowski+dt@linaro.org, gregkh@linuxfoundation.org, Thinh.Nguyen@synopsys.com, bgoswami@quicinc.com, tiwai@suse.com, robh+dt@kernel.org, agross@kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, alsa-devel@alsa-project.org, devicetree@vger.kernel.org, linux-usb@vger.kernel.org, quic_jackp@quicinc.com, quic_plai@quicinc.com Subject: Re: [RFC PATCH 08/14] usb: dwc3: Add DT parameter to specify maximum number of interrupters Date: Sat, 24 Dec 2022 13:13:11 +0200 [thread overview] Message-ID: <CAA8EJppsK=L69AaBgj=MzWp-ess3NSn=gPYf8-3QtJVqEVqGzw@mail.gmail.com> (raw) In-Reply-To: <20221223233200.26089-9-quic_wcheng@quicinc.com> On Sat, 24 Dec 2022 at 01:33, Wesley Cheng <quic_wcheng@quicinc.com> wrote: > > Allow for the DWC3 host driver to pass along a XHCI property that defines > how many interrupters to allocate. This is in relation for the number of > event rings that can be potentially used by other processors within the > system. > > Signed-off-by: Wesley Cheng <quic_wcheng@quicinc.com> > --- > drivers/usb/dwc3/core.c | 12 ++++++++++++ > drivers/usb/dwc3/core.h | 2 ++ > drivers/usb/dwc3/host.c | 5 ++++- > 3 files changed, 18 insertions(+), 1 deletion(-) > > diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c > index 476b63618511..67d6f0ae81d2 100644 > --- a/drivers/usb/dwc3/core.c > +++ b/drivers/usb/dwc3/core.c > @@ -1446,6 +1446,7 @@ static void dwc3_get_properties(struct dwc3 *dwc) > u8 tx_thr_num_pkt_prd = 0; > u8 tx_max_burst_prd = 0; > u8 tx_fifo_resize_max_num; > + u8 num_hc_interrupters; > const char *usb_psy_name; > int ret; > > @@ -1468,6 +1469,9 @@ static void dwc3_get_properties(struct dwc3 *dwc) > */ > tx_fifo_resize_max_num = 6; > > + /* default to a single XHCI interrupter */ > + num_hc_interrupters = 1; > + > dwc->maximum_speed = usb_get_maximum_speed(dev); > dwc->max_ssp_rate = usb_get_maximum_ssp_rate(dev); > dwc->dr_mode = usb_get_dr_mode(dev); > @@ -1511,6 +1515,12 @@ static void dwc3_get_properties(struct dwc3 *dwc) > &tx_thr_num_pkt_prd); > device_property_read_u8(dev, "snps,tx-max-burst-prd", > &tx_max_burst_prd); > + device_property_read_u8(dev, "snps,num-hc-interrupters", > + &num_hc_interrupters); bindings change? > + /* DWC3 core allowed to have a max of 8 interrupters */ > + if (num_hc_interrupters > 8) > + num_hc_interrupters = 8; > + > dwc->do_fifo_resize = device_property_read_bool(dev, > "tx-fifo-resize"); > if (dwc->do_fifo_resize) > @@ -1589,6 +1599,8 @@ static void dwc3_get_properties(struct dwc3 *dwc) > dwc->imod_interval = 0; > > dwc->tx_fifo_resize_max_num = tx_fifo_resize_max_num; > + > + dwc->num_hc_interrupters = num_hc_interrupters; > } > > /* check whether the core supports IMOD */ > diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h > index 8f9959ba9fd4..09037299da53 100644 > --- a/drivers/usb/dwc3/core.h > +++ b/drivers/usb/dwc3/core.h > @@ -1050,6 +1050,7 @@ struct dwc3_scratchpad_array { > * @tx_max_burst_prd: max periodic ESS transmit burst size > * @tx_fifo_resize_max_num: max number of fifos allocated during txfifo resize > * @clear_stall_protocol: endpoint number that requires a delayed status phase > + * @num_hc_interrupters: number of host controller interrupters > * @hsphy_interface: "utmi" or "ulpi" > * @connected: true when we're connected to a host, false otherwise > * @softconnect: true when gadget connect is called, false when disconnect runs > @@ -1275,6 +1276,7 @@ struct dwc3 { > u8 tx_max_burst_prd; > u8 tx_fifo_resize_max_num; > u8 clear_stall_protocol; > + u8 num_hc_interrupters; > > const char *hsphy_interface; > > diff --git a/drivers/usb/dwc3/host.c b/drivers/usb/dwc3/host.c > index f6f13e7f1ba1..52a284fdd704 100644 > --- a/drivers/usb/dwc3/host.c > +++ b/drivers/usb/dwc3/host.c > @@ -66,7 +66,7 @@ static int dwc3_host_get_irq(struct dwc3 *dwc) > > int dwc3_host_init(struct dwc3 *dwc) > { > - struct property_entry props[4]; > + struct property_entry props[5]; > struct platform_device *xhci; > int ret, irq; > int prop_idx = 0; > @@ -112,6 +112,9 @@ int dwc3_host_init(struct dwc3 *dwc) > if (DWC3_VER_IS_WITHIN(DWC3, ANY, 300A)) > props[prop_idx++] = PROPERTY_ENTRY_BOOL("quirk-broken-port-ped"); > > + props[prop_idx++] = PROPERTY_ENTRY_U8("num-hc-interrupters", > + dwc->num_hc_interrupters); > + > if (prop_idx) { > ret = device_create_managed_software_node(&xhci->dev, props, NULL); > if (ret) { -- With best wishes Dmitry
WARNING: multiple messages have this Message-ID (diff)
From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> To: Wesley Cheng <quic_wcheng@quicinc.com> Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, alsa-devel@alsa-project.org, linux-usb@vger.kernel.org, bgoswami@quicinc.com, mathias.nyman@intel.com, gregkh@linuxfoundation.org, andersson@kernel.org, tiwai@suse.com, lgirdwood@gmail.com, robh+dt@kernel.org, broonie@kernel.org, srinivas.kandagatla@linaro.org, agross@kernel.org, krzysztof.kozlowski+dt@linaro.org, Thinh.Nguyen@synopsys.com, quic_plai@quicinc.com, linux-kernel@vger.kernel.org, quic_jackp@quicinc.com Subject: Re: [RFC PATCH 08/14] usb: dwc3: Add DT parameter to specify maximum number of interrupters Date: Sat, 24 Dec 2022 13:13:11 +0200 [thread overview] Message-ID: <CAA8EJppsK=L69AaBgj=MzWp-ess3NSn=gPYf8-3QtJVqEVqGzw@mail.gmail.com> (raw) In-Reply-To: <20221223233200.26089-9-quic_wcheng@quicinc.com> On Sat, 24 Dec 2022 at 01:33, Wesley Cheng <quic_wcheng@quicinc.com> wrote: > > Allow for the DWC3 host driver to pass along a XHCI property that defines > how many interrupters to allocate. This is in relation for the number of > event rings that can be potentially used by other processors within the > system. > > Signed-off-by: Wesley Cheng <quic_wcheng@quicinc.com> > --- > drivers/usb/dwc3/core.c | 12 ++++++++++++ > drivers/usb/dwc3/core.h | 2 ++ > drivers/usb/dwc3/host.c | 5 ++++- > 3 files changed, 18 insertions(+), 1 deletion(-) > > diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c > index 476b63618511..67d6f0ae81d2 100644 > --- a/drivers/usb/dwc3/core.c > +++ b/drivers/usb/dwc3/core.c > @@ -1446,6 +1446,7 @@ static void dwc3_get_properties(struct dwc3 *dwc) > u8 tx_thr_num_pkt_prd = 0; > u8 tx_max_burst_prd = 0; > u8 tx_fifo_resize_max_num; > + u8 num_hc_interrupters; > const char *usb_psy_name; > int ret; > > @@ -1468,6 +1469,9 @@ static void dwc3_get_properties(struct dwc3 *dwc) > */ > tx_fifo_resize_max_num = 6; > > + /* default to a single XHCI interrupter */ > + num_hc_interrupters = 1; > + > dwc->maximum_speed = usb_get_maximum_speed(dev); > dwc->max_ssp_rate = usb_get_maximum_ssp_rate(dev); > dwc->dr_mode = usb_get_dr_mode(dev); > @@ -1511,6 +1515,12 @@ static void dwc3_get_properties(struct dwc3 *dwc) > &tx_thr_num_pkt_prd); > device_property_read_u8(dev, "snps,tx-max-burst-prd", > &tx_max_burst_prd); > + device_property_read_u8(dev, "snps,num-hc-interrupters", > + &num_hc_interrupters); bindings change? > + /* DWC3 core allowed to have a max of 8 interrupters */ > + if (num_hc_interrupters > 8) > + num_hc_interrupters = 8; > + > dwc->do_fifo_resize = device_property_read_bool(dev, > "tx-fifo-resize"); > if (dwc->do_fifo_resize) > @@ -1589,6 +1599,8 @@ static void dwc3_get_properties(struct dwc3 *dwc) > dwc->imod_interval = 0; > > dwc->tx_fifo_resize_max_num = tx_fifo_resize_max_num; > + > + dwc->num_hc_interrupters = num_hc_interrupters; > } > > /* check whether the core supports IMOD */ > diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h > index 8f9959ba9fd4..09037299da53 100644 > --- a/drivers/usb/dwc3/core.h > +++ b/drivers/usb/dwc3/core.h > @@ -1050,6 +1050,7 @@ struct dwc3_scratchpad_array { > * @tx_max_burst_prd: max periodic ESS transmit burst size > * @tx_fifo_resize_max_num: max number of fifos allocated during txfifo resize > * @clear_stall_protocol: endpoint number that requires a delayed status phase > + * @num_hc_interrupters: number of host controller interrupters > * @hsphy_interface: "utmi" or "ulpi" > * @connected: true when we're connected to a host, false otherwise > * @softconnect: true when gadget connect is called, false when disconnect runs > @@ -1275,6 +1276,7 @@ struct dwc3 { > u8 tx_max_burst_prd; > u8 tx_fifo_resize_max_num; > u8 clear_stall_protocol; > + u8 num_hc_interrupters; > > const char *hsphy_interface; > > diff --git a/drivers/usb/dwc3/host.c b/drivers/usb/dwc3/host.c > index f6f13e7f1ba1..52a284fdd704 100644 > --- a/drivers/usb/dwc3/host.c > +++ b/drivers/usb/dwc3/host.c > @@ -66,7 +66,7 @@ static int dwc3_host_get_irq(struct dwc3 *dwc) > > int dwc3_host_init(struct dwc3 *dwc) > { > - struct property_entry props[4]; > + struct property_entry props[5]; > struct platform_device *xhci; > int ret, irq; > int prop_idx = 0; > @@ -112,6 +112,9 @@ int dwc3_host_init(struct dwc3 *dwc) > if (DWC3_VER_IS_WITHIN(DWC3, ANY, 300A)) > props[prop_idx++] = PROPERTY_ENTRY_BOOL("quirk-broken-port-ped"); > > + props[prop_idx++] = PROPERTY_ENTRY_U8("num-hc-interrupters", > + dwc->num_hc_interrupters); > + > if (prop_idx) { > ret = device_create_managed_software_node(&xhci->dev, props, NULL); > if (ret) { -- With best wishes Dmitry
next prev parent reply other threads:[~2022-12-24 11:13 UTC|newest] Thread overview: 171+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-12-23 23:31 [RFC PATCH 00/14] Introduce QC USB SND audio offloading support Wesley Cheng 2022-12-23 23:31 ` Wesley Cheng 2022-12-23 23:31 ` [RFC PATCH 01/14] ASoC: Add SOC USB APIs for adding an USB backend Wesley Cheng 2022-12-23 23:31 ` Wesley Cheng 2022-12-24 6:48 ` Greg KH 2022-12-24 6:48 ` Greg KH 2022-12-23 23:31 ` [RFC PATCH 02/14] ASoC: qcom: qdsp6: Introduce USB AFE port to q6dsp Wesley Cheng 2022-12-23 23:31 ` Wesley Cheng 2022-12-24 1:37 ` kernel test robot 2023-01-04 23:33 ` Pierre-Louis Bossart 2023-01-06 1:05 ` Wesley Cheng 2023-01-06 1:05 ` Wesley Cheng 2023-01-06 16:09 ` Pierre-Louis Bossart 2023-01-07 0:51 ` Wesley Cheng 2023-01-07 0:51 ` Wesley Cheng 2023-01-05 18:09 ` Krzysztof Kozlowski 2023-01-05 18:09 ` Krzysztof Kozlowski 2023-01-06 1:32 ` Wesley Cheng 2023-01-06 1:32 ` Wesley Cheng 2022-12-23 23:31 ` [RFC PATCH 03/14] ASoC: qcom: Add USB backend ASoC driver for Q6 Wesley Cheng 2022-12-23 23:31 ` Wesley Cheng 2022-12-24 2:17 ` kernel test robot 2022-12-24 2:17 ` kernel test robot 2022-12-24 9:02 ` Greg KH 2022-12-24 9:02 ` Greg KH 2022-12-27 13:04 ` Mark Brown 2022-12-27 13:04 ` Mark Brown 2022-12-27 13:45 ` Greg KH 2022-12-27 13:45 ` Greg KH 2022-12-27 14:02 ` Takashi Iwai 2022-12-27 14:02 ` Takashi Iwai 2022-12-27 14:11 ` Mark Brown 2022-12-27 14:11 ` Mark Brown 2022-12-27 15:11 ` Mark Brown 2022-12-27 15:11 ` Mark Brown 2022-12-27 21:06 ` Wesley Cheng 2022-12-27 21:06 ` Wesley Cheng 2022-12-27 21:07 ` Wesley Cheng 2022-12-27 21:07 ` Wesley Cheng 2023-01-04 23:41 ` Pierre-Louis Bossart 2023-01-06 1:05 ` Wesley Cheng 2023-01-06 1:05 ` Wesley Cheng 2023-01-06 16:16 ` Pierre-Louis Bossart 2022-12-23 23:31 ` [RFC PATCH 04/14] sound: usb: card: Introduce USB SND vendor op callbacks Wesley Cheng 2022-12-23 23:31 ` Wesley Cheng 2022-12-24 11:03 ` Dmitry Baryshkov 2022-12-24 11:03 ` Dmitry Baryshkov 2022-12-27 21:07 ` Wesley Cheng 2022-12-27 21:07 ` Wesley Cheng 2022-12-27 21:33 ` Dmitry Baryshkov 2022-12-27 21:33 ` Dmitry Baryshkov 2022-12-29 13:49 ` Oliver Neukum 2022-12-29 13:49 ` Oliver Neukum 2022-12-29 14:20 ` Takashi Iwai 2022-12-29 14:20 ` Takashi Iwai 2022-12-30 7:10 ` Wesley Cheng 2022-12-30 7:10 ` Wesley Cheng 2023-01-03 12:20 ` Oliver Neukum 2023-01-03 12:20 ` Oliver Neukum 2023-01-03 12:49 ` Takashi Iwai 2023-01-03 12:49 ` Takashi Iwai 2023-01-03 23:45 ` Wesley Cheng 2023-01-03 23:45 ` Wesley Cheng 2022-12-23 23:31 ` [RFC PATCH 05/14] sound: usb: Export USB SND APIs for modules Wesley Cheng 2022-12-23 23:31 ` Wesley Cheng 2022-12-24 6:48 ` Greg KH 2022-12-24 6:48 ` Greg KH 2022-12-23 23:31 ` [RFC PATCH 06/14] usb: core: hcd: Introduce USB HCD APIs for interrupter management Wesley Cheng 2022-12-23 23:31 ` Wesley Cheng 2022-12-24 8:54 ` Greg KH 2022-12-24 8:54 ` Greg KH 2022-12-27 21:13 ` Wesley Cheng 2022-12-27 21:13 ` Wesley Cheng 2022-12-24 15:29 ` Alan Stern 2022-12-24 15:29 ` Alan Stern 2022-12-27 21:07 ` Wesley Cheng 2022-12-27 21:07 ` Wesley Cheng 2022-12-28 8:59 ` Oliver Neukum 2022-12-28 8:59 ` Oliver Neukum 2022-12-28 15:16 ` Alan Stern 2022-12-28 15:16 ` Alan Stern 2022-12-28 20:31 ` Wesley Cheng 2022-12-28 20:31 ` Wesley Cheng 2022-12-29 1:41 ` Alan Stern 2022-12-29 1:41 ` Alan Stern 2022-12-23 23:31 ` [RFC PATCH 07/14] usb: host: xhci: Add XHCI secondary interrupter support Wesley Cheng 2022-12-23 23:31 ` Wesley Cheng 2022-12-24 5:59 ` kernel test robot 2022-12-24 8:55 ` Greg KH 2022-12-24 8:55 ` Greg KH 2022-12-28 15:47 ` Mathias Nyman 2022-12-28 15:47 ` Mathias Nyman 2022-12-29 21:14 ` Wesley Cheng 2022-12-29 21:14 ` Wesley Cheng 2023-01-02 16:38 ` Mathias Nyman 2023-01-02 16:38 ` Mathias Nyman 2023-01-09 20:24 ` Wesley Cheng 2023-01-09 20:24 ` Wesley Cheng 2023-01-10 19:47 ` Mathias Nyman 2023-01-10 19:47 ` Mathias Nyman 2023-01-10 20:03 ` Wesley Cheng 2023-01-10 20:03 ` Wesley Cheng 2023-01-11 3:11 ` Wesley Cheng 2023-01-11 3:11 ` Wesley Cheng 2023-01-12 9:24 ` Mathias Nyman 2023-01-12 9:24 ` Mathias Nyman 2023-01-13 0:34 ` Wesley Cheng 2023-01-13 0:34 ` Wesley Cheng 2022-12-23 23:31 ` [RFC PATCH 08/14] usb: dwc3: Add DT parameter to specify maximum number of interrupters Wesley Cheng 2022-12-23 23:31 ` Wesley Cheng 2022-12-24 11:13 ` Dmitry Baryshkov [this message] 2022-12-24 11:13 ` Dmitry Baryshkov 2022-12-26 12:28 ` Krzysztof Kozlowski 2022-12-26 12:28 ` Krzysztof Kozlowski 2022-12-27 21:06 ` Wesley Cheng 2022-12-27 21:06 ` Wesley Cheng 2022-12-23 23:31 ` [RFC PATCH 09/14] sound: usb: Introduce QC USB SND offloading support Wesley Cheng 2022-12-23 23:31 ` Wesley Cheng 2022-12-24 2:27 ` kernel test robot 2023-01-02 17:28 ` Takashi Iwai 2023-01-02 17:28 ` Takashi Iwai 2023-01-04 22:38 ` Wesley Cheng 2023-01-04 22:38 ` Wesley Cheng 2023-01-04 23:51 ` Pierre-Louis Bossart 2023-01-06 1:06 ` Wesley Cheng 2023-01-06 1:06 ` Wesley Cheng 2022-12-23 23:31 ` [RFC PATCH 10/14] sound: usb: card: Check for support for requested audio format Wesley Cheng 2022-12-23 23:31 ` Wesley Cheng 2022-12-24 8:59 ` Greg KH 2022-12-24 8:59 ` Greg KH 2022-12-27 21:07 ` Wesley Cheng 2022-12-27 21:07 ` Wesley Cheng 2022-12-27 20:31 ` kernel test robot 2022-12-23 23:31 ` [RFC PATCH 11/14] sound: soc: soc-usb: Add PCM format check API for USB backend Wesley Cheng 2022-12-23 23:31 ` Wesley Cheng 2022-12-24 2:17 ` kernel test robot 2022-12-24 2:17 ` kernel test robot 2022-12-23 23:31 ` [RFC PATCH 12/14] sound: soc: qcom: qusb6: Ensure PCM format is supported by USB audio device Wesley Cheng 2022-12-23 23:31 ` Wesley Cheng 2022-12-24 8:19 ` Sergey Shtylyov 2022-12-24 8:19 ` Sergey Shtylyov 2022-12-24 8:50 ` Wesley Cheng 2022-12-24 8:50 ` Wesley Cheng 2023-01-03 17:44 ` Mark Brown 2023-01-03 17:44 ` Mark Brown 2022-12-23 23:31 ` [RFC PATCH 13/14] ASoC: dt-bindings: Add Q6USB backend bindings Wesley Cheng 2022-12-23 23:31 ` Wesley Cheng 2022-12-26 12:25 ` Krzysztof Kozlowski 2022-12-26 12:25 ` Krzysztof Kozlowski 2022-12-23 23:32 ` [RFC PATCH 14/14] ASoC: dt-bindings: Update example for enabling USB offload on SM8250 Wesley Cheng 2022-12-23 23:32 ` Wesley Cheng 2022-12-26 12:27 ` Krzysztof Kozlowski 2022-12-26 12:27 ` Krzysztof Kozlowski 2023-01-03 17:46 ` Mark Brown 2023-01-03 17:46 ` Mark Brown 2023-01-05 18:09 ` Krzysztof Kozlowski 2023-01-05 18:09 ` Krzysztof Kozlowski 2023-01-04 0:46 ` Rob Herring 2023-01-04 0:46 ` Rob Herring 2022-12-24 6:45 ` [RFC PATCH 00/14] Introduce QC USB SND audio offloading support Greg KH 2022-12-24 6:45 ` Greg KH 2022-12-24 8:49 ` Wesley Cheng 2022-12-24 8:49 ` Wesley Cheng 2022-12-27 14:36 ` Mark Brown 2022-12-27 14:36 ` Mark Brown 2023-01-04 23:19 ` Pierre-Louis Bossart 2023-01-06 1:05 ` Wesley Cheng 2023-01-06 1:05 ` Wesley Cheng 2023-01-06 15:57 ` Pierre-Louis Bossart 2023-01-07 0:46 ` Wesley Cheng 2023-01-07 0:46 ` Wesley Cheng
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='CAA8EJppsK=L69AaBgj=MzWp-ess3NSn=gPYf8-3QtJVqEVqGzw@mail.gmail.com' \ --to=dmitry.baryshkov@linaro.org \ --cc=Thinh.Nguyen@synopsys.com \ --cc=agross@kernel.org \ --cc=alsa-devel@alsa-project.org \ --cc=andersson@kernel.org \ --cc=bgoswami@quicinc.com \ --cc=broonie@kernel.org \ --cc=devicetree@vger.kernel.org \ --cc=gregkh@linuxfoundation.org \ --cc=krzysztof.kozlowski+dt@linaro.org \ --cc=lgirdwood@gmail.com \ --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=perex@perex.cz \ --cc=quic_jackp@quicinc.com \ --cc=quic_plai@quicinc.com \ --cc=quic_wcheng@quicinc.com \ --cc=robh+dt@kernel.org \ --cc=srinivas.kandagatla@linaro.org \ --cc=tiwai@suse.com \ /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: linkBe 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.