Changeset 3355

Show
Ignore:
Timestamp:
08/26/99 16:33:28 (14 years ago)
Author:
kmalkki
Message:

(Kyösti)

  • removed i2c_master_{send,recv}_subaddress

Not needed, one should use i2c_transfer or i2c_smbus_* calls instead.

  • added I2C_DRIVERIDs for Katos -compatibility

Katos is a similar video4linux project as bttv, but supports cards
manufactured by ATI. I am porting their i2c code to be compatible with
the i2c CVS tree.

Location:
i2c/trunk/kernel
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • i2c/trunk/kernel/i2c-core.c

    r3354 r3355  
    727727        } 
    728728} 
    729  
    730 int i2c_master_send_subadress(struct i2c_client *client,const char *buf ,int count, int subadress) 
    731 { 
    732         char*   c; 
    733          
    734         int ret; 
    735         struct i2c_adapter *adap=client->adapter; 
    736         struct i2c_msg msg; 
    737  
    738         if (client->adapter->algo->master_xfer) { 
    739                 c = (char*)kmalloc(sizeof(char)*(count+1),GFP_KERNEL); 
    740                 if (0 == c)  
    741                         return -ENOMEM; 
    742          
    743                 msg.addr   = client->addr; 
    744                 msg.flags  = client->flags & ( I2C_M_TEN|I2C_M_TENMASK ); 
    745                 msg.len = count+1; 
    746                 (const char *)msg.buf = c; 
    747                          
    748                 c[0] = subadress; 
    749                 memcpy(&c[1], buf, sizeof(char)*count); 
    750                  
    751                 DEB(printk("i2c-core.o: master_send_subadress: writing %d bytes on %s. (sa:0x%02x)\n", 
    752                         count,client->adapter->name,subadress)); 
    753          
    754                 I2C_LOCK(adap); 
    755                 ret = adap->algo->master_xfer(adap,&msg,1); 
    756                 I2C_UNLOCK(adap); 
    757  
    758                 /* if everything went ok (i.e. 1 msg transmitted), return #bytes 
    759                 * transmitted, else error code. 
    760                 */ 
    761           
    762                 kfree(c); 
    763                  
    764                 return (ret == 1 )? count : ret; 
    765         } else { 
    766                 printk("i2c-core.o: I2C adapter %04x: I2C level transfers not supported\n", 
    767                        client->adapter->id); 
    768                 return 0; 
    769         } 
    770 } 
    771  
    772  
    773 int i2c_master_recv_subadress(struct i2c_client *client,const char *buf ,int count, int subadress) 
    774 { 
    775         int     ret; 
    776         struct  i2c_adapter *adap=client->adapter; 
    777         struct  i2c_msg msg[2]; 
    778          
    779         if (client->adapter->algo->master_xfer) { 
    780                 msg[0].addr     = client->addr; 
    781                 msg[0].flags    = client->flags & ( I2C_M_TEN|I2C_M_TENMASK ); 
    782                 msg[0].len      = 1; 
    783                 (const char*)msg[0].buf = (const char*)&subadress; 
    784          
    785                 msg[1].addr     = client->addr; 
    786                 msg[1].flags    = client->flags & ( I2C_M_TEN|I2C_M_TENMASK ); 
    787                 msg[1].flags    |= I2C_M_RD; 
    788                 msg[1].len      = count; 
    789                 (const char*)msg[1].buf = (const char*)buf; 
    790                  
    791                 DEB(printk("i2c-core.o: master_recv_subadress: reading %d bytes from subadress %d on %s.\n", 
    792                         count,subadress,client->adapter->name)); 
    793          
    794                 I2C_LOCK(adap); 
    795                 ret = adap->algo->master_xfer(adap,msg,2); 
    796                 I2C_UNLOCK(adap); 
    797  
    798                 /* if everything went ok (i.e. 1 msg transmitted), 
    799                 return 0, else return error code. 
    800                 */ 
    801                 return (ret == 1 ) ? 0 : ret; 
    802         } else { 
    803                 printk("i2c-core.o: I2C adapter %04x: I2C level transfers not supported\n", 
    804                        client->adapter->id); 
    805                 return 0; 
    806         } 
    807 } 
    808  
    809  
    810729 
    811730int i2c_master_recv(struct i2c_client *client, char *buf ,int count) 
     
    13101229EXPORT_SYMBOL(i2c_master_send); 
    13111230EXPORT_SYMBOL(i2c_master_recv); 
    1312 EXPORT_SYMBOL(i2c_master_send_subadress); 
    1313 EXPORT_SYMBOL(i2c_master_recv_subadress); 
    13141231EXPORT_SYMBOL(i2c_control); 
    13151232EXPORT_SYMBOL(i2c_transfer); 
  • i2c/trunk/kernel/i2c.h

    r3354 r3355  
    7676 */ 
    7777extern int i2c_transfer(struct i2c_adapter *adap, struct i2c_msg msg[],int num); 
    78  
    79 /* Two convenience functions: send bytes to/recv from a chip with   
    80  * sending one byte of data first, normally a register address. 
    81  */ 
    82 extern int i2c_master_send_subadress(struct i2c_client *client, 
    83                                      const char *buf ,int count, int subadress); 
    84 extern int i2c_master_recv_subadress(struct i2c_client *client,const char *buf, 
    85                                      int count, int subadress); 
    86  
    8778 
    8879/* 
     
    10798#define I2C_M_TENMASK   0x06 
    10899#define I2C_M_RD        0x01 
     100#define I2C_M_PROBE     0x20 
    109101        short len;              /* msg length                           */ 
    110102        char *buf;              /* pointer to msg data                  */ 
     
    427419#define I2C_DRIVERID_TUNER       2 
    428420#define I2C_DRIVERID_VIDEOTEXT   3 
     421#define I2C_DRIVERID_TDA8425     4      /* stereo sound processor       */ 
    429422#define I2C_DRIVERID_TEA6420     5      /* audio matrix switch          */ 
    430423#define I2C_DRIVERID_TEA6415C    6      /* video matrix switch          */ 
     
    441434#define I2C_DRIVERID_AT24Cxx    17      /* eeprom 1/2/4/8/16 K          */ 
    442435#define I2C_DRIVERID_BT848      18      /* dummy client driver          */ 
     436#define I2C_DRIVERID_BT829      19      /* dummy client driver          */ 
    443437 
    444438#define I2C_DRIVERID_EXP0       0xF0    /* experimental use id's        */ 
     
    460454#define I2C_ALGO_BIT    0x010000        /* bit style adapters           */ 
    461455#define I2C_ALGO_PCF    0x020000        /* PCF 8584 style adapters      */ 
     456#define I2C_ALGO_ATI    0x030000        /* ATI video card               */ 
    462457#define I2C_ALGO_SMBUS  0x040000 
    463458#define I2C_ALGO_ISA    0x050000        /* lm_sensors ISA pseudo-adapter */