diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-05-16 23:48:42 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-05-16 23:48:42 -0400 |
commit | 148c46f3e12bfd877c4fcec986f55988f21b0857 (patch) | |
tree | 21ae74a7fd903e3ece09710ed7cc8beca16ceabb | |
parent | 92752b5cddcfe421767cf61151bf5a1553a6540b (diff) | |
parent | 0f5b6ec67404246f3e08435aa37df3c8e9354101 (diff) |
Merge tag 'char-misc-4.1-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc
Pull char/misc fix from Greg KH:
"Here is one fix, in the extcon subsystem, that resolves a reported
issue.
It's been in linux-next for a number of weeks now, sorry for not
getting it to you sooner"
* tag 'char-misc-4.1-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
extcon: usb-gpio: register extcon device before IRQ registration
-rw-r--r-- | drivers/extcon/extcon-usb-gpio.c | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/drivers/extcon/extcon-usb-gpio.c b/drivers/extcon/extcon-usb-gpio.c index de67fce18984..e45d1f13f445 100644 --- a/drivers/extcon/extcon-usb-gpio.c +++ b/drivers/extcon/extcon-usb-gpio.c | |||
@@ -119,6 +119,18 @@ static int usb_extcon_probe(struct platform_device *pdev) | |||
119 | return PTR_ERR(info->id_gpiod); | 119 | return PTR_ERR(info->id_gpiod); |
120 | } | 120 | } |
121 | 121 | ||
122 | info->edev = devm_extcon_dev_allocate(dev, usb_extcon_cable); | ||
123 | if (IS_ERR(info->edev)) { | ||
124 | dev_err(dev, "failed to allocate extcon device\n"); | ||
125 | return -ENOMEM; | ||
126 | } | ||
127 | |||
128 | ret = devm_extcon_dev_register(dev, info->edev); | ||
129 | if (ret < 0) { | ||
130 | dev_err(dev, "failed to register extcon device\n"); | ||
131 | return ret; | ||
132 | } | ||
133 | |||
122 | ret = gpiod_set_debounce(info->id_gpiod, | 134 | ret = gpiod_set_debounce(info->id_gpiod, |
123 | USB_GPIO_DEBOUNCE_MS * 1000); | 135 | USB_GPIO_DEBOUNCE_MS * 1000); |
124 | if (ret < 0) | 136 | if (ret < 0) |
@@ -142,18 +154,6 @@ static int usb_extcon_probe(struct platform_device *pdev) | |||
142 | return ret; | 154 | return ret; |
143 | } | 155 | } |
144 | 156 | ||
145 | info->edev = devm_extcon_dev_allocate(dev, usb_extcon_cable); | ||
146 | if (IS_ERR(info->edev)) { | ||
147 | dev_err(dev, "failed to allocate extcon device\n"); | ||
148 | return -ENOMEM; | ||
149 | } | ||
150 | |||
151 | ret = devm_extcon_dev_register(dev, info->edev); | ||
152 | if (ret < 0) { | ||
153 | dev_err(dev, "failed to register extcon device\n"); | ||
154 | return ret; | ||
155 | } | ||
156 | |||
157 | platform_set_drvdata(pdev, info); | 157 | platform_set_drvdata(pdev, info); |
158 | device_init_wakeup(dev, 1); | 158 | device_init_wakeup(dev, 1); |
159 | 159 | ||