OSDN Git Service

usb: pd: Fix probe failure in case of no sink capablities passed
authorVijayavardhan Vennapusa <vvreddy@codeaurora.org>
Tue, 14 Feb 2017 10:02:07 +0000 (15:32 +0530)
committerVijayavardhan Vennapusa <vvreddy@codeaurora.org>
Tue, 14 Feb 2017 10:14:21 +0000 (15:44 +0530)
Commit b76105e359a7 ("usb: pd: Read sink capabilities from device
tree") added support in usbpd driver to pass sink capablities from
device tree. But it introduced bug in case of no sink capablities
passed from device tree as in this case, device_property_read_u32_array()
returns -EINVAL. Due to this, usbpd driver probe fails as usbpd_create()
returns errors. Fix this issue by checking if return value > 0 and then
only try to read sink capablities from device tree. If not, use default
sink capabliites defined in usbpd driver.

Change-Id: I51beeba282c6e067881c664d38c2657843a1c716
Signed-off-by: Vijayavardhan Vennapusa <vvreddy@codeaurora.org>
drivers/usb/pd/policy_engine.c

index 611750e..17b8a3d 100644 (file)
@@ -3166,7 +3166,7 @@ struct usbpd *usbpd_create(struct device *parent)
 
        pd->num_sink_caps = device_property_read_u32_array(parent,
                        "qcom,default-sink-caps", NULL, 0);
-       if (pd->num_sink_caps) {
+       if (pd->num_sink_caps > 0) {
                int i;
                u32 sink_caps[14];