Commit 9f1d0bda authored by Antti Palosaari's avatar Antti Palosaari Committed by Mauro Carvalho Chehab

[media] em28xx: add support for Empia EM28178

New chip version, which is very similar than EM28174.
Signed-off-by: default avatarAntti Palosaari <crope@iki.fi>
Signed-off-by: default avatarMauro Carvalho Chehab <m.chehab@samsung.com>
parent bd6f2745
...@@ -3054,6 +3054,11 @@ static int em28xx_init_dev(struct em28xx *dev, struct usb_device *udev, ...@@ -3054,6 +3054,11 @@ static int em28xx_init_dev(struct em28xx *dev, struct usb_device *udev,
dev->wait_after_write = 0; dev->wait_after_write = 0;
dev->eeprom_addrwidth_16bit = 1; dev->eeprom_addrwidth_16bit = 1;
break; break;
case CHIP_ID_EM28178:
chip_name = "em28178";
dev->wait_after_write = 0;
dev->eeprom_addrwidth_16bit = 1;
break;
case CHIP_ID_EM2883: case CHIP_ID_EM2883:
chip_name = "em2882/3"; chip_name = "em2882/3";
dev->wait_after_write = 0; dev->wait_after_write = 0;
......
...@@ -501,8 +501,10 @@ int em28xx_audio_setup(struct em28xx *dev) ...@@ -501,8 +501,10 @@ int em28xx_audio_setup(struct em28xx *dev)
int vid1, vid2, feat, cfg; int vid1, vid2, feat, cfg;
u32 vid; u32 vid;
if (dev->chip_id == CHIP_ID_EM2870 || dev->chip_id == CHIP_ID_EM2874 if (dev->chip_id == CHIP_ID_EM2870 ||
|| dev->chip_id == CHIP_ID_EM28174) { dev->chip_id == CHIP_ID_EM2874 ||
dev->chip_id == CHIP_ID_EM28174 ||
dev->chip_id == CHIP_ID_EM28178) {
/* Digital only device - don't load any alsa module */ /* Digital only device - don't load any alsa module */
dev->audio_mode.has_audio = false; dev->audio_mode.has_audio = false;
dev->has_audio_class = false; dev->has_audio_class = false;
...@@ -641,7 +643,8 @@ int em28xx_capture_start(struct em28xx *dev, int start) ...@@ -641,7 +643,8 @@ int em28xx_capture_start(struct em28xx *dev, int start)
if (dev->chip_id == CHIP_ID_EM2874 || if (dev->chip_id == CHIP_ID_EM2874 ||
dev->chip_id == CHIP_ID_EM2884 || dev->chip_id == CHIP_ID_EM2884 ||
dev->chip_id == CHIP_ID_EM28174) { dev->chip_id == CHIP_ID_EM28174 ||
dev->chip_id == CHIP_ID_EM28178) {
/* The Transport Stream Enable Register moved in em2874 */ /* The Transport Stream Enable Register moved in em2874 */
rc = em28xx_write_reg_bits(dev, EM2874_R5F_TS_ENABLE, rc = em28xx_write_reg_bits(dev, EM2874_R5F_TS_ENABLE,
start ? start ?
......
...@@ -442,6 +442,7 @@ static int em28xx_ir_change_protocol(struct rc_dev *rc_dev, u64 *rc_type) ...@@ -442,6 +442,7 @@ static int em28xx_ir_change_protocol(struct rc_dev *rc_dev, u64 *rc_type)
case CHIP_ID_EM2884: case CHIP_ID_EM2884:
case CHIP_ID_EM2874: case CHIP_ID_EM2874:
case CHIP_ID_EM28174: case CHIP_ID_EM28174:
case CHIP_ID_EM28178:
return em2874_ir_change_protocol(rc_dev, rc_type); return em2874_ir_change_protocol(rc_dev, rc_type);
default: default:
printk("Unrecognized em28xx chip id 0x%02x: IR not supported\n", printk("Unrecognized em28xx chip id 0x%02x: IR not supported\n",
...@@ -734,6 +735,7 @@ static int em28xx_ir_init(struct em28xx *dev) ...@@ -734,6 +735,7 @@ static int em28xx_ir_init(struct em28xx *dev)
case CHIP_ID_EM2884: case CHIP_ID_EM2884:
case CHIP_ID_EM2874: case CHIP_ID_EM2874:
case CHIP_ID_EM28174: case CHIP_ID_EM28174:
case CHIP_ID_EM28178:
ir->get_key = em2874_polling_getkey; ir->get_key = em2874_polling_getkey;
rc->allowed_protos = RC_BIT_RC5 | RC_BIT_NEC | rc->allowed_protos = RC_BIT_RC5 | RC_BIT_NEC |
RC_BIT_RC6_0; RC_BIT_RC6_0;
......
...@@ -245,6 +245,7 @@ enum em28xx_chip_id { ...@@ -245,6 +245,7 @@ enum em28xx_chip_id {
CHIP_ID_EM2874 = 65, CHIP_ID_EM2874 = 65,
CHIP_ID_EM2884 = 68, CHIP_ID_EM2884 = 68,
CHIP_ID_EM28174 = 113, CHIP_ID_EM28174 = 113,
CHIP_ID_EM28178 = 114,
}; };
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment