[GIT PATCH] hwmon updates vs. 2.6.25-rc2

2008-02-21 Thread Mark M. Hoffman
Hi Linus:

Please pull from:
git://lm-sensors.org/kernel/mhoffman/hwmon-2.6.git release

You'll get one new driver, one bugfix (adm1026), a few cleanups and
enhancements.  This branch also includes the last of the patches which
add individual alarm sysfs files to all drivers (thank you Jean!).

Hopefully this is the last you'll hear from me before 2.6.25 final.

Thanks & regards,

 Documentation/hwmon/adt7473  |   79 +++
 Documentation/hwmon/coretemp |6 +-
 MAINTAINERS  |2 +-
 drivers/hwmon/Kconfig|   10 +
 drivers/hwmon/Makefile   |1 +
 drivers/hwmon/ad7418.c   |2 +-
 drivers/hwmon/adm1021.c  |6 +-
 drivers/hwmon/adm1025.c  |2 +-
 drivers/hwmon/adm1026.c  |4 +-
 drivers/hwmon/adm1029.c  |6 +-
 drivers/hwmon/adm1031.c  |2 +-
 drivers/hwmon/adm9240.c  |2 +-
 drivers/hwmon/ads7828.c  |2 +-
 drivers/hwmon/adt7470.c  |2 +-
 drivers/hwmon/adt7473.c  | 1157 ++
 drivers/hwmon/applesmc.c |   29 +-
 drivers/hwmon/asb100.c   |2 +-
 drivers/hwmon/atxp1.c|2 +-
 drivers/hwmon/coretemp.c |  119 +++--
 drivers/hwmon/dme1737.c  |2 +-
 drivers/hwmon/ds1621.c   |2 +-
 drivers/hwmon/f75375s.c  |2 +-
 drivers/hwmon/fscher.c   |2 +-
 drivers/hwmon/fschmd.c   |2 +-
 drivers/hwmon/fscpos.c   |2 +-
 drivers/hwmon/gl518sm.c  |2 +-
 drivers/hwmon/gl520sm.c  |2 +-
 drivers/hwmon/lm63.c |2 +-
 drivers/hwmon/lm75.c |2 +-
 drivers/hwmon/lm77.c |3 +-
 drivers/hwmon/lm78.c |4 +-
 drivers/hwmon/lm80.c |4 +-
 drivers/hwmon/lm83.c |6 +-
 drivers/hwmon/lm85.c |2 +-
 drivers/hwmon/lm87.c |2 +-
 drivers/hwmon/lm90.c |6 +-
 drivers/hwmon/lm92.c |   20 +-
 drivers/hwmon/lm93.c |2 +-
 drivers/hwmon/max1619.c  |   23 +-
 drivers/hwmon/max6650.c  |3 +-
 drivers/hwmon/smsc47m1.c |   25 +-
 drivers/hwmon/smsc47m192.c   |2 +-
 drivers/hwmon/thmc50.c   |8 +-
 drivers/hwmon/via686a.c  |   28 +
 drivers/hwmon/vt8231.c   |   44 ++-
 drivers/hwmon/w83781d.c  |4 +-
 drivers/hwmon/w83791d.c  |3 +-
 drivers/hwmon/w83792d.c  |3 +-
 drivers/hwmon/w83793.c   |3 +-
 drivers/hwmon/w83l785ts.c|2 +-
 drivers/hwmon/w83l786ng.c|2 +-
 51 files changed, 1534 insertions(+), 120 deletions(-)
 create mode 100644 Documentation/hwmon/adt7473
 create mode 100644 drivers/hwmon/adt7473.c

Darrick J. Wong (1):
  hwmon: New driver for Analog Devices ADT7473 sensor chip

Jean Delvare (6):
  hwmon: (lm92) Add individual alarm files
  hwmon: (max1619) Add individual alarm and fault files
  hwmon: (smsc47m1) Add individual alarm files
  hwmon: (via686a) Add individual alarm files
  hwmon: (vt8231) Add individual alarm files
  hwmon: (adm1026) Properly terminate sysfs groups

Mark M. Hoffman (1):
  hwmon: normal_i2c arrays should be const

Riki Oktarianto (1):
  hwmon: (applesmc) sensors set for MacBook2

Roger Lucas (1):
  hwmon: (vt8231) Update maintainer email address

Rudolf Marek (3):
  hwmon: (coretemp) Add maximum cooling temperature readout
  hwmon: (coretemp) Add TjMax detection for mobile CPUs
  hwmon: (coretemp) Add Penryn CPU to coretemp

Sam Ravnborg (1):
  hwmon: (coretemp) fix section mismatch warning

Tobias Klauser (1):
  hwmon: (thmc50) Storage class should be before const qualifier

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: [lm-sensors] [PATCH v2] adt7473: New driver for Analog Devices ADT7473 sensor chip

2008-02-18 Thread Mark M. Hoffman
Hi Darrick:

* Darrick J. Wong <[EMAIL PROTECTED]> [2008-02-18 13:33:23 -0800]:
> adt7473: New driver for Analog Devices ADT7473 sensor chip
> 
> This driver reports voltage, temperature and fan sensor readings
> on an ADT7473 chip.
> 
> Signed-off-by: Darrick J. Wong <[EMAIL PROTECTED]>
> ---
> 
>  Documentation/hwmon/adt7473 |   79 +++
>  drivers/hwmon/Kconfig   |   10 
>  drivers/hwmon/Makefile  |1 
>  drivers/hwmon/adt7473.c | 1157 
> +++
>  4 files changed, 1247 insertions(+), 0 deletions(-)
> 

Applied to hwmon-2.6.git/testing, thanks.

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: [lm-sensors] [PATCH] adt7473: New driver for Analog Devices ADT7473 sensor chip

2008-02-17 Thread Mark M. Hoffman
Hi Darrick:

Sorry this took forever for me to review.  Just a few little things...

* Darrick J. Wong <[EMAIL PROTECTED]> [2007-12-19 15:14:38 -0800]:
> This driver also had that funny alarm1/alarm2 thing; here's a revision
> of yesterday's patch with that straightened out.
> ---
> This driver reports voltage, temperature and fan sensor readings
> on an ADT7473 chip.
> 
> Signed-off-by: Darrick J. Wong <[EMAIL PROTECTED]>
> ---
> 
>  drivers/hwmon/Kconfig   |   10 
>  drivers/hwmon/Makefile  |1 
>  drivers/hwmon/adt7473.c | 1161 
> +++
>  3 files changed, 1172 insertions(+), 0 deletions(-)
> 

Documentation/hwmon/adt7473 would be nice.

> new file mode 100644
> index 000..5528d5c
> --- /dev/null
> +++ b/drivers/hwmon/adt7473.c
> @@ -0,0 +1,1161 @@

(snip)

> +/*
> + * On this chip, voltages are given as a count of steps between a minimum
> + * and maximum voltage, not a direct voltage.
> + */
> +static int volt_convert_table[][2] = {
> + {2997, 3},
> + {4395, 4},
> +};

That should be const.

(snip)

> +static ssize_t show_pwm_auto_temp(struct device *dev,
> +   struct device_attribute *devattr,
> +   char *buf)
> +{
> + struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
> + struct adt7473_data *data = adt7473_update_device(dev);
> + int bhvr = data->pwm_behavior[attr->index] >> ADT7473_PWM_BHVR_SHIFT;
> +
> + switch (bhvr) {
> + case 3:
> + case 4:
> + case 7:
> + return sprintf(buf, "0\n");
> + case 0:
> + case 1:
> + case 5:
> + case 6:
> + return sprintf(buf, "%d\n", bhvr + 1);
> + case 2:
> + return sprintf(buf, "4\n");
> + }
> + BUG();

Given ADT7473_PWM_BHVR_SHIFT is 5, this BUG() is obviously impossible.
But I guess it's not obvious to GCC.

(snip)

> +static int adt7473_attach_adapter(struct i2c_adapter *adapter)
> +{
> + /*
> +  * Some NVIDIA cards have an adt7473 attached to the on-board
> +  * i2c controller, but the i2c adapter driver in the binary
> +  * nvidia superblob driver sets class to 0.
> +  */
> + if (!(adapter->class & I2C_CLASS_HWMON) && adapter->class)
> + return 0;

NACK on that comment and associated code:  Jean Delvare submitted a
patch to NVIDIA over two years ago to fix their bug.  Apparently some
distros even carry his patch.  So, I don't want to encourage such a
hack to persist.  Please just do the standard check here.

> + return i2c_probe(adapter, &addr_data, adt7473_detect);
> +}

(snip)

Thanks & regards,

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: linux-next: first tree

2008-02-17 Thread Mark M. Hoffman
Hi Stephen:

* Stephen Rothwell <[EMAIL PROTECTED]> [2008-02-15 00:35:37 +1100]:
> I have created the first cut of the linux-next tree at
> git://git.kernel.org/pub/scm/linux/kernel/git/sfr/linux-next.git.
> 
> Things to know about this tree:
> 
> It has two branches - master and stable.  Stable is currently just Linus'
> tree and will never rebase.  Master will rebase on an almost daily basis
> (maybe slower at the start).
> 
> The tree consists of subsystem git and quilt trees.  Currently, the quilt
> trees are integrated by importing them into appropriately based git
> branches and then merging those branches.  This has the advantage that
> any conflict resolution will onlt have to happen once at the merge point
> rather than, possibly, sevveral times during the series.  However, I am
> considering just applying the quilt trees on top of the current tree
> to get a result more like Linus' tree - we will see. The git trees are
> obviously just merged.
> 
> Between each merge, the tree was built with both an allmodconfig for both
> powerpc and x86_64.
> 
> The tree currently contains:
>   Greg's driver-core, pci and usb quilt series (in that order)
>   Alasdair Kergon's device-mapper quilt tree
>   Jiri Kosina's hid git tree
>   Jean Delvare's i2c quilt tree
>   Randy Dunlap's kernel-doc quilt tree
>   Haavard Skinnemoen's avr32 git tree
> 
> There was only one unresolved conflict which could have been caused
> because I was not sure where to base the kernel-doc tree.
> 
> So, comments, please.
> 
> Also, more trees please ... :-)

You can add the hwmon testing tree (from MAINTAINERS): 

> git lm-sensors.org:/kernel/mhoffman/hwmon-2.6.git testing

This tree gets rebased pretty much whenever Linus adds a new tag.  As a
rule of thumb, you should merge from Jean Delvare's i2c tree first.  The
hwmon/testing tree does not usually depend on anything else.

Thanks & regards,

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: [PATCH 14/27] hwmon: fix section mismatch in coretemp

2008-02-17 Thread Mark M. Hoffman
Hi Sam:

* Sam Ravnborg <[EMAIL PROTECTED]> [2008-02-17 13:22:51 +0100]:
> Fix following warning:
> WARNING: vmlinux.o(.text+0xebfd04): Section mismatch in reference from the 
> function coretemp_cpu_callback() to the function 
> .cpuinit.text:coretemp_device_add()
> 
> coretemp_cpu_callback() are only used inside a
> HOTPLUG_CPU block so annotate it __cpuinit.
> The notifier referencing the function are annotated
> __refdata to silence warning from the exit function.
> The unregister function do not use the embedded pointer
> but clears the variable so the annotation is OK.
> 
> Signed-off-by: Sam Ravnborg <[EMAIL PROTECTED]>
> Cc: Mark M. Hoffman <[EMAIL PROTECTED]>
> ---
>  drivers/hwmon/coretemp.c |4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/hwmon/coretemp.c b/drivers/hwmon/coretemp.c
> index 3ee60d2..1439432 100644
> --- a/drivers/hwmon/coretemp.c
> +++ b/drivers/hwmon/coretemp.c
> @@ -330,7 +330,7 @@ static void coretemp_device_remove(unsigned int cpu)
>   mutex_unlock(&pdev_list_mutex);
>  }
>  
> -static int coretemp_cpu_callback(struct notifier_block *nfb,
> +static int __cpuinit coretemp_cpu_callback(struct notifier_block *nfb,
>unsigned long action, void *hcpu)
>  {
>   unsigned int cpu = (unsigned long) hcpu;
> @@ -347,7 +347,7 @@ static int coretemp_cpu_callback(struct notifier_block 
> *nfb,
>   return NOTIFY_OK;
>  }
>  
> -static struct notifier_block coretemp_cpu_notifier = {
> +static struct notifier_block coretemp_cpu_notifier __refdata = {
>   .notifier_call = coretemp_cpu_callback,
>  };
>  #endif   /* !CONFIG_HOTPLUG_CPU */
> -- 
> 1.5.4.rc3.14.g44397

This rings a bell... hmmm, commit 59a35bafb223bbb0553ba1a3bb9280bda668a8d8.
AFAICT the warning is a false positive, but whatever.

Applied to hwmon-2.6.git/testing, thanks.

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: [PATCH 2/5] Provide acpi_check_{mem_}region.

2008-02-13 Thread Mark M. Hoffman
Hi Andrew, Jean:

* Jean Delvare <[EMAIL PROTECTED]> [2008-02-11 22:18:29 +0100]:
> On Mon, 11 Feb 2008 11:55:46 -0800, Andrew Morton wrote:
> > On Sun, 10 Feb 2008 13:25:36 +0100 Jean Delvare wrote:
> > > Andrew, both patches are
> > > 
> > > Acked-by: Jean Delvare <[EMAIL PROTECTED]>
> > 
> > We already have Signed-off-by:you, which I figure outranks acked-by: ;)
> 
> Yeah but that wasn't the same me. That was me-developer-at-suse,
> who doesn't yet have the same aura as
> me-maintainer-of-i2c-and-former-maintainer-of-hwmon ;)
> 
> > > and I am totally fine with you pushing them to Linus now. But of course
> > > having Mark's ack would be good too.
> > 
> > That would be nice.  But I'll merge them mid-week anyway unless Mark 
> > actually
> > nacks them:
> > 
> > http://userweb.kernel.org/~akpm/mmotm/broken-out/check-for-acpi-resource-conflicts-in-hwmon-drivers.patch
> > 
> > http://userweb.kernel.org/~akpm/mmotm/broken-out/check-for-acpi-resource-conflicts-in-i2c-bus-drivers.patch
> 
> Yeah, sounds like a good plan, thanks for taking care.

OK, I pulled the first of those into my hwmon testing tree and merged
it, since there are trivial conflicts with some of the other patches
already there.  I'll send it to Linus before -rc2.

Andrew: hopefully that makes your life .001% easier. ;)

Regards,

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: [PATCH] hwmon: (adm1026) Properly terminate sysfs groups (Was: panic about sysfs with adm1026)

2008-02-13 Thread Mark M. Hoffman
Hi Jean et. al.:

