From: Andrew Morton <akpm@linux-foundation.org>
To: Andres Salomon <dilinger@queued.net>
Cc: linux-kernel@vger.kernel.org, cbou@mail.ru, dwmw2@infradead.org
Subject: Re: [PATCH 1/4] power_supply: Support serial number and ACR in olpc_battery
Date: Wed, 30 Apr 2008 14:48:36 -0700 [thread overview]
Message-ID: <20080430144836.3ac3b808.akpm@linux-foundation.org> (raw)
In-Reply-To: <20080430163002.3c768ae0@ephemeral>
On Wed, 30 Apr 2008 16:30:02 -0400
Andres Salomon <dilinger@queued.net> wrote:
> From: David Woodhouse <dwmw2@infradead.org>
>
> This adds serial number and accumulated current support to the OLPC
> battery driver.
>
> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
> Signed-off-by: Andres Salomon <dilinger@debian.org>
> ---
> drivers/power/olpc_battery.c | 23 ++++++++++++++++++++++-
> drivers/power/power_supply_sysfs.c | 1 +
> include/linux/power_supply.h | 1 +
> 3 files changed, 24 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/power/olpc_battery.c b/drivers/power/olpc_battery.c
> index ab1e828..9d9dd09 100644
> --- a/drivers/power/olpc_battery.c
> +++ b/drivers/power/olpc_battery.c
> @@ -19,7 +19,7 @@
>
> #define EC_BAT_VOLTAGE 0x10 /* uint16_t, *9.76/32, mV */
> #define EC_BAT_CURRENT 0x11 /* int16_t, *15.625/120, mA */
> -#define EC_BAT_ACR 0x12
> +#define EC_BAT_ACR 0x12 /* int16_t, *416.667, __Ah */
> #define EC_BAT_TEMP 0x13 /* uint16_t, *100/256, __C */
> #define EC_AMB_TEMP 0x14 /* uint16_t, *100/256, __C */
> #define EC_BAT_STATUS 0x15 /* uint8_t, bitmask */
> @@ -84,6 +84,8 @@ static struct power_supply olpc_ac = {
> .get_property = olpc_ac_get_prop,
> };
>
> +static char bat_serial[17]; /* Ick */
> +
> /*********************************************************************
> * Battery properties
> *********************************************************************/
> @@ -94,6 +96,7 @@ static int olpc_bat_get_property(struct power_supply *psy,
> int ret = 0;
> int16_t ec_word;
> uint8_t ec_byte;
> + uint64_t ser_buf;
>
> ret = olpc_ec_cmd(EC_BAT_STATUS, NULL, 0, &ec_byte, 1);
> if (ret)
> @@ -241,6 +244,22 @@ static int olpc_bat_get_property(struct power_supply *psy,
> ec_word = be16_to_cpu(ec_word);
> val->intval = ec_word * 100 / 256;
> break;
> + case POWER_SUPPLY_PROP_ACCUM_CURRENT:
> + ret = olpc_ec_cmd(EC_BAT_ACR, NULL, 0, (void *)&ec_word, 2);
> + if (ret)
> + return ret;
> +
> + ec_word = be16_to_cpu(ec_word);
> + val->intval = ec_word;
It would be cleaner to give ec_word the __be16 type and do
val->intval = be16_to_cpu(ec_word);
However I suspect that if that conversion were done fully, things would get
rather involved.
It's a shame that we didn't design the endianness suypport in a way which
the compiler could enforce - gcc's handling of small structs is (or was)
suboptimal. sparse should do it for us, but few run it, I expect.
next prev parent reply other threads:[~2008-04-30 21:50 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-30 20:30 [PATCH 1/4] power_supply: Support serial number and ACR in olpc_battery Andres Salomon
2008-04-30 21:48 ` Andrew Morton [this message]
2008-05-02 22:58 ` Anton Vorontsov
2008-05-04 5:31 ` Andres Salomon
2008-05-04 9:36 ` Anton Vorontsov
2008-05-04 13:55 ` Andres Salomon
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=20080430144836.3ac3b808.akpm@linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=cbou@mail.ru \
--cc=dilinger@queued.net \
--cc=dwmw2@infradead.org \
--cc=linux-kernel@vger.kernel.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 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.