Re: [PATCH 07/10] usb: chipidea: msm: do not force the TX FIFO idle on HSIC instances
Konrad Dybcio <[email protected]>
| Newsgroups | org.kernel.vger.linux-gpio,org.infradead.lists.linux-phy,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel,org.kernel.vger.linux-usb |
|---|---|
| Message-ID | <[email protected]> |
On 8/10/26 5:42 PM, Dmitry Baryshkov wrote:
> The controller reset handler unconditionally clears
> GENCONFIG[TXFIFO_IDLE_FORCE_DIS] as a workaround for an RX buffer
> collision issue. The vendor HSIC host driver never applies this
> workaround on the HSIC instances and leaves the bit at its power-on
> default (set), so clearing it makes the HSIC instance diverge from the
> known-working configuration.
>
> Skip the workaround for HSIC instances, like the neighbouring
> GENCONFIG_2 write already does.
>
> Fixes: 47654a162081 ("usb: chipidea: msm: Restore wrapper settings after reset")
> Assisted-by: Claude:claude-fable-5
> Signed-off-by: Dmitry Baryshkov <[email protected]>
> ---
> drivers/usb/chipidea/ci_hdrc_msm.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/usb/chipidea/ci_hdrc_msm.c b/drivers/usb/chipidea/ci_hdrc_msm.c
> index 9a9410a814e5..69be194f8e27 100644
> --- a/drivers/usb/chipidea/ci_hdrc_msm.c
> +++ b/drivers/usb/chipidea/ci_hdrc_msm.c
> @@ -108,8 +108,9 @@ static int ci_hdrc_msm_notify_event(struct ci_hdrc *ci, unsigned event)
> hw_write_id_reg(ci, HS_PHY_AHB_MODE, 0xffffffff, 0x8);
>
> /* workaround for rx buffer collision issue */
> - hw_write_id_reg(ci, HS_PHY_GENCONFIG,
> - HS_PHY_TXFIFO_IDLE_FORCE_DIS, 0);
> + if (!msm_ci->hsic)
> + hw_write_id_reg(ci, HS_PHY_GENCONFIG,
> + HS_PHY_TXFIFO_IDLE_FORCE_DIS, 0);
This patch seems not to match downstream, msm-3.10 sets it in both
hsic and non-hsic drivers
Konrad