|
|
Log in / Subscribe / Register

hwmon: pmbus: Add ltc4286 driver

From:  Delphine_CC_Chiu/WYHQ/Wiwynn <Delphine_CC_Chiu-AT-wiwynn.com>
To:  Guenter Roeck <linux-AT-roeck-us.net>, Andi Shyti <andi.shyti-AT-kernel.org>
Subject:  RE: [PATCH v1 2/2] hwmon: pmbus: Add ltc4286 driver
Date:  Mon, 24 Jul 2023 02:07:29 +0000
Message-ID:  <SG2PR04MB55437958DA809DE1B23970DDA102A@SG2PR04MB5543.apcprd04.prod.outlook.com>
Cc:  "patrick-AT-stwcx.xyz" <patrick-AT-stwcx.xyz>, Jean Delvare <jdelvare-AT-suse.com>, Rob Herring <robh+dt-AT-kernel.org>, Krzysztof Kozlowski <krzysztof.kozlowski+dt-AT-linaro.org>, "linux-i2c-AT-vger.kernel.org" <linux-i2c-AT-vger.kernel.org>, "linux-hwmon-AT-vger.kernel.org" <linux-hwmon-AT-vger.kernel.org>, "devicetree-AT-vger.kernel.org" <devicetree-AT-vger.kernel.org>, "linux-kernel-AT-vger.kernel.org" <linux-kernel-AT-vger.kernel.org>
Archive-link:  Article

> -----Original Message-----
> From: Guenter Roeck <groeck7@gmail.com> On Behalf Of Guenter Roeck
> Sent: Tuesday, April 25, 2023 10:09 PM
> To: Andi Shyti <andi.shyti@kernel.org>; Delphine_CC_Chiu/WYHQ/Wiwynn
> <Delphine_CC_Chiu@wiwynn.com>
> Cc: patrick@stwcx.xyz; Jean Delvare <jdelvare@suse.com>; Rob Herring
> <robh+dt@kernel.org>; Krzysztof Kozlowski
> <krzysztof.kozlowski+dt@linaro.org>; linux-i2c@vger.kernel.org;
> linux-hwmon@vger.kernel.org; devicetree@vger.kernel.org;
> linux-kernel@vger.kernel.org
> Subject: Re: [PATCH v1 2/2] hwmon: pmbus: Add ltc4286 driver
> 
>   Security Reminder: Please be aware that this email is sent by an external
> sender.
> 
> On 4/25/23 06:45, Andi Shyti wrote:
> > Hi Delphine,
> >
> > On top of Guenter's comments,
> >
> > [...]
> >
> >> +config SENSORS_LTC4286
> >> +    bool "Linear Technologies LTC4286"
> >> +    help
> >> +      If you say yes here you get hardware monitoring support for Linear
> >> +      Technology LTC4286.
> >
> > could you add a couple of words more here?
> >
> > [...]
> >
> >> +static int ltc4286_probe(struct i2c_client *client,
> >> +                     const struct i2c_device_id *id) {
> >> +    int ret;
> >> +    u8 block_buffer[I2C_SMBUS_BLOCK_MAX + 1];
> >> +    struct device *dev = &client->dev;
> >> +    struct pmbus_driver_info *info;
> >> +    u32 rsense;
> >> +
> >> +    ret = i2c_smbus_read_block_data(client, PMBUS_MFR_ID,
> block_buffer);
> >> +    if (ret < 0) {
> >> +            dev_err(&client->dev, "failed to read manufacturer
> >> + id\n");
> >
> > you can use dev_err_probe() here:
> >
> >       return dev_err_probe(&client->dev, err, "failed to read
> > manufacturer id\n");
> >
> >> +            return ret;
> >> +    }
> >> +
> >> +    /* Refer to ltc4286 datasheet page 20
> >> +     * the default manufacturer id is LTC
> >> +     */
> >> +    if (ret != LTC4286_MFR_ID_SIZE ||
> >> +        strncmp(block_buffer, "LTC", LTC4286_MFR_ID_SIZE)) {
> >> +            dev_err(&client->dev, "unsupported manufacturer id\n");
> >> +            return -ENODEV;
> >> +    }
> >> +
> >> +    ret = i2c_smbus_read_block_data(client, PMBUS_MFR_MODEL,
> block_buffer);
> >> +    if (ret < 0) {
> >> +            dev_err(&client->dev, "failed to read manufacturer
> model\n");
> >> +            return ret;
> >> +    }
> >
> > Is this read really needed?
> >
> 
> It only makes sense if the returned string is actually validated.
> Otherwise no.
> 
> Guenter
We will add comaprision here.
for (mid = ltc4286_id; mid->name[0]; mid++) {
	if (!strncasecmp(mid->name, block_buffer, strlen(mid->name)))
		break;
}


Copyright © 2023, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds