From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933245AbcLSKQ7 (ORCPT ); Mon, 19 Dec 2016 05:16:59 -0500 Received: from mailout2.samsung.com ([203.254.224.25]:47042 "EHLO mailout2.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932988AbcLSKQS (ORCPT ); Mon, 19 Dec 2016 05:16:18 -0500 MIME-version: 1.0 Content-type: text/plain; charset=UTF-8 X-AuditID: cbfee61a-f79bd6d000000fc6-1e-5857b371202b Content-transfer-encoding: 8BIT Message-id: <5857B370.4040303@samsung.com> Date: Mon, 19 Dec 2016 19:16:16 +0900 From: Chanwoo Choi Organization: Samsung Electronics User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 To: Hans de Goede , Sebastian Reichel , Chen-Yu Tsai , MyungJoo Ham Cc: "russianneuromancer @ ya . ru" , linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 08/14] power: supply: axp288_charger: Actually get and use the USB_HOST extcon device References: <20161219000731.10188-1-hdegoede@redhat.com> <20161219000731.10188-9-hdegoede@redhat.com> In-reply-to: <20161219000731.10188-9-hdegoede@redhat.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrMIsWRmVeSWpSXmKPExsVy+t9jAd3CzeERBs0zuCzeHJ/OZHF51xw2 i8+9RxgtbjeuYLO4+HURq8Xp3SUWPw+dZ3Jg99jwaDWrx6ZVnWwe7/ddZfPo27KK0ePzJjmP WQslA9ii3GwyUhNTUosUUvOS81My89JtlUJD3HQtlBTyEnNTbZUidH1DgpQUyhJzSoE8IwM0 4OAc4B6spG+X4Jax5e8EtoKdIhUTmr6xNTBeFehi5OSQEDCRmLf8MQuELSZx4d56ti5GLg4h gaWMEhtfLmAHSfAKCEr8mHwPqIiDg1lAXuLIpWyQMLOAusSkeYuYIeofMEr87f7KDFGvJXGg eycriM0ioCrxsvEWG4jNBhTf/+IGmM0voChx9cdjRpCZogIREt0nKkHmiAhMYZTo/HmIHWJB ucTqhUcYQWxhgWyJq0u+s0As280oMX3NJrBBnAKWElfmb2SdwCg4C8mtsxBunYXk1gWMzKsY JVILkguKk9JzDfNSy/WKE3OLS/PS9ZLzczcxgiPwmdQOxoO73A8xCnAwKvHwFrwPixBiTSwr rsw9xCjBwawkwtu+JjxCiDclsbIqtSg/vqg0J7X4EKMp0LMTmaVEk/OBySGvJN7QxNzE3NjA wtzS0sRISZy3cfazcCGB9MSS1OzU1ILUIpg+Jg5OqQbGSPaWAtf2JMkFDHundm6YXNm3NLBV uaHIKPuoi50c03eVrg9l/3REzTn6rxsnajydMc0zly/t+kyzP0kPqjJPGX27mvY2dGZPbt8v jay3+79s3W577cpLx09+Uwuaiy7vv/J05tz0iW9WFy56Y1q7tfPK5AnPPz2Z8bzrQ8mqW4eY fVtXVW3jVWIpzkg01GIuKk4EAB1xP/jWAgAA X-MTR: 20000000000000000@CPGS Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Hans, On 2016년 12월 19일 09:07, Hans de Goede wrote: > Nothing was setting info->otg.cable, so the extcon_get_cable_state_ > calls on it would always return -EINVAL. > > This commit fixes this by actually setting info->otg.cable using the new > extcon_get_extcon_dev_by_cable_id function. > > This commit also makes failing to register the extcon notifier for the > USB_HOST cable an error rather then a warning, because we MUST have this > notfier to properly disable the VBUS path when in host mode so that we're > not drawing current from the 5V boost converter which is supplying power > to the otg port when in host mode. > > Signed-off-by: Hans de Goede > --- > drivers/power/supply/axp288_charger.c | 18 ++++++++++++------ > 1 file changed, 12 insertions(+), 6 deletions(-) > > diff --git a/drivers/power/supply/axp288_charger.c b/drivers/power/supply/axp288_charger.c > index 08a5dba..2b95db2 100644 > --- a/drivers/power/supply/axp288_charger.c > +++ b/drivers/power/supply/axp288_charger.c > @@ -833,6 +833,12 @@ static int axp288_charger_probe(struct platform_device *pdev) > return -EPROBE_DEFER; > } > > + info->otg.cable = extcon_get_extcon_dev_by_cable_id(EXTCON_USB_HOST); > + if (info->otg.cable == NULL) { > + dev_dbg(dev, "EXTCON_USB_HOST is not ready, probe deferred\n"); > + return -EPROBE_DEFER; > + } > + I replied my opinion of extcon_get_extcon_dev_by_cable_id from patch1. If you possible, I think that you better to use the id_table which includes the correct name of extcon device which support the EXTCON_USB_HOST. When changing the hardware design, I think you can add the new device_id with new extcon device name. > platform_set_drvdata(pdev, info); > mutex_init(&info->lock); > > @@ -867,12 +873,12 @@ static int axp288_charger_probe(struct platform_device *pdev) > info->otg.id_nb.notifier_call = axp288_charger_handle_otg_evt; > ret = devm_extcon_register_notifier(dev, info->otg.cable, > EXTCON_USB_HOST, &info->otg.id_nb); > - if (ret) > - dev_warn(&pdev->dev, "failed to register otg notifier\n"); > - > - if (info->otg.cable) > - info->otg.id_short = extcon_get_cable_state_( > - info->otg.cable, EXTCON_USB_HOST); > + if (ret) { > + dev_err(dev, "failed to register EXTCON_USB_HOST notifier\n"); > + return ret; > + } > + info->otg.id_short = extcon_get_cable_state_(info->otg.cable, > + EXTCON_USB_HOST); > > /* Register charger interrupts */ > for (i = 0; i < CHRG_INTR_END; i++) { > -- Regards, Chanwoo Choi