[media] em28xx: make the logs reflect the specific chip name

In order to make easier to analize the logs when multiple devices
are plugged, change the device name accordingly with the chip
version.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
Mauro Carvalho Chehab 2012-12-23 16:32:03 -02:00
parent aa51496b21
commit a3efa1cc0e
1 changed files with 33 additions and 13 deletions

View File

@ -2957,6 +2957,8 @@ static int em28xx_init_dev(struct em28xx *dev, struct usb_device *udev,
int minor)
{
int retval;
static const char *default_chip_name = "em28xx";
const char *chip_name = default_chip_name;
dev->udev = udev;
mutex_init(&dev->ctrl_urb_lock);
@ -2984,51 +2986,62 @@ static int em28xx_init_dev(struct em28xx *dev, struct usb_device *udev,
switch (dev->chip_id) {
case CHIP_ID_EM2800:
em28xx_info("chip ID is em2800\n");
chip_name = "em2800";
break;
case CHIP_ID_EM2710:
em28xx_info("chip ID is em2710\n");
chip_name = "em2710";
break;
case CHIP_ID_EM2750:
em28xx_info("chip ID is em2750\n");
chip_name = "em2750";
break;
case CHIP_ID_EM2820:
em28xx_info("chip ID is em2820 (or em2710)\n");
chip_name = "em2710/2820";
break;
case CHIP_ID_EM2840:
em28xx_info("chip ID is em2840\n");
chip_name = "em2840";
break;
case CHIP_ID_EM2860:
em28xx_info("chip ID is em2860\n");
chip_name = "em2860";
break;
case CHIP_ID_EM2870:
em28xx_info("chip ID is em2870\n");
chip_name = "em2870";
dev->wait_after_write = 0;
break;
case CHIP_ID_EM2874:
em28xx_info("chip ID is em2874\n");
chip_name = "em2874";
dev->reg_gpio_num = EM2874_R80_GPIO;
dev->wait_after_write = 0;
break;
case CHIP_ID_EM28174:
em28xx_info("chip ID is em28174\n");
chip_name = "em28174";
dev->reg_gpio_num = EM2874_R80_GPIO;
dev->wait_after_write = 0;
break;
case CHIP_ID_EM2883:
em28xx_info("chip ID is em2882/em2883\n");
chip_name = "em2882/3";
dev->wait_after_write = 0;
break;
case CHIP_ID_EM2884:
em28xx_info("chip ID is em2884\n");
chip_name = "em2884";
dev->reg_gpio_num = EM2874_R80_GPIO;
dev->wait_after_write = 0;
break;
default:
em28xx_info("em28xx chip ID = %d\n", dev->chip_id);
printk(KERN_INFO DRIVER_NAME
": unknown em28xx chip ID (%d)\n", dev->chip_id);
}
}
if (chip_name != default_chip_name)
printk(KERN_INFO DRIVER_NAME
": chip ID is %s\n", chip_name);
/*
* For em2820/em2710, the name may change latter, after checking
* if the device has a sensor (so, it is em2710) or not.
*/
snprintf(dev->name, sizeof(dev->name), "%s #%d", chip_name, dev->devno);
if (dev->is_audio_only) {
retval = em28xx_audio_setup(dev);
if (retval)
@ -3045,6 +3058,14 @@ static int em28xx_init_dev(struct em28xx *dev, struct usb_device *udev,
em28xx_pre_card_setup(dev);
if (dev->chip_id == CHIP_ID_EM2820) {
if (dev->board.is_webcam)
chip_name = "em2710";
else
chip_name = "em2820";
snprintf(dev->name, sizeof(dev->name), "%s #%d", chip_name, dev->devno);
}
if (!dev->board.is_em2800) {
/* Resets I2C speed */
retval = em28xx_write_reg(dev, EM28XX_R06_I2C_CLK, dev->board.i2c_speed);
@ -3331,7 +3352,6 @@ static int em28xx_usb_probe(struct usb_interface *interface,
(!dev->dvb_ep_isoc || (prefer_bulk && dev->dvb_ep_bulk)))
dev->dvb_xfer_bulk = 1;
snprintf(dev->name, sizeof(dev->name), "em28xx #%d", nr);
dev->devno = nr;
dev->model = id->driver_info;
dev->alt = -1;