public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [GIT PULL 0/8] phy: fixes for 3.16 -rc cycle
@ 2014-07-07  6:48 Kishon Vijay Abraham I
  2014-07-07  6:48 ` [PATCH 1/8] phy: sun4i: depend on RESET_CONTROLLER Kishon Vijay Abraham I
                   ` (7 more replies)
  0 siblings, 8 replies; 17+ messages in thread
From: Kishon Vijay Abraham I @ 2014-07-07  6:48 UTC (permalink / raw)
  To: gregkh; +Cc: kishon, linux-kernel

Hi Greg,

Please find the pull requeust for 3.16 -rc cycle for PHY subsystem.

It contains few fixes in phy-core and few other PHY drivers. It also adds
regulatore support in PHY core which is needed to get USB and SATA working in
DRA7xx.

Please consider merging this for this -rc cylce. Let me know if I have to
change something.

Cheers
Kishon

The following changes since commit a497c3ba1d97fc69c1e78e7b96435ba8c2cb42ee:

  Linux 3.16-rc2 (2014-06-21 19:02:54 -1000)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/kishon/linux-phy.git tags/for-3.16-rc

for you to fetch changes up to 59a7ada8f05269172aa80cf92017a35abe6a0339:

  phy: omap-usb2: Balance pm_runtime_enable() on probe failure and remove (2014-07-04 20:43:26 +0530)

----------------------------------------------------------------
for 3.16-rc

Contains fixes in phy-core and other minor fixes in some of the other
PHY drivers. It also adds regulator support in PHY core needed to get
USB and SATA working in DRA7x. (These regulators were always on
previously).

----------------------------------------------------------------
Himangi Saraogi (1):
      usb: phy: omap-usb2: fix devm_ioremap_resource error detection code

Kamil Debski (1):
      phy: phy-samsung-usb2: Change phy power on/power off sequence

Maxime Ripard (1):
      phy: sun4i: depend on RESET_CONTROLLER

Roger Quadros (4):
      phy: core: Fix error path in phy_create()
      phy: core: Support regulator supply for PHY power
      phy: core: Add phy-supply to DT binding documentation
      phy: omap-usb2: Balance pm_runtime_enable() on probe failure and remove

Sjoerd Simons (1):
      drivers: phy: phy-samsung-usb2.c: Add missing MODULE_DEVICE_TABLE

 .../devicetree/bindings/phy/phy-bindings.txt       |    4 +
 drivers/phy/Kconfig                                |    1 +
 drivers/phy/phy-core.c                             |   33 +++++-
 drivers/phy/phy-exynos4x12-usb2.c                  |  112 +++++++++++++-------
 drivers/phy/phy-exynos5250-usb2.c                  |    2 -
 drivers/phy/phy-omap-usb2.c                        |   11 +-
 drivers/phy/phy-samsung-usb2.c                     |    1 +
 drivers/phy/phy-samsung-usb2.h                     |    3 +-
 include/linux/phy/phy.h                            |    2 +
 9 files changed, 122 insertions(+), 47 deletions(-)

-- 
1.7.9.5


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

* [PATCH 1/8] phy: sun4i: depend on RESET_CONTROLLER
  2014-07-07  6:48 [GIT PULL 0/8] phy: fixes for 3.16 -rc cycle Kishon Vijay Abraham I
@ 2014-07-07  6:48 ` Kishon Vijay Abraham I
  2014-07-07  6:48 ` [PATCH 2/8] usb: phy: omap-usb2: fix devm_ioremap_resource error detection code Kishon Vijay Abraham I
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 17+ messages in thread
From: Kishon Vijay Abraham I @ 2014-07-07  6:48 UTC (permalink / raw)
  To: gregkh; +Cc: kishon, linux-kernel

From: Maxime Ripard <maxime.ripard@free-electrons.com>

The driver depend on the reset framework in a mandatory way. Make sure
reset_control_get is defined by adding this dependency in Kconfig

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Reported-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
---
 drivers/phy/Kconfig |    1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/phy/Kconfig b/drivers/phy/Kconfig
index 16a2f06..1d8099a 100644
--- a/drivers/phy/Kconfig
+++ b/drivers/phy/Kconfig
@@ -112,6 +112,7 @@ config PHY_EXYNOS5250_SATA
 config PHY_SUN4I_USB
 	tristate "Allwinner sunxi SoC USB PHY driver"
 	depends on ARCH_SUNXI && HAS_IOMEM && OF
+	depends on RESET_CONTROLLER
 	select GENERIC_PHY
 	help
 	  Enable this to support the transceiver that is part of Allwinner
-- 
1.7.9.5


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

