Lines Matching refs:cx
56 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx; in cx18_queryctrl() local
69 if (cx18_av_cmd(cx, VIDIOC_QUERYCTRL, qctrl)) in cx18_queryctrl()
79 if (cx18_i2c_hw(cx, cx->card->hw_audio_ctrl, VIDIOC_QUERYCTRL, qctrl)) in cx18_queryctrl()
84 if (cx2341x_ctrl_query(&cx->params, qctrl)) in cx18_queryctrl()
95 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx; in cx18_querymenu() local
101 cx2341x_ctrl_get_menu(&cx->params, qmenu->id)); in cx18_querymenu()
120 static int cx18_s_ctrl(struct cx18 *cx, struct v4l2_control *vctrl) in cx18_s_ctrl() argument
128 return cx18_av_cmd(cx, VIDIOC_S_CTRL, vctrl); in cx18_s_ctrl()
136 return cx18_i2c_hw(cx, cx->card->hw_audio_ctrl, VIDIOC_S_CTRL, vctrl); in cx18_s_ctrl()
145 static int cx18_g_ctrl(struct cx18 *cx, struct v4l2_control *vctrl) in cx18_g_ctrl() argument
153 return cx18_av_cmd(cx, VIDIOC_G_CTRL, vctrl); in cx18_g_ctrl()
161 return cx18_i2c_hw(cx, cx->card->hw_audio_ctrl, VIDIOC_G_CTRL, vctrl); in cx18_g_ctrl()
169 static int cx18_setup_vbi_fmt(struct cx18 *cx, enum v4l2_mpeg_stream_vbi_fmt fmt) in cx18_setup_vbi_fmt() argument
171 if (!(cx->v4l2_cap & V4L2_CAP_SLICED_VBI_CAPTURE)) in cx18_setup_vbi_fmt()
173 if (atomic_read(&cx->ana_capturing) > 0) in cx18_setup_vbi_fmt()
177 if (fmt && cx->vbi.sliced_mpeg_data[0] == NULL) { in cx18_setup_vbi_fmt()
182 cx->vbi.sliced_mpeg_data[i] = kmalloc(2049, GFP_KERNEL); in cx18_setup_vbi_fmt()
183 if (cx->vbi.sliced_mpeg_data[i] == NULL) { in cx18_setup_vbi_fmt()
185 kfree(cx->vbi.sliced_mpeg_data[i]); in cx18_setup_vbi_fmt()
186 cx->vbi.sliced_mpeg_data[i] = NULL; in cx18_setup_vbi_fmt()
193 cx->vbi.insert_mpeg = fmt; in cx18_setup_vbi_fmt()
195 if (cx->vbi.insert_mpeg == 0) in cx18_setup_vbi_fmt()
198 if (cx18_get_service_set(cx->vbi.sliced_in) == 0) { in cx18_setup_vbi_fmt()
199 if (cx->is_60hz) in cx18_setup_vbi_fmt()
200 cx->vbi.sliced_in->service_set = V4L2_SLICED_CAPTION_525; in cx18_setup_vbi_fmt()
202 cx->vbi.sliced_in->service_set = V4L2_SLICED_WSS_625; in cx18_setup_vbi_fmt()
203 cx18_expand_service_set(cx->vbi.sliced_in, cx->is_50hz); in cx18_setup_vbi_fmt()
210 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx; in cx18_g_ext_ctrls() local
220 err = cx18_g_ctrl(cx, &ctrl); in cx18_g_ext_ctrls()
230 return cx2341x_ext_ctrls(&cx->params, 0, c, VIDIOC_G_EXT_CTRLS); in cx18_g_ext_ctrls()
237 struct cx18 *cx = id->cx; in cx18_s_ext_ctrls() local
241 ret = v4l2_prio_check(&cx->prio, &id->prio); in cx18_s_ext_ctrls()
252 err = cx18_s_ctrl(cx, &ctrl); in cx18_s_ext_ctrls()
263 struct cx2341x_mpeg_params p = cx->params; in cx18_s_ext_ctrls()
264 int err = cx2341x_ext_ctrls(&p, atomic_read(&cx->ana_capturing), in cx18_s_ext_ctrls()
270 if (p.video_encoding != cx->params.video_encoding) { in cx18_s_ext_ctrls()
277 fmt.fmt.pix.width = cx->params.width in cx18_s_ext_ctrls()
279 fmt.fmt.pix.height = cx->params.height; in cx18_s_ext_ctrls()
280 cx18_av_cmd(cx, VIDIOC_S_FMT, &fmt); in cx18_s_ext_ctrls()
282 priv.cx = cx; in cx18_s_ext_ctrls()
283 priv.s = &cx->streams[id->type]; in cx18_s_ext_ctrls()
284 err = cx2341x_update(&priv, cx18_api_func, &cx->params, &p); in cx18_s_ext_ctrls()
285 if (!err && cx->params.stream_vbi_fmt != p.stream_vbi_fmt) in cx18_s_ext_ctrls()
286 err = cx18_setup_vbi_fmt(cx, p.stream_vbi_fmt); in cx18_s_ext_ctrls()
287 cx->params = p; in cx18_s_ext_ctrls()
288 cx->dualwatch_stereo_mode = p.audio_properties & 0x0300; in cx18_s_ext_ctrls()
289 cx18_audio_set_audio_clock_freq(cx, p.audio_properties & 0x03); in cx18_s_ext_ctrls()
297 struct cx18 *cx = ((struct cx18_open_id *)fh)->cx; in cx18_try_ext_ctrls() local
313 return cx2341x_ext_ctrls(&cx->params, in cx18_try_ext_ctrls()
314 atomic_read(&cx->ana_capturing), in cx18_try_ext_ctrls()