* Jean Delvare <[EMAIL PROTECTED]> [2008-02-10 19:01:15 +0100]:
> The missing NULL at the end of two sysfs file groups causes a kernel
> crash when calling sysfs_create_group().
> 
> Signed-off-by: Jean Delvare <[EMAIL PROTECTED]>
> ---
>  drivers/hwmon/adm1026.c |2 ++
>  1 file changed, 2 insertions(+)
> 
> --- linux-2.6.25-rc0.orig/drivers/hwmon/adm1026.c 2008-02-10 
> 11:21:54.0 +0100
> +++ linux-2.6.25-rc0/drivers/hwmon/adm1026.c  2008-02-10 18:51:00.0 
> +0100
> @@ -1624,6 +1624,7 @@ static struct attribute *adm1026_attribu
>   &dev_attr_temp3_crit_enable.attr,
>   &dev_attr_temp3_auto_point1_pwm.attr,
>   &dev_attr_temp3_auto_point2_pwm.attr,
> + NULL
>  };
>  
>  static const struct attribute_group adm1026_group_temp3 = {
> @@ -1639,6 +1640,7 @@ static struct attribute *adm1026_attribu
>   &sensor_dev_attr_in9_max.dev_attr.attr,
>   &sensor_dev_attr_in9_min.dev_attr.attr,
>   &sensor_dev_attr_in9_alarm.dev_attr.attr,
> + NULL
>  };
>  
>  static const struct attribute_group adm1026_group_in8_9 = {

Applied to hwmon-2.6.git/testing, thanks.

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


[GIT PATCH] hwmon updates against v2.6.24 (~git17)

2008-02-07 Thread Mark M. Hoffman
ps
  hwmon: (adm1026) More cleanups (updated)
  hwmon: (adm1026) Don't create files for missing inputs
  hwmon: (w83781d) Drop W83627HF support
  hwmon: (w83781d) Misc cleanups
  hwmon: (it87) Delete pwmN_freq files on driver removal
  hwmon: (adm1031) Fix register overwrite in set_fan_div()
  hwmon: (adm1031) Various cleanups
  hwmon: (adm1031) Get rid of macro-generated wrappers
  hwmon: (adm1031) Add individual alarm and fault files
  hwmon: (lm85) Return standard values in pwmN_enable
  hwmon: (lm85) Make the pwmN_enable files writable
  hwmon: Discard useless I2C driver IDs
  hwmon: (lm77) Add individual alarm files
  hwmon: (adm9240) Add individual alarm files
  hwmon: VRM is not written to registers
  hwmon: (asb100) Various cleanups
  hwmon: (asb100) De-macro the sysfs callbacks
  hwmon: (asb100) Add individual alarm files
  hwmon: (w83627ehf) The W83627DHG has 8 VID pins
  hwmon: (w83627hf) Enable VBAT monitoring
  hwmon: (w83627hf) Add individual alarm and beep files
  hwmon: (w83627hf) Refactor beep enable handling
  hwmon: (lm80) Various cleanups
  hwmon: (lm80) De-macro the sysfs callbacks
  hwmon: (lm80) Add individual alarm files

Joe Perches (1):
  hwmon: (vt8231) Add missing "space"

Juerg Haefliger (2):
  hwmon: (dme1737) fix divide-by-0
  hwmon: (dme1737) fix Super-IO device ID override

Kevin Lo (1):
  hwmon: Add support for Winbond W83L786NG/NR

Nicolas Kaiser (1):
  hwmon: (w83793) remove duplicated defines

Robert P. J. Day (1):
  hwmon: (adt7470) Replace power-of-two test

Sergey Vlasov (1):
  hwmon: (abituguru3) Add AUX4 fan input for Abit IP35 Pro

Steve Hardy (1):
  hwmon: Add support for Texas Instruments/Burr-Brown ADS7828

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: [lm-sensors] [PATCH] adt7470: Support per-sensor alarm files

2008-01-27 Thread Mark M. Hoffman
Hi Darrick:

* Darrick J. Wong <[EMAIL PROTECTED]> [2007-12-19 14:11:25 -0800]:
> On Wed, Dec 19, 2007 at 03:40:12PM +0100, Jean Delvare wrote:
> > In general we keep the all-in-one alarms file for compatibility, but
> > given that this driver is fairly new and libsensors never had specific
> > support for it anyway, it's probably OK to drop it this time.
> 
> Thanks for the code review.  I've made the changes you asked for and
> here's a new patch to supersede yesterday's.
> ---
> Remove the old alarms hack and replace it with per-sensor alarm files.
> 
> Signed-off-by: Darrick J. Wong <[EMAIL PROTECTED]>
> ---
> 
>  drivers/hwmon/adt7470.c |   96 
> +--
>  1 files changed, 84 insertions(+), 12 deletions(-)

Applied to hwmon-2.6.git/testing, thanks.

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


[GIT PATCH] hwmon update against v2.6.24-rc8+

2008-01-22 Thread Mark M. Hoffman
Hi Linus:

Please pull from:
git://lm-sensors.org/kernel/mhoffman/hwmon-2.6.git release

You'll get one patch (attached) which fixes a regression for it87.
See below for details.

Thanks & regards,


commit 87b4b6634ac112ddfe7b92aae50eb4bf7b128d1a
Author: Bjorn Helgaas <[EMAIL PROTECTED]>
Date:   Tue Jan 22 07:21:03 2008 -0500

hwmon: (it87) request only Environment Controller ports

The IT8705F and related parts are Super I/O controllers that contain
many separate devices.

Some BIOSes describe IT8705F I/O port usage under a motherboard device
(PNP0C02) with overlapping regions, e.g., 0x290-0x29f and 0x290-0x294.

The it87 driver supports only the Environment Controller, which requires
only two ISA ports, but it used to request an eight-port range.  If that
range exceeds a range reported by the BIOS, as 0x290-0x297 would, the
request fails, and the it87 driver cannot claim the device.

This patch makes the it87 driver request only the two ports used for the
Environment Controller device.

Systems where this problem has been reported:
Gigabyte GA-K8N Ultra 9
Gigabyte M56S-S3
Gigabyte GA-965G-DS3

Kernel bug reports:
http://bugzilla.kernel.org/show_bug.cgi?id=9514
http://lkml.org/lkml/2007/12/4/466

Related change:

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=a7839e960675b549f06209d18283d5cee2ce9261

The patch above increases the number of PNP port resources we support.
Prior to this patch, we ignored some port resources, which masked the
it87 problem.

Signed-off-by: Bjorn Helgaas <[EMAIL PROTECTED]>
    Signed-off-by: Mark M. Hoffman <[EMAIL PROTECTED]>

diff --git a/drivers/hwmon/it87.c b/drivers/hwmon/it87.c
index 6a182e1..ad6c8a3 100644
--- a/drivers/hwmon/it87.c
+++ b/drivers/hwmon/it87.c
@@ -2,6 +2,14 @@
 it87.c - Part of lm_sensors, Linux kernel modules for hardware
  monitoring.
 
+The IT8705F is an LPC-based Super I/O part that contains UARTs, a
+parallel port, an IR port, a MIDI port, a floppy controller, etc., in
+addition to an Environment Controller (Enhanced Hardware Monitor and
+Fan Controller)
+
+This driver supports only the Environment Controller in the IT8705F and
+similar parts.  The other devices are supported by different drivers.
+
 Supports: IT8705F  Super I/O chip w/LPC interface
   IT8712F  Super I/O chip w/LPC interface
   IT8716F  Super I/O chip w/LPC interface
@@ -118,9 +126,15 @@ static int fix_pwm_polarity;
 /* Length of ISA address segment */
 #define IT87_EXTENT 8
 
-/* Where are the ISA address/data registers relative to the base address */
-#define IT87_ADDR_REG_OFFSET 5
-#define IT87_DATA_REG_OFFSET 6
+/* Length of ISA address segment for Environmental Controller */
+#define IT87_EC_EXTENT 2
+
+/* Offset of EC registers from ISA base address */
+#define IT87_EC_OFFSET 5
+
+/* Where are the ISA address/data registers relative to the EC base address */
+#define IT87_ADDR_REG_OFFSET 0
+#define IT87_DATA_REG_OFFSET 1
 
 /*- The IT87 registers -*/
 
@@ -968,10 +982,10 @@ static int __devinit it87_probe(struct platform_device 
*pdev)
};
 
res = platform_get_resource(pdev, IORESOURCE_IO, 0);
-   if (!request_region(res->start, IT87_EXTENT, DRVNAME)) {
+   if (!request_region(res->start, IT87_EC_EXTENT, DRVNAME)) {
dev_err(dev, "Failed to request region 0x%lx-0x%lx\n",
(unsigned long)res->start,
-   (unsigned long)(res->start + IT87_EXTENT - 1));
+   (unsigned long)(res->start + IT87_EC_EXTENT - 1));
err = -EBUSY;
goto ERROR0;
}
@@ -1124,7 +1138,7 @@ ERROR2:
platform_set_drvdata(pdev, NULL);
kfree(data);
 ERROR1:
-   release_region(res->start, IT87_EXTENT);
+   release_region(res->start, IT87_EC_EXTENT);
 ERROR0:
return err;
 }
@@ -1137,7 +1151,7 @@ static int __devexit it87_remove(struct platform_device 
*pdev)
sysfs_remove_group(&pdev->dev.kobj, &it87_group);
sysfs_remove_group(&pdev->dev.kobj, &it87_group_opt);
 
-   release_region(data->addr, IT87_EXTENT);
+   release_region(data->addr, IT87_EC_EXTENT);
platform_set_drvdata(pdev, NULL);
kfree(data);
 
