On Wed, Sep 18, 2019 at 2:04 AM Yauhen Kharuzhy <jek...@gmail.com> wrote: > > On Tue, Sep 17, 2019 at 02:13:22PM +0300, Andy Shevchenko wrote: > > On Tue, Sep 17, 2019 at 12:15:36AM +0300, Yauhen Kharuzhy wrote: > > > Intel Cherry Trail Whiskey Cove extcon driver connect USB data lines to > > > PMIC at driver probing for further charger detection. This causes reset of > > > USB data sessions and removing all devices from bus. If system was > > > booted from Live CD or USB dongle, this makes system unusable. > > > > > > Check if USB ID pin is floating and re-route data lines in this case > > > only, don't touch otherwise. > > > > > + ret = regmap_read(ext->regmap, CHT_WC_PWRSRC_STS, &pwrsrc_sts); > > > + if (ret) { > > > + dev_err(ext->dev, "Error reading pwrsrc status: %d\n", ret); > > > + goto disable_sw_control; > > > + } > > > + > > > + id = cht_wc_extcon_get_id(ext, pwrsrc_sts); > > > > We have second implementation of this. Would it make sense to split to some > > helper? > > Do you mean the combination of regmap_read(...CHT_WC_PWRSRC_STS, > &pwrsrc_sts) with cht_wc_extcon_get_id()?
Yes. > In the cht_wc_extcon_pwrsrc_event() function the pwrsrc_sts is checked > for other bits also, so separation of PWRSRC_STS read and id calculation > to one routine will cause non-clear function calls like as > get_powersrc_and_check_id(..., &powersrc_sts, &id) which is not looks > better than current code duplication. I see. Thanks for answer. > Or we need to spend some time for > refactoring and testing of cht_wc_extcon_pwrsrc_event() code. Perhaps, In any case I'm not objecting of the current approach. -- With Best Regards, Andy Shevchenko