MLK-11340-43 usb: chipidea: imx: fix usb charger detection init NULL pointer
authorLi Jun <jun.li@freescale.com>
Tue, 11 Aug 2015 07:52:10 +0000 (15:52 +0800)
committerNitin Garg <nitin.garg@nxp.com>
Mon, 19 Mar 2018 19:47:20 +0000 (14:47 -0500)
Dereference the charger->psy after the power_supply is created to fix the
null pointer issue.

Signed-off-by: Li Jun <b47624@freescale.com>
drivers/usb/chipidea/ci_hdrc_imx.c

index 9205c8a..3a0e545 100644 (file)
@@ -411,7 +411,6 @@ static int imx_usb_charger_get_property(struct power_supply *psy,
 static int imx_usb_register_charger(struct usb_charger *charger,
                const char *name)
 {
-       struct power_supply             *psy = charger->psy;
        struct power_supply_desc        *desc = &charger->psy_desc;
 
        if (!charger->dev)
@@ -429,15 +428,16 @@ static int imx_usb_register_charger(struct usb_charger *charger,
        desc->properties        = imx_usb_charger_power_props;
        desc->num_properties    = ARRAY_SIZE(imx_usb_charger_power_props);
        desc->get_property      = imx_usb_charger_get_property;
-       psy->supplied_to        = imx_usb_charger_supplied_to;
-       psy->num_supplicants    = sizeof(imx_usb_charger_supplied_to)
-                                       / sizeof(char *);
 
-       charger->psy = devm_power_supply_register(charger->dev->parent,
+       charger->psy = devm_power_supply_register(charger->dev,
                                                &charger->psy_desc, NULL);
        if (IS_ERR(charger->psy))
                return PTR_ERR(charger->psy);
 
+       charger->psy->supplied_to       = imx_usb_charger_supplied_to;
+       charger->psy->num_supplicants   = sizeof(imx_usb_charger_supplied_to)
+                                       / sizeof(char *);
+
        return 0;
 }