Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[PATCH] v4l: TVaudio cleanup and better debug messages

- adds the adapter number + i2c address to printk msgs.
- Some CodingStyle cleanups.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

authored by

Mauro Carvalho Chehab and committed by
Linus Torvalds
18fc59e2 dc75fc1b

+112 -94
+112 -94
drivers/media/video/tvaudio.c
··· 46 46 MODULE_LICENSE("GPL"); 47 47 48 48 #define UNSET (-1U) 49 - #define dprintk if (debug) printk 49 + 50 + #define tvaudio_info(fmt, arg...) do {\ 51 + printk(KERN_INFO "tvaudio %d-%04x: " fmt, \ 52 + chip->c.adapter->nr, chip->c.addr , ##arg); } while (0) 53 + #define tvaudio_warn(fmt, arg...) do {\ 54 + printk(KERN_WARNING "tvaudio %d-%04x: " fmt, \ 55 + chip->c.adapter->nr, chip->c.addr , ##arg); } while (0) 56 + #define tvaudio_dbg(fmt, arg...) do {\ 57 + if (debug) \ 58 + printk(KERN_INFO "tvaudio %d-%04x: " fmt, \ 59 + chip->c.adapter->nr, chip->c.addr , ##arg); } while (0) 50 60 51 61 /* ---------------------------------------------------------------------- */ 52 62 /* our structs */ ··· 172 162 unsigned char buffer[2]; 173 163 174 164 if (-1 == subaddr) { 175 - dprintk("%s: chip_write: 0x%x\n", chip->c.name, val); 165 + tvaudio_dbg("%s: chip_write: 0x%x\n", 166 + chip->c.name, val); 176 167 chip->shadow.bytes[1] = val; 177 168 buffer[0] = val; 178 169 if (1 != i2c_master_send(&chip->c,buffer,1)) { 179 - printk(KERN_WARNING "%s: I/O error (write 0x%x)\n", 180 - chip->c.name, val); 170 + tvaudio_warn("%s: I/O error (write 0x%x)\n", 171 + chip->c.name, val); 181 172 return -1; 182 173 } 183 174 } else { 184 - dprintk("%s: chip_write: reg%d=0x%x\n", 175 + tvaudio_dbg("%s: chip_write: reg%d=0x%x\n", 185 176 chip->c.name, subaddr, val); 186 177 chip->shadow.bytes[subaddr+1] = val; 187 178 buffer[0] = subaddr; 188 179 buffer[1] = val; 189 180 if (2 != i2c_master_send(&chip->c,buffer,2)) { 190 - printk(KERN_WARNING "%s: I/O error (write reg%d=0x%x)\n", 191 - chip->c.name, subaddr, val); 181 + tvaudio_warn("%s: I/O error (write reg%d=0x%x)\n", 182 + chip->c.name, subaddr, val); 192 183 return -1; 193 184 } 194 185 } ··· 213 202 unsigned char buffer; 214 203 215 204 if (1 != i2c_master_recv(&chip->c,&buffer,1)) { 216 - printk(KERN_WARNING "%s: I/O error (read)\n", chip->c.name); 205 + tvaudio_warn("%s: I/O error (read)\n", 206 + chip->c.name); 217 207 return -1; 218 208 } 219 - dprintk("%s: chip_read: 0x%x\n", chip->c.name, buffer); 209 + tvaudio_dbg("%s: chip_read: 0x%x\n",chip->c.name,buffer); 220 210 return buffer; 221 211 } 222 212 223 213 static int chip_read2(struct CHIPSTATE *chip, int subaddr) 224 214 { 225 - unsigned char write[1]; 226 - unsigned char read[1]; 227 - struct i2c_msg msgs[2] = { 228 - { chip->c.addr, 0, 1, write }, 229 - { chip->c.addr, I2C_M_RD, 1, read } 230 - }; 231 - write[0] = subaddr; 215 + unsigned char write[1]; 216 + unsigned char read[1]; 217 + struct i2c_msg msgs[2] = { 218 + { chip->c.addr, 0, 1, write }, 219 + { chip->c.addr, I2C_M_RD, 1, read } 220 + }; 221 + write[0] = subaddr; 232 222 233 223 if (2 != i2c_transfer(chip->c.adapter,msgs,2)) { 234 - printk(KERN_WARNING "%s: I/O error (read2)\n", chip->c.name); 224 + tvaudio_warn("%s: I/O error (read2)\n", chip->c.name); 235 225 return -1; 236 226 } 237 - dprintk("%s: chip_read2: reg%d=0x%x\n", 238 - chip->c.name, subaddr, read[0]); 227 + tvaudio_dbg("%s: chip_read2: reg%d=0x%x\n", 228 + chip->c.name,subaddr,read[0]); 239 229 return read[0]; 240 230 } 241 231 ··· 248 236 return 0; 249 237 250 238 /* update our shadow register set; print bytes if (debug > 0) */ 251 - dprintk("%s: chip_cmd(%s): reg=%d, data:", 252 - chip->c.name, name, cmd->bytes[0]); 239 + tvaudio_dbg("%s: chip_cmd(%s): reg=%d, data:", 240 + chip->c.name,name,cmd->bytes[0]); 253 241 for (i = 1; i < cmd->count; i++) { 254 - dprintk(" 0x%x",cmd->bytes[i]); 242 + if (debug) 243 + printk(" 0x%x",cmd->bytes[i]); 255 244 chip->shadow.bytes[i+cmd->bytes[0]] = cmd->bytes[i]; 256 245 } 257 - dprintk("\n"); 246 + if (debug) 247 + printk("\n"); 258 248 259 249 /* send data to the chip */ 260 250 if (cmd->count != i2c_master_send(&chip->c,cmd->bytes,cmd->count)) { 261 - printk(KERN_WARNING "%s: I/O error (%s)\n", chip->c.name, name); 251 + tvaudio_warn("%s: I/O error (%s)\n", chip->c.name, name); 262 252 return -1; 263 253 } 264 254 return 0; ··· 275 261 276 262 static void chip_thread_wake(unsigned long data) 277 263 { 278 - struct CHIPSTATE *chip = (struct CHIPSTATE*)data; 264 + struct CHIPSTATE *chip = (struct CHIPSTATE*)data; 279 265 wake_up_interruptible(&chip->wq); 280 266 } 281 267 282 268 static int chip_thread(void *data) 283 269 { 284 270 DECLARE_WAITQUEUE(wait, current); 285 - struct CHIPSTATE *chip = data; 271 + struct CHIPSTATE *chip = data; 286 272 struct CHIPDESC *desc = chiplist + chip->type; 287 273 288 274 daemonize("%s", chip->c.name); 289 275 allow_signal(SIGTERM); 290 - dprintk("%s: thread started\n", chip->c.name); 276 + tvaudio_dbg("%s: thread started\n", chip->c.name); 291 277 292 278 for (;;) { 293 279 add_wait_queue(&chip->wq, &wait); ··· 299 285 try_to_freeze(); 300 286 if (chip->done || signal_pending(current)) 301 287 break; 302 - dprintk("%s: thread wakeup\n", chip->c.name); 288 + tvaudio_dbg("%s: thread wakeup\n", chip->c.name); 303 289 304 290 /* don't do anything for radio or if mode != auto */ 305 291 if (chip->norm == VIDEO_MODE_RADIO || chip->mode != 0) ··· 312 298 mod_timer(&chip->wt, jiffies+2*HZ); 313 299 } 314 300 315 - dprintk("%s: thread exiting\n", chip->c.name); 316 - complete_and_exit(&chip->texit, 0); 301 + tvaudio_dbg("%s: thread exiting\n", chip->c.name); 302 + complete_and_exit(&chip->texit, 0); 317 303 return 0; 318 304 } 319 305 ··· 323 309 int mode = desc->getmode(chip); 324 310 325 311 if (mode == chip->prevmode) 326 - return; 312 + return; 327 313 328 - dprintk("%s: thread checkmode\n", chip->c.name); 314 + tvaudio_dbg("%s: thread checkmode\n", chip->c.name); 329 315 chip->prevmode = mode; 330 316 331 317 if (mode & VIDEO_SOUND_STEREO) ··· 372 358 if (val & TDA9840_ST_STEREO) 373 359 mode |= VIDEO_SOUND_STEREO; 374 360 375 - dprintk ("tda9840_getmode(): raw chip read: %d, return: %d\n", 376 - val, mode); 361 + tvaudio_dbg ("tda9840_getmode(): raw chip read: %d, return: %d\n", 362 + val, mode); 377 363 return mode; 378 364 } 379 365 ··· 668 654 mode |= VIDEO_SOUND_STEREO; 669 655 if (val & TDA9873_DUAL) 670 656 mode |= VIDEO_SOUND_LANG1 | VIDEO_SOUND_LANG2; 671 - dprintk ("tda9873_getmode(): raw chip read: %d, return: %d\n", 672 - val, mode); 657 + tvaudio_dbg ("tda9873_getmode(): raw chip read: %d, return: %d\n", 658 + val, mode); 673 659 return mode; 674 660 } 675 661 ··· 679 665 /* int adj_data = chip->shadow.bytes[TDA9873_AD+1] ; */ 680 666 681 667 if ((sw_data & TDA9873_INP_MASK) != TDA9873_INTERNAL) { 682 - dprintk("tda9873_setmode(): external input\n"); 668 + tvaudio_dbg("tda9873_setmode(): external input\n"); 683 669 return; 684 670 } 685 671 686 - dprintk("tda9873_setmode(): chip->shadow.bytes[%d] = %d\n", TDA9873_SW+1, chip->shadow.bytes[TDA9873_SW+1]); 687 - dprintk("tda9873_setmode(): sw_data = %d\n", sw_data); 672 + tvaudio_dbg("tda9873_setmode(): chip->shadow.bytes[%d] = %d\n", TDA9873_SW+1, chip->shadow.bytes[TDA9873_SW+1]); 673 + tvaudio_dbg("tda9873_setmode(): sw_data = %d\n", sw_data); 688 674 689 675 switch (mode) { 690 676 case VIDEO_SOUND_MONO: ··· 705 691 } 706 692 707 693 chip_write(chip, TDA9873_SW, sw_data); 708 - dprintk("tda9873_setmode(): req. mode %d; chip_write: %d\n", 694 + tvaudio_dbg("tda9873_setmode(): req. mode %d; chip_write: %d\n", 709 695 mode, sw_data); 710 696 } 711 697 ··· 842 828 } else { /* dic == 0x07 */ 843 829 chip_write(chip, TDA9874A_AMCONR, 0xfb); 844 830 chip_write(chip, TDA9874A_SDACOSR, (tda9874a_mode) ? 0x81:0x80); 845 - chip_write(chip, TDA9874A_AOSR, 0x00); // or 0x10 831 + chip_write(chip, TDA9874A_AOSR, 0x00); /* or 0x10 */ 846 832 } 847 - dprintk("tda9874a_setup(): %s [0x%02X].\n", 833 + tvaudio_dbg("tda9874a_setup(): %s [0x%02X].\n", 848 834 tda9874a_modelist[tda9874a_STD].name,tda9874a_STD); 849 835 return 1; 850 836 } ··· 887 873 mode |= VIDEO_SOUND_LANG1 | VIDEO_SOUND_LANG2; 888 874 } 889 875 890 - dprintk("tda9874a_getmode(): DSR=0x%X, NSR=0x%X, NECR=0x%X, return: %d.\n", 876 + tvaudio_dbg("tda9874a_getmode(): DSR=0x%X, NSR=0x%X, NECR=0x%X, return: %d.\n", 891 877 dsr, nsr, necr, mode); 892 878 return mode; 893 879 } ··· 933 919 chip_write(chip, TDA9874A_AOSR, aosr); 934 920 chip_write(chip, TDA9874A_MDACOSR, mdacosr); 935 921 936 - dprintk("tda9874a_setmode(): req. mode %d; AOSR=0x%X, MDACOSR=0x%X.\n", 922 + tvaudio_dbg("tda9874a_setmode(): req. mode %d; AOSR=0x%X, MDACOSR=0x%X.\n", 937 923 mode, aosr, mdacosr); 938 924 939 925 } else { /* dic == 0x07 */ ··· 968 954 chip_write(chip, TDA9874A_FMMR, fmmr); 969 955 chip_write(chip, TDA9874A_AOSR, aosr); 970 956 971 - dprintk("tda9874a_setmode(): req. mode %d; FMMR=0x%X, AOSR=0x%X.\n", 957 + tvaudio_dbg("tda9874a_setmode(): req. mode %d; FMMR=0x%X, AOSR=0x%X.\n", 972 958 mode, fmmr, aosr); 973 959 } 974 960 } ··· 982 968 if(-1 == (sic = chip_read2(chip,TDA9874A_SIC))) 983 969 return 0; 984 970 985 - dprintk("tda9874a_checkit(): DIC=0x%X, SIC=0x%X.\n", dic, sic); 971 + tvaudio_dbg("tda9874a_checkit(): DIC=0x%X, SIC=0x%X.\n", dic, sic); 986 972 987 973 if((dic == 0x11)||(dic == 0x07)) { 988 - printk("tvaudio: found tda9874%s.\n", (dic == 0x11) ? "a":"h"); 974 + tvaudio_info("found tda9874%s.\n", (dic == 0x11) ? "a":"h"); 989 975 tda9874a_dic = dic; /* remember device id. */ 990 976 return 1; 991 977 } ··· 1160 1146 /* ---------------------------------------------------------------------- */ 1161 1147 /* audio chip descriptions - defines+functions for TA8874Z */ 1162 1148 1163 - // write 1st byte 1149 + /* write 1st byte */ 1164 1150 #define TA8874Z_LED_STE 0x80 1165 1151 #define TA8874Z_LED_BIL 0x40 1166 1152 #define TA8874Z_LED_EXT 0x20 ··· 1170 1156 #define TA8874Z_MODE_SUB 0x02 1171 1157 #define TA8874Z_MODE_MAIN 0x01 1172 1158 1173 - // write 2nd byte 1174 - //#define TA8874Z_TI 0x80 // test mode 1159 + /* write 2nd byte */ 1160 + /*#define TA8874Z_TI 0x80 */ /* test mode */ 1175 1161 #define TA8874Z_SEPARATION 0x3f 1176 1162 #define TA8874Z_SEPARATION_DEFAULT 0x10 1177 1163 1178 - // read 1164 + /* read */ 1179 1165 #define TA8874Z_B1 0x80 1180 1166 #define TA8874Z_B0 0x40 1181 1167 #define TA8874Z_CHAG_FLAG 0x20 1182 1168 1183 - // B1 B0 1184 - // mono L H 1185 - // stereo L L 1186 - // BIL H L 1187 - 1169 + /* 1170 + * B1 B0 1171 + * mono L H 1172 + * stereo L L 1173 + * BIL H L 1174 + */ 1188 1175 static int ta8874z_getmode(struct CHIPSTATE *chip) 1189 1176 { 1190 1177 int val, mode; ··· 1197 1182 }else if (!(val & TA8874Z_B0)){ 1198 1183 mode |= VIDEO_SOUND_STEREO; 1199 1184 } 1200 - //dprintk ("ta8874z_getmode(): raw chip read: 0x%02x, return: 0x%02x\n", val, mode); 1185 + /* tvaudio_dbg ("ta8874z_getmode(): raw chip read: 0x%02x, return: 0x%02x\n", val, mode); */ 1201 1186 return mode; 1202 1187 } 1203 1188 ··· 1210 1195 { 1211 1196 int update = 1; 1212 1197 audiocmd *t = NULL; 1213 - dprintk("ta8874z_setmode(): mode: 0x%02x\n", mode); 1198 + tvaudio_dbg("ta8874z_setmode(): mode: 0x%02x\n", mode); 1214 1199 1215 1200 switch(mode){ 1216 1201 case VIDEO_SOUND_MONO: ··· 1250 1235 static int tda9855 = 1; 1251 1236 static int tda9873 = 1; 1252 1237 static int tda9874a = 1; 1253 - static int tea6300 = 0; // address clash with msp34xx 1254 - static int tea6320 = 0; // address clash with msp34xx 1238 + static int tea6300 = 0; /* address clash with msp34xx */ 1239 + static int tea6320 = 0; /* address clash with msp34xx */ 1255 1240 static int tea6420 = 1; 1256 1241 static int pic16c54 = 1; 1257 - static int ta8874z = 0; // address clash with tda9840 1242 + static int ta8874z = 0; /* address clash with tda9840 */ 1258 1243 1259 1244 module_param(tda8425, int, 0444); 1260 1245 module_param(tda9840, int, 0444); ··· 1456 1441 { 1457 1442 .name = "ta8874z", 1458 1443 .id = -1, 1459 - //.id = I2C_DRIVERID_TA8874Z, 1444 + /*.id = I2C_DRIVERID_TA8874Z, */ 1460 1445 .checkit = ta8874z_checkit, 1461 1446 .insmodopt = &ta8874z, 1462 1447 .addr_lo = I2C_TDA9840 >> 1, ··· 1491 1476 i2c_set_clientdata(&chip->c, chip); 1492 1477 1493 1478 /* find description for the chip */ 1494 - dprintk("tvaudio: chip found @ i2c-addr=0x%x\n", addr<<1); 1479 + tvaudio_dbg("chip found @ 0x%x\n", addr<<1); 1495 1480 for (desc = chiplist; desc->name != NULL; desc++) { 1496 1481 if (0 == *(desc->insmodopt)) 1497 1482 continue; ··· 1503 1488 break; 1504 1489 } 1505 1490 if (desc->name == NULL) { 1506 - dprintk("tvaudio: no matching chip description found\n"); 1491 + tvaudio_dbg("no matching chip description found\n"); 1507 1492 return -EIO; 1508 1493 } 1509 - printk("tvaudio: found %s @ 0x%x\n", desc->name, addr<<1); 1510 - dprintk("tvaudio: matches:%s%s%s.\n", 1511 - (desc->flags & CHIP_HAS_VOLUME) ? " volume" : "", 1512 - (desc->flags & CHIP_HAS_BASSTREBLE) ? " bass/treble" : "", 1513 - (desc->flags & CHIP_HAS_INPUTSEL) ? " audiomux" : ""); 1494 + tvaudio_info("%s found @ 0x%x (%s)\n", desc->name, addr<<1, adap->name); 1495 + if (desc->flags) { 1496 + tvaudio_dbg("matches:%s%s%s.\n", 1497 + (desc->flags & CHIP_HAS_VOLUME) ? " volume" : "", 1498 + (desc->flags & CHIP_HAS_BASSTREBLE) ? " bass/treble" : "", 1499 + (desc->flags & CHIP_HAS_INPUTSEL) ? " audiomux" : ""); 1500 + } 1514 1501 1515 1502 /* fill required data structures */ 1516 - strcpy(chip->c.name, desc->name); 1503 + strcpy(chip->c.name,desc->name); 1517 1504 chip->type = desc-chiplist; 1518 1505 chip->shadow.count = desc->registers+1; 1519 1506 chip->prevmode = -1; ··· 1551 1534 init_completion(&chip->texit); 1552 1535 chip->tpid = kernel_thread(chip_thread,(void *)chip,0); 1553 1536 if (chip->tpid < 0) 1554 - printk(KERN_WARNING "%s: kernel_thread() failed\n", 1537 + tvaudio_warn("%s: kernel_thread() failed\n", 1555 1538 chip->c.name); 1556 1539 wake_up_interruptible(&chip->wq); 1557 1540 } ··· 1562 1545 { 1563 1546 /* don't attach on saa7146 based cards, 1564 1547 because dedicated drivers are used */ 1565 - if (adap->id == I2C_HW_SAA7146) 1548 + if ((adap->id == I2C_HW_SAA7146)) 1566 1549 return 0; 1567 1550 #ifdef I2C_CLASS_TV_ANALOG 1568 1551 if (adap->class & I2C_CLASS_TV_ANALOG) ··· 1601 1584 static int chip_command(struct i2c_client *client, 1602 1585 unsigned int cmd, void *arg) 1603 1586 { 1604 - __u16 *sarg = arg; 1587 + __u16 *sarg = arg; 1605 1588 struct CHIPSTATE *chip = i2c_get_clientdata(client); 1606 1589 struct CHIPDESC *desc = chiplist + chip->type; 1607 1590 1608 - dprintk("%s: chip_command 0x%x\n", chip->c.name, cmd); 1591 + tvaudio_dbg("%s: chip_command 0x%x\n",chip->c.name,cmd); 1609 1592 1610 1593 switch (cmd) { 1611 1594 case AUDC_SET_INPUT: ··· 1618 1601 break; 1619 1602 1620 1603 case AUDC_SET_RADIO: 1621 - dprintk(KERN_DEBUG "tvaudio: AUDC_SET_RADIO\n"); 1622 1604 chip->norm = VIDEO_MODE_RADIO; 1623 1605 chip->watch_stereo = 0; 1624 1606 /* del_timer(&chip->wt); */ ··· 1625 1609 1626 1610 /* --- v4l ioctls --- */ 1627 1611 /* take care: bttv does userspace copying, we'll get a 1628 - kernel pointer here... */ 1612 + kernel pointer here... */ 1629 1613 case VIDIOCGAUDIO: 1630 1614 { 1631 1615 struct video_audio *va = arg; ··· 1659 1643 1660 1644 if (desc->flags & CHIP_HAS_VOLUME) { 1661 1645 chip->left = (min(65536 - va->balance,32768) * 1662 - va->volume) / 32768; 1646 + va->volume) / 32768; 1663 1647 chip->right = (min(va->balance,(__u16)32768) * 1664 - va->volume) / 32768; 1648 + va->volume) / 32768; 1665 1649 chip_write(chip,desc->leftreg,desc->volfunc(chip->left)); 1666 1650 chip_write(chip,desc->rightreg,desc->volfunc(chip->right)); 1667 1651 } ··· 1683 1667 { 1684 1668 struct video_channel *vc = arg; 1685 1669 1686 - dprintk(KERN_DEBUG "tvaudio: VIDIOCSCHAN\n"); 1687 1670 chip->norm = vc->norm; 1688 1671 break; 1689 1672 } 1690 1673 case VIDIOCSFREQ: 1691 1674 { 1692 - chip->mode = 0; /* automatic */ 1675 + chip->mode = 0; /* automatic */ 1693 1676 if (desc->checkmode) { 1694 1677 desc->setmode(chip,VIDEO_SOUND_MONO); 1695 - if (chip->prevmode != VIDEO_SOUND_MONO) 1696 - chip->prevmode = -1; /* reset previous mode */ 1678 + if (chip->prevmode != VIDEO_SOUND_MONO) 1679 + chip->prevmode = -1; /* reset previous mode */ 1697 1680 mod_timer(&chip->wt, jiffies+2*HZ); 1698 1681 /* the thread will call checkmode() later */ 1699 1682 } ··· 1704 1689 1705 1690 static struct i2c_driver driver = { 1706 1691 .owner = THIS_MODULE, 1707 - .name = "generic i2c audio driver", 1708 - .id = I2C_DRIVERID_TVAUDIO, 1709 - .flags = I2C_DF_NOTIFY, 1710 - .attach_adapter = chip_probe, 1711 - .detach_client = chip_detach, 1712 - .command = chip_command, 1692 + .name = "generic i2c audio driver", 1693 + .id = I2C_DRIVERID_TVAUDIO, 1694 + .flags = I2C_DF_NOTIFY, 1695 + .attach_adapter = chip_probe, 1696 + .detach_client = chip_detach, 1697 + .command = chip_command, 1713 1698 }; 1714 1699 1715 1700 static struct i2c_client client_template = 1716 1701 { 1717 1702 .name = "(unset)", 1718 1703 .flags = I2C_CLIENT_ALLOW_USE, 1719 - .driver = &driver, 1704 + .driver = &driver, 1720 1705 }; 1721 1706 1722 1707 static int __init audiochip_init_module(void) 1723 1708 { 1724 1709 struct CHIPDESC *desc; 1725 - printk(KERN_INFO "tvaudio: TV audio decoder + audio/video mux driver\n"); 1726 - printk(KERN_INFO "tvaudio: known chips: "); 1727 - for (desc = chiplist; desc->name != NULL; desc++) 1728 - printk("%s%s", (desc == chiplist) ? "" : ",",desc->name); 1729 - printk("\n"); 1710 + 1711 + if (debug) { 1712 + printk(KERN_INFO "tvaudio: TV audio decoder + audio/video mux driver\n"); 1713 + printk(KERN_INFO "tvaudio: known chips: "); 1714 + for (desc = chiplist; desc->name != NULL; desc++) 1715 + printk("%s%s", (desc == chiplist) ? "" : ", ", desc->name); 1716 + printk("\n"); 1717 + } 1730 1718 1731 1719 return i2c_add_driver(&driver); 1732 1720 }