@@ -1402,8 +1416,8 @@ static int __init it87_device_add(unsigned short address,
  const struct it87_sio_data *sio_data)
 {
struct resource res = {
-   .start  = address ,
-   .end= address + IT87_EXTENT - 1,
+   .start  = address + IT87_EC_OFFSET,
+   .end= address + IT87_EC_OFFSET + IT87_EC_EXTENT - 1,
        .name   = DRVNAME,
   

Re: [PATCH 15/59] drivers/hwmon: Add missing "space"

2007-12-06 Thread Mark M. Hoffman
* Joe Perches <[EMAIL PROTECTED]> [2007-11-19 17:48:07 -0800]:
> 
> Signed-off-by: Joe Perches <[EMAIL PROTECTED]>
> ---
>  drivers/hwmon/vt8231.c |2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/hwmon/vt8231.c b/drivers/hwmon/vt8231.c
> index 2196a84..f876617 100644
> --- a/drivers/hwmon/vt8231.c
> +++ b/drivers/hwmon/vt8231.c
> @@ -504,7 +504,7 @@ static ssize_t set_fan_div(struct device *dev, struct 
> device_attribute *attr,
>   case 4: data->fan_div[nr] = 2; break;
>   case 8: data->fan_div[nr] = 3; break;
>   default:
> - dev_err(dev, "fan_div value %ld not supported."
> + dev_err(dev, "fan_div value %ld not supported. "
>   "Choose one of 1, 2, 4 or 8!\n", val);
>   mutex_unlock(&data->update_lock);
>   return -EINVAL;
> -- 
> 1.5.3.5.652.gf192c

Applied to hwmon-2.6.git/testing, thanks.

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: [lm-sensors] [PATCH 1/1] HWMON: coretemp, suspend fix

2007-12-02 Thread Mark M. Hoffman
Hi:

* Rafael J. Wysocki <[EMAIL PROTECTED]> [2007-12-01 00:51:40 +0100]:
> On Saturday, 1 of December 2007, Rafael J. Wysocki wrote:
> > On Friday, 30 of November 2007, Jiri Slaby wrote:
> > > On 11/30/2007 11:15 PM, Jean Delvare wrote:
> > > > Hi Jiri,
> > > 
> [--snip--]
> > > > 
> > > > Should this change go to the stable tree(s) as well?
> > > 
> > > Sorry, I have no idea. Rafael?
> > 
> > Well, actually, having looked once again at the patch, I think that it's
> > slightly wrong.  Namely, it looks like we just should drop all of the 
> > _FROZEN
> > actions from there.
> > 
> > Fixed patch follows and I think it's also a candidate for -stable.
> 
> Crap, I forgot to add the sign-off, so here it goes again:
> 
> ---
> Subject: HWMON: coretemp, suspend fix
>  
> It's not permitted to unregister a device after devices have been suspended.
> It causes deadlocks to appear on systems with coretemp hwmon loaded.  To avoid
> this, we can make coretemp_cpu_callback() do nothing if the _FROZEN bit is set
> in action.
>  
> Also, in other cases it's generally to late to unregister the coretemp device
> if the CPU is already dead, so it should be unregistered on CPU_DOWN_PREPARE.
>  
> Signed-off-by: Rafael J. Wysocki <[EMAIL PROTECTED]> (frozen fix)
> Cc: Mark M. Hoffman <[EMAIL PROTECTED]>
> Cc: Jiri Slaby <[EMAIL PROTECTED]>
> Cc: Andrew Morton <[EMAIL PROTECTED]>
> ---
> 
>  drivers/hwmon/coretemp.c |5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
> 
> Index: linux-2.6/drivers/hwmon/coretemp.c
> ===
> --- linux-2.6.orig/drivers/hwmon/coretemp.c
> +++ linux-2.6/drivers/hwmon/coretemp.c
> @@ -337,11 +337,10 @@ static int coretemp_cpu_callback(struct 
>  
>   switch (action) {
>   case CPU_ONLINE:
> - case CPU_ONLINE_FROZEN:
> + case CPU_DOWN_FAILED:
>   coretemp_device_add(cpu);
>   break;
> - case CPU_DEAD:
> - case CPU_DEAD_FROZEN:
> + case CPU_DOWN_PREPARE:
>   coretemp_device_remove(cpu);
>   break;
>   }

Sorry for the delay, it took me some time to RTF code and convince
myself that nothing can tickle this driver's sysfs files after a
CPU_DOWN_PREPARE_FROZEN.  As long as I didn't misread that...

Acked-by: Mark M. Hoffman <[EMAIL PROTECTED]>

PS: while reading kernel/power/disk.c, I saw this...

335 static void power_down(void)
336 {
337 switch (hibernation_mode) {
338 case HIBERNATION_TEST:
339 case HIBERNATION_TESTPROC:
340 break;
341 case HIBERNATION_REBOOT:
342 kernel_restart(NULL);
343 break;
344 case HIBERNATION_PLATFORM:
345 hibernation_platform_enter();
346 case HIBERNATION_SHUTDOWN:
347 kernel_power_off();
348 break;
349 }
350 kernel_halt();
351 /*
352  * Valid image is on the disk, if we continue we risk serious data
353  * corruption after resume.
354  */
355 printk(KERN_CRIT "Please power me down manually\n");
356 while(1);
357 }

Shouldn't that be while(1) cpu_relax(); ?

Regards,

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: [lm-sensors] broken suspend [Was: 2.6.24-rc2-mm1]

2007-11-20 Thread Mark M. Hoffman
Hi all:

* Alan Stern <[EMAIL PROTECTED]> [2007-11-19 15:27:14 -0500]:
> On Mon, 19 Nov 2007, Rudolf Marek wrote:
> 
> > Hello all,
> > >>> gives coretemp_cpu_callback -> coretemp_device_remove ->
> > >>> platform_device_unregister, so coretemp seems to be what I have and you 
> > >>> don't.
> > > 
> > > Yes.
> > > 
> > > For the coretemp developers: coretemp_cpu_callback() needs to be more 
> > > careful about what it does.  During a system sleep transition (suspend, 
> > > hibernate, resume) it isn't possible to register or unregister a 
> > > device.  Attempts to register will fail and attempts to unregister will 
> > > block until the system sleep is over -- and for this callback that 
> > > means hanging.
> > 
> > Well I wrote the driver. Thanks for the clarification. If I recall 
> > correctly I 
> > looked how this part should be done from others drivers. Now while checking
> > what happened to the file, seems Rafael added something related.
> > 
> > http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8bb7844286fb8c9fce6f65d8288aeb09d03a5e0d
> 
> That does look like it was meant for exactly this sort of situation.
> 
> > > It's not clear what the best way is to fix this.  Perhaps the CPU 
> > > notification should be sent along with a special flag indicating that 
> > > the CPU transition is part of a system sleep (although this seems 
> > > racy).  Perhaps the driver should notice when a system sleep begins, 
> > > and defer all CPU-change handling until after the sleep is over.
> > 
> > maybe it does exist?  CPU_DOWN_PREPARE ?
> > 
> > http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/cpu-hotplug.txt;hb=HEAD
> > 
> > Unfortunately I'm not very familiar with this, calling the 
> > coretemp_device_remove from CPU_DOWN_PREPARE would help? Looking at 
> > microcode 
> > driver, seems it just hide sysfs interface from user.

AFAICT from that documentation, it would have been better to unregister
the device on CPU_DOWN_PREPARE anyway.  CPU_DEAD seems to be too late -
it's already gone by then.

> I'm not sure exactly what you want to do here.  But it seems like a 
> waste to unregister the coretemp devices at the start of a system sleep 
> and then register them back at the end.
> 
> Could you simply leave the devices registered throughout the entire
> sleep?  Of course, at the end you would have to check that all the CPUs
> really did come back up, and unregister the devices for the CPUs that
> are still offline.

Is it possible to unregister a driver on CPU_DOWN_PREPARE_FROZEN?  If
so, then the simplest fix would be the patch below (Jiri: feel free to
try it). Otherwise it would take a bit of refactoring to bring the sysfs
interface down/up for suspend/resume.

commit ce9c7b78c839a6304696d90083eac08baad524ce
Author: Mark M. Hoffman <[EMAIL PROTECTED]>
Date:   Tue Nov 20 07:51:50 2007 -0500

hwmon: (coretemp) fix suspend/resume hang

Signed-off-by: Mark M. Hoffman <[EMAIL PROTECTED]>

diff --git a/drivers/hwmon/coretemp.c b/drivers/hwmon/coretemp.c
index 5c82ec7..afe2d31 100644
--- a/drivers/hwmon/coretemp.c
+++ b/drivers/hwmon/coretemp.c
@@ -338,10 +338,12 @@ static int coretemp_cpu_callback(struct notifier_block 
*nfb,
switch (action) {
case CPU_ONLINE:
    case CPU_ONLINE_FROZEN:
+   case CPU_DOWN_FAILED:
+   case CPU_DOWN_FAILED_FROZEN:
coretemp_device_add(cpu);
break;
-   case CPU_DEAD:
-   case CPU_DEAD_FROZEN:
+   case CPU_DOWN_PREPARE:
+   case CPU_DOWN_PREPARE_FROZEN:
coretemp_device_remove(cpu);
break;
}
-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: [lm-sensors] [GIT PATCH] hwmon updates against v2.6.24-rc2

2007-11-13 Thread Mark M. Hoffman
Jean:

> On Tue, 13 Nov 2007 08:12:10 -0500, Mark M. Hoffman wrote:
> > Hi Linus:
> > 
> > Please pull from:
> > git://lm-sensors.org/kernel/mhoffman/hwmon-2.6.git release
> > 
> > You'll get one new driver, a few cleanups, and a few bugfixes.  This
> > takes care of all known regressions; hopefully it's the last you hear
> > from me before 2.6.24-final.
> > 
> > Note: the f75375s/n2100 patches especially are critical to avoid
> > possible overheating problems on that platform (yay crappy BIOS).
> > 
> > All of these patches have spent considerable time in -mm.

* Jean Delvare <[EMAIL PROTECTED]> [2007-11-13 22:00:30 +0100]:
> Let me have a doubt, considering that the last public -mm kernel was
> released over a month ago (October 12th), which is before your previous
> pull request (October 14th). I don't think that any of these patches
> has been in even one public -mm tree, so in practice they probably
> didn't receive any public testing at all.

Well, zero is a "considerable" number. ;)

Seriously though, my bad.  In my (weak) defense, I will point out that
all but a couple of these patches were *available* for -mm on my testing
branch for at least two weeks; Oct 28 was the most recent addition.

> Now let's hope that nothing breaks.

I admit: post-rc2 was later than it should have been for some of this.
But there was no rocket science in any of these.  I think we'll be OK.

Regards,

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


[GIT PATCH] hwmon updates against v2.6.24-rc2

2007-11-13 Thread Mark M. Hoffman
Hi Linus:

Please pull from:
git://lm-sensors.org/kernel/mhoffman/hwmon-2.6.git release

You'll get one new driver, a few cleanups, and a few bugfixes.  This
takes care of all known regressions; hopefully it's the last you hear
from me before 2.6.24-final.

Note: the f75375s/n2100 patches especially are critical to avoid
possible overheating problems on that platform (yay crappy BIOS).

All of these patches have spent considerable time in -mm.

Thanks & regards,

 Documentation/hwmon/sysfs-interface |   31 ++
 arch/arm/mach-iop32x/n2100.c|   11 
 drivers/hwmon/Kconfig   |   10 
 drivers/hwmon/Makefile  |1 
 drivers/hwmon/abituguru3.c  |   56 +++
 drivers/hwmon/applesmc.c|  107 ++
 drivers/hwmon/f75375s.c |  170 ---
 drivers/hwmon/i5k_amb.c |  552 
 drivers/hwmon/ibmpex.c  |   48 +--
 drivers/hwmon/lm70.c|   11 
 drivers/hwmon/sis5595.c |   59 ++-
 drivers/hwmon/w83627hf.c|  155 +++---
 drivers/hwmon/w83781d.c |3 
 include/linux/f75375s.h |   21 +
 include/linux/pci_ids.h |3 
 15 files changed, 1049 insertions(+), 189 deletions(-)

Adrian Bunk (1):
  hwmon: (ibmpex.c) fix NULL dereference

Darrick J. Wong (4):
  hwmon: Add power meter spec to Documentation/hwmon/sysfs-interface
  hwmon: (i5k_amb) New memory temperature sensor driver
  hwmon: (ibmpex) Change printk to dev_{info,err} macros
  hwmon: (i5k_amb) Convert macros to C functions

Hans de Goede (2):
  hwmon: (abituguru3) Add support for 2 new motherboards
  hwmon: (abituguru3) Identify ABit IP35 Pro as such

Ivo Manca (2):
  hwmon: (sis5595) Add individual alarm files
  hwmon: (sis5595) Split sis5595_attributes_opt

Jean Delvare (1):
  hwmon: (w83781d) Add missing curly braces

Jim Cromie (2):
  hwmon: (w83627hf) hoist nr-1 offset out of show-store-temp-X
  hwmon: (w83627hf) push nr+1 offset into *_REG_FAN macros and simplify

Matthias Kaehlcke (1):
  hwmon: (lm70) Convert semaphore to mutex

René Rebe (1):
  hwmon: (applesmc) Add support for Mac Pro 2 x Quad-Core

Riku Voipio (5):
  hwmon: (f75375s) fix pwm mode setting
  hwmon: (f75375s) Add new style bindings
  hwmon: (f75375s) Allow setting up fans with platform_data
  hwmon: (f75375s) On n2100 systems, set fans to full speed on boot
  hwmon: (f75375s) pwmX_mode sysfs files writable for f75375 variant

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: [PATCH] sysfs: add filter function to groups

2007-10-31 Thread Mark M. Hoffman
Hi Kay:

* Kay Sievers <[EMAIL PROTECTED]> [2007-10-31 03:01:56 +0100]:
> On Oct 31, 2007 1:40 AM, Mark M. Hoffman <[EMAIL PROTECTED]> wrote:
> > * James Bottomley <[EMAIL PROTECTED]> [2007-10-30 13:25:43 -0500]:
> > > On Mon, 2007-10-29 at 18:58 +0100, Stefan Richter wrote:
> > > > James Bottomley wrote:
> > > > >> >  struct attribute_group {
> > > > >> >const char  *name;
> > > > >> > +  int (*filter_show)(struct kobject *, 
> > > > >> > int);
> > > >
> > > > > Actually, it returns a true/false value indicating whether the given
> > > > > attribute should be displayed.
> > > >
> > > > How about this:
> > > >
> > > > int (*is_visible)(...);
> > >
> > > OK, so is this latest revision acceptable to everyone?
> >
> > I've just been hacking around in this area a bit, for a completely different
> > reason: there are literally 1000's of attributes in drivers/hwmon/*.c that
> > really want to be const, but which cannot be due to the current API.  I was
> > about to propose some patches that move in a different direction...
> 
> That isn't related to "dynamic attributes", right?

Right, it's not.  That phrase was coined by the previous maintainer, Jean, to
describe a specific mechanism which makes for smaller code in drivers/hwmon.

> > IMHO the fundamental problem is struct attribute_group itself.  This 
> > structure
> > is nothing but a convenience for packaging the arguments to 
> > sysfs_create_group
> > and sysfs_remove_group.
> 
> That "problem" is actually a good thing. If you look at the change
> rate of the internal kernel API, it saves us so much trouble. Like in
> this case, James can just add a callback without caring about any
> (almost :)) of the current users.

Given my patch, he could also just add sysfs_create_attr_group_filtered(...).
This would affect current users even less than what you suggest because it
wouldn't bloat the struct that they all use.

> > Those functions should take the contents of that
> > struct as direct arguments.
> 
> I think we should move in the opposite direction. You are right, it
> isn't neccessarily pretty, but having encapsulations like this saves
> us a lot of trouble while interacting with so many other people and
> extending API's all the time. It's a trade, and it's a good one, if
> you need to maintain code that has so many callers, and  so many
> architectures, you can't even check that you don't break them.

Again, I don't see how it is better to bloat a struct with many users instead
of just adding a function for the few that need the extra functionality.  My
patch also requires 0 change for everyone else.

> > I haven't finished the patch series to implement
> > this, but since I noticed your patch I thought I'd better speak up now.  
> > Here's
> > the first... the idea is to eventually deprecate 
> > sysfs_[create|remove]_group()
> > altogether.
> 
> Again, I don't think, that we want to get rid of the struct container
> housing all the parameters and beeing open for future extensions
> without changing all the callers.

BTW: I hope you're not resisting based on the prospect of deprecating those
two functions.  I don't really have time to push such a huge patch either.
It wouldn't hurt just to keep them.

> > The current declaration of struct attribute_group prevents long lists of
> > attributes from being marked const.  Ideally, the second argument to the
> > sysfs_create_group() and sysfs_remove_group() functions would be marked 
> > "deep"
> > const, but C has no such construct.  This patch provides a parallel set 
> > of
> > functions with the desired decoration.
> 
> What do we get out of this constification compared to the current code?

Conceptual correctness, for one, but also it allows hwmon drivers to move as
much as 1K each out of the data section and into text.  This is useful for the
embedded XIP scenario.

And please don't underestimate conceptual correctness: at least hwmon (and
probably many other users) really *rely* on the core not to modify the contents
of struct attribute_group (specifically, the data to which its members point).

Without the proper const qualifiers, this is not externally guaranteed.

Regards,

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: [PATCH] sysfs: add filter function to groups

2007-10-30 Thread Mark M. Hoffman
Hi James:

* James Bottomley <[EMAIL PROTECTED]> [2007-10-30 13:25:43 -0500]:
> On Mon, 2007-10-29 at 18:58 +0100, Stefan Richter wrote:
> > James Bottomley wrote:
> > >> >  struct attribute_group {
> > >> >const char  *name;
> > >> > +  int (*filter_show)(struct kobject *, int);
> > 
> > > Actually, it returns a true/false value indicating whether the given
> > > attribute should be displayed.
> > 
> > How about this:
> > 
> > int (*is_visible)(...);
> 
> OK, so is this latest revision acceptable to everyone?

I've just been hacking around in this area a bit, for a completely different
reason: there are literally 1000's of attributes in drivers/hwmon/*.c that
really want to be const, but which cannot be due to the current API.  I was
about to propose some patches that move in a different direction...

> Index: BUILD-2.6/fs/sysfs/group.c
> ===
> --- BUILD-2.6.orig/fs/sysfs/group.c   2007-10-28 17:27:04.0 -0500
> +++ BUILD-2.6/fs/sysfs/group.c2007-10-30 12:35:47.0 -0500
> @@ -16,25 +16,31 @@
>  #include "sysfs.h"
>  
>  
> -static void remove_files(struct sysfs_dirent *dir_sd,
> +static void remove_files(struct sysfs_dirent *dir_sd, struct kobject *kobj,
>const struct attribute_group *grp)
>  {
>   struct attribute *const* attr;
> + int i;
>  
> - for (attr = grp->attrs; *attr; attr++)
> - sysfs_hash_and_remove(dir_sd, (*attr)->name);
> + for (i = 0, attr = grp->attrs; *attr; i++, attr++)
> + if (grp->is_visible &&
> + grp->is_visible(kobj, *attr, i))
> + sysfs_hash_and_remove(dir_sd, (*attr)->name);
>  }
>  
> -static int create_files(struct sysfs_dirent *dir_sd,
> +static int create_files(struct sysfs_dirent *dir_sd, struct kobject *kobj,
>   const struct attribute_group *grp)
>  {
>   struct attribute *const* attr;
> - int error = 0;
> + int error = 0, i;
>  
> - for (attr = grp->attrs; *attr && !error; attr++)
> - error = sysfs_add_file(dir_sd, *attr, SYSFS_KOBJ_ATTR);
> + for (i = 0, attr = grp->attrs; *attr && !error; i++, attr++)
> + if (grp->is_visible &&
> + grp->is_visible(kobj, *attr, i))
> + error |=
> + sysfs_add_file(dir_sd, *attr, SYSFS_KOBJ_ATTR);
>   if (error)
> - remove_files(dir_sd, grp);
> + remove_files(dir_sd, kobj, grp);
>   return error;
>  }
>  
> @@ -54,7 +60,7 @@ int sysfs_create_group(struct kobject * 
>   } else
>   sd = kobj->sd;
>   sysfs_get(sd);
> - error = create_files(sd, grp);
> + error = create_files(sd, kobj, grp);
>   if (error) {
>   if (grp->name)
>   sysfs_remove_subdir(sd);
> @@ -75,7 +81,7 @@ void sysfs_remove_group(struct kobject *
>   } else
>   sd = sysfs_get(dir_sd);
>  
> - remove_files(sd, grp);
> + remove_files(sd, kobj, grp);
>   if (grp->name)
>   sysfs_remove_subdir(sd);
>  
> Index: BUILD-2.6/include/linux/sysfs.h
> ===
> --- BUILD-2.6.orig/include/linux/sysfs.h  2007-10-28 17:20:06.0 
> -0500
> +++ BUILD-2.6/include/linux/sysfs.h   2007-10-30 13:24:06.0 -0500
> @@ -32,6 +32,8 @@ struct attribute {
>  
>  struct attribute_group {
>   const char  *name;
> + int (*is_visible)(struct kobject *,
> +   struct attribute *, int);
>   struct attribute**attrs;
>  };

IMHO the fundamental problem is struct attribute_group itself.  This structure
is nothing but a convenience for packaging the arguments to sysfs_create_group
and sysfs_remove_group.  Those functions should take the contents of that
struct as direct arguments.  I haven't finished the patch series to implement
this, but since I noticed your patch I thought I'd better speak up now.  Here's
the first... the idea is to eventually deprecate sysfs_[create|remove]_group()
altogether.

commit 5b5bc08ae31519b7012d7fc23ff73e0c6474de53
Author: Mark M. Hoffman <[EMAIL PROTECTED]>
Date:   Sun Oct 21 11:49:57 2007 -0400

sysfs: allow attribute (group) lists to be const

The current declaration of struct attribute_group prevents long lists of
attributes from being marked const.  Ideally, the 

Re: [PATCH] i5k_amb: Convert macros to C functions

2007-10-28 Thread Mark M. Hoffman
Hi:

* Darrick J. Wong <[EMAIL PROTECTED]> [2007-10-26 11:55:11 -0700]:
> akpm objected to some of the macros, so convert them into functions.
> 
> Signed-off-by: Darrick J. Wong <[EMAIL PROTECTED]>
> ---
> 
>  drivers/hwmon/i5k_amb.c |   65 
> +++
>  1 files changed, 43 insertions(+), 22 deletions(-)

Applied to hwmon-2.6.git/testing, thanks.

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: [lm-sensors] hwmon/f75375s.c: buggy if()

2007-10-28 Thread Mark M. Hoffman
Hi:

* Riku Voipio <[EMAIL PROTECTED]> [2007-10-26 14:14:23 +0300]:
> On Fri, Oct 26, 2007 at 10:36:47AM +0200, Jean Delvare wrote:
> > Patch looks correct, however it doesn't apply on top of Mark's tree. I
> > was able to get it to apply by reverting "(f75375s) fix pwm mode
> > setting" first, but then the build fails. Presumably the other f75375s
> > patches interact badly. Can you please respin this patch on top of
> > Mark's tree (i.e. on top the the 4 other f75375s patches you sent since
> > the -rc1 merge)? Thanks.
> 
> The surrounding code had wandered to another function, so it's suprising
> it applied at all. Here's respin.
> 
> -- 
> "rm -rf" only sounds scary if you don't have backups

> >From 4de69e3ab5b5833cddb503f0dcb2a3ccc2d5b328 Mon Sep 17 00:00:00 2001
> From: Riku Voipio <[EMAIL PROTECTED]>
> Date: Fri, 26 Oct 2007 13:53:50 +0300
> Subject: [PATCH] hwmon (f75375s) fix buggy if() properly
> 
>  Fix value check in set_pwm_mode(). Instead of checking for
>  chip variant there, make pwmX_mode sysfs nodes only writable
>  on f75375 variant.
> 
> Signed-off-by: Riku Voipio <[EMAIL PROTECTED]>
> ---
>  drivers/hwmon/f75375s.c |   19 ---
>  1 files changed, 16 insertions(+), 3 deletions(-)
> 

Applied to hwmon-2.6.git/testing, thanks.

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: [PATCH 0/5] Detect hwmon and i2c bus drivers interfering with ACPI Operation Region resources

2007-10-25 Thread Mark M. Hoffman
Hi Thomas:

I recently told someone in private that ACPI vs. hwmon conflicts are the
biggest open problems for the hwmon subsystem.  Thank you (and Jean) for
doing this.

* Thomas Renninger <[EMAIL PROTECTED]> [2007-10-24 16:31:59 +0200]:
> Hi,
> 
> it seems Len's test tree and Linus tree diverged a bit, at least with
> this patch set things do not apply cleanly.
> 
> Therefore I post these for discussion whether and in which kernel tree
> they should end up before doing work for nothing.
> If they are still a candidate for 2.6.24 (rather unintrusive), pls tell
> me whether and when I should base them against Len's test/release branch
> or whatever other tree.
> If not, it would be great if they can be included into the -mm tree and
> I can rebase them against this one.

Andrew has already picked this series; I vote for extended time in -mm.  On the
hwmon side, there is almost guaranteed to be fallout from this that may take
time to resolve.

> (...)

> A boot parameter acpi_enforce_resources=strict/lax/no is provided, which
> is default set to lax:
>   - strict: let conflicting drivers fail to load with an error message
>   - lax:let conflicting driver work normal with a warning message
>   - no: no functional change at all
> Depending on the feedback and the kind of interferences we see, this
> should be set to strict at later time.

As long as it's in -mm, you may as well default to =strict right away.  This
will force people to report.  Open the floodgates; I hope I don't drown.

Regards,

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: [lm-sensors] hwmon/f75375s.c: buggy if()

2007-10-24 Thread Mark M. Hoffman
Hi Riku:

* Riku Voipio <[EMAIL PROTECTED]> [2007-10-24 14:50:34 +0300]:
> On Fri, Oct 19, 2007 at 02:37:54PM +0200, Jean Delvare wrote:
> > Riku, can you please submit a patch fixing this? The attribute should
> > be declared read-only, and then you can use sysfs_chmod_file() to
> > change it to read-write where supported. 
> 
> Thanks, this was good suggestion. Patch attached.

No patch?

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: [PATCH] Hardware Monitor LM70: Convert semaphore to mutex

2007-10-24 Thread Mark M. Hoffman
Hi:

* Matthias Kaehlcke <[EMAIL PROTECTED]> [2007-10-24 14:59:09 +0200]:
> Hardware Monitor LM70: Convert the semaphore lm70->sem to the mutex
> API
> 
> Signed-off-by: Matthias Kaehlcke <[EMAIL PROTECTED]>

Applied to hwmon-2.6.git/testing, thanks.

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: [PATCH v2] ibmpex: Change printk to dev_{info,err} macros

2007-10-23 Thread Mark M. Hoffman
Hi:

* Jean Delvare <[EMAIL PROTECTED]> [2007-10-20 23:30:52 +0200]:
> On Fri, 19 Oct 2007 16:35:07 -0700, Darrick J. Wong wrote:
> > Ok, I'll change the message to be a bit more accurate.
> > ---
> > Clean up printk use in ibmpex.
> > 
> > Signed-off-by: Darrick J. Wong <[EMAIL PROTECTED]>
> > ---
> 
> Acked-by: Jean Delvare <[EMAIL PROTECTED]>

Applied to hwmon-2.6.git/testing, thanks.

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: [PATCH v4] i5k_amb: New memory temperature sensor driver

2007-10-23 Thread Mark M. Hoffman
Hi Darrick:

* Darrick J. Wong <[EMAIL PROTECTED]> [2007-10-18 13:22:43 -0700]:
> New driver to read FB-DIMM temperature sensors on systems with the
> Intel 5000 series chipsets.
> 
> Signed-off-by: Darrick J. Wong <[EMAIL PROTECTED]>
> ---
> 
>  drivers/hwmon/Kconfig   |   10 +
>  drivers/hwmon/Makefile  |1 
>  drivers/hwmon/i5k_amb.c |  531 
> +++
>  include/linux/pci_ids.h |3 
>  4 files changed, 545 insertions(+), 0 deletions(-)

Applied to hwmon-2.6.git/testing, thanks.

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: [2.6 patch] hwmon/ibmpex.c: fix NULL dereference

2007-10-18 Thread Mark M. Hoffman
Hi:

* Adrian Bunk <[EMAIL PROTECTED]> [2007-10-17 21:29:02 +0200]:
> Don't dereference "data" when we know for sure it's NULL.
> 
> Spotted by the Coverity checker.
> 
> Signed-off-by: Adrian Bunk <[EMAIL PROTECTED]>
> 
> ---
> 66bec2ef5c6d55fc30ef6ac5bb97fdfcfaf394f2 
> diff --git a/drivers/hwmon/ibmpex.c b/drivers/hwmon/ibmpex.c
> index c462824..e14ce3d 100644
> --- a/drivers/hwmon/ibmpex.c
> +++ b/drivers/hwmon/ibmpex.c
> @@ -457,7 +457,7 @@ static void ibmpex_register_bmc(int iface, struct device 
> *dev)
>   data = kzalloc(sizeof(*data), GFP_KERNEL);
>   if (!data) {
>   printk(KERN_ERR DRVNAME ": Insufficient memory for BMC "
> -"interface %d.\n", data->interface);
> +        "interface.\n");
>   return;
>   }
>  

Applied to hwmon-2.6.git/testing, thanks.

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: hwmon/f75375s.c: buggy if()

2007-10-18 Thread Mark M. Hoffman
Hi:

* Riku Voipio <[EMAIL PROTECTED]> [2007-10-17 23:45:08 +0300]:
> > <--  snip  -->
> > 
> > ...
> > static ssize_t set_pwm_mode(struct device *dev, struct device_attribute 
> > *attr,
> > const char *buf, size_t count)
> > {
> > ...
> > if (val != 0 || val != 1 || data->kind == f75373)
> > return -EINVAL;
> > ...
> > 
> > <--  snip  -->
> 
> > I'm not sure what exactly was intended, but it was for sure not intended 
> > to always return -EINVAL...
> 
> Aiee. val should be 1 or 0, and kind must not be f75373.
> 
> Signed-off-by: Riku Voipio <[EMAIL PROTECTED]>
> ---
>  drivers/hwmon/f75375s.c |2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/hwmon/f75375s.c b/drivers/hwmon/f75375s.c
> index f1df57a..885bfe9 100644
> --- a/drivers/hwmon/f75375s.c
> +++ b/drivers/hwmon/f75375s.c
> @@ -344,7 +344,7 @@ static ssize_t set_pwm_mode(struct device *dev, struct 
> device_attribute *attr,
> int val = simple_strtoul(buf, NULL, 10);
> u8 conf = 0;
> 
> -   if (val != 0 || val != 1 || data->kind == f75373)
> +   if (!(val == 0 || val == 1 ) || data->kind == f75373)
> return -EINVAL;
> 
> mutex_lock(&data->update_lock);
> --
> 1.5.3.1

That patch doesn't apply here, so I applied this:

commit 805763cd743f2aed41dc61a55569fa43cf1f240c
Author: Riku Voipio <[EMAIL PROTECTED]>
Date:   Thu Oct 18 09:29:53 2007 -0400

hwmon: (f75375s) fix pwm mode setting

Spotted by the Coverity checker. (Thanks Adrian Bunk)

Signed-off-by: Riku Voipio <[EMAIL PROTECTED]>
Signed-off-by: Mark M. Hoffman <[EMAIL PROTECTED]>

diff --git a/drivers/hwmon/f75375s.c b/drivers/hwmon/f75375s.c
index 13a0413..59a3470 100644
--- a/drivers/hwmon/f75375s.c
+++ b/drivers/hwmon/f75375s.c
@@ -323,7 +323,7 @@ static ssize_t set_pwm_mode(struct device *dev, struct 
device_attribute *attr,
int val = simple_strtoul(buf, NULL, 10);
    u8 conf = 0;
 
-   if (val != 0 || val != 1 || data->kind == f75373)
+   if (!(val == 0 || val == 1) || data->kind == f75373)
return -EINVAL;
 
mutex_lock(&data->update_lock);

Thanks & regards,

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: [PATCH v3] i5k_amb: New memory temperature sensor driver

2007-10-18 Thread Mark M. Hoffman
 long dev_id;
> + u16 val16;
> + int res = -ENODEV;
> +
> + /* Two memory channels per FBD PCI device */
> + switch (which) {
> + case 0:
> + dev_id = PCI_DEVICE_ID_INTEL_5000_FBD0;
> + break;
> + case 1:
> + dev_id = PCI_DEVICE_ID_INTEL_5000_FBD1;
> + break;
> + default:
> + return -EINVAL;
> + }
> +

Awkward: see suggested patch at the bottom of this message.

> + /* Copy the DIMM presence map for these two channels */
> + pcidev = pci_get_device(PCI_VENDOR_ID_INTEL, dev_id, NULL);
> + if (!pcidev)
> + return -ENODEV;
> +
> + if (pci_read_config_word(pcidev, I5K_REG_CHAN0_PRESENCE_ADDR, &val16))
> + goto out;
> + data->amb_present[which * 2] = val16;
> +
> + if (pci_read_config_word(pcidev, I5K_REG_CHAN1_PRESENCE_ADDR, &val16))
> + goto out;
> + data->amb_present[which * 2 + 1] = val16;
> +
> + res = 0;
> +
> +out:
> + pci_dev_put(pcidev);
> + return res;
> +}
> +
> +static int __devinit i5k_amb_probe(struct platform_device *pdev)
> +{
> + struct i5k_amb_data *data;
> + struct resource *reso;
> + int res = -ENODEV;
> +
> + data = kzalloc(sizeof(*data), GFP_KERNEL);
> + if (!data)
> + return -ENOMEM;
> +
> + /* Figure out where the AMB registers live */
> + res = i5k_find_amb_registers(data);
> + if (res)
> + goto err;
> +
> + /* Copy the DIMM presence map for the first two channels */
> + res = i5k_channel_probe(data, 0);
> + if (res)
> + goto err;
> +
> + /* Copy the DIMM presence map for the optional second two channels */
> + i5k_channel_probe(data, 1);
> +
> + /* Set up resource regions */
> + reso = request_mem_region(data->amb_base, data->amb_len, DRVNAME);
> + if (!reso) {
> + res = -EBUSY;
> + goto err;
> + }
> +
> + data->amb_mmio = ioremap_nocache(data->amb_base, data->amb_len);
> + if (!data->amb_mmio) {
> + res = -EBUSY;
> + goto err_map_failed;
> + }
> +
> + platform_set_drvdata(pdev, data);
> +
> + res = i5k_amb_hwmon_init(pdev);
> + if (res)
> + goto err_init_failed;
> +
> + return res;
> +
> +err_init_failed:
> + iounmap(data->amb_mmio);
> + platform_set_drvdata(pdev, NULL);
> +err_map_failed:
> + release_mem_region(data->amb_base, data->amb_len);
> +err:
> + kfree(data);
> + return res;
> +}
> +
> +static int __devexit i5k_amb_remove(struct platform_device *pdev)
> +{
> + int i;
> + struct i5k_amb_data *data = platform_get_drvdata(pdev);
> +
> + hwmon_device_unregister(data->hwmon_dev);
> + device_remove_file(&pdev->dev, &dev_attr_name);
> + for (i = 0; i < data->num_attrs; i++)
> + device_remove_file(&pdev->dev, &data->attrs[i].s_attr.dev_attr);
> + kfree(data->attrs);
> + iounmap(data->amb_mmio);
> + release_mem_region(data->amb_base, data->amb_len);
> + platform_set_drvdata(pdev, NULL);
> + kfree(data);
> + return 0;
> +}
> +
> +static struct platform_driver i5k_amb_driver = {
> + .driver = {
> + .owner = THIS_MODULE,
> + .name = DRVNAME,
> + },
> + .probe = i5k_amb_probe,
> + .remove = __devexit_p(i5k_amb_remove),
> +};
> +
> +static int __init i5k_amb_init(void)
> +{
> + int res;
> +
> + res = platform_driver_register(&i5k_amb_driver);
> + if (res)
> + return res;
> +
> + res = i5k_amb_add();
> + if (res)
> + platform_driver_unregister(&i5k_amb_driver);
> +
> + return res;
> +}
> +
> +static void __exit i5k_amb_exit(void)
> +{
> + platform_device_unregister(amb_pdev);
> + platform_driver_unregister(&i5k_amb_driver);
> +}
> +
> +MODULE_AUTHOR("Darrick J. Wong <[EMAIL PROTECTED]>");
> +MODULE_DESCRIPTION("Intel 5000 chipset FB-DIMM AMB temperature sensor");
> +MODULE_LICENSE("GPL");
> +
> +module_init(i5k_amb_init);
> +module_exit(i5k_amb_exit);
> diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
> index 55f307f..d641b2f 100644
> --- a/include/linux/pci_ids.h
> +++ b/include/linux/pci_ids.h
> @@ -2241,6 +2241,9 @@
>  #define PCI_DEVICE_ID_INTEL_82915G_IG0x2582
>  #define PCI_DEVICE_ID_INTEL_82915GM_HB   0x2590
>  #define PCI_DEVICE_ID_INTEL_82915GM_IG   0x259

Re: [lm-sensors] [PATCH v3] hwmon: Add power meter spec to Documentation/hwmon/sysfs-interface

2007-10-16 Thread Mark M. Hoffman
Hi:

> On Tue, 9 Oct 2007 13:39:24 -0700, Darrick J. Wong wrote:
> > Update the hwmon sysfs interface documentation to include a specification
> > for power meters.
> > 
> > Signed-off-by: Darrick J. Wong <[EMAIL PROTECTED]>
> > ---
> > 
> >  Documentation/hwmon/sysfs-interface |   31 +++
> >  1 files changed, 31 insertions(+), 0 deletions(-)

* Jean Delvare <[EMAIL PROTECTED]> [2007-10-15 17:10:29 +0200]:
> Looks good, thanks for your patience :)
> 
> Acked-by: Jean Delvare <[EMAIL PROTECTED]>

Applied to hwmon-2.6.git/testing, thanks.

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: 2.6.23.1 x86 hardware monitoring bug?

2007-10-14 Thread Mark M. Hoffman
Hi Justin:

(added some CCs)

* Justin Piszcz <[EMAIL PROTECTED]> [2007-10-14 15:30:18 -0400]:
> As a regular user, I cannot see the sensors on the A-bit board, but I can 
> see the CPU temperature, how come I can see one but not the other?
> 
> Kernel: $ uname -a
> Linux mybox 2.6.23.1 #4 SMP PREEMPT Sun Oct 14 15:20:53 EDT 2007 i686 
> GNU/Linux
> Distribution: Debian Lenny
> 
> $ sensors
> abituguru3-isa-00e0
> Adapter: ISA adapter
> 
> coretemp-isa-
> Adapter: ISA adapter
> temp1:   +35°C  (high =   +85°C)
> 
> coretemp-isa-0001
> Adapter: ISA adapter
> temp1:   +36°C  (high =   +85°C)
> 
> As root:
> 
> # sensors
> abituguru3-isa-00e0
> Adapter: ISA adapter
> CPU Core:   +1.35 V  (min  +0.00 V, max  +1.60 V)
> DDR2:   +2.02 V  (min  +1.60 V, max  +2.40 V)
> DDR2 VTT:   +1.01 V  (min  +0.80 V, max  +1.20 V)
> CPU VTT 1.2V:   +1.22 V  (min  +0.95 V, max  +1.45 V)
> MCH & PCIE 1.5V:+1.50 V  (min  +1.20 V, max  +1.80 V)
> MCH 2.5V:   +2.58 V  (min  +2.00 V, max  +3.00 V)
> ICH 1.05V:  +1.04 V  (min  +0.85 V, max  +1.25 V)
> ATX +12V (24-Pin): +12.18 V  (min  +9.60 V, max +14.40 V)
> ATX +12V (4-pin):  +12.24 V  (min  +9.60 V, max +14.40 V)
> ATX +5V:+5.07 V  (min  +3.99 V, max  +6.00 V)
> +3.3V:  +3.40 V  (min  +2.64 V, max  +3.94 V)
> 5VSB:   +5.10 V  (min  +3.99 V, max  +6.00 V)
> CPU:  +43°C  (high =   +75°C, crit =   +85°C)
> System :  +38°C  (high =   +55°C, crit =   +65°C)
> PWM1: +43°C  (high =   +80°C, crit =   +90°C)
> PWM2: +43°C  (high =   +80°C, crit =   +90°C)
> PWM3: +46°C  (high =   +80°C, crit =   +90°C)
> PWM4: +40°C  (high =   +80°C, crit =   +90°C)
> CPU Fan:   1380 RPM  (min  300 RPM)
> NB Fan:   0 RPM  (min  300 RPM)
> SYS Fan:  0 RPM  (min  300 RPM)
> AUX1 Fan: 0 RPM  (min  300 RPM)
> AUX2 Fan: 0 RPM  (min  300 RPM)
> AUX3 Fan: 0 RPM  (min  300 RPM)
> OTES1 Fan:0 RPM  (min  300 RPM)
> 
> coretemp-isa-
> Adapter: ISA adapter
> Core 0:  +39°C  (high =   +85°C)
> 
> coretemp-isa-0001
> Adapter: ISA adapter
> Core 1:  +39°C  (high =   +85°C)

Strange.  What does 'ls -lH /sys/class/hwmon/hwmon*/device' say?

Regards,

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


[GIT PATCH] hwmon updates against v2.6.23

2007-10-14 Thread Mark M. Hoffman
ebugging messages
  hwmon: Update the sysfs interface documentation
  hwmon: (lm85) Use dynamic sysfs callbacks
  hwmon: (lm85) Export in5, in6 and in7 voltage channels
  hwmon: (lm85) Add individual alarm files
  hwmon: (lm85) Clean up the handling of additional resolution bits
  hwmon: (lm85) Let the user set the fan min limit to 0
  hwmon: (lm93) Use standard names for vid files
  hwmon: (it87) Add support for fan4 and fan5
  hwmon: Kconfig dependency cleanups
  hwmon: (lm90) Export temperature offset values
  hwmon: (lm78) Add individual alarm files
  hwmon: (lm87) Fix a division by zero
  hwmon: (lm87) Add individual alarm files
  hwmon: (thmc50) Don't create temp3 if not enabled
  hwmon: (thmc50) Fix a debug message
  hwmon: Fix the code examples in documentation
  hwmon: VRM is not read from registers
  hwmon: (w83781d) Add individual alarm and beep files
  hwmon: (lm87) Disable VID when it should be
  hwmon: (w83627hf) Fix setting fan min right after driver load
  hwmon: (w83627hf) don't assume bank 0

Jim Cromie (1):
  hwmon: (w83627hf) De-macro sysfs callback functions

Juerg Haefliger (3):
  hwmon: (dme1737) cleanups
  hwmon: (dme1737) group functions logically
  hwmon: (dme1737) Add sch311x support

Krzysztof Helt (5):
  hwmon: adm1021 clean ups
  hwmon: (thmc50) add individual alarm & fault files
  hwmon: (thmc50) Fix alarms clearing
  hwmon: (adm1021) dynamic sysfs callbacks conversion
  hwmon: (adm1021) individual alarm files

Mark M. Hoffman (5):
  hwmon: (f71882fg) trivial whitespace cleanup
  MAINTAINERS: update hwmon subsystem git trees
  hwmon: (dme1737) Fix some merge conflicts
  hwmon: (sis5595) fix sparse warning
  hwmon: (vt8231) fix sparse warning

Riku Voipio (1):
  hwmon: Add f75375s driver

Rudolf Marek (1):
  hwmon: (coretemp) Add support for Celeron 4xx

Satyam Sharma (1):
  hwmon: (coretemp) Remove bogus __cpuinitdata etc cleanup

Tony Jones (1):
  hwmon: Convert from class_device to device

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: [PATCH] ibmpex: Release IPMI user if hwmon registration fails

2007-10-11 Thread Mark M. Hoffman
Hi:

* Darrick J. Wong <[EMAIL PROTECTED]> [2007-10-09 15:08:24 -0700]:
> Roel Kluin <[EMAIL PROTECTED]> found a minor defect in the init code if
> hwmon device registration fails.
> 
> Signed-off-by: Darrick J. Wong <[EMAIL PROTECTED]>
> ---
> 
>  drivers/hwmon/ibmpex.c |3 +--
>  1 files changed, 1 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/hwmon/ibmpex.c b/drivers/hwmon/ibmpex.c
> index fe2c261..c462824 100644
> --- a/drivers/hwmon/ibmpex.c
> +++ b/drivers/hwmon/ibmpex.c
> @@ -498,8 +498,7 @@ static void ibmpex_register_bmc(int iface, struct device 
> *dev)
>   printk(KERN_ERR DRVNAME ": Error, unable to register hwmon "
>  "class device for interface %d\n",
>  data->interface);
> - kfree(data);
> - return;
> + goto out_user;
>   }
>  
>       /* finally add the new bmc data to the bmc data list */

Applied to hwmon-2.6.git/testing, thanks.

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: [PATCH v4] IBM power meter driver

2007-10-09 Thread Mark M. Hoffman
t; + return;
> + }
> +
> + data->address.addr_type = IPMI_SYSTEM_INTERFACE_ADDR_TYPE;
> + data->address.channel = IPMI_BMC_CHANNEL;
> + data->address.data[0] = 0;
> + data->interface = iface;
> + data->bmc_device = dev;
> +
> + /* Create IPMI messaging interface user */
> + err = ipmi_create_user(data->interface, &driver_data.ipmi_hndlrs,
> +data, &data->user);
> + if (err < 0) {
> + printk(KERN_ERR DRVNAME ": Error, unable to register user with "
> +"ipmi interface %d\n",
> +data->interface);
> + goto out;
> + }
> +
> + mutex_init(&data->lock);
> +
> + /* Initialize message */
> + data->tx_msgid = 0;
> + init_completion(&data->read_complete);
> + data->tx_message.netfn = PEX_NET_FUNCTION;
> + data->tx_message.cmd = PEX_COMMAND;
> + data->tx_message.data = data->tx_msg_data;
> +
> + /* Does this BMC support PowerExecutive? */
> + err = ibmpex_ver_check(data);
> + if (err)
> + goto out_user;
> +
> + /* Register the BMC as a HWMON class device */
> + data->hwmon_dev = hwmon_device_register(data->bmc_device);
> +
> + if (IS_ERR(data->hwmon_dev)) {
> + printk(KERN_ERR DRVNAME ": Error, unable to register hwmon "
> +"class device for interface %d\n",
> +data->interface);
> + kfree(data);
> + return;
> + }
> +
> + /* finally add the new bmc data to the bmc data list */
> + dev_set_drvdata(dev, data);
> + list_add_tail(&data->list, &driver_data.bmc_data);
> +
> + /* Now go find all the sensors */
> + err = ibmpex_find_sensors(data);
> + if (err) {
> + printk(KERN_ERR "Error %d allocating memory\n", err);
> + goto out_register;
> + }
> +
> + return;
> +
> +out_register:
> + hwmon_device_unregister(data->hwmon_dev);
> +out_user:
> + ipmi_destroy_user(data->user);
> +out:
> + kfree(data);
> +}
> +
> +static void ibmpex_bmc_delete(struct ibmpex_bmc_data *data)
> +{
> + int i, j;
> +
> + device_remove_file(data->bmc_device,
> +&sensor_dev_attr_reset_high_low.dev_attr);
> + device_remove_file(data->bmc_device, &sensor_dev_attr_name.dev_attr);
> + for (i = 0; i < data->num_sensors; i++)
> + for (j = 0; j < PEX_NUM_SENSOR_FUNCS; j++) {
> + if (!data->sensors[i].attr[j].dev_attr.attr.name)
> + continue;
> + device_remove_file(data->bmc_device,
> + &data->sensors[i].attr[j].dev_attr);
> + kfree(data->sensors[i].attr[j].dev_attr.attr.name);
> + }
> +
> + list_del(&data->list);
> + dev_set_drvdata(data->bmc_device, NULL);
> + hwmon_device_unregister(data->hwmon_dev);
> + ipmi_destroy_user(data->user);
> + kfree(data->sensors);
> + kfree(data);
> +}
> +
> +static void ibmpex_bmc_gone(int iface)
> +{
> + struct ibmpex_bmc_data *data = get_bmc_data(iface);
> +
> + if (!data)
> + return;
> +
> + ibmpex_bmc_delete(data);
> +}
> +
> +static void ibmpex_msg_handler(struct ipmi_recv_msg *msg, void 
> *user_msg_data)
> +{
> + struct ibmpex_bmc_data *data = (struct ibmpex_bmc_data *)user_msg_data;
> +
> + if (msg->msgid != data->tx_msgid) {
> + printk(KERN_ERR "Received msgid (%02x) and transmitted "
> +"msgid (%02x) mismatch!\n",
> +(int)msg->msgid,
> +(int)data->tx_msgid);
> + ipmi_free_recv_msg(msg);
> + return;
> + }
> +
> + data->rx_recv_type = msg->recv_type;
> + if (msg->msg.data_len > 0)
> + data->rx_result = msg->msg.data[0];
> + else
> + data->rx_result = IPMI_UNKNOWN_ERR_COMPLETION_CODE;
> +
> + if (msg->msg.data_len > 1) {
> + data->rx_msg_len = msg->msg.data_len - 1;
> + memcpy(data->rx_msg_data, msg->msg.data + 1, data->rx_msg_len);
> + } else
> + data->rx_msg_len = 0;
> +
> + ipmi_free_recv_msg(msg);
> + complete(&data->read_complete);
> +}
> +
> +static int __init ibmpex_init(void)
> +{
> + return ipmi_smi_watcher_register(&driver_data.bmc_events);
> +}
> +
> +static void __exit ibmpex_exit(void)
> +{
> + struct ibmpex_bmc_data *p, *next;
> +
> + ipmi_smi_watcher_unregister(&driver_data.bmc_events);
> + list_for_each_entry_safe(p, next, &driver_data.bmc_data, list)
> + ibmpex_bmc_delete(p);
> +}
> +
> +MODULE_AUTHOR("Darrick J. Wong <[EMAIL PROTECTED]>");
> +MODULE_DESCRIPTION("IBM PowerExecutive power/temperature sensor driver");
> +MODULE_LICENSE("GPL");
> +
> +module_init(ibmpex_init);
> +module_exit(ibmpex_exit);

Regards,

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: [PATCH] v3 of IBM power meter driver

2007-09-11 Thread Mark M. Hoffman
 BMC "
> +"interface %d.\n", data->interface);
> + return;
> + }
> +
> + data->address.addr_type = IPMI_SYSTEM_INTERFACE_ADDR_TYPE;
> + data->address.channel = IPMI_BMC_CHANNEL;
> + data->address.data[0] = 0;
> + data->interface = iface;
> + data->bmc_device = dev;
> +
> + /* Create IPMI messaging interface user */
> + err = ipmi_create_user(data->interface, &driver_data.ipmi_hndlrs,
> +data, &data->user);
> + if (err < 0) {
> + printk(KERN_ERR DRVNAME ": Error, unable to register user with "
> +"ipmi interface %d\n",
> +data->interface);
> + goto out;
> + }
> +
> + mutex_init(&data->lock);
> +
> + /* Initialize message */
> + data->tx_msgid = 0;
> + init_completion(&data->read_complete);
> + data->tx_message.netfn = PEX_NET_FUNCTION;
> + data->tx_message.cmd = PEX_COMMAND;
> + data->tx_message.data = data->tx_msg_data;
> +
> + /* Does this BMC support PowerExecutive? */
> + err = ibmpex_ver_check(data);
> + if (err)
> + goto out_user;
> +
> + /* Register the BMC as a HWMON class device */
> + data->class_dev = hwmon_device_register(data->bmc_device);
> +
> + if (IS_ERR(data->class_dev)) {
> + printk(KERN_ERR DRVNAME ": Error, unable to register hwmon "
> +"class device for interface %d\n",
> +data->interface);
> + kfree(data);
> + return;
> + }
> +
> + /* finally add the new bmc data to the bmc data list */
> + list_add_tail(&data->list, &driver_data.bmc_data);
> +
> + /* Now go find all the sensors */
> + err = ibmpex_find_sensors(data);
> + if (err) {
> + printk(KERN_ERR "Error %d allocating memory\n", err);
> + goto out_register;
> + }
> + 
> + return;
> +
> +out_register:
> + hwmon_device_unregister(data->class_dev);
> +out_user:
> + ipmi_destroy_user(data->user);
> +out:
> + kfree(data);
> +}
> +
> +static void ibmpex_bmc_delete(struct ibmpex_bmc_data *data)
> +{
> + int i, j;
> +
> + device_remove_file(data->bmc_device, &sensor_dev_attr_name.dev_attr);
> +     for (i = 0; i < data->num_sensors; i++)
> + for (j = 0; j < PEX_NUM_SENSOR_FUNCS; j++) {
> + if (!data->sensors[i].attr[j].dev_attr.attr.name)
> + continue;
> + device_remove_file(data->bmc_device,
> + &data->sensors[i].attr[j].dev_attr);
> + kfree(data->sensors[i].attr[j].dev_attr.attr.name);
> + }
> +
> + list_del(&data->list);
> + hwmon_device_unregister(data->class_dev);
> + ipmi_destroy_user(data->user);
> + if (data->sensors)
> + kfree(data->sensors);
> + kfree(data);
> +}
> +
> +static void ibmpex_bmc_gone(int iface)
> +{
> + struct ibmpex_bmc_data *data = get_bmc_data(iface);
> +
> + if (!data)
> + return;
> +
> + ibmpex_bmc_delete(data);
> +}
> +
> +static void ibmpex_msg_handler(struct ipmi_recv_msg *msg, void 
> *user_msg_data)
> +{
> + struct ibmpex_bmc_data *data = (struct ibmpex_bmc_data *)user_msg_data;
> +
> + if (msg->msgid != data->tx_msgid) {
> + printk(KERN_ERR "Received msgid (%02x) and transmitted "
> +"msgid (%02x) mismatch!\n",
> +(int)msg->msgid,
> +(int)data->tx_msgid);
> + ipmi_free_recv_msg(msg);
> + return;
> + }
> +
> + data->rx_recv_type = msg->recv_type;
> + if (msg->msg.data_len > 0)
> + data->rx_result = msg->msg.data[0];
> + else
> + data->rx_result = IPMI_UNKNOWN_ERR_COMPLETION_CODE;
> +
> + if (msg->msg.data_len > 1) {
> + data->rx_msg_len = msg->msg.data_len - 1;
> + memcpy(data->rx_msg_data, msg->msg.data + 1, data->rx_msg_len);
> + } else
> + data->rx_msg_len = 0;
> +
> + ipmi_free_recv_msg(msg);
> + complete(&data->read_complete);
> +}
> +
> +static int __init ibmpex_init(void)
> +{
> + return ipmi_smi_watcher_register(&driver_data.bmc_events);
> +}
> +
> +static void __exit ibmpex_exit(void)
> +{
> + struct ibmpex_bmc_data *p, *next;
> +
> + ipmi_smi_watcher_unregister(&driver_data.bmc_events);
> + list_for_each_entry_safe(p, next, &driver_data.bmc_data, list)
> + ibmpex_bmc_delete(p);
> +}
> +
> +MODULE_AUTHOR("Darrick J. Wong <[EMAIL PROTECTED]>");
> +MODULE_DESCRIPTION("IBM PowerExecutive power/temperature sensor driver");
> +MODULE_LICENSE("GPL");
> +
> +module_init(ibmpex_init);
> +module_exit(ibmpex_exit);

Regards,

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


[GIT PATCH] hwmon update against v2.6.23-rc5-git1

2007-09-09 Thread Mark M. Hoffman
Hi Linus:

Please pull from:
git://lm-sensors.org/kernel/mhoffman/hwmon-2.6.git release

You will get one patch (below), which fixes a potential regression from v2.6.22
(although AFAIK there have been no reports about this one.)

commit 15bde2f1a8e819213f54314505a5a0509673109b
Author: Jean Delvare <[EMAIL PROTECTED]>
Date:   Wed Aug 29 10:39:57 2007 +0200

hwmon: End of I/O region off-by-one

Fix an off-by-one error in the I/O region declaration of two
hardware monitoring drivers (lm78 and w83781d.) We were requesting
one extra port at the end of the region.

Signed-off-by: Jean Delvare <[EMAIL PROTECTED]>
Signed-off-by: Mark M. Hoffman <[EMAIL PROTECTED]>

diff --git a/drivers/hwmon/lm78.c b/drivers/hwmon/lm78.c
index 565c4e6..6eea347 100644
--- a/drivers/hwmon/lm78.c
+++ b/drivers/hwmon/lm78.c
@@ -882,7 +882,7 @@ static int __init lm78_isa_device_add(unsigned short 
address)
 {
struct resource res = {
.start  = address,
-   .end= address + LM78_EXTENT,
+   .end= address + LM78_EXTENT - 1,
.name   = "lm78",
.flags  = IORESOURCE_IO,
};
diff --git a/drivers/hwmon/w83781d.c b/drivers/hwmon/w83781d.c
index c95909c..dcc941a 100644
--- a/drivers/hwmon/w83781d.c
+++ b/drivers/hwmon/w83781d.c
@@ -1746,7 +1746,7 @@ w83781d_isa_device_add(unsigned short address)
 {
struct resource res = {
.start  = address,
-   .end= address + W83781D_EXTENT,
+   .end= address + W83781D_EXTENT - 1,
.name   = "w83781d",
.flags  = IORESOURCE_IO,
};

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: [PATCH] hwmon coretemp: Remove bogus __cpuinitdata etc cleanup

2007-09-02 Thread Mark M. Hoffman
Hi Satyam:

* Satyam Sharma <[EMAIL PROTECTED]> [2007-08-23 09:14:25 +0530]:
> 
> The CPU hotplug notifier_block coretemp_cpu_notifier is already defined
> inside an #ifdef HOTPLUG_CPU, therefore marking it as __cpuinitdata is
> quite a pointless thing to do.
> 
> Also, remove duplicate prototype of function coretemp_update_device()
> at the top of this file (another one already exists barely 10 lines
> above this one :-)
> 
> Signed-off-by: Satyam Sharma <[EMAIL PROTECTED]>

Applied to hwmon-2.6.git/testing, thanks.

> [ Rudolf, Mark, would it be acceptable to you to remove all the open
>   #ifdef HOTPLUG_CPU from this file and replace them with __cpuinit{data}
>   instead? That could increase size of modular builds, but would remain
>   consistent with rest of kernel, and make the file #ifdef-clean ... ]

I am not automatically repulsed by #ifdefs as some are, and in this case the
usage is pretty clear and easy to read (not to mention useful).

I would prefer to leave it.

>  drivers/hwmon/coretemp.c |4 +---
>  1 files changed, 1 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/hwmon/coretemp.c b/drivers/hwmon/coretemp.c
> index 7c17952..f7b0ef4 100644
> --- a/drivers/hwmon/coretemp.c
> +++ b/drivers/hwmon/coretemp.c
> @@ -58,8 +58,6 @@ struct coretemp_data {
>   u8 alarm;
>  };
>  
> -static struct coretemp_data *coretemp_update_device(struct device *dev);
> -
>  /*
>   * Sysfs stuff
>   */
> @@ -350,7 +348,7 @@ static int coretemp_cpu_callback(struct notifier_block 
> *nfb,
>   return NOTIFY_OK;
>  }
>  
> -static struct notifier_block __cpuinitdata coretemp_cpu_notifier = {
> +static struct notifier_block coretemp_cpu_notifier = {
>       .notifier_call = coretemp_cpu_callback,
>  };
>  #endif   /* !CONFIG_HOTPLUG_CPU */

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: [PATCH] [210/2many] MAINTAINERS - HARDWARE MONITORING

2007-08-13 Thread Mark M. Hoffman
Joe:

* [EMAIL PROTECTED] <[EMAIL PROTECTED]> [2007-08-12 23:28:20 -0700]:
> Add file pattern to MAINTAINER entry
> 
> Signed-off-by: Joe Perches <[EMAIL PROTECTED]>
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index e35e29c..f422277 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -2015,6 +2015,7 @@ L:  [EMAIL PROTECTED]
>  W:   http://www.lm-sensors.org/
>  T:   git lm-sensors.org:/kernel/mhoffman/hwmon-2.6.git
>  S:   Maintained
> +F:   drivers/hwmon/
>  
>  HARDWARE RANDOM NUMBER GENERATOR CORE
>  P:   Michael Buesch

I guess you know by now not to ever do that again.

If you collect the hwmon stuff into one (1) patch, I'll take it.

Now you'll excuse me while I drive a nail through my delete key.

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


[GIT PATCH] hwmon updates against ~v2.6.23-rc2-git

2007-08-13 Thread Mark M. Hoffman
Hi Linus:

Please pull from:
git://lm-sensors.org/kernel/mhoffman/hwmon-2.6.git release

You'll get four bugfixes.  This takes care of all known hwmon regressions, and
hopefully it's the last you'll hear from me before v2.6.23 goes final.

This patch series was also posted to the lm-sensors list yesterday:
http://lists.lm-sensors.org/pipermail/lm-sensors/2007-August/020843.html

Thanks & regards,

 drivers/hwmon/smsc47m1.c  |2 +
 drivers/hwmon/w83627ehf.c |   56 +---
 drivers/hwmon/w83781d.c   |4 +-
 3 files changed, 36 insertions(+), 26 deletions(-)

Jean Delvare (2):
  hwmon: (w83627ehf) don't assume bank 0
  hwmon: (smsc47m1) restore missing name attribute

Mark M. Hoffman (2):
  hwmon: fix w83781d temp sensor type setting
  hwmon: (w83627ehf) read fan_div values during probe

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: 2.6.23-rc1 regression: hwmon/w83627ehf: wrong fan speed

2007-08-12 Thread Mark M. Hoffman
Hi Jean:

* Jean Delvare <[EMAIL PROTECTED]> [2007-08-11 13:57:05 +0200]:
> Don't assume that the default bank is 0. For one thing, we don't even
> set it to 0 when the driver is loaded, so the initial state might be
> different. For another, something (say, the BIOS) might access the chip
> and leave with the bank set to something different, so assuming that
> the bank value is 0 is not safe.
> 
> Signed-off-by: Jean Delvare <[EMAIL PROTECTED]>
> ---
>  drivers/hwmon/w83627ehf.c |8 +++-
>  1 file changed, 3 insertions(+), 5 deletions(-)
> 
> --- linux-2.6.23-rc2.orig/drivers/hwmon/w83627ehf.c   2007-07-23 
> 16:44:35.0 +0200
> +++ linux-2.6.23-rc2/drivers/hwmon/w83627ehf.c2007-08-11 
> 12:55:58.0 +0200
> @@ -309,18 +309,16 @@ static inline int is_word_sized(u16 reg)
> || (reg & 0x00ff) == 0x55));
>  }
>  
> -/* We assume that the default bank is 0, thus the following two functions do
> -   nothing for registers which live in bank 0. For others, they respectively
> -   set the bank register to the correct value (before the register is
> -   accessed), and back to 0 (afterwards). */
> +/* Registers 0x50-0x5f are banked */
>  static inline void w83627ehf_set_bank(struct w83627ehf_data *data, u16 reg)
>  {
> - if (reg & 0xff00) {
> + if ((reg & 0x00f0) == 0x50) {
>   outb_p(W83627EHF_REG_BANK, data->addr + ADDR_REG_OFFSET);
>   outb_p(reg >> 8, data->addr + DATA_REG_OFFSET);
>   }
>  }
>  
> +/* Not strictly necessary, but play it safe for now */
>  static inline void w83627ehf_reset_bank(struct w83627ehf_data *data, u16 reg)
>  {
>   if (reg & 0xff00) {

Applied to hwmon-2.6.git/testing, thanks.

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


[PATCH] bad temperature values from w83781d in 2.6.22

2007-08-09 Thread Mark M. Hoffman
Hi Joerg:

> On Wed, Aug 08, 2007 at 11:56:42PM -0400, Mark M. Hoffman wrote:
> > Thanks for sending all that.  I see one bug clearly, and I'm pretty close to
> > seeing the other one.  But for tonight, I need sleep.

There's just one bug after all.  The second was a figment of my sleep-deprived
imagination.

> > In the meantime, please try this command as root, against the newer kernel,
> > *after* you've done 'sensors -s':
> > 
> > # i2cset -f 0 0x2d 0x5d 0x0e b
> > 
> > Wait > 2 seconds for the hardware to update itself, then run 'sensors' 
> > again.
> > I'm pretty sure you'll see the correct temps.

* Joerg Sommrey <[EMAIL PROTECTED]> [2007-08-09 09:09:15 +0200]:
> The displayed temperatures changed to 67.5°C / 66.0°C.  Still, this seems to
> be too high.  The power supply's fan runs too slow for such CPU
> temperatures. In older kernels it becomes noisy above 50°C.
> 
> Under load the temperatures shown are around 95°C, way too high.

My bad, there's a second i2cset command that would have done it.  Please try
this patch against v2.6.22.

* * * * *

commit af720da3a173153b00cebc129c48cd3a40af
Author: Mark M. Hoffman <[EMAIL PROTECTED]>
Date:   Thu Aug 9 08:12:46 2007 -0400

hwmon: fix w83781d temp sensor type setting

Commit 348753379a7704087603dad403603e825422fd9a introduced a regression that
caused temp2 and temp3 sensor type settings to be written to temp1 instead.
The result is that temp sensor readings could be way off.

Signed-off-by: Mark M. Hoffman <[EMAIL PROTECTED]>

diff --git a/drivers/hwmon/w83781d.c b/drivers/hwmon/w83781d.c
index f85b48f..c95909c 100644
--- a/drivers/hwmon/w83781d.c
+++ b/drivers/hwmon/w83781d.c
@@ -740,9 +740,9 @@ store_sensor(struct device *dev, struct device_attribute 
*da,
 static SENSOR_DEVICE_ATTR(temp1_type, S_IRUGO | S_IWUSR,
show_sensor, store_sensor, 0);
 static SENSOR_DEVICE_ATTR(temp2_type, S_IRUGO | S_IWUSR,
-   show_sensor, store_sensor, 0);
+   show_sensor, store_sensor, 1);
 static SENSOR_DEVICE_ATTR(temp3_type, S_IRUGO | S_IWUSR,
-   show_sensor, store_sensor, 0);
+   show_sensor, store_sensor, 2);
 
 /* I2C devices get this name attribute automatically, but for ISA devices
we must create it by ourselves. */


-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: [lm-sensors] bad temperature values from w83781d in 2.6.22

2007-08-08 Thread Mark M. Hoffman
Hi Joerg:

* Joerg Sommrey <[EMAIL PROTECTED]> [2007-08-08 17:17:16 +0200]:
> Hi Mark,
> 
> just to eliminate as many impacts as possible, I did:
> - reinstall the unmodified sensors.conf from Tyan's support page
> - power off before rebooting
> 
> A call to "sensors -s" is done without errors in all cases.
> The module parameters I use currently with both kernels:
> 
> options w83781d force_w83782d=0,0x2d force_subclients=0,0x2d,0x48,0x49
> options w83627hf force_addr=0x0c00
> 
> When I first realized the problem, I didn't use w83627hf yet.  Results
> are the same when w83781d is used as driver for w83627hf.
> Parameters in that case just from Tyan:
> 
> options w83781d force_w83782d=0,0x2d force_subclients=0,0x2d,0x48,0x49 
> force_w83627hf=0,0x2c force_subclients=0,0x2c,0x4a,0x4b init=0
> 
> "My" i2cdump doesn't accept an -y option, maybe a Debianism.  Results
> see below.

Newer i2cdump skips the 5-second warning when given -y, that's all.

> ### 2.6.21 ###
> Script started on Wed Aug  8 16:53:10 2007
> bear:~/hwmon# i2cdump 0 0x2d b 0 0x4e

(snip tons of results)

Thanks for sending all that.  I see one bug clearly, and I'm pretty close to
seeing the other one.  But for tonight, I need sleep.

In the meantime, please try this command as root, against the newer kernel,
*after* you've done 'sensors -s':

# i2cset -f 0 0x2d 0x5d 0x0e b

Wait > 2 seconds for the hardware to update itself, then run 'sensors' again.
I'm pretty sure you'll see the correct temps.

Regards,

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: [PATCH] Add missing newlines to some uses of dev_ messages

2007-08-08 Thread Mark M. Hoffman
* Joe Perches <[EMAIL PROTECTED]> [2007-08-07 18:09:39 -0700]:
> Found these while looking at printk uses.
> 
> Add missing newlines to dev_ uses
> Add missing KERN_ prefixes to multiline dev_s
> Fixed a wierd->weird spelling typo
> Added a newline to a printk
> 
> Signed-off-by:  Joe Perches <[EMAIL PROTECTED]>

Looks good.

>  drivers/hwmon/adm1026.c|2 +-
>  drivers/hwmon/lm63.c   |2 +-
>  drivers/hwmon/vt1211.c |2 +-
>  drivers/hwmon/w83791d.c|2 +-
>  drivers/hwmon/w83792d.c|4 +-

Acked-by: Mark M. Hoffman <[EMAIL PROTECTED]>

Regards,

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: bad temperature values from w83781d in 2.6.22

2007-08-07 Thread Mark M. Hoffman
Hi Joerg:

(I tried to follow-up using the gmane.org mail/news gateway... didn't seem
to work.)

* Joerg Sommrey <[EMAIL PROTECTED]> [2007-08-05 12:26:04 +0200]:
> Hi,
> 
> after upgrading from 2.6.21 to 2.6.22 the CPU temperatures shown by
> w83781d look unreal.  They were in a range from 40°C when idle to
> 75°C under full load with 2.6.21.  The values shown now are in a very
> small range from 77°C to 82°C.  From the (low) noise of the fan I can
> tell that the temperature is <50°C.
> The third temperature shown is completely wrong.
> 
> I have a Tyan Tiger MPX board with a w83782d chip. Output from
> "sensors":
> 
> w83782d-i2c-0-2d
> Adapter: SMBus AMD768 adapter at 80e0
>  +5 V: +4.81 V  (min =  +4.76 V, max =  +5.24 V)
> 3 VSB: +3.30 V  (min =  +2.85 V, max =  +3.15 V)   ALARM
> chs3 Fan: 2122 RPM  (min = 2657 RPM, div = 4)  ALARM
> VRM2 Temp:  -208°C  (high =  -176°C, hyst =  -181°C)   sensor = transistor 
> CPU1 Temp: +78.5°C  (high =   +80°C, hyst =   +75°C)   sensor = transistor   
> ALARM
> CPU2 Temp: +77.5°C  (high =   +80°C, hyst =   +75°C)   sensor = transistor   
> ALARM
> alarms:
> beep_enable:
>   Sound alarm enabled
> 
> # cat /sys/bus/i2c/devices/0-002d/temp*_input
> -209000
> 77500
> 77500
> 
> Any ideas?

Please run the following commands as root (against both kernel versions) and
reply-to-all with the results:

# modprobe i2c-dev
# i2cdump -y 0 0x2d b 0 0x4e
# i2cdump -y 0 0x48
# i2cdump -y 0 0x49

Also, can you confirm that you're using the sensors.conf from here:
http://www.tyan.com/support_download_utility.aspx?model=s.s2466

Finally, can you confirm that "sensors -s" is running (without error) some
time during system startup, w/ both kernel versions?

Thanks & regards,

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: 2.6.23-rc1 regression: hwmon/w83627ehf: wrong fan speed

2007-08-05 Thread Mark M. Hoffman
Hi Stefan:

* Stefan Richter <[EMAIL PROTECTED]> [2007-08-05 13:20:48 +0200]:
> Now that I booted from 2.6.22-rc5 to 2.6.23-rc2 I noticed that ksensors
> displayed 1/16 of the actual speed of the CPU fan (correct is ca. 1400
> RPM under light load) and 0 for the case fan (correct is ca. 480 RPM
> under light load).
> 
> I reverted patch
>   hwmon/w83627ehf: No need to initialize fan_min
> and the behaviour changed as follows:  ksensors displays the correct CPU
> fan speed when loaded for the first time after the w83627ehf was loaded,
> then drops to 1/16th the next time it refreshes the display.  (I
> configured 30s update interval in ksensors.)  But the case fan's speed
> is now correctly displayed all the time.  Ksensors' fan speed
> multipliers are configured as 1.
> 
> I then also reverted
>   hwmon/w83627ehf: Be quiet when no chip is found
>   hwmon/w83627ehf: Export the thermal sensor types
>   hwmon/w83627ehf: Enable VBAT monitoring
>   hwmon/w83627ehf: Add support for the VID inputs
>   hwmon/w83627ehf: Fix timing issues
>   hwmon/w83627ehf: Add error messages for two error cases
> one after another but it didn't change anything.  More surprisingly, if
> I put all patches including "No need to initialize fan_min" back in, the
> behaviour remains like after referting that single patch, i.e. wrong CPU
> fan speed after first display update, correct case fan speed.  I didn't
> reboot between tests though, I only unloaded and reloaded w83627ehf.
> 
> I wasn't able to revert
>   hwmon/w83627ehf: Convert to a platform driver
> to something that compiles but I didn't try very hard.
> 
> Kernel messages when I load the drivers:
> w83627ehf: unsupported chip ID: 0x
> w83627ehf: Found W83627EHG chip at 0x290
> The former message is normally suppressed by patch "Be quiet when no
> chip is found".  Mainboard is an MSI 945GT Speedster-A4R, userland is
> Gentoo's lm_sensors-2.10.1 and ksensors-0.7.3.
> 
> Booting back into 2.6.22-rc5 (which seems identical with 2.6.22 as far
> as w83627ehf is concerned) brings back the correct fan speeds.

Does this patch (against v2.6.23-rc2) fix it?

commit f15c50e703c14ff7d72c3cb34e8e55417476a290
Author: Mark M. Hoffman <[EMAIL PROTECTED]>
Date:   Sun Aug 5 12:19:01 2007 -0400

hwmon: read fan_div values during probe

This patch forces the driver to read the fan divider values during early 
init.
Otherwise, a call to store_fan_min() could access uninitialized variables.

Signed-off-by: Mark M. Hoffman <[EMAIL PROTECTED]>

diff --git a/drivers/hwmon/w83627ehf.c b/drivers/hwmon/w83627ehf.c
index c51ae2e..bca7fbc 100644
--- a/drivers/hwmon/w83627ehf.c
+++ b/drivers/hwmon/w83627ehf.c
@@ -421,6 +421,31 @@ static void w83627ehf_write_fan_div(struct w83627ehf_data 
*data, int nr)
}
 }
 
+static void w83627ehf_update_fan_div(struct w83627ehf_data *data)
+{
+   int i;
+
+   i = w83627ehf_read_value(data, W83627EHF_REG_FANDIV1);
+   data->fan_div[0] = (i >> 4) & 0x03;
+   data->fan_div[1] = (i >> 6) & 0x03;
+   i = w83627ehf_read_value(data, W83627EHF_REG_FANDIV2);
+   data->fan_div[2] = (i >> 6) & 0x03;
+   i = w83627ehf_read_value(data, W83627EHF_REG_VBAT);
+   data->fan_div[0] |= (i >> 3) & 0x04;
+   data->fan_div[1] |= (i >> 4) & 0x04;
+   data->fan_div[2] |= (i >> 5) & 0x04;
+   if (data->has_fan & ((1 << 3) | (1 << 4))) {
+   i = w83627ehf_read_value(data, W83627EHF_REG_DIODE);
+   data->fan_div[3] = i & 0x03;
+   data->fan_div[4] = ((i >> 2) & 0x03)
+| ((i >> 5) & 0x04);
+   }
+   if (data->has_fan & (1 << 3)) {
+   i = w83627ehf_read_value(data, W83627EHF_REG_SMI_OVT);
+   data->fan_div[3] |= (i >> 5) & 0x04;
+   }
+}
+
 static struct w83627ehf_data *w83627ehf_update_device(struct device *dev)
 {
struct w83627ehf_data *data = dev_get_drvdata(dev);
@@ -432,25 +457,7 @@ static struct w83627ehf_data 
*w83627ehf_update_device(struct device *dev)
if (time_after(jiffies, data->last_updated + HZ + HZ/2)
 || !data->valid) {
/* Fan clock dividers */
-   i = w83627ehf_read_value(data, W83627EHF_REG_FANDIV1);
-   data->fan_div[0] = (i >> 4) & 0x03;
-   data->fan_div[1] = (i >> 6) & 0x03;
-   i = w83627ehf_read_value(data, W83627EHF_REG_FANDIV2);
-   data->fan_div[2] = (i >> 6) & 0x03;
-   i = w83627ehf_read_value(data, W83627EHF_REG_VBAT);
-   da

Re: 2.6.23-rc1 regression: hwmon/w83627ehf: wrong fan speed

2007-08-05 Thread Mark M. Hoffman
Hi Stefan:

* Stefan Richter <[EMAIL PROTECTED]> [2007-08-05 16:51:07 +0200]:
> Mark M. Hoffman wrote:
> > It's more likely the patch before that:
> > 
> > hwmon/w83627ehf: Preserve speed reading when changing fan min
> 
> I reverted this patch alone and rebooted, still the same problem.
> After reboot:
>0 RPM for case fan,
>correct CPU fan speed, drops to 1/16 after kmsensors' first refresh
> After unloading and reloading the driver:
>correct speed of case fan,
>correct CPU fan speed, drops to 1/16 after kmsensors' first refresh

OK, thanks for trying that.  I'll keep looking here.

> > I'll reexamine the patch series here.  If you have time, it would help if 
> > you
> > could do a git bisect.  Use this command:
> > 
> > $ git bisect start v2.6.23-rc2 v2.6.22-rc5 drivers/hwmon/w83627ehf.c
> > 
> > Doing it this way will force you to reboot between tests; I think we would
> > need that anyway.
> 
> I'll try to reserve the time for that on some evening next week.
> Thanks,

There are a total of 9 patches between v2.6.22-rc5 and v2.6.23-rc2, so the
bisection shouldn't take long.  Also, please enable HWMON_DEBUG when you do
this, and send the resulting syslog messages.  Thanks.

Regards,

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: 2.6.23-rc1 regression: hwmon/w83627ehf: wrong fan speed

2007-08-05 Thread Mark M. Hoffman
Hi Stefan:

* Stefan Richter <[EMAIL PROTECTED]> [2007-08-05 13:20:48 +0200]:
> Now that I booted from 2.6.22-rc5 to 2.6.23-rc2 I noticed that ksensors
> displayed 1/16 of the actual speed of the CPU fan (correct is ca. 1400
> RPM under light load) and 0 for the case fan (correct is ca. 480 RPM
> under light load).
> 
> I reverted patch
>   hwmon/w83627ehf: No need to initialize fan_min
> and the behaviour changed as follows:  ksensors displays the correct CPU
> fan speed when loaded for the first time after the w83627ehf was loaded,
> then drops to 1/16th the next time it refreshes the display.  (I
> configured 30s update interval in ksensors.)  But the case fan's speed
> is now correctly displayed all the time.  Ksensors' fan speed
> multipliers are configured as 1.
> 
> I then also reverted
>   hwmon/w83627ehf: Be quiet when no chip is found
>   hwmon/w83627ehf: Export the thermal sensor types
>   hwmon/w83627ehf: Enable VBAT monitoring
>   hwmon/w83627ehf: Add support for the VID inputs
>   hwmon/w83627ehf: Fix timing issues
>   hwmon/w83627ehf: Add error messages for two error cases
> one after another but it didn't change anything.  More surprisingly, if
> I put all patches including "No need to initialize fan_min" back in, the
> behaviour remains like after referting that single patch, i.e. wrong CPU
> fan speed after first display update, correct case fan speed.  I didn't
> reboot between tests though, I only unloaded and reloaded w83627ehf.

It's not always sufficient to just reload the driver, especially when it's an
initialization problem as yours seems to be.  So what you're seeing there is
not too surprising.

> I wasn't able to revert
>   hwmon/w83627ehf: Convert to a platform driver
> to something that compiles but I didn't try very hard.

That's because a later patch removes the i2c-isa support on which this driver
depends, prior to this patch.  If you can use git to back up, that would be
easier.

That said, I doubt the "Convert to a platform driver" is the problem.  It's
more likely the patch before that:

hwmon/w83627ehf: Preserve speed reading when changing fan min

I'll reexamine the patch series here.  If you have time, it would help if you
could do a git bisect.  Use this command:

$ git bisect start v2.6.23-rc2 v2.6.22-rc5 drivers/hwmon/w83627ehf.c

Doing it this way will force you to reboot between tests; I think we would
need that anyway.

> Kernel messages when I load the drivers:
> w83627ehf: unsupported chip ID: 0x
> w83627ehf: Found W83627EHG chip at 0x290
> The former message is normally suppressed by patch "Be quiet when no
> chip is found".  Mainboard is an MSI 945GT Speedster-A4R, userland is
> Gentoo's lm_sensors-2.10.1 and ksensors-0.7.3.
> 
> Booting back into 2.6.22-rc5 (which seems identical with 2.6.22 as far
> as w83627ehf is concerned) brings back the correct fan speeds.

Regards,

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


[GIT PATCH] hwmon updates against ~v2.6.23-rc1-git8

2007-07-31 Thread Mark M. Hoffman
Hi Linus:

Please pull from:
git://lm-sensors.org/kernel/mhoffman/hwmon-2.6.git release

You'll get a handful of cleanups and bugfixes (including a couple that fix
regressions since 2.6.22).  The Macbook gets some additional sensors, and
there's also one brand new driver, which has spent some time in the latest -mm.

This patch series was also posted to the lm-sensors list yesterday:
http://lists.lm-sensors.org/pipermail/lm-sensors/2007-July/020730.html

Thanks & regards,

 Documentation/hwmon/adm1031  |4 +-
 Documentation/hwmon/thmc50   |   74 +++
 drivers/hwmon/Kconfig|   10 +
 drivers/hwmon/Makefile   |1 +
 drivers/hwmon/abituguru3.c   |5 +-
 drivers/hwmon/ams/ams-core.c |1 -
 drivers/hwmon/applesmc.c |   14 +-
 drivers/hwmon/dme1737.c  |2 +-
 drivers/hwmon/fscher.c   |4 +-
 drivers/hwmon/it87.c |2 +-
 drivers/hwmon/lm78.c |2 +-
 drivers/hwmon/lm90.c |2 +-
 drivers/hwmon/lm93.c |2 +-
 drivers/hwmon/pc87360.c  |2 +-
 drivers/hwmon/sis5595.c  |2 +-
 drivers/hwmon/smsc47m1.c |2 +-
 drivers/hwmon/thmc50.c   |  440 ++
 drivers/hwmon/via686a.c  |2 +-
 drivers/hwmon/vt8231.c   |4 +-
 drivers/hwmon/w83627hf.c |2 +-
 20 files changed, 554 insertions(+), 23 deletions(-)
 create mode 100644 Documentation/hwmon/thmc50
 create mode 100644 drivers/hwmon/thmc50.c

Adrian Bunk (1):
  hwmon: make abituguru3_read_increment_offset() static

Guillaume Chazarain (1):
  hwmon: Fix regression caused by typo in lm90.c

Hans de Goede (3):
  hwmon: fix lm78 detection regression
  hwmon: fscher control update bugfix
  hwmon: fscher read control bugfix

Hans-Jürgen Koch (1):
  hwmon: fix array overruns in lm93.c

Jean Delvare (2):
  hwmon: Add missing __devexit tags in various drivers
  hwmon: (adm1031) Fix broken links in documentation

Jesper Juhl (1):
  hwmon: clean up duplicate includes

Juerg Haefliger (1):
  hwmon: fix dme1737 temp fault attribute

Krzysztof Helt (1):
  hwmon: add support for THMC50 and ADM1022

Martin Szulecki (1):
  hwmon: (applesmc) add temperature sensors set for Macbook

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: [lm-sensors] [2.6 patch] make abituguru3_read_increment_offset() static

2007-07-29 Thread Mark M. Hoffman
Hi:

* Hans de Goede <[EMAIL PROTECTED]> [2007-07-29 18:08:46 +0200]:
> Adrian Bunk wrote:
> >abituguru3_read_increment_offset() can become static.
> >
> >Signed-off-by: Adrian Bunk <[EMAIL PROTECTED]>
> 
> Looks good, good catch.
> 
> Acked-by: Hans de Goede <[EMAIL PROTECTED]>
> 
> >
> >---
> >--- linux-2.6.23-rc1-mm1/drivers/hwmon/abituguru3.c.old  2007-07-26 
> >08:56:33.0 +0200
> >+++ linux-2.6.23-rc1-mm1/drivers/hwmon/abituguru3.c  2007-07-26 
> >08:57:00.0 +0200
> >@@ -691,8 +691,9 @@
> > 
> > /* Sensor settings are stored 1 byte per offset with the bytes
> >placed add consecutive offsets. */
> >-int abituguru3_read_increment_offset(struct abituguru3_data *data, u8 
> >bank,
> >-u8 offset, u8 count, u8 *buf, int offset_count)
> >+static int abituguru3_read_increment_offset(struct abituguru3_data *data,
> >+u8 bank, u8 offset, u8 count,
> >+            u8 *buf, int offset_count)
> > {
> > int i, x;
> > 
> >

Applied to hwmon-2.6.git/testing, thanks.

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: [PATCH] Fix regression caused by typo in lm90.c

2007-07-29 Thread Mark M. Hoffman
Hi:

> On 7/26/2007, "Guillaume Chazarain" <[EMAIL PROTECTED]> wrote:
> >diff -r 4cad6fced1a8 drivers/hwmon/lm90.c
> >--- a/drivers/hwmon/lm90.c   Thu Jul 26 13:44:58 2007 -0700
> >+++ b/drivers/hwmon/lm90.c   Tue Jul 24 00:02:52 2007 +0200
> >@@ -585,7 +585,7 @@ static int lm90_detect(struct i2c_adapte
> >  * those of the man_id register.
> >  */
> > if (chip_id == man_id
> >- && (address == 0x4F || address == 0x4D)
> >+ && (address == 0x4C || address == 0x4D)
> >  && (reg_config1 & 0x1F) == (man_id & 0x0F)
> >  && reg_convrate <= 0x09) {
> > kind = max6657;

* Jean Delvare <[EMAIL PROTECTED]> [2007-07-27 10:07:45 +0200]:
> Signed-off-by: Jean Delvare <[EMAIL PROTECTED]>

Applied to hwmon-2.6.git/testing, thanks.

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: [PATCH] hwmon: Add missing __devexit tags in various drivers

2007-07-24 Thread Mark M. Hoffman
latform_device *pdev)
>  {
>   struct vt8231_data *data = platform_get_drvdata(pdev);
>   int i;
> --- linux-2.6.23-pre.orig/drivers/hwmon/w83627hf.c2007-07-22 
> 11:51:49.0 +0200
> +++ linux-2.6.23-pre/drivers/hwmon/w83627hf.c 2007-07-22 11:56:48.0 
> +0200
> @@ -384,7 +384,7 @@ struct w83627hf_sio_data {
>  
>  
>  static int w83627hf_probe(struct platform_device *pdev);
> -static int w83627hf_remove(struct platform_device *pdev);
> +static int __devexit w83627hf_remove(struct platform_device *pdev);
>  
>  static int w83627hf_read_value(struct w83627hf_data *data, u16 reg);
>  static int w83627hf_write_value(struct w83627hf_data *data, u16 reg, u16 
> value);
> 
> 

Applied to hwmon-2.6.git/testing, thanks.

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: [PATCH][07/37] Clean up duplicate includes in drivers/hwmon/

2007-07-24 Thread Mark M. Hoffman
Hi Jesper:

* Jesper Juhl <[EMAIL PROTECTED]> [2007-07-21 17:02:01 +0200]:
> Hi,
> 
> This patch cleans up duplicate includes in
>   drivers/hwmon/
> 
> 
> Signed-off-by: Jesper Juhl <[EMAIL PROTECTED]>
> ---
> 
> diff --git a/drivers/hwmon/ams/ams-core.c b/drivers/hwmon/ams/ams-core.c
> index 6db9737..a112a03 100644
> --- a/drivers/hwmon/ams/ams-core.c
> +++ b/drivers/hwmon/ams/ams-core.c
> @@ -23,7 +23,6 @@
>  #include 
>  #include 
>  #include 
> -#include 
>  #include 
>  #include 
>  

Applied to hwmon-2.6.git/testing, thanks.

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: drivers/hwmon/lm93.c: array overruns

2007-07-24 Thread Mark M. Hoffman
* Hans-Jürgen Koch <[EMAIL PROTECTED]> [2007-07-23 09:36:57 +0200]:
> Am Montag 23 Juli 2007 02:54 schrieb Adrian Bunk:
> > The Coverity checker spotted the following array overruns
> > in drivers/hwmon/lm93.c:
> > 
> > <--  snip  -->
> > 
> > ...
> > struct lm93_data {
> > ...
> > struct {
> > u8 min;
> > u8 max;
> > } temp_lim[3];
> > ...
> > };
> > ...
> > static void lm93_update_client_common(struct lm93_data *data,
> >   struct i2c_client *client)
> > {
> > ...
> > for (i = 0; i < 4; i++) {
> > data->temp_lim[i].min =
> > lm93_read_byte(client, LM93_REG_TEMP_MIN(i));
> > data->temp_lim[i].max =
> > lm93_read_byte(client, LM93_REG_TEMP_MAX(i));
> > }
> > ...
> > 
> > <--  snip  -->
> 
> This patch should fix it. Thanks a lot, Adrian!
> 
> 
> This fixes an array overflow bug. We have 4 pairs of min/max temperature 
> limits, not 3.
> 
> Signed-off-by: Hans J. Koch <[EMAIL PROTECTED]>
> 
> --
> Index: linux-2.6.23-rc/drivers/hwmon/lm93.c
> ===
> --- linux-2.6.23-rc.orig/drivers/hwmon/lm93.c 2007-07-23 09:22:56.0 
> +0200
> +++ linux-2.6.23-rc/drivers/hwmon/lm93.c  2007-07-23 09:29:37.0 
> +0200
> @@ -234,7 +234,7 @@
>   struct {
>   u8 min;
>   u8 max;
> - } temp_lim[3];
> + } temp_lim[4];
>  
>   /* vin1 - vin16: low and high limits */
>   struct {
> 
> 

Applied to testing, thanks.

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


[GIT PATCH] hwmon patches against 2.6.22

2007-07-19 Thread Mark M. Hoffman
 to a platform driver
  hwmon: Use platform_device_add_data()
  hwmon: Fault files naming convention
  hwmon/via686a: Temperature interrupt configuration fix
  hwmon/via686a: Convert to a platform driver
  hwmon/via686a: Use dynamic sysfs callbacks
  hwmon/sis5595: Convert to a platform driver
  hwmon/sis5595: Use dynamic sysfs callbacks
  hwmon/sis5595: Use PCI_REVISION_ID
  hwmon: Fix a potential race condition on unload
  hwmon/w83627ehf: Preserve speed reading when changing fan min
  hwmon/smsc47b397: Don't report missing fans as spinning at 82 RPM
  hwmon: Improve the pwmN_enable documentation
  hwmon/w83627ehf: Fix timing issues
  hwmon/w83627ehf: Add support for the VID inputs
  hwmon/w83627ehf: Enable VBAT monitoring
  hwmon/w83627ehf: Export the thermal sensor types
  hwmon/w83627ehf: No need to initialize fan_min
  hwmon/w83627ehf: Be quiet when no chip is found
  i2c: Delete the i2c-isa pseudo bus driver

Juerg Haefliger (3):
  hwmon: New SMSC DME1737 driver
  hwmon/dme1737: Add documentation
  hwmon: add SCH5317 to smsc47b397 driver

Mark M. Hoffman (1):
  hwmon: New maintainer

Phil Endecott (1):
  hwmon/f71805f: Add temperature-tracking fan control mode

Rainer Birkenmaier (1):
  hwmon/lm90: Add support for the Maxim MAX6680/MAX6681

Roger Lucas (1):
  hwmon: Convert vt8231 to a platform driver

Rudolf Marek (1):
  hwmon/it87: Add IT8726F support

corentin.labbe (1):
  hwmon: convert it87 to platform driver

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: [lm-sensors] [2.6 patch] make coretemp_device_remove() static

2007-07-08 Thread Mark M. Hoffman
Hi Jean, Adrian:

* Jean Delvare <[EMAIL PROTECTED]> [2007-07-07 21:22:28 +0200]:
> Hi Adrian,
> 
> On Fri, 6 Jul 2007 01:23:06 +0200, Adrian Bunk wrote:
> > coretemp_device_remove() can become static.
> > 
> > Signed-off-by: Adrian Bunk <[EMAIL PROTECTED]>
> 
> Obviously correct.
> 
> Acked-by: Jean Delvare <[EMAIL PROTECTED]>
> 
> > ---
> > --- linux-2.6.22-rc6-mm1/drivers/hwmon/coretemp.c.old   2007-07-04 
> > 20:46:05.0 +0200
> > +++ linux-2.6.22-rc6-mm1/drivers/hwmon/coretemp.c   2007-07-04 
> > 20:46:20.0 +0200
> > @@ -318,7 +318,7 @@
> >  }
> >  
> >  #ifdef CONFIG_HOTPLUG_CPU
> > -void coretemp_device_remove(unsigned int cpu)
> > +static void coretemp_device_remove(unsigned int cpu)
> >  {
> > struct pdev_entry *p, *n;
> > mutex_lock(&pdev_list_mutex);

Applied to my testing tree; thanks.

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: [lm-sensors] [PATCH 3/5] use mutex instead of semaphore in SMSC LPC47M192 driver

2007-07-01 Thread Mark M. Hoffman
Hi Matthias:

* Matthias Kaehlcke <[EMAIL PROTECTED]> [2007-07-01 18:32:24 +0200]:
> The SMSC LPC47M192 driver uses a semaphore as mutex. Use the mutex API
> instead of the (binary) semaphore.
> 
> Signed-off-by: Matthias Kaehlcke <[EMAIL PROTECTED]>

Already in my testing tree[1] and therefore in latest -mm as well.

[1] 
http://lm-sensors.org/kernel?p=kernel/mhoffman/hwmon-2.6.git;a=shortlog;h=testing

Regards,

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


New hwmon maintainer

2007-06-09 Thread Mark M. Hoffman
Hi Andrew:

I am maintaining a git tree for the hwmon subsystem now.  You may pull from
it here:

git://lm-sensors.org/kernel/mhoffman/hwmon-2.6.git testing

The current contents include the remainder of Jean Delvare's quilt patch
series, plus a single patch to MAINTAINERS.  Once you start pulling from
this git tree, Jean said he will delete his patch series entirely.

BTW: None of these patches are needed before 2.6.23.

Thanks & regards,

PS: Thanks for your good work and help, Jean.

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: [lm-sensors] Hardware monitoring subsystem maintainer position is open

2007-04-15 Thread Mark M. Hoffman
Hi Jean, et al:

* Jean Delvare <[EMAIL PROTECTED]> [2007-04-10 15:02:27 +0200]:
> I am resigning from my role as hardware monitoring subsystem
> (drivers/hwmon) maintainer. This is too much work for me, I do not have
> the necessary bandwidth to review all the incoming patches, in
> particular new drivers, in a timely manner. Patch authors have been
> complaining about this repeatedly. This is no fun for them, and even
> less for me, so I'd rather let someone else with more spare time take
> care of it. If there are volunteers, this is the right time to speak up.
> 
> I will still be maintaining the individual hardware monitoring drivers
> I am listed for in file MAINTAINERS (adm1025, f71805f, lm83 and lm90)
> as well as the I2C subsystem. No change here.
> 
> I will continue to feed -mm with pending hwmon patches until 2.6.21
> final is released, then I'll send everything I have to Linus for
> 2.6.22-rc1, the last of which will be:
>  (...)

/me throws hat in

I volunteer to become the new MAINTAINER, but in a much more limited sense
of the term than Jean is/was.  I can take care of a couple git trees, and do
some detailed reviews when I have time.  For the most part, I will have to
rely on others to do reviews as well.

I would not be volunteering for this role, if Juerg and others had not also
volunteered to be more active reviewers.

As for the discussions later in this thread about process... IMHO that's a
little premature.  I intend to get brand new stuff into -mm perhaps a little
earlier than Jean did... but it still ain't going to Linus before it's ready.
Other than that, I would rather just see what works for me and for you (other
hwmon authors).

Assuming no one else wants the job (ruik?) I'll start working with Jean to
get things set up as soon as I can.

Thanks & regards,

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: [-mm patch] remove quirk_sis_96x_compatible()

2007-01-14 Thread Mark M. Hoffman
Hi Adrian:

> On Sun, Jan 07, 2007 at 10:40:49AM -0500, Mark M. Hoffman wrote:
> > It's just cruft from the original quirk.  The "compatible" printk could have
> > had value as a diagnostic in case the new quirk didn't work for some reason,
> > but I never saw any complaints about it (apart from the link order problem,
> > which is something different.)  It's safe to remove by now.

* Adrian Bunk <[EMAIL PROTECTED]> [2007-01-14 14:46:32 +0100]:
> Below is a patch to remove it.
> 
> Since 2.6.0-test10, all quirk_sis_96x_compatible() had any effect on
> was a printk().
> 
> This patch therefore removes it.
> 
> Signed-off-by: Adrian Bunk <[EMAIL PROTECTED]>

Acked-by: Mark M. Hoffman <[EMAIL PROTECTED]>

> ---
> 
>  drivers/pci/quirks.c |   15 ---
>  1 file changed, 15 deletions(-)
> 
> --- linux-2.6.20-rc4-mm1/drivers/pci/quirks.c.old 2007-01-14 
> 09:58:01.0 +0100
> +++ linux-2.6.20-rc4-mm1/drivers/pci/quirks.c 2007-01-14 09:58:37.0 
> +0100
> @@ -1141,8 +1141,6 @@
>   *
>   * We can also enable the sis96x bit in the discovery register..
>   */
> -static int __devinitdata sis_96x_compatible = 0;
> -
>  #define SIS_DETECT_REGISTER 0x40
>  
>  static void quirk_sis_503(struct pci_dev *dev)
> @@ -1158,9 +1156,6 @@
>   return;
>   }
>  
> - /* Make people aware that we changed the config.. */
> - printk(KERN_WARNING "Uncovering SIS%x that hid as a SIS503 
> (compatible=%d)\n", devid, sis_96x_compatible);
> -
>   /*
>* Ok, it now shows up as a 96x.. run the 96x quirk by
>* hand in case it has already been processed.
> @@ -1172,16 +1167,6 @@
>  DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SI,   PCI_DEVICE_ID_SI_503,   
> quirk_sis_503 );
>  DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_SI,   PCI_DEVICE_ID_SI_503,   
> quirk_sis_503 );
>  
> -static void __init quirk_sis_96x_compatible(struct pci_dev *dev)
> -{
> - sis_96x_compatible = 1;
> -}
> -DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SI,   PCI_DEVICE_ID_SI_645,   
> quirk_sis_96x_compatible );
> -DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SI,   PCI_DEVICE_ID_SI_646,   
> quirk_sis_96x_compatible );
> -DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SI,   PCI_DEVICE_ID_SI_648,   
> quirk_sis_96x_compatible );
> -DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SI,   PCI_DEVICE_ID_SI_650,   
> quirk_sis_96x_compatible );
> -DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SI,   PCI_DEVICE_ID_SI_651,       
> quirk_sis_96x_compatible );
> -DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SI,   PCI_DEVICE_ID_SI_735,   
> quirk_sis_96x_compatible );
>  
>  /*
>   * On ASUS A8V and A8V Deluxe boards, the onboard AC97 audio controller

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: [-mm patch] drivers/pci/quirks.c: cleanup

2007-01-09 Thread Mark M. Hoffman
Hi Jean:

> On Mon, 8 Jan 2007 22:02:26 -0500, Mark M. Hoffman wrote:
> > 3) I've just confirmed that this quirk is still broken on recent FC6 
> > kernels.
> > Perhaps they should have picked my patch out of their bugzilla, but they 
> > didn't.

* Jean Delvare <[EMAIL PROTECTED]> [2007-01-09 14:17:21 +0100]:
> I am worried about the Intel/Asus SMBus quirk then, which affects many
> more users than the SiS SMBus one, and would suffer from a reordering as
> well.

Intel/Asus users on FC[456] would surely have screamed if that was true.  But I
was curious so I looked deeper.  There is a fundamental difference between the
Intel SMBus quirks and the SiS SMBus quirk...

Intel:
1) The first quirk keys off the host bridge, setting a flag.  
2) The second quirk keys off the LPC, enabling the SMBus if the flag was set.

SiS:
1) The first quirk keys off the *old* LPC ID... this causes the ID to change.[1]
2) The second quirk keys off the *new* LPC ID; this one enables the SMBus.

In the SiS case, both quirks key off the *same* *device*, but with potentially
different IDs.  The quirk list ordering matters there because the list is
scanned only once per device.

For the Intel case, the only ordering that matters is that the host bridge
device is added [pci_device_add()] before the LPC; AFAICT, that is reliable,
perhaps even by definition.

So I don't think you have to worry about the Intel SMBus quirks.

[1] That's right, the first quirk actually changes the PCI device ID of the
LPC.  Unless it actually *is* older hardware... in which case the quirk just
tickles a reserved bit that is ignored.  Thank you SiS, that's just beautiful.

Regards,

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


[PATCH 2.6.20-rc4] i2c/pci: fix sis96x smbus quirk once and for all

2007-01-08 Thread Mark M. Hoffman

The sis96x SMBus PCI device depends on two different quirks to run
in a specific order.  Apart from being fragile, this was found to
actually break on (at least) recent FC4, FC5, and FC6 kernels.  This
patch fixes the quirks so that they work without relying on the
compiler and/or linker to put them in any specific order.

http://lists.lm-sensors.org/pipermail/lm-sensors/2006-April/015962.html
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=189719

I tested this patch.  Please apply.

Signed-off-by: Mark M. Hoffman <[EMAIL PROTECTED]>

---
 drivers/pci/quirks.c |   14 --
 1 file changed, 8 insertions(+), 6 deletions(-)

--- linux-2.6.orig/drivers/pci/quirks.c
+++ linux-2.6/drivers/pci/quirks.c
@@ -1117,10 +1117,11 @@ DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_I
 static void quirk_sis_96x_smbus(struct pci_dev *dev)
 {
u8 val = 0;
-   printk(KERN_INFO "Enabling SiS 96x SMBus.\n");
-   pci_read_config_byte(dev, 0x77, &val);
-   pci_write_config_byte(dev, 0x77, val & ~0x10);
pci_read_config_byte(dev, 0x77, &val);
+   if (val & 0x10) {
+   printk(KERN_INFO "Enabling SiS 96x SMBus.\n");
+   pci_write_config_byte(dev, 0x77, val & ~0x10);
+   }
 }
 
 /*
@@ -1152,11 +1153,12 @@ static void quirk_sis_503(struct pci_dev
printk(KERN_WARNING "Uncovering SIS%x that hid as a SIS503 
(compatible=%d)\n", devid, sis_96x_compatible);
 
/*
-* Ok, it now shows up as a 96x.. The 96x quirks are after
-* the 503 quirk in the quirk table, so they'll automatically
-* run and enable things like the SMBus device
+* Ok, it now shows up as a 96x.. run the 96x quirk by
+* hand in case it has already been processed.
+* (depends on link order, which is apparently not guaranteed)
 */
dev->device = devid;
+   quirk_sis_96x_smbus(dev);
 }
 
 static void __init quirk_sis_96x_compatible(struct pci_dev *dev)
-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: [-mm patch] drivers/pci/quirks.c: cleanup

2007-01-08 Thread Mark M. Hoffman
Jean:

* Jean Delvare <[EMAIL PROTECTED]> [2007-01-08 12:10:55 +0100]:
> Hi Mark,
> 
> On Sun, 7 Jan 2007 10:44:41 -0500, Mark M. Hoffman wrote:
> > Hi Jean, Adrian:
> > 
> > > On Tue, 19 Dec 2006 05:13:15 +0100, Adrian Bunk wrote:
> > > > @@ -1122,6 +1123,14 @@ static void quirk_sis_96x_smbus(struct p
> > > > pci_write_config_byte(dev, 0x77, val & ~0x10);
> > > > pci_read_config_byte(dev, 0x77, &val);
> > > >  }
> > > > +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_961,   
> > > > quirk_sis_96x_smbus );
> > > > +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_962,   
> > > > quirk_sis_96x_smbus );
> > > > +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_963,   
> > > > quirk_sis_96x_smbus );
> > > > +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_LPC,   
> > > > quirk_sis_96x_smbus );
> > > > +DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_961,   
> > > > quirk_sis_96x_smbus );
> > > > +DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_962,   
> > > > quirk_sis_96x_smbus );
> > > > +DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_963,   
> > > > quirk_sis_96x_smbus );
> > > > +DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_LPC,   
> > > > quirk_sis_96x_smbus );
> > > >  
> > > >  /*
> > > >   * ... This is further complicated by the fact that some SiS96x south
> > > > @@ -1158,6 +1167,8 @@ static void quirk_sis_503(struct pci_dev
> > > >  */
> > > > dev->device = devid;
> > > >  }
> > > > +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_503,   
> > > > quirk_sis_503 );
> > > > +DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_503,   
> > > > quirk_sis_503 );
> > 
> > * Jean Delvare <[EMAIL PROTECTED]> [2007-01-05 09:52:33 +0100]:
> > > Was this patch tested on the SiS-based boards which need these quirks?
> > > I think you broke them. If I remember correctly, quirk_sis_503() must
> > > be called before quirk_sis_96x_smbus() for some boards to work
> > > properly, and we currently rely on the linking order to guarantee that.
> > > Likewise, quirk_sis_96x_compatible() should be called before
> > > quirk_sis_503() otherwise the warning message in quirk_sis_503() will
> > > no longer be correct.
> > > 
> > > So if you want to put the calls right after the quirk functions, you
> > > need to reorder the functions themselves as well. Feel free to add a
> > > comment explaining the order requirement so that nobody breaks it
> > > accidentally again in the future.
> > 
> > It is fragile for this code to depend on link order; Adrian's obvious and
> > trivial cleanups broke it.  Not only that, but some FC kernels had/have the
> > link order reversed such that this quirk is broken anyway.
> 
> The former problem would be addressed just fine by a proper ordering
> (as Adrian's patch was attempting to bring) and a comment explaining
> the dependency.

That's still fragile.  Someone is bound to reorder the stupid things by
mistake (again).  I'm tired of screwing around with this quirk already.
The patch that I sent last May would have fixed it permanently.  And the
funny part is that *you* suggested the fix. ;)

