All of lore.kernel.org
 help / color / mirror / Atom feed
* [1/2] usb: musb: un-break davinci glue layer
@ 2017-12-08 19:23 ` Alejandro Mery
  0 siblings, 0 replies; 8+ messages in thread
From: Alejandro Mery @ 2017-12-08 19:23 UTC (permalink / raw)
  To: linux-usb, Bin Liu, Sekhar Nori, linux-arm-kernel
  Cc: Greg Kroah-Hartman, Alejandro Mery

MUSB's davinci glue was made to depend on BROKEN by Felipe Balbi back in
2013 because of lack of active development. needed changes were actually trivial

Fixes: 787f5627bec8 (usb: musb: make davinci and da8xx glues depend on BROKEN)
Signed-off-by: Alejandro Mery <amery@hanoverdisplays.com>
---
 drivers/usb/musb/Kconfig   |  1 -
 drivers/usb/musb/davinci.c | 20 ++++++++++----------
 2 files changed, 10 insertions(+), 11 deletions(-)

diff --git a/drivers/usb/musb/Kconfig b/drivers/usb/musb/Kconfig
index 5506a9c03c1f..e13320eebbbf 100644
--- a/drivers/usb/musb/Kconfig
+++ b/drivers/usb/musb/Kconfig
@@ -76,7 +76,6 @@ config USB_MUSB_DAVINCI
 	tristate "DaVinci"
 	depends on ARCH_DAVINCI_DMx
 	depends on NOP_USB_XCEIV
-	depends on BROKEN
 
 config USB_MUSB_DA8XX
 	tristate "DA8xx/OMAP-L1x"
diff --git a/drivers/usb/musb/davinci.c b/drivers/usb/musb/davinci.c
index 2ad39dcd2f4c..6571f9e59f8f 100644
--- a/drivers/usb/musb/davinci.c
+++ b/drivers/usb/musb/davinci.c
@@ -39,6 +39,7 @@
 struct davinci_glue {
 	struct device		*dev;
 	struct platform_device	*musb;
+	struct platform_device	*phy;
 	struct clk		*clk;
 };
 
@@ -363,10 +364,8 @@ static int davinci_musb_init(struct musb *musb)
 	int 		ret = -ENODEV;
 
 	musb->xceiv = usb_get_phy(USB_PHY_TYPE_USB2);
-	if (IS_ERR_OR_NULL(musb->xceiv)) {
-		ret = -EPROBE_DEFER;
-		goto unregister;
-	}
+	if (IS_ERR_OR_NULL(musb->xceiv))
+		return -EPROBE_DEFER;
 
 	musb->mregs += DAVINCI_BASE_OFFSET;
 
@@ -418,8 +417,6 @@ static int davinci_musb_init(struct musb *musb)
 
 fail:
 	usb_put_phy(musb->xceiv);
-unregister:
-	usb_phy_generic_unregister();
 	return ret;
 }
 
@@ -527,7 +524,9 @@ static int davinci_probe(struct platform_device *pdev)
 
 	pdata->platform_ops		= &davinci_ops;
 
-	usb_phy_generic_register();
+	glue->phy = usb_phy_generic_register();
+	if (IS_ERR(glue->phy))
+		goto err1;
 	platform_set_drvdata(pdev, glue);
 
 	memset(musb_resources, 0x00, sizeof(*musb_resources) *
@@ -563,14 +562,15 @@ static int davinci_probe(struct platform_device *pdev)
 	if (IS_ERR(musb)) {
 		ret = PTR_ERR(musb);
 		dev_err(&pdev->dev, "failed to register musb device: %d\n", ret);
-		goto err1;
+		goto err2;
 	}
 
 	return 0;
 
+err2:
+	usb_phy_generic_unregister(glue->phy);
 err1:
 	clk_disable(clk);
-
 err0:
 	return ret;
 }
@@ -580,7 +580,7 @@ static int davinci_remove(struct platform_device *pdev)
 	struct davinci_glue		*glue = platform_get_drvdata(pdev);
 
 	platform_device_unregister(glue->musb);
-	usb_phy_generic_unregister();
+	usb_phy_generic_unregister(glue->phy);
 	clk_disable(glue->clk);
 
 	return 0;

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 1/2] usb: musb: un-break davinci glue layer
@ 2017-12-08 19:23 ` Alejandro Mery
  0 siblings, 0 replies; 8+ messages in thread
From: Alejandro Mery @ 2017-12-08 19:23 UTC (permalink / raw)
  To: linux-arm-kernel