* [PATCH 2/8] usb: phy: omap-usb2: fix devm_ioremap_resource error detection code
  2014-07-07  6:48 [GIT PULL 0/8] phy: fixes for 3.16 -rc cycle Kishon Vijay Abraham I
  2014-07-07  6:48 ` [PATCH 1/8] phy: sun4i: depend on RESET_CONTROLLER Kishon Vijay Abraham I
@ 2014-07-07  6:48 ` Kishon Vijay Abraham I
  2014-07-07  6:48 ` [PATCH 3/8] phy: phy-samsung-usb2: Change phy power on/power off sequence Kishon Vijay Abraham I
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 17+ messages in thread
From: Kishon Vijay Abraham I @ 2014-07-07  6:48 UTC (permalink / raw)
  To: gregkh; +Cc: kishon, linux-kernel

From: Himangi Saraogi <himangi774@gmail.com>

devm_ioremap_resource returns an ERR_PTR value, not NULL, on failure.

A simplified version of the semantic match that finds this problem is as
follows:

// <smpl>
@@
expression e,e1;
statement S;
@@

*e = devm_ioremap_resource(...);
if (!e1) S

// </smpl>

Signed-off-by: Himangi Saraogi <himangi774@gmail.com>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
---
 drivers/phy/phy-omap-usb2.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/phy/phy-omap-usb2.c b/drivers/phy/phy-omap-usb2.c
index 7007c11..2063d54 100644
--- a/drivers/phy/phy-omap-usb2.c
+++ b/drivers/phy/phy-omap-usb2.c
@@ -233,8 +233,8 @@ static int omap_usb2_probe(struct platform_device *pdev)
 	if (phy_data->flags & OMAP_USB2_CALIBRATE_FALSE_DISCONNECT) {
 		res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 		phy->phy_base = devm_ioremap_resource(&pdev->dev, res);
-		if (!phy->phy_base)
-			return -ENOMEM;
+		if (IS_ERR(phy->phy_base))
+			return PTR_ERR(phy->phy_base);
 		phy->flags |= OMAP_USB2_CALIBRATE_FALSE_DISCONNECT;
 	}
 
-- 
1.7.9.5


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

* [PATCH 3/8] phy: phy-samsung-usb2: Change phy power on/power off sequence
  2014-07-07  6:48 [GIT PULL 0/8] phy: fixes for 3.16 -rc cycle Kishon Vijay Abraham I
  2014-07-07  6:48 ` [PATCH 1/8] phy: sun4i: depend on RESET_CONTROLLER Kishon Vijay Abraham I
  2014-07-07  6:48 ` [PATCH 2/8] usb: phy: omap-usb2: fix devm_ioremap_resource error detection code Kishon Vijay Abraham I
@ 2014-07-07  6:48 ` Kishon Vijay Abraham I
  2014-07-08  1:44   ` Greg KH
  2014-07-07  6:48 ` [PATCH 4/8] drivers: phy: phy-samsung-usb2.c: Add missing MODULE_DEVICE_TABLE Kishon Vijay Abraham I
                   ` (4 subsequent siblings)
  7 siblings, 1 reply; 17+ messages in thread
From: Kishon Vijay Abraham I @ 2014-07-07  6:48 UTC (permalink / raw)
  To: gregkh; +Cc: kishon, linux-kernel

From: Kamil Debski <k.debski@samsung.com>

The Exynos4412 USB 2.0 PHY hardware differs from the description provided
in the documentation. Some register bits have different function. This
patch fixes the defines of register bits and changes the way how phys are
powered on and off.

Signed-off-by: Kamil Debski <k.debski@samsung.com>
Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
Tested-by: Daniel Drake <drake@endlessm.com>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
---
 drivers/phy/phy-exynos4x12-usb2.c |  112 +++++++++++++++++++++++++------------
 drivers/phy/phy-exynos5250-usb2.c |    2 -
 drivers/phy/phy-samsung-usb2.h    |    3 +-
 3 files changed, 77 insertions(+), 40 deletions(-)

diff --git a/drivers/phy/phy-exynos4x12-usb2.c b/drivers/phy/phy-exynos4x12-usb2.c
index d92a7cc..63134d8 100644
--- a/drivers/phy/phy-exynos4x12-usb2.c
+++ b/drivers/phy/phy-exynos4x12-usb2.c
@@ -86,13 +86,23 @@
 #define EXYNOS_4x12_URSTCON_OTG_HLINK		BIT(1)
 #define EXYNOS_4x12_URSTCON_OTG_PHYLINK		BIT(2)
 #define EXYNOS_4x12_URSTCON_HOST_PHY		BIT(3)
+/* The following bit defines are presented in the
+ * order taken from the Exynos4412 reference manual.
+ *
+ * During experiments with the hardware and debugging
+ * it was determined that the hardware behaves contrary
+ * to the manual.
+ *
+ * The following bit values were chaned accordingly to the
+ * results of real hardware experiments.
+ */
 #define EXYNOS_4x12_URSTCON_PHY1		BIT(4)
-#define EXYNOS_4x12_URSTCON_HSIC0		BIT(5)
-#define EXYNOS_4x12_URSTCON_HSIC1		BIT(6)
+#define EXYNOS_4x12_URSTCON_HSIC0		BIT(6)
+#define EXYNOS_4x12_URSTCON_HSIC1		BIT(5)
 #define EXYNOS_4x12_URSTCON_HOST_LINK_ALL	BIT(7)
-#define EXYNOS_4x12_URSTCON_HOST_LINK_P0	BIT(8)
+#define EXYNOS_4x12_URSTCON_HOST_LINK_P0	BIT(10)
 #define EXYNOS_4x12_URSTCON_HOST_LINK_P1	BIT(9)
-#define EXYNOS_4x12_URSTCON_HOST_LINK_P2	BIT(10)
+#define EXYNOS_4x12_URSTCON_HOST_LINK_P2	BIT(8)
 
 /* Isolation, configured in the power management unit */
 #define EXYNOS_4x12_USB_ISOL_OFFSET		0x704
@@ -188,6 +198,7 @@ static void exynos4x12_setup_clk(struct samsung_usb2_phy_instance *inst)
 	clk = readl(drv->reg_phy + EXYNOS_4x12_UPHYCLK);
 	clk &= ~EXYNOS_4x12_UPHYCLK_PHYFSEL_MASK;
 	clk |= drv->ref_reg_val << EXYNOS_4x12_UPHYCLK_PHYFSEL_OFFSET;
+	clk |= EXYNOS_4x12_UPHYCLK_PHY1_COMMON_ON;
 	writel(clk, drv->reg_phy + EXYNOS_4x12_UPHYCLK);
 }
 
@@ -198,27 +209,22 @@ static void exynos4x12_phy_pwr(struct samsung_usb2_phy_instance *inst, bool on)
 	u32 phypwr = 0;
 	u32 rst;
 	u32 pwr;
-	u32 mode = 0;
-	u32 switch_mode = 0;
 
 	switch (inst->cfg->id) {
 	case EXYNOS4x12_DEVICE:
 		phypwr =	EXYNOS_4x12_UPHYPWR_PHY0;
 		rstbits =	EXYNOS_4x12_URSTCON_PHY0;
-		mode =		EXYNOS_4x12_MODE_SWITCH_DEVICE;
-		switch_mode =	1;
 		break;
 	case EXYNOS4x12_HOST:
 		phypwr =	EXYNOS_4x12_UPHYPWR_PHY1;
-		rstbits =	EXYNOS_4x12_URSTCON_HOST_PHY;
-		mode =		EXYNOS_4x12_MODE_SWITCH_HOST;
-		switch_mode =	1;
+		rstbits =	EXYNOS_4x12_URSTCON_HOST_PHY |
+				EXYNOS_4x12_URSTCON_PHY1 |
+				EXYNOS_4x12_URSTCON_HOST_LINK_P0;
 		break;
 	case EXYNOS4x12_HSIC0:
 		phypwr =	EXYNOS_4x12_UPHYPWR_HSIC0;
-		rstbits =	EXYNOS_4x12_URSTCON_HSIC1 |
-				EXYNOS_4x12_URSTCON_HOST_LINK_P0 |
-				EXYNOS_4x12_URSTCON_HOST_PHY;
+		rstbits =	EXYNOS_4x12_URSTCON_HSIC0 |
+				EXYNOS_4x12_URSTCON_HOST_LINK_P1;
 		break;
 	case EXYNOS4x12_HSIC1:
 		phypwr =	EXYNOS_4x12_UPHYPWR_HSIC1;
@@ -228,11 +234,6 @@ static void exynos4x12_phy_pwr(struct samsung_usb2_phy_instance *inst, bool on)
 	};
 
 	if (on) {
-		if (switch_mode)
-			regmap_update_bits(drv->reg_sys,
-					   EXYNOS_4x12_MODE_SWITCH_OFFSET,
-					   EXYNOS_4x12_MODE_SWITCH_MASK, mode);
-
 		pwr = readl(drv->reg_phy + EXYNOS_4x12_UPHYPWR);
 		pwr &= ~phypwr;
 		writel(pwr, drv->reg_phy + EXYNOS_4x12_UPHYPWR);
@@ -253,41 +254,78 @@ static void exynos4x12_phy_pwr(struct samsung_usb2_phy_instance *inst, bool on)
 	}
 }
 
-static int exynos4x12_power_on(struct samsung_usb2_phy_instance *inst)
+static void exynos4x12_power_on_int(struct samsung_usb2_phy_instance *inst)
 {
-	struct samsung_usb2_phy_driver *drv = inst->drv;
+	if (inst->int_cnt++ > 0)
+		return;
 
-	inst->enabled = 1;
 	exynos4x12_setup_clk(inst);
-	exynos4x12_phy_pwr(inst, 1);
 	exynos4x12_isol(inst, 0);
+	exynos4x12_phy_pwr(inst, 1);
+}
+
+static int exynos4x12_power_on(struct samsung_usb2_phy_instance *inst)
+{
+	struct samsung_usb2_phy_driver *drv = inst->drv;
+
+	if (inst->ext_cnt++ > 0)
+		return 0;
 
-	/* Power on the device, as it is necessary for HSIC to work */
-	if (inst->cfg->id == EXYNOS4x12_HSIC0) {
-		struct samsung_usb2_phy_instance *device =
-					&drv->instances[EXYNOS4x12_DEVICE];
-		exynos4x12_phy_pwr(device, 1);
-		exynos4x12_isol(device, 0);
+	if (inst->cfg->id == EXYNOS4x12_HOST) {
+		regmap_update_bits(drv->reg_sys, EXYNOS_4x12_MODE_SWITCH_OFFSET,
+						EXYNOS_4x12_MODE_SWITCH_MASK,
+						EXYNOS_4x12_MODE_SWITCH_HOST);
+		exynos4x12_power_on_int(&drv->instances[EXYNOS4x12_DEVICE]);
 	}
 
+	if (inst->cfg->id == EXYNOS4x12_DEVICE)
+		regmap_update_bits(drv->reg_sys, EXYNOS_4x12_MODE_SWITCH_OFFSET,
+						EXYNOS_4x12_MODE_SWITCH_MASK,
+						EXYNOS_4x12_MODE_SWITCH_DEVICE);
+
+	if (inst->cfg->id == EXYNOS4x12_HSIC0 ||
+		inst->cfg->id == EXYNOS4x12_HSIC1) {
+		exynos4x12_power_on_int(&drv->instances[EXYNOS4x12_DEVICE]);
+		exynos4x12_power_on_int(&drv->instances[EXYNOS4x12_HOST]);
+	}
+
+	exynos4x12_power_on_int(inst);
+
 	return 0;
 }
 
-static int exynos4x12_power_off(struct samsung_usb2_phy_instance *inst)
+static void exynos4x12_power_off_int(struct samsung_usb2_phy_instance *inst)
 {
-	struct samsung_usb2_phy_driver *drv = inst->drv;
-	struct samsung_usb2_phy_instance *device =
-					&drv->instances[EXYNOS4x12_DEVICE];
+	if (inst->int_cnt-- > 1)
+		return;
 
-	inst->enabled = 0;
 	exynos4x12_isol(inst, 1);
 	exynos4x12_phy_pwr(inst, 0);
+}
 
-	if (inst->cfg->id == EXYNOS4x12_HSIC0 && !device->enabled) {
-		exynos4x12_isol(device, 1);
-		exynos4x12_phy_pwr(device, 0);
+static int exynos4x12_power_off(struct samsung_usb2_phy_instance *inst)
+{
+	struct samsung_usb2_phy_driver *drv = inst->drv;
+
+	if (inst->ext_cnt-- > 1)
+		return 0;
+
+	if (inst->cfg->id == EXYNOS4x12_DEVICE)
+		regmap_update_bits(drv->reg_sys, EXYNOS_4x12_MODE_SWITCH_OFFSET,
+						EXYNOS_4x12_MODE_SWITCH_MASK,
+						EXYNOS_4x12_MODE_SWITCH_HOST);
+
+	if (inst->cfg->id == EXYNOS4x12_HOST)
+		exynos4x12_power_off_int(&drv->instances[EXYNOS4x12_DEVICE]);
+
+	if (inst->cfg->id == EXYNOS4x12_HSIC0 ||
+		inst->cfg->id == EXYNOS4x12_HSIC1) {
+		exynos4x12_power_off_int(&drv->instances[EXYNOS4x12_DEVICE]);
+		exynos4x12_power_off_int(&drv->instances[EXYNOS4x12_HOST]);
 	}
 
+	exynos4x12_power_off_int(inst);
+
 	return 0;
 }
 
diff --git a/drivers/phy/phy-exynos5250-usb2.c b/drivers/phy/phy-exynos5250-usb2.c
index 94179af..1c139aa 100644
--- a/drivers/phy/phy-exynos5250-usb2.c
+++ b/drivers/phy/phy-exynos5250-usb2.c
@@ -318,7 +318,6 @@ static int exynos5250_power_on(struct samsung_usb2_phy_instance *inst)
 
 		break;
 	}
-	inst->enabled = 1;
 	exynos5250_isol(inst, 0);
 
 	return 0;
@@ -331,7 +330,6 @@ static int exynos5250_power_off(struct samsung_usb2_phy_instance *inst)
 	u32 otg;
 	u32 hsic;
 
-	inst->enabled = 0;
 	exynos5250_isol(inst, 1);
 
 	switch (inst->cfg->id) {
diff --git a/drivers/phy/phy-samsung-usb2.h b/drivers/phy/phy-samsung-usb2.h
index 45b3170..9188478 100644
--- a/drivers/phy/phy-samsung-usb2.h
+++ b/drivers/phy/phy-samsung-usb2.h
@@ -29,7 +29,8 @@ struct samsung_usb2_phy_instance {
 	const struct samsung_usb2_common_phy *cfg;
 	struct phy *phy;
 	struct samsung_usb2_phy_driver *drv;
-	bool enabled;
+	int int_cnt;
+	int ext_cnt;
 };
 
 struct samsung_usb2_phy_driver {
-- 
1.7.9.5


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

* [PATCH 4/8] drivers: phy: phy-samsung-usb2.c: Add missing MODULE_DEVICE_TABLE
  2014-07-07  6:48 [GIT PULL 0/8] phy: fixes for 3.16 -rc cycle Kishon Vijay Abraham I
                   ` (2 preceding siblings ...)
  2014-07-07  6:48 ` [PATCH 3/8] phy: phy-samsung-usb2: Change phy power on/power off sequence Kishon Vijay Abraham I
@ 2014-07-07  6:48 ` Kishon Vijay Abraham I
  2014-07-07  6:48 ` [PATCH 5/8] phy: core: Fix error path in phy_create() Kishon Vijay Abraham I
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 17+ messages in thread
From: Kishon Vijay Abraham I @ 2014-07-07  6:48 UTC (permalink / raw)
  To: gregkh; +Cc: kishon, linux-kernel

From: Sjoerd Simons <sjoerd.simons@collabora.co.uk>

Allow phy-exynos-usb2 to be autoloaded based on devicetree information.
Tested on Odroid X2 with its USB subsystem build as modules.

Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
---
 drivers/phy/phy-samsung-usb2.c |    1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/phy/phy-samsung-usb2.c b/drivers/phy/phy-samsung-usb2.c
index 8a8c6bc..1e69a32 100644
--- a/drivers/phy/phy-samsung-usb2.c
+++ b/drivers/phy/phy-samsung-usb2.c
@@ -107,6 +107,7 @@ static const struct of_device_id samsung_usb2_phy_of_match[] = {
 #endif
 	{ },
 };
+MODULE_DEVICE_TABLE(of, samsung_usb2_phy_of_match);
 
 static int samsung_usb2_phy_probe(struct platform_device *pdev)
 {
-- 
1.7.9.5


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

* [PATCH 5/8] phy: core: Fix error path in phy_create()
  2014-07-07  6:48 [GIT PULL 0/8] phy: fixes for 3.16 -rc cycle Kishon Vijay Abraham I
                   ` (3 preceding siblings ...)
  2014-07-07  6:48 ` [PATCH 4/8] drivers: phy: phy-samsung-usb2.c: Add missing MODULE_DEVICE_TABLE Kishon Vijay Abraham I
@ 2014-07-07  6:48 ` Kishon Vijay Abraham I
  2014-07-08  1:45   ` Greg KH
  2014-07-07  6:48 ` [PATCH 6/8] phy: core: Support regulator supply for PHY power Kishon Vijay Abraham I
                   ` (2 subsequent siblings)
  7 siblings, 1 reply; 17+ messages in thread
From: Kishon Vijay Abraham I @ 2014-07-07  6:48 UTC (permalink / raw)
  To: gregkh; +Cc: kishon, linux-kernel

From: Roger Quadros <rogerq@ti.com>

Prevent resources from being freed twice in case device_add() call
fails within phy_create(). Also use ida_simple_remove() instead of
ida_remove() as we had used ida_simple_get() to allocate the ida.

Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
---
 drivers/phy/phy-core.c |    7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/phy/phy-core.c b/drivers/phy/phy-core.c
index c64a2f3..49c4465 100644
--- a/drivers/phy/phy-core.c
+++ b/drivers/phy/phy-core.c
@@ -614,8 +614,9 @@ struct phy *phy_create(struct device *dev, const struct phy_ops *ops,
 	return phy;
 
 put_dev:
-	put_device(&phy->dev);
-	ida_remove(&phy_ida, phy->id);
+	put_device(&phy->dev);  /* calls phy_release() which frees resources */
+	return ERR_PTR(ret);
+
 free_phy:
 	kfree(phy);
 	return ERR_PTR(ret);
@@ -799,7 +800,7 @@ static void phy_release(struct device *dev)
 
 	phy = to_phy(dev);
 	dev_vdbg(dev, "releasing '%s'\n", dev_name(dev));
-	ida_remove(&phy_ida, phy->id);
+	ida_simple_remove(&phy_ida, phy->id);
 	kfree(phy);
 }
 
-- 
1.7.9.5


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

* [PATCH 6/8] phy: core: Support regulator supply for PHY power
  2014-07-07  6:48 [GIT PULL 0/8] phy: fixes for 3.16 -rc cycle Kishon Vijay Abraham I
                   ` (4 preceding siblings ...)
  2014-07-07  6:48 ` [PATCH 5/8] phy: core: Fix error path in phy_create() Kishon Vijay Abraham I
@ 2014-07-07  6:48 ` Kishon Vijay Abraham I
  2014-07-08  1:45   ` Greg KH
  2014-07-07  6:48 ` [PATCH 7/8] phy: core: Add phy-supply to DT binding documentation Kishon Vijay Abraham I
  2014-07-07  6:48 ` [PATCH 8/8] phy: omap-usb2: Balance pm_runtime_enable() on probe failure and remove Kishon Vijay Abraham I
  7 siblings, 1 reply; 17+ messages in thread
From: Kishon Vijay Abraham I @ 2014-07-07  6:48 UTC (permalink / raw)
  To: gregkh; +Cc: kishon, linux-kernel

From: Roger Quadros <rogerq@ti.com>

Some PHYs can be powered by an external power regulator.
e.g. USB_HS PHY on DRA7 SoC. Make the PHY core support a
power regulator.

Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
---
 drivers/phy/phy-core.c  |   26 ++++++++++++++++++++++++++
 include/linux/phy/phy.h |    2 ++
 2 files changed, 28 insertions(+)

diff --git a/drivers/phy/phy-core.c b/drivers/phy/phy-core.c
index 49c4465..75c9739 100644
--- a/drivers/phy/phy-core.c
+++ b/drivers/phy/phy-core.c
@@ -21,6 +21,7 @@
 #include <linux/phy/phy.h>
 #include <linux/idr.h>
 #include <linux/pm_runtime.h>
+#include <linux/regulator/consumer.h>
 
 static struct class *phy_class;
 static DEFINE_MUTEX(phy_provider_mutex);
@@ -226,6 +227,12 @@ int phy_power_on(struct phy *phy)
 	if (!phy)
 		return 0;
 
+	if (phy->pwr) {
+		ret = regulator_enable(phy->pwr);
+		if (ret)
+			return ret;
+	}
+
 	ret = phy_pm_runtime_get_sync(phy);
 	if (ret < 0 && ret != -ENOTSUPP)
 		return ret;
@@ -247,6 +254,8 @@ int phy_power_on(struct phy *phy)
 out:
 	mutex_unlock(&phy->mutex);
 	phy_pm_runtime_put_sync(phy);
+	if (phy->pwr)
+		regulator_disable(phy->pwr);
 
 	return ret;
 }
@@ -272,6 +281,9 @@ int phy_power_off(struct phy *phy)
 	mutex_unlock(&phy->mutex);
 	phy_pm_runtime_put(phy);
 
+	if (phy->pwr)
+		regulator_disable(phy->pwr);
+
 	return 0;
 }
 EXPORT_SYMBOL_GPL(phy_power_off);
@@ -588,6 +600,16 @@ struct phy *phy_create(struct device *dev, const struct phy_ops *ops,
 		goto free_phy;
 	}
 
+	/* phy-supply */
+	phy->pwr = regulator_get_optional(dev, "phy");
+	if (IS_ERR(phy->pwr)) {
+		if (PTR_ERR(phy->pwr) == -EPROBE_DEFER) {
+			ret = -EPROBE_DEFER;
+			goto free_ida;
+		}
+		phy->pwr = NULL;
+	}
+
 	device_initialize(&phy->dev);
 	mutex_init(&phy->mutex);
 
@@ -617,6 +639,9 @@ put_dev:
 	put_device(&phy->dev);  /* calls phy_release() which frees resources */
 	return ERR_PTR(ret);
 
+free_ida:
+	ida_simple_remove(&phy_ida, phy->id);
+
 free_phy:
 	kfree(phy);
 	return ERR_PTR(ret);
@@ -800,6 +825,7 @@ static void phy_release(struct device *dev)
 
 	phy = to_phy(dev);
 	dev_vdbg(dev, "releasing '%s'\n", dev_name(dev));
+	regulator_put(phy->pwr);
 	ida_simple_remove(&phy_ida, phy->id);
 	kfree(phy);
 }
diff --git a/include/linux/phy/phy.h b/include/linux/phy/phy.h
index 2760744..9a86945 100644
--- a/include/linux/phy/phy.h
+++ b/include/linux/phy/phy.h
@@ -18,6 +18,7 @@
 #include <linux/of.h>
 #include <linux/device.h>
 #include <linux/pm_runtime.h>
+#include <linux/regulator/consumer.h>
 
 struct phy;
 
@@ -65,6 +66,7 @@ struct phy {
 	int			init_count;
 	int			power_count;
 	struct phy_attrs	attrs;
+	struct regulator	*pwr;
 };
 
 /**
-- 
1.7.9.5


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

* [PATCH 7/8] phy: core: Add phy-supply to DT binding documentation
  2014-07-07  6:48 [GIT PULL 0/8] phy: fixes for 3.16 -rc cycle Kishon Vijay Abraham I
                   ` (5 preceding siblings ...)
  2014-07-07  6:48 ` [PATCH 6/8] phy: core: Support regulator supply for PHY power Kishon Vijay Abraham I
@ 2014-07-07  6:48 ` Kishon Vijay Abraham I
  2014-07-07  6:48 ` [PATCH 8/8] phy: omap-usb2: Balance pm_runtime_enable() on probe failure and remove Kishon Vijay Abraham I
  7 siblings, 0 replies; 17+ messages in thread
From: Kishon Vijay Abraham I @ 2014-07-07  6:48 UTC (permalink / raw)
  To: gregkh; +Cc: kishon, linux-kernel

From: Roger Quadros <rogerq@ti.com>

phy-supply is a phandle to the regulator that provides power to the
PHY. This regulator is managed during the PHY power on/off sequence
by the phy core driver.

Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
---
 .../devicetree/bindings/phy/phy-bindings.txt       |    4 ++++
 1 file changed, 4 insertions(+)

diff --git a/Documentation/devicetree/bindings/phy/phy-bindings.txt b/Documentation/devicetree/bindings/phy/phy-bindings.txt
index 8ae844f..2aa1840 100644
--- a/Documentation/devicetree/bindings/phy/phy-bindings.txt
+++ b/Documentation/devicetree/bindings/phy/phy-bindings.txt
@@ -10,6 +10,10 @@ Required Properties:
 		provider can use the values in cells to find the appropriate
 		PHY.
 
+Optional Properties:
+phy-supply:	Phandle to a regulator that provides power to the PHY. This
+		regulator will be managed during the PHY power on/off sequence.
+
 For example:
 
 phys: phy {
-- 
1.7.9.5


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

* [PATCH 8/8] phy: omap-usb2: Balance pm_runtime_enable() on probe failure and remove
  2014-07-07  6:48 [GIT PULL 0/8] phy: fixes for 3.16 -rc cycle Kishon Vijay Abraham I
                   ` (6 preceding siblings ...)
  2014-07-07  6:48 ` [PATCH 7/8] phy: core: Add phy-supply to DT binding documentation Kishon Vijay Abraham I
@ 2014-07-07  6:48 ` Kishon Vijay Abraham I
  7 siblings, 0 replies; 17+ messages in thread
