From: Jean Delvare <khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org>
To: Minkyu Kang <mk7.kang-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
Cc: Trilok Soni <soni.trilok-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-pm-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org,
kyungmin.park-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org,
Anton Vorontsov <cbou-JGs/UdohzUI@public.gmane.org>,
Andrew Morton
<akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>,
linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH v2] add MAX17040 Fuel Gauge driver
Date: Thu, 4 Jun 2009 11:35:04 +0200 [thread overview]
Message-ID: <20090604113504.5370775b@hyperion.delvare> (raw)
In-Reply-To: <5d5443650906040216h2314b7bbt1ae2e89c709b566e-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
On Thu, 4 Jun 2009 14:46:45 +0530, Trilok Soni wrote:
> Hi Minkyu Kang,
>
> Adding linux-i2c mailing list, so not deleting any code.
>
> On Thu, Jun 4, 2009 at 2:25 PM, Minkyu Kang <mk7.kang-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> wrote:
> > The MAX17040 is a I2C interfaced Fuel Gauge systems for lithium-ion batteries
> > This patch adds support the MAX17040 Fuel Gauge
> >
> > Cc: Anton Vorontsov <cbou-JGs/UdohzUI@public.gmane.org>
> > Signed-off-by: Minkyu Kang <mk7.kang-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
> > ---
> > drivers/power/Kconfig | 8 +
> > drivers/power/Makefile | 3 +-
> > drivers/power/max17040_battery.c | 306 ++++++++++++++++++++++++++++++++++++++
> > include/linux/max17040_battery.h | 19 +++
> > 4 files changed, 335 insertions(+), 1 deletions(-)
> > create mode 100644 drivers/power/max17040_battery.c
> > create mode 100644 include/linux/max17040_battery.h
> > (...)
> > +static u8 max17040_read_reg(int reg)
> > +{
> > + int ret;
> > +
> > + ret = i2c_smbus_read_byte_data(max17040->client, reg);
> > +
> > + if (ret < 0) {
> > + dev_err(&max17040->client->dev,
> > + "%s: reg 0x%x, err %d\n",
> > + __func__, reg, ret);
> > + }
> > +
> > + return ret;
> > +}
In case of error, this will wrap the error code into a u8 and the
caller won't notice. So you'll return a random value, depending on the
actual error which happened. No good.
You should either return an int there, and have the caller check for
errors, or if you don't want to care about errors, return an arbitrary
value on error (e.g. 0.)
> > (...)
> > +static int __devinit max17040_probe(struct i2c_client *client,
> > + const struct i2c_device_id *id)
> > +{
> > + struct max17040_chip *chip;
> > + int ret;
> > +
> > + chip = kzalloc(sizeof(struct max17040_chip), GFP_KERNEL);
> > + if (!chip)
> > + return -ENOMEM;
> > +
> > + chip->client = client;
> > + pdata = client->dev.platform_data;
> > +
> > + i2c_set_clientdata(client, chip);
>
> Please add i2c_check_functionality check before doing any smbus
> read/write operations.
>
> > + max17040 = chip;
>
> This means that we support only one instance of this chip, right?
>
> > +
> > + max17040_reset();
> > +
> > + max17040_get_version();
> > +
> > + INIT_DELAYED_WORK_DEFERRABLE(&chip->work, max17040_work);
> > + schedule_delayed_work(&chip->work, MAX17040_DELAY);
> > +
> > + bat_ps.properties = max17040_battery_props;
> > + bat_ps.num_properties = ARRAY_SIZE(max17040_battery_props);
> > +
> > + ret = power_supply_register(&client->dev, &bat_ps);
> > + if (ret) {
> > + dev_err(&max17040->client->dev,
> > + "failed: power supply register\n");
> > + cancel_delayed_work(&chip->work);
> > + i2c_set_clientdata(client, NULL);
> > + kfree(chip);
> > + max17040 = NULL;
> > + return -1;
Please come up with a better error code.
> > + }
> > +
> > + return 0;
> > +}
--
Jean Delvare
next prev parent reply other threads:[~2009-06-04 9:35 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <4A278C08.5000206@samsung.com>
[not found] ` <4A278C08.5000206-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2009-06-04 9:16 ` [PATCH v2] add MAX17040 Fuel Gauge driver Trilok Soni
[not found] ` <5d5443650906040216h2314b7bbt1ae2e89c709b566e-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-06-04 9:35 ` Jean Delvare [this message]
[not found] ` <20090604113504.5370775b-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2009-06-04 10:55 ` Minkyu Kang
2009-06-04 10:47 ` Minkyu Kang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090604113504.5370775b@hyperion.delvare \
--to=khali-puyad+kwke1g9huczpvpmw@public.gmane.org \
--cc=akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org \
--cc=cbou-JGs/UdohzUI@public.gmane.org \
--cc=kyungmin.park-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org \
--cc=linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-pm-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
--cc=mk7.kang-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org \
--cc=soni.trilok-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).