Lines Matching refs:hdw
40 static int pvr2_encoder_write_words(struct pvr2_hdw *hdw, in pvr2_encoder_write_words() argument
62 memset(hdw->cmd_buffer,0,sizeof(hdw->cmd_buffer)); in pvr2_encoder_write_words()
64 hdw->cmd_buffer[bAddr++] = FX2CMD_MEM_WRITE_DWORD; in pvr2_encoder_write_words()
67 hdw->cmd_buffer[bAddr+6] = (addr & 0xffu); in pvr2_encoder_write_words()
68 hdw->cmd_buffer[bAddr+5] = ((addr>>8) & 0xffu); in pvr2_encoder_write_words()
69 hdw->cmd_buffer[bAddr+4] = ((addr>>16) & 0xffu); in pvr2_encoder_write_words()
70 PVR2_DECOMPOSE_LE(hdw->cmd_buffer, bAddr,data[idx]); in pvr2_encoder_write_words()
73 ret = pvr2_send_request(hdw, in pvr2_encoder_write_words()
74 hdw->cmd_buffer,1+(chunkCnt*7), in pvr2_encoder_write_words()
86 static int pvr2_encoder_read_words(struct pvr2_hdw *hdw, in pvr2_encoder_read_words() argument
108 hdw->cmd_buffer[0] = in pvr2_encoder_read_words()
111 hdw->cmd_buffer[1] = 0; in pvr2_encoder_read_words()
112 hdw->cmd_buffer[2] = 0; in pvr2_encoder_read_words()
113 hdw->cmd_buffer[3] = 0; in pvr2_encoder_read_words()
114 hdw->cmd_buffer[4] = 0; in pvr2_encoder_read_words()
115 hdw->cmd_buffer[5] = ((offs>>16) & 0xffu); in pvr2_encoder_read_words()
116 hdw->cmd_buffer[6] = ((offs>>8) & 0xffu); in pvr2_encoder_read_words()
117 hdw->cmd_buffer[7] = (offs & 0xffu); in pvr2_encoder_read_words()
118 ret = pvr2_send_request(hdw, in pvr2_encoder_read_words()
119 hdw->cmd_buffer,8, in pvr2_encoder_read_words()
120 hdw->cmd_buffer, in pvr2_encoder_read_words()
125 data[idx] = PVR2_COMPOSE_LE(hdw->cmd_buffer,idx*4); in pvr2_encoder_read_words()
155 struct pvr2_hdw *hdw = (struct pvr2_hdw *)ctxt; in pvr2_encoder_cmd() local
209 LOCK_TAKE(hdw->ctl_lock); do { in pvr2_encoder_cmd()
211 if (!hdw->state_encoder_ok) { in pvr2_encoder_cmd()
230 ret = pvr2_encoder_write_words(hdw,MBOX_BASE,wrData,idx); in pvr2_encoder_cmd()
233 ret = pvr2_encoder_write_words(hdw,MBOX_BASE,wrData,1); in pvr2_encoder_cmd()
238 ret = pvr2_encoder_read_words(hdw,MBOX_BASE,rdData, in pvr2_encoder_cmd()
280 del_timer_sync(&hdw->encoder_run_timer); in pvr2_encoder_cmd()
281 hdw->state_encoder_ok = 0; in pvr2_encoder_cmd()
285 (hdw->state_encoder_ok ? "true" : "false")); in pvr2_encoder_cmd()
286 if (hdw->state_encoder_runok) { in pvr2_encoder_cmd()
287 hdw->state_encoder_runok = 0; in pvr2_encoder_cmd()
291 (hdw->state_encoder_runok ? in pvr2_encoder_cmd()
309 ret = pvr2_encoder_write_words(hdw,MBOX_BASE,wrData,1); in pvr2_encoder_cmd()
312 } while(0); LOCK_GIVE(hdw->ctl_lock); in pvr2_encoder_cmd()
318 static int pvr2_encoder_vcmd(struct pvr2_hdw *hdw, int cmd, in pvr2_encoder_vcmd() argument
341 return pvr2_encoder_cmd(hdw,cmd,args,0,data); in pvr2_encoder_vcmd()
347 static int pvr2_encoder_prep_config(struct pvr2_hdw *hdw) in pvr2_encoder_prep_config() argument
358 LOCK_TAKE(hdw->ctl_lock); do { in pvr2_encoder_prep_config()
361 pvr2_encoder_write_words(hdw,0x01fe,dat,1); in pvr2_encoder_prep_config()
362 pvr2_encoder_write_words(hdw,0x023e,dat,1); in pvr2_encoder_prep_config()
363 } while(0); LOCK_GIVE(hdw->ctl_lock); in pvr2_encoder_prep_config()
378 ret |= pvr2_encoder_vcmd(hdw, CX2341X_ENC_MISC,4, 5,0,0,0); in pvr2_encoder_prep_config()
386 if (hdw->hdw_desc->flag_has_cx25840) { in pvr2_encoder_prep_config()
391 ret |= pvr2_encoder_vcmd(hdw, CX2341X_ENC_MISC,4, 3, in pvr2_encoder_prep_config()
394 ret |= pvr2_encoder_vcmd(hdw, CX2341X_ENC_MISC,4, 8,0,0,0); in pvr2_encoder_prep_config()
402 ret |= pvr2_encoder_vcmd(hdw, CX2341X_ENC_MISC,4, 4,1,0,0); in pvr2_encoder_prep_config()
405 ret |= pvr2_encoder_vcmd(hdw, CX2341X_ENC_MISC,4, 0,3,0,0); in pvr2_encoder_prep_config()
406 ret |= pvr2_encoder_vcmd(hdw, CX2341X_ENC_MISC,4,15,0,0,0); in pvr2_encoder_prep_config()
410 ret |= pvr2_encoder_vcmd(hdw, CX2341X_ENC_MISC, 2, 4, 1); in pvr2_encoder_prep_config()
415 int pvr2_encoder_adjust(struct pvr2_hdw *hdw) in pvr2_encoder_adjust() argument
418 ret = cx2341x_update(hdw,pvr2_encoder_cmd, in pvr2_encoder_adjust()
419 (hdw->enc_cur_valid ? &hdw->enc_cur_state : NULL), in pvr2_encoder_adjust()
420 &hdw->enc_ctl_state); in pvr2_encoder_adjust()
425 hdw->enc_cur_state = hdw->enc_ctl_state; in pvr2_encoder_adjust()
426 hdw->enc_cur_valid = !0; in pvr2_encoder_adjust()
432 int pvr2_encoder_configure(struct pvr2_hdw *hdw) in pvr2_encoder_configure() argument
438 hdw->enc_ctl_state.port = CX2341X_PORT_STREAMING; in pvr2_encoder_configure()
439 hdw->enc_ctl_state.width = hdw->res_hor_val; in pvr2_encoder_configure()
440 hdw->enc_ctl_state.height = hdw->res_ver_val; in pvr2_encoder_configure()
441 hdw->enc_ctl_state.is_50hz = ((hdw->std_mask_cur & V4L2_STD_525_60) ? in pvr2_encoder_configure()
446 ret |= pvr2_encoder_prep_config(hdw); in pvr2_encoder_configure()
450 if (hdw->hdw_desc->flag_has_cx25840) { in pvr2_encoder_configure()
456 hdw,CX2341X_ENC_SET_NUM_VSYNC_LINES, 2, in pvr2_encoder_configure()
461 hdw,CX2341X_ENC_SET_EVENT_NOTIFICATION, 4, in pvr2_encoder_configure()
465 hdw,CX2341X_ENC_SET_VBI_LINE, 5, in pvr2_encoder_configure()
474 ret = pvr2_encoder_adjust(hdw); in pvr2_encoder_configure()
478 hdw, CX2341X_ENC_INITIALIZE_INPUT, 0); in pvr2_encoder_configure()
490 int pvr2_encoder_start(struct pvr2_hdw *hdw) in pvr2_encoder_start() argument
495 pvr2_write_register(hdw, 0x0048, 0xbfffffff); in pvr2_encoder_start()
497 pvr2_encoder_vcmd(hdw,CX2341X_ENC_MUTE_VIDEO,1, in pvr2_encoder_start()
498 hdw->input_val == PVR2_CVAL_INPUT_RADIO ? 1 : 0); in pvr2_encoder_start()
500 switch (hdw->active_stream_type) { in pvr2_encoder_start()
502 status = pvr2_encoder_vcmd(hdw,CX2341X_ENC_START_CAPTURE,2, in pvr2_encoder_start()
506 status = pvr2_encoder_vcmd(hdw,CX2341X_ENC_START_CAPTURE,2, in pvr2_encoder_start()
510 status = pvr2_encoder_vcmd(hdw,CX2341X_ENC_START_CAPTURE,2, in pvr2_encoder_start()
517 int pvr2_encoder_stop(struct pvr2_hdw *hdw) in pvr2_encoder_stop() argument
522 pvr2_write_register(hdw, 0x0048, 0xffffffff); in pvr2_encoder_stop()
524 switch (hdw->active_stream_type) { in pvr2_encoder_stop()
526 status = pvr2_encoder_vcmd(hdw,CX2341X_ENC_STOP_CAPTURE,3, in pvr2_encoder_stop()
530 status = pvr2_encoder_vcmd(hdw,CX2341X_ENC_STOP_CAPTURE,3, in pvr2_encoder_stop()
534 status = pvr2_encoder_vcmd(hdw,CX2341X_ENC_STOP_CAPTURE,3, in pvr2_encoder_stop()