MUSB's davinci glue was made to depend on BROKEN by Felipe Balbi back in
2013 because of lack of active development. needed changes were actually trivial

Fixes: 787f5627bec8 (usb: musb: make davinci and da8xx glues depend on BROKEN)
Signed-off-by: Alejandro Mery <amery@hanoverdisplays.com>
---
 drivers/usb/musb/Kconfig   |  1 -
 drivers/usb/musb/davinci.c | 20 ++++++++++----------
 2 files changed, 10 insertions(+), 11 deletions(-)

diff --git a/drivers/usb/musb/Kconfig b/drivers/usb/musb/Kconfig
index 5506a9c03c1f..e13320eebbbf 100644
--- a/drivers/usb/musb/Kconfig
+++ b/drivers/usb/musb/Kconfig
@@ -76,7 +76,6 @@ config USB_MUSB_DAVINCI
 	tristate "DaVinci"
 	depends on ARCH_DAVINCI_DMx
 	depends on NOP_USB_XCEIV
-	depends on BROKEN
 
 config USB_MUSB_DA8XX
 	tristate "DA8xx/OMAP-L1x"
diff --git a/drivers/usb/musb/davinci.c b/drivers/usb/musb/davinci.c
index 2ad39dcd2f4c..6571f9e59f8f 100644
--- a/drivers/usb/musb/davinci.c
+++ b/drivers/usb/musb/davinci.c
@@ -39,6 +39,7 @@
 struct davinci_glue {
 	struct device		*dev;
 	struct platform_device	*musb;
+	struct platform_device	*phy;
 	struct clk		*clk;
 };
 
@@ -363,10 +364,8 @@ static int davinci_musb_init(struct musb *musb)
 	int 		ret = -ENODEV;
 
 	musb->xceiv = usb_get_phy(USB_PHY_TYPE_USB2);
-	if (IS_ERR_OR_NULL(musb->xceiv)) {
-		ret = -EPROBE_DEFER;
-		goto unregister;
-	}
+	if (IS_ERR_OR_NULL(musb->xceiv))
+		return -EPROBE_DEFER;
 
 	musb->mregs += DAVINCI_BASE_OFFSET;
 
@@ -418,8 +417,6 @@ static int davinci_musb_init(struct musb *musb)
 
 fail:
 	usb_put_phy(musb->xceiv);
-unregister:
-	usb_phy_generic_unregister();
 	return ret;
 }
 
@@ -527,7 +524,9 @@ static int davinci_probe(struct platform_device *pdev)
 
 	pdata->platform_ops		= &davinci_ops;
 
-	usb_phy_generic_register();
+	glue->phy = usb_phy_generic_register();
+	if (IS_ERR(glue->phy))
+		goto err1;
 	platform_set_drvdata(pdev, glue);
 
 	memset(musb_resources, 0x00, sizeof(*musb_resources) *
@@ -563,14 +562,15 @@ static int davinci_probe(struct platform_device *pdev)
 	if (IS_ERR(musb)) {
 		ret = PTR_ERR(musb);
 		dev_err(&pdev->dev, "failed to register musb device: %d\n", ret);
-		goto err1;
+		goto err2;
 	}
 
 	return 0;
 
+err2:
+	usb_phy_generic_unregister(glue->phy);
 err1:
 	clk_disable(clk);
-
 err0:
 	return ret;
 }
@@ -580,7 +580,7 @@ static int davinci_remove(struct platform_device *pdev)
 	struct davinci_glue		*glue = platform_get_drvdata(pdev);
 
 	platform_device_unregister(glue->musb);
-	usb_phy_generic_unregister();
+	usb_phy_generic_unregister(glue->phy);
 	clk_disable(glue->clk);
 
 	return 0;
-- 
2.15.0

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [2/2] usb: musb: davinci: Pass file_mode in platform data
  2017-12-08 19:23 ` [PATCH 1/2] " Alejandro Mery
@ 2017-12-08 19:23 ` Alejandro Mery
  -1 siblings, 0 replies; 8+ messages in thread
From: Alejandro Mery @ 2017-12-08 19:23 UTC (permalink / raw)
  To: linux-usb, Bin Liu, Sekhar Nori, linux-arm-kernel
  Cc: Greg Kroah-Hartman, Alejandro Mery

as it was done for glues to allow setting the correct
fifo_mode when multiple MUSB glue layers are built-in

