Эх сурвалжийг харах

Merge tag 'for-4.1-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/kishon/linux-phy into usb-linus

Kishon writes:

phy: fixes for v4.1-rc

includes a fix in phy core w.r.t error checking, couple of fixes
in kconfig one which fixes randconfig error and the other
to fix dependency in QCOM PHY, driver fix in omap-usb2 in the
error path and a driver fix in rcar-gen2 to fix bit location.
Greg Kroah-Hartman 10 жил өмнө
parent
commit
4bc5d3bbdc

+ 7 - 3
drivers/phy/Kconfig

@@ -38,7 +38,9 @@ config ARMADA375_USBCLUSTER_PHY
 config PHY_DM816X_USB
 config PHY_DM816X_USB
 	tristate "TI dm816x USB PHY driver"
 	tristate "TI dm816x USB PHY driver"
 	depends on ARCH_OMAP2PLUS
 	depends on ARCH_OMAP2PLUS
+	depends on USB_SUPPORT
 	select GENERIC_PHY
 	select GENERIC_PHY
+	select USB_PHY
 	help
 	help
 	  Enable this for dm816x USB to work.
 	  Enable this for dm816x USB to work.
 
 
@@ -97,8 +99,9 @@ config OMAP_CONTROL_PHY
 config OMAP_USB2
 config OMAP_USB2
 	tristate "OMAP USB2 PHY Driver"
 	tristate "OMAP USB2 PHY Driver"
 	depends on ARCH_OMAP2PLUS
 	depends on ARCH_OMAP2PLUS
-	depends on USB_PHY
+	depends on USB_SUPPORT
 	select GENERIC_PHY
 	select GENERIC_PHY
+	select USB_PHY
 	select OMAP_CONTROL_PHY
 	select OMAP_CONTROL_PHY
 	depends on OMAP_OCP2SCP
 	depends on OMAP_OCP2SCP
 	help
 	help
@@ -122,8 +125,9 @@ config TI_PIPE3
 config TWL4030_USB
 config TWL4030_USB
 	tristate "TWL4030 USB Transceiver Driver"
 	tristate "TWL4030 USB Transceiver Driver"
 	depends on TWL4030_CORE && REGULATOR_TWL4030 && USB_MUSB_OMAP2PLUS
 	depends on TWL4030_CORE && REGULATOR_TWL4030 && USB_MUSB_OMAP2PLUS
-	depends on USB_PHY
+	depends on USB_SUPPORT
 	select GENERIC_PHY
 	select GENERIC_PHY
+	select USB_PHY
 	help
 	help
 	  Enable this to support the USB OTG transceiver on TWL4030
 	  Enable this to support the USB OTG transceiver on TWL4030
 	  family chips (including the TWL5030 and TPS659x0 devices).
 	  family chips (including the TWL5030 and TPS659x0 devices).
@@ -304,7 +308,7 @@ config PHY_STIH41X_USB
 
 
 config PHY_QCOM_UFS
 config PHY_QCOM_UFS
 	tristate "Qualcomm UFS PHY driver"
 	tristate "Qualcomm UFS PHY driver"
-	depends on OF && ARCH_MSM
+	depends on OF && ARCH_QCOM
 	select GENERIC_PHY
 	select GENERIC_PHY
 	help
 	help
 	  Support for UFS PHY on QCOM chipsets.
 	  Support for UFS PHY on QCOM chipsets.

+ 2 - 2
drivers/phy/phy-core.c

@@ -530,7 +530,7 @@ struct phy *phy_optional_get(struct device *dev, const char *string)
 {
 {
 	struct phy *phy = phy_get(dev, string);
 	struct phy *phy = phy_get(dev, string);
 
 
-	if (PTR_ERR(phy) == -ENODEV)
+	if (IS_ERR(phy) && (PTR_ERR(phy) == -ENODEV))
 		phy = NULL;
 		phy = NULL;
 
 
 	return phy;
 	return phy;
@@ -584,7 +584,7 @@ struct phy *devm_phy_optional_get(struct device *dev, const char *string)
 {
 {
 	struct phy *phy = devm_phy_get(dev, string);
 	struct phy *phy = devm_phy_get(dev, string);
 
 
-	if (PTR_ERR(phy) == -ENODEV)
+	if (IS_ERR(phy) && (PTR_ERR(phy) == -ENODEV))
 		phy = NULL;
 		phy = NULL;
 
 
 	return phy;
 	return phy;

+ 1 - 0
drivers/phy/phy-omap-usb2.c

@@ -275,6 +275,7 @@ static int omap_usb2_probe(struct platform_device *pdev)
 		phy->wkupclk = devm_clk_get(phy->dev, "usb_phy_cm_clk32k");
 		phy->wkupclk = devm_clk_get(phy->dev, "usb_phy_cm_clk32k");
 		if (IS_ERR(phy->wkupclk)) {
 		if (IS_ERR(phy->wkupclk)) {
 			dev_err(&pdev->dev, "unable to get usb_phy_cm_clk32k\n");
 			dev_err(&pdev->dev, "unable to get usb_phy_cm_clk32k\n");
+			pm_runtime_disable(phy->dev);
 			return PTR_ERR(phy->wkupclk);
 			return PTR_ERR(phy->wkupclk);
 		} else {
 		} else {
 			dev_warn(&pdev->dev,
 			dev_warn(&pdev->dev,

+ 2 - 2
drivers/phy/phy-rcar-gen2.c

@@ -23,7 +23,7 @@
 #define USBHS_LPSTS			0x02
 #define USBHS_LPSTS			0x02
 #define USBHS_UGCTRL			0x80
 #define USBHS_UGCTRL			0x80
 #define USBHS_UGCTRL2			0x84
 #define USBHS_UGCTRL2			0x84
-#define USBHS_UGSTS			0x88	/* The manuals have 0x90 */
+#define USBHS_UGSTS			0x88	/* From technical update */
 
 
 /* Low Power Status register (LPSTS) */
 /* Low Power Status register (LPSTS) */
 #define USBHS_LPSTS_SUSPM		0x4000
 #define USBHS_LPSTS_SUSPM		0x4000
@@ -41,7 +41,7 @@
 #define USBHS_UGCTRL2_USB0SEL_HS_USB	0x00000030
 #define USBHS_UGCTRL2_USB0SEL_HS_USB	0x00000030
 
 
 /* USB General status register (UGSTS) */
 /* USB General status register (UGSTS) */
-#define USBHS_UGSTS_LOCK		0x00000300 /* The manuals have 0x3 */
+#define USBHS_UGSTS_LOCK		0x00000100 /* From technical update */
 
 
 #define PHYS_PER_CHANNEL	2
 #define PHYS_PER_CHANNEL	2