[PATCH 2.6] Refactor swap_bytes in i2c chip drivers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Greg,

This simple patch refactors the swap_bytes function that various chip
drivers use. I moved it to lm75.h because all drivers using lm75-like
temperature sensors will most necessarily need to swap bytes.

Apply if you like it,
thanks.

Note #1: There's one more driver, gl518sm, that still has swap_bytes. I
did not factor this one because it's not using the other functions
provided by lm75.c (nor has it to).

Note #2: Looks like each time we manipulate 16-bit registers we end up
swapping bytes. It looks like we chose the wrong order as the default. I
fear it's a bit late to change that though.

diff -ruN linux-2.6.5-rc2/drivers/i2c/chips.orig/asb100.c linux-2.6.5-rc2/drivers/i2c/chips/asb100.c
--- linux-2.6.5-rc2/drivers/i2c/chips.orig/asb100.c	Mon Mar 29 20:50:39 2004
+++ linux-2.6.5-rc2/drivers/i2c/chips/asb100.c	Mon Mar 29 21:00:46 2004
@@ -862,11 +862,6 @@
 	return 0;
 }
 
-static u16 swap_bytes(u16 val)
-{
-	return (val >> 8) | (val << 8);
-}
-
 /* The SMBus locks itself, usually, but nothing may access the chip between
    bank switches. */
 static int asb100_read_value(struct i2c_client *client, u16 reg)
diff -ruN linux-2.6.5-rc2/drivers/i2c/chips.orig/ds1621.c linux-2.6.5-rc2/drivers/i2c/chips/ds1621.c
--- linux-2.6.5-rc2/drivers/i2c/chips.orig/ds1621.c	Mon Mar 29 20:46:02 2004
+++ linux-2.6.5-rc2/drivers/i2c/chips/ds1621.c	Mon Mar 29 21:00:46 2004
@@ -97,11 +97,6 @@
 
 static int ds1621_id = 0;
 
-static u16 swap_bytes(u16 val)
-{
-	return (val >> 8) | (val << 8);
-}
-
 /* All registers are word-sized, except for the configuration register.
    DS1621 uses a high-byte first convention, which is exactly opposite to
    the usual practice. */
diff -ruN linux-2.6.5-rc2/drivers/i2c/chips.orig/lm75.c linux-2.6.5-rc2/drivers/i2c/chips/lm75.c
--- linux-2.6.5-rc2/drivers/i2c/chips.orig/lm75.c	Mon Mar 29 20:46:02 2004
+++ linux-2.6.5-rc2/drivers/i2c/chips/lm75.c	Mon Mar 29 21:00:46 2004
@@ -206,11 +206,6 @@
 	return 0;
 }
 
-static u16 swap_bytes(u16 val)
-{
-	return (val >> 8) | (val << 8);
-}
-
 /* All registers are word-sized, except for the configuration register.
    LM75 uses a high-byte first convention, which is exactly opposite to
    the usual practice. */
diff -ruN linux-2.6.5-rc2/drivers/i2c/chips.orig/lm75.h linux-2.6.5-rc2/drivers/i2c/chips/lm75.h
--- linux-2.6.5-rc2/drivers/i2c/chips.orig/lm75.h	Fri Jan 16 20:10:16 2004
+++ linux-2.6.5-rc2/drivers/i2c/chips/lm75.h	Mon Mar 29 21:06:20 2004
@@ -47,3 +47,7 @@
 	return ((s16)reg / 128) * 500;
 }
 
+static inline u16 swap_bytes(u16 val)
+{
+	return (val >> 8) | (val << 8);
+}
diff -ruN linux-2.6.5-rc2/drivers/i2c/chips.orig/w83781d.c linux-2.6.5-rc2/drivers/i2c/chips/w83781d.c
--- linux-2.6.5-rc2/drivers/i2c/chips.orig/w83781d.c	Mon Mar 29 20:50:39 2004
+++ linux-2.6.5-rc2/drivers/i2c/chips/w83781d.c	Mon Mar 29 21:00:46 2004
@@ -275,11 +275,6 @@
 static struct w83781d_data *w83781d_update_device(struct device *dev);
 static void w83781d_init_client(struct i2c_client *client);
 
-static inline u16 swap_bytes(u16 val)
-{
-	return (val >> 8) | (val << 8);
-}
-
 static struct i2c_driver w83781d_driver = {
 	.owner = THIS_MODULE,
 	.name = "w83781d",


-- 
Jean Delvare
http://www.ensicaen.ismra.fr/~delvare/



[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux