From: greg@kroah.com (Greg KH)
To: linux-kernel@vger.kernel.org, sensors@stimpy.netroedge.com
Subject: [PATCH] i2c driver fixes for 2.6.0-test5
Date: Thu, 19 May 2005 06:24:18 +0000 [thread overview]
Message-ID: <10642734243430@kroah.com> (raw)
In-Reply-To: <10642734242947@kroah.com>
In-Reply-To: <1064273416272@kroah.com>
ChangeSet 1.1315.1.17, 2003/09/22 13:20:35-07:00, greg@kroah.com
[PATCH] I2C: move the i2c-philips-par driver to drivers/i2c/busses
drivers/i2c/i2c-philips-par.c | 256 -----------------------------------
drivers/i2c/Kconfig | 10 -
drivers/i2c/Makefile | 1
drivers/i2c/busses/Kconfig | 9 +
drivers/i2c/busses/Makefile | 1
drivers/i2c/busses/i2c-philips-par.c | 256 +++++++++++++++++++++++++++++++++++
6 files changed, 266 insertions(+), 267 deletions(-)
diff -Nru a/drivers/i2c/Kconfig b/drivers/i2c/Kconfig
--- a/drivers/i2c/Kconfig Mon Sep 22 16:13:17 2003
+++ b/drivers/i2c/Kconfig Mon Sep 22 16:13:17 2003
@@ -48,16 +48,6 @@
This support is also available as a module. If so, the module
will be called i2c-algo-bit.
-config I2C_PHILIPSPAR
- tristate "Philips style parallel port adapter"
- depends on I2C_ALGOBIT && PARPORT
- ---help---
- This supports parallel-port I2C adapters made by Philips. Say Y if
- you own such an adapter.
-
- This support is also available as a module. If so, the module
- will be called i2c-philips-par.
-
config I2C_ELV
tristate "ELV adapter"
depends on I2C_ALGOBIT && ISA
diff -Nru a/drivers/i2c/Makefile b/drivers/i2c/Makefile
--- a/drivers/i2c/Makefile Mon Sep 22 16:13:17 2003
+++ b/drivers/i2c/Makefile Mon Sep 22 16:13:17 2003
@@ -5,7 +5,6 @@
obj-$(CONFIG_I2C) += i2c-core.o
obj-$(CONFIG_I2C_CHARDEV) += i2c-dev.o
obj-$(CONFIG_I2C_ALGOBIT) += i2c-algo-bit.o
-obj-$(CONFIG_I2C_PHILIPSPAR) += i2c-philips-par.o
obj-$(CONFIG_I2C_ELV) += i2c-elv.o
obj-$(CONFIG_I2C_VELLEMAN) += i2c-velleman.o
obj-$(CONFIG_I2C_ALGOPCF) += i2c-algo-pcf.o
diff -Nru a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
--- a/drivers/i2c/busses/Kconfig Mon Sep 22 16:13:17 2003
+++ b/drivers/i2c/busses/Kconfig Mon Sep 22 16:13:17 2003
@@ -97,6 +97,15 @@
This driver can also be built as a module. If so, the module
will be called i2c-nforce2.
+config I2C_PHILIPSPAR
+ tristate "Philips style parallel port adapter"
+ depends on I2C_ALGOBIT && PARPORT
+ help
+ This supports parallel-port I2C adapters made by Philips.
+
+ This support is also available as a module. If so, the module
+ will be called i2c-philips-par.
+
config I2C_PIIX4
tristate "Intel PIIX4"
depends on I2C && PCI && EXPERIMENTAL
diff -Nru a/drivers/i2c/busses/Makefile b/drivers/i2c/busses/Makefile
--- a/drivers/i2c/busses/Makefile Mon Sep 22 16:13:17 2003
+++ b/drivers/i2c/busses/Makefile Mon Sep 22 16:13:17 2003
@@ -10,6 +10,7 @@
obj-$(CONFIG_I2C_I810) += i2c-i810.o
obj-$(CONFIG_I2C_ISA) += i2c-isa.o
obj-$(CONFIG_I2C_NFORCE2) += i2c-nforce2.o
+obj-$(CONFIG_I2C_PHILIPSPAR) += i2c-philips-par.o
obj-$(CONFIG_I2C_PIIX4) += i2c-piix4.o
obj-$(CONFIG_I2C_PROSAVAGE) += i2c-prosavage.o
obj-$(CONFIG_I2C_SAVAGE4) += i2c-savage4.o
diff -Nru a/drivers/i2c/busses/i2c-philips-par.c b/drivers/i2c/busses/i2c-philips-par.c
--- /dev/null Wed Dec 31 16:00:00 1969
+++ b/drivers/i2c/busses/i2c-philips-par.c Mon Sep 22 16:13:17 2003
@@ -0,0 +1,256 @@
+/* ------------------------------------------------------------------------- */
+/* i2c-philips-par.c i2c-hw access for philips style parallel port adapters */
+/* ------------------------------------------------------------------------- */
+/* Copyright (C) 1995-2000 Simon G. Vogl
+
+ 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.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+/* ------------------------------------------------------------------------- */
+
+/* With some changes from Ky?sti M?lkki <kmalkki@cc.hut.fi> and even
+ Frodo Looijaard <frodol@dds.nl> */
+
+/* $Id: i2c-philips-par.c,v 1.29 2003/01/21 08:08:16 kmalkki Exp $ */
+
+#include <linux/kernel.h>
+#include <linux/ioport.h>
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/stddef.h>
+#include <linux/parport.h>
+#include <linux/i2c.h>
+#include <linux/i2c-algo-bit.h>
+
+static int type;
+
+struct i2c_par
+{
+ struct pardevice *pdev;
+ struct i2c_adapter adapter;
+ struct i2c_algo_bit_data bit_lp_data;
+ struct i2c_par *next;
+};
+
+static struct i2c_par *adapter_list;
+
+
+/* ----- global defines ----------------------------------------------- */
+#define DEB(x) /* should be reasonable open, close &c. */
+#define DEB2(x) /* low level debugging - very slow */
+#define DEBE(x) x /* error messages */
+
+/* ----- printer port defines ------------------------------------------*/
+ /* Pin Port Inverted name */
+#define I2C_ON 0x20 /* 12 status N paper */
+ /* ... only for phil. not used */
+#define I2C_SDA 0x80 /* 9 data N data7 */
+#define I2C_SCL 0x08 /* 17 ctrl N dsel */
+
+#define I2C_SDAIN 0x80 /* 11 stat Y busy */
+#define I2C_SCLIN 0x08 /* 15 stat Y enable */
+
+#define I2C_DMASK 0x7f
+#define I2C_CMASK 0xf7
+
+/* ----- local functions ---------------------------------------------- */
+
+static void bit_lp_setscl(void *data, int state)
+{
+ /*be cautious about state of the control register -
+ touch only the one bit needed*/
+ if (state) {
+ parport_write_control((struct parport *) data,
+ parport_read_control((struct parport *) data)|I2C_SCL);
+ } else {
+ parport_write_control((struct parport *) data,
+ parport_read_control((struct parport *) data)&I2C_CMASK);
+ }
+}
+
+static void bit_lp_setsda(void *data, int state)
+{
+ if (state) {
+ parport_write_data((struct parport *) data, I2C_DMASK);
+ } else {
+ parport_write_data((struct parport *) data, I2C_SDA);
+ }
+}
+
+static int bit_lp_getscl(void *data)
+{
+ return parport_read_status((struct parport *) data) & I2C_SCLIN;
+}
+
+static int bit_lp_getsda(void *data)
+{
+ return parport_read_status((struct parport *) data) & I2C_SDAIN;
+}
+
+static void bit_lp_setscl2(void *data, int state)
+{
+ if (state) {
+ parport_write_data((struct parport *) data,
+ parport_read_data((struct parport *) data)|0x1);
+ } else {
+ parport_write_data((struct parport *) data,
+ parport_read_data((struct parport *) data)&0xfe);
+ }
+}
+
+static void bit_lp_setsda2(void *data, int state)
+{
+ if (state) {
+ parport_write_data((struct parport *) data,
+ parport_read_data((struct parport *) data)|0x2);
+ } else {
+ parport_write_data((struct parport *) data,
+ parport_read_data((struct parport *) data)&0xfd);
+ }
+}
+
+static int bit_lp_getsda2(void *data)
+{
+ return (parport_read_status((struct parport *) data) &
+ PARPORT_STATUS_BUSY) ? 0 : 1;
+}
+
+/* ------------------------------------------------------------------------
+ * Encapsulate the above functions in the correct operations structure.
+ * This is only done when more than one hardware adapter is supported.
+ */
+
+static struct i2c_algo_bit_data bit_lp_data = {
+ .setsda = bit_lp_setsda,
+ .setscl = bit_lp_setscl,
+ .getsda = bit_lp_getsda,
+ .getscl = bit_lp_getscl,
+ .udelay = 80,
+ .mdelay = 80,
+ .timeout = HZ
+};
+
+static struct i2c_algo_bit_data bit_lp_data2 = {
+ .setsda = bit_lp_setsda2,
+ .setscl = bit_lp_setscl2,
+ .getsda = bit_lp_getsda2,
+ .udelay = 80,
+ .mdelay = 80,
+ .timeout = HZ
+};
+
+static struct i2c_adapter bit_lp_ops = {
+ .owner = THIS_MODULE,
+ .id = I2C_HW_B_LP,
+ .name = "Philips Parallel port adapter",
+};
+
+static void i2c_parport_attach (struct parport *port)
+{
+ struct i2c_par *adapter = kmalloc(sizeof(struct i2c_par),
+ GFP_KERNEL);
+ if (!adapter) {
+ printk(KERN_ERR "i2c-philips-par: Unable to malloc.\n");
+ return;
+ }
+
+ printk(KERN_DEBUG "i2c-philips-par.o: attaching to %s\n", port->name);
+
+ adapter->pdev = parport_register_device(port, "i2c-philips-par",
+ NULL, NULL, NULL,
+ PARPORT_FLAG_EXCL,
+ NULL);
+ if (!adapter->pdev) {
+ printk(KERN_ERR "i2c-philips-par: Unable to register with parport.\n");
+ kfree(adapter);
+ return;
+ }
+
+ adapter->adapter = bit_lp_ops;
+ adapter->adapter.algo_data = &adapter->bit_lp_data;
+ adapter->bit_lp_data = type ? bit_lp_data2 : bit_lp_data;
+ adapter->bit_lp_data.data = port;
+
+ if (parport_claim_or_block(adapter->pdev) < 0 ) {
+ printk(KERN_ERR "i2c-philips-par: Could not claim parallel port.\n");
+ kfree(adapter);
+ return;
+ }
+ /* reset hardware to sane state */
+ bit_lp_setsda(port, 1);
+ bit_lp_setscl(port, 1);
+ parport_release(adapter->pdev);
+
+ if (i2c_bit_add_bus(&adapter->adapter) < 0)
+ {
+ printk(KERN_ERR "i2c-philips-par: Unable to register with I2C.\n");
+ parport_unregister_device(adapter->pdev);
+ kfree(adapter);
+ return; /* No good */
+ }
+
+ adapter->next = adapter_list;
+ adapter_list = adapter;
+}
+
+static void i2c_parport_detach (struct parport *port)
+{
+ struct i2c_par *adapter, *prev = NULL;
+
+ for (adapter = adapter_list; adapter; adapter = adapter->next)
+ {
+ if (adapter->pdev->port = port)
+ {
+ parport_unregister_device(adapter->pdev);
+ i2c_bit_del_bus(&adapter->adapter);
+ if (prev)
+ prev->next = adapter->next;
+ else
+ adapter_list = adapter->next;
+ kfree(adapter);
+ return;
+ }
+ prev = adapter;
+ }
+}
+
+
+static struct parport_driver i2c_driver = {
+ "i2c-philips-par",
+ i2c_parport_attach,
+ i2c_parport_detach,
+ NULL
+};
+
+int __init i2c_bitlp_init(void)
+{
+ printk(KERN_INFO "i2c-philips-par.o: i2c Philips parallel port adapter module version %s (%s)\n", I2C_VERSION, I2C_DATE);
+
+ parport_register_driver(&i2c_driver);
+
+ return 0;
+}
+
+void __exit i2c_bitlp_exit(void)
+{
+ parport_unregister_driver(&i2c_driver);
+}
+
+MODULE_AUTHOR("Simon G. Vogl <simon@tk.uni-linz.ac.at>");
+MODULE_DESCRIPTION("I2C-Bus adapter routines for Philips parallel port adapter");
+MODULE_LICENSE("GPL");
+
+MODULE_PARM(type, "i");
+
+module_init(i2c_bitlp_init);
+module_exit(i2c_bitlp_exit);
diff -Nru a/drivers/i2c/i2c-philips-par.c b/drivers/i2c/i2c-philips-par.c
--- a/drivers/i2c/i2c-philips-par.c Mon Sep 22 16:13:17 2003
+++ /dev/null Wed Dec 31 16:00:00 1969
@@ -1,256 +0,0 @@
-/* ------------------------------------------------------------------------- */
-/* i2c-philips-par.c i2c-hw access for philips style parallel port adapters */
-/* ------------------------------------------------------------------------- */
-/* Copyright (C) 1995-2000 Simon G. Vogl
-
- 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.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
-/* ------------------------------------------------------------------------- */
-
-/* With some changes from Ky?sti M?lkki <kmalkki@cc.hut.fi> and even
- Frodo Looijaard <frodol@dds.nl> */
-
-/* $Id: i2c-philips-par.c,v 1.29 2003/01/21 08:08:16 kmalkki Exp $ */
-
-#include <linux/kernel.h>
-#include <linux/ioport.h>
-#include <linux/module.h>
-#include <linux/init.h>
-#include <linux/stddef.h>
-#include <linux/parport.h>
-#include <linux/i2c.h>
-#include <linux/i2c-algo-bit.h>
-
-static int type;
-
-struct i2c_par
-{
- struct pardevice *pdev;
- struct i2c_adapter adapter;
- struct i2c_algo_bit_data bit_lp_data;
- struct i2c_par *next;
-};
-
-static struct i2c_par *adapter_list;
-
-
-/* ----- global defines ----------------------------------------------- */
-#define DEB(x) /* should be reasonable open, close &c. */
-#define DEB2(x) /* low level debugging - very slow */
-#define DEBE(x) x /* error messages */
-
-/* ----- printer port defines ------------------------------------------*/
- /* Pin Port Inverted name */
-#define I2C_ON 0x20 /* 12 status N paper */
- /* ... only for phil. not used */
-#define I2C_SDA 0x80 /* 9 data N data7 */
-#define I2C_SCL 0x08 /* 17 ctrl N dsel */
-
-#define I2C_SDAIN 0x80 /* 11 stat Y busy */
-#define I2C_SCLIN 0x08 /* 15 stat Y enable */
-
-#define I2C_DMASK 0x7f
-#define I2C_CMASK 0xf7
-
-/* ----- local functions ---------------------------------------------- */
-
-static void bit_lp_setscl(void *data, int state)
-{
- /*be cautious about state of the control register -
- touch only the one bit needed*/
- if (state) {
- parport_write_control((struct parport *) data,
- parport_read_control((struct parport *) data)|I2C_SCL);
- } else {
- parport_write_control((struct parport *) data,
- parport_read_control((struct parport *) data)&I2C_CMASK);
- }
-}
-
-static void bit_lp_setsda(void *data, int state)
-{
- if (state) {
- parport_write_data((struct parport *) data, I2C_DMASK);
- } else {
- parport_write_data((struct parport *) data, I2C_SDA);
- }
-}
-
-static int bit_lp_getscl(void *data)
-{
- return parport_read_status((struct parport *) data) & I2C_SCLIN;
-}
-
-static int bit_lp_getsda(void *data)
-{
- return parport_read_status((struct parport *) data) & I2C_SDAIN;
-}
-
-static void bit_lp_setscl2(void *data, int state)
-{
- if (state) {
- parport_write_data((struct parport *) data,
- parport_read_data((struct parport *) data)|0x1);
- } else {
- parport_write_data((struct parport *) data,
- parport_read_data((struct parport *) data)&0xfe);
- }
-}
-
-static void bit_lp_setsda2(void *data, int state)
-{
- if (state) {
- parport_write_data((struct parport *) data,
- parport_read_data((struct parport *) data)|0x2);
- } else {
- parport_write_data((struct parport *) data,
- parport_read_data((struct parport *) data)&0xfd);
- }
-}
-
-static int bit_lp_getsda2(void *data)
-{
- return (parport_read_status((struct parport *) data) &
- PARPORT_STATUS_BUSY) ? 0 : 1;
-}
-
-/* ------------------------------------------------------------------------
- * Encapsulate the above functions in the correct operations structure.
- * This is only done when more than one hardware adapter is supported.
- */
-
-static struct i2c_algo_bit_data bit_lp_data = {
- .setsda = bit_lp_setsda,
- .setscl = bit_lp_setscl,
- .getsda = bit_lp_getsda,
- .getscl = bit_lp_getscl,
- .udelay = 80,
- .mdelay = 80,
- .timeout = HZ
-};
-
-static struct i2c_algo_bit_data bit_lp_data2 = {
- .setsda = bit_lp_setsda2,
- .setscl = bit_lp_setscl2,
- .getsda = bit_lp_getsda2,
- .udelay = 80,
- .mdelay = 80,
- .timeout = HZ
-};
-
-static struct i2c_adapter bit_lp_ops = {
- .owner = THIS_MODULE,
- .id = I2C_HW_B_LP,
- .name = "Philips Parallel port adapter",
-};
-
-static void i2c_parport_attach (struct parport *port)
-{
- struct i2c_par *adapter = kmalloc(sizeof(struct i2c_par),
- GFP_KERNEL);
- if (!adapter) {
- printk(KERN_ERR "i2c-philips-par: Unable to malloc.\n");
- return;
- }
-
- printk(KERN_DEBUG "i2c-philips-par.o: attaching to %s\n", port->name);
-
- adapter->pdev = parport_register_device(port, "i2c-philips-par",
- NULL, NULL, NULL,
- PARPORT_FLAG_EXCL,
- NULL);
- if (!adapter->pdev) {
- printk(KERN_ERR "i2c-philips-par: Unable to register with parport.\n");
- kfree(adapter);
- return;
- }
-
- adapter->adapter = bit_lp_ops;
- adapter->adapter.algo_data = &adapter->bit_lp_data;
- adapter->bit_lp_data = type ? bit_lp_data2 : bit_lp_data;
- adapter->bit_lp_data.data = port;
-
- if (parport_claim_or_block(adapter->pdev) < 0 ) {
- printk(KERN_ERR "i2c-philips-par: Could not claim parallel port.\n");
- kfree(adapter);
- return;
- }
- /* reset hardware to sane state */
- bit_lp_setsda(port, 1);
- bit_lp_setscl(port, 1);
- parport_release(adapter->pdev);
-
- if (i2c_bit_add_bus(&adapter->adapter) < 0)
- {
- printk(KERN_ERR "i2c-philips-par: Unable to register with I2C.\n");
- parport_unregister_device(adapter->pdev);
- kfree(adapter);
- return; /* No good */
- }
-
- adapter->next = adapter_list;
- adapter_list = adapter;
-}
-
-static void i2c_parport_detach (struct parport *port)
-{
- struct i2c_par *adapter, *prev = NULL;
-
- for (adapter = adapter_list; adapter; adapter = adapter->next)
- {
- if (adapter->pdev->port = port)
- {
- parport_unregister_device(adapter->pdev);
- i2c_bit_del_bus(&adapter->adapter);
- if (prev)
- prev->next = adapter->next;
- else
- adapter_list = adapter->next;
- kfree(adapter);
- return;
- }
- prev = adapter;
- }
-}
-
-
-static struct parport_driver i2c_driver = {
- "i2c-philips-par",
- i2c_parport_attach,
- i2c_parport_detach,
- NULL
-};
-
-int __init i2c_bitlp_init(void)
-{
- printk(KERN_INFO "i2c-philips-par.o: i2c Philips parallel port adapter module version %s (%s)\n", I2C_VERSION, I2C_DATE);
-
- parport_register_driver(&i2c_driver);
-
- return 0;
-}
-
-void __exit i2c_bitlp_exit(void)
-{
- parport_unregister_driver(&i2c_driver);
-}
-
-MODULE_AUTHOR("Simon G. Vogl <simon@tk.uni-linz.ac.at>");
-MODULE_DESCRIPTION("I2C-Bus adapter routines for Philips parallel port adapter");
-MODULE_LICENSE("GPL");
-
-MODULE_PARM(type, "i");
-
-module_init(i2c_bitlp_init);
-module_exit(i2c_bitlp_exit);
WARNING: multiple messages have this Message-ID (diff)
From: Greg KH <greg@kroah.com>
To: linux-kernel@vger.kernel.org, sensors@stimpy.netroedge.com
Subject: Re: [PATCH] i2c driver fixes for 2.6.0-test5
Date: Mon, 22 Sep 2003 16:30:24 -0700 [thread overview]
Message-ID: <10642734243430@kroah.com> (raw)
In-Reply-To: <10642734242947@kroah.com>
ChangeSet 1.1315.1.17, 2003/09/22 13:20:35-07:00, greg@kroah.com
[PATCH] I2C: move the i2c-philips-par driver to drivers/i2c/busses
drivers/i2c/i2c-philips-par.c | 256 -----------------------------------
drivers/i2c/Kconfig | 10 -
drivers/i2c/Makefile | 1
drivers/i2c/busses/Kconfig | 9 +
drivers/i2c/busses/Makefile | 1
drivers/i2c/busses/i2c-philips-par.c | 256 +++++++++++++++++++++++++++++++++++
6 files changed, 266 insertions(+), 267 deletions(-)
diff -Nru a/drivers/i2c/Kconfig b/drivers/i2c/Kconfig
--- a/drivers/i2c/Kconfig Mon Sep 22 16:13:17 2003
+++ b/drivers/i2c/Kconfig Mon Sep 22 16:13:17 2003
@@ -48,16 +48,6 @@
This support is also available as a module. If so, the module
will be called i2c-algo-bit.
-config I2C_PHILIPSPAR
- tristate "Philips style parallel port adapter"
- depends on I2C_ALGOBIT && PARPORT
- ---help---
- This supports parallel-port I2C adapters made by Philips. Say Y if
- you own such an adapter.
-
- This support is also available as a module. If so, the module
- will be called i2c-philips-par.
-
config I2C_ELV
tristate "ELV adapter"
depends on I2C_ALGOBIT && ISA
diff -Nru a/drivers/i2c/Makefile b/drivers/i2c/Makefile
--- a/drivers/i2c/Makefile Mon Sep 22 16:13:17 2003
+++ b/drivers/i2c/Makefile Mon Sep 22 16:13:17 2003
@@ -5,7 +5,6 @@
obj-$(CONFIG_I2C) += i2c-core.o
obj-$(CONFIG_I2C_CHARDEV) += i2c-dev.o
obj-$(CONFIG_I2C_ALGOBIT) += i2c-algo-bit.o
-obj-$(CONFIG_I2C_PHILIPSPAR) += i2c-philips-par.o
obj-$(CONFIG_I2C_ELV) += i2c-elv.o
obj-$(CONFIG_I2C_VELLEMAN) += i2c-velleman.o
obj-$(CONFIG_I2C_ALGOPCF) += i2c-algo-pcf.o
diff -Nru a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
--- a/drivers/i2c/busses/Kconfig Mon Sep 22 16:13:17 2003
+++ b/drivers/i2c/busses/Kconfig Mon Sep 22 16:13:17 2003
@@ -97,6 +97,15 @@
This driver can also be built as a module. If so, the module
will be called i2c-nforce2.
+config I2C_PHILIPSPAR
+ tristate "Philips style parallel port adapter"
+ depends on I2C_ALGOBIT && PARPORT
+ help
+ This supports parallel-port I2C adapters made by Philips.
+
+ This support is also available as a module. If so, the module
+ will be called i2c-philips-par.
+
config I2C_PIIX4
tristate "Intel PIIX4"
depends on I2C && PCI && EXPERIMENTAL
diff -Nru a/drivers/i2c/busses/Makefile b/drivers/i2c/busses/Makefile
--- a/drivers/i2c/busses/Makefile Mon Sep 22 16:13:17 2003
+++ b/drivers/i2c/busses/Makefile Mon Sep 22 16:13:17 2003
@@ -10,6 +10,7 @@
obj-$(CONFIG_I2C_I810) += i2c-i810.o
obj-$(CONFIG_I2C_ISA) += i2c-isa.o
obj-$(CONFIG_I2C_NFORCE2) += i2c-nforce2.o
+obj-$(CONFIG_I2C_PHILIPSPAR) += i2c-philips-par.o
obj-$(CONFIG_I2C_PIIX4) += i2c-piix4.o
obj-$(CONFIG_I2C_PROSAVAGE) += i2c-prosavage.o
obj-$(CONFIG_I2C_SAVAGE4) += i2c-savage4.o
diff -Nru a/drivers/i2c/busses/i2c-philips-par.c b/drivers/i2c/busses/i2c-philips-par.c
--- /dev/null Wed Dec 31 16:00:00 1969
+++ b/drivers/i2c/busses/i2c-philips-par.c Mon Sep 22 16:13:17 2003
@@ -0,0 +1,256 @@
+/* ------------------------------------------------------------------------- */
+/* i2c-philips-par.c i2c-hw access for philips style parallel port adapters */
+/* ------------------------------------------------------------------------- */
+/* Copyright (C) 1995-2000 Simon G. Vogl
+
+ 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.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+/* ------------------------------------------------------------------------- */
+
+/* With some changes from Kyösti Mälkki <kmalkki@cc.hut.fi> and even
+ Frodo Looijaard <frodol@dds.nl> */
+
+/* $Id: i2c-philips-par.c,v 1.29 2003/01/21 08:08:16 kmalkki Exp $ */
+
+#include <linux/kernel.h>
+#include <linux/ioport.h>
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/stddef.h>
+#include <linux/parport.h>
+#include <linux/i2c.h>
+#include <linux/i2c-algo-bit.h>
+
+static int type;
+
+struct i2c_par
+{
+ struct pardevice *pdev;
+ struct i2c_adapter adapter;
+ struct i2c_algo_bit_data bit_lp_data;
+ struct i2c_par *next;
+};
+
+static struct i2c_par *adapter_list;
+
+
+/* ----- global defines ----------------------------------------------- */
+#define DEB(x) /* should be reasonable open, close &c. */
+#define DEB2(x) /* low level debugging - very slow */
+#define DEBE(x) x /* error messages */
+
+/* ----- printer port defines ------------------------------------------*/
+ /* Pin Port Inverted name */
+#define I2C_ON 0x20 /* 12 status N paper */
+ /* ... only for phil. not used */
+#define I2C_SDA 0x80 /* 9 data N data7 */
+#define I2C_SCL 0x08 /* 17 ctrl N dsel */
+
+#define I2C_SDAIN 0x80 /* 11 stat Y busy */
+#define I2C_SCLIN 0x08 /* 15 stat Y enable */
+
+#define I2C_DMASK 0x7f
+#define I2C_CMASK 0xf7
+
+/* ----- local functions ---------------------------------------------- */
+
+static void bit_lp_setscl(void *data, int state)
+{
+ /*be cautious about state of the control register -
+ touch only the one bit needed*/
+ if (state) {
+ parport_write_control((struct parport *) data,
+ parport_read_control((struct parport *) data)|I2C_SCL);
+ } else {
+ parport_write_control((struct parport *) data,
+ parport_read_control((struct parport *) data)&I2C_CMASK);
+ }
+}
+
+static void bit_lp_setsda(void *data, int state)
+{
+ if (state) {
+ parport_write_data((struct parport *) data, I2C_DMASK);
+ } else {
+ parport_write_data((struct parport *) data, I2C_SDA);
+ }
+}
+
+static int bit_lp_getscl(void *data)
+{
+ return parport_read_status((struct parport *) data) & I2C_SCLIN;
+}
+
+static int bit_lp_getsda(void *data)
+{
+ return parport_read_status((struct parport *) data) & I2C_SDAIN;
+}
+
+static void bit_lp_setscl2(void *data, int state)
+{
+ if (state) {
+ parport_write_data((struct parport *) data,
+ parport_read_data((struct parport *) data)|0x1);
+ } else {
+ parport_write_data((struct parport *) data,
+ parport_read_data((struct parport *) data)&0xfe);
+ }
+}
+
+static void bit_lp_setsda2(void *data, int state)
+{
+ if (state) {
+ parport_write_data((struct parport *) data,
+ parport_read_data((struct parport *) data)|0x2);
+ } else {
+ parport_write_data((struct parport *) data,
+ parport_read_data((struct parport *) data)&0xfd);
+ }
+}
+
+static int bit_lp_getsda2(void *data)
+{
+ return (parport_read_status((struct parport *) data) &
+ PARPORT_STATUS_BUSY) ? 0 : 1;
+}
+
+/* ------------------------------------------------------------------------
+ * Encapsulate the above functions in the correct operations structure.
+ * This is only done when more than one hardware adapter is supported.
+ */
+
+static struct i2c_algo_bit_data bit_lp_data = {
+ .setsda = bit_lp_setsda,
+ .setscl = bit_lp_setscl,
+ .getsda = bit_lp_getsda,
+ .getscl = bit_lp_getscl,
+ .udelay = 80,
+ .mdelay = 80,
+ .timeout = HZ
+};
+
+static struct i2c_algo_bit_data bit_lp_data2 = {
+ .setsda = bit_lp_setsda2,
+ .setscl = bit_lp_setscl2,
+ .getsda = bit_lp_getsda2,
+ .udelay = 80,
+ .mdelay = 80,
+ .timeout = HZ
+};
+
+static struct i2c_adapter bit_lp_ops = {
+ .owner = THIS_MODULE,
+ .id = I2C_HW_B_LP,
+ .name = "Philips Parallel port adapter",
+};
+
+static void i2c_parport_attach (struct parport *port)
+{
+ struct i2c_par *adapter = kmalloc(sizeof(struct i2c_par),
+ GFP_KERNEL);
+ if (!adapter) {
+ printk(KERN_ERR "i2c-philips-par: Unable to malloc.\n");
+ return;
+ }
+
+ printk(KERN_DEBUG "i2c-philips-par.o: attaching to %s\n", port->name);
+
+ adapter->pdev = parport_register_device(port, "i2c-philips-par",
+ NULL, NULL, NULL,
+ PARPORT_FLAG_EXCL,
+ NULL);
+ if (!adapter->pdev) {
+ printk(KERN_ERR "i2c-philips-par: Unable to register with parport.\n");
+ kfree(adapter);
+ return;
+ }
+
+ adapter->adapter = bit_lp_ops;
+ adapter->adapter.algo_data = &adapter->bit_lp_data;
+ adapter->bit_lp_data = type ? bit_lp_data2 : bit_lp_data;
+ adapter->bit_lp_data.data = port;
+
+ if (parport_claim_or_block(adapter->pdev) < 0 ) {
+ printk(KERN_ERR "i2c-philips-par: Could not claim parallel port.\n");
+ kfree(adapter);
+ return;
+ }
+ /* reset hardware to sane state */
+ bit_lp_setsda(port, 1);
+ bit_lp_setscl(port, 1);
+ parport_release(adapter->pdev);
+
+ if (i2c_bit_add_bus(&adapter->adapter) < 0)
+ {
+ printk(KERN_ERR "i2c-philips-par: Unable to register with I2C.\n");
+ parport_unregister_device(adapter->pdev);
+ kfree(adapter);
+ return; /* No good */
+ }
+
+ adapter->next = adapter_list;
+ adapter_list = adapter;
+}
+
+static void i2c_parport_detach (struct parport *port)
+{
+ struct i2c_par *adapter, *prev = NULL;
+
+ for (adapter = adapter_list; adapter; adapter = adapter->next)
+ {
+ if (adapter->pdev->port == port)
+ {
+ parport_unregister_device(adapter->pdev);
+ i2c_bit_del_bus(&adapter->adapter);
+ if (prev)
+ prev->next = adapter->next;
+ else
+ adapter_list = adapter->next;
+ kfree(adapter);
+ return;
+ }
+ prev = adapter;
+ }
+}
+
+
+static struct parport_driver i2c_driver = {
+ "i2c-philips-par",
+ i2c_parport_attach,
+ i2c_parport_detach,
+ NULL
+};
+
+int __init i2c_bitlp_init(void)
+{
+ printk(KERN_INFO "i2c-philips-par.o: i2c Philips parallel port adapter module version %s (%s)\n", I2C_VERSION, I2C_DATE);
+
+ parport_register_driver(&i2c_driver);
+
+ return 0;
+}
+
+void __exit i2c_bitlp_exit(void)
+{
+ parport_unregister_driver(&i2c_driver);
+}
+
+MODULE_AUTHOR("Simon G. Vogl <simon@tk.uni-linz.ac.at>");
+MODULE_DESCRIPTION("I2C-Bus adapter routines for Philips parallel port adapter");
+MODULE_LICENSE("GPL");
+
+MODULE_PARM(type, "i");
+
+module_init(i2c_bitlp_init);
+module_exit(i2c_bitlp_exit);
diff -Nru a/drivers/i2c/i2c-philips-par.c b/drivers/i2c/i2c-philips-par.c
--- a/drivers/i2c/i2c-philips-par.c Mon Sep 22 16:13:17 2003
+++ /dev/null Wed Dec 31 16:00:00 1969
@@ -1,256 +0,0 @@
-/* ------------------------------------------------------------------------- */
-/* i2c-philips-par.c i2c-hw access for philips style parallel port adapters */
-/* ------------------------------------------------------------------------- */
-/* Copyright (C) 1995-2000 Simon G. Vogl
-
- 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.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
-/* ------------------------------------------------------------------------- */
-
-/* With some changes from Kyösti Mälkki <kmalkki@cc.hut.fi> and even
- Frodo Looijaard <frodol@dds.nl> */
-
-/* $Id: i2c-philips-par.c,v 1.29 2003/01/21 08:08:16 kmalkki Exp $ */
-
-#include <linux/kernel.h>
-#include <linux/ioport.h>
-#include <linux/module.h>
-#include <linux/init.h>
-#include <linux/stddef.h>
-#include <linux/parport.h>
-#include <linux/i2c.h>
-#include <linux/i2c-algo-bit.h>
-
-static int type;
-
-struct i2c_par
-{
- struct pardevice *pdev;
- struct i2c_adapter adapter;
- struct i2c_algo_bit_data bit_lp_data;
- struct i2c_par *next;
-};
-
-static struct i2c_par *adapter_list;
-
-
-/* ----- global defines ----------------------------------------------- */
-#define DEB(x) /* should be reasonable open, close &c. */
-#define DEB2(x) /* low level debugging - very slow */
-#define DEBE(x) x /* error messages */
-
-/* ----- printer port defines ------------------------------------------*/
- /* Pin Port Inverted name */
-#define I2C_ON 0x20 /* 12 status N paper */
- /* ... only for phil. not used */
-#define I2C_SDA 0x80 /* 9 data N data7 */
-#define I2C_SCL 0x08 /* 17 ctrl N dsel */
-
-#define I2C_SDAIN 0x80 /* 11 stat Y busy */
-#define I2C_SCLIN 0x08 /* 15 stat Y enable */
-
-#define I2C_DMASK 0x7f
-#define I2C_CMASK 0xf7
-
-/* ----- local functions ---------------------------------------------- */
-
-static void bit_lp_setscl(void *data, int state)
-{
- /*be cautious about state of the control register -
- touch only the one bit needed*/
- if (state) {
- parport_write_control((struct parport *) data,
- parport_read_control((struct parport *) data)|I2C_SCL);
- } else {
- parport_write_control((struct parport *) data,
- parport_read_control((struct parport *) data)&I2C_CMASK);
- }
-}
-
-static void bit_lp_setsda(void *data, int state)
-{
- if (state) {
- parport_write_data((struct parport *) data, I2C_DMASK);
- } else {
- parport_write_data((struct parport *) data, I2C_SDA);
- }
-}
-
-static int bit_lp_getscl(void *data)
-{
- return parport_read_status((struct parport *) data) & I2C_SCLIN;
-}
-
-static int bit_lp_getsda(void *data)
-{
- return parport_read_status((struct parport *) data) & I2C_SDAIN;
-}
-
-static void bit_lp_setscl2(void *data, int state)
-{
- if (state) {
- parport_write_data((struct parport *) data,
- parport_read_data((struct parport *) data)|0x1);
- } else {
- parport_write_data((struct parport *) data,
- parport_read_data((struct parport *) data)&0xfe);
- }
-}
-
-static void bit_lp_setsda2(void *data, int state)
-{
- if (state) {
- parport_write_data((struct parport *) data,
- parport_read_data((struct parport *) data)|0x2);
- } else {
- parport_write_data((struct parport *) data,
- parport_read_data((struct parport *) data)&0xfd);
- }
-}
-
-static int bit_lp_getsda2(void *data)
-{
- return (parport_read_status((struct parport *) data) &
- PARPORT_STATUS_BUSY) ? 0 : 1;
-}
-
-/* ------------------------------------------------------------------------
- * Encapsulate the above functions in the correct operations structure.
- * This is only done when more than one hardware adapter is supported.
- */
-
-static struct i2c_algo_bit_data bit_lp_data = {
- .setsda = bit_lp_setsda,
- .setscl = bit_lp_setscl,
- .getsda = bit_lp_getsda,
- .getscl = bit_lp_getscl,
- .udelay = 80,
- .mdelay = 80,
- .timeout = HZ
-};
-
-static struct i2c_algo_bit_data bit_lp_data2 = {
- .setsda = bit_lp_setsda2,
- .setscl = bit_lp_setscl2,
- .getsda = bit_lp_getsda2,
- .udelay = 80,
- .mdelay = 80,
- .timeout = HZ
-};
-
-static struct i2c_adapter bit_lp_ops = {
- .owner = THIS_MODULE,
- .id = I2C_HW_B_LP,
- .name = "Philips Parallel port adapter",
-};
-
-static void i2c_parport_attach (struct parport *port)
-{
- struct i2c_par *adapter = kmalloc(sizeof(struct i2c_par),
- GFP_KERNEL);
- if (!adapter) {
- printk(KERN_ERR "i2c-philips-par: Unable to malloc.\n");
- return;
- }
-
- printk(KERN_DEBUG "i2c-philips-par.o: attaching to %s\n", port->name);
-
- adapter->pdev = parport_register_device(port, "i2c-philips-par",
- NULL, NULL, NULL,
- PARPORT_FLAG_EXCL,
- NULL);
- if (!adapter->pdev) {
- printk(KERN_ERR "i2c-philips-par: Unable to register with parport.\n");
- kfree(adapter);
- return;
- }
-
- adapter->adapter = bit_lp_ops;
- adapter->adapter.algo_data = &adapter->bit_lp_data;
- adapter->bit_lp_data = type ? bit_lp_data2 : bit_lp_data;
- adapter->bit_lp_data.data = port;
-
- if (parport_claim_or_block(adapter->pdev) < 0 ) {
- printk(KERN_ERR "i2c-philips-par: Could not claim parallel port.\n");
- kfree(adapter);
- return;
- }
- /* reset hardware to sane state */
- bit_lp_setsda(port, 1);
- bit_lp_setscl(port, 1);
- parport_release(adapter->pdev);
-
- if (i2c_bit_add_bus(&adapter->adapter) < 0)
- {
- printk(KERN_ERR "i2c-philips-par: Unable to register with I2C.\n");
- parport_unregister_device(adapter->pdev);
- kfree(adapter);
- return; /* No good */
- }
-
- adapter->next = adapter_list;
- adapter_list = adapter;
-}
-
-static void i2c_parport_detach (struct parport *port)
-{
- struct i2c_par *adapter, *prev = NULL;
-
- for (adapter = adapter_list; adapter; adapter = adapter->next)
- {
- if (adapter->pdev->port == port)
- {
- parport_unregister_device(adapter->pdev);
- i2c_bit_del_bus(&adapter->adapter);
- if (prev)
- prev->next = adapter->next;
- else
- adapter_list = adapter->next;
- kfree(adapter);
- return;
- }
- prev = adapter;
- }
-}
-
-
-static struct parport_driver i2c_driver = {
- "i2c-philips-par",
- i2c_parport_attach,
- i2c_parport_detach,
- NULL
-};
-
-int __init i2c_bitlp_init(void)
-{
- printk(KERN_INFO "i2c-philips-par.o: i2c Philips parallel port adapter module version %s (%s)\n", I2C_VERSION, I2C_DATE);
-
- parport_register_driver(&i2c_driver);
-
- return 0;
-}
-
-void __exit i2c_bitlp_exit(void)
-{
- parport_unregister_driver(&i2c_driver);
-}
-
-MODULE_AUTHOR("Simon G. Vogl <simon@tk.uni-linz.ac.at>");
-MODULE_DESCRIPTION("I2C-Bus adapter routines for Philips parallel port adapter");
-MODULE_LICENSE("GPL");
-
-MODULE_PARM(type, "i");
-
-module_init(i2c_bitlp_init);
-module_exit(i2c_bitlp_exit);
next prev parent reply other threads:[~2005-05-19 6:24 UTC|newest]
Thread overview: 125+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-09-22 23:28 [BK PATCH] i2c driver fixes for 2.6.0-test5 Greg KH
2005-05-19 6:24 ` Greg KH
2003-09-22 23:30 ` [PATCH] " Greg KH
2005-05-19 6:24 ` Greg KH
2003-09-22 23:30 ` Greg KH
2005-05-19 6:24 ` Greg KH
2003-09-22 23:30 ` Greg KH
2005-05-19 6:24 ` Greg KH
2003-09-22 23:30 ` Greg KH
2005-05-19 6:24 ` Greg KH
2003-09-22 23:30 ` Greg KH
2005-05-19 6:24 ` Greg KH
2003-09-22 23:30 ` Greg KH
2005-05-19 6:24 ` Greg KH
2003-09-22 23:30 ` Greg KH
2005-05-19 6:24 ` Greg KH
2003-09-22 23:30 ` Greg KH
2005-05-19 6:24 ` Greg KH
2003-09-22 23:30 ` Greg KH
2005-05-19 6:24 ` Greg KH
2003-09-22 23:30 ` Greg KH
2005-05-19 6:24 ` Greg KH
2003-09-22 23:30 ` Greg KH
2005-05-19 6:24 ` Greg KH
2003-09-22 23:30 ` Greg KH
2005-05-19 6:24 ` Greg KH
2003-09-22 23:30 ` Greg KH
2005-05-19 6:24 ` Greg KH
2003-09-22 23:30 ` Greg KH
2005-05-19 6:24 ` Greg KH
2003-09-22 23:30 ` Greg KH
2005-05-19 6:24 ` Greg KH
2003-09-22 23:30 ` Greg KH
2005-05-19 6:24 ` Greg KH
2003-09-22 23:30 ` Greg KH
2005-05-19 6:24 ` Greg KH
2003-09-22 23:30 ` Greg KH
2005-05-19 6:24 ` Greg KH
2003-09-22 23:30 ` Greg KH
2005-05-19 6:24 ` Greg KH
2003-09-22 23:30 ` Greg KH
2005-05-19 6:24 ` Greg KH
2003-09-22 23:30 ` Greg KH
2005-05-19 6:24 ` Greg KH
2003-09-22 23:30 ` Greg KH
2005-05-19 6:24 ` Greg KH
2003-09-22 23:30 ` Greg KH [this message]
2005-05-19 6:24 ` Greg KH
2003-09-22 23:30 ` Greg KH
2005-05-19 6:24 ` Greg KH
2003-09-22 23:30 ` Greg KH
2005-05-19 6:24 ` Greg KH
2003-09-22 23:30 ` Greg KH
2005-05-19 6:24 ` Greg KH
2003-09-22 23:30 ` Greg KH
2005-05-19 6:24 ` Greg KH
2003-09-22 23:30 ` Greg KH
2005-05-19 6:24 ` Greg KH
2003-09-22 23:30 ` Greg KH
2005-05-19 6:24 ` Greg KH
2005-05-19 6:24 ` Greg KH
2003-09-22 23:30 ` Greg KH
2005-05-19 6:24 ` Greg KH
2003-09-22 23:30 ` Greg KH
2005-05-19 6:24 ` Greg KH
2003-09-22 23:30 ` Greg KH
2005-05-19 6:24 ` Greg KH
2003-09-23 8:16 ` Christoph Hellwig
2005-05-19 6:24 ` Christoph Hellwig
2003-09-23 16:19 ` Greg KH
2005-05-19 6:24 ` Greg KH
2003-09-23 16:22 ` Christoph Hellwig
2005-05-19 6:24 ` Christoph Hellwig
2003-09-23 19:04 ` Greg KH
2005-05-19 6:24 ` Greg KH
2003-09-23 19:08 ` Christoph Hellwig
2005-05-19 6:24 ` Christoph Hellwig
-- strict thread matches above, loose matches on Subject: below --
2003-10-10 23:10 [BK PATCH] i2c driver fixes for 2.6.0-test7 Greg KH
2005-05-19 6:24 ` Greg KH
2003-10-10 23:11 ` [PATCH] " Greg KH
2005-05-19 6:24 ` Greg KH
2003-10-10 23:11 ` Greg KH
2005-05-19 6:24 ` Greg KH
2003-10-10 23:11 ` Greg KH
2005-05-19 6:24 ` Greg KH
2003-10-10 23:11 ` Greg KH
2005-05-19 6:24 ` Greg KH
2003-08-15 18:32 [BK PATCH] i2c driver fixes for 2.6.0-test3 Greg KH
2005-05-19 6:24 ` Greg KH
2003-08-15 18:33 ` [PATCH] i2c driver changes 2.6.0-test3 Greg KH
2005-05-19 6:24 ` Greg KH
2003-08-15 18:33 ` Greg KH
2005-05-19 6:24 ` Greg KH
2003-08-15 18:33 ` Greg KH
2005-05-19 6:24 ` Greg KH
2003-08-15 18:33 ` Greg KH
2005-05-19 6:24 ` Greg KH
2003-08-15 18:33 ` Greg KH
2005-05-19 6:24 ` Greg KH
2003-08-15 18:33 ` Greg KH
2005-05-19 6:24 ` Greg KH
2003-08-15 18:33 ` Greg KH
2005-05-19 6:24 ` Greg KH
2003-08-15 18:33 ` Greg KH
2005-05-19 6:24 ` Greg KH
2005-05-19 6:24 ` Philip Pokorny
2005-05-19 6:24 ` Mark D. Studebaker
2005-05-19 6:24 ` Jean Delvare
2005-05-19 6:24 ` Greg KH
2005-05-19 6:24 ` Jean Delvare
2003-08-02 5:29 [BK PATCH] i2c driver fixes for 2.6.0-test2 Greg KH
2005-05-19 6:24 ` Greg KH
2005-05-19 6:24 ` Mark M. Hoffman
2005-05-19 6:24 ` Jean Delvare
2005-05-19 6:24 ` Greg KH
2005-05-19 6:24 ` Greg KH
2005-05-19 6:24 ` Mark M. Hoffman
2003-08-14 5:13 ` Mark M. Hoffman
2005-05-19 6:24 ` Mark M. Hoffman
2003-08-14 21:14 ` Greg KH
2005-05-19 6:24 ` Greg KH
2005-05-19 6:24 ` [BK PATCH] i2c driver fixes for 2.6.0-test5 Jean Delvare
2005-05-19 6:24 ` Mark M. Hoffman
2005-05-19 6:24 ` Mark M. Hoffman
2005-05-19 6:24 ` Greg KH
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=10642734243430@kroah.com \
--to=greg@kroah.com \
--cc=linux-kernel@vger.kernel.org \
--cc=sensors@stimpy.netroedge.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.