Go to the documentation of this file.
25 #include <linux/videodev2.h>
26 #include <linux/types.h>
28 #include <linux/i2c.h>
44 #define DRIVER_NAME "cx231xx"
45 #define PWR_SLEEP_INTERVAL 10
48 #define AFE_DEVICE_ADDRESS 0x60
49 #define I2S_BLK_DEVICE_ADDRESS 0x98
50 #define VID_BLK_I2C_ADDRESS 0x88
51 #define VERVE_I2C_ADDRESS 0x40
52 #define DIF_USE_BASEBAND 0xFFFFFFFF
55 #define CX231XX_BOARD_UNKNOWN 0
56 #define CX231XX_BOARD_CNXT_CARRAERA 1
57 #define CX231XX_BOARD_CNXT_SHELBY 2
58 #define CX231XX_BOARD_CNXT_RDE_253S 3
59 #define CX231XX_BOARD_CNXT_RDU_253S 4
60 #define CX231XX_BOARD_CNXT_VIDEO_GRABBER 5
61 #define CX231XX_BOARD_CNXT_RDE_250 6
62 #define CX231XX_BOARD_CNXT_RDU_250 7
63 #define CX231XX_BOARD_HAUPPAUGE_EXETER 8
64 #define CX231XX_BOARD_HAUPPAUGE_USBLIVE2 9
65 #define CX231XX_BOARD_PV_PLAYTV_USB_HYBRID 10
66 #define CX231XX_BOARD_PV_XCAPTURE_USB 11
67 #define CX231XX_BOARD_KWORLD_UB430_USB_HYBRID 12
68 #define CX231XX_BOARD_ICONBIT_U100 13
69 #define CX231XX_BOARD_HAUPPAUGE_USB2_FM_PAL 14
70 #define CX231XX_BOARD_HAUPPAUGE_USB2_FM_NTSC 15
73 #define CX231XX_MIN_BUF 4
74 #define CX231XX_DEF_BUF 12
75 #define CX231XX_DEF_VBI_BUF 6
77 #define VBI_LINE_COUNT 17
78 #define VBI_LINE_LENGTH 1440
81 #define URB_MAX_CTRL_SIZE 80
84 #define CX231XX_BOARD_NOT_VALIDATED 1
85 #define CX231XX_BOARD_VALIDATED 0
88 #define CX231XX_MAXBOARDS 8
91 #define CX231XX_NUM_FRAMES 5
94 #define CX231XX_NUM_BUFS 8
100 #define CX231XX_NUM_PACKETS 40
103 #define CX231XX_PINOUT 0
105 #define CX231XX_INTERLACED_DEFAULT 1
108 #define CX231XX_URB_TIMEOUT \
109 msecs_to_jiffies(CX231XX_NUM_BUFS * CX231XX_NUM_PACKETS)
111 #define CX231xx_NORMS (\
112 V4L2_STD_NTSC_M | V4L2_STD_NTSC_M_JP | V4L2_STD_NTSC_443 | \
113 V4L2_STD_PAL_BG | V4L2_STD_PAL_DK | V4L2_STD_PAL_I | \
114 V4L2_STD_PAL_M | V4L2_STD_PAL_N | V4L2_STD_PAL_Nc | \
115 V4L2_STD_PAL_60 | V4L2_STD_SECAM_L | V4L2_STD_SECAM_DK)
117 #define SLEEP_S5H1432 30
118 #define CX23417_OSC_EN 8
119 #define CX23417_RESET 9
265 #define MAX_CX231XX_INPUT 4
310 #define INPUT(nr) (&cx231xx_boards[dev->model].input[nr])
397 #define CX231XX_AUDIO_BUFS 5
398 #define CX231XX_NUM_AUDIO_PACKETS 16
399 #define CX231XX_ISO_NUM_AUDIO_PACKETS 64
402 #define CX231XX_AUDIO 0x10
403 #define CX231XX_DVB 0x20
464 #define I2C_SPEED_1M 0x0
465 #define I2C_SPEED_400K 0x1
466 #define I2C_SPEED_100K 0x2
467 #define I2C_SPEED_5M 0x3
472 #define I2C_NOSTOP 0x1
750 #define cx25840_call(cx231xx, o, f, args...) \
751 v4l2_subdev_call(cx231xx->sd_cx25840, o, f, ##args)
752 #define tuner_call(cx231xx, o, f, args...) \
753 v4l2_subdev_call(cx231xx->sd_tuner, o, f, ##args)
754 #define call_all(dev, o, f, args...) \
755 v4l2_device_call_until_err(&dev->v4l2_dev, 0, o, f, ##args)
784 u16 register_address,
u8 bit_start,
u8 bit_end,
811 u32 function_mode,
u32 standard);
835 u8 *p_buffer,
u32 bytes_to_copy);
842 u8 sav_eav,
u8 *p_buffer,
u32 buffer_size);
895 int num_bufs,
int max_pkt_size,
896 int (*isoc_copy) (
struct cx231xx *dev,
899 int num_bufs,
int max_pkt_size,
900 int (*bulk_copy) (
struct cx231xx *dev,
942 u8 analog_or_digital);
972 #if defined(CONFIG_VIDEO_CX231XX_RC)
976 #define cx231xx_ir_init(dev) (0)
977 #define cx231xx_ir_exit(dev) (0)
983 #define cx231xx_err(fmt, arg...) do {\
984 printk(KERN_ERR fmt , ##arg); } while (0)
986 #define cx231xx_errdev(fmt, arg...) do {\
987 printk(KERN_ERR "%s: "fmt,\
988 dev->name , ##arg); } while (0)
990 #define cx231xx_info(fmt, arg...) do {\
991 printk(KERN_INFO "%s: "fmt,\
992 dev->name , ##arg); } while (0)
993 #define cx231xx_warn(fmt, arg...) do {\
994 printk(KERN_WARNING "%s: "fmt,\
995 dev->name , ##arg); } while (0)
999 if (dev->
board.max_range_640_480)
1007 if (dev->
board.max_range_640_480)