From: Kishon Vijay Abraham I @ 2014-07-07  6:48 UTC (permalink / raw)
  To: gregkh; +Cc: kishon, linux-kernel

From: Roger Quadros <rogerq@ti.com>

If probe fails then we need to call pm_runtime_disable() to balance
out the previous pm_runtime_enable() call. Else it will cause
unbalanced pm_runtime_enable() call in the succeding probe call.

This anomaly was observed when the call to devm_phy_create() failed
with -EPROBE_DEFER.

Balance out the pm_runtime_enable() call in .remove() as well.

Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
---
 drivers/phy/phy-omap-usb2.c |    7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/phy/phy-omap-usb2.c b/drivers/phy/phy-omap-usb2.c
index 2063d54..34b3961 100644
--- a/drivers/phy/phy-omap-usb2.c
+++ b/drivers/phy/phy-omap-usb2.c
@@ -262,7 +262,6 @@ static int omap_usb2_probe(struct platform_device *pdev)
 	otg->phy		= &phy->phy;
 
 	platform_set_drvdata(pdev, phy);
-	pm_runtime_enable(phy->dev);
 
 	generic_phy = devm_phy_create(phy->dev, &ops, NULL);
 	if (IS_ERR(generic_phy))
@@ -270,10 +269,13 @@ static int omap_usb2_probe(struct platform_device *pdev)
 
 	phy_set_drvdata(generic_phy, phy);
 
