提交 3acf2809 编写于 作者: M Mauro Carvalho Chehab 提交者: Linus Torvalds

[PATCH] v4l: 886: renamed common structures to em28xx

- Renamed common structures to em28xx
Signed-off-by: NMauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: NAndrew Morton <akpm@osdl.org>
Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
上级 e0ec29b7
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
#include "em28xx.h" #include "em28xx.h"
struct em2820_board em2820_boards[] = { struct em28xx_board em28xx_boards[] = {
[EM2800_BOARD_UNKNOWN] = { [EM2800_BOARD_UNKNOWN] = {
.name = "Unknown EM2800 video grabber", .name = "Unknown EM2800 video grabber",
.is_em2800 = 1, .is_em2800 = 1,
...@@ -42,13 +42,13 @@ struct em2820_board em2820_boards[] = { ...@@ -42,13 +42,13 @@ struct em2820_board em2820_boards[] = {
.norm = VIDEO_MODE_PAL, .norm = VIDEO_MODE_PAL,
.tda9887_conf = TDA9887_PRESENT, .tda9887_conf = TDA9887_PRESENT,
.has_tuner = 1, .has_tuner = 1,
.decoder = EM2820_SAA7113, .decoder = EM28XX_SAA7113,
.input = {{ .input = {{
.type = EM2820_VMUX_COMPOSITE1, .type = EM28XX_VMUX_COMPOSITE1,
.vmux = 0, .vmux = 0,
.amux = 1, .amux = 1,
},{ },{
.type = EM2820_VMUX_SVIDEO, .type = EM28XX_VMUX_SVIDEO,
.vmux = 9, .vmux = 9,
.amux = 1, .amux = 1,
}}, }},
...@@ -60,13 +60,13 @@ struct em2820_board em2820_boards[] = { ...@@ -60,13 +60,13 @@ struct em2820_board em2820_boards[] = {
.norm = VIDEO_MODE_PAL, .norm = VIDEO_MODE_PAL,
.tda9887_conf = TDA9887_PRESENT, .tda9887_conf = TDA9887_PRESENT,
.has_tuner = 1, .has_tuner = 1,
.decoder = EM2820_SAA7113, .decoder = EM28XX_SAA7113,
.input = {{ .input = {{
.type = EM2820_VMUX_COMPOSITE1, .type = EM28XX_VMUX_COMPOSITE1,
.vmux = 0, .vmux = 0,
.amux = 1, .amux = 1,
},{ },{
.type = EM2820_VMUX_SVIDEO, .type = EM28XX_VMUX_SVIDEO,
.vmux = 9, .vmux = 9,
.amux = 1, .amux = 1,
}}, }},
...@@ -78,17 +78,17 @@ struct em2820_board em2820_boards[] = { ...@@ -78,17 +78,17 @@ struct em2820_board em2820_boards[] = {
.tuner_type = TUNER_LG_PAL_NEW_TAPC, .tuner_type = TUNER_LG_PAL_NEW_TAPC,
.tda9887_conf = TDA9887_PRESENT, .tda9887_conf = TDA9887_PRESENT,
.has_tuner = 1, .has_tuner = 1,
.decoder = EM2820_SAA7113, .decoder = EM28XX_SAA7113,
.input = {{ .input = {{
.type = EM2820_VMUX_TELEVISION, .type = EM28XX_VMUX_TELEVISION,
.vmux = 2, .vmux = 2,
.amux = 0, .amux = 0,
},{ },{
.type = EM2820_VMUX_COMPOSITE1, .type = EM28XX_VMUX_COMPOSITE1,
.vmux = 0, .vmux = 0,
.amux = 1, .amux = 1,
},{ },{
.type = EM2820_VMUX_SVIDEO, .type = EM28XX_VMUX_SVIDEO,
.vmux = 9, .vmux = 9,
.amux = 1, .amux = 1,
}}, }},
...@@ -100,17 +100,17 @@ struct em2820_board em2820_boards[] = { ...@@ -100,17 +100,17 @@ struct em2820_board em2820_boards[] = {
.tuner_type = TUNER_LG_PAL_NEW_TAPC, .tuner_type = TUNER_LG_PAL_NEW_TAPC,
.tda9887_conf = TDA9887_PRESENT, .tda9887_conf = TDA9887_PRESENT,
.has_tuner = 1, .has_tuner = 1,
.decoder = EM2820_SAA7113, .decoder = EM28XX_SAA7113,
.input = {{ .input = {{
.type = EM2820_VMUX_TELEVISION, .type = EM28XX_VMUX_TELEVISION,
.vmux = 2, .vmux = 2,
.amux = 0, .amux = 0,
},{ },{
.type = EM2820_VMUX_COMPOSITE1, .type = EM28XX_VMUX_COMPOSITE1,
.vmux = 0, .vmux = 0,
.amux = 1, .amux = 1,
},{ },{
.type = EM2820_VMUX_SVIDEO, .type = EM28XX_VMUX_SVIDEO,
.vmux = 9, .vmux = 9,
.amux = 1, .amux = 1,
}}, }},
...@@ -122,15 +122,15 @@ struct em2820_board em2820_boards[] = { ...@@ -122,15 +122,15 @@ struct em2820_board em2820_boards[] = {
.tuner_type = TUNER_PHILIPS_FM1236_MK3, .tuner_type = TUNER_PHILIPS_FM1236_MK3,
.tda9887_conf = TDA9887_PRESENT|TDA9887_PORT1_ACTIVE|TDA9887_PORT2_ACTIVE, .tda9887_conf = TDA9887_PRESENT|TDA9887_PORT1_ACTIVE|TDA9887_PORT2_ACTIVE,
.has_tuner = 1, .has_tuner = 1,
.decoder = EM2820_TVP5150, .decoder = EM28XX_TVP5150,
.has_msp34xx = 1, .has_msp34xx = 1,
/*FIXME: S-Video not tested */ /*FIXME: S-Video not tested */
.input = {{ .input = {{
.type = EM2820_VMUX_TELEVISION, .type = EM28XX_VMUX_TELEVISION,
.vmux = 0, .vmux = 0,
.amux = 0, .amux = 0,
},{ },{
.type = EM2820_VMUX_SVIDEO, .type = EM28XX_VMUX_SVIDEO,
.vmux = 2, .vmux = 2,
.amux = 1, .amux = 1,
}}, }},
...@@ -142,17 +142,17 @@ struct em2820_board em2820_boards[] = { ...@@ -142,17 +142,17 @@ struct em2820_board em2820_boards[] = {
.tuner_type = TUNER_LG_PAL_NEW_TAPC, .tuner_type = TUNER_LG_PAL_NEW_TAPC,
.tda9887_conf = TDA9887_PRESENT|TDA9887_PORT1_ACTIVE|TDA9887_PORT2_ACTIVE, .tda9887_conf = TDA9887_PRESENT|TDA9887_PORT1_ACTIVE|TDA9887_PORT2_ACTIVE,
.has_tuner = 1, .has_tuner = 1,
.decoder = EM2820_SAA7114, .decoder = EM28XX_SAA7114,
.input = {{ .input = {{
.type = EM2820_VMUX_TELEVISION, .type = EM28XX_VMUX_TELEVISION,
.vmux = 4, .vmux = 4,
.amux = 0, .amux = 0,
},{ },{
.type = EM2820_VMUX_COMPOSITE1, .type = EM28XX_VMUX_COMPOSITE1,
.vmux = 0, .vmux = 0,
.amux = 1, .amux = 1,
},{ },{
.type = EM2820_VMUX_SVIDEO, .type = EM28XX_VMUX_SVIDEO,
.vmux = 9, .vmux = 9,
.amux = 1, .amux = 1,
}}, }},
...@@ -165,17 +165,17 @@ struct em2820_board em2820_boards[] = { ...@@ -165,17 +165,17 @@ struct em2820_board em2820_boards[] = {
.tuner_type = TUNER_LG_PAL_NEW_TAPC, .tuner_type = TUNER_LG_PAL_NEW_TAPC,
.tda9887_conf = TDA9887_PRESENT, .tda9887_conf = TDA9887_PRESENT,
.has_tuner = 1, .has_tuner = 1,
.decoder = EM2820_SAA7113, .decoder = EM28XX_SAA7113,
.input = {{ .input = {{
.type = EM2820_VMUX_TELEVISION, .type = EM28XX_VMUX_TELEVISION,
.vmux = 2, .vmux = 2,
.amux = 0, .amux = 0,
},{ },{
.type = EM2820_VMUX_COMPOSITE1, .type = EM28XX_VMUX_COMPOSITE1,
.vmux = 0, .vmux = 0,
.amux = 1, .amux = 1,
},{ },{
.type = EM2820_VMUX_SVIDEO, .type = EM28XX_VMUX_SVIDEO,
.vmux = 9, .vmux = 9,
.amux = 1, .amux = 1,
}}, }},
...@@ -188,17 +188,17 @@ struct em2820_board em2820_boards[] = { ...@@ -188,17 +188,17 @@ struct em2820_board em2820_boards[] = {
.tuner_type = TUNER_LG_PAL_NEW_TAPC, .tuner_type = TUNER_LG_PAL_NEW_TAPC,
.tda9887_conf = TDA9887_PRESENT, .tda9887_conf = TDA9887_PRESENT,
.has_tuner = 1, .has_tuner = 1,
.decoder = EM2820_SAA7113, .decoder = EM28XX_SAA7113,
.input = {{ .input = {{
.type = EM2820_VMUX_TELEVISION, .type = EM28XX_VMUX_TELEVISION,
.vmux = 2, .vmux = 2,
.amux = 0, .amux = 0,
},{ },{
.type = EM2820_VMUX_COMPOSITE1, .type = EM28XX_VMUX_COMPOSITE1,
.vmux = 0, .vmux = 0,
.amux = 1, .amux = 1,
},{ },{
.type = EM2820_VMUX_SVIDEO, .type = EM28XX_VMUX_SVIDEO,
.vmux = 9, .vmux = 9,
.amux = 1, .amux = 1,
}}, }},
...@@ -211,17 +211,17 @@ struct em2820_board em2820_boards[] = { ...@@ -211,17 +211,17 @@ struct em2820_board em2820_boards[] = {
.tuner_type = TUNER_PHILIPS_ATSC, .tuner_type = TUNER_PHILIPS_ATSC,
.tda9887_conf = TDA9887_PRESENT, .tda9887_conf = TDA9887_PRESENT,
.has_tuner = 1, .has_tuner = 1,
.decoder = EM2820_SAA7113, .decoder = EM28XX_SAA7113,
.input = {{ .input = {{
.type = EM2820_VMUX_TELEVISION, .type = EM28XX_VMUX_TELEVISION,
.vmux = 2, .vmux = 2,
.amux = 0, .amux = 0,
},{ },{
.type = EM2820_VMUX_COMPOSITE1, .type = EM28XX_VMUX_COMPOSITE1,
.vmux = 0, .vmux = 0,
.amux = 1, .amux = 1,
},{ },{
.type = EM2820_VMUX_SVIDEO, .type = EM28XX_VMUX_SVIDEO,
.vmux = 9, .vmux = 9,
.amux = 1, .amux = 1,
}}, }},
...@@ -231,22 +231,22 @@ struct em2820_board em2820_boards[] = { ...@@ -231,22 +231,22 @@ struct em2820_board em2820_boards[] = {
.vchannels = 3, .vchannels = 3,
.norm = VIDEO_MODE_PAL, .norm = VIDEO_MODE_PAL,
.has_tuner = 0, .has_tuner = 0,
.decoder = EM2820_SAA7113, .decoder = EM28XX_SAA7113,
.input = {{ .input = {{
.type = EM2820_VMUX_COMPOSITE1, .type = EM28XX_VMUX_COMPOSITE1,
.vmux = 0, .vmux = 0,
.amux = 1, .amux = 1,
},{ },{
.type = EM2820_VMUX_SVIDEO, .type = EM28XX_VMUX_SVIDEO,
.vmux = 9, .vmux = 9,
.amux = 1, .amux = 1,
}}, }},
}, },
}; };
const unsigned int em2820_bcount = ARRAY_SIZE(em2820_boards); const unsigned int em28xx_bcount = ARRAY_SIZE(em28xx_boards);
/* table of devices that work with this driver */ /* table of devices that work with this driver */
struct usb_device_id em2820_id_table [] = { struct usb_device_id em28xx_id_table [] = {
{ USB_DEVICE(0xeb1a, 0x2800), .driver_info = EM2800_BOARD_UNKNOWN }, { USB_DEVICE(0xeb1a, 0x2800), .driver_info = EM2800_BOARD_UNKNOWN },
{ USB_DEVICE(0xeb1a, 0x2820), .driver_info = EM2820_BOARD_MSI_VOX_USB_2 }, { USB_DEVICE(0xeb1a, 0x2820), .driver_info = EM2820_BOARD_MSI_VOX_USB_2 },
{ USB_DEVICE(0x0ccd, 0x0036), .driver_info = EM2820_BOARD_TERRATEC_CINERGY_250 }, { USB_DEVICE(0x0ccd, 0x0036), .driver_info = EM2820_BOARD_TERRATEC_CINERGY_250 },
...@@ -256,7 +256,7 @@ struct usb_device_id em2820_id_table [] = { ...@@ -256,7 +256,7 @@ struct usb_device_id em2820_id_table [] = {
{ }, { },
}; };
void em2820_card_setup(struct em2820 *dev) void em28xx_card_setup(struct em28xx *dev)
{ {
/* request some modules */ /* request some modules */
if (dev->model == EM2820_BOARD_HAUPPAUGE_WINTV_USB_2) { if (dev->model == EM2820_BOARD_HAUPPAUGE_WINTV_USB_2) {
...@@ -274,14 +274,14 @@ void em2820_card_setup(struct em2820 *dev) ...@@ -274,14 +274,14 @@ void em2820_card_setup(struct em2820 *dev)
if (tv.audio_processor == AUDIO_CHIP_MSP34XX) { if (tv.audio_processor == AUDIO_CHIP_MSP34XX) {
dev->has_msp34xx=1; dev->has_msp34xx=1;
} else dev->has_msp34xx=0; } else dev->has_msp34xx=0;
em2820_write_regs_req(dev,0x06,0x00,"\x40",1);// Serial Bus Frequency Select Register em28xx_write_regs_req(dev,0x06,0x00,"\x40",1);// Serial Bus Frequency Select Register
em2820_write_regs_req(dev,0x0f,0x00,"\x87",1);// XCLK Frequency Select Register em28xx_write_regs_req(dev,0x0f,0x00,"\x87",1);// XCLK Frequency Select Register
em2820_write_regs_req(dev,0x88,0x0d,"\xd0",1); em28xx_write_regs_req(dev,0x88,0x0d,"\xd0",1);
} }
} }
EXPORT_SYMBOL(em2820_boards); EXPORT_SYMBOL(em28xx_boards);
EXPORT_SYMBOL(em2820_bcount); EXPORT_SYMBOL(em28xx_bcount);
EXPORT_SYMBOL(em2820_id_table); EXPORT_SYMBOL(em28xx_id_table);
MODULE_DEVICE_TABLE (usb, em2820_id_table); MODULE_DEVICE_TABLE (usb, em28xx_id_table);
...@@ -50,7 +50,7 @@ MODULE_PARM_DESC(i2c_debug, "enable debug messages [i2c]"); ...@@ -50,7 +50,7 @@ MODULE_PARM_DESC(i2c_debug, "enable debug messages [i2c]");
* em2800_i2c_send_max4() * em2800_i2c_send_max4()
* send up to 4 bytes to the i2c device * send up to 4 bytes to the i2c device
*/ */
static int em2800_i2c_send_max4(struct em2820 *dev, unsigned char addr, static int em2800_i2c_send_max4(struct em28xx *dev, unsigned char addr,
char *buf, int len) char *buf, int len)
{ {
int ret; int ret;
...@@ -67,19 +67,19 @@ static int em2800_i2c_send_max4(struct em2820 *dev, unsigned char addr, ...@@ -67,19 +67,19 @@ static int em2800_i2c_send_max4(struct em2820 *dev, unsigned char addr,
if (len > 3) if (len > 3)
b2[0] = buf[3]; b2[0] = buf[3];
ret = dev->em2820_write_regs(dev, 4 - len, &b2[4 - len], 2 + len); ret = dev->em28xx_write_regs(dev, 4 - len, &b2[4 - len], 2 + len);
if (ret != 2 + len) { if (ret != 2 + len) {
em2820_warn("writting to i2c device failed (error=%i)\n", ret); em28xx_warn("writting to i2c device failed (error=%i)\n", ret);
return -EIO; return -EIO;
} }
for (write_timeout = EM2800_I2C_WRITE_TIMEOUT; write_timeout > 0; for (write_timeout = EM2800_I2C_WRITE_TIMEOUT; write_timeout > 0;
write_timeout -= 5) { write_timeout -= 5) {
ret = dev->em2820_read_reg(dev, 0x05); ret = dev->em28xx_read_reg(dev, 0x05);
if (ret == 0x80 + len - 1) if (ret == 0x80 + len - 1)
return len; return len;
mdelay(5); mdelay(5);
} }
em2820_warn("i2c write timed out\n"); em28xx_warn("i2c write timed out\n");
return -EIO; return -EIO;
} }
...@@ -94,7 +94,7 @@ static int em2800_i2c_send_bytes(void *data, unsigned char addr, char *buf, ...@@ -94,7 +94,7 @@ static int em2800_i2c_send_bytes(void *data, unsigned char addr, char *buf,
int wrcount = 0; int wrcount = 0;
int count; int count;
int maxLen = 4; int maxLen = 4;
struct em2820 *dev = (struct em2820 *)data; struct em28xx *dev = (struct em28xx *)data;
while (len > 0) { while (len > 0) {
count = (len > maxLen) ? maxLen : len; count = (len > maxLen) ? maxLen : len;
ret = em2800_i2c_send_max4(dev, addr, bufPtr, count); ret = em2800_i2c_send_max4(dev, addr, bufPtr, count);
...@@ -112,27 +112,27 @@ static int em2800_i2c_send_bytes(void *data, unsigned char addr, char *buf, ...@@ -112,27 +112,27 @@ static int em2800_i2c_send_bytes(void *data, unsigned char addr, char *buf,
* em2800_i2c_check_for_device() * em2800_i2c_check_for_device()
* check if there is a i2c_device at the supplied address * check if there is a i2c_device at the supplied address
*/ */
static int em2800_i2c_check_for_device(struct em2820 *dev, unsigned char addr) static int em2800_i2c_check_for_device(struct em28xx *dev, unsigned char addr)
{ {
char msg; char msg;
int ret; int ret;
int write_timeout; int write_timeout;
msg = addr; msg = addr;
ret = dev->em2820_write_regs(dev, 0x04, &msg, 1); ret = dev->em28xx_write_regs(dev, 0x04, &msg, 1);
if (ret < 0) { if (ret < 0) {
em2820_warn("setting i2c device address failed (error=%i)\n", em28xx_warn("setting i2c device address failed (error=%i)\n",
ret); ret);
return ret; return ret;
} }
msg = 0x84; msg = 0x84;
ret = dev->em2820_write_regs(dev, 0x05, &msg, 1); ret = dev->em28xx_write_regs(dev, 0x05, &msg, 1);
if (ret < 0) { if (ret < 0) {
em2820_warn("preparing i2c read failed (error=%i)\n", ret); em28xx_warn("preparing i2c read failed (error=%i)\n", ret);
return ret; return ret;
} }
for (write_timeout = EM2800_I2C_WRITE_TIMEOUT; write_timeout > 0; for (write_timeout = EM2800_I2C_WRITE_TIMEOUT; write_timeout > 0;
write_timeout -= 5) { write_timeout -= 5) {
unsigned msg = dev->em2820_read_reg(dev, 0x5); unsigned msg = dev->em28xx_read_reg(dev, 0x5);
if (msg == 0x94) if (msg == 0x94)
return -ENODEV; return -ENODEV;
else if (msg == 0x84) else if (msg == 0x84)
...@@ -146,21 +146,21 @@ static int em2800_i2c_check_for_device(struct em2820 *dev, unsigned char addr) ...@@ -146,21 +146,21 @@ static int em2800_i2c_check_for_device(struct em2820 *dev, unsigned char addr)
* em2800_i2c_recv_bytes() * em2800_i2c_recv_bytes()
* read from the i2c device * read from the i2c device
*/ */
static int em2800_i2c_recv_bytes(struct em2820 *dev, unsigned char addr, static int em2800_i2c_recv_bytes(struct em28xx *dev, unsigned char addr,
char *buf, int len) char *buf, int len)
{ {
int ret; int ret;
/* check for the device and set i2c read address */ /* check for the device and set i2c read address */
ret = em2800_i2c_check_for_device(dev, addr); ret = em2800_i2c_check_for_device(dev, addr);
if (ret) { if (ret) {
em2820_warn em28xx_warn
("preparing read at i2c address 0x%x failed (error=%i)\n", ("preparing read at i2c address 0x%x failed (error=%i)\n",
addr, ret); addr, ret);
return ret; return ret;
} }
ret = dev->em2820_read_reg_req_len(dev, 0x0, 0x3, buf, len); ret = dev->em28xx_read_reg_req_len(dev, 0x0, 0x3, buf, len);
if (ret < 0) { if (ret < 0) {
em2820_warn("reading from i2c device at 0x%x failed (error=%i)", em28xx_warn("reading from i2c device at 0x%x failed (error=%i)",
addr, ret); addr, ret);
return ret; return ret;
} }
...@@ -168,66 +168,66 @@ static int em2800_i2c_recv_bytes(struct em2820 *dev, unsigned char addr, ...@@ -168,66 +168,66 @@ static int em2800_i2c_recv_bytes(struct em2820 *dev, unsigned char addr,
} }
/* /*
* em2820_i2c_send_bytes() * em28xx_i2c_send_bytes()
* untested for more than 4 bytes * untested for more than 4 bytes
*/ */
static int em2820_i2c_send_bytes(void *data, unsigned char addr, char *buf, static int em28xx_i2c_send_bytes(void *data, unsigned char addr, char *buf,
short len, int stop) short len, int stop)
{ {
int wrcount = 0; int wrcount = 0;
struct em2820 *dev = (struct em2820 *)data; struct em28xx *dev = (struct em28xx *)data;
wrcount = dev->em2820_write_regs_req(dev, stop ? 2 : 3, addr, buf, len); wrcount = dev->em28xx_write_regs_req(dev, stop ? 2 : 3, addr, buf, len);
return wrcount; return wrcount;
} }
/* /*
* em2820_i2c_recv_bytes() * em28xx_i2c_recv_bytes()
* read a byte from the i2c device * read a byte from the i2c device
*/ */
static int em2820_i2c_recv_bytes(struct em2820 *dev, unsigned char addr, static int em28xx_i2c_recv_bytes(struct em28xx *dev, unsigned char addr,
char *buf, int len) char *buf, int len)
{ {
int ret; int ret;
ret = dev->em2820_read_reg_req_len(dev, 2, addr, buf, len); ret = dev->em28xx_read_reg_req_len(dev, 2, addr, buf, len);
if (ret < 0) { if (ret < 0) {
em2820_warn("reading i2c device failed (error=%i)\n", ret); em28xx_warn("reading i2c device failed (error=%i)\n", ret);
return ret; return ret;
} }
if (dev->em2820_read_reg(dev, 0x5) != 0) if (dev->em28xx_read_reg(dev, 0x5) != 0)
return -ENODEV; return -ENODEV;
return ret; return ret;
} }
/* /*
* em2820_i2c_check_for_device() * em28xx_i2c_check_for_device()
* check if there is a i2c_device at the supplied address * check if there is a i2c_device at the supplied address
*/ */
static int em2820_i2c_check_for_device(struct em2820 *dev, unsigned char addr) static int em28xx_i2c_check_for_device(struct em28xx *dev, unsigned char addr)
{ {
char msg; char msg;
int ret; int ret;
msg = addr; msg = addr;
ret = dev->em2820_read_reg_req(dev, 2, addr); ret = dev->em28xx_read_reg_req(dev, 2, addr);
if (ret < 0) { if (ret < 0) {
em2820_warn("reading from i2c device failed (error=%i)\n", ret); em28xx_warn("reading from i2c device failed (error=%i)\n", ret);
return ret; return ret;
} }
if (dev->em2820_read_reg(dev, 0x5) != 0) if (dev->em28xx_read_reg(dev, 0x5) != 0)
return -ENODEV; return -ENODEV;
return 0; return 0;
} }
/* /*
* em2820_i2c_xfer() * em28xx_i2c_xfer()
* the main i2c transfer function * the main i2c transfer function
*/ */
static int em2820_i2c_xfer(struct i2c_adapter *i2c_adap, static int em28xx_i2c_xfer(struct i2c_adapter *i2c_adap,
struct i2c_msg msgs[], int num) struct i2c_msg msgs[], int num)
{ {
struct em2820 *dev = i2c_adap->algo_data; struct em28xx *dev = i2c_adap->algo_data;
int addr, rc, i, byte; int addr, rc, i, byte;
if (num <= 0) if (num <= 0)
...@@ -241,7 +241,7 @@ static int em2820_i2c_xfer(struct i2c_adapter *i2c_adap, ...@@ -241,7 +241,7 @@ static int em2820_i2c_xfer(struct i2c_adapter *i2c_adap,
if (dev->is_em2800) if (dev->is_em2800)
rc = em2800_i2c_check_for_device(dev, addr); rc = em2800_i2c_check_for_device(dev, addr);
else else
rc = em2820_i2c_check_for_device(dev, addr); rc = em28xx_i2c_check_for_device(dev, addr);
if (rc < 0) { if (rc < 0) {
dprintk2(2," no device\n"); dprintk2(2," no device\n");
return rc; return rc;
...@@ -254,7 +254,7 @@ static int em2820_i2c_xfer(struct i2c_adapter *i2c_adap, ...@@ -254,7 +254,7 @@ static int em2820_i2c_xfer(struct i2c_adapter *i2c_adap,
msgs[i].buf, msgs[i].buf,
msgs[i].len); msgs[i].len);
else else
rc = em2820_i2c_recv_bytes(dev, addr, rc = em28xx_i2c_recv_bytes(dev, addr,
msgs[i].buf, msgs[i].buf,
msgs[i].len); msgs[i].len);
if (i2c_debug>=2) { if (i2c_debug>=2) {
...@@ -273,7 +273,7 @@ static int em2820_i2c_xfer(struct i2c_adapter *i2c_adap, ...@@ -273,7 +273,7 @@ static int em2820_i2c_xfer(struct i2c_adapter *i2c_adap,
msgs[i].buf, msgs[i].buf,
msgs[i].len); msgs[i].len);
else else
rc = em2820_i2c_send_bytes(dev, addr, rc = em28xx_i2c_send_bytes(dev, addr,
msgs[i].buf, msgs[i].buf,
msgs[i].len, msgs[i].len,
i == num - 1); i == num - 1);
...@@ -290,10 +290,10 @@ static int em2820_i2c_xfer(struct i2c_adapter *i2c_adap, ...@@ -290,10 +290,10 @@ static int em2820_i2c_xfer(struct i2c_adapter *i2c_adap,
return rc; return rc;
} }
static int em2820_i2c_eeprom(struct em2820 *dev, unsigned char *eedata, int len) static int em28xx_i2c_eeprom(struct em28xx *dev, unsigned char *eedata, int len)
{ {
unsigned char buf, *p = eedata; unsigned char buf, *p = eedata;
struct em2820_eeprom *em_eeprom = (void *)eedata; struct em28xx_eeprom *em_eeprom = (void *)eedata;
int i, err, size = len, block; int i, err, size = len, block;
dev->i2c_client.addr = 0xa0 >> 1; dev->i2c_client.addr = 0xa0 >> 1;
...@@ -410,9 +410,9 @@ static void dec_use(struct i2c_adapter *adap) ...@@ -410,9 +410,9 @@ static void dec_use(struct i2c_adapter *adap)
} }
#endif #endif
static int em2820_set_tuner(int check_eeprom, struct i2c_client *client) static int em28xx_set_tuner(int check_eeprom, struct i2c_client *client)
{ {
struct em2820 *dev = client->adapter->algo_data; struct em28xx *dev = client->adapter->algo_data;
struct tuner_setup tun_setup; struct tuner_setup tun_setup;
if (dev->has_tuner) { if (dev->has_tuner) {
...@@ -420,7 +420,7 @@ static int em2820_set_tuner(int check_eeprom, struct i2c_client *client) ...@@ -420,7 +420,7 @@ static int em2820_set_tuner(int check_eeprom, struct i2c_client *client)
tun_setup.type = dev->tuner_type; tun_setup.type = dev->tuner_type;
tun_setup.addr = dev->tuner_addr; tun_setup.addr = dev->tuner_addr;
em2820_i2c_call_clients(dev, TUNER_SET_TYPE_ADDR, &tun_setup); em28xx_i2c_call_clients(dev, TUNER_SET_TYPE_ADDR, &tun_setup);
} }
return (0); return (0);
...@@ -433,11 +433,11 @@ static int em2820_set_tuner(int check_eeprom, struct i2c_client *client) ...@@ -433,11 +433,11 @@ static int em2820_set_tuner(int check_eeprom, struct i2c_client *client)
*/ */
static int attach_inform(struct i2c_client *client) static int attach_inform(struct i2c_client *client)
{ {
struct em2820 *dev = client->adapter->algo_data; struct em28xx *dev = client->adapter->algo_data;
switch (client->addr << 1) { switch (client->addr << 1) {
case 0x86: case 0x86:
em2820_i2c_call_clients(dev, TDA9887_SET_CONFIG, &dev->tda9887_conf); em28xx_i2c_call_clients(dev, TDA9887_SET_CONFIG, &dev->tda9887_conf);
break; break;
case 0x42: case 0x42:
dprintk1(1,"attach_inform: saa7114 detected.\n"); dprintk1(1,"attach_inform: saa7114 detected.\n");
...@@ -453,7 +453,7 @@ static int attach_inform(struct i2c_client *client) ...@@ -453,7 +453,7 @@ static int attach_inform(struct i2c_client *client)
{ {
struct IR_i2c *ir = i2c_get_clientdata(client); struct IR_i2c *ir = i2c_get_clientdata(client);
dprintk1(1,"attach_inform: IR detected (%s).\n",ir->phys); dprintk1(1,"attach_inform: IR detected (%s).\n",ir->phys);
em2820_set_ir(dev,ir); em28xx_set_ir(dev,ir);
break; break;
} }
case 0x80: case 0x80:
...@@ -467,19 +467,19 @@ static int attach_inform(struct i2c_client *client) ...@@ -467,19 +467,19 @@ static int attach_inform(struct i2c_client *client)
default: default:
dprintk1(1,"attach inform: detected I2C address %x\n", client->addr << 1); dprintk1(1,"attach inform: detected I2C address %x\n", client->addr << 1);
dev->tuner_addr = client->addr; dev->tuner_addr = client->addr;
em2820_set_tuner(-1, client); em28xx_set_tuner(-1, client);
} }
return 0; return 0;
} }
static struct i2c_algorithm em2820_algo = { static struct i2c_algorithm em28xx_algo = {
.master_xfer = em2820_i2c_xfer, .master_xfer = em28xx_i2c_xfer,
.algo_control = algo_control, .algo_control = algo_control,
.functionality = functionality, .functionality = functionality,
}; };
static struct i2c_adapter em2820_adap_template = { static struct i2c_adapter em28xx_adap_template = {
#ifdef I2C_PEC #ifdef I2C_PEC
.owner = THIS_MODULE, .owner = THIS_MODULE,
#else #else
...@@ -489,14 +489,14 @@ static struct i2c_adapter em2820_adap_template = { ...@@ -489,14 +489,14 @@ static struct i2c_adapter em2820_adap_template = {
#ifdef I2C_CLASS_TV_ANALOG #ifdef I2C_CLASS_TV_ANALOG
.class = I2C_CLASS_TV_ANALOG, .class = I2C_CLASS_TV_ANALOG,
#endif #endif
.name = "em2820", .name = "em28xx",
.id = I2C_HW_B_EM2820, .id = I2C_HW_B_EM28XX,
.algo = &em2820_algo, .algo = &em28xx_algo,
.client_register = attach_inform, .client_register = attach_inform,
}; };
static struct i2c_client em2820_client_template = { static struct i2c_client em28xx_client_template = {
.name = "em2820 internal", .name = "em28xx internal",
.flags = I2C_CLIENT_ALLOW_USE, .flags = I2C_CLIENT_ALLOW_USE,
}; };
...@@ -542,33 +542,33 @@ static void do_i2c_scan(char *name, struct i2c_client *c) ...@@ -542,33 +542,33 @@ static void do_i2c_scan(char *name, struct i2c_client *c)
} }
/* /*
* em2820_i2c_call_clients() * em28xx_i2c_call_clients()
* send commands to all attached i2c devices * send commands to all attached i2c devices
*/ */
void em2820_i2c_call_clients(struct em2820 *dev, unsigned int cmd, void *arg) void em28xx_i2c_call_clients(struct em28xx *dev, unsigned int cmd, void *arg)
{ {
BUG_ON(NULL == dev->i2c_adap.algo_data); BUG_ON(NULL == dev->i2c_adap.algo_data);
i2c_clients_command(&dev->i2c_adap, cmd, arg); i2c_clients_command(&dev->i2c_adap, cmd, arg);
} }
/* /*
* em2820_i2c_register() * em28xx_i2c_register()
* register i2c bus * register i2c bus
*/ */
int em2820_i2c_register(struct em2820 *dev) int em28xx_i2c_register(struct em28xx *dev)
{ {
BUG_ON(!dev->em2820_write_regs || !dev->em2820_read_reg); BUG_ON(!dev->em28xx_write_regs || !dev->em28xx_read_reg);
BUG_ON(!dev->em2820_write_regs_req || !dev->em2820_read_reg_req); BUG_ON(!dev->em28xx_write_regs_req || !dev->em28xx_read_reg_req);
dev->i2c_adap = em2820_adap_template; dev->i2c_adap = em28xx_adap_template;
dev->i2c_adap.dev.parent = &dev->udev->dev; dev->i2c_adap.dev.parent = &dev->udev->dev;
strcpy(dev->i2c_adap.name, dev->name); strcpy(dev->i2c_adap.name, dev->name);
dev->i2c_adap.algo_data = dev; dev->i2c_adap.algo_data = dev;
i2c_add_adapter(&dev->i2c_adap); i2c_add_adapter(&dev->i2c_adap);
dev->i2c_client = em2820_client_template; dev->i2c_client = em28xx_client_template;
dev->i2c_client.adapter = &dev->i2c_adap; dev->i2c_client.adapter = &dev->i2c_adap;
em2820_i2c_eeprom(dev, dev->eedata, sizeof(dev->eedata)); em28xx_i2c_eeprom(dev, dev->eedata, sizeof(dev->eedata));
if (i2c_scan) if (i2c_scan)
do_i2c_scan(dev->name, &dev->i2c_client); do_i2c_scan(dev->name, &dev->i2c_client);
...@@ -576,10 +576,10 @@ int em2820_i2c_register(struct em2820 *dev) ...@@ -576,10 +576,10 @@ int em2820_i2c_register(struct em2820 *dev)
} }
/* /*
* em2820_i2c_unregister() * em28xx_i2c_unregister()
* unregister i2c_bus * unregister i2c_bus
*/ */
int em2820_i2c_unregister(struct em2820 *dev) int em28xx_i2c_unregister(struct em28xx *dev)
{ {
i2c_del_adapter(&dev->i2c_adap); i2c_del_adapter(&dev->i2c_adap);
return 0; return 0;
......
...@@ -142,7 +142,7 @@ static int get_key_em_haup(struct IR_i2c *ir, u32 *ir_key, u32 *ir_raw) ...@@ -142,7 +142,7 @@ static int get_key_em_haup(struct IR_i2c *ir, u32 *ir_key, u32 *ir_raw)
} }
/* ----------------------------------------------------------------------- */ /* ----------------------------------------------------------------------- */
void em2820_set_ir(struct em2820 * dev,struct IR_i2c *ir) void em28xx_set_ir(struct em28xx * dev,struct IR_i2c *ir)
{ {
if (disable_ir) { if (disable_ir) {
ir->get_key=NULL; ir->get_key=NULL;
...@@ -159,7 +159,7 @@ void em2820_set_ir(struct em2820 * dev,struct IR_i2c *ir) ...@@ -159,7 +159,7 @@ void em2820_set_ir(struct em2820 * dev,struct IR_i2c *ir)
case (EM2820_BOARD_TERRATEC_CINERGY_250): case (EM2820_BOARD_TERRATEC_CINERGY_250):
ir->ir_codes = ir_codes_em_terratec; ir->ir_codes = ir_codes_em_terratec;
ir->get_key = get_key_terratec; ir->get_key = get_key_terratec;
snprintf(ir->c.name, sizeof(ir->c.name), "i2c IR (EM2820 Terratec)"); snprintf(ir->c.name, sizeof(ir->c.name), "i2c IR (EM28XX Terratec)");
break; break;
case (EM2820_BOARD_PINNACLE_USB_2): case (EM2820_BOARD_PINNACLE_USB_2):
break; break;
......
/* /*
em2820-cards.c - driver for Empia EM2800/EM2820/2840 USB video capture devices em28xx-cards.c - driver for Empia EM2800/EM2820/2840 USB video capture devices
Copyright (C) 2005 Markus Rechberger <mrechberger@gmail.com> Copyright (C) 2005 Markus Rechberger <mrechberger@gmail.com>
Ludovico Cavedon <cavedon@sssup.it> Ludovico Cavedon <cavedon@sssup.it>
...@@ -22,8 +22,8 @@ ...@@ -22,8 +22,8 @@
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/ */
#ifndef _EM2820_H #ifndef _EM28XX_H
#define _EM2820_H #define _EM28XX_H
#include <linux/videodev.h> #include <linux/videodev.h>
#include <linux/i2c.h> #include <linux/i2c.h>
...@@ -45,27 +45,27 @@ ...@@ -45,27 +45,27 @@
#define UNSET -1 #define UNSET -1
/* maximum number of em28xx boards */ /* maximum number of em28xx boards */
#define EM2820_MAXBOARDS 1 /*FIXME: should be bigger */ #define EM28XX_MAXBOARDS 1 /*FIXME: should be bigger */
/* maximum number of frames that can be queued */ /* maximum number of frames that can be queued */
#define EM2820_NUM_FRAMES 5 #define EM28XX_NUM_FRAMES 5
/* number of frames that get used for v4l2_read() */ /* number of frames that get used for v4l2_read() */
#define EM2820_NUM_READ_FRAMES 2 #define EM28XX_NUM_READ_FRAMES 2
/* number of buffers for isoc transfers */ /* number of buffers for isoc transfers */
#define EM2820_NUM_BUFS 5 #define EM28XX_NUM_BUFS 5
/* number of packets for each buffer /* number of packets for each buffer
windows requests only 40 packets .. so we better do the same windows requests only 40 packets .. so we better do the same
this is what I found out for all alternate numbers there! this is what I found out for all alternate numbers there!
*/ */
#define EM2820_NUM_PACKETS 40 #define EM28XX_NUM_PACKETS 40
/* default alternate; 0 means choose the best */ /* default alternate; 0 means choose the best */
#define EM2820_PINOUT 0 #define EM28XX_PINOUT 0
#define EM2820_MAX_ALT 7 #define EM28XX_MAX_ALT 7
#define EM2820_INTERLACED_DEFAULT 1 #define EM28XX_INTERLACED_DEFAULT 1
/* /*
#define (use usbview if you want to get the other alternate number infos) #define (use usbview if you want to get the other alternate number infos)
...@@ -89,13 +89,13 @@ ...@@ -89,13 +89,13 @@
*/ */
/* time to wait when stopping the isoc transfer */ /* time to wait when stopping the isoc transfer */
#define EM2820_URB_TIMEOUT msecs_to_jiffies(EM2820_NUM_BUFS * EM2820_NUM_PACKETS) #define EM28XX_URB_TIMEOUT msecs_to_jiffies(EM28XX_NUM_BUFS * EM28XX_NUM_PACKETS)
/* time in msecs to wait for i2c writes to finish */ /* time in msecs to wait for i2c writes to finish */
#define EM2800_I2C_WRITE_TIMEOUT 20 #define EM2800_I2C_WRITE_TIMEOUT 20
/* the various frame states */ /* the various frame states */
enum em2820_frame_state { enum em28xx_frame_state {
F_UNUSED = 0, F_UNUSED = 0,
F_QUEUED, F_QUEUED,
F_GRABBING, F_GRABBING,
...@@ -104,17 +104,17 @@ enum em2820_frame_state { ...@@ -104,17 +104,17 @@ enum em2820_frame_state {
}; };
/* stream states */ /* stream states */
enum em2820_stream_state { enum em28xx_stream_state {
STREAM_OFF, STREAM_OFF,
STREAM_INTERRUPT, STREAM_INTERRUPT,
STREAM_ON, STREAM_ON,
}; };
/* frames */ /* frames */
struct em2820_frame_t { struct em28xx_frame_t {
void *bufmem; void *bufmem;
struct v4l2_buffer buf; struct v4l2_buffer buf;
enum em2820_frame_state state; enum em28xx_frame_state state;
struct list_head frame; struct list_head frame;
unsigned long vma_use_count; unsigned long vma_use_count;
int top_field; int top_field;
...@@ -122,7 +122,7 @@ struct em2820_frame_t { ...@@ -122,7 +122,7 @@ struct em2820_frame_t {
}; };
/* io methods */ /* io methods */
enum em2820_io_method { enum em28xx_io_method {
IO_NONE, IO_NONE,
IO_READ, IO_READ,
IO_MMAP, IO_MMAP,
...@@ -130,35 +130,35 @@ enum em2820_io_method { ...@@ -130,35 +130,35 @@ enum em2820_io_method {
/* inputs */ /* inputs */
#define MAX_EM2820_INPUT 4 #define MAX_EM28XX_INPUT 4
enum enum2820_itype { enum enum28xx_itype {
EM2820_VMUX_COMPOSITE1 = 1, EM28XX_VMUX_COMPOSITE1 = 1,
EM2820_VMUX_COMPOSITE2, EM28XX_VMUX_COMPOSITE2,
EM2820_VMUX_COMPOSITE3, EM28XX_VMUX_COMPOSITE3,
EM2820_VMUX_COMPOSITE4, EM28XX_VMUX_COMPOSITE4,
EM2820_VMUX_SVIDEO, EM28XX_VMUX_SVIDEO,
EM2820_VMUX_TELEVISION, EM28XX_VMUX_TELEVISION,
EM2820_VMUX_CABLE, EM28XX_VMUX_CABLE,
EM2820_VMUX_DVB, EM28XX_VMUX_DVB,
EM2820_VMUX_DEBUG, EM28XX_VMUX_DEBUG,
EM2820_RADIO, EM28XX_RADIO,
}; };
struct em2820_input { struct em28xx_input {
enum enum2820_itype type; enum enum28xx_itype type;
unsigned int vmux; unsigned int vmux;
unsigned int amux; unsigned int amux;
}; };
#define INPUT(nr) (&em2820_boards[dev->model].input[nr]) #define INPUT(nr) (&em28xx_boards[dev->model].input[nr])
enum em2820_decoder { enum em28xx_decoder {
EM2820_TVP5150, EM28XX_TVP5150,
EM2820_SAA7113, EM28XX_SAA7113,
EM2820_SAA7114 EM28XX_SAA7114
}; };
struct em2820_board { struct em28xx_board {
char *name; char *name;
int vchannels; int vchannels;
int norm; int norm;
...@@ -171,12 +171,12 @@ struct em2820_board { ...@@ -171,12 +171,12 @@ struct em2820_board {
unsigned int has_tuner:1; unsigned int has_tuner:1;
unsigned int has_msp34xx:1; unsigned int has_msp34xx:1;
enum em2820_decoder decoder; enum em28xx_decoder decoder;
struct em2820_input input[MAX_EM2820_INPUT]; struct em28xx_input input[MAX_EM28XX_INPUT];
}; };
struct em2820_eeprom { struct em28xx_eeprom {
u32 id; /* 0x9567eb1a */ u32 id; /* 0x9567eb1a */
u16 vendor_ID; u16 vendor_ID;
u16 product_ID; u16 product_ID;
...@@ -191,14 +191,14 @@ struct em2820_eeprom { ...@@ -191,14 +191,14 @@ struct em2820_eeprom {
}; };
/* device states */ /* device states */
enum em2820_dev_state { enum em28xx_dev_state {
DEV_INITIALIZED = 0x01, DEV_INITIALIZED = 0x01,
DEV_DISCONNECTED = 0x02, DEV_DISCONNECTED = 0x02,
DEV_MISCONFIGURED = 0x04, DEV_MISCONFIGURED = 0x04,
}; };
/* tvnorms */ /* tvnorms */
struct em2820_tvnorm { struct em28xx_tvnorm {
char *name; char *name;
v4l2_std_id id; v4l2_std_id id;
/* mode for saa7113h */ /* mode for saa7113h */
...@@ -206,7 +206,7 @@ struct em2820_tvnorm { ...@@ -206,7 +206,7 @@ struct em2820_tvnorm {
}; };
/* main device struct */ /* main device struct */
struct em2820 { struct em28xx {
/* generic device properties */ /* generic device properties */
char name[30]; /* name (including minor) of the device */ char name[30]; /* name (including minor) of the device */
int model; /* index in the device_data struct */ int model; /* index in the device_data struct */
...@@ -217,7 +217,7 @@ struct em2820 { ...@@ -217,7 +217,7 @@ struct em2820 {
unsigned int has_msp34xx:1; unsigned int has_msp34xx:1;
unsigned int has_tda9887:1; unsigned int has_tda9887:1;
enum em2820_decoder decoder; enum em28xx_decoder decoder;
int tuner_type; /* type of the tuner */ int tuner_type; /* type of the tuner */
int tuner_addr; /* tuner address */ int tuner_addr; /* tuner address */
...@@ -229,17 +229,17 @@ struct em2820 { ...@@ -229,17 +229,17 @@ struct em2820 {
int users; /* user count for exclusive use */ int users; /* user count for exclusive use */
struct video_device *vdev; /* video for linux device struct */ struct video_device *vdev; /* video for linux device struct */
struct video_picture vpic; /* picture settings only used to init saa7113h */ struct video_picture vpic; /* picture settings only used to init saa7113h */
struct em2820_tvnorm *tvnorm; /* selected tv norm */ struct em28xx_tvnorm *tvnorm; /* selected tv norm */
int ctl_freq; /* selected frequency */ int ctl_freq; /* selected frequency */
unsigned int ctl_input; /* selected input */ unsigned int ctl_input; /* selected input */
unsigned int ctl_ainput; /* slected audio input */ unsigned int ctl_ainput; /* slected audio input */
int mute; int mute;
int volume; int volume;
/* frame properties */ /* frame properties */
struct em2820_frame_t frame[EM2820_NUM_FRAMES]; /* list of frames */ struct em28xx_frame_t frame[EM28XX_NUM_FRAMES]; /* list of frames */
int num_frames; /* number of frames currently in use */ int num_frames; /* number of frames currently in use */
unsigned int frame_count; /* total number of transfered frames */ unsigned int frame_count; /* total number of transfered frames */
struct em2820_frame_t *frame_current; /* the frame that is being filled */ struct em28xx_frame_t *frame_current; /* the frame that is being filled */
int width; /* current frame width */ int width; /* current frame width */
int height; /* current frame height */ int height; /* current frame height */
int frame_size; /* current frame size */ int frame_size; /* current frame size */
...@@ -251,9 +251,9 @@ struct em2820 { ...@@ -251,9 +251,9 @@ struct em2820 {
int type; int type;
/* states */ /* states */
enum em2820_dev_state state; enum em28xx_dev_state state;
enum em2820_stream_state stream; enum em28xx_stream_state stream;
enum em2820_io_method io; enum em28xx_io_method io;
/* locks */ /* locks */
struct semaphore lock, fileop_lock; struct semaphore lock, fileop_lock;
spinlock_t queue_lock; spinlock_t queue_lock;
...@@ -267,71 +267,71 @@ struct em2820 { ...@@ -267,71 +267,71 @@ struct em2820 {
struct usb_device *udev; /* the usb device */ struct usb_device *udev; /* the usb device */
int alt; /* alternate */ int alt; /* alternate */
int max_pkt_size; /* max packet size of isoc transaction */ int max_pkt_size; /* max packet size of isoc transaction */
unsigned int alt_max_pkt_size[EM2820_MAX_ALT + 1]; /* array of wMaxPacketSize */ unsigned int alt_max_pkt_size[EM28XX_MAX_ALT + 1]; /* array of wMaxPacketSize */
struct urb *urb[EM2820_NUM_BUFS]; /* urb for isoc transfers */ struct urb *urb[EM28XX_NUM_BUFS]; /* urb for isoc transfers */
char *transfer_buffer[EM2820_NUM_BUFS]; /* transfer buffers for isoc transfer */ char *transfer_buffer[EM28XX_NUM_BUFS]; /* transfer buffers for isoc transfer */
/* helper funcs that call usb_control_msg */ /* helper funcs that call usb_control_msg */
int (*em2820_write_regs) (struct em2820 * dev, u16 reg, char *buf, int (*em28xx_write_regs) (struct em28xx * dev, u16 reg, char *buf,
int len); int len);
int (*em2820_read_reg) (struct em2820 * dev, u16 reg); int (*em28xx_read_reg) (struct em28xx * dev, u16 reg);
int (*em2820_read_reg_req_len) (struct em2820 * dev, u8 req, u16 reg, int (*em28xx_read_reg_req_len) (struct em28xx * dev, u8 req, u16 reg,
char *buf, int len); char *buf, int len);
int (*em2820_write_regs_req) (struct em2820 * dev, u8 req, u16 reg, int (*em28xx_write_regs_req) (struct em28xx * dev, u8 req, u16 reg,
char *buf, int len); char *buf, int len);
int (*em2820_read_reg_req) (struct em2820 * dev, u8 req, u16 reg); int (*em28xx_read_reg_req) (struct em28xx * dev, u8 req, u16 reg);
}; };
/* Provided by em2820-i2c.c */ /* Provided by em28xx-i2c.c */
void em2820_i2c_call_clients(struct em2820 *dev, unsigned int cmd, void *arg); void em28xx_i2c_call_clients(struct em28xx *dev, unsigned int cmd, void *arg);
int em2820_i2c_register(struct em2820 *dev); int em28xx_i2c_register(struct em28xx *dev);
int em2820_i2c_unregister(struct em2820 *dev); int em28xx_i2c_unregister(struct em28xx *dev);
/* Provided by em2820-input.c */ /* Provided by em28xx-input.c */
void em2820_set_ir(struct em2820 * dev,struct IR_i2c *ir); void em28xx_set_ir(struct em28xx * dev,struct IR_i2c *ir);
/* Provided by em2820-core.c */ /* Provided by em28xx-core.c */
void em2820_print_ioctl(char *name, unsigned int cmd); void em28xx_print_ioctl(char *name, unsigned int cmd);
u32 em2820_request_buffers(struct em2820 *dev, u32 count); u32 em28xx_request_buffers(struct em28xx *dev, u32 count);
void em2820_queue_unusedframes(struct em2820 *dev); void em28xx_queue_unusedframes(struct em28xx *dev);
void em2820_release_buffers(struct em2820 *dev); void em28xx_release_buffers(struct em28xx *dev);
int em2820_read_reg_req_len(struct em2820 *dev, u8 req, u16 reg, int em28xx_read_reg_req_len(struct em28xx *dev, u8 req, u16 reg,
char *buf, int len); char *buf, int len);
int em2820_read_reg_req(struct em2820 *dev, u8 req, u16 reg); int em28xx_read_reg_req(struct em28xx *dev, u8 req, u16 reg);
int em2820_read_reg(struct em2820 *dev, u16 reg); int em28xx_read_reg(struct em28xx *dev, u16 reg);
int em2820_write_regs_req(struct em2820 *dev, u8 req, u16 reg, char *buf, int em28xx_write_regs_req(struct em28xx *dev, u8 req, u16 reg, char *buf,
int len); int len);
int em2820_write_regs(struct em2820 *dev, u16 reg, char *buf, int len); int em28xx_write_regs(struct em28xx *dev, u16 reg, char *buf, int len);
int em2820_write_reg_bits(struct em2820 *dev, u16 reg, u8 val, int em28xx_write_reg_bits(struct em28xx *dev, u16 reg, u8 val,
u8 bitmask); u8 bitmask);
int em2820_write_ac97(struct em2820 *dev, u8 reg, u8 * val); int em28xx_write_ac97(struct em28xx *dev, u8 reg, u8 * val);
int em2820_audio_analog_set(struct em2820 *dev); int em28xx_audio_analog_set(struct em28xx *dev);
int em2820_colorlevels_set_default(struct em2820 *dev); int em28xx_colorlevels_set_default(struct em28xx *dev);
int em2820_capture_start(struct em2820 *dev, int start); int em28xx_capture_start(struct em28xx *dev, int start);
int em2820_outfmt_set_yuv422(struct em2820 *dev); int em28xx_outfmt_set_yuv422(struct em28xx *dev);
int em2820_accumulator_set(struct em2820 *dev, u8 xmin, u8 xmax, u8 ymin, int em28xx_accumulator_set(struct em28xx *dev, u8 xmin, u8 xmax, u8 ymin,
u8 ymax); u8 ymax);
int em2820_capture_area_set(struct em2820 *dev, u8 hstart, u8 vstart, int em28xx_capture_area_set(struct em28xx *dev, u8 hstart, u8 vstart,
u16 width, u16 height); u16 width, u16 height);
int em2820_scaler_set(struct em2820 *dev, u16 h, u16 v); int em28xx_scaler_set(struct em28xx *dev, u16 h, u16 v);
int em2820_resolution_set(struct em2820 *dev); int em28xx_resolution_set(struct em28xx *dev);
void em2820_isocIrq(struct urb *urb, struct pt_regs *regs); void em28xx_isocIrq(struct urb *urb, struct pt_regs *regs);
int em2820_init_isoc(struct em2820 *dev); int em28xx_init_isoc(struct em28xx *dev);
void em2820_uninit_isoc(struct em2820 *dev); void em28xx_uninit_isoc(struct em28xx *dev);
int em2820_set_alternate(struct em2820 *dev); int em28xx_set_alternate(struct em28xx *dev);
/* Provided by em2820-cards.c */ /* Provided by em28xx-cards.c */
extern int em2800_variant_detect(struct usb_device* udev,int model); extern int em2800_variant_detect(struct usb_device* udev,int model);
extern void em2820_card_setup(struct em2820 *dev); extern void em28xx_card_setup(struct em28xx *dev);
extern struct em2820_board em2820_boards[]; extern struct em28xx_board em28xx_boards[];
extern struct usb_device_id em2820_id_table[]; extern struct usb_device_id em28xx_id_table[];
extern const unsigned int em2820_bcount; extern const unsigned int em28xx_bcount;
/* em2820 registers */ /* em28xx registers */
#define CHIPID_REG 0x0a #define CHIPID_REG 0x0a
#define USBSUSP_REG 0x0c /* */ #define USBSUSP_REG 0x0c /* */
...@@ -386,115 +386,115 @@ extern const unsigned int em2820_bcount; ...@@ -386,115 +386,115 @@ extern const unsigned int em2820_bcount;
#define VIDEO_AC97 0x14 #define VIDEO_AC97 0x14
/* register settings */ /* register settings */
#define EM2820_AUDIO_SRC_TUNER 0xc0 #define EM28XX_AUDIO_SRC_TUNER 0xc0
#define EM2820_AUDIO_SRC_LINE 0x80 #define EM28XX_AUDIO_SRC_LINE 0x80
/* printk macros */ /* printk macros */
#define em2820_err(fmt, arg...) do {\ #define em28xx_err(fmt, arg...) do {\
printk(KERN_ERR fmt , ##arg); } while (0) printk(KERN_ERR fmt , ##arg); } while (0)
#define em2820_errdev(fmt, arg...) do {\ #define em28xx_errdev(fmt, arg...) do {\
printk(KERN_ERR "%s: "fmt,\ printk(KERN_ERR "%s: "fmt,\
dev->name , ##arg); } while (0) dev->name , ##arg); } while (0)
#define em2820_info(fmt, arg...) do {\ #define em28xx_info(fmt, arg...) do {\
printk(KERN_INFO "%s: "fmt,\ printk(KERN_INFO "%s: "fmt,\
dev->name , ##arg); } while (0) dev->name , ##arg); } while (0)
#define em2820_warn(fmt, arg...) do {\ #define em28xx_warn(fmt, arg...) do {\
printk(KERN_WARNING "%s: "fmt,\ printk(KERN_WARNING "%s: "fmt,\
dev->name , ##arg); } while (0) dev->name , ##arg); } while (0)
inline static int em2820_audio_source(struct em2820 *dev, int input) inline static int em28xx_audio_source(struct em28xx *dev, int input)
{ {
return em2820_write_reg_bits(dev, AUDIOSRC_REG, input, 0xc0); return em28xx_write_reg_bits(dev, AUDIOSRC_REG, input, 0xc0);
} }
inline static int em2820_audio_usb_mute(struct em2820 *dev, int mute) inline static int em28xx_audio_usb_mute(struct em28xx *dev, int mute)
{ {
return em2820_write_reg_bits(dev, XCLK_REG, mute ? 0x00 : 0x80, 0x80); return em28xx_write_reg_bits(dev, XCLK_REG, mute ? 0x00 : 0x80, 0x80);
} }
inline static int em2820_audio_analog_setup(struct em2820 *dev) inline static int em28xx_audio_analog_setup(struct em28xx *dev)
{ {
/* unmute video mixer with default volume level */ /* unmute video mixer with default volume level */
return em2820_write_ac97(dev, VIDEO_AC97, "\x08\x08"); return em28xx_write_ac97(dev, VIDEO_AC97, "\x08\x08");
} }
inline static int em2820_compression_disable(struct em2820 *dev) inline static int em28xx_compression_disable(struct em28xx *dev)
{ {
/* side effect of disabling scaler and mixer */ /* side effect of disabling scaler and mixer */
return em2820_write_regs(dev, COMPR_REG, "\x00", 1); return em28xx_write_regs(dev, COMPR_REG, "\x00", 1);
} }
inline static int em2820_contrast_get(struct em2820 *dev) inline static int em28xx_contrast_get(struct em28xx *dev)
{ {
return em2820_read_reg(dev, YGAIN_REG) & 0x1f; return em28xx_read_reg(dev, YGAIN_REG) & 0x1f;
} }
inline static int em2820_brightness_get(struct em2820 *dev) inline static int em28xx_brightness_get(struct em28xx *dev)
{ {
return em2820_read_reg(dev, YOFFSET_REG); return em28xx_read_reg(dev, YOFFSET_REG);
} }
inline static int em2820_saturation_get(struct em2820 *dev) inline static int em28xx_saturation_get(struct em28xx *dev)
{ {
return em2820_read_reg(dev, UVGAIN_REG) & 0x1f; return em28xx_read_reg(dev, UVGAIN_REG) & 0x1f;
} }
inline static int em2820_u_balance_get(struct em2820 *dev) inline static int em28xx_u_balance_get(struct em28xx *dev)
{ {
return em2820_read_reg(dev, UOFFSET_REG); return em28xx_read_reg(dev, UOFFSET_REG);
} }
inline static int em2820_v_balance_get(struct em2820 *dev) inline static int em28xx_v_balance_get(struct em28xx *dev)
{ {
return em2820_read_reg(dev, VOFFSET_REG); return em28xx_read_reg(dev, VOFFSET_REG);
} }
inline static int em2820_gamma_get(struct em2820 *dev) inline static int em28xx_gamma_get(struct em28xx *dev)
{ {
return em2820_read_reg(dev, GAMMA_REG) & 0x3f; return em28xx_read_reg(dev, GAMMA_REG) & 0x3f;
} }
inline static int em2820_contrast_set(struct em2820 *dev, s32 val) inline static int em28xx_contrast_set(struct em28xx *dev, s32 val)
{ {
u8 tmp = (u8) val; u8 tmp = (u8) val;
return em2820_write_regs(dev, YGAIN_REG, &tmp, 1); return em28xx_write_regs(dev, YGAIN_REG, &tmp, 1);
} }
inline static int em2820_brightness_set(struct em2820 *dev, s32 val) inline static int em28xx_brightness_set(struct em28xx *dev, s32 val)
{ {
u8 tmp = (u8) val; u8 tmp = (u8) val;
return em2820_write_regs(dev, YOFFSET_REG, &tmp, 1); return em28xx_write_regs(dev, YOFFSET_REG, &tmp, 1);
} }
inline static int em2820_saturation_set(struct em2820 *dev, s32 val) inline static int em28xx_saturation_set(struct em28xx *dev, s32 val)
{ {
u8 tmp = (u8) val; u8 tmp = (u8) val;
return em2820_write_regs(dev, UVGAIN_REG, &tmp, 1); return em28xx_write_regs(dev, UVGAIN_REG, &tmp, 1);
} }
inline static int em2820_u_balance_set(struct em2820 *dev, s32 val) inline static int em28xx_u_balance_set(struct em28xx *dev, s32 val)
{ {
u8 tmp = (u8) val; u8 tmp = (u8) val;
return em2820_write_regs(dev, UOFFSET_REG, &tmp, 1); return em28xx_write_regs(dev, UOFFSET_REG, &tmp, 1);
} }
inline static int em2820_v_balance_set(struct em2820 *dev, s32 val) inline static int em28xx_v_balance_set(struct em28xx *dev, s32 val)
{ {
u8 tmp = (u8) val; u8 tmp = (u8) val;
return em2820_write_regs(dev, VOFFSET_REG, &tmp, 1); return em28xx_write_regs(dev, VOFFSET_REG, &tmp, 1);
} }
inline static int em2820_gamma_set(struct em2820 *dev, s32 val) inline static int em28xx_gamma_set(struct em28xx *dev, s32 val)
{ {
u8 tmp = (u8) val; u8 tmp = (u8) val;
return em2820_write_regs(dev, GAMMA_REG, &tmp, 1); return em28xx_write_regs(dev, GAMMA_REG, &tmp, 1);
} }
/*FIXME: maxw should be dependent of alt mode */ /*FIXME: maxw should be dependent of alt mode */
inline static unsigned int norm_maxw(struct em2820 *dev) inline static unsigned int norm_maxw(struct em28xx *dev)
{ {
switch(dev->model){ switch(dev->model){
case (EM2820_BOARD_MSI_VOX_USB_2): return(640); case (EM2820_BOARD_MSI_VOX_USB_2): return(640);
...@@ -502,7 +502,7 @@ inline static unsigned int norm_maxw(struct em2820 *dev) ...@@ -502,7 +502,7 @@ inline static unsigned int norm_maxw(struct em2820 *dev)
} }
} }
inline static unsigned int norm_maxh(struct em2820 *dev) inline static unsigned int norm_maxh(struct em28xx *dev)
{ {
switch(dev->model){ switch(dev->model){
case (EM2820_BOARD_MSI_VOX_USB_2): return(480); case (EM2820_BOARD_MSI_VOX_USB_2): return(480);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册