V4L/DVB (9627): em28xx: Avoid i2c register error for boards without eeprom

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>

+6 -4
+6 -4
drivers/media/video/em28xx/em28xx-i2c.c
··· 337 337 /* Check if board has eeprom */ 338 338 err = i2c_master_recv(&dev->i2c_client, &buf, 0); 339 339 if (err < 0) { 340 - em28xx_errdev("%s: i2c_master_recv failed! err [%d]\n", 341 - __func__, err); 342 - return err; 340 + em28xx_errdev("board has no eeprom\n"); 341 + memset(eedata, 0, len); 342 + return -ENODEV; 343 343 } 344 344 345 345 buf = 0; ··· 609 609 dev->i2c_client.adapter = &dev->i2c_adap; 610 610 611 611 retval = em28xx_i2c_eeprom(dev, dev->eedata, sizeof(dev->eedata)); 612 - if (retval < 0) { 612 + if ((retval < 0) && (retval != -ENODEV)) { 613 613 em28xx_errdev("%s: em28xx_i2_eeprom failed! retval [%d]\n", 614 614 __func__, retval); 615 + 615 616 return retval; 616 617 } 617 618 618 619 if (i2c_scan) 619 620 em28xx_do_i2c_scan(dev); 621 + 620 622 return 0; 621 623 } 622 624