* Re: [PATCH 2/2] pinctrl: mcp23s08: Simplify probe()
@ 2023-09-02 23:59 kernel test robot
0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2023-09-02 23:59 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Dan Carpenter
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20230902090937.32195-3-biju.das.jz@bp.renesas.com>
References: <20230902090937.32195-3-biju.das.jz@bp.renesas.com>
TO: Biju Das <biju.das.jz@bp.renesas.com>
TO: Linus Walleij <linus.walleij@linaro.org>
CC: Biju Das <biju.das.jz@bp.renesas.com>
CC: linux-gpio@vger.kernel.org
CC: linux-kernel@vger.kernel.org
CC: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Hi Biju,
kernel test robot noticed the following build warnings:
[auto build test WARNING on linusw-pinctrl/devel]
[also build test WARNING on linusw-pinctrl/for-next linus/master v6.5 next-20230831]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Biju-Das/pinctrl-mcp23s08-Extend-match-support-for-OF-tables/20230902-171023
base: https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl.git devel
patch link: https://lore.kernel.org/r/20230902090937.32195-3-biju.das.jz%40bp.renesas.com
patch subject: [PATCH 2/2] pinctrl: mcp23s08: Simplify probe()
:::::: branch date: 15 hours ago
:::::: commit date: 15 hours ago
config: i386-randconfig-141-20230902 (https://download.01.org/0day-ci/archive/20230903/202309030751.GQvtrZnS-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce: (https://download.01.org/0day-ci/archive/20230903/202309030751.GQvtrZnS-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202309030751.GQvtrZnS-lkp@intel.com/
smatch warnings:
drivers/pinctrl/pinctrl-mcp23s08_i2c.c:33 mcp230xx_probe() error: we previously assumed 'info' could be null (see line 31)
vim +/info +33 drivers/pinctrl/pinctrl-mcp23s08_i2c.c
b5f259f6fc5912 Biju Das 2023-09-02 18
8bb5811129f9e4 Uwe Kleine-König 2022-11-18 19 static int mcp230xx_probe(struct i2c_client *client)
0f04a81784fe3d Andy Shevchenko 2020-04-07 20 {
b5f259f6fc5912 Biju Das 2023-09-02 21 const struct mcp23s08_i2c_info *info;
0f04a81784fe3d Andy Shevchenko 2020-04-07 22 struct device *dev = &client->dev;
0f04a81784fe3d Andy Shevchenko 2020-04-07 23 struct mcp23s08 *mcp;
0f04a81784fe3d Andy Shevchenko 2020-04-07 24 int ret;
0f04a81784fe3d Andy Shevchenko 2020-04-07 25
0f04a81784fe3d Andy Shevchenko 2020-04-07 26 mcp = devm_kzalloc(dev, sizeof(*mcp), GFP_KERNEL);
0f04a81784fe3d Andy Shevchenko 2020-04-07 27 if (!mcp)
0f04a81784fe3d Andy Shevchenko 2020-04-07 28 return -ENOMEM;
0f04a81784fe3d Andy Shevchenko 2020-04-07 29
b5f259f6fc5912 Biju Das 2023-09-02 30 info = i2c_get_match_data(client);
b5f259f6fc5912 Biju Das 2023-09-02 @31 if (!info)
b5f259f6fc5912 Biju Das 2023-09-02 32 return dev_err_probe(dev, -EINVAL, "invalid device type (%d)\n",
b5f259f6fc5912 Biju Das 2023-09-02 @33 info->type);
0f04a81784fe3d Andy Shevchenko 2020-04-07 34
b5f259f6fc5912 Biju Das 2023-09-02 35 mcp->reg_shift = info->reg_shift;
b5f259f6fc5912 Biju Das 2023-09-02 36 mcp->chip.ngpio = info->ngpio;
b5f259f6fc5912 Biju Das 2023-09-02 37 mcp->chip.label = info->label;
b5f259f6fc5912 Biju Das 2023-09-02 38 mcp->regmap = devm_regmap_init_i2c(client, info->regmap);
0f04a81784fe3d Andy Shevchenko 2020-04-07 39 if (IS_ERR(mcp->regmap))
0f04a81784fe3d Andy Shevchenko 2020-04-07 40 return PTR_ERR(mcp->regmap);
0f04a81784fe3d Andy Shevchenko 2020-04-07 41
0f04a81784fe3d Andy Shevchenko 2020-04-07 42 mcp->irq = client->irq;
0f04a81784fe3d Andy Shevchenko 2020-04-07 43 mcp->pinctrl_desc.name = "mcp23xxx-pinctrl";
0f04a81784fe3d Andy Shevchenko 2020-04-07 44
b5f259f6fc5912 Biju Das 2023-09-02 45 ret = mcp23s08_probe_one(mcp, dev, client->addr, info->type, -1);
0f04a81784fe3d Andy Shevchenko 2020-04-07 46 if (ret)
0f04a81784fe3d Andy Shevchenko 2020-04-07 47 return ret;
0f04a81784fe3d Andy Shevchenko 2020-04-07 48
0f04a81784fe3d Andy Shevchenko 2020-04-07 49 i2c_set_clientdata(client, mcp);
0f04a81784fe3d Andy Shevchenko 2020-04-07 50
0f04a81784fe3d Andy Shevchenko 2020-04-07 51 return 0;
0f04a81784fe3d Andy Shevchenko 2020-04-07 52 }
0f04a81784fe3d Andy Shevchenko 2020-04-07 53
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 4+ messages in thread* [PATCH 0/2] Match data improvements for mcp23s08 driver @ 2023-09-02 9:09 Biju Das 2023-09-02 9:09 ` [PATCH 2/2] pinctrl: mcp23s08: Simplify probe() Biju Das 0 siblings, 1 reply; 4+ messages in thread From: Biju Das @ 2023-09-02 9:09 UTC (permalink / raw) To: Linus Walleij Cc: Biju Das, linux-gpio, linux-kernel, Biju Das, Andy Shevchenko This patch series aims to add match data improvements for mcp23s08 driver. This patch series is only compile tested. Biju Das (2): pinctrl: mcp23s08: Extend match support for OF tables pinctrl: mcp23s08: Simplify probe() drivers/pinctrl/pinctrl-mcp23s08_i2c.c | 102 ++++++++++++------------- 1 file changed, 50 insertions(+), 52 deletions(-) -- 2.25.1 ^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 2/2] pinctrl: mcp23s08: Simplify probe() 2023-09-02 9:09 [PATCH 0/2] Match data improvements for mcp23s08 driver Biju Das @ 2023-09-02 9:09 ` Biju Das 2023-09-04 9:12 ` Andy Shevchenko 2023-09-05 11:31 ` Dan Carpenter 0 siblings, 2 replies; 4+ messages in thread From: Biju Das @ 2023-09-02 9:09 UTC (permalink / raw) To: Linus Walleij Cc: Biju Das, linux-gpio, linux-kernel, Biju Das, Andy Shevchenko Add struct mcp23s08_i2c_info and simplify probe() by replacing match data 'type' with 'struct mcp23s08_i2c_info'. While at it, replace dev_err()->dev_err_probe(). Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com> --- drivers/pinctrl/pinctrl-mcp23s08_i2c.c | 102 ++++++++++++------------- 1 file changed, 50 insertions(+), 52 deletions(-) diff --git a/drivers/pinctrl/pinctrl-mcp23s08_i2c.c b/drivers/pinctrl/pinctrl-mcp23s08_i2c.c index 393d9b099cc5..61e92f68ec95 100644 --- a/drivers/pinctrl/pinctrl-mcp23s08_i2c.c +++ b/drivers/pinctrl/pinctrl-mcp23s08_i2c.c @@ -8,10 +8,18 @@ #include "pinctrl-mcp23s08.h" +struct mcp23s08_i2c_info { + const struct regmap_config *regmap; + const char *label; + unsigned int type; + u16 ngpio; + bool reg_shift; +}; + static int mcp230xx_probe(struct i2c_client *client) { + const struct mcp23s08_i2c_info *info; struct device *dev = &client->dev; - unsigned int type; struct mcp23s08 *mcp; int ret; @@ -19,41 +27,22 @@ static int mcp230xx_probe(struct i2c_client *client) if (!mcp) return -ENOMEM; - type = (uintptr_t)i2c_get_match_data(client); - switch (type) { - case MCP_TYPE_008: - mcp->regmap = devm_regmap_init_i2c(client, &mcp23x08_regmap); - mcp->reg_shift = 0; - mcp->chip.ngpio = 8; - mcp->chip.label = "mcp23008"; - break; - - case MCP_TYPE_017: - mcp->regmap = devm_regmap_init_i2c(client, &mcp23x17_regmap); - mcp->reg_shift = 1; - mcp->chip.ngpio = 16; - mcp->chip.label = "mcp23017"; - break; - - case MCP_TYPE_018: - mcp->regmap = devm_regmap_init_i2c(client, &mcp23x17_regmap); - mcp->reg_shift = 1; - mcp->chip.ngpio = 16; - mcp->chip.label = "mcp23018"; - break; - - default: - dev_err(dev, "invalid device type (%d)\n", type); - return -EINVAL; - } + info = i2c_get_match_data(client); + if (!info) + return dev_err_probe(dev, -EINVAL, "invalid device type (%d)\n", + info->type); + mcp->reg_shift = info->reg_shift; + mcp->chip.ngpio = info->ngpio; + mcp->chip.label = info->label; + mcp->regmap = devm_regmap_init_i2c(client, info->regmap); if (IS_ERR(mcp->regmap)) return PTR_ERR(mcp->regmap); mcp->irq = client->irq; mcp->pinctrl_desc.name = "mcp23xxx-pinctrl"; - ret = mcp23s08_probe_one(mcp, dev, client->addr, type, -1); + ret = mcp23s08_probe_one(mcp, dev, client->addr, info->type, -1); if (ret) return ret; @@ -62,36 +51,45 @@ static int mcp230xx_probe(struct i2c_client *client) return 0; } +static const struct mcp23s08_i2c_info mcp23s08_i2c_0008 = { + .regmap = &mcp23x08_regmap, + .label = "mcp23008", + .type = MCP_TYPE_008, + .ngpio = 8, + .reg_shift = 0, +}; + +static const struct mcp23s08_i2c_info mcp23s08_i2c_0017 = { + .regmap = &mcp23x17_regmap, + .label = "mcp23017", + .type = MCP_TYPE_017, + .ngpio = 16, + .reg_shift = 1, +}; + +static const struct mcp23s08_i2c_info mcp23s08_i2c_0018 = { + .regmap = &mcp23x17_regmap, + .label = "mcp23018", + .type = MCP_TYPE_018, + .ngpio = 16, + .reg_shift = 1, +}; + static const struct i2c_device_id mcp230xx_id[] = { - { "mcp23008", MCP_TYPE_008 }, - { "mcp23017", MCP_TYPE_017 }, - { "mcp23018", MCP_TYPE_018 }, + { "mcp23008", (kernel_ulong_t)&mcp23s08_i2c_0008 }, + { "mcp23017", (kernel_ulong_t)&mcp23s08_i2c_0017 }, + { "mcp23018", (kernel_ulong_t)&mcp23s08_i2c_0018 }, { } }; MODULE_DEVICE_TABLE(i2c, mcp230xx_id); static const struct of_device_id mcp23s08_i2c_of_match[] = { - { - .compatible = "microchip,mcp23008", - .data = (void *) MCP_TYPE_008, - }, - { - .compatible = "microchip,mcp23017", - .data = (void *) MCP_TYPE_017, - }, - { - .compatible = "microchip,mcp23018", - .data = (void *) MCP_TYPE_018, - }, + { .compatible = "microchip,mcp23008", .data = &mcp23s08_i2c_0008 }, + { .compatible = "microchip,mcp23017", .data = &mcp23s08_i2c_0017 }, + { .compatible = "microchip,mcp23018", .data = &mcp23s08_i2c_0018 }, /* NOTE: The use of the mcp prefix is deprecated and will be removed. */ - { - .compatible = "mcp,mcp23008", - .data = (void *) MCP_TYPE_008, - }, - { - .compatible = "mcp,mcp23017", - .data = (void *) MCP_TYPE_017, - }, + { .compatible = "mcp,mcp23008", .data = &mcp23s08_i2c_0008 }, + { .compatible = "mcp,mcp23017", .data = &mcp23s08_i2c_0017 }, { } }; MODULE_DEVICE_TABLE(of, mcp23s08_i2c_of_match); -- 2.25.1 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 2/2] pinctrl: mcp23s08: Simplify probe() 2023-09-02 9:09 ` [PATCH 2/2] pinctrl: mcp23s08: Simplify probe() Biju Das @ 2023-09-04 9:12 ` Andy Shevchenko 2023-09-05 11:31 ` Dan Carpenter 1 sibling, 0 replies; 4+ messages in thread From: Andy Shevchenko @ 2023-09-04 9:12 UTC (permalink / raw) To: Biju Das; +Cc: Linus Walleij, linux-gpio, linux-kernel, Biju Das On Sat, Sep 02, 2023 at 10:09:37AM +0100, Biju Das wrote: > Add struct mcp23s08_i2c_info and simplify probe() by replacing > match data 'type' with 'struct mcp23s08_i2c_info'. > > While at it, replace dev_err()->dev_err_probe(). '->' --> ' --> ' ... > + info = i2c_get_match_data(client); > + if (!info) > + return dev_err_probe(dev, -EINVAL, "invalid device type (%d)\n", > + info->type); Huh?! Please, think about it... -- With Best Regards, Andy Shevchenko ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 2/2] pinctrl: mcp23s08: Simplify probe() 2023-09-02 9:09 ` [PATCH 2/2] pinctrl: mcp23s08: Simplify probe() Biju Das 2023-09-04 9:12 ` Andy Shevchenko @ 2023-09-05 11:31 ` Dan Carpenter 1 sibling, 0 replies; 4+ messages in thread From: Dan Carpenter @ 2023-09-05 11:31 UTC (permalink / raw) To: oe-kbuild, Biju Das, Linus Walleij Cc: lkp, oe-kbuild-all, Biju Das, linux-gpio, linux-kernel, Andy Shevchenko Hi Biju, kernel test robot noticed the following build warnings: https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Biju-Das/pinctrl-mcp23s08-Extend-match-support-for-OF-tables/20230902-171023 base: https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl.git devel patch link: https://lore.kernel.org/r/20230902090937.32195-3-biju.das.jz%40bp.renesas.com patch subject: [PATCH 2/2] pinctrl: mcp23s08: Simplify probe() config: i386-randconfig-141-20230902 (https://download.01.org/0day-ci/archive/20230903/202309030751.GQvtrZnS-lkp@intel.com/config) compiler: gcc-12 (Debian 12.2.0-14) 12.2.0 reproduce: (https://download.01.org/0day-ci/archive/20230903/202309030751.GQvtrZnS-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@intel.com> | Reported-by: Dan Carpenter <dan.carpenter@linaro.org> | Closes: https://lore.kernel.org/r/202309030751.GQvtrZnS-lkp@intel.com/ smatch warnings: drivers/pinctrl/pinctrl-mcp23s08_i2c.c:33 mcp230xx_probe() error: we previously assumed 'info' could be null (see line 31) vim +/info +33 drivers/pinctrl/pinctrl-mcp23s08_i2c.c 8bb5811129f9e4 Uwe Kleine-König 2022-11-18 19 static int mcp230xx_probe(struct i2c_client *client) 0f04a81784fe3d Andy Shevchenko 2020-04-07 20 { b5f259f6fc5912 Biju Das 2023-09-02 21 const struct mcp23s08_i2c_info *info; 0f04a81784fe3d Andy Shevchenko 2020-04-07 22 struct device *dev = &client->dev; 0f04a81784fe3d Andy Shevchenko 2020-04-07 23 struct mcp23s08 *mcp; 0f04a81784fe3d Andy Shevchenko 2020-04-07 24 int ret; 0f04a81784fe3d Andy Shevchenko 2020-04-07 25 0f04a81784fe3d Andy Shevchenko 2020-04-07 26 mcp = devm_kzalloc(dev, sizeof(*mcp), GFP_KERNEL); 0f04a81784fe3d Andy Shevchenko 2020-04-07 27 if (!mcp) 0f04a81784fe3d Andy Shevchenko 2020-04-07 28 return -ENOMEM; 0f04a81784fe3d Andy Shevchenko 2020-04-07 29 b5f259f6fc5912 Biju Das 2023-09-02 30 info = i2c_get_match_data(client); b5f259f6fc5912 Biju Das 2023-09-02 @31 if (!info) b5f259f6fc5912 Biju Das 2023-09-02 32 return dev_err_probe(dev, -EINVAL, "invalid device type (%d)\n", b5f259f6fc5912 Biju Das 2023-09-02 @33 info->type); ^^^^^^^^^^ info is NULL. 0f04a81784fe3d Andy Shevchenko 2020-04-07 34 b5f259f6fc5912 Biju Das 2023-09-02 35 mcp->reg_shift = info->reg_shift; -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2023-09-05 16:20 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-09-02 23:59 [PATCH 2/2] pinctrl: mcp23s08: Simplify probe() kernel test robot -- strict thread matches above, loose matches on Subject: below -- 2023-09-02 9:09 [PATCH 0/2] Match data improvements for mcp23s08 driver Biju Das 2023-09-02 9:09 ` [PATCH 2/2] pinctrl: mcp23s08: Simplify probe() Biju Das 2023-09-04 9:12 ` Andy Shevchenko 2023-09-05 11:31 ` Dan Carpenter
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.