+	pm_runtime_enable(phy->dev);
 	phy_provider = devm_of_phy_provider_register(phy->dev,
 			of_phy_simple_xlate);
-	if (IS_ERR(phy_provider))
+	if (IS_ERR(phy_provider)) {
+		pm_runtime_disable(phy->dev);
 		return PTR_ERR(phy_provider);
+	}
 
 	phy->wkupclk = devm_clk_get(phy->dev, "wkupclk");
 	if (IS_ERR(phy->wkupclk)) {
@@ -317,6 +319,7 @@ static int omap_usb2_remove(struct platform_device *pdev)
 	if (!IS_ERR(phy->optclk))
 		clk_unprepare(phy->optclk);
 	usb_remove_phy(&phy->phy);
+	pm_runtime_disable(phy->dev);
 
 	return 0;
 }
-- 
1.7.9.5


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

* Re: [PATCH 3/8] phy: phy-samsung-usb2: Change phy power on/power off sequence
  2014-07-07  6:48 ` [PATCH 3/8] phy: phy-samsung-usb2: Change phy power on/power off sequence Kishon Vijay Abraham I
@ 2014-07-08  1:44   ` Greg KH
  2014-07-08  6:12     ` Kishon Vijay Abraham I
  0 siblings, 1 reply; 17+ messages in thread
From: Greg KH @ 2014-07-08  1:44 UTC (permalink / raw)
  To: Kishon Vijay Abraham I; +Cc: linux-kernel

On Mon, Jul 07, 2014 at 12:18:20PM +0530, Kishon Vijay Abraham I wrote:
> From: Kamil Debski <k.debski@samsung.com>
> 
> The Exynos4412 USB 2.0 PHY hardware differs from the description provided
> in the documentation. Some register bits have different function. This
> patch fixes the defines of register bits and changes the way how phys are
> powered on and off.
> 
> Signed-off-by: Kamil Debski <k.debski@samsung.com>
> Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
> Tested-by: Daniel Drake <drake@endlessm.com>
> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
> ---
>  drivers/phy/phy-exynos4x12-usb2.c |  112 +++++++++++++++++++++++++------------
>  drivers/phy/phy-exynos5250-usb2.c |    2 -
>  drivers/phy/phy-samsung-usb2.h    |    3 +-
>  3 files changed, 77 insertions(+), 40 deletions(-)
> 

This doesn't look like a regression fix for 3.16-final, it looks like a
"new feature" to me :(

sorry, I can't take this pull request, want me to pick the individual
patches instead?


thanks,

greg k-h

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

* Re: [PATCH 5/8] phy: core: Fix error path in phy_create()
  2014-07-07  6:48 ` [PATCH 5/8] phy: core: Fix error path in phy_create() Kishon Vijay Abraham I