> > I sent a patch for this back in May:
> > http://lists.lm-sensors.org/pipermail/lm-sensors/2006-May/016113.html
> > 
> > There was some discussion on the linux-pci mailing list as well; can't seem 
> > to
> > find an archive of that though.  Basically, it was not understood how the FC
> > kernels could have a reversed link order.  I never followed up on it, my 
> > bad.
> 
> As long as it isn't explained, I call it a compiler bug in FC.

1) What standard specifies the link order of objects in a module?  I have seen
other compilers reorder objects this way.

2) So what if it was a compiler bug?  I guess we don't allow patches to work
around compiler bugs.

3) I've just confirmed that this quirk is still broken on recent FC6 kernels.
Perhaps they should have picked my patch out of their bugzilla, but they didn't.

> > At any rate, can we please get the patch above applied?  I will send a new 
> > one
> > if necessary.
> 
> This is a PCI patch, so I'm not the one picking it. I seem to remember
> Greg was fine with the patch except for the comment about the linking
> order.

I'll resend it shortly...

Regards,

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: [-mm patch] drivers/pci/quirks.c: cleanup

2007-01-07 Thread Mark M. Hoffman
Hi Jean, Adrian, et. al.:

* Jean Delvare <[EMAIL PROTECTED]> [2007-01-07 12:30:13 +0100]:
> Hi Adrian,
> 
> On Sat, 6 Jan 2007 00:29:13 +0100, Adrian Bunk wrote:
> > While looking at the code, I also noted the following:
> > 
> > quirk_sis_96x_compatible() is pretty useless since all it does is to set 
> > a static variable that is only used in a printk().
> > 
> > quirk_sis_96x_compatible() was added with:
> > 
> > 
> > 2003/05/13 13:48:50-07:00 mhoffman
> > [PATCH] i2c: Add SiS96x I2C/SMBus driver
> > 
> > This patch adds support for the SMBus of SiS96x south
> > bridges.  It is based on i2c-sis645.c from the lm sensors
> > project, which never made it into an official kernel and
> > was anyway mis-named.
> > 
> > This driver works on my SiS 645/961 board vs w83781d.
> > 
> > 
> > It's usage in
> > 
> > 
> > static void __init quirk_sis_503_smbus(struct pci_dev *dev)
> > {
> >if (sis_96x_compatible)
> >quirk_sis_96x_smbus(dev);
> > }
> > 
> > 
> > Was removed in
> > 
> > 
> > Author: torvalds 
> > Date:   Thu Oct 30 19:03:38 2003 +
> > 
> > Stop SIS 96x chips from lying about themselves.
> > 
> > Some machines with the SIS 96x southbridge have it set up
> > to claim it is a SIS 503 chip. That breaks irq routing logic
> > among other things. Fix it properly by making everybody aware
> > of the duplicity.
> > 
> > 
> > Was this intentional (and quirk_sis_96x_compatible() should be removed), 
> > or is this a bug that should be fixed?
> 
> I noticed this too in April 2006, see:
> http://lists.lm-sensors.org/pipermail/lm-sensors/2006-April/016016.html
> 
> Quoting myself back then:
> "The whole sis_96x_compatible stuff looks superfluous now. It was used
> before 2.6.0-test10, but we could certainly get rid of it now."
> 
> I do not think there is a bug here, or someone would have complained by
> now. Note though that I do not have a SiS-based motherboard to test on.
> Mark may be able to help with testing.

