All of lore.kernel.org
 help / color / mirror / Atom feed
From: mhoffman@lightlink.com (Mark M. Hoffman)
To: lm-sensors@vger.kernel.org
Subject: adm1026 driver port for kernel 2.6.X
Date: Thu, 19 May 2005 06:25:20 +0000	[thread overview]
Message-ID: <20041022030806.GD9774@jupiter.solarsys.private> (raw)
In-Reply-To: <20041018210758.GB14960@penguincomputing.com>

Hi guys:

> >static ssize_t set_fan_min(struct device *dev, const char *buf,
> >		size_t count, int nr)
> >{
> >	struct i2c_client *client = to_i2c_client(dev);
> >	struct adm1026_data *data = i2c_get_clientdata(client);
> >	int     val;
> >
> >	down(&data->update_lock);
> >	val = simple_strtol(buf, NULL, 10);
> >	data->fan_min[nr] = FAN_TO_REG(val, data->fan_div[nr]);
> >	adm1026_write_value(client, ADM1026_REG_FAN_MIN(nr),
> >		data->fan_min[nr]);
> >	up(&data->update_lock);
> >	return count;
> >}

* Jean Delvare <khali@linux-fr.org> [2004-10-19 12:09:43 +0200]:
> I see no reason to use the update_lock semaphore here. Other I2C client
> drivers don't.

This particular function does need the lock: it prevents a race condition
between data->fan_min[n] and data->fan_div[n].  I.e. the two lines starting
with the one containing FAN_TO_REG must occur atomically w.r.t. the client
data structure.

Other drivers may not need it, *iff* they do *not* adjust the fan min/max
during the set_fan_div function.  This module does make that adjustment.

I think Phil P. was the first to add this code actually, and it was
something I copied into a couple other drivers (lm78 and asb100 I think).

Regards,

-- 
Mark M. Hoffman
mhoffman@lightlink.com

  parent reply	other threads:[~2005-05-19  6:25 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-05-19  6:25 adm1026 driver port for kernel 2.6.X Justin Thiessen
2005-05-19  6:25 ` Justin Thiessen
2005-05-19  6:25 ` Jean Delvare
2005-05-19  6:25 ` Jean Delvare
2005-05-19  6:25 ` Justin Thiessen
2005-05-19  6:25 ` Mark M. Hoffman [this message]
2005-05-19  6:25 ` Jean Delvare
2005-05-19  6:25 ` Justin Thiessen
2005-05-19  6:25 ` Jean Delvare
2005-05-19  6:25 ` Justin Thiessen
2004-11-02 16:46   ` adm1026 driver port for kernel 2.6.X - [REVISED DRIVER] Justin Thiessen
2005-05-19  6:25     ` Justin Thiessen
2004-11-02 19:31     ` Jean Delvare
2005-05-19  6:25       ` Jean Delvare
2004-11-02 22:17       ` Justin Thiessen
2005-05-19  6:25         ` Justin Thiessen
2004-11-03  8:01         ` Jean Delvare
2005-05-19  6:25           ` Jean Delvare
2004-11-03 16:43           ` adm1026 driver port for kernel 2.6.X - [RE-REVISED DRIVER] Justin Thiessen
2005-05-19  6:25             ` Justin Thiessen
2004-11-16 18:56             ` Jean Delvare
2005-05-19  6:25               ` Jean Delvare
2004-11-18 18:56             ` adm1026 driver port for kernel 2.6.10-rc2 " Justin Thiessen
2005-05-19  6:25               ` Justin Thiessen
2004-11-20  9:57               ` Jean Delvare
2005-05-19  6:25                 ` Jean Delvare
2004-11-22 19:35                 ` Justin Thiessen
2005-05-19  6:25                   ` Justin Thiessen
2004-11-20 10:13               ` Arjan van de Ven
2005-05-19  6:25                 ` Arjan van de Ven
2004-11-20 10:32                 ` Jean Delvare
2005-05-19  6:25                   ` Jean Delvare
2004-11-22 19:43                 ` Justin Thiessen
2005-05-19  6:25                   ` Justin Thiessen
2004-11-22 21:00                   ` Arjan van de Ven
2005-05-19  6:25                     ` Arjan van de Ven
2004-11-22 21:30                     ` linux-os
2005-05-19  6:25                       ` linux-os
2004-11-23 17:58                   ` Jean Delvare
2005-05-19  6:25                     ` Jean Delvare
2004-11-23 16:52               ` adm1026 driver port for kernel 2.6.10-rc2 (patch includes driver, patch to Kconfig, and patch to Makefile) Justin Thiessen
2005-05-19  6:25                 ` adm1026 driver port for kernel 2.6.10-rc2 (patch includes driver, Justin Thiessen
2004-11-23 17:50                 ` adm1026 driver port for kernel 2.6.10-rc2 (patch includes driver, patch to Kconfig, and patch to Makefile) Jean Delvare
2005-05-19  6:25                   ` adm1026 driver port for kernel 2.6.10-rc2 (patch includes Jean Delvare
2004-11-24 21:36                 ` adm1026 driver port for kernel 2.6.10-rc2 (patch includes driver, patch to Kconfig, and patch to Makefile) Greg KH
2005-05-19  6:25                   ` adm1026 driver port for kernel 2.6.10-rc2 (patch includes driver, Greg KH
2004-11-24 23:10                   ` adm1026 driver port for kernel 2.6.10-rc2 (patch includes driver, patch to Kconfig, and patch to Makefile) [fixed] Justin Thiessen
2005-05-19  6:25                     ` adm1026 driver port for kernel 2.6.10-rc2 (patch includes Justin Thiessen
2004-11-24 22:35                     ` adm1026 driver port for kernel 2.6.10-rc2 (patch includes driver, patch to Kconfig, and patch to Makefile) [fixed] Greg KH
2005-05-19  6:25                       ` adm1026 driver port for kernel 2.6.10-rc2 (patch includes driver, Greg KH
2005-05-19  6:25 ` adm1026 driver port for kernel 2.6.X Jean Delvare

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=20041022030806.GD9774@jupiter.solarsys.private \
    --to=mhoffman@lightlink.com \
    --cc=lm-sensors@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.