diff options
Diffstat (limited to 'drivers/media/video')
-rw-r--r-- | drivers/media/video/em28xx/em28xx-cards.c | 44 | ||||
-rw-r--r-- | drivers/media/video/em28xx/em28xx-core.c | 8 | ||||
-rw-r--r-- | drivers/media/video/em28xx/em28xx-dvb.c | 4 | ||||
-rw-r--r-- | drivers/media/video/em28xx/em28xx-i2c.c | 6 | ||||
-rw-r--r-- | drivers/media/video/em28xx/em28xx-input.c | 4 | ||||
-rw-r--r-- | drivers/media/video/em28xx/em28xx-video.c | 18 | ||||
-rw-r--r-- | drivers/media/video/em28xx/em28xx.h | 21 |
7 files changed, 43 insertions, 62 deletions
diff --git a/drivers/media/video/em28xx/em28xx-cards.c b/drivers/media/video/em28xx/em28xx-cards.c index 0d489cad2d56..11308ebd18a0 100644 --- a/drivers/media/video/em28xx/em28xx-cards.c +++ b/drivers/media/video/em28xx/em28xx-cards.c | |||
@@ -1262,19 +1262,9 @@ int em28xx_tuner_callback(void *ptr, int component, int command, int arg) | |||
1262 | } | 1262 | } |
1263 | EXPORT_SYMBOL_GPL(em28xx_tuner_callback); | 1263 | EXPORT_SYMBOL_GPL(em28xx_tuner_callback); |
1264 | 1264 | ||
1265 | static void em28xx_set_model(struct em28xx *dev) | 1265 | static void inline em28xx_set_model(struct em28xx *dev) |
1266 | { | 1266 | { |
1267 | dev->is_em2800 = em28xx_boards[dev->model].is_em2800; | 1267 | memcpy(&dev->board, &em28xx_boards[dev->model], sizeof(dev->board)); |
1268 | dev->has_msp34xx = em28xx_boards[dev->model].has_msp34xx; | ||
1269 | dev->tda9887_conf = em28xx_boards[dev->model].tda9887_conf; | ||
1270 | dev->decoder = em28xx_boards[dev->model].decoder; | ||
1271 | dev->xclk = em28xx_boards[dev->model].xclk; | ||
1272 | dev->i2c_speed = em28xx_boards[dev->model].i2c_speed; | ||
1273 | dev->max_range_640_480 = em28xx_boards[dev->model].max_range_640_480; | ||
1274 | dev->has_dvb = em28xx_boards[dev->model].has_dvb; | ||
1275 | dev->has_snapshot_button = em28xx_boards[dev->model].has_snapshot_button; | ||
1276 | dev->ir_codes = em28xx_boards[dev->model].ir_codes; | ||
1277 | dev->valid = em28xx_boards[dev->model].valid; | ||
1278 | } | 1268 | } |
1279 | 1269 | ||
1280 | /* Since em28xx_pre_card_setup() requires a proper dev->model, | 1270 | /* Since em28xx_pre_card_setup() requires a proper dev->model, |
@@ -1331,16 +1321,16 @@ void em28xx_pre_card_setup(struct em28xx *dev) | |||
1331 | /* Those are the default values for the majority of boards | 1321 | /* Those are the default values for the majority of boards |
1332 | Use those values if not specified otherwise at boards entry | 1322 | Use those values if not specified otherwise at boards entry |
1333 | */ | 1323 | */ |
1334 | if (!dev->xclk) | 1324 | if (!dev->board.xclk) |
1335 | dev->xclk = EM28XX_XCLK_IR_RC5_MODE | | 1325 | dev->board.xclk = EM28XX_XCLK_IR_RC5_MODE | |
1336 | EM28XX_XCLK_FREQUENCY_12MHZ; | 1326 | EM28XX_XCLK_FREQUENCY_12MHZ; |
1337 | 1327 | ||
1338 | if (!dev->i2c_speed) | 1328 | if (!dev->board.i2c_speed) |
1339 | dev->i2c_speed = EM28XX_I2C_CLK_WAIT_ENABLE | | 1329 | dev->board.i2c_speed = EM28XX_I2C_CLK_WAIT_ENABLE | |
1340 | EM28XX_I2C_FREQ_100_KHZ; | 1330 | EM28XX_I2C_FREQ_100_KHZ; |
1341 | 1331 | ||
1342 | em28xx_write_reg(dev, EM28XX_R0F_XCLK, dev->xclk & 0x7f); | 1332 | em28xx_write_reg(dev, EM28XX_R0F_XCLK, dev->board.xclk & 0x7f); |
1343 | em28xx_write_reg(dev, EM28XX_R06_I2C_CLK, dev->i2c_speed); | 1333 | em28xx_write_reg(dev, EM28XX_R06_I2C_CLK, dev->board.i2c_speed); |
1344 | msleep(50); | 1334 | msleep(50); |
1345 | 1335 | ||
1346 | /* request some modules */ | 1336 | /* request some modules */ |
@@ -1694,7 +1684,7 @@ void em28xx_card_setup(struct em28xx *dev) | |||
1694 | 1684 | ||
1695 | if (tv.audio_processor == V4L2_IDENT_MSPX4XX) { | 1685 | if (tv.audio_processor == V4L2_IDENT_MSPX4XX) { |
1696 | dev->i2s_speed = 2048000; | 1686 | dev->i2s_speed = 2048000; |
1697 | dev->has_msp34xx = 1; | 1687 | dev->board.has_msp34xx = 1; |
1698 | } | 1688 | } |
1699 | #ifdef CONFIG_MODULES | 1689 | #ifdef CONFIG_MODULES |
1700 | if (tv.has_ir) | 1690 | if (tv.has_ir) |
@@ -1727,10 +1717,10 @@ void em28xx_card_setup(struct em28xx *dev) | |||
1727 | break; | 1717 | break; |
1728 | } | 1718 | } |
1729 | 1719 | ||
1730 | if (dev->has_snapshot_button) | 1720 | if (dev->board.has_snapshot_button) |
1731 | em28xx_register_snapshot_button(dev); | 1721 | em28xx_register_snapshot_button(dev); |
1732 | 1722 | ||
1733 | if (dev->valid == EM28XX_BOARD_NOT_VALIDATED) { | 1723 | if (dev->board.valid == EM28XX_BOARD_NOT_VALIDATED) { |
1734 | em28xx_errdev("\n\n"); | 1724 | em28xx_errdev("\n\n"); |
1735 | em28xx_errdev("The support for this board weren't " | 1725 | em28xx_errdev("The support for this board weren't " |
1736 | "valid yet.\n"); | 1726 | "valid yet.\n"); |
@@ -1745,13 +1735,13 @@ void em28xx_card_setup(struct em28xx *dev) | |||
1745 | 1735 | ||
1746 | #ifdef CONFIG_MODULES | 1736 | #ifdef CONFIG_MODULES |
1747 | /* request some modules */ | 1737 | /* request some modules */ |
1748 | if (dev->has_msp34xx) | 1738 | if (dev->board.has_msp34xx) |
1749 | request_module("msp3400"); | 1739 | request_module("msp3400"); |
1750 | if (dev->decoder == EM28XX_SAA7113 || dev->decoder == EM28XX_SAA7114) | 1740 | if (dev->board.decoder == EM28XX_SAA7113 || dev->board.decoder == EM28XX_SAA7114) |
1751 | request_module("saa7115"); | 1741 | request_module("saa7115"); |
1752 | if (dev->decoder == EM28XX_TVP5150) | 1742 | if (dev->board.decoder == EM28XX_TVP5150) |
1753 | request_module("tvp5150"); | 1743 | request_module("tvp5150"); |
1754 | if (dev->tuner_type != TUNER_ABSENT) | 1744 | if (dev->board.tuner_type != TUNER_ABSENT) |
1755 | request_module("tuner"); | 1745 | request_module("tuner"); |
1756 | #endif | 1746 | #endif |
1757 | 1747 | ||
diff --git a/drivers/media/video/em28xx/em28xx-core.c b/drivers/media/video/em28xx/em28xx-core.c index 53c7252416f0..164f9b3d0a91 100644 --- a/drivers/media/video/em28xx/em28xx-core.c +++ b/drivers/media/video/em28xx/em28xx-core.c | |||
@@ -349,7 +349,7 @@ static int em28xx_set_audio_source(struct em28xx *dev) | |||
349 | int ret; | 349 | int ret; |
350 | u8 input; | 350 | u8 input; |
351 | 351 | ||
352 | if (dev->is_em2800) { | 352 | if (dev->board.is_em2800) { |
353 | if (dev->ctl_ainput == EM28XX_AMUX_VIDEO) | 353 | if (dev->ctl_ainput == EM28XX_AMUX_VIDEO) |
354 | input = EM2800_AUDIO_SRC_TUNER; | 354 | input = EM2800_AUDIO_SRC_TUNER; |
355 | else | 355 | else |
@@ -360,7 +360,7 @@ static int em28xx_set_audio_source(struct em28xx *dev) | |||
360 | return ret; | 360 | return ret; |
361 | } | 361 | } |
362 | 362 | ||
363 | if (dev->has_msp34xx) | 363 | if (dev->board.has_msp34xx) |
364 | input = EM28XX_AUDIO_SRC_TUNER; | 364 | input = EM28XX_AUDIO_SRC_TUNER; |
365 | else { | 365 | else { |
366 | switch (dev->ctl_ainput) { | 366 | switch (dev->ctl_ainput) { |
@@ -417,7 +417,7 @@ int em28xx_audio_analog_set(struct em28xx *dev) | |||
417 | } | 417 | } |
418 | } | 418 | } |
419 | 419 | ||
420 | xclk = dev->xclk & 0x7f; | 420 | xclk = dev->board.xclk & 0x7f; |
421 | if (!dev->mute) | 421 | if (!dev->mute) |
422 | xclk |= 0x80; | 422 | xclk |= 0x80; |
423 | 423 | ||
@@ -658,7 +658,7 @@ static int em28xx_scaler_set(struct em28xx *dev, u16 h, u16 v) | |||
658 | { | 658 | { |
659 | u8 mode; | 659 | u8 mode; |
660 | /* the em2800 scaler only supports scaling down to 50% */ | 660 | /* the em2800 scaler only supports scaling down to 50% */ |
661 | if (dev->is_em2800) | 661 | if (dev->board.is_em2800) |
662 | mode = (v ? 0x20 : 0x00) | (h ? 0x10 : 0x00); | 662 | mode = (v ? 0x20 : 0x00) | (h ? 0x10 : 0x00); |
663 | else { | 663 | else { |
664 | u8 buf[2]; | 664 | u8 buf[2]; |
diff --git a/drivers/media/video/em28xx/em28xx-dvb.c b/drivers/media/video/em28xx/em28xx-dvb.c index c99e2383b7ec..09c15cc088a6 100644 --- a/drivers/media/video/em28xx/em28xx-dvb.c +++ b/drivers/media/video/em28xx/em28xx-dvb.c | |||
@@ -393,7 +393,7 @@ static int dvb_init(struct em28xx *dev) | |||
393 | int result = 0; | 393 | int result = 0; |
394 | struct em28xx_dvb *dvb; | 394 | struct em28xx_dvb *dvb; |
395 | 395 | ||
396 | if (!dev->has_dvb) { | 396 | if (!dev->board.has_dvb) { |
397 | /* This device does not support the extension */ | 397 | /* This device does not support the extension */ |
398 | return 0; | 398 | return 0; |
399 | } | 399 | } |
@@ -479,7 +479,7 @@ out_free: | |||
479 | 479 | ||
480 | static int dvb_fini(struct em28xx *dev) | 480 | static int dvb_fini(struct em28xx *dev) |
481 | { | 481 | { |
482 | if (!dev->has_dvb) { | 482 | if (!dev->board.has_dvb) { |
483 | /* This device does not support the extension */ | 483 | /* This device does not support the extension */ |
484 | return 0; | 484 | return 0; |
485 | } | 485 | } |
diff --git a/drivers/media/video/em28xx/em28xx-i2c.c b/drivers/media/video/em28xx/em28xx-i2c.c index ec3e3b157ba8..78d60231ee3f 100644 --- a/drivers/media/video/em28xx/em28xx-i2c.c +++ b/drivers/media/video/em28xx/em28xx-i2c.c | |||
@@ -250,7 +250,7 @@ static int em28xx_i2c_xfer(struct i2c_adapter *i2c_adap, | |||
250 | (msgs[i].flags & I2C_M_RD) ? "read" : "write", | 250 | (msgs[i].flags & I2C_M_RD) ? "read" : "write", |
251 | i == num - 1 ? "stop" : "nonstop", addr, msgs[i].len); | 251 | i == num - 1 ? "stop" : "nonstop", addr, msgs[i].len); |
252 | if (!msgs[i].len) { /* no len: check only for device presence */ | 252 | if (!msgs[i].len) { /* no len: check only for device presence */ |
253 | if (dev->is_em2800) | 253 | if (dev->board.is_em2800) |
254 | rc = em2800_i2c_check_for_device(dev, addr); | 254 | rc = em2800_i2c_check_for_device(dev, addr); |
255 | else | 255 | else |
256 | rc = em28xx_i2c_check_for_device(dev, addr); | 256 | rc = em28xx_i2c_check_for_device(dev, addr); |
@@ -261,7 +261,7 @@ static int em28xx_i2c_xfer(struct i2c_adapter *i2c_adap, | |||
261 | 261 | ||
262 | } else if (msgs[i].flags & I2C_M_RD) { | 262 | } else if (msgs[i].flags & I2C_M_RD) { |
263 | /* read bytes */ | 263 | /* read bytes */ |
264 | if (dev->is_em2800) | 264 | if (dev->board.is_em2800) |
265 | rc = em2800_i2c_recv_bytes(dev, addr, | 265 | rc = em2800_i2c_recv_bytes(dev, addr, |
266 | msgs[i].buf, | 266 | msgs[i].buf, |
267 | msgs[i].len); | 267 | msgs[i].len); |
@@ -279,7 +279,7 @@ static int em28xx_i2c_xfer(struct i2c_adapter *i2c_adap, | |||
279 | for (byte = 0; byte < msgs[i].len; byte++) | 279 | for (byte = 0; byte < msgs[i].len; byte++) |
280 | printk(" %02x", msgs[i].buf[byte]); | 280 | printk(" %02x", msgs[i].buf[byte]); |
281 | } | 281 | } |
282 | if (dev->is_em2800) | 282 | if (dev->board.is_em2800) |
283 | rc = em2800_i2c_send_bytes(dev, addr, | 283 | rc = em2800_i2c_send_bytes(dev, addr, |
284 | msgs[i].buf, | 284 | msgs[i].buf, |
285 | msgs[i].len); | 285 | msgs[i].len); |
diff --git a/drivers/media/video/em28xx/em28xx-input.c b/drivers/media/video/em28xx/em28xx-input.c index 07edd4067acc..42bbaf64aceb 100644 --- a/drivers/media/video/em28xx/em28xx-input.c +++ b/drivers/media/video/em28xx/em28xx-input.c | |||
@@ -327,7 +327,7 @@ int em28xx_ir_init(struct em28xx *dev) | |||
327 | u8 ir_config; | 327 | u8 ir_config; |
328 | int err = -ENOMEM; | 328 | int err = -ENOMEM; |
329 | 329 | ||
330 | if (dev->ir_codes == NULL) { | 330 | if (dev->board.ir_codes == NULL) { |
331 | /* No remote control support */ | 331 | /* No remote control support */ |
332 | return 0; | 332 | return 0; |
333 | } | 333 | } |
@@ -366,7 +366,7 @@ int em28xx_ir_init(struct em28xx *dev) | |||
366 | usb_make_path(dev->udev, ir->phys, sizeof(ir->phys)); | 366 | usb_make_path(dev->udev, ir->phys, sizeof(ir->phys)); |
367 | strlcat(ir->phys, "/input0", sizeof(ir->phys)); | 367 | strlcat(ir->phys, "/input0", sizeof(ir->phys)); |
368 | 368 | ||
369 | ir_input_init(input_dev, &ir->ir, IR_TYPE_OTHER, dev->ir_codes); | 369 | ir_input_init(input_dev, &ir->ir, IR_TYPE_OTHER, dev->board.ir_codes); |
370 | input_dev->name = ir->name; | 370 | input_dev->name = ir->name; |
371 | input_dev->phys = ir->phys; | 371 | input_dev->phys = ir->phys; |
372 | input_dev->id.bustype = BUS_USB; | 372 | input_dev->id.bustype = BUS_USB; |
diff --git a/drivers/media/video/em28xx/em28xx-video.c b/drivers/media/video/em28xx/em28xx-video.c index 5cf32aed8c2e..845253c5d2a1 100644 --- a/drivers/media/video/em28xx/em28xx-video.c +++ b/drivers/media/video/em28xx/em28xx-video.c | |||
@@ -517,7 +517,7 @@ static int em28xx_config(struct em28xx *dev) | |||
517 | int retval; | 517 | int retval; |
518 | 518 | ||
519 | /* Sets I2C speed to 100 KHz */ | 519 | /* Sets I2C speed to 100 KHz */ |
520 | if (!dev->is_em2800) { | 520 | if (!dev->board.is_em2800) { |
521 | retval = em28xx_write_regs_req(dev, 0x00, 0x06, "\x40", 1); | 521 | retval = em28xx_write_regs_req(dev, 0x00, 0x06, "\x40", 1); |
522 | if (retval < 0) { | 522 | if (retval < 0) { |
523 | em28xx_errdev("%s: em28xx_write_regs_req failed! retval [%d]\n", | 523 | em28xx_errdev("%s: em28xx_write_regs_req failed! retval [%d]\n", |
@@ -573,7 +573,7 @@ static void video_mux(struct em28xx *dev, int index) | |||
573 | 573 | ||
574 | em28xx_i2c_call_clients(dev, VIDIOC_INT_S_VIDEO_ROUTING, &route); | 574 | em28xx_i2c_call_clients(dev, VIDIOC_INT_S_VIDEO_ROUTING, &route); |
575 | 575 | ||
576 | if (dev->has_msp34xx) { | 576 | if (dev->board.has_msp34xx) { |
577 | if (dev->i2s_speed) { | 577 | if (dev->i2s_speed) { |
578 | em28xx_i2c_call_clients(dev, VIDIOC_INT_I2S_CLOCK_FREQ, | 578 | em28xx_i2c_call_clients(dev, VIDIOC_INT_I2S_CLOCK_FREQ, |
579 | &dev->i2s_speed); | 579 | &dev->i2s_speed); |
@@ -747,7 +747,7 @@ static int vidioc_try_fmt_vid_cap(struct file *file, void *priv, | |||
747 | 747 | ||
748 | mutex_lock(&dev->lock); | 748 | mutex_lock(&dev->lock); |
749 | 749 | ||
750 | if (dev->is_em2800) { | 750 | if (dev->board.is_em2800) { |
751 | /* the em2800 can only scale down to 50% */ | 751 | /* the em2800 can only scale down to 50% */ |
752 | if (height % (maxh / 2)) | 752 | if (height % (maxh / 2)) |
753 | height = maxh; | 753 | height = maxh; |
@@ -998,7 +998,7 @@ static int vidioc_queryctrl(struct file *file, void *priv, | |||
998 | 998 | ||
999 | qc->id = id; | 999 | qc->id = id; |
1000 | 1000 | ||
1001 | if (!dev->has_msp34xx) { | 1001 | if (!dev->board.has_msp34xx) { |
1002 | for (i = 0; i < ARRAY_SIZE(em28xx_qctrl); i++) { | 1002 | for (i = 0; i < ARRAY_SIZE(em28xx_qctrl); i++) { |
1003 | if (qc->id && qc->id == em28xx_qctrl[i].id) { | 1003 | if (qc->id && qc->id == em28xx_qctrl[i].id) { |
1004 | memcpy(qc, &(em28xx_qctrl[i]), sizeof(*qc)); | 1004 | memcpy(qc, &(em28xx_qctrl[i]), sizeof(*qc)); |
@@ -1028,7 +1028,7 @@ static int vidioc_g_ctrl(struct file *file, void *priv, | |||
1028 | return rc; | 1028 | return rc; |
1029 | mutex_lock(&dev->lock); | 1029 | mutex_lock(&dev->lock); |
1030 | 1030 | ||
1031 | if (!dev->has_msp34xx) | 1031 | if (!dev->board.has_msp34xx) |
1032 | rc = em28xx_get_ctrl(dev, ctrl); | 1032 | rc = em28xx_get_ctrl(dev, ctrl); |
1033 | else | 1033 | else |
1034 | rc = -EINVAL; | 1034 | rc = -EINVAL; |
@@ -1056,7 +1056,7 @@ static int vidioc_s_ctrl(struct file *file, void *priv, | |||
1056 | 1056 | ||
1057 | mutex_lock(&dev->lock); | 1057 | mutex_lock(&dev->lock); |
1058 | 1058 | ||
1059 | if (dev->has_msp34xx) | 1059 | if (dev->board.has_msp34xx) |
1060 | em28xx_i2c_call_clients(dev, VIDIOC_S_CTRL, ctrl); | 1060 | em28xx_i2c_call_clients(dev, VIDIOC_S_CTRL, ctrl); |
1061 | else { | 1061 | else { |
1062 | rc = 1; | 1062 | rc = 1; |
@@ -2035,7 +2035,7 @@ static int em28xx_init_dev(struct em28xx **devhandle, struct usb_device *udev, | |||
2035 | dev->em28xx_read_reg_req_len = em28xx_read_reg_req_len; | 2035 | dev->em28xx_read_reg_req_len = em28xx_read_reg_req_len; |
2036 | dev->em28xx_write_regs_req = em28xx_write_regs_req; | 2036 | dev->em28xx_write_regs_req = em28xx_write_regs_req; |
2037 | dev->em28xx_read_reg_req = em28xx_read_reg_req; | 2037 | dev->em28xx_read_reg_req = em28xx_read_reg_req; |
2038 | dev->is_em2800 = em28xx_boards[dev->model].is_em2800; | 2038 | dev->board.is_em2800 = em28xx_boards[dev->model].is_em2800; |
2039 | 2039 | ||
2040 | em28xx_pre_card_setup(dev); | 2040 | em28xx_pre_card_setup(dev); |
2041 | 2041 | ||
@@ -2092,7 +2092,7 @@ static int em28xx_init_dev(struct em28xx **devhandle, struct usb_device *udev, | |||
2092 | INIT_LIST_HEAD(&dev->vidq.queued); | 2092 | INIT_LIST_HEAD(&dev->vidq.queued); |
2093 | 2093 | ||
2094 | 2094 | ||
2095 | if (dev->has_msp34xx) { | 2095 | if (dev->board.has_msp34xx) { |
2096 | /* Send a reset to other chips via gpio */ | 2096 | /* Send a reset to other chips via gpio */ |
2097 | errCode = em28xx_write_regs_req(dev, 0x00, 0x08, "\xf7", 1); | 2097 | errCode = em28xx_write_regs_req(dev, 0x00, 0x08, "\xf7", 1); |
2098 | if (errCode < 0) { | 2098 | if (errCode < 0) { |
@@ -2150,7 +2150,7 @@ static void request_module_async(struct work_struct *work) | |||
2150 | else if (dev->has_alsa_audio) | 2150 | else if (dev->has_alsa_audio) |
2151 | request_module("em28xx-alsa"); | 2151 | request_module("em28xx-alsa"); |
2152 | 2152 | ||
2153 | if (dev->has_dvb) | 2153 | if (dev->board.has_dvb) |
2154 | request_module("em28xx-dvb"); | 2154 | request_module("em28xx-dvb"); |
2155 | } | 2155 | } |
2156 | 2156 | ||
diff --git a/drivers/media/video/em28xx/em28xx.h b/drivers/media/video/em28xx/em28xx.h index 059cc7f43b56..e33aa544bbbc 100644 --- a/drivers/media/video/em28xx/em28xx.h +++ b/drivers/media/video/em28xx/em28xx.h | |||
@@ -328,6 +328,7 @@ struct em28xx_reg_seq { | |||
328 | 328 | ||
329 | struct em28xx_board { | 329 | struct em28xx_board { |
330 | char *name; | 330 | char *name; |
331 | int vchannels; | ||
331 | int tuner_type; | 332 | int tuner_type; |
332 | int tuner_addr; | 333 | int tuner_addr; |
333 | 334 | ||
@@ -416,18 +417,12 @@ struct em28xx { | |||
416 | int model; /* index in the device_data struct */ | 417 | int model; /* index in the device_data struct */ |
417 | int devno; /* marks the number of this device */ | 418 | int devno; /* marks the number of this device */ |
418 | enum em28xx_chip_id chip_id; | 419 | enum em28xx_chip_id chip_id; |
419 | unsigned int is_em2800:1; | 420 | |
420 | unsigned int has_msp34xx:1; | 421 | struct em28xx_board board; |
421 | unsigned int has_tda9887:1; | 422 | |
422 | unsigned int stream_on:1; /* Locks streams */ | 423 | unsigned int stream_on:1; /* Locks streams */ |
423 | unsigned int has_audio_class:1; | 424 | unsigned int has_audio_class:1; |
424 | unsigned int has_alsa_audio:1; | 425 | unsigned int has_alsa_audio:1; |
425 | unsigned int max_range_640_480:1; | ||
426 | unsigned int has_dvb:1; | ||
427 | unsigned int has_snapshot_button:1; | ||
428 | unsigned int valid:1; /* report for validated boards */ | ||
429 | |||
430 | unsigned char xclk, i2c_speed; | ||
431 | 426 | ||
432 | struct em28xx_IR *ir; | 427 | struct em28xx_IR *ir; |
433 | 428 | ||
@@ -444,7 +439,6 @@ struct em28xx { | |||
444 | 439 | ||
445 | u32 i2s_speed; /* I2S speed for audio digital stream */ | 440 | u32 i2s_speed; /* I2S speed for audio digital stream */ |
446 | 441 | ||
447 | enum em28xx_decoder decoder; | ||
448 | struct em28xx_audio_mode audio_mode; | 442 | struct em28xx_audio_mode audio_mode; |
449 | 443 | ||
450 | int tuner_type; /* type of the tuner */ | 444 | int tuner_type; /* type of the tuner */ |
@@ -527,9 +521,6 @@ struct em28xx { | |||
527 | /* Caches GPO and GPIO registers */ | 521 | /* Caches GPO and GPIO registers */ |
528 | unsigned char reg_gpo, reg_gpio; | 522 | unsigned char reg_gpo, reg_gpio; |
529 | 523 | ||
530 | /* Infrared remote control support */ | ||
531 | IR_KEYTAB_TYPE *ir_codes; | ||
532 | |||
533 | /* Snapshot button */ | 524 | /* Snapshot button */ |
534 | char snapshot_button_path[30]; /* path of the input dev */ | 525 | char snapshot_button_path[30]; /* path of the input dev */ |
535 | struct input_dev *sbutton_input_dev; | 526 | struct input_dev *sbutton_input_dev; |
@@ -699,7 +690,7 @@ static inline int em28xx_gamma_set(struct em28xx *dev, s32 val) | |||
699 | /*FIXME: maxw should be dependent of alt mode */ | 690 | /*FIXME: maxw should be dependent of alt mode */ |
700 | static inline unsigned int norm_maxw(struct em28xx *dev) | 691 | static inline unsigned int norm_maxw(struct em28xx *dev) |
701 | { | 692 | { |
702 | if (dev->max_range_640_480) | 693 | if (dev->board.max_range_640_480) |
703 | return 640; | 694 | return 640; |
704 | else | 695 | else |
705 | return 720; | 696 | return 720; |
@@ -707,7 +698,7 @@ static inline unsigned int norm_maxw(struct em28xx *dev) | |||
707 | 698 | ||
708 | static inline unsigned int norm_maxh(struct em28xx *dev) | 699 | static inline unsigned int norm_maxh(struct em28xx *dev) |
709 | { | 700 | { |
710 | if (dev->max_range_640_480) | 701 | if (dev->board.max_range_640_480) |
711 | return 480; | 702 | return 480; |
712 | else | 703 | else |
713 | return (dev->norm & V4L2_STD_625_50) ? 576 : 480; | 704 | return (dev->norm & V4L2_STD_625_50) ? 576 : 480; |