diff options
| -rw-r--r-- | drivers/phy/Kconfig | 1 | ||||
| -rw-r--r-- | drivers/phy/phy-core.c | 7 | ||||
| -rw-r--r-- | drivers/phy/phy-omap-usb2.c | 11 | ||||
| -rw-r--r-- | drivers/phy/phy-samsung-usb2.c | 1 | ||||
| -rw-r--r-- | drivers/usb/serial/cp210x.c | 1 | ||||
| -rw-r--r-- | drivers/usb/serial/ftdi_sio.c | 5 | ||||
| -rw-r--r-- | drivers/usb/serial/ftdi_sio_ids.h | 9 | ||||
| -rw-r--r-- | drivers/usb/serial/option.c | 2 |
8 files changed, 28 insertions, 9 deletions
diff --git a/drivers/phy/Kconfig b/drivers/phy/Kconfig index fcdfe7c0e4a7..64b98d242ea6 100644 --- a/drivers/phy/Kconfig +++ b/drivers/phy/Kconfig | |||
| @@ -112,6 +112,7 @@ config PHY_EXYNOS5250_SATA | |||
| 112 | config PHY_SUN4I_USB | 112 | config PHY_SUN4I_USB |
| 113 | tristate "Allwinner sunxi SoC USB PHY driver" | 113 | tristate "Allwinner sunxi SoC USB PHY driver" |
| 114 | depends on ARCH_SUNXI && HAS_IOMEM && OF | 114 | depends on ARCH_SUNXI && HAS_IOMEM && OF |
| 115 | depends on RESET_CONTROLLER | ||
| 115 | select GENERIC_PHY | 116 | select GENERIC_PHY |
| 116 | help | 117 | help |
| 117 | Enable this to support the transceiver that is part of Allwinner | 118 | Enable this to support the transceiver that is part of Allwinner |
diff --git a/drivers/phy/phy-core.c b/drivers/phy/phy-core.c index c64a2f3b2d62..49c446530101 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, | |||
| 614 | return phy; | 614 | return phy; |
| 615 | 615 | ||
| 616 | put_dev: | 616 | put_dev: |
| 617 | put_device(&phy->dev); | 617 | put_device(&phy->dev); /* calls phy_release() which frees resources */ |
| 618 | ida_remove(&phy_ida, phy->id); | 618 | return ERR_PTR(ret); |
| 619 | |||
| 619 | free_phy: | 620 | free_phy: |
| 620 | kfree(phy); | 621 | kfree(phy); |
| 621 | return ERR_PTR(ret); | 622 | return ERR_PTR(ret); |
| @@ -799,7 +800,7 @@ static void phy_release(struct device *dev) | |||
| 799 | 800 | ||
| 800 | phy = to_phy(dev); | 801 | phy = to_phy(dev); |
| 801 | dev_vdbg(dev, "releasing '%s'\n", dev_name(dev)); | 802 | dev_vdbg(dev, "releasing '%s'\n", dev_name(dev)); |
| 802 | ida_remove(&phy_ida, phy->id); | 803 | ida_simple_remove(&phy_ida, phy->id); |
| 803 | kfree(phy); | 804 | kfree(phy); |
| 804 | } | 805 | } |
| 805 | 806 | ||
diff --git a/drivers/phy/phy-omap-usb2.c b/drivers/phy/phy-omap-usb2.c index 7007c11fe07d..34b396146c8a 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) | |||
| 233 | if (phy_data->flags & OMAP_USB2_CALIBRATE_FALSE_DISCONNECT) { | 233 | if (phy_data->flags & OMAP_USB2_CALIBRATE_FALSE_DISCONNECT) { |
| 234 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 234 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
| 235 | phy->phy_base = devm_ioremap_resource(&pdev->dev, res); | 235 | phy->phy_base = devm_ioremap_resource(&pdev->dev, res); |
| 236 | if (!phy->phy_base) | 236 | if (IS_ERR(phy->phy_base)) |
| 237 | return -ENOMEM; | 237 | return PTR_ERR(phy->phy_base); |
| 238 | phy->flags |= OMAP_USB2_CALIBRATE_FALSE_DISCONNECT; | 238 | phy->flags |= OMAP_USB2_CALIBRATE_FALSE_DISCONNECT; |
| 239 | } | 239 | } |
| 240 | 240 | ||
| @@ -262,7 +262,6 @@ static int omap_usb2_probe(struct platform_device *pdev) | |||
| 262 | otg->phy = &phy->phy; | 262 | otg->phy = &phy->phy; |
| 263 | 263 | ||
| 264 | platform_set_drvdata(pdev, phy); | 264 | platform_set_drvdata(pdev, phy); |
| 265 | pm_runtime_enable(phy->dev); | ||
| 266 | 265 | ||
| 267 | generic_phy = devm_phy_create(phy->dev, &ops, NULL); | 266 | generic_phy = devm_phy_create(phy->dev, &ops, NULL); |
| 268 | if (IS_ERR(generic_phy)) | 267 | if (IS_ERR(generic_phy)) |
| @@ -270,10 +269,13 @@ static int omap_usb2_probe(struct platform_device *pdev) | |||
| 270 | 269 | ||
| 271 | phy_set_drvdata(generic_phy, phy); | 270 | phy_set_drvdata(generic_phy, phy); |
| 272 | 271 | ||
| 272 | pm_runtime_enable(phy->dev); | ||
| 273 | phy_provider = devm_of_phy_provider_register(phy->dev, | 273 | phy_provider = devm_of_phy_provider_register(phy->dev, |
| 274 | of_phy_simple_xlate); | 274 | of_phy_simple_xlate); |
| 275 | if (IS_ERR(phy_provider)) | 275 | if (IS_ERR(phy_provider)) { |
| 276 | pm_runtime_disable(phy->dev); | ||
| 276 | return PTR_ERR(phy_provider); | 277 | return PTR_ERR(phy_provider); |
| 278 | } | ||
| 277 | 279 | ||
| 278 | phy->wkupclk = devm_clk_get(phy->dev, "wkupclk"); | 280 | phy->wkupclk = devm_clk_get(phy->dev, "wkupclk"); |
| 279 | if (IS_ERR(phy->wkupclk)) { | 281 | if (IS_ERR(phy->wkupclk)) { |
| @@ -317,6 +319,7 @@ static int omap_usb2_remove(struct platform_device *pdev) | |||
| 317 | if (!IS_ERR(phy->optclk)) | 319 | if (!IS_ERR(phy->optclk)) |
| 318 | clk_unprepare(phy->optclk); | 320 | clk_unprepare(phy->optclk); |
| 319 | usb_remove_phy(&phy->phy); | 321 | usb_remove_phy(&phy->phy); |
| 322 | pm_runtime_disable(phy->dev); | ||
| 320 | 323 | ||
| 321 | return 0; | 324 | return 0; |
| 322 | } | 325 | } |
diff --git a/drivers/phy/phy-samsung-usb2.c b/drivers/phy/phy-samsung-usb2.c index 8a8c6bc8709a..1e69a32c221d 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[] = { | |||
| 107 | #endif | 107 | #endif |
| 108 | { }, | 108 | { }, |
| 109 | }; | 109 | }; |
| 110 | MODULE_DEVICE_TABLE(of, samsung_usb2_phy_of_match); | ||
| 110 | 111 | ||
| 111 | static int samsung_usb2_phy_probe(struct platform_device *pdev) | 112 | static int samsung_usb2_phy_probe(struct platform_device *pdev) |
| 112 | { | 113 | { |
diff --git a/drivers/usb/serial/cp210x.c b/drivers/usb/serial/cp210x.c index 762e4a5f5ae9..330df5ce435b 100644 --- a/drivers/usb/serial/cp210x.c +++ b/drivers/usb/serial/cp210x.c | |||
| @@ -153,6 +153,7 @@ static const struct usb_device_id id_table[] = { | |||
| 153 | { USB_DEVICE(0x1843, 0x0200) }, /* Vaisala USB Instrument Cable */ | 153 | { USB_DEVICE(0x1843, 0x0200) }, /* Vaisala USB Instrument Cable */ |
| 154 | { USB_DEVICE(0x18EF, 0xE00F) }, /* ELV USB-I2C-Interface */ | 154 | { USB_DEVICE(0x18EF, 0xE00F) }, /* ELV USB-I2C-Interface */ |
| 155 | { USB_DEVICE(0x1ADB, 0x0001) }, /* Schweitzer Engineering C662 Cable */ | 155 | { USB_DEVICE(0x1ADB, 0x0001) }, /* Schweitzer Engineering C662 Cable */ |
| 156 | { USB_DEVICE(0x1B1C, 0x1C00) }, /* Corsair USB Dongle */ | ||
| 156 | { USB_DEVICE(0x1BE3, 0x07A6) }, /* WAGO 750-923 USB Service Cable */ | 157 | { USB_DEVICE(0x1BE3, 0x07A6) }, /* WAGO 750-923 USB Service Cable */ |
| 157 | { USB_DEVICE(0x1E29, 0x0102) }, /* Festo CPX-USB */ | 158 | { USB_DEVICE(0x1E29, 0x0102) }, /* Festo CPX-USB */ |
| 158 | { USB_DEVICE(0x1E29, 0x0501) }, /* Festo CMSP */ | 159 | { USB_DEVICE(0x1E29, 0x0501) }, /* Festo CMSP */ |
diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c index 115662c16dcc..8a3813be1b28 100644 --- a/drivers/usb/serial/ftdi_sio.c +++ b/drivers/usb/serial/ftdi_sio.c | |||
| @@ -720,7 +720,8 @@ static const struct usb_device_id id_table_combined[] = { | |||
| 720 | { USB_DEVICE(FTDI_VID, FTDI_ACG_HFDUAL_PID) }, | 720 | { USB_DEVICE(FTDI_VID, FTDI_ACG_HFDUAL_PID) }, |
| 721 | { USB_DEVICE(FTDI_VID, FTDI_YEI_SERVOCENTER31_PID) }, | 721 | { USB_DEVICE(FTDI_VID, FTDI_YEI_SERVOCENTER31_PID) }, |
| 722 | { USB_DEVICE(FTDI_VID, FTDI_THORLABS_PID) }, | 722 | { USB_DEVICE(FTDI_VID, FTDI_THORLABS_PID) }, |
| 723 | { USB_DEVICE(TESTO_VID, TESTO_USB_INTERFACE_PID) }, | 723 | { USB_DEVICE(TESTO_VID, TESTO_1_PID) }, |
| 724 | { USB_DEVICE(TESTO_VID, TESTO_3_PID) }, | ||
| 724 | { USB_DEVICE(FTDI_VID, FTDI_GAMMA_SCOUT_PID) }, | 725 | { USB_DEVICE(FTDI_VID, FTDI_GAMMA_SCOUT_PID) }, |
| 725 | { USB_DEVICE(FTDI_VID, FTDI_TACTRIX_OPENPORT_13M_PID) }, | 726 | { USB_DEVICE(FTDI_VID, FTDI_TACTRIX_OPENPORT_13M_PID) }, |
| 726 | { USB_DEVICE(FTDI_VID, FTDI_TACTRIX_OPENPORT_13S_PID) }, | 727 | { USB_DEVICE(FTDI_VID, FTDI_TACTRIX_OPENPORT_13S_PID) }, |
| @@ -944,6 +945,8 @@ static const struct usb_device_id id_table_combined[] = { | |||
| 944 | { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_842_2_PID) }, | 945 | { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_842_2_PID) }, |
| 945 | { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_842_3_PID) }, | 946 | { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_842_3_PID) }, |
| 946 | { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_842_4_PID) }, | 947 | { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_842_4_PID) }, |
| 948 | /* Infineon Devices */ | ||
| 949 | { USB_DEVICE_INTERFACE_NUMBER(INFINEON_VID, INFINEON_TRIBOARD_PID, 1) }, | ||
| 947 | { } /* Terminating entry */ | 950 | { } /* Terminating entry */ |
| 948 | }; | 951 | }; |
| 949 | 952 | ||
diff --git a/drivers/usb/serial/ftdi_sio_ids.h b/drivers/usb/serial/ftdi_sio_ids.h index 500474c48f4b..c4777bc6aee0 100644 --- a/drivers/usb/serial/ftdi_sio_ids.h +++ b/drivers/usb/serial/ftdi_sio_ids.h | |||
| @@ -584,6 +584,12 @@ | |||
| 584 | #define RATOC_PRODUCT_ID_USB60F 0xb020 | 584 | #define RATOC_PRODUCT_ID_USB60F 0xb020 |
| 585 | 585 | ||
| 586 | /* | 586 | /* |
| 587 | * Infineon Technologies | ||
| 588 | */ | ||
| 589 | #define INFINEON_VID 0x058b | ||
| 590 | #define INFINEON_TRIBOARD_PID 0x0028 /* DAS JTAG TriBoard TC1798 V1.0 */ | ||
| 591 | |||
| 592 | /* | ||
| 587 | * Acton Research Corp. | 593 | * Acton Research Corp. |
| 588 | */ | 594 | */ |
| 589 | #define ACTON_VID 0x0647 /* Vendor ID */ | 595 | #define ACTON_VID 0x0647 /* Vendor ID */ |
| @@ -798,7 +804,8 @@ | |||
| 798 | * Submitted by Colin Leroy | 804 | * Submitted by Colin Leroy |
| 799 | */ | 805 | */ |
| 800 | #define TESTO_VID 0x128D | 806 | #define TESTO_VID 0x128D |
| 801 | #define TESTO_USB_INTERFACE_PID 0x0001 | 807 | #define TESTO_1_PID 0x0001 |
| 808 | #define TESTO_3_PID 0x0003 | ||
| 802 | 809 | ||
| 803 | /* | 810 | /* |
| 804 | * Mobility Electronics products. | 811 | * Mobility Electronics products. |
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c index ac73f49cd9f0..a9688940543d 100644 --- a/drivers/usb/serial/option.c +++ b/drivers/usb/serial/option.c | |||
| @@ -1487,6 +1487,8 @@ static const struct usb_device_id option_ids[] = { | |||
| 1487 | .driver_info = (kernel_ulong_t)&net_intf2_blacklist }, | 1487 | .driver_info = (kernel_ulong_t)&net_intf2_blacklist }, |
| 1488 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1426, 0xff, 0xff, 0xff), /* ZTE MF91 */ | 1488 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1426, 0xff, 0xff, 0xff), /* ZTE MF91 */ |
| 1489 | .driver_info = (kernel_ulong_t)&net_intf2_blacklist }, | 1489 | .driver_info = (kernel_ulong_t)&net_intf2_blacklist }, |
| 1490 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1428, 0xff, 0xff, 0xff), /* Telewell TW-LTE 4G v2 */ | ||
| 1491 | .driver_info = (kernel_ulong_t)&net_intf2_blacklist }, | ||
| 1490 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1533, 0xff, 0xff, 0xff) }, | 1492 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1533, 0xff, 0xff, 0xff) }, |
| 1491 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1534, 0xff, 0xff, 0xff) }, | 1493 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1534, 0xff, 0xff, 0xff) }, |
| 1492 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1535, 0xff, 0xff, 0xff) }, | 1494 | { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1535, 0xff, 0xff, 0xff) }, |