It's just cruft from the original quirk.  The "compatible" printk could have
had value as a diagnostic in case the new quirk didn't work for some reason,
but I never saw any complaints about it (apart from the link order problem,
which is something different.)  It's safe to remove by now.

Regards,

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: [-mm patch] drivers/pci/quirks.c: cleanup

2007-01-07 Thread Mark M. Hoffman
Hi Jean, Adrian:

> On Tue, 19 Dec 2006 05:13:15 +0100, Adrian Bunk wrote:
> > @@ -1122,6 +1123,14 @@ static void quirk_sis_96x_smbus(struct p
> > pci_write_config_byte(dev, 0x77, val & ~0x10);
> > pci_read_config_byte(dev, 0x77, &val);
> >  }
> > +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_961,   
> > quirk_sis_96x_smbus );
> > +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_962,   
> > quirk_sis_96x_smbus );
> > +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_963,   
> > quirk_sis_96x_smbus );
> > +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_LPC,   
> > quirk_sis_96x_smbus );
> > +DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_961,   
> > quirk_sis_96x_smbus );
> > +DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_962,   
> > quirk_sis_96x_smbus );
> > +DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_963,   
> > quirk_sis_96x_smbus );
> > +DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_LPC,   
> > quirk_sis_96x_smbus );
> >  
> >  /*
> >   * ... This is further complicated by the fact that some SiS96x south
> > @@ -1158,6 +1167,8 @@ static void quirk_sis_503(struct pci_dev
> >  */
> > dev->device = devid;
> >  }
> > +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_503,   
> > quirk_sis_503 );
> > +DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_503,   
> > quirk_sis_503 );

