Lines Matching refs:state

389 	struct adv7842_state *state = to_state(sd);
391 return adv_smbus_read_byte_data(state->i2c_avlink, reg);
396 struct adv7842_state *state = to_state(sd);
398 return adv_smbus_write_byte_data(state->i2c_avlink, reg, val);
403 struct adv7842_state *state = to_state(sd);
405 return adv_smbus_read_byte_data(state->i2c_cec, reg);
410 struct adv7842_state *state = to_state(sd);
412 return adv_smbus_write_byte_data(state->i2c_cec, reg, val);
422 struct adv7842_state *state = to_state(sd);
424 return adv_smbus_read_byte_data(state->i2c_infoframe, reg);
429 struct adv7842_state *state = to_state(sd);
431 return adv_smbus_write_byte_data(state->i2c_infoframe, reg, val);
436 struct adv7842_state *state = to_state(sd);
438 return adv_smbus_read_byte_data(state->i2c_sdp_io, reg);
443 struct adv7842_state *state = to_state(sd);
445 return adv_smbus_write_byte_data(state->i2c_sdp_io, reg, val);
455 struct adv7842_state *state = to_state(sd);
457 return adv_smbus_read_byte_data(state->i2c_sdp, reg);
462 struct adv7842_state *state = to_state(sd);
464 return adv_smbus_write_byte_data(state->i2c_sdp, reg, val);
474 struct adv7842_state *state = to_state(sd);
476 return adv_smbus_read_byte_data(state->i2c_afe, reg);
481 struct adv7842_state *state = to_state(sd);
483 return adv_smbus_write_byte_data(state->i2c_afe, reg, val);
493 struct adv7842_state *state = to_state(sd);
495 return adv_smbus_read_byte_data(state->i2c_repeater, reg);
500 struct adv7842_state *state = to_state(sd);
502 return adv_smbus_write_byte_data(state->i2c_repeater, reg, val);
512 struct adv7842_state *state = to_state(sd);
514 return adv_smbus_read_byte_data(state->i2c_edid, reg);
519 struct adv7842_state *state = to_state(sd);
521 return adv_smbus_write_byte_data(state->i2c_edid, reg, val);
526 struct adv7842_state *state = to_state(sd);
528 return adv_smbus_read_byte_data(state->i2c_hdmi, reg);
533 struct adv7842_state *state = to_state(sd);
535 return adv_smbus_write_byte_data(state->i2c_hdmi, reg, val);
545 struct adv7842_state *state = to_state(sd);
547 return adv_smbus_read_byte_data(state->i2c_cp, reg);
552 struct adv7842_state *state = to_state(sd);
554 return adv_smbus_write_byte_data(state->i2c_cp, reg, val);
564 struct adv7842_state *state = to_state(sd);
566 return adv_smbus_read_byte_data(state->i2c_vdp, reg);
571 struct adv7842_state *state = to_state(sd);
573 return adv_smbus_write_byte_data(state->i2c_vdp, reg, val);
633 adv7842_format_info(struct adv7842_state *state, u32 code)
649 struct adv7842_state *state = to_state(sd);
651 return ((state->mode == ADV7842_MODE_RGB) ||
652 (state->mode == ADV7842_MODE_COMP));
657 struct adv7842_state *state = to_state(sd);
659 return state->mode == ADV7842_MODE_HDMI;
708 struct adv7842_state *state = container_of(dwork,
710 struct v4l2_subdev *sd = &state->sd;
711 int present = state->hdmi_edid.present;
727 struct adv7842_state *state = to_state(sd);
728 const u8 *val = state->vga_edid.edid;
744 err = adv_smbus_write_i2c_block_data(state->i2c_edid, i,
765 schedule_delayed_work(&state->delayed_work_enable_hotplug, HZ / 5);
773 struct adv7842_state *state = to_state(sd);
774 const u8 *edid = state->hdmi_edid.edid;
789 if (!state->hdmi_edid.present) {
790 cec_phys_addr_invalidate(state->cec_adap);
810 err = adv_smbus_write_i2c_block_data(state->i2c_edid, i,
828 rep_write_and_or(sd, 0x77, 0xf3, state->hdmi_edid.present);
831 if (rep_read(sd, 0x7d) & state->hdmi_edid.present)
840 cec_s_phys_addr(state->cec_adap, pa, false);
843 schedule_delayed_work(&state->delayed_work_enable_hotplug, HZ / 5);
969 struct adv7842_state *state = to_state(sd);
974 return v4l2_ctrl_s_ctrl(state->detect_tx_5v_ctrl, cable_det);
1001 struct adv7842_state *state = to_state(sd);
1023 switch (state->mode) {
1041 __func__, state->mode);
1053 struct adv7842_state *state = to_state(sd);
1070 switch (state->mode) {
1107 __func__, state->mode);
1119 struct adv7842_state *state = to_state(sd);
1138 if (adv_smbus_write_i2c_block_data(state->i2c_cp, 0x77, 4, offset_buf))
1144 struct adv7842_state *state = to_state(sd);
1167 if (adv_smbus_write_i2c_block_data(state->i2c_cp, 0x73, 4, gain_buf))
1173 struct adv7842_state *state = to_state(sd);
1182 __func__, state->rgb_quantization_range,
1189 switch (state->rgb_quantization_range) {
1191 if (state->mode == ADV7842_MODE_RGB) {
1198 if (state->mode == ADV7842_MODE_COMP) {
1215 if (state->timings.bt.flags & V4L2_DV_FL_IS_CE_VIDEO) {
1231 if (state->mode == ADV7842_MODE_COMP) {
1245 if (state->mode == ADV7842_MODE_COMP) {
1274 struct adv7842_state *state = to_state(sd);
1341 state->rgb_quantization_range = ctrl->val;
1378 struct adv7842_state *state = to_state(sd);
1385 if (state->mode == ADV7842_MODE_SDP) {
1419 struct adv7842_state *state = to_state(sd);
1453 false, state->aspect_ratio, timings))
1536 struct adv7842_state *state = to_state(sd);
1545 if (state->mode == ADV7842_MODE_SDP)
1550 state->restart_stdi_once = true;
1633 if (state->restart_stdi_once) {
1642 state->restart_stdi_once = false;
1648 state->restart_stdi_once = true;
1661 struct adv7842_state *state = to_state(sd);
1667 if (state->mode == ADV7842_MODE_SDP)
1670 if (v4l2_match_dv_timings(&state->timings, timings, 0, false)) {
1683 state->timings = *timings;
1707 struct adv7842_state *state = to_state(sd);
1709 if (state->mode == ADV7842_MODE_SDP)
1711 *timings = state->timings;
1717 struct adv7842_state *state = to_state(sd);
1720 switch (state->mode) {
1733 __func__, state->mode);
1798 struct adv7842_state *state = to_state(sd);
1800 switch (state->mode) {
1857 if (state->mode == ADV7842_MODE_COMP) {
1886 if (state->hdmi_port_a)
1945 __func__, state->mode);
1953 struct adv7842_state *state = to_state(sd);
1959 state->mode = ADV7842_MODE_HDMI;
1960 state->vid_std_select = ADV7842_HDMI_COMP_VID_STD_HD_1250P;
1961 state->hdmi_port_a = true;
1964 state->mode = ADV7842_MODE_HDMI;
1965 state->vid_std_select = ADV7842_HDMI_COMP_VID_STD_HD_1250P;
1966 state->hdmi_port_a = false;
1969 state->mode = ADV7842_MODE_COMP;
1970 state->vid_std_select = ADV7842_RGB_VID_STD_AUTO_GRAPH_MODE;
1973 state->mode = ADV7842_MODE_RGB;
1974 state->vid_std_select = ADV7842_RGB_VID_STD_AUTO_GRAPH_MODE;
1977 state->mode = ADV7842_MODE_SDP;
1978 state->vid_std_select = ADV7842_SDP_VID_STD_CVBS_SD_4x1;
1981 state->mode = ADV7842_MODE_SDP;
1982 state->vid_std_select = ADV7842_SDP_VID_STD_YC_SD4_x1;
1989 select_input(sd, state->vid_std_select);
2007 static void adv7842_fill_format(struct adv7842_state *state,
2012 format->width = state->timings.bt.width;
2013 format->height = state->timings.bt.height;
2017 if (state->timings.bt.flags & V4L2_DV_FL_IS_CE_VIDEO)
2018 format->colorspace = (state->timings.bt.height <= 576) ?
2040 static unsigned int adv7842_op_ch_sel(struct adv7842_state *state)
2056 return op_ch_sel[state->pdata.bus_order][state->format->op_ch_sel >> 5];
2059 static void adv7842_setup_format(struct adv7842_state *state)
2061 struct v4l2_subdev *sd = &state->sd;
2064 state->format->rgb_out ? ADV7842_RGB_OUT : 0);
2065 io_write(sd, 0x03, state->format->op_format_sel |
2066 state->pdata.op_format_mode_sel);
2067 io_write_clr_set(sd, 0x04, 0xe0, adv7842_op_ch_sel(state));
2069 state->format->swap_cb_cr ? ADV7842_OP_SWAP_CB_CR : 0);
2077 struct adv7842_state *state = to_state(sd);
2082 if (state->mode == ADV7842_MODE_SDP) {
2089 if (state->norm & V4L2_STD_525_60)
2097 adv7842_fill_format(state, &format->format);
2105 format->format.code = state->format->code;
2115 struct adv7842_state *state = to_state(sd);
2121 if (state->mode == ADV7842_MODE_SDP)
2124 info = adv7842_format_info(state, format->format.code);
2126 info = adv7842_format_info(state, MEDIA_BUS_FMT_YUYV8_2X8);
2128 adv7842_fill_format(state, &format->format);
2137 state->format = info;
2138 adv7842_setup_format(state);
2172 struct adv7842_state *state = to_state(sd);
2182 cec_transmit_done(state->cec_adap, CEC_TX_STATUS_ARB_LOST,
2203 cec_transmit_done(state->cec_adap, status,
2209 cec_transmit_done(state->cec_adap, CEC_TX_STATUS_OK, 0, 0, 0, 0);
2226 struct adv7842_state *state = to_state(sd);
2239 cec_received_msg(state->cec_adap, &msg);
2251 struct adv7842_state *state = cec_get_drvdata(adap);
2252 struct v4l2_subdev *sd = &state->sd;
2254 if (!state->cec_enabled_adap && enable) {
2265 } else if (state->cec_enabled_adap && !enable) {
2272 state->cec_valid_addrs = 0;
2274 state->cec_enabled_adap = enable;
2280 struct adv7842_state *state = cec_get_drvdata(adap);
2281 struct v4l2_subdev *sd = &state->sd;
2284 if (!state->cec_enabled_adap)
2289 state->cec_valid_addrs = 0;
2294 bool is_valid = state->cec_valid_addrs & (1 << i);
2298 if (is_valid && state->cec_addr[i] == addr)
2306 state->cec_addr[i] = addr;
2307 state->cec_valid_addrs |= 1 << i;
2335 struct adv7842_state *state = cec_get_drvdata(adap);
2336 struct v4l2_subdev *sd = &state->sd;
2372 struct adv7842_state *state = to_state(sd);
2410 if (state->mode == ADV7842_MODE_SDP)
2458 struct adv7842_state *state = to_state(sd);
2466 if (state->hdmi_edid.present & (0x04 << edid->pad))
2467 data = state->hdmi_edid.edid;
2470 if (state->vga_edid.present)
2471 data = state->vga_edid.edid;
2498 struct adv7842_state *state = to_state(sd);
2513 state->aspect_ratio = v4l2_calc_aspect_ratio(e->edid[0x15],
2518 memset(&state->vga_edid.edid, 0, 256);
2519 state->vga_edid.present = e->blocks ? 0x1 : 0x0;
2520 memcpy(&state->vga_edid.edid, e->edid, 128 * e->blocks);
2525 memset(&state->hdmi_edid.edid, 0, 256);
2527 state->hdmi_edid.present |= 0x04 << e->pad;
2529 state->hdmi_edid.present &= ~(0x04 << e->pad);
2532 memcpy(&state->hdmi_edid.edid, e->edid, 128 * e->blocks);
2671 struct adv7842_state *state = to_state(sd);
2710 state->hdmi_port_a ? "A" : "B");
2719 v4l2_info(sd, "CEC: %s\n", state->cec_enabled_adap ?
2721 if (state->cec_enabled_adap) {
2725 bool is_valid = state->cec_valid_addrs & (1 << i);
2729 state->cec_addr[i]);
2734 if (state->hdmi_port_a) {
2780 &state->timings, true);
2787 rgb_quantization_range_txt[state->rgb_quantization_range]);
2836 struct adv7842_state *state = to_state(sd);
2838 if (state->mode == ADV7842_MODE_SDP)
2845 struct adv7842_state *state = to_state(sd);
2849 if (state->mode != ADV7842_MODE_SDP)
2940 struct adv7842_state *state = to_state(sd);
2941 struct adv7842_platform_data *pdata = &state->pdata;
2945 if (state->mode != ADV7842_MODE_SDP)
2956 state->norm = norm;
2964 struct adv7842_state *state = to_state(sd);
2968 if (state->mode != ADV7842_MODE_SDP)
2971 *norm = state->norm;
2979 struct adv7842_state *state = to_state(sd);
2980 struct adv7842_platform_data *pdata = &state->pdata;
3002 adv7842_setup_format(state);
3179 struct adv7842_state *state = to_state(sd);
3203 /* and re-init chip and state */
3208 select_input(sd, state->vid_std_select);
3216 timings = state->timings;
3218 memset(&state->timings, 0, sizeof(struct v4l2_dv_timings));
3250 struct adv7842_state *state = to_state(sd);
3254 err = cec_register_adapter(state->cec_adap, &client->dev);
3256 cec_delete_adapter(state->cec_adap);
3262 struct adv7842_state *state = to_state(sd);
3264 cec_unregister_adapter(state->cec_adap);
3353 struct adv7842_state *state = to_state(sd);
3354 i2c_unregister_device(state->i2c_avlink);
3355 i2c_unregister_device(state->i2c_cec);
3356 i2c_unregister_device(state->i2c_infoframe);
3357 i2c_unregister_device(state->i2c_sdp_io);
3358 i2c_unregister_device(state->i2c_sdp);
3359 i2c_unregister_device(state->i2c_afe);
3360 i2c_unregister_device(state->i2c_repeater);
3361 i2c_unregister_device(state->i2c_edid);
3362 i2c_unregister_device(state->i2c_hdmi);
3363 i2c_unregister_device(state->i2c_cp);
3364 i2c_unregister_device(state->i2c_vdp);
3366 state->i2c_avlink = NULL;
3367 state->i2c_cec = NULL;
3368 state->i2c_infoframe = NULL;
3369 state->i2c_sdp_io = NULL;
3370 state->i2c_sdp = NULL;
3371 state->i2c_afe = NULL;
3372 state->i2c_repeater = NULL;
3373 state->i2c_edid = NULL;
3374 state->i2c_hdmi = NULL;
3375 state->i2c_cp = NULL;
3376 state->i2c_vdp = NULL;
3404 struct adv7842_state *state = to_state(sd);
3405 struct adv7842_platform_data *pdata = &state->pdata;
3407 state->i2c_avlink = adv7842_dummy_client(sd, "avlink", pdata->i2c_avlink, 0xf3);
3408 state->i2c_cec = adv7842_dummy_client(sd, "cec", pdata->i2c_cec, 0xf4);
3409 state->i2c_infoframe = adv7842_dummy_client(sd, "infoframe", pdata->i2c_infoframe, 0xf5);
3410 state->i2c_sdp_io = adv7842_dummy_client(sd, "sdp_io", pdata->i2c_sdp_io, 0xf2);
3411 state->i2c_sdp = adv7842_dummy_client(sd, "sdp", pdata->i2c_sdp, 0xf1);
3412 state->i2c_afe = adv7842_dummy_client(sd, "afe", pdata->i2c_afe, 0xf8);
3413 state->i2c_repeater = adv7842_dummy_client(sd, "repeater", pdata->i2c_repeater, 0xf9);
3414 state->i2c_edid = adv7842_dummy_client(sd, "edid", pdata->i2c_edid, 0xfa);
3415 state->i2c_hdmi = adv7842_dummy_client(sd, "hdmi", pdata->i2c_hdmi, 0xfb);
3416 state->i2c_cp = adv7842_dummy_client(sd, "cp", pdata->i2c_cp, 0xfd);
3417 state->i2c_vdp = adv7842_dummy_client(sd, "vdp", pdata->i2c_vdp, 0xfe);
3419 if (!state->i2c_avlink ||
3420 !state->i2c_cec ||
3421 !state->i2c_infoframe ||
3422 !state->i2c_sdp_io ||
3423 !state->i2c_sdp ||
3424 !state->i2c_afe ||
3425 !state->i2c_repeater ||
3426 !state->i2c_edid ||
3427 !state->i2c_hdmi ||
3428 !state->i2c_cp ||
3429 !state->i2c_vdp)
3438 struct adv7842_state *state;
3460 state = devm_kzalloc(&client->dev, sizeof(*state), GFP_KERNEL);
3461 if (!state)
3465 state->pdata = *pdata;
3466 state->timings = cea640x480;
3467 state->format = adv7842_format_info(state, MEDIA_BUS_FMT_YUYV8_2X8);
3469 sd = &state->sd;
3473 state->mode = pdata->mode;
3475 state->hdmi_port_a = pdata->input == ADV7842_SELECT_HDMI_PORT_A;
3476 state->restart_stdi_once = true;
3496 hdl = &state->hdl;
3515 state->detect_tx_5v_ctrl = v4l2_ctrl_new_std(hdl, NULL,
3517 state->analog_sampling_phase_ctrl = v4l2_ctrl_new_custom(hdl,
3519 state->free_run_color_ctrl_manual = v4l2_ctrl_new_custom(hdl,
3521 state->free_run_color_ctrl = v4l2_ctrl_new_custom(hdl,
3523 state->rgb_quantization_range_ctrl =
3544 INIT_DELAYED_WORK(&state->delayed_work_enable_hotplug,
3548 state->pad.flags = MEDIA_PAD_FL_SOURCE;
3549 err = media_entity_pads_init(&sd->entity, 1, &state->pad);
3558 state->cec_adap = cec_allocate_adapter(&adv7842_cec_adap_ops,
3559 state, dev_name(&client->dev),
3561 err = PTR_ERR_OR_ZERO(state->cec_adap);
3573 cancel_delayed_work(&state->delayed_work_enable_hotplug);
3586 struct adv7842_state *state = to_state(sd);
3589 cancel_delayed_work_sync(&state->delayed_work_enable_hotplug);