From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andy Shevchenko Subject: [PATCH v1 2/5] extcon: Return -EPROBE_DEFER when extcon device is not found Date: Sat, 10 Nov 2018 20:10:58 +0200 Message-ID: <20181110181101.24557-2-andriy.shevchenko@linux.intel.com> References: <20181110181101.24557-1-andriy.shevchenko@linux.intel.com> Mime-Version: 1.0 Content-Transfer-Encoding: 8bit Return-path: In-Reply-To: <20181110181101.24557-1-andriy.shevchenko@linux.intel.com> Sender: linux-kernel-owner@vger.kernel.org To: MyungJoo Ham , Chanwoo Choi , linux-usb@vger.kernel.org, Felipe Balbi , Guenter Roeck , Heikki Krogerus , Roger Quadros , linux-pm@vger.kernel.org, "Rafael J. Wysocki" , Sebastian Reichel , linux-omap@vger.kernel.org, Darren Hart , platform-driver-x86@vger.kernel.org, Greg Kroah-Hartman , linux-kernel@vger.kernel.org, Chen-Yu Tsai , Hans de Goede Cc: Andy Shevchenko List-Id: linux-omap@vger.kernel.org All current users of extcon_get_extcon_dev() API considers an extcon device a mandatory to appear. Thus, they all convert NULL pointer to -EPROBE_DEFER error code. There is one more caller anticipated with the same requirements. To decrease a code duplication and a burden to the callers, return -EPROBE_DEFER directly from extcon_get_extcon_dev(). Signed-off-by: Andy Shevchenko --- drivers/extcon/extcon-axp288.c | 4 ++-- drivers/extcon/extcon.c | 2 +- drivers/power/supply/axp288_charger.c | 8 ++++---- drivers/usb/phy/phy-omap-otg.c | 6 +++--- drivers/usb/typec/tcpm/fusb302.c | 4 ++-- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/drivers/extcon/extcon-axp288.c b/drivers/extcon/extcon-axp288.c index a983708b77a6..3472d3b756ed 100644 --- a/drivers/extcon/extcon-axp288.c +++ b/drivers/extcon/extcon-axp288.c @@ -360,8 +360,8 @@ static int axp288_extcon_probe(struct platform_device *pdev) name = acpi_dev_get_first_match_name("INT3496", NULL, -1); if (name) { info->id_extcon = extcon_get_extcon_dev(name); - if (!info->id_extcon) - return -EPROBE_DEFER; + if (IS_ERR(info->id_extcon)) + return PTR_ERR(info->id_extcon); dev_info(dev, "controlling USB role\n"); } else { diff --git a/drivers/extcon/extcon.c b/drivers/extcon/extcon.c index 5ab0498be652..2bd0f2f33f05 100644 --- a/drivers/extcon/extcon.c +++ b/drivers/extcon/extcon.c @@ -884,7 +884,7 @@ struct extcon_dev *extcon_get_extcon_dev(const char *extcon_name) if (!strcmp(sd->name, extcon_name)) goto out; } - sd = NULL; + sd = ERR_PTR(-EPROBE_DEFER); out: mutex_unlock(&extcon_dev_list_lock); return sd; diff --git a/drivers/power/supply/axp288_charger.c b/drivers/power/supply/axp288_charger.c index 735658ee1c60..8558577fccf5 100644 --- a/drivers/power/supply/axp288_charger.c +++ b/drivers/power/supply/axp288_charger.c @@ -768,17 +768,17 @@ static int axp288_charger_probe(struct platform_device *pdev) info->regmap_irqc = axp20x->regmap_irqc; info->cable.edev = extcon_get_extcon_dev(AXP288_EXTCON_DEV_NAME); - if (info->cable.edev == NULL) { + if (IS_ERR(info->cable.edev)) { dev_dbg(&pdev->dev, "%s is not ready, probe deferred\n", AXP288_EXTCON_DEV_NAME); - return -EPROBE_DEFER; + return PTR_ERR(info->cable.edev); } if (acpi_dev_present(USB_HOST_EXTCON_HID, NULL, -1)) { info->otg.cable = extcon_get_extcon_dev(USB_HOST_EXTCON_NAME); - if (info->otg.cable == NULL) { + if (IS_ERR(info->otg.cable)) { dev_dbg(dev, "EXTCON_USB_HOST is not ready, probe deferred\n"); - return -EPROBE_DEFER; + return PTR_ERR(info->otg.cable); } dev_info(&pdev->dev, "Using " USB_HOST_EXTCON_HID " extcon for usb-id\n"); diff --git a/drivers/usb/phy/phy-omap-otg.c b/drivers/usb/phy/phy-omap-otg.c index ee0863c6553e..605314ddcd3d 100644 --- a/drivers/usb/phy/phy-omap-otg.c +++ b/drivers/usb/phy/phy-omap-otg.c @@ -91,12 +91,12 @@ static int omap_otg_probe(struct platform_device *pdev) int ret; u32 rev; - if (!config || !config->extcon) + if (!config) return -ENODEV; extcon = extcon_get_extcon_dev(config->extcon); - if (!extcon) - return -EPROBE_DEFER; + if (IS_ERR(extcon)) + return PTR_ERR(extcon); otg_dev = devm_kzalloc(&pdev->dev, sizeof(*otg_dev), GFP_KERNEL); if (!otg_dev) diff --git a/drivers/usb/typec/tcpm/fusb302.c b/drivers/usb/typec/tcpm/fusb302.c index 43b64d9309d0..6d332066202b 100644 --- a/drivers/usb/typec/tcpm/fusb302.c +++ b/drivers/usb/typec/tcpm/fusb302.c @@ -1767,8 +1767,8 @@ static int fusb302_probe(struct i2c_client *client, */ if (device_property_read_string(dev, "fcs,extcon-name", &name) == 0) { chip->extcon = extcon_get_extcon_dev(name); - if (!chip->extcon) - return -EPROBE_DEFER; + if (IS_ERR(chip->extcon)) + return PTR_ERR(chip->extcon); } chip->vbus = devm_regulator_get(chip->dev, "vbus"); -- 2.19.1 From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [v1,2/5] extcon: Return -EPROBE_DEFER when extcon device is not found From: Andy Shevchenko Message-Id: <20181110181101.24557-2-andriy.shevchenko@linux.intel.com> Date: Sat, 10 Nov 2018 20:10:58 +0200 To: MyungJoo Ham , Chanwoo Choi , linux-usb@vger.kernel.org, Felipe Balbi , Guenter Roeck , Heikki Krogerus , Roger Quadros , linux-pm@vger.kernel.org, "Rafael J. Wysocki" , Sebastian Reichel , linux-omap@vger.kernel.org, Darren Hart , platform-driver-x86@vger.kernel.org, Greg Kroah-Hartman , linux-kernel@vger.kernel.org, Chen-Yu Tsai , Hans de Goede Cc: Andy Shevchenko List-ID: QWxsIGN1cnJlbnQgdXNlcnMgb2YgZXh0Y29uX2dldF9leHRjb25fZGV2KCkgQVBJIGNvbnNpZGVy cwphbiBleHRjb24gZGV2aWNlIGEgbWFuZGF0b3J5IHRvIGFwcGVhci4gVGh1cywgdGhleSBhbGwg Y29udmVydApOVUxMIHBvaW50ZXIgdG8gLUVQUk9CRV9ERUZFUiBlcnJvciBjb2RlLgoKVGhlcmUg aXMgb25lIG1vcmUgY2FsbGVyIGFudGljaXBhdGVkIHdpdGggdGhlIHNhbWUgcmVxdWlyZW1lbnRz LgoKVG8gZGVjcmVhc2UgYSBjb2RlIGR1cGxpY2F0aW9uIGFuZCBhIGJ1cmRlbiB0byB0aGUgY2Fs bGVycywKcmV0dXJuIC1FUFJPQkVfREVGRVIgZGlyZWN0bHkgZnJvbSBleHRjb25fZ2V0X2V4dGNv bl9kZXYoKS4KClNpZ25lZC1vZmYtYnk6IEFuZHkgU2hldmNoZW5rbyA8YW5kcml5LnNoZXZjaGVu a29AbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZXh0Y29uL2V4dGNvbi1heHAyODguYyAg ICAgICAgfCA0ICsrLS0KIGRyaXZlcnMvZXh0Y29uL2V4dGNvbi5jICAgICAgICAgICAgICAgfCAy ICstCiBkcml2ZXJzL3Bvd2VyL3N1cHBseS9heHAyODhfY2hhcmdlci5jIHwgOCArKysrLS0tLQog ZHJpdmVycy91c2IvcGh5L3BoeS1vbWFwLW90Zy5jICAgICAgICB8IDYgKysrLS0tCiBkcml2ZXJz L3VzYi90eXBlYy90Y3BtL2Z1c2IzMDIuYyAgICAgIHwgNCArKy0tCiA1IGZpbGVzIGNoYW5nZWQs IDEyIGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv ZXh0Y29uL2V4dGNvbi1heHAyODguYyBiL2RyaXZlcnMvZXh0Y29uL2V4dGNvbi1heHAyODguYwpp bmRleCBhOTgzNzA4Yjc3YTYuLjM0NzJkM2I3NTZlZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9leHRj b24vZXh0Y29uLWF4cDI4OC5jCisrKyBiL2RyaXZlcnMvZXh0Y29uL2V4dGNvbi1heHAyODguYwpA QCAtMzYwLDggKzM2MCw4IEBAIHN0YXRpYyBpbnQgYXhwMjg4X2V4dGNvbl9wcm9iZShzdHJ1Y3Qg cGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCQluYW1lID0gYWNwaV9kZXZfZ2V0X2ZpcnN0X21hdGNo X25hbWUoIklOVDM0OTYiLCBOVUxMLCAtMSk7CiAJCWlmIChuYW1lKSB7CiAJCQlpbmZvLT5pZF9l eHRjb24gPSBleHRjb25fZ2V0X2V4dGNvbl9kZXYobmFtZSk7Ci0JCQlpZiAoIWluZm8tPmlkX2V4 dGNvbikKLQkJCQlyZXR1cm4gLUVQUk9CRV9ERUZFUjsKKwkJCWlmIChJU19FUlIoaW5mby0+aWRf ZXh0Y29uKSkKKwkJCQlyZXR1cm4gUFRSX0VSUihpbmZvLT5pZF9leHRjb24pOwogCiAJCQlkZXZf aW5mbyhkZXYsICJjb250cm9sbGluZyBVU0Igcm9sZVxuIik7CiAJCX0gZWxzZSB7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2V4dGNvbi9leHRjb24uYyBiL2RyaXZlcnMvZXh0Y29uL2V4dGNvbi5jCmlu ZGV4IDVhYjA0OThiZTY1Mi4uMmJkMGYyZjMzZjA1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2V4dGNv bi9leHRjb24uYworKysgYi9kcml2ZXJzL2V4dGNvbi9leHRjb24uYwpAQCAtODg0LDcgKzg4NCw3 IEBAIHN0cnVjdCBleHRjb25fZGV2ICpleHRjb25fZ2V0X2V4dGNvbl9kZXYoY29uc3QgY2hhciAq ZXh0Y29uX25hbWUpCiAJCWlmICghc3RyY21wKHNkLT5uYW1lLCBleHRjb25fbmFtZSkpCiAJCQln b3RvIG91dDsKIAl9Ci0Jc2QgPSBOVUxMOworCXNkID0gRVJSX1BUUigtRVBST0JFX0RFRkVSKTsK IG91dDoKIAltdXRleF91bmxvY2soJmV4dGNvbl9kZXZfbGlzdF9sb2NrKTsKIAlyZXR1cm4gc2Q7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Bvd2VyL3N1cHBseS9heHAyODhfY2hhcmdlci5jIGIvZHJp dmVycy9wb3dlci9zdXBwbHkvYXhwMjg4X2NoYXJnZXIuYwppbmRleCA3MzU2NThlZTFjNjAuLjg1 NTg1NzdmY2NmNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9wb3dlci9zdXBwbHkvYXhwMjg4X2NoYXJn ZXIuYworKysgYi9kcml2ZXJzL3Bvd2VyL3N1cHBseS9heHAyODhfY2hhcmdlci5jCkBAIC03Njgs MTcgKzc2OCwxNyBAQCBzdGF0aWMgaW50IGF4cDI4OF9jaGFyZ2VyX3Byb2JlKHN0cnVjdCBwbGF0 Zm9ybV9kZXZpY2UgKnBkZXYpCiAJaW5mby0+cmVnbWFwX2lycWMgPSBheHAyMHgtPnJlZ21hcF9p cnFjOwogCiAJaW5mby0+Y2FibGUuZWRldiA9IGV4dGNvbl9nZXRfZXh0Y29uX2RldihBWFAyODhf RVhUQ09OX0RFVl9OQU1FKTsKLQlpZiAoaW5mby0+Y2FibGUuZWRldiA9PSBOVUxMKSB7CisJaWYg KElTX0VSUihpbmZvLT5jYWJsZS5lZGV2KSkgewogCQlkZXZfZGJnKCZwZGV2LT5kZXYsICIlcyBp cyBub3QgcmVhZHksIHByb2JlIGRlZmVycmVkXG4iLAogCQkJQVhQMjg4X0VYVENPTl9ERVZfTkFN RSk7Ci0JCXJldHVybiAtRVBST0JFX0RFRkVSOworCQlyZXR1cm4gUFRSX0VSUihpbmZvLT5jYWJs ZS5lZGV2KTsKIAl9CiAKIAlpZiAoYWNwaV9kZXZfcHJlc2VudChVU0JfSE9TVF9FWFRDT05fSElE LCBOVUxMLCAtMSkpIHsKIAkJaW5mby0+b3RnLmNhYmxlID0gZXh0Y29uX2dldF9leHRjb25fZGV2 KFVTQl9IT1NUX0VYVENPTl9OQU1FKTsKLQkJaWYgKGluZm8tPm90Zy5jYWJsZSA9PSBOVUxMKSB7 CisJCWlmIChJU19FUlIoaW5mby0+b3RnLmNhYmxlKSkgewogCQkJZGV2X2RiZyhkZXYsICJFWFRD T05fVVNCX0hPU1QgaXMgbm90IHJlYWR5LCBwcm9iZSBkZWZlcnJlZFxuIik7Ci0JCQlyZXR1cm4g LUVQUk9CRV9ERUZFUjsKKwkJCXJldHVybiBQVFJfRVJSKGluZm8tPm90Zy5jYWJsZSk7CiAJCX0K IAkJZGV2X2luZm8oJnBkZXYtPmRldiwKIAkJCSAiVXNpbmcgIiBVU0JfSE9TVF9FWFRDT05fSElE ICIgZXh0Y29uIGZvciB1c2ItaWRcbiIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvcGh5L3Bo eS1vbWFwLW90Zy5jIGIvZHJpdmVycy91c2IvcGh5L3BoeS1vbWFwLW90Zy5jCmluZGV4IGVlMDg2 M2M2NTUzZS4uNjA1MzE0ZGRjZDNkIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9waHkvcGh5LW9t YXAtb3RnLmMKKysrIGIvZHJpdmVycy91c2IvcGh5L3BoeS1vbWFwLW90Zy5jCkBAIC05MSwxMiAr OTEsMTIgQEAgc3RhdGljIGludCBvbWFwX290Z19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNl ICpwZGV2KQogCWludCByZXQ7CiAJdTMyIHJldjsKIAotCWlmICghY29uZmlnIHx8ICFjb25maWct PmV4dGNvbikKKwlpZiAoIWNvbmZpZykKIAkJcmV0dXJuIC1FTk9ERVY7CiAKIAlleHRjb24gPSBl eHRjb25fZ2V0X2V4dGNvbl9kZXYoY29uZmlnLT5leHRjb24pOwotCWlmICghZXh0Y29uKQotCQly ZXR1cm4gLUVQUk9CRV9ERUZFUjsKKwlpZiAoSVNfRVJSKGV4dGNvbikpCisJCXJldHVybiBQVFJf RVJSKGV4dGNvbik7CiAKIAlvdGdfZGV2ID0gZGV2bV9remFsbG9jKCZwZGV2LT5kZXYsIHNpemVv Zigqb3RnX2RldiksIEdGUF9LRVJORUwpOwogCWlmICghb3RnX2RldikKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvdXNiL3R5cGVjL3RjcG0vZnVzYjMwMi5jIGIvZHJpdmVycy91c2IvdHlwZWMvdGNwbS9m dXNiMzAyLmMKaW5kZXggNDNiNjRkOTMwOWQwLi42ZDMzMjA2NjIwMmIgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvdXNiL3R5cGVjL3RjcG0vZnVzYjMwMi5jCisrKyBiL2RyaXZlcnMvdXNiL3R5cGVjL3Rj cG0vZnVzYjMwMi5jCkBAIC0xNzY3LDggKzE3NjcsOCBAQCBzdGF0aWMgaW50IGZ1c2IzMDJfcHJv YmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwKIAkgKi8KIAlpZiAoZGV2aWNlX3Byb3BlcnR5 X3JlYWRfc3RyaW5nKGRldiwgImZjcyxleHRjb24tbmFtZSIsICZuYW1lKSA9PSAwKSB7CiAJCWNo aXAtPmV4dGNvbiA9IGV4dGNvbl9nZXRfZXh0Y29uX2RldihuYW1lKTsKLQkJaWYgKCFjaGlwLT5l eHRjb24pCi0JCQlyZXR1cm4gLUVQUk9CRV9ERUZFUjsKKwkJaWYgKElTX0VSUihjaGlwLT5leHRj b24pKQorCQkJcmV0dXJuIFBUUl9FUlIoY2hpcC0+ZXh0Y29uKTsKIAl9CiAKIAljaGlwLT52YnVz ID0gZGV2bV9yZWd1bGF0b3JfZ2V0KGNoaXAtPmRldiwgInZidXMiKTsK