[PATCH] usb: phy: mv_u3d: Remove usb phy driver for mv_u3d

2014-04-15 Thread Paul Bolle
The usb phy driver for mv_u3d got added in v3.7 through commit
a67e76ac904c ("usb: phy: mv_u3d: Add usb phy driver for mv_u3d"). It
then depended on USB_MV_U3D. And that symbol depended
on CPU_MMP3 at that time. But CPU_MMP3 has never been part of the tree.
This means that this drive was unbuildable when it was added.

In commit 60630c2eabd4 ("usb: gadget: mv_u3d: drop ARCH dependency")
MV_U3D_PHY was made depended directly on CPU_MMP3. That kept it
unbuildable, of course.

Remove this driver. It can be re-added once its dependencies are part of
the tree.

Signed-off-by: Paul Bolle 
---
Tested with git grep.

This was triggered by Richard's "[PATCH 01/28] Remove CPU_MMP3" of two
months ago, which I acked to eagerly. See
https://lkml.org/lkml/2014/2/11/714 for the details.

 drivers/usb/phy/Kconfig  |   8 -
 drivers/usb/phy/Makefile |   1 -
 drivers/usb/phy/phy-mv-u3d-usb.c | 338 ---
 drivers/usb/phy/phy-mv-u3d-usb.h | 105 
 4 files changed, 452 deletions(-)
 delete mode 100644 drivers/usb/phy/phy-mv-u3d-usb.c
 delete mode 100644 drivers/usb/phy/phy-mv-u3d-usb.h

diff --git a/drivers/usb/phy/Kconfig b/drivers/usb/phy/Kconfig
index 416e0c8cf6ff..33dd6a6c320a 100644
--- a/drivers/usb/phy/Kconfig
+++ b/drivers/usb/phy/Kconfig
@@ -59,14 +59,6 @@ config KEYSTONE_USB_PHY
  interface to interact with USB 2.0 and USB 3.0 PHY that is part
  of the Keystone SOC.
 
-config MV_U3D_PHY
-   bool "Marvell USB 3.0 PHY controller Driver"
-   depends on CPU_MMP3
-   select USB_PHY
-   help
- Enable this to support Marvell USB 3.0 phy controller for Marvell
- SoC.
-
 config NOP_USB_XCEIV
tristate "NOP USB Transceiver Driver"
select USB_PHY
diff --git a/drivers/usb/phy/Makefile b/drivers/usb/phy/Makefile
index f8fa719a31b9..a2d05690d925 100644
--- a/drivers/usb/phy/Makefile
+++ b/drivers/usb/phy/Makefile
@@ -10,7 +10,6 @@ obj-$(CONFIG_USB_OTG_FSM) += phy-fsm-usb.o
 obj-$(CONFIG_AB8500_USB)   += phy-ab8500-usb.o
 obj-$(CONFIG_FSL_USB2_OTG) += phy-fsl-usb.o
 obj-$(CONFIG_ISP1301_OMAP) += phy-isp1301-omap.o
-obj-$(CONFIG_MV_U3D_PHY)   += phy-mv-u3d-usb.o
 obj-$(CONFIG_NOP_USB_XCEIV)+= phy-generic.o
 obj-$(CONFIG_TAHVO_USB)+= phy-tahvo.o
 obj-$(CONFIG_AM335X_CONTROL_USB)   += phy-am335x-control.o
