Lines Matching +full:video +full:- +full:encoder
2 * bt856 - BT856A Digital Video Encoder (Rockwell Part)
14 * - moved over to linux>=2.4.x i2c protocol (9/9/2002)
34 #include <media/v4l2-device.h>
36 MODULE_DESCRIPTION("Brooktree-856A video encoder driver");
42 MODULE_PARM_DESC(debug, "Debug level (0-1)");
45 /* ----------------------------------------------------------------------- */
62 /* ----------------------------------------------------------------------- */
64 static inline int bt856_write(struct bt856 *encoder, u8 reg, u8 value) in bt856_write() argument
66 struct i2c_client *client = v4l2_get_subdevdata(&encoder->sd); in bt856_write()
68 encoder->reg[reg - BT856_REG_OFFSET] = value; in bt856_write()
72 static inline int bt856_setbit(struct bt856 *encoder, u8 reg, u8 bit, u8 value) in bt856_setbit() argument
74 return bt856_write(encoder, reg, in bt856_setbit()
75 (encoder->reg[reg - BT856_REG_OFFSET] & ~(1 << bit)) | in bt856_setbit()
79 static void bt856_dump(struct bt856 *encoder) in bt856_dump() argument
83 v4l2_info(&encoder->sd, "register dump:\n"); in bt856_dump()
85 printk(KERN_CONT " %02x", encoder->reg[i]); in bt856_dump()
89 /* ----------------------------------------------------------------------- */
93 struct bt856 *encoder = to_bt856(sd); in bt856_init() local
97 bt856_write(encoder, 0xdc, 0x18); in bt856_init()
98 bt856_write(encoder, 0xda, 0); in bt856_init()
99 bt856_write(encoder, 0xde, 0); in bt856_init()
101 bt856_setbit(encoder, 0xdc, 3, 1); in bt856_init()
102 /*bt856_setbit(encoder, 0xdc, 6, 0);*/ in bt856_init()
103 bt856_setbit(encoder, 0xdc, 4, 1); in bt856_init()
105 if (encoder->norm & V4L2_STD_NTSC) in bt856_init()
106 bt856_setbit(encoder, 0xdc, 2, 0); in bt856_init()
108 bt856_setbit(encoder, 0xdc, 2, 1); in bt856_init()
110 bt856_setbit(encoder, 0xdc, 1, 1); in bt856_init()
111 bt856_setbit(encoder, 0xde, 4, 0); in bt856_init()
112 bt856_setbit(encoder, 0xde, 3, 1); in bt856_init()
114 bt856_dump(encoder); in bt856_init()
120 struct bt856 *encoder = to_bt856(sd); in bt856_s_std_output() local
125 bt856_setbit(encoder, 0xdc, 2, 0); in bt856_s_std_output()
127 bt856_setbit(encoder, 0xdc, 2, 1); in bt856_s_std_output()
128 bt856_setbit(encoder, 0xda, 0, 0); in bt856_s_std_output()
129 /*bt856_setbit(encoder, 0xda, 0, 1);*/ in bt856_s_std_output()
131 return -EINVAL; in bt856_s_std_output()
133 encoder->norm = std; in bt856_s_std_output()
135 bt856_dump(encoder); in bt856_s_std_output()
142 struct bt856 *encoder = to_bt856(sd); in bt856_s_routing() local
146 /* We only have video bus. in bt856_s_routing()
151 bt856_setbit(encoder, 0xde, 4, 0); in bt856_s_routing()
152 bt856_setbit(encoder, 0xde, 3, 1); in bt856_s_routing()
153 bt856_setbit(encoder, 0xdc, 3, 1); in bt856_s_routing()
154 bt856_setbit(encoder, 0xdc, 6, 0); in bt856_s_routing()
157 bt856_setbit(encoder, 0xde, 4, 0); in bt856_s_routing()
158 bt856_setbit(encoder, 0xde, 3, 1); in bt856_s_routing()
159 bt856_setbit(encoder, 0xdc, 3, 1); in bt856_s_routing()
160 bt856_setbit(encoder, 0xdc, 6, 1); in bt856_s_routing()
163 bt856_setbit(encoder, 0xdc, 3, 0); in bt856_s_routing()
164 bt856_setbit(encoder, 0xde, 4, 1); in bt856_s_routing()
167 return -EINVAL; in bt856_s_routing()
171 bt856_dump(encoder); in bt856_s_routing()
175 /* ----------------------------------------------------------------------- */
188 .video = &bt856_video_ops,
191 /* ----------------------------------------------------------------------- */
196 struct bt856 *encoder; in bt856_probe() local
200 if (!i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_BYTE_DATA)) in bt856_probe()
201 return -ENODEV; in bt856_probe()
204 client->addr << 1, client->adapter->name); in bt856_probe()
206 encoder = devm_kzalloc(&client->dev, sizeof(*encoder), GFP_KERNEL); in bt856_probe()
207 if (encoder == NULL) in bt856_probe()
208 return -ENOMEM; in bt856_probe()
209 sd = &encoder->sd; in bt856_probe()
211 encoder->norm = V4L2_STD_NTSC; in bt856_probe()
213 bt856_write(encoder, 0xdc, 0x18); in bt856_probe()
214 bt856_write(encoder, 0xda, 0); in bt856_probe()
215 bt856_write(encoder, 0xde, 0); in bt856_probe()
217 bt856_setbit(encoder, 0xdc, 3, 1); in bt856_probe()
218 /*bt856_setbit(encoder, 0xdc, 6, 0);*/ in bt856_probe()
219 bt856_setbit(encoder, 0xdc, 4, 1); in bt856_probe()
221 if (encoder->norm & V4L2_STD_NTSC) in bt856_probe()
222 bt856_setbit(encoder, 0xdc, 2, 0); in bt856_probe()
224 bt856_setbit(encoder, 0xdc, 2, 1); in bt856_probe()
226 bt856_setbit(encoder, 0xdc, 1, 1); in bt856_probe()
227 bt856_setbit(encoder, 0xde, 4, 0); in bt856_probe()
228 bt856_setbit(encoder, 0xde, 3, 1); in bt856_probe()
231 bt856_dump(encoder); in bt856_probe()