Re: [PATCH] hwmon: Consider LM64 temperature offset

From: Guenter Roeck
Date: Tue Feb 08 2011 - 11:08:34 EST


On Tue, Feb 08, 2011 at 10:54:52AM -0500, Eibach, Dirk wrote:
>
> Dear Guenter,
>
> > Chip id is already detected in lm63_detect. You don't need to
> > detect it again.
> > The more common approach would be something along the line of
> > data->kind = id->driver_data;
> > You would then use
> > if (data->kind == lm64)
> > throughout the code. In addition to that, you could define
> > data->kind = id->driver_data;
> > if (data->kind == lm64)
> > data->offset = 16000;
> > which would save you the repeated recalculation of offset
> > as mentioned before.
>
> I don't understand, what structures "data" and "id" you are referring to
> here and where the fields driver_data and kind come from. I remember to
> have seen such in older kernels, but wasn't that replaced sometime ago?
>

static int lm63_probe(struct i2c_client *new_client,
const struct i2c_device_id *id)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
{
struct lm63_data *data;
^^^^^^^^^^^^^^^^^^^^^^
...
/* Set the device type */
data->kind = id->driver_data;

with

struct lm63_data {
...
int kind; // instead of is_lm64
...
};

id is from

static const struct i2c_device_id lm63_id[] = {
{ "lm63", lm63 },
{ "lm64", lm64 },
{ }
};

id->driver_data is thus either lm63 or lm64, depending on the chip type
detected in lm63_detect().

Thanks,
Guenter

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/