Fixes: 8a77f05aa39b ("usb: musb: Pass fifo_mode in platform data")
Signed-off-by: Alejandro Mery <amery@hanoverdisplays.com>
---
 drivers/usb/musb/davinci.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/usb/musb/davinci.c b/drivers/usb/musb/davinci.c
index 6571f9e59f8f..2632efd3d598 100644
--- a/drivers/usb/musb/davinci.c
+++ b/drivers/usb/musb/davinci.c
@@ -472,6 +472,7 @@ static const struct musb_platform_ops davinci_ops = {
 	.quirks		= MUSB_DMA_CPPI,
 	.init		= davinci_musb_init,
 	.exit		= davinci_musb_exit,
+	.fifo_mode	= 2,
 
 #ifdef CONFIG_USB_TI_CPPI_DMA
 	.dma_init	= cppi_dma_controller_create,

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/2] usb: musb: davinci: Pass file_mode in platform data
@ 2017-12-08 19:23 ` Alejandro Mery
  0 siblings, 0 replies; 8+ messages in thread
From: Alejandro Mery @ 2017-12-08 19:23 UTC (permalink / raw)
  To: linux-arm-kernel

as it was done for glues to allow setting the correct
fifo_mode when multiple MUSB glue layers are built-in

Fixes: 8a77f05aa39b ("usb: musb: Pass fifo_mode in platform data")
Signed-off-by: Alejandro Mery <amery@hanoverdisplays.com>
---
 drivers/usb/musb/davinci.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/usb/musb/davinci.c b/drivers/usb/musb/davinci.c
index 6571f9e59f8f..2632efd3d598 100644
--- a/drivers/usb/musb/davinci.c
+++ b/drivers/usb/musb/davinci.c
@@ -472,6 +472,7 @@ static const struct musb_platform_ops davinci_ops = {
 	.quirks		= MUSB_DMA_CPPI,
 	.init		= davinci_musb_init,
 	.exit		= davinci_musb_exit,
+	.fifo_mode	= 2,
 
 #ifdef CONFIG_USB_TI_CPPI_DMA
 	.dma_init	= cppi_dma_controller_create,
-- 
2.15.0

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [1/2] usb: musb: un-break davinci glue layer
  2017-12-08 19:23 ` [PATCH 1/2] " Alejandro Mery
@ 2017-12-19 17:22 ` Bin Liu
  -1 siblings, 0 replies; 8+ messages in thread
From: Bin Liu @ 2017-12-19 17:22 UTC (permalink / raw)
  To: Alejandro Mery
  Cc: linux-usb, Sekhar Nori, linux-arm-kernel, Greg Kroah-Hartman

Hi Alejandro,

On Fri, Dec 08, 2017 at 07:23:54PM +0000, Alejandro Mery wrote:
> MUSB's davinci glue was made to depend on BROKEN by Felipe Balbi back in
> 2013 because of lack of active development. needed changes were actually trivial
> 
> Fixes: 787f5627bec8 (usb: musb: make davinci and da8xx glues depend on BROKEN)
> Signed-off-by: Alejandro Mery <amery@hanoverdisplays.com>

Thanks for the effort to re-enable this driver. But due to lack of
development, other than the phy and fifo mode which you try to fix with
these two patches, the driver still doesn't fit in the current driver
framework, for example,

- the driver depends on mach/ header for CPU and board type;
- clk control is not separated;
- gpio control vbus should use extcon driver;

So I feel it is not ready to un-broken it yet, unless others have
different opinion.

But I could take these two patches if not remove BROKEN from Kconfig.

Regards,
-Bin.
---
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 1/2] usb: musb: un-break davinci glue layer
@ 2017-12-19 17:22 ` Bin Liu
  0 siblings, 0 replies; 8+ messages in thread
From: Bin Liu @ 2017-12-19 17:22 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Alejandro,

On Fri, Dec 08, 2017 at 07:23:54PM +0000, Alejandro Mery wrote:
> MUSB's davinci glue was made to depend on BROKEN by Felipe Balbi back in
> 2013 because of lack of active development. needed changes were actually trivial
> 
> Fixes: 787f5627bec8 (usb: musb: make davinci and da8xx glues depend on BROKEN)
> Signed-off-by: Alejandro Mery <amery@hanoverdisplays.com>

Thanks for the effort to re-enable this driver. But due to lack of
development, other than the phy and fifo mode which you try to fix with
these two patches, the driver still doesn't fit in the current driver
framework, for example,

- the driver depends on mach/ header for CPU and board type;
- clk control is not separated;
- gpio control vbus should use extcon driver;

