extcon: Check for incorrect connection type in notifier register

If we call extcon_register_notifier() with the wrong cable type,
it blows up with an oops instead of returning an error code.
Let's be nice and fail gracefully given that the consumer might
not know if the cable is supported by the extcon provider.

Signed-off-by: Stephen Boyd <stephen.boyd@linaro.org>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
diff --git a/drivers/extcon/extcon.c b/drivers/extcon/extcon.c
index 4fef9ab..b6408f0 100644
--- a/drivers/extcon/extcon.c
+++ b/drivers/extcon/extcon.c
@@ -415,6 +415,8 @@
 
 	if (edev) {
 		idx = find_cable_index_by_id(edev, id);
+		if (idx < 0)
+			return idx;
 
 		spin_lock_irqsave(&edev->lock, flags);
 		ret = raw_notifier_chain_register(&edev->nh[idx], nb);
@@ -458,6 +460,8 @@
 		return -EINVAL;
 
 	idx = find_cable_index_by_id(edev, id);
+	if (idx < 0)
+		return idx;
 
 	spin_lock_irqsave(&edev->lock, flags);
 	ret = raw_notifier_chain_unregister(&edev->nh[idx], nb);