@ 2014-07-08  1:45   ` Greg KH
  2014-07-08  6:14     ` Kishon Vijay Abraham I
  0 siblings, 1 reply; 17+ messages in thread
From: Greg KH @ 2014-07-08  1:45 UTC (permalink / raw)
  To: Kishon Vijay Abraham I; +Cc: linux-kernel

On Mon, Jul 07, 2014 at 12:18:22PM +0530, Kishon Vijay Abraham I wrote:
> From: Roger Quadros <rogerq@ti.com>
> 
> Prevent resources from being freed twice in case device_add() call
> fails within phy_create(). Also use ida_simple_remove() instead of
> ida_remove() as we had used ida_simple_get() to allocate the ida.
> 
> Signed-off-by: Roger Quadros <rogerq@ti.com>
> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
> ---
>  drivers/phy/phy-core.c |    7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)

Is this a problem in older kernels as well?

thanks,

greg k-h

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

* Re: [PATCH 6/8] phy: core: Support regulator supply for PHY power
  2014-07-07  6:48 ` [PATCH 6/8] phy: core: Support regulator supply for PHY power Kishon Vijay Abraham I
@ 2014-07-08  1:45   ` Greg KH
  2014-07-08  6:18     ` Kishon Vijay Abraham I
  0 siblings, 1 reply; 17+ messages in thread
From: Greg KH @ 2014-07-08  1:45 UTC (permalink / raw)
  To: Kishon Vijay Abraham I; +Cc: linux-kernel

On Mon, Jul 07, 2014 at 12:18:23PM +0530, Kishon Vijay Abraham I wrote:
> From: Roger Quadros <rogerq@ti.com>
> 
> Some PHYs can be powered by an external power regulator.
> e.g. USB_HS PHY on DRA7 SoC. Make the PHY core support a
> power regulator.
> 
> Signed-off-by: Roger Quadros <rogerq@ti.com>
> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
> ---
>  drivers/phy/phy-core.c  |   26 ++++++++++++++++++++++++++
>  include/linux/phy/phy.h |    2 ++
>  2 files changed, 28 insertions(+)

This looks like a new feature :(

again, I can't take that for 3.16-final, you know better...

greg k-h

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

* Re: [PATCH 3/8] phy: phy-samsung-usb2: Change phy power on/power off sequence
  2014-07-08  1:44   ` Greg KH