So I feel it is not ready to un-broken it yet, unless others have
different opinion.

But I could take these two patches if not remove BROKEN from Kconfig.

Regards,
-Bin.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [1/2] usb: musb: un-break davinci glue layer
@ 2017-12-19 19:33 ` Bin Liu
  0 siblings, 0 replies; 8+ messages in thread
From: Bin Liu @ 2017-12-19 19:33 UTC (permalink / raw)
  To: Alejandro Mery
  Cc: linux-usb, Sekhar Nori, linux-arm-kernel, Greg Kroah-Hartman

On Tue, Dec 19, 2017 at 05:33:14PM +0000, Alejandro Mery wrote:
> Hi Bin,
> 
> On 19/12/17 17:22, Bin Liu wrote:
> > Hi Alejandro,
> >
> > On Fri, Dec 08, 2017 at 07:23:54PM +0000, Alejandro Mery wrote:
> >> MUSB's davinci glue was made to depend on BROKEN by Felipe Balbi back in
> >> 2013 because of lack of active development. needed changes were actually trivial
> >>
> >> Fixes: 787f5627bec8 (usb: musb: make davinci and da8xx glues depend on BROKEN)
> >> Signed-off-by: Alejandro Mery <amery@hanoverdisplays.com>
> > Thanks for the effort to re-enable this driver. But due to lack of
> > development, other than the phy and fifo mode which you try to fix with
> > these two patches, the driver still doesn't fit in the current driver
> > framework, for example,
> >
> > - the driver depends on mach/ header for CPU and board type;
> > - clk control is not separated;
> > - gpio control vbus should use extcon driver;
> I'll try to fix these issues but it will take a while. I'm still
> struggling to get USB working at all on the DM365 EVM

Thanks for the effort.

> 
> >
> > So I feel it is not ready to un-broken it yet, unless others have
> > different opinion.
> >
> > But I could take these two patches if not remove BROKEN from Kconfig.
> 
> do you want a v2 for that?

That will be great!

Thanks,
-Bin.
---
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 1/2] usb: musb: un-break davinci glue layer
@ 2017-12-19 19:33 ` Bin Liu
  0 siblings, 0 replies; 8+ messages in thread
From: Bin Liu @ 2017-12-19 19:33 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Dec 19, 2017 at 05:33:14PM +0000, Alejandro Mery wrote:
> Hi Bin,
> 
> On 19/12/17 17:22, Bin Liu wrote:
> > Hi Alejandro,
> >
> > On Fri, Dec 08, 2017 at 07:23:54PM +0000, Alejandro Mery wrote:
> >> MUSB's davinci glue was made to depend on BROKEN by Felipe Balbi back in
> >> 2013 because of lack of active development. needed changes were actually trivial
> >>
> >> Fixes: 787f5627bec8 (usb: musb: make davinci and da8xx glues depend on BROKEN)
> >> Signed-off-by: Alejandro Mery <amery@hanoverdisplays.com>
> > Thanks for the effort to re-enable this driver. But due to lack of
> > development, other than the phy and fifo mode which you try to fix with
> > these two patches, the driver still doesn't fit in the current driver
> > framework, for example,
> >
> > - the driver depends on mach/ header for CPU and board type;
> > - clk control is not separated;
> > - gpio control vbus should use extcon driver;
> I'll try to fix these issues but it will take a while. I'm still
> struggling to get USB working at all on the DM365 EVM

Thanks for the effort.

> 
> >
> > So I feel it is not ready to un-broken it yet, unless others have
> > different opinion.
> >
> > But I could take these two patches if not remove BROKEN from Kconfig.
> 
> do you want a v2 for that?

That will be great!

Thanks,
-Bin.

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2017-12-19 19:33 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-12-08 19:23 [1/2] usb: musb: un-break davinci glue layer Alejandro Mery
2017-12-08 19:23 ` [PATCH 1/2] " Alejandro Mery
2017-12-08 19:23 [2/2] usb: musb: davinci: Pass file_mode in platform data Alejandro Mery
2017-12-08 19:23 ` [PATCH 2/2] " Alejandro Mery
2017-12-19 17:22 [1/2] usb: musb: un-break davinci glue layer Bin Liu
2017-12-19 17:22 ` [PATCH 1/2] " Bin Liu
2017-12-19 19:33 [1/2] " Bin Liu
2017-12-19 19:33 ` [PATCH 1/2] " Bin Liu

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.