2017-03-07 03:32:55

by Chunfeng Yun

[permalink] [raw]
Subject: [PATCH 1/2] usb: xhci-mtk: check hcc_params after adding primary hcd

hcc_params is set in xhci_gen_setup() called from usb_add_hcd(),
so checks the Maximum Primary Stream Array Size in the hcc_params
register after adding primary hcd.

Signed-off-by: Chunfeng Yun <[email protected]>
---
drivers/usb/host/xhci-mtk.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/usb/host/xhci-mtk.c b/drivers/usb/host/xhci-mtk.c
index 9066ec9..6ac73a6 100644
--- a/drivers/usb/host/xhci-mtk.c
+++ b/drivers/usb/host/xhci-mtk.c
@@ -678,13 +678,13 @@ static int xhci_mtk_probe(struct platform_device *pdev)
goto power_off_phys;
}

- if (HCC_MAX_PSA(xhci->hcc_params) >= 4)
- xhci->shared_hcd->can_do_streams = 1;
-
ret = usb_add_hcd(hcd, irq, IRQF_SHARED);
if (ret)
goto put_usb3_hcd;

+ if (HCC_MAX_PSA(xhci->hcc_params) >= 4)
+ xhci->shared_hcd->can_do_streams = 1;
+
ret = usb_add_hcd(xhci->shared_hcd, irq, IRQF_SHARED);
if (ret)
goto dealloc_usb2_hcd;
--
1.7.9.5


2017-03-07 03:32:53

by Chunfeng Yun

[permalink] [raw]
Subject: [PATCH 2/2] usb: xhci: remove dummy extra_priv_size for size of xhci_hcd struct

because hcd_priv_size is already size of xhci_hcd struct,
extra_priv_size is not needed anymore for MTK and tegra drivers.

Signed-off-by: Chunfeng Yun <[email protected]>
---
drivers/usb/host/xhci-mtk.c | 1 -
drivers/usb/host/xhci-tegra.c | 1 -
2 files changed, 2 deletions(-)

diff --git a/drivers/usb/host/xhci-mtk.c b/drivers/usb/host/xhci-mtk.c
index 6ac73a6..67d5dc7 100644
--- a/drivers/usb/host/xhci-mtk.c
+++ b/drivers/usb/host/xhci-mtk.c
@@ -382,7 +382,6 @@ static int usb_wakeup_of_property_parse(struct xhci_hcd_mtk *mtk,

static int xhci_mtk_setup(struct usb_hcd *hcd);
static const struct xhci_driver_overrides xhci_mtk_overrides __initconst = {
- .extra_priv_size = sizeof(struct xhci_hcd),
.reset = xhci_mtk_setup,
};

diff --git a/drivers/usb/host/xhci-tegra.c b/drivers/usb/host/xhci-tegra.c
index a59fafb..74436f8 100644
--- a/drivers/usb/host/xhci-tegra.c
+++ b/drivers/usb/host/xhci-tegra.c
@@ -1308,7 +1308,6 @@ static int tegra_xhci_setup(struct usb_hcd *hcd)
}

static const struct xhci_driver_overrides tegra_xhci_overrides __initconst = {
- .extra_priv_size = sizeof(struct xhci_hcd),
.reset = tegra_xhci_setup,
};

--
1.7.9.5

2017-03-07 11:09:10

by Thierry Reding

[permalink] [raw]
Subject: Re: [PATCH 2/2] usb: xhci: remove dummy extra_priv_size for size of xhci_hcd struct

On Tue, Mar 07, 2017 at 11:32:23AM +0800, Chunfeng Yun wrote:
> because hcd_priv_size is already size of xhci_hcd struct,
> extra_priv_size is not needed anymore for MTK and tegra drivers.
>
> Signed-off-by: Chunfeng Yun <[email protected]>
> ---
> drivers/usb/host/xhci-mtk.c | 1 -
> drivers/usb/host/xhci-tegra.c | 1 -
> 2 files changed, 2 deletions(-)

For Tegra:

Tested-by: Thierry Reding <[email protected]>
Acked-by: Thierry Reding <[email protected]>


Attachments:
(No filename) (481.00 B)
signature.asc (833.00 B)
Download all attachments

2017-03-07 15:17:11

by Mathias Nyman

[permalink] [raw]
Subject: Re: [PATCH 2/2] usb: xhci: remove dummy extra_priv_size for size of xhci_hcd struct

On 07.03.2017 13:02, Thierry Reding wrote:
> On Tue, Mar 07, 2017 at 11:32:23AM +0800, Chunfeng Yun wrote:
>> because hcd_priv_size is already size of xhci_hcd struct,
>> extra_priv_size is not needed anymore for MTK and tegra drivers.
>>
>> Signed-off-by: Chunfeng Yun <[email protected]>
>> ---
>> drivers/usb/host/xhci-mtk.c | 1 -
>> drivers/usb/host/xhci-tegra.c | 1 -
>> 2 files changed, 2 deletions(-)
>

Nice catch, thanks.
queued.

> For Tegra:
>
> Tested-by: Thierry Reding <[email protected]>
> Acked-by: Thierry Reding <[email protected]>
>

adding tags

-Mathias

2017-03-07 16:22:24

by Mathias Nyman

[permalink] [raw]
Subject: Re: [PATCH 1/2] usb: xhci-mtk: check hcc_params after adding primary hcd

On 07.03.2017 05:32, Chunfeng Yun wrote:
> hcc_params is set in xhci_gen_setup() called from usb_add_hcd(),
> so checks the Maximum Primary Stream Array Size in the hcc_params
> register after adding primary hcd.
>
> Signed-off-by: Chunfeng Yun <[email protected]>
> ---
> drivers/usb/host/xhci-mtk.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/usb/host/xhci-mtk.c b/drivers/usb/host/xhci-mtk.c
> index 9066ec9..6ac73a6 100644
> --- a/drivers/usb/host/xhci-mtk.c
> +++ b/drivers/usb/host/xhci-mtk.c
> @@ -678,13 +678,13 @@ static int xhci_mtk_probe(struct platform_device *pdev)
> goto power_off_phys;
> }
>
> - if (HCC_MAX_PSA(xhci->hcc_params) >= 4)
> - xhci->shared_hcd->can_do_streams = 1;
> -
> ret = usb_add_hcd(hcd, irq, IRQF_SHARED);
> if (ret)
> goto put_usb3_hcd;
>
> + if (HCC_MAX_PSA(xhci->hcc_params) >= 4)
> + xhci->shared_hcd->can_do_streams = 1;
> +
> ret = usb_add_hcd(xhci->shared_hcd, irq, IRQF_SHARED);
> if (ret)
> goto dealloc_usb2_hcd;
>

Thanks.
Looks like streams check has never worked for Mediatek xHC hosts,

Do you know if this has caused any issues?
looks like it should go usb-linus and maybe stable kernels as well.

-Mathias

2017-03-08 00:59:22

by Chunfeng Yun

[permalink] [raw]
Subject: Re: [PATCH 1/2] usb: xhci-mtk: check hcc_params after adding primary hcd

On Tue, 2017-03-07 at 17:10 +0200, Mathias Nyman wrote:
> On 07.03.2017 05:32, Chunfeng Yun wrote:
> > hcc_params is set in xhci_gen_setup() called from usb_add_hcd(),
> > so checks the Maximum Primary Stream Array Size in the hcc_params
> > register after adding primary hcd.
> >
> > Signed-off-by: Chunfeng Yun <[email protected]>
> > ---
> > drivers/usb/host/xhci-mtk.c | 6 +++---
> > 1 file changed, 3 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/usb/host/xhci-mtk.c b/drivers/usb/host/xhci-mtk.c
> > index 9066ec9..6ac73a6 100644
> > --- a/drivers/usb/host/xhci-mtk.c
> > +++ b/drivers/usb/host/xhci-mtk.c
> > @@ -678,13 +678,13 @@ static int xhci_mtk_probe(struct platform_device *pdev)
> > goto power_off_phys;
> > }
> >
> > - if (HCC_MAX_PSA(xhci->hcc_params) >= 4)
> > - xhci->shared_hcd->can_do_streams = 1;
> > -
> > ret = usb_add_hcd(hcd, irq, IRQF_SHARED);
> > if (ret)
> > goto put_usb3_hcd;
> >
> > + if (HCC_MAX_PSA(xhci->hcc_params) >= 4)
> > + xhci->shared_hcd->can_do_streams = 1;
> > +
> > ret = usb_add_hcd(xhci->shared_hcd, irq, IRQF_SHARED);
> > if (ret)
> > goto dealloc_usb2_hcd;
> >
>
> Thanks.
> Looks like streams check has never worked for Mediatek xHC hosts,
>
> Do you know if this has caused any issues?
> looks like it should go usb-linus and maybe stable kernels as well.
No issues on mt8173, because it doesn't support bulk stream. But it
causes a issue on the newest SoC which is not upstreamed, so I think it
needn't go stable kernels.

Thank you.
>
> -Mathias


2017-03-08 11:06:58

by Mathias Nyman

[permalink] [raw]
Subject: Re: [PATCH 1/2] usb: xhci-mtk: check hcc_params after adding primary hcd

On 08.03.2017 02:51, Chunfeng Yun wrote:
> On Tue, 2017-03-07 at 17:10 +0200, Mathias Nyman wrote:
>> On 07.03.2017 05:32, Chunfeng Yun wrote:
>>> hcc_params is set in xhci_gen_setup() called from usb_add_hcd(),
>>> so checks the Maximum Primary Stream Array Size in the hcc_params
>>> register after adding primary hcd.
>>>
>>> Signed-off-by: Chunfeng Yun <[email protected]>
>>
>> Thanks.
>> Looks like streams check has never worked for Mediatek xHC hosts,
>>
>> Do you know if this has caused any issues?
>> looks like it should go usb-linus and maybe stable kernels as well.
> No issues on mt8173, because it doesn't support bulk stream. But it
> causes a issue on the newest SoC which is not upstreamed, so I think it
> needn't go stable kernels.
>

Ok, thanks, skipping stable

-Mathias