@ 2014-07-08  6:12     ` Kishon Vijay Abraham I
  2014-07-09 21:36       ` Greg KH
  0 siblings, 1 reply; 17+ messages in thread
From: Kishon Vijay Abraham I @ 2014-07-08  6:12 UTC (permalink / raw)
  To: Greg KH; +Cc: linux-kernel

Hi Greg,

On Tuesday 08 July 2014 07:14 AM, Greg KH wrote:
> On Mon, Jul 07, 2014 at 12:18:20PM +0530, Kishon Vijay Abraham I wrote:
>> From: Kamil Debski <k.debski@samsung.com>
>>
>> The Exynos4412 USB 2.0 PHY hardware differs from the description provided
>> in the documentation. Some register bits have different function. This
>> patch fixes the defines of register bits and changes the way how phys are
>> powered on and off.
>>
>> Signed-off-by: Kamil Debski <k.debski@samsung.com>
>> Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
>> Tested-by: Daniel Drake <drake@endlessm.com>
>> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
>> ---
>>  drivers/phy/phy-exynos4x12-usb2.c |  112 +++++++++++++++++++++++++------------
>>  drivers/phy/phy-exynos5250-usb2.c |    2 -
>>  drivers/phy/phy-samsung-usb2.h    |    3 +-
>>  3 files changed, 77 insertions(+), 40 deletions(-)
>>
> 
> This doesn't look like a regression fix for 3.16-final, it looks like a
> "new feature" to me :(

This patch was primarily due to the incorrectly documented register bits in the
manual. So thought this would qualify as fix and should be in 3.16.

Thanks
Kishon

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

* Re: [PATCH 5/8] phy: core: Fix error path in phy_create()
  2014-07-08  1:45   ` Greg KH
@ 2014-07-08  6:14     ` Kishon Vijay Abraham I
  0 siblings, 0 replies; 17+ messages in thread
From: Kishon Vijay Abraham I @ 2014-07-08  6:14 UTC (permalink / raw)
  To: Greg KH; +Cc: linux-kernel

Hi,

On Tuesday 08 July 2014 07:15 AM, Greg KH wrote:
> On Mon, Jul 07, 2014 at 12:18:22PM +0530, Kishon Vijay Abraham I wrote:
>> From: Roger Quadros <rogerq@ti.com>
>>
>> Prevent resources from being freed twice in case device_add() call
>> fails within phy_create(). Also use ida_simple_remove() instead of
>> ida_remove() as we had used ida_simple_get() to allocate the ida.
>>
>> Signed-off-by: Roger Quadros <rogerq@ti.com>
>> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
>> ---
>>  drivers/phy/phy-core.c |    7 ++++---
>>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> Is this a problem in older kernels as well?

yeah. Will send it for stable kernel.

Thanks
Kishon

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

* Re: [PATCH 6/8] phy: core: Support regulator supply for PHY power
  2014-07-08  1:45   ` Greg KH
@ 2014-07-08  6:18     ` Kishon Vijay Abraham I
  0 siblings, 0 replies; 17+ messages in thread
From: Kishon Vijay Abraham I @ 2014-07-08  6:18 UTC (permalink / raw)
  To: Greg KH; +Cc: linux-kernel

Hi Greg,

On Tuesday 08 July 2014 07:15 AM, Greg KH wrote:
> On Mon, Jul 07, 2014 at 12:18:23PM +0530, Kishon Vijay Abraham I wrote:
>> From: Roger Quadros <rogerq@ti.com>
>>
>> Some PHYs can be powered by an external power regulator.
>> e.g. USB_HS PHY on DRA7 SoC. Make the PHY core support a
>> power regulator.
>>
>> Signed-off-by: Roger Quadros <rogerq@ti.com>
>> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
>> ---
>>  drivers/phy/phy-core.c  |   26 ++++++++++++++++++++++++++
>>  include/linux/phy/phy.h |    2 ++
>>  2 files changed, 28 insertions(+)
> 
> This looks like a new feature :(
> 
> again, I can't take that for 3.16-final, you know better...

In the outset it looks like a new feature (which actually is) but it actually
is needed to get USB and SATA working in DRA7xx. It was working before since
these regulators were *always on* before. But now the the users of these
regulators should explicitly enable it.

Thanks
Kishon

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

* Re: [PATCH 3/8] phy: phy-samsung-usb2: Change phy power on/power off sequence
  2014-07-08  6:12     ` Kishon Vijay Abraham I
@ 2014-07-09 21:36       ` Greg KH
  2014-07-10  5:48         ` Kishon Vijay Abraham I
  0 siblings, 1 reply; 17+ messages in thread
From: Greg KH @ 2014-07-09 21:36 UTC (permalink / raw)
  To: Kishon Vijay Abraham I; +Cc: linux-kernel

On Tue, Jul 08, 2014 at 11:42:42AM +0530, Kishon Vijay Abraham I wrote:
> Hi Greg,
> 
> On Tuesday 08 July 2014 07:14 AM, Greg KH wrote:
> > On Mon, Jul 07, 2014 at 12:18:20PM +0530, Kishon Vijay Abraham I wrote:
> >> From: Kamil Debski <k.debski@samsung.com>
> >>
> >> The Exynos4412 USB 2.0 PHY hardware differs from the description provided
> >> in the documentation. Some register bits have different function. This
> >> patch fixes the defines of register bits and changes the way how phys are
> >> powered on and off.
> >>
> >> Signed-off-by: Kamil Debski <k.debski@samsung.com>
> >> Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
> >> Tested-by: Daniel Drake <drake@endlessm.com>
> >> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
> >> ---
> >>  drivers/phy/phy-exynos4x12-usb2.c |  112 +++++++++++++++++++++++++------------
> >>  drivers/phy/phy-exynos5250-usb2.c |    2 -
> >>  drivers/phy/phy-samsung-usb2.h    |    3 +-
> >>  3 files changed, 77 insertions(+), 40 deletions(-)
> >>
> > 
> > This doesn't look like a regression fix for 3.16-final, it looks like a
> > "new feature" to me :(
> 
> This patch was primarily due to the incorrectly documented register bits in the
> manual. So thought this would qualify as fix and should be in 3.16.

Sorry, that's really big for a patch so late in the -rc cycle.  There
should only be real regressions or reported bugfixes now.

Care to redo this whole series based on these responses?  I can't take
it as-is.

thanks,

greg k-h

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

* Re: [PATCH 3/8] phy: phy-samsung-usb2: Change phy power on/power off sequence
  2014-07-09 21:36       ` Greg KH
@ 2014-07-10  5:48         ` Kishon Vijay Abraham I
  0 siblings, 0 replies; 17+ messages in thread
From: Kishon Vijay Abraham I @ 2014-07-10  5:48 UTC (permalink / raw)
  To: Greg KH; +Cc: linux-kernel



On Thursday 10 July 2014 03:06 AM, Greg KH wrote:
> On Tue, Jul 08, 2014 at 11:42:42AM +0530, Kishon Vijay Abraham I wrote:
>> Hi Greg,
>>
>> On Tuesday 08 July 2014 07:14 AM, Greg KH wrote:
>>> On Mon, Jul 07, 2014 at 12:18:20PM +0530, Kishon Vijay Abraham I wrote:
>>>> From: Kamil Debski <k.debski@samsung.com>
>>>>
>>>> The Exynos4412 USB 2.0 PHY hardware differs from the description provided
>>>> in the documentation. Some register bits have different function. This
>>>> patch fixes the defines of register bits and changes the way how phys are
>>>> powered on and off.
>>>>
>>>> Signed-off-by: Kamil Debski <k.debski@samsung.com>
>>>> Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
>>>> Tested-by: Daniel Drake <drake@endlessm.com>
>>>> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
>>>> ---
>>>>  drivers/phy/phy-exynos4x12-usb2.c |  112 +++++++++++++++++++++++++------------
>>>>  drivers/phy/phy-exynos5250-usb2.c |    2 -
>>>>  drivers/phy/phy-samsung-usb2.h    |    3 +-
>>>>  3 files changed, 77 insertions(+), 40 deletions(-)
>>>>
>>>
>>> This doesn't look like a regression fix for 3.16-final, it looks like a
>>> "new feature" to me :(
>>
>> This patch was primarily due to the incorrectly documented register bits in the
>> manual. So thought this would qualify as fix and should be in 3.16.
> 
> Sorry, that's really big for a patch so late in the -rc cycle.  There
> should only be real regressions or reported bugfixes now.

Okay sure. Will send it.

Thanks
Kishon

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

end of thread, other threads:[~2014-07-10  5:48 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-07-07  6:48 [GIT PULL 0/8] phy: fixes for 3.16 -rc cycle Kishon Vijay Abraham I
2014-07-07  6:48 ` [PATCH 1/8] phy: sun4i: depend on RESET_CONTROLLER Kishon Vijay Abraham I
2014-07-07  6:48 ` [PATCH 2/8] usb: phy: omap-usb2: fix devm_ioremap_resource error detection code Kishon Vijay Abraham I
2014-07-07  6:48 ` [PATCH 3/8] phy: phy-samsung-usb2: Change phy power on/power off sequence Kishon Vijay Abraham I
2014-07-08  1:44   ` Greg KH
2014-07-08  6:12     ` Kishon Vijay Abraham I
2014-07-09 21:36       ` Greg KH
2014-07-10  5:48         ` Kishon Vijay Abraham I
2014-07-07  6:48 ` [PATCH 4/8] drivers: phy: phy-samsung-usb2.c: Add missing MODULE_DEVICE_TABLE Kishon Vijay Abraham I
2014-07-07  6:48 ` [PATCH 5/8] phy: core: Fix error path in phy_create() Kishon Vijay Abraham I
2014-07-08  1:45   ` Greg KH
2014-07-08  6:14     ` Kishon Vijay Abraham I
2014-07-07  6:48 ` [PATCH 6/8] phy: core: Support regulator supply for PHY power Kishon Vijay Abraham I
2014-07-08  1:45   ` Greg KH
2014-07-08  6:18     ` Kishon Vijay Abraham I
2014-07-07  6:48 ` [PATCH 7/8] phy: core: Add phy-supply to DT binding documentation Kishon Vijay Abraham I
2014-07-07  6:48 ` [PATCH 8/8] phy: omap-usb2: Balance pm_runtime_enable() on probe failure and remove Kishon Vijay Abraham I

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox