Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

pinctrl: mcp23s08: Improve error messaging in ->probe()

Print particular message in each of error case in the ->probe().
While here, use dev_err_probe() for that.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20200828103235.78380-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

authored by

Andy Shevchenko and committed by
Linus Walleij
ebc25991 d32f38f2

+12 -13
+12 -13
drivers/pinctrl/pinctrl-mcp23s08.c
··· 564 564 565 565 ret = mcp_read(mcp, MCP_IOCON, &status); 566 566 if (ret < 0) 567 - goto fail; 567 + return dev_err_probe(dev, ret, "can't identify chip %d\n", addr); 568 568 569 569 mcp->irq_controller = 570 570 device_property_read_bool(dev, "interrupt-controller"); ··· 598 598 599 599 ret = mcp_write(mcp, MCP_IOCON, status); 600 600 if (ret < 0) 601 - goto fail; 601 + return dev_err_probe(dev, ret, "can't write IOCON %d\n", addr); 602 602 } 603 603 604 604 if (mcp->irq && mcp->irq_controller) { ··· 616 616 617 617 ret = devm_gpiochip_add_data(dev, &mcp->chip, mcp); 618 618 if (ret < 0) 619 - goto fail; 619 + return dev_err_probe(dev, ret, "can't add GPIO chip\n"); 620 620 621 621 mcp->pinctrl_desc.pctlops = &mcp_pinctrl_ops; 622 622 mcp->pinctrl_desc.confops = &mcp_pinconf_ops; ··· 628 628 mcp->pinctrl_desc.owner = THIS_MODULE; 629 629 630 630 mcp->pctldev = devm_pinctrl_register(dev, &mcp->pinctrl_desc, mcp); 631 - if (IS_ERR(mcp->pctldev)) { 632 - ret = PTR_ERR(mcp->pctldev); 633 - goto fail; 631 + if (IS_ERR(mcp->pctldev)) 632 + return dev_err_probe(dev, PTR_ERR(mcp->pctldev), "can't register controller\n"); 633 + 634 + if (mcp->irq) { 635 + ret = mcp23s08_irq_setup(mcp); 636 + if (ret) 637 + return dev_err_probe(dev, ret, "can't setup IRQ\n"); 634 638 } 635 639 636 - if (mcp->irq) 637 - ret = mcp23s08_irq_setup(mcp); 638 - 639 - fail: 640 - if (ret < 0) 641 - dev_dbg(dev, "can't setup chip %d, --> %d\n", addr, ret); 642 - return ret; 640 + return 0; 643 641 } 644 642 EXPORT_SYMBOL_GPL(mcp23s08_probe_one); 643 + 645 644 MODULE_LICENSE("GPL");