* Jean Delvare <[EMAIL PROTECTED]> [2007-01-05 09:52:33 +0100]:
> Was this patch tested on the SiS-based boards which need these quirks?
> I think you broke them. If I remember correctly, quirk_sis_503() must
> be called before quirk_sis_96x_smbus() for some boards to work
> properly, and we currently rely on the linking order to guarantee that.
> Likewise, quirk_sis_96x_compatible() should be called before
> quirk_sis_503() otherwise the warning message in quirk_sis_503() will
> no longer be correct.
> 
> So if you want to put the calls right after the quirk functions, you
> need to reorder the functions themselves as well. Feel free to add a
> comment explaining the order requirement so that nobody breaks it
> accidentally again in the future.

It is fragile for this code to depend on link order; Adrian's obvious and
trivial cleanups broke it.  Not only that, but some FC kernels had/have the
link order reversed such that this quirk is broken anyway.

I sent a patch for this back in May:
http://lists.lm-sensors.org/pipermail/lm-sensors/2006-May/016113.html

There was some discussion on the linux-pci mailing list as well; can't seem to
find an archive of that though.  Basically, it was not understood how the FC
kernels could have a reversed link order.  I never followed up on it, my bad.

At any rate, can we please get the patch above applied?  I will send a new one
if necessary.