diff --git a/drivers/usb/phy/phy-mv-u3d-usb.c b/drivers/usb/phy/phy-mv-u3d-usb.c
deleted file mode 100644
index d317903022bf..
--- a/drivers/usb/phy/phy-mv-u3d-usb.c
+++ /dev/null
@@ -1,338 +0,0 @@
-/*
- * Copyright (C) 2011 Marvell International Ltd. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- */
-
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-
-#include "phy-mv-u3d-usb.h"
-
-/*
- * struct mv_u3d_phy - transceiver driver state
- * @phy: transceiver structure
- * @dev: The parent device supplied to the probe function
- * @clk: usb phy clock
- * @base: usb phy register memory base
- */
-struct mv_u3d_phy {
-   struct usb_phy  phy;
-   struct mv_usb_platform_data *plat;
-   struct device   *dev;
-   struct clk  *clk;
-   void __iomem*base;
-};
-
-static u32 mv_u3d_phy_read(void __iomem *base, u32 reg)
-{
-   void __iomem *addr, *data;
-
-   addr = base;
-   data = base + 0x4;
-
-   writel_relaxed(reg, addr);
-   return readl_relaxed(data);
-}
-
-static void mv_u3d_phy_set(void __iomem *base, u32 reg, u32 value)
-{
-   void __iomem *addr, *data;
-   u32 tmp;
-
-   addr = base;
-   data = base + 0x4;
-
-   writel_relaxed(reg, addr);
-   tmp = readl_relaxed(data);
-   tmp |= value;
-   writel_relaxed(tmp, data);
-}
-
-static void mv_u3d_phy_clear(void __iomem *base, u32 reg, u32 value)
-{
-   void __iomem *addr, *data;
-   u32 tmp;
-
-   addr = base;
-   data = base + 0x4;
-
-   writel_relaxed(reg, addr);
-   tmp = readl_relaxed(data);
-   tmp &= ~value;
-   writel_relaxed(tmp, data);
-}
-
-static void mv_u3d_phy_write(void __iomem *base, u32 reg, u32 value)
-{
-   void __iomem *addr, *data;
-
-   addr = base;
-   data = base + 0x4;
-
-   writel_relaxed(reg, addr);
-   writel_relaxed(value, data);
-}
-
-static void mv_u3d_phy_shutdown(struct usb_phy *phy)
-{
-   struct mv_u3d_phy *mv_u3d_phy;
-   void __iomem *base;
-   u32 val;
-
-   mv_u3d_phy = container_of(phy, struct mv_u3d_phy, phy);
-   base = mv_u3d_phy->base;
-
-   /* Power down Reference Analog current, bit 15
-* Power down PLL, bit 14
-* Power down Receiver, bit 13
-* Power down Transmitter, bit 12
-* of USB3_POWER_PLL_CONTROL registe

Re: [PATCH] usb: phy: mv_u3d: Remove usb phy driver for mv_u3d

2014-04-15 Thread Felipe Balbi
On Tue, Apr 15, 2014 at 01:36:23PM +0200, Paul Bolle wrote:
> The usb phy driver for mv_u3d got added in v3.7 through commit
> a67e76ac904c ("usb: phy: mv_u3d: Add usb phy driver for mv_u3d"). It
> then depended on USB_MV_U3D. And that symbol depended
> on CPU_MMP3 at that time. But CPU_MMP3 has never been part of the tree.
> This means that this drive was unbuildable when it was added.
> 
> In commit 60630c2eabd4 ("usb: gadget: mv_u3d: drop ARCH dependency")
> MV_U3D_PHY was made depended directly on CPU_MMP3. That kept it
> unbuildable, of course.
> 
> Remove this driver. It can be re-added once its dependencies are part of
> the tree.
> 
> Signed-off-by: Paul Bolle 
> ---
> Tested with git grep.
> 
> This was triggered by Richard's "[PATCH 01/28] Remove CPU_MMP3" of two
> months ago, which I acked to eagerly. See
> https://lkml.org/lkml/2014/2/11/714 for the details.

so this means that drivers/usb/gadget/mv_u3d_core.c isn't used either ?
Instead of deleting this and introducing a new driver, why don't you
just help fix what's already in-tree ?

-- 
balbi


signature.asc
Description: Digital signature


Re: [PATCH] usb: phy: mv_u3d: Remove usb phy driver for mv_u3d

2014-04-15 Thread Paul Bolle
On Tue, 2014-04-15 at 12:23 -0500, Felipe Balbi wrote:
> so this means that drivers/usb/gadget/mv_u3d_core.c isn't used either ?

Why should it? There's no dependency on CPU_MMP3 for USB_MV_U3D anymore,
is there?

> Instead of deleting this and introducing a new driver, why don't you
> just help fix what's already in-tree ?

Were any of the reasons I gave for removing this driver incorrect? Has
it actually ever been possible to build it?


Paul Bolle

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


Re: [PATCH] usb: phy: mv_u3d: Remove usb phy driver for mv_u3d

2014-04-15 Thread Felipe Balbi
On Tue, Apr 15, 2014 at 08:08:32PM +0200, Paul Bolle wrote:
> On Tue, 2014-04-15 at 12:23 -0500, Felipe Balbi wrote:
> > so this means that drivers/usb/gadget/mv_u3d_core.c isn't used either ?
> 
> Why should it? There's no dependency on CPU_MMP3 for USB_MV_U3D anymore,
> is there?

no, but the UDC needs its PHY driver.

> > Instead of deleting this and introducing a new driver, why don't you
> > just help fix what's already in-tree ?
> 
> Were any of the reasons I gave for removing this driver incorrect? Has
> it actually ever been possible to build it?

I don't know, let me check:

$ make drivers/usb/phy/phy-mv-u3d-usb.o
  CHK include/config/kernel.release
  CHK include/generated/uapi/linux/version.h
  CHK include/generated/utsrelease.h
make[1]: `include/generated/mach-types.h' is up to date.
  CALLscripts/checksyscalls.sh
  CC  drivers/usb/phy/phy-mv-u3d-usb.o

yup, builds just fine. Even if the ARCH support isn't in place, this
driver is *not* breaking anything, it's not preventing anyone from
getting work done and it might be helping Marvell decrease the amount of
changes they keep out of tree.

I don't see any problems this driver in tree as long as there are people
working on it and I see the latest commit was 10 days ago, it wouldn't
be fair to Marvell to delete their driver if they're still finding ways
to make it useful one way or another.

cheers

-- 
balbi


signature.asc
Description: Digital signature


Re: [PATCH] usb: phy: mv_u3d: Remove usb phy driver for mv_u3d

2014-04-17 Thread Paul Bolle
On Tue, 2014-04-15 at 23:34 -0500, Felipe Balbi wrote:
> $ make drivers/usb/phy/phy-mv-u3d-usb.o
>   CHK include/config/kernel.release
>   CHK include/generated/uapi/linux/version.h
>   CHK include/generated/utsrelease.h
> make[1]: `include/generated/mach-types.h' is up to date.
>   CALLscripts/checksyscalls.sh
>   CC  drivers/usb/phy/phy-mv-u3d-usb.o

(On x86_64 this manual make command triggers the error Greg reported in
https://lkml.org/lkml/2014/2/11/693 .)

> yup, builds just fine. Even if the ARCH support isn't in place, this
> driver is *not* breaking anything, it's not preventing anyone from
> getting work done and it might be helping Marvell decrease the amount of
> changes they keep out of tree.
> 
> I don't see any problems this driver in tree as long as there are people
> working on it and I see the latest commit was 10 days ago, it wouldn't
> be fair to Marvell to delete their driver if they're still finding ways
> to make it useful one way or another.

Wouldn't it then be better if this driver is at least hooked into the
build system? Like, say, this:
config MV_U3D_PHY
bool "Marvell USB 3.0 PHY controller Driver"
# XXX should depend on CPU_MMP3 when support for MMP3 lands
depends on ARM && COMPILE_TEST
select USB_PHY
help
  Enable this to support Marvell USB 3.0 phy controller for Marvell
  SoC.

(Or perhaps only ARCH_MMP && COMPILE_TEST.) That should give it build
coverage by the automated tests people appear to run, while work is done
on adding MMP3 support.

Thanks,


Paul Bolle

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


Re: [PATCH] usb: phy: mv_u3d: Remove usb phy driver for mv_u3d

2014-04-17 Thread Felipe Balbi
On Thu, Apr 17, 2014 at 09:50:28AM +0200, Paul Bolle wrote:
> On Tue, 2014-04-15 at 23:34 -0500, Felipe Balbi wrote:
> > $ make drivers/usb/phy/phy-mv-u3d-usb.o
> >   CHK include/config/kernel.release
> >   CHK include/generated/uapi/linux/version.h
> >   CHK include/generated/utsrelease.h
> > make[1]: `include/generated/mach-types.h' is up to date.
> >   CALLscripts/checksyscalls.sh
> >   CC  drivers/usb/phy/phy-mv-u3d-usb.o
> 
> (On x86_64 this manual make command triggers the error Greg reported in
> https://lkml.org/lkml/2014/2/11/693 .)
> 
> > yup, builds just fine. Even if the ARCH support isn't in place, this
> > driver is *not* breaking anything, it's not preventing anyone from
> > getting work done and it might be helping Marvell decrease the amount of
> > changes they keep out of tree.
> > 
> > I don't see any problems this driver in tree as long as there are people
> > working on it and I see the latest commit was 10 days ago, it wouldn't
> > be fair to Marvell to delete their driver if they're still finding ways
> > to make it useful one way or another.
> 
> Wouldn't it then be better if this driver is at least hooked into the
> build system? Like, say, this:
> config MV_U3D_PHY
> bool "Marvell USB 3.0 PHY controller Driver"
> # XXX should depend on CPU_MMP3 when support for MMP3 lands
> depends on ARM && COMPILE_TEST
> select USB_PHY
> help
>   Enable this to support Marvell USB 3.0 phy controller for 
> Marvell
>   SoC.
> 
> (Or perhaps only ARCH_MMP && COMPILE_TEST.) That should give it build
> coverage by the automated tests people appear to run, while work is done
> on adding MMP3 support.

I guess we should make it depend on BROKEN instead, or we just apply the
patch below:

8<-

From 60e524d7db4ed04624850fcb84a844c609a960e3 Mon Sep 17 00:00:00 2001
From: Felipe Balbi 
Date: Thu, 17 Apr 2014 11:24:27 -0500
Subject: [PATCH] usb: phy: mv-u3d: switch over to writel/readl

by removing the _relaxed suffix, we can build
this driver in other architectures.

Signed-off-by: Felipe Balbi 
---
 drivers/usb/phy/phy-mv-u3d-usb.c | 20 ++--
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/drivers/usb/phy/phy-mv-u3d-usb.c b/drivers/usb/phy/phy-mv-u3d-usb.c
index d317903..d342175 100644
--- a/drivers/usb/phy/phy-mv-u3d-usb.c
+++ b/drivers/usb/phy/phy-mv-u3d-usb.c
@@ -39,8 +39,8 @@ static u32 mv_u3d_phy_read(void __iomem *base, u32 reg)
addr = base;
data = base + 0x4;
 
-   writel_relaxed(reg, addr);
-   return readl_relaxed(data);
+   writel(reg, addr);
+   return readl(data);
 }
 
 static void mv_u3d_phy_set(void __iomem *base, u32 reg, u32 value)
@@ -51,10 +51,10 @@ static void mv_u3d_phy_set(void __iomem *base, u32 reg, u32 
value)
addr = base;
data = base + 0x4;
 
-   writel_relaxed(reg, addr);
-   tmp = readl_relaxed(data);
+   writel(reg, addr);
+   tmp = readl(data);
tmp |= value;
-   writel_relaxed(tmp, data);
+   writel(tmp, data);
 }
 
 static void mv_u3d_phy_clear(void __iomem *base, u32 reg, u32 value)
@@ -65,10 +65,10 @@ static void mv_u3d_phy_clear(void __iomem *base, u32 reg, 
u32 value)
addr = base;
data = base + 0x4;
 
-   writel_relaxed(reg, addr);
-   tmp = readl_relaxed(data);
+   writel(reg, addr);
+   tmp = readl(data);
tmp &= ~value;
-   writel_relaxed(tmp, data);
+   writel(tmp, data);
 }
 
 static void mv_u3d_phy_write(void __iomem *base, u32 reg, u32 value)
@@ -78,8 +78,8 @@ static void mv_u3d_phy_write(void __iomem *base, u32 reg, u32 
value)
addr = base;
data = base + 0x4;
 
-   writel_relaxed(reg, addr);
-   writel_relaxed(value, data);
+   writel(reg, addr);
+   writel(value, data);
 }
 
 static void mv_u3d_phy_shutdown(struct usb_phy *phy)
-- 
1.9.2.459.g68773ac


-- 
balbi


signature.asc
Description: Digital signature