diff options
| -rw-r--r-- | drivers/usb/otg/ulpi.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/drivers/usb/otg/ulpi.c b/drivers/usb/otg/ulpi.c index b1b346932946..d331b222ad21 100644 --- a/drivers/usb/otg/ulpi.c +++ b/drivers/usb/otg/ulpi.c | |||
| @@ -59,12 +59,17 @@ static int ulpi_set_flags(struct otg_transceiver *otg) | |||
| 59 | 59 | ||
| 60 | static int ulpi_init(struct otg_transceiver *otg) | 60 | static int ulpi_init(struct otg_transceiver *otg) |
| 61 | { | 61 | { |
| 62 | int i, vid, pid; | 62 | int i, vid, pid, ret; |
| 63 | 63 | u32 ulpi_id = 0; | |
| 64 | vid = (otg_io_read(otg, ULPI_VENDOR_ID_HIGH) << 8) | | 64 | |
| 65 | otg_io_read(otg, ULPI_VENDOR_ID_LOW); | 65 | for (i = 0; i < 4; i++) { |
| 66 | pid = (otg_io_read(otg, ULPI_PRODUCT_ID_HIGH) << 8) | | 66 | ret = otg_io_read(otg, ULPI_PRODUCT_ID_HIGH - i); |
| 67 | otg_io_read(otg, ULPI_PRODUCT_ID_LOW); | 67 | if (ret < 0) |
| 68 | return ret; | ||
| 69 | ulpi_id = (ulpi_id << 8) | ret; | ||
| 70 | } | ||
| 71 | vid = ulpi_id & 0xffff; | ||
| 72 | pid = ulpi_id >> 16; | ||
| 68 | 73 | ||
| 69 | pr_info("ULPI transceiver vendor/product ID 0x%04x/0x%04x\n", vid, pid); | 74 | pr_info("ULPI transceiver vendor/product ID 0x%04x/0x%04x\n", vid, pid); |
| 70 | 75 | ||