Regards,

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: [lm-sensors] I2C block reads with i2c-viapro: testers wanted

2005-08-11 Thread Mark M. Hoffman
Hi Jean:

* Jean Delvare <[EMAIL PROTECTED]> [2005-08-09 23:13:28 +0200]:
> I am implementing I2C block reads in the i2c-viapro driver, and am
> looking for testers. I was able to test on my own VT8237R chip, it works
> OK, now I'd need to know how it works on older VIA south bridges, namely
> the VT8235 and the VT82C686B. South bridges before that (VT82C686A,
> VT8233A and older) are supposed not to work according to the datasheets,
> but a confirmation would be welcome, who knows, it might simply not be
> documented.
> 
> My experimental patch follows. I have enabled the I2C block read
> function for all VIA south bridges, so that it can be tested on all
> chips. I'll restrict that after the test phase, of course.

I fired it up on one of the older chipsets...

# lspci
00:00.0 Host bridge: VIA Technologies, Inc. VT82C693A/694x [Apollo PRO133x] 
(rev c4)
00:01.0 PCI bridge: VIA Technologies, Inc. VT82C598/694x [Apollo MVP3/Pro133x 
AGP]
00:07.0 ISA bridge: VIA Technologies, Inc. VT82C596 ISA [Mobile South] (rev 23)
00:07.1 IDE interface: VIA Technologies, Inc. 
VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 10)
00:07.2 USB Controller: VIA Technologies, Inc. VT82x UHCI USB 1.1 
Controller (rev 11)
00:07.3 Host bridge: VIA Technologies, Inc. VT82C596 Power Management (rev 30)

