Hwmon for Taco
PATCH 1/1 Hwmon for Taco
The taco has an fpga that controls the fan. It must be feed the current temperature from an ad7414 chip. This patch adds a patched ad7414 temp sensor from the ppc arch and adds a small driver (taco-dtm) to read the temperature and feed it to the fpga.
Without this driver, the taco will just run the fan at high speed all the time. I don't even know if this is a problem since cases for the taco are very rare and I don't have one. I have never actually heard the fan running in a case. Although I did see an early version of the fan spin up and spin down.
Cheers,
Sean
drivers/hwmon/Kconfig +19 -0
@@ -57,6 +57,16 @@ config SENSORS_ABITUGURU3 This driver can also be built as a module. If so, the module will be called abituguru3. +config SENSORS_AD7414 + tristate "Analog Devices AD7414" + depends on I2C && EXPERIMENTAL + help + If you say yes here you get support for the Analog Devices + AD7414 temperature monitoring chip. + + This driver can also be built as a module. If so, the module + will be called ad7414. + config SENSORS_AD7418 tristate "Analog Devices AD7416, AD7417 and AD7418" depends on I2C && EXPERIMENTAL
@@ -763,4 +773,13 @@ config HWMON_DEBUG_CHIP a problem with I2C support and want to see more of what is going on. +config TACO_DTM + tristate "PIKA DTM (Dynamic Thermal Management)" + depends on HWMON && TACO + select SENSORS_AD7414 + default y + help + Say Y here if you have a PIKA Taco board. This driver is + required for the DTM to work properly. + endif # HWMON
drivers/hwmon/Makefile +3 -0
@@ -15,6 +15,7 @@ obj-$(CONFIG_SENSORS_W83791D) += w83791d.o obj-$(CONFIG_SENSORS_ABITUGURU) += abituguru.o obj-$(CONFIG_SENSORS_ABITUGURU3)+= abituguru3.o +obj-$(CONFIG_SENSORS_AD7414) += ad7414.o obj-$(CONFIG_SENSORS_AD7418) += ad7418.o obj-$(CONFIG_SENSORS_ADM1021) += adm1021.o obj-$(CONFIG_SENSORS_ADM1025) += adm1025.o
@@ -69,6 +70,8 @@ obj-$(CONFIG_SENSORS_VT8231) += vt8231.o obj-$(CONFIG_SENSORS_W83627EHF) += w83627ehf.o obj-$(CONFIG_SENSORS_W83L785TS) += w83l785ts.o +obj-$(CONFIG_TACO_DTM) += taco-dtm.o + ifeq ($(CONFIG_HWMON_DEBUG_CHIP),y) EXTRA_CFLAGS += -DDEBUG endif
hwmon/ad7414.c new file +311 -0
311 lines not on this page · raw message
hwmon/taco-dtm.c new file +78 -0
78 lines not on this page · raw message
Quoted 17 lines
hwmon/ad7414.c new file +1
-0+module_exit (ad7414_exit);hwmon/taco-dtm.c new file +12
-0@@ -0,0 +1,78 @@ +/* +* drivers/hwmon/taco-dtm.c +* +* Overview: On the Taco, the fpga controls the fan. This provides +* the temperature to the fpga. +* +* Copyright (c) 2008 PIKA Technologies +* Sean MacLennan <[email protected]> +* +* This program is free software; you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by the +* Free Software Foundation; either version 2 of the License, or (at your
hwmon/taco-dtm.c line 22
Quoted 10 lines
hwmon/taco-dtm.c new file +10
-0+* option) any later version. +* +*/ + +#include <linux/module.h> +#include <linux/kthread.h> +#include <linux/io.h> + + +#define TACO_FPGA_BASE 0x80000000
That should be in the device-tree...
Cheers,
Ben.
Quoted 30 lines · Benjamin Herrenschmidt
Quoted 17 lines
hwmon/ad7414.c new file +1
-0+module_exit (ad7414_exit);hwmon/taco-dtm.c new file +12
-0@@ -0,0 +1,78 @@ +/* +* drivers/hwmon/taco-dtm.c +* +* Overview: On the Taco, the fpga controls the fan. This provides +* the temperature to the fpga. +* +* Copyright (c) 2008 PIKA Technologies +* Sean MacLennan <[email protected]> +* +* This program is free software; you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by the +* Free Software Foundation; either version 2 of the License, or (at your hwmon/taco-dtm.c line 22
Quoted 10 lines
hwmon/taco-dtm.c new file +10
-0+* option) any later version. +* +*/ + +#include <linux/module.h> +#include <linux/kthread.h> +#include <linux/io.h> + + +#define TACO_FPGA_BASE 0x80000000That should be in the device-tree...
Quoted 5 lines
Cheers,
Ben.
It is in the device tree, I just forgot to update the driver to use it. Thanks.
Cheers,
Sean
Quoted 6 lines · Benjamin Herrenschmidt
That should be in the device-tree...
Cheers,
Ben.
Now in the device tree. The name of the file has changed.
Cheers,
Sean
drivers/hwmon/Kconfig +10 -0
@@ -57,6 +57,16 @@ config SENSORS_ABITUGURU3 This driver can also be built as a module. If so, the module will be called abituguru3. +config SENSORS_AD7414 + tristate "Analog Devices AD7414" + depends on I2C && EXPERIMENTAL + help + If you say yes here you get support for the Analog Devices + AD7414 temperature monitoring chip. + + This driver can also be built as a module. If so, the module + will be called ad7414. +
config SENSORS_AD7418
tristate "Analog Devices AD7416, AD7417 and AD7418"
depends on I2C && EXPERIMENTAL@@ -763,4 +773,13 @@ config HWMON_DEBUG_CHIP
a problem with I2C support and want to see more of what is going on.
+config PIKA_DTM
+ tristate "PIKA DTM (Dynamic Thermal Management)" + depends on HWMON && WARP + select SENSORS_AD7414 + default y + help
+ Say Y here if you have a PIKA Warp(tm) Appliance. This driver is
+ required for the DTM to work properly.
+
endif # HWMON
drivers/hwmon/Makefile +0 -0
@@ -15,6 +15,7 @@ obj-$(CONFIG_SENSORS_W83791D) += w83791d.o
obj-$(CONFIG_SENSORS_ABITUGURU) += abituguru.o
obj-$(CONFIG_SENSORS_ABITUGURU3)+= abituguru3.o
+obj-$(CONFIG_SENSORS_AD7414) += ad7414.o
obj-$(CONFIG_SENSORS_AD7418) += ad7418.o
obj-$(CONFIG_SENSORS_ADM1021) += adm1021.o
obj-$(CONFIG_SENSORS_ADM1025) += adm1025.o
@@ -69,7 +70,8 @@ obj-$(CONFIG_SENSORS_VT8231) += vt8231.o
obj-$(CONFIG_SENSORS_W83627EHF) += w83627ehf.o
obj-$(CONFIG_SENSORS_W83L785TS) += w83l785ts.o
+obj-$(CONFIG_PIKA_DTM) += pika-dtm.o
+
ifeq ($(CONFIG_HWMON_DEBUG_CHIP),y)EXTRA_CFLAGS += -DDEBUG
endif
-
hwmon/pika-dtm.c 2008-01-08 01:23:32.000000000 -0500 renamed from dev/null 2005-11-20 22:22:37.000000000 -0500 +87 -0
87 lines not on this page · raw message
hwmon/ad7414.c 2008-01-05 20:36:06.000000000 -0500 renamed from dev/null 2005-11-20 22:22:37.000000000 -0500 +296 -0
296 lines not on this page · raw message
Quoted 22 lines · Sean MacLennan
drivers/hwmon/Kconfig +10
-0@@ -57,6 +57,16 @@ config SENSORS_ABITUGURU3 This driver can also be built as a module. If so, the module will be called abituguru3. +config SENSORS_AD7414 + tristate "Analog Devices AD7414" + depends on I2C && EXPERIMENTAL + help + If you say yes here you get support for the Analog Devices + AD7414 temperature monitoring chip. + + This driver can also be built as a module. If so, the module + will be called ad7414. + config SENSORS_AD7418 tristate "Analog Devices AD7416, AD7417 and AD7418" depends on I2C && EXPERIMENTAL
drivers/hwmon/Kconfig config HWMON_DEBUG_CHIP · line 779
Quoted 7 lines
drivers/hwmon/Kconfig +4
-0@@ -763,4 +773,13 @@ config HWMON_DEBUG_CHIP a problem with I2C support and want to see more of what is going on. +config PIKA_DTM + tristate "PIKA DTM (Dynamic Thermal Management)" + depends on HWMON && WARP + select SENSORS_AD7414
select is dangerous because it bypasses dependency checking. Make it 'depends on' instead.
drivers/hwmon/Kconfig config HWMON_DEBUG_CHIP · line 784
Quoted 5 lines
drivers/hwmon/Kconfig +5
-0+ default y + help + Say Y here if you have a PIKA Warp(tm) Appliance. This driver is + required for the DTM to work properly. +
This patch should be split in 2; one for the AD7414 driver and one for the thermal management driver.
hwmon/pika-dtm.c 2008-01-08 01:23:32.000000000 -0500
Quoted 25 lines
drivers/hwmon/Kconfig +0
-0endif # HWMONdrivers/hwmon/Makefile +3
-1@@ -15,6 +15,7 @@ obj-$(CONFIG_SENSORS_W83791D) += w83791d.o obj-$(CONFIG_SENSORS_ABITUGURU) += abituguru.o obj-$(CONFIG_SENSORS_ABITUGURU3)+= abituguru3.o +obj-$(CONFIG_SENSORS_AD7414) += ad7414.o obj-$(CONFIG_SENSORS_AD7418) += ad7418.o obj-$(CONFIG_SENSORS_ADM1021) += adm1021.o obj-$(CONFIG_SENSORS_ADM1025) += adm1025.o@@ -69,7 +70,8 @@ obj-$(CONFIG_SENSORS_VT8231) += vt8231.o obj-$(CONFIG_SENSORS_W83627EHF) += w83627ehf.o obj-$(CONFIG_SENSORS_W83L785TS) += w83l785ts.o +obj-$(CONFIG_PIKA_DTM) += pika-dtm.o + ifeq ($(CONFIG_HWMON_DEBUG_CHIP),y) EXTRA_CFLAGS += -DDEBUG endif -hwmon/pika-dtm.c 2008-01-08 01:23:32.000000000 -0500 renamed from dev/null 2005-11-20 22:22:37.000000000 -0500 +0
-0
This is *very* board specific and not very complex a driver. It should probably live with the platform code somewhere in arch/powerpc/platforms. You can use the machine_device_initcall() hook to kick off the thread.
Quoted 11 lines
hwmon/pika-dtm.c 2008-01-08 01:23:32.000000000 -0500 renamed from dev/null 2005-11-20 22:22:37.000000000 -0500 +10
-0@@ -0,0 +1,87 @@ +/* + * drivers/hwmon/pika-dtm.c + * + * Overview: On the Warp, the fpga controls the fan. This provides + * the temperature to the fpga. + * + * Copyright (c) 2008 PIKA Technologies + * Sean MacLennan <[email protected]> + * + * This program is free software; you can redistribute it and/or
Quoted 6 lines
modify it
+ * under the terms of the GNU General Public License as
published by the
+ * Free Software Foundation; either version 2 of the License, or
(at your
+ * option) any later version.
Your mailer chewed up the patch here (line wrap).
hwmon/pika-dtm.c 2008-01-08 01:23:32.000000000 -0500 line 23
Quoted 10 lines
+ *
+ */hwmon/pika-dtm.c 2008-01-08 01:23:32.000000000 -0500 renamed from dev/null 2005-11-20 22:22:37.000000000 -0500 +8
-0+ +#include <linux/module.h> +#include <linux/kthread.h> +#include <linux/io.h> +#include <linux/of_platform.h> + + +extern int ad7414_get_temp(void);
Bad! Function decls must be in common header files.
hwmon/pika-dtm.c 2008-01-08 01:23:32.000000000 -0500 line 34
Quoted 11 lines
hwmon/pika-dtm.c 2008-01-08 01:23:32.000000000 -0500 renamed from dev/null 2005-11-20 22:22:37.000000000 -0500 +11
-0+ +static unsigned __iomem *dtm_fpga; +static struct task_struct *dtm_thread; + + +static int pika_dtm_thread(void *arg) +{ + while(!kthread_should_stop()) { + int temp = ad7414_get_temp(); + + // Write to FPGA
Style; use /* */, not //
Quoted 13 lines
hwmon/pika-dtm.c 2008-01-08 01:23:32.000000000 -0500 renamed from dev/null 2005-11-20 22:22:37.000000000 -0500 +13
-0+ out_be32(dtm_fpga, temp); + + set_current_state(TASK_INTERRUPTIBLE); + schedule_timeout(HZ); + } + + return 0; +} + + +int __init pika_dtm_init(void) +{ + struct device_node *np;
hwmon/pika-dtm.c 2008-01-08 01:23:32.000000000 -0500 line 57
Quoted 10 lines
hwmon/pika-dtm.c 2008-01-08 01:23:32.000000000 -0500 renamed from dev/null 2005-11-20 22:22:37.000000000 -0500 +10
-0+ struct resource res; + + if((np = of_find_compatible_node(NULL, NULL, "pika,fpga")) == NULL) { + printk(KERN_ERR __FILE__ ": Unable to find FPGA\n"); + return -ENOENT; + } + + /* We do not call of_iomap here since it would map in the entire + * fpga space, which is overkill for 4 bytes. + */
iomapping is not expensive; just map the whole space (it's going to map a minimum 4k page anyway). The code will be easier to read if you just use of_iomap().
Quoted 126 lines
hwmon/pika-dtm.c 2008-01-08 01:23:32.000000000 -0500 renamed from dev/null 2005-11-20 22:22:37.000000000 -0500 +30
-0+ if(of_address_to_resource(np, 0, &res) || + (dtm_fpga = ioremap(res.start + 0x20, 4)) == NULL) { + printk(KERN_ERR __FILE__ ": Unable to map FPGA\n"); + return -ENOENT; + } + + dtm_thread = kthread_run(pika_dtm_thread, NULL, "pika-dtm"); + + if(IS_ERR(dtm_thread)) { + iounmap(dtm_fpga); + printk(KERN_ERR __FILE__ ": Unable to start PIKA DTM thread\n"); + return PTR_ERR(dtm_thread); + } + + return 0; +} +module_init(pika_dtm_init); + + +void __exit pika_dtm_exit(void) +{ + kthread_stop(dtm_thread); + iounmap(dtm_fpga); +} +module_exit(pika_dtm_exit); + + +MODULE_DESCRIPTION("PIKA DTM driver"); +MODULE_AUTHOR("Sean MacLennan"); +MODULE_LICENSE("GPL");hwmon/ad7414.c 2008-01-05 20:36:06.000000000 -0500 renamed from dev/null 2005-11-20 22:22:37.000000000 -0500 +7
-0@@ -0,0 +1,296 @@ +/* + * An hwmon driver for the Analog Devices AD7414 + * + * Copyright 2006 Stefan Roese <[email protected]>, DENX Software Engineering + * + * Based on ad7418.c + * Copyright 2006 Tower Technologies, Alessandro Zummo<[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ */hwmon/ad7414.c 2008-01-05 20:36:06.000000000 -0500 renamed from dev/null 2005-11-20 22:22:37.000000000 -0500 +44
-0+ +#include <linux/module.h> +#include <linux/jiffies.h> +#include <linux/i2c.h> +#include <linux/hwmon.h> +#include <linux/err.h> +#include <linux/mutex.h> +#include <linux/delay.h> + + +#define DRV_VERSION "0.2" + +/* straight from the datasheet */ +#define AD7414_TEMP_MIN (-55000) +#define AD7414_TEMP_MAX 125000 + +/* Addresses to scan */ +static unsigned short normal_i2c[] = { 0x48, 0x4a, I2C_CLIENT_END }; + +/* Insmod parameters */ +I2C_CLIENT_INSMOD; + +/* AD7414 registers */ +#define AD7414_REG_TEMP 0x00 +#define AD7414_REG_CONF 0x01 +#define AD7414_REG_T_HIGH 0x02 +#define AD7414_REG_T_LOW 0x03 + +struct ad7414_data { + struct i2c_client client; + struct device *dev; + struct mutex lock; + char valid; /* !=0 if following fields are valid */ + unsigned long last_updated; /* In jiffies */ + u16 temp_input; /* Register values */ + u8 temp_max; + u8 temp_min; + u8 temp_alert; + u8 temp_max_flag; + u8 temp_min_flag; +}; + +static int ad7414_attach_adapter(struct i2c_adapter *adapter); +static int ad7414_detect(struct i2c_adapter *adapter, int address, intkind);
hwmon/ad7414.c 2008-01-05 20:36:06.000000000 -0500 renamed from dev/null 2005-11-20 22:22:37.000000000 -0500 +34
-0+static int ad7414_detach_client(struct i2c_client *client); + +static struct i2c_driver ad7414_driver = { + .driver = { + .name = "ad7414", + }, + .attach_adapter = ad7414_attach_adapter, + .detach_client = ad7414_detach_client, +}; + +/* + * TEMP: 0.001C/bit (-55C to +125C) + * REG: (0.5C/bit, two's complement) << 7 + */ +static inline int AD7414_TEMP_FROM_REG(u16 reg) +{ + /* use integer division instead of equivalent right shift to + * guarantee arithmetic shift and preserve the sign + */ + return ((s16)reg / 128) * 500; +} + +/* All registers are word-sized, except for the configuration registers. + * AD7414 uses a high-byte first convention, which is exactly opposite to + * the usual practice. + */ +static int ad7414_read(struct i2c_client *client, u8 reg) +{ + if (reg == AD7414_REG_TEMP) + return swab16(i2c_smbus_read_word_data(client, reg)); + else + return i2c_smbus_read_byte_data(client, reg); +} +
hwmon/ad7414.c 2008-01-05 20:36:06.000000000 -0500 line 101
Quoted 10 lines
hwmon/ad7414.c 2008-01-05 20:36:06.000000000 -0500 renamed from dev/null 2005-11-20 22:22:37.000000000 -0500 +10
-0+static int ad7414_write(struct i2c_client *client, u8 reg, u16 value) +{ + return i2c_smbus_write_byte_data(client, reg, value); +} + +/* PIKA Taco - we need to access the temperature in kernel mode. As a + * hack we store the device here. This works because we only have one + * ad7414 chip. + */ +static struct device *ad7414_dev;
Can you use a list_head instead? That would allow multiple instances.
This driver shouldn't contain board specific code.
hwmon/ad7414.c 2008-01-05 20:36:06.000000000 -0500 line 106
Quoted 5 lines
hwmon/ad7414.c 2008-01-05 20:36:06.000000000 -0500 renamed from dev/null 2005-11-20 22:22:37.000000000 -0500 +5
-0+ +static void ad7414_init_client(struct i2c_client *client) +{ + /* TODO: anything to do here??? */ + ad7414_dev = &client->dev;
ick.
Quoted 20 lines
hwmon/ad7414.c 2008-01-05 20:36:06.000000000 -0500 renamed from dev/null 2005-11-20 22:22:37.000000000 -0500 +20
-0+} + +static struct ad7414_data *ad7414_update_device(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct ad7414_data *data = i2c_get_clientdata(client); + + mutex_lock(&data->lock); + + if (time_after(jiffies, data->last_updated + HZ + HZ / 2) + || !data->valid) { + dev_dbg(&client->dev, "starting ad7414 update\n"); + + data->temp_input = ad7414_read(client, AD7414_REG_TEMP); + data->temp_alert = (data->temp_input >> 5) & 0x01; + data->temp_max_flag = (data->temp_input >> 4) & 0x01; + data->temp_min_flag = (data->temp_input >> 3) & 0x01; + data->temp_max = ad7414_read(client, AD7414_REG_T_HIGH); + data->temp_min = ad7414_read(client, AD7414_REG_T_LOW); +
hwmon/ad7414.c 2008-01-05 20:36:06.000000000 -0500 line 136
Quoted 10 lines
hwmon/ad7414.c 2008-01-05 20:36:06.000000000 -0500 renamed from dev/null 2005-11-20 22:22:37.000000000 -0500 +10
-0+ data->last_updated = jiffies; + data->valid = 1; + } + + mutex_unlock(&data->lock); + + return data; +} + +int ad7414_get_temp(void)
maybe ad7414_get_temp(int index)? Would allow for multiple instances.
hwmon/ad7414.c 2008-01-05 20:36:06.000000000 -0500 line 142
Quoted 6 lines
hwmon/ad7414.c 2008-01-05 20:36:06.000000000 -0500 renamed from dev/null 2005-11-20 22:22:37.000000000 -0500 +6
-0+{ + if(ad7414_dev) { + struct ad7414_data *data = ad7414_update_device(ad7414_dev); + return data->temp_input; + } else + return 0x1f4; // +125
Style; c++ comment
Cheers,
g.
Signature · 2 lines
Grant Likely, B.Sc., P.Eng. Secret Lab Technologies Ltd.
Quoted 5 lines · Grant Likely
This is *very* board specific and not very complex a driver. It should probably live with the platform code somewhere in
arch/powerpc/platforms. You can use themachine_device_initcall()hook to kick off the thread.
Doh, this is why I post to this list. The platform code already had an obvious place to put this, so I moved it there.
I will cleanup the ad7414.c driver and repost the patch.
Cheers,
Sean
Ok, here is the ad7414 only. taco-dtm is no more!
Cheers,
Sean
drivers/hwmon/Kconfig +0 -0
@@ -57,6 +57,16 @@ config SENSORS_ABITUGURU3
This driver can also be built as a module. If so, the module will be called abituguru3.
+config SENSORS_AD7414
+ tristate "Analog Devices AD7414"
+ depends on I2C && EXPERIMENTAL
+ help
+ If you say yes here you get support for the Analog Devices
+ AD7414 temperature monitoring chip.
+
+ This driver can also be built as a module. If so, the module
+ will be called ad7414.
+
config SENSORS_AD7418
tristate "Analog Devices AD7416, AD7417 and AD7418" depends on I2C && EXPERIMENTAL
drivers/hwmon/Makefile +0 -0
@@ -15,6 +15,7 @@ obj-$(CONFIG_SENSORS_W83791D) += w83791d.o
obj-$(CONFIG_SENSORS_ABITUGURU) += abituguru.o
obj-$(CONFIG_SENSORS_ABITUGURU3)+= abituguru3.o
+obj-$(CONFIG_SENSORS_AD7414) += ad7414.o
obj-$(CONFIG_SENSORS_AD7418) += ad7418.o
obj-$(CONFIG_SENSORS_ADM1021) += adm1021.o
obj-$(CONFIG_SENSORS_ADM1025) += adm1025.o
@@ -72,4 +73,3 @@ obj-$(CONFIG_SENSORS_W83L785TS) += w83l785ts.o
ifeq ($(CONFIG_HWMON_DEBUG_CHIP),y)EXTRA_CFLAGS += -DDEBUG
endif
-
hwmon/ad7414.c new file +319 -0
319 lines not on this page · raw message
Quoted 1 line · On Tue, 08 Jan 2008 13:30:00 -0500 Sean MacLennan <[email protected]>…
Ok, here is the ad7414 only. taco-dtm is no more!
Cool. Couple more things.
1) This should go through the hwmon maintainer. Send it to him. (CC'ing this list is of course fine.)
2) You always need the Signed-off-by: for each patch you send
3) If you didn't author the code (this seems to come from Stefan), then you need the Signed-off-by from the original author.
You're getting there :) These are all "newbie" type mistakes so keep plugging away.
josh
Quoted 7 lines · Josh Boyer
On Tue, 08 Jan 2008 13:30:00 -0500
Quoted 1 line · Sean MacLennan
Ok, here is the ad7414 only. taco-dtm is no more!
Cool. Couple more things.
Quoted 7 lines
1) This should go through the hwmon maintainer. Send it to him. (CC'ing this list is of course fine.)
2) You always need the Signed-off-by: for each patch you send
3) If you didn't author the code (this seems to come from Stefan), then you need the Signed-off-by from the original author.
Yes, please add my Signed-off-by on top of yours. That will make clear that I originally wrote the code.
Quoted 2 lines
You're getting there :) These are all "newbie" type mistakes so keep plugging away.
Right. Keep up the good work.
Thanks.
Ciao,
Stefan
Quoted 7 lines · Josh Boyer
Quoted 1 line · On Tue, 08 Jan 2008 13:30:00 -0500 Sean MacLennan <[email protected]>…
Ok, here is the ad7414 only. taco-dtm is no more!
Cool. Couple more things.
Quoted 7 lines
1) This should go through the hwmon maintainer. Send it to him. (CC'ing this list is of course fine.)
2) You always need the Signed-off-by: for each patch you send
3) If you didn't author the code (this seems to come from Stefan), then you need the Signed-off-by from the original author.
Nope. Signed-off-by means completely different thing. It isn't copyright, it isn't authorship. It's an information (for the history) whom to bother if code appeared to be either:
a) broken;
b) stolen from the closed source product;
c) patented (where applicable).
There are Copyright (c) and Author: strings in the files for the credits. If original patch had these strings, then yes, you must keep them.
But no one needs author's Signed-off-by, it having zero information you're hinting about. More than that, there were precedents when author insisted on removing his Signed-off-by from the modified patch (when S-o-b used as a permit into someone's tree).
Btw, kernel.org is distributing linux tarballs without changelogs, thus without Signed-off-by lines. Nobody complains.
Yes, it's common sense and politeness to keep Signed-off-by lines intact (and the order of these lines), but it's not strict requirement. "Based on the patch from ..." is the equivalent of this politeness.
Quoted 4 lines
You're getting there :) These are all "newbie" type mistakes so keep plugging away.
josh
Good luck,
Signature · 4 lines
Anton Vorontsov email: [email protected] backup email: [email protected] irc://irc.freenode.net/bd2
On Tue, 8 Jan 2008 23:13:14 +0300
Anton Vorontsov <[email protected]> wrote:
[snip mostly valid stuff]
Quoted 4 lines
Yes, it's common sense and politeness to keep Signed-off-by lines intact (and the order of these lines), but it's not strict requirement. "Based on the patch from ..." is the equivalent of this politeness.
You took my statement slightly out of context (or I did a lousy job of explaining for this case).
Basically, I _know_ that Stefan has S-o-b lines in his tree. I _know_ he did most of the work, and I _know_ he's fairly agreeable to adding his S-o-b line to patches he isn't pushing himself.
So I was simply asking if Sean could get Stefan to add his S-o-b as well. At the very least a "From:" would be warranted if Sean hasn't change any code. Then authorship would still be attributed to Stefan.
Yeah, it might be "politeness" but there's really no reason to be impolite when all the parties involved are in the same discussion...
josh