Loading drivers/staging/tm6000/tm6000-i2c.c +34 −28 Original line number Diff line number Diff line Loading @@ -172,24 +172,16 @@ static int tm6000_i2c_eeprom( struct tm6000_core *dev, dev->i2c_client.addr = 0xa0 >> 1; //006779: OUT: 000006 ms 089867 ms c0 0e a0 00 00 00 01 00 <<< 00 //006780: OUT: 000005 ms 089873 ms c0 10 a0 00 00 00 01 00 <<< 00 //006781: OUT: 000108 ms 089878 ms 40 0e a0 00 00 00 01 00 >>> 99 //006782: OUT: 000015 ms 089986 ms c0 0e a0 00 01 00 01 00 <<< 99 //006783: OUT: 000004 ms 090001 ms c0 0e a0 00 10 00 01 00 <<< 99 //006784: OUT: 000005 ms 090005 ms 40 10 a0 00 00 00 01 00 >>> 00 //006785: OUT: 000308 ms 090010 ms 40 0e a0 00 00 00 01 00 >>> 00 for (i = 0; i < len; i++) { bytes[0x14+i] = 0; rc = i2c_master_recv(&dev->i2c_client, p, 1); bytes[16] = '\0'; for (i = 0; i < len; ) { *p = i; rc = tm6000_read_write_usb (dev, USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE, REQ_16_SET_GET_I2CSEQ, 0xa0 | i<<8, 0, p, 1); if (rc < 1) { if (p==eedata) { printk (KERN_WARNING "%s doesn't have eeprom", dev->name); } else { if (p == eedata) goto noeeprom; else { printk(KERN_WARNING "%s: i2c eeprom read error (err=%d)\n", dev->name, rc); Loading @@ -205,16 +197,27 @@ static int tm6000_i2c_eeprom( struct tm6000_core *dev, } else { bytes[i%16]='.'; } if (15 == (i % 16)) { bytes[i%16]='\0'; i++; if (0 == (i % 16)) { bytes[16] = '\0'; printk(" %s\n", bytes); } } if ((i%16)!=15) { if (0 != (i%16)) { bytes[i%16] = '\0'; printk(" %s\n", bytes); for (i %= 16; i < 16; i++) printk(" "); } printk(" %s\n", bytes); return 0; noeeprom: printk(KERN_INFO "%s: Huh, no eeprom present (err=%d)?\n", dev->name, rc); return rc; } /* ----------------------------------------------------------- */ Loading Loading @@ -319,7 +322,6 @@ static int attach_inform(struct i2c_client *client) { struct tm6000_core *dev = client->adapter->algo_data; struct tuner_setup tun_setup; unsigned char eedata[11]; i2c_dprintk(1, "%s i2c attach [addr=0x%x,client=%s]\n", client->driver->driver.name, client->addr, client->name); Loading Loading @@ -416,6 +418,8 @@ void tm6000_i2c_call_clients(struct tm6000_core *dev, unsigned int cmd, void *ar */ int tm6000_i2c_register(struct tm6000_core *dev) { unsigned char eedata[256]; dev->i2c_adap = tm6000_adap_template; dev->i2c_adap.dev.parent = &dev->udev->dev; strcpy(dev->i2c_adap.name, dev->name); Loading @@ -428,6 +432,8 @@ int tm6000_i2c_register(struct tm6000_core *dev) if (i2c_scan) do_i2c_scan(dev->name, &dev->i2c_client); tm6000_i2c_eeprom(dev, eedata, sizeof(eedata)); return 0; } Loading Loading
drivers/staging/tm6000/tm6000-i2c.c +34 −28 Original line number Diff line number Diff line Loading @@ -172,24 +172,16 @@ static int tm6000_i2c_eeprom( struct tm6000_core *dev, dev->i2c_client.addr = 0xa0 >> 1; //006779: OUT: 000006 ms 089867 ms c0 0e a0 00 00 00 01 00 <<< 00 //006780: OUT: 000005 ms 089873 ms c0 10 a0 00 00 00 01 00 <<< 00 //006781: OUT: 000108 ms 089878 ms 40 0e a0 00 00 00 01 00 >>> 99 //006782: OUT: 000015 ms 089986 ms c0 0e a0 00 01 00 01 00 <<< 99 //006783: OUT: 000004 ms 090001 ms c0 0e a0 00 10 00 01 00 <<< 99 //006784: OUT: 000005 ms 090005 ms 40 10 a0 00 00 00 01 00 >>> 00 //006785: OUT: 000308 ms 090010 ms 40 0e a0 00 00 00 01 00 >>> 00 for (i = 0; i < len; i++) { bytes[0x14+i] = 0; rc = i2c_master_recv(&dev->i2c_client, p, 1); bytes[16] = '\0'; for (i = 0; i < len; ) { *p = i; rc = tm6000_read_write_usb (dev, USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE, REQ_16_SET_GET_I2CSEQ, 0xa0 | i<<8, 0, p, 1); if (rc < 1) { if (p==eedata) { printk (KERN_WARNING "%s doesn't have eeprom", dev->name); } else { if (p == eedata) goto noeeprom; else { printk(KERN_WARNING "%s: i2c eeprom read error (err=%d)\n", dev->name, rc); Loading @@ -205,16 +197,27 @@ static int tm6000_i2c_eeprom( struct tm6000_core *dev, } else { bytes[i%16]='.'; } if (15 == (i % 16)) { bytes[i%16]='\0'; i++; if (0 == (i % 16)) { bytes[16] = '\0'; printk(" %s\n", bytes); } } if ((i%16)!=15) { if (0 != (i%16)) { bytes[i%16] = '\0'; printk(" %s\n", bytes); for (i %= 16; i < 16; i++) printk(" "); } printk(" %s\n", bytes); return 0; noeeprom: printk(KERN_INFO "%s: Huh, no eeprom present (err=%d)?\n", dev->name, rc); return rc; } /* ----------------------------------------------------------- */ Loading Loading @@ -319,7 +322,6 @@ static int attach_inform(struct i2c_client *client) { struct tm6000_core *dev = client->adapter->algo_data; struct tuner_setup tun_setup; unsigned char eedata[11]; i2c_dprintk(1, "%s i2c attach [addr=0x%x,client=%s]\n", client->driver->driver.name, client->addr, client->name); Loading Loading @@ -416,6 +418,8 @@ void tm6000_i2c_call_clients(struct tm6000_core *dev, unsigned int cmd, void *ar */ int tm6000_i2c_register(struct tm6000_core *dev) { unsigned char eedata[256]; dev->i2c_adap = tm6000_adap_template; dev->i2c_adap.dev.parent = &dev->udev->dev; strcpy(dev->i2c_adap.name, dev->name); Loading @@ -428,6 +432,8 @@ int tm6000_i2c_register(struct tm6000_core *dev) if (i2c_scan) do_i2c_scan(dev->name, &dev->i2c_client); tm6000_i2c_eeprom(dev, eedata, sizeof(eedata)); return 0; } Loading