ieee1394: pcilynx: I2C cleanups
authorJean Delvare <khali@linux-fr.org>
Sat, 8 Sep 2007 12:09:19 +0000 (14:09 +0200)
committerStefan Richter <stefanr@s5r6.in-berlin.de>
Tue, 16 Oct 2007 21:59:57 +0000 (23:59 +0200)
* Delete optional and empty i2c client_register and client_unregister
  callbacks.
* Use the proper i2c adapter ID.
* Don't use a template to initialize the i2c_adapter structure, it's
  inefficient.
* Update a misleading comment on why we use i2c_transfer rather than
  higher level i2c functions.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
drivers/ieee1394/pcilynx.c

index 7762e43..8af01ab 100644 (file)
@@ -121,16 +121,6 @@ static int bit_getsda(void *data)
        return reg_read((struct ti_lynx *) data, SERIAL_EEPROM_CONTROL) & 0x00000010;
 }
 
-static int bit_reg(struct i2c_client *client)
-{
-       return 0;
-}
-
-static int bit_unreg(struct i2c_client *client)
-{
-       return 0;
-}
-
 static struct i2c_algo_bit_data bit_data = {
        .setsda                 = bit_setsda,
        .setscl                 = bit_setscl,
@@ -140,14 +130,6 @@ static struct i2c_algo_bit_data bit_data = {
        .timeout                = 100,
 };
 
-static struct i2c_adapter bit_ops = {
-       .id                     = 0xAA, //FIXME: probably we should get an id in i2c-id.h
-       .client_register        = bit_reg,
-       .client_unregister      = bit_unreg,
-       .name                   = "PCILynx I2C",
-};
-
-
 
 /*
  * PCL handling functions.
@@ -1435,9 +1417,11 @@ static int __devinit add_card(struct pci_dev *dev,
                struct i2c_algo_bit_data i2c_adapter_data;
 
                error = -ENOMEM;
-               i2c_ad = kmemdup(&bit_ops, sizeof(*i2c_ad), GFP_KERNEL);
+               i2c_ad = kzalloc(sizeof(*i2c_ad), GFP_KERNEL);
                if (!i2c_ad) FAIL("failed to allocate I2C adapter memory");
 
+               i2c_ad->id = I2C_HW_B_PCILYNX;
+               strlcpy(i2c_ad->name, "PCILynx I2C", sizeof(i2c_ad->name));
                 i2c_adapter_data = bit_data;
                 i2c_ad->algo_data = &i2c_adapter_data;
                 i2c_adapter_data.data = lynx;
@@ -1464,8 +1448,8 @@ static int __devinit add_card(struct pci_dev *dev,
                                                   { 0x50, I2C_M_RD, 20, (unsigned char*) lynx->bus_info_block }
                                                 };
 
-                        /* we use i2c_transfer, because i2c_smbus_read_block_data does not work properly and we
-                           do it more efficiently in one transaction rather then using several reads */
+                       /* we use i2c_transfer because we have no i2c_client
+                          at hand */
                         if (i2c_transfer(i2c_ad, msg, 2) < 0) {
                                 PRINT(KERN_ERR, lynx->id, "unable to read bus info block from i2c");
                         } else {