# lspci -n
00:00.0 Class 0600: 1106:0691 (rev c4)
00:01.0 Class 0604: 1106:8598
00:07.0 Class 0601: 1106:0596 (rev 23)
00:07.1 Class 0101: 1106:0571 (rev 10)
00:07.2 Class 0c03: 1106:3038 (rev 11)
00:07.3 Class 0600: 1106:3050 (rev 30)

As you suspected, it didn't work.

# i2cdump -y 0 0x50 i
Error: Block read failed, return code 0

> On my system, the dump is down from over 2 seconds without the patch to
> below 0.2 second with the patch, which proves how efficient I2C block
> reads are and explains why I want to implement this function.

I also found something interesting, by accident.  With a stock FC4 kernel,
the i2cdump clocked at 1.02s total.  With 2.6.13-rc6, it took 5.11s!  The
only relevant difference that I can see is that the FC4 kernel uses HZ of
1000 while my 2.6.13-rc6 kernel uses 100.  Because the i2c-viapro is a
polling driver, it becomes slower as HZ decreases.

I.e. the improvement you are seeing with byte vs. block xfers is quite
exaggerated because we poll the device relatively infrequently.  *All*
the xfers are slower than they could be w/ a non-polling driver.

Regards,

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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


Re: make -j4 gets stuck w/ ccache over NFS - solved!

2005-03-09 Thread Mark M. Hoffman
Hi Tridge, Greg, et. al.:

I wrote, some months ago:
>  > I'm using ccache version 2.4 [1].  I just changed ~/.ccache to a symbolic
>  > link to a directory which is NFS mounted [2].  The kernel source itself is
>  > on a local FS.  With the ccache suitably primed, when I do a kernel compile
>  > using 'make -j4' it seems to get stuck for seconds at a time.  When it gets
>  > unstuck, it blows through a handful of files and then gets stuck again.

* [EMAIL PROTECTED] <[EMAIL PROTECTED]> [2004-12-08 18:25:59 +1100]:
> I'd suggest you first narrow down the problem to either being a
> locking problem or a file IO problem. To do that, change lock_fd() in
> util.c in ccache to just "return 0;". That will mean the ccache stats
> file could become corrupted, but if it runs fast then you know that it
> is a locking problem. I have noticed severe speed problem with NFS
> locking on Linux previosly, which is why I mention this as a
> possibility.
> 
> Note that removing this locking will not cause ccache to produce
> incorrect object files, it will just mean the stats printed with
> "ccache -s" may be inaccurate.

Thanks for the suggestions.  It wasn't very important to me so I didn't
make time to follow up on it.  I was just playing w/ ccache at the time.

Finally I noticed this patch from -mm1... and it solves the problem.

nfsd--lockd-dont-try-to-match-callback-requests-against-export-table.patch

How I tested: I applied the first 12 patches in 2.6.11-mm1; the above
mentioned was last - couldn't reproduce the bug.  When I unapplied just
that one, I saw it again.

original bug report:
http://marc.theaimsgroup.com/?l=linux-kernel&m=110238645132535&w=3

Greg: have you considered this one for 2.6.11.x?

Thanks,

-- 
Mark M. Hoffman
[EMAIL PROTECTED]

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