> Am 15.06.2017 um 13:57 schrieb Sebastian Reichel <sebastian.reichel@xxxxxxxxxxxxxxx>: > > Hi, > > On Wed, Jun 14, 2017 at 11:25:56AM +0200, H. Nikolaus Schaller wrote: >> This fixes an issue if both this twl4030_charger driver and >> phy-twl4030-usb are compiled as modules and loaded in random order. >> >> It has been observed on GTA04 and OpenPandora devices that in worst >> case the boot process hangs and in best case the AC detection fails >> with a warning. >> >> Therefore we add deferred probing checks for the usb_phy and the >> iio channel for AC detection. >> >> Signed-off-by: H. Nikolaus Schaller <hns@xxxxxxxxxxxxx> >> --- >> drivers/power/supply/twl4030_charger.c | 10 ++++++++-- >> 1 file changed, 8 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/power/supply/twl4030_charger.c b/drivers/power/supply/twl4030_charger.c >> index 3bebeecb4a1f..6ac8816262bd 100644 >> --- a/drivers/power/supply/twl4030_charger.c >> +++ b/drivers/power/supply/twl4030_charger.c >> @@ -989,15 +989,21 @@ static int twl4030_bci_probe(struct platform_device *pdev) >> >> phynode = of_find_compatible_node(bci->dev->of_node->parent, >> NULL, "ti,twl4030-usb"); >> - if (phynode) >> + if (phynode) { >> bci->transceiver = devm_usb_get_phy_by_node( >> bci->dev, phynode, &bci->usb_nb); >> + if (IS_ERR(bci->transceiver) && >> + PTR_ERR(bci->transceiver) == -EPROBE_DEFER) >> + return -EPROBE_DEFER; /* PHY not ready */ >> + } >> } > > Let's also set to NULL + dev_warn for other errors (like the iio > channel error handling). Added to v7. Also added a %d to print the error number to aid spotting the problems. > >> bci->channel_vac = devm_iio_channel_get(&pdev->dev, "vac"); >> if (IS_ERR(bci->channel_vac)) { >> - bci->channel_vac = NULL; >> + if (PTR_ERR(bci->channel_vac) == -EPROBE_DEFER) >> + return -EPROBE_DEFER; /* iio not ready */ >> dev_warn(&pdev->dev, "could not request vac iio channel"); >> + bci->channel_vac = NULL; >> } >> >> bci->ac = devm_power_supply_register(&pdev->dev, &twl4030_bci_ac_desc, > > -- Sebastian
Attachment:
signature.asc
Description: Message signed with OpenPGP using GPGMail