Lines Matching refs:state

227 	struct adv7511_state *state = get_adv7511_state(sd);  in adv7511_edid_rd()  local
234 err = adv_smbus_read_i2c_block_data(state->i2c_edid, i, in adv7511_edid_rd()
314 struct adv7511_state *state = get_adv7511_state(sd); in adv7511_set_IT_content_AVI_InfoFrame() local
315 if (state->dv_timings.bt.flags & V4L2_DV_FL_IS_CE_VIDEO) { in adv7511_set_IT_content_AVI_InfoFrame()
332 struct adv7511_state *state = get_adv7511_state(sd); in adv7511_set_rgb_quantization_mode() local
334 if (state->dv_timings.bt.flags & V4L2_DV_FL_IS_CE_VIDEO) { in adv7511_set_rgb_quantization_mode()
360 struct adv7511_state *state = get_adv7511_state(sd); in adv7511_s_ctrl() local
364 if (state->hdmi_mode_ctrl == ctrl) { in adv7511_s_ctrl()
369 if (state->rgb_quantization_range_ctrl == ctrl) in adv7511_s_ctrl()
419 struct adv7511_state *state = get_adv7511_state(sd); in adv7511_log_status() local
420 struct adv7511_state_edid *edid = &state->edid; in adv7511_log_status()
444 v4l2_info(sd, "power %s\n", state->power_on ? "on" : "off"); in adv7511_log_status()
457 errors[adv7511_rd(sd, 0xc8) >> 4], state->edid_detect_counter, in adv7511_log_status()
483 if (state->dv_timings.type == V4L2_DV_BT_656_1120) in adv7511_log_status()
485 &state->dv_timings, false); in adv7511_log_status()
488 v4l2_info(sd, "i2c edid addr: 0x%x\n", state->i2c_edid_addr); in adv7511_log_status()
489 v4l2_info(sd, "i2c cec addr: 0x%x\n", state->i2c_cec_addr); in adv7511_log_status()
496 struct adv7511_state *state = get_adv7511_state(sd); in adv7511_s_power() local
502 state->power_on = on; in adv7511_s_power()
538 adv7511_wr(sd, 0x43, state->i2c_edid_addr); in adv7511_s_power()
620 struct adv7511_state *state = get_adv7511_state(sd); in adv7511_s_stream() local
628 state->have_monitor = false; in adv7511_s_stream()
636 struct adv7511_state *state = get_adv7511_state(sd); in adv7511_s_dv_timings() local
651 state->dv_timings = *timings; in adv7511_s_dv_timings()
654 adv7511_set_rgb_quantization_mode(sd, state->rgb_quantization_range_ctrl); in adv7511_s_dv_timings()
665 struct adv7511_state *state = get_adv7511_state(sd); in adv7511_g_dv_timings() local
672 *timings = state->dv_timings; in adv7511_g_dv_timings()
785 struct adv7511_state *state = get_adv7511_state(sd); in adv7511_get_edid() local
793 edid->blocks = state->edid.segments * 2; in adv7511_get_edid()
797 if (state->edid.segments == 0) in adv7511_get_edid()
800 if (edid->start_block >= state->edid.segments * 2) in adv7511_get_edid()
803 if (edid->start_block + edid->blocks > state->edid.segments * 2) in adv7511_get_edid()
804 edid->blocks = state->edid.segments * 2 - edid->start_block; in adv7511_get_edid()
806 memcpy(edid->edid, &state->edid.data[edid->start_block * 128], in adv7511_get_edid()
835 static void adv7511_fill_format(struct adv7511_state *state, in adv7511_fill_format() argument
840 format->width = state->dv_timings.bt.width; in adv7511_fill_format()
841 format->height = state->dv_timings.bt.height; in adv7511_fill_format()
849 struct adv7511_state *state = get_adv7511_state(sd); in adv7511_get_fmt() local
854 adv7511_fill_format(state, &format->format); in adv7511_get_fmt()
865 format->format.code = state->fmt_code; in adv7511_get_fmt()
866 format->format.colorspace = state->colorspace; in adv7511_get_fmt()
867 format->format.ycbcr_enc = state->ycbcr_enc; in adv7511_get_fmt()
868 format->format.quantization = state->quantization; in adv7511_get_fmt()
878 struct adv7511_state *state = get_adv7511_state(sd); in adv7511_set_fmt() local
906 adv7511_fill_format(state, &format->format); in adv7511_set_fmt()
935 state->fmt_code = format->format.code; in adv7511_set_fmt()
936 state->colorspace = format->format.colorspace; in adv7511_set_fmt()
937 state->ycbcr_enc = format->format.ycbcr_enc; in adv7511_set_fmt()
938 state->quantization = format->format.quantization; in adv7511_set_fmt()
1053 struct adv7511_state *state = get_adv7511_state(sd); in adv7511_notify_no_edid() local
1060 v4l2_ctrl_s_ctrl(state->have_edid0_ctrl, 0x0); in adv7511_notify_no_edid()
1066 struct adv7511_state *state = container_of(dwork, struct adv7511_state, edid_handler); in adv7511_edid_handler() local
1067 struct v4l2_subdev *sd = &state->sd; in adv7511_edid_handler()
1080 if (state->edid.read_retries) { in adv7511_edid_handler()
1081 state->edid.read_retries--; in adv7511_edid_handler()
1083 state->have_monitor = false; in adv7511_edid_handler()
1086 queue_delayed_work(state->work_queue, &state->edid_handler, EDID_DELAY); in adv7511_edid_handler()
1108 struct adv7511_state *state = get_adv7511_state(sd); in adv7511_setup() local
1136 v4l2_ctrl_handler_setup(&state->hdl); in adv7511_setup()
1142 struct adv7511_state *state = get_adv7511_state(sd); in adv7511_notify_monitor_detect() local
1144 mdt.present = state->have_monitor; in adv7511_notify_monitor_detect()
1150 struct adv7511_state *state = get_adv7511_state(sd); in adv7511_check_monitor_present_status() local
1161 v4l2_ctrl_s_ctrl(state->hotplug_ctrl, adv7511_have_hotplug(sd) ? 0x1 : 0x0); in adv7511_check_monitor_present_status()
1162 v4l2_ctrl_s_ctrl(state->rx_sense_ctrl, adv7511_have_rx_sense(sd) ? 0x1 : 0x0); in adv7511_check_monitor_present_status()
1164 …if ((status & MASK_ADV7511_HPD_DETECT) && ((status & MASK_ADV7511_MSEN_DETECT) || state->edid.segm… in adv7511_check_monitor_present_status()
1166 if (!state->have_monitor) { in adv7511_check_monitor_present_status()
1168 state->have_monitor = true; in adv7511_check_monitor_present_status()
1176 state->edid.read_retries = EDID_MAX_RETRIES; in adv7511_check_monitor_present_status()
1177 queue_delayed_work(state->work_queue, &state->edid_handler, EDID_DELAY); in adv7511_check_monitor_present_status()
1181 state->edid.read_retries = EDID_MAX_RETRIES; in adv7511_check_monitor_present_status()
1182 queue_delayed_work(state->work_queue, &state->edid_handler, EDID_DELAY); in adv7511_check_monitor_present_status()
1185 if (state->have_monitor) { in adv7511_check_monitor_present_status()
1187 state->have_monitor = false; in adv7511_check_monitor_present_status()
1191 memset(&state->edid, 0, sizeof(struct adv7511_state_edid)); in adv7511_check_monitor_present_status()
1208 struct adv7511_state *state = get_adv7511_state(sd); in edid_verify_crc() local
1209 u32 blocks = state->edid.blocks; in edid_verify_crc()
1210 uint8_t *data = state->edid.data; in edid_verify_crc()
1224 struct adv7511_state *state = get_adv7511_state(sd); in edid_verify_header() local
1225 u8 *data = state->edid.data; in edid_verify_header()
1234 struct adv7511_state *state = get_adv7511_state(sd); in adv7511_check_edid_status() local
1238 __func__, EDID_MAX_RETRIES - state->edid.read_retries); in adv7511_check_edid_status()
1240 if (state->edid.complete) in adv7511_check_edid_status()
1252 adv7511_edid_rd(sd, 256, &state->edid.data[segment * 256]); in adv7511_check_edid_status()
1253 adv7511_dbg_dump_edid(2, debug, sd, segment, &state->edid.data[segment * 256]); in adv7511_check_edid_status()
1255 state->edid.blocks = state->edid.data[0x7e] + 1; in adv7511_check_edid_status()
1256 v4l2_dbg(1, debug, sd, "%s: %d blocks in total\n", __func__, state->edid.blocks); in adv7511_check_edid_status()
1262 state->have_monitor = false; in adv7511_check_edid_status()
1268 state->edid.segments = segment + 1; in adv7511_check_edid_status()
1269 v4l2_ctrl_s_ctrl(state->have_edid0_ctrl, 0x1); in adv7511_check_edid_status()
1270 if (((state->edid.data[0x7e] >> 1) + 1) > state->edid.segments) { in adv7511_check_edid_status()
1272 v4l2_dbg(1, debug, sd, "%s: request segment %d\n", __func__, state->edid.segments); in adv7511_check_edid_status()
1274 adv7511_wr(sd, 0xc4, state->edid.segments); in adv7511_check_edid_status()
1275 state->edid.read_retries = EDID_MAX_RETRIES; in adv7511_check_edid_status()
1276 queue_delayed_work(state->work_queue, &state->edid_handler, EDID_DELAY); in adv7511_check_edid_status()
1280 v4l2_dbg(1, debug, sd, "%s: edid complete with %d segment(s)\n", __func__, state->edid.segments); in adv7511_check_edid_status()
1281 state->edid.complete = true; in adv7511_check_edid_status()
1288 state->edid_detect_counter++; in adv7511_check_edid_status()
1300 struct adv7511_state *state = get_adv7511_state(sd); in adv7511_init_setup() local
1301 struct adv7511_state_edid *edid = &state->edid; in adv7511_init_setup()
1314 state->have_monitor = false; in adv7511_init_setup()
1322 struct adv7511_state *state; in adv7511_probe() local
1333 state = devm_kzalloc(&client->dev, sizeof(struct adv7511_state), GFP_KERNEL); in adv7511_probe()
1334 if (!state) in adv7511_probe()
1342 memcpy(&state->pdata, pdata, sizeof(state->pdata)); in adv7511_probe()
1343 state->fmt_code = MEDIA_BUS_FMT_RGB888_1X24; in adv7511_probe()
1344 state->colorspace = V4L2_COLORSPACE_SRGB; in adv7511_probe()
1346 sd = &state->sd; in adv7511_probe()
1353 hdl = &state->hdl; in adv7511_probe()
1356 state->hdmi_mode_ctrl = v4l2_ctrl_new_std_menu(hdl, &adv7511_ctrl_ops, in adv7511_probe()
1359 state->hotplug_ctrl = v4l2_ctrl_new_std(hdl, NULL, in adv7511_probe()
1361 state->rx_sense_ctrl = v4l2_ctrl_new_std(hdl, NULL, in adv7511_probe()
1363 state->have_edid0_ctrl = v4l2_ctrl_new_std(hdl, NULL, in adv7511_probe()
1365 state->rgb_quantization_range_ctrl = in adv7511_probe()
1374 state->hdmi_mode_ctrl->is_private = true; in adv7511_probe()
1375 state->hotplug_ctrl->is_private = true; in adv7511_probe()
1376 state->rx_sense_ctrl->is_private = true; in adv7511_probe()
1377 state->have_edid0_ctrl->is_private = true; in adv7511_probe()
1378 state->rgb_quantization_range_ctrl->is_private = true; in adv7511_probe()
1380 state->pad.flags = MEDIA_PAD_FL_SINK; in adv7511_probe()
1381 err = media_entity_init(&sd->entity, 1, &state->pad, 0); in adv7511_probe()
1386 state->i2c_edid_addr = state->pdata.i2c_edid << 1; in adv7511_probe()
1387 state->i2c_cec_addr = state->pdata.i2c_cec << 1; in adv7511_probe()
1389 state->chip_revision = adv7511_rd(sd, 0x0); in adv7511_probe()
1398 state->i2c_edid = i2c_new_dummy(client->adapter, state->i2c_edid_addr >> 1); in adv7511_probe()
1399 if (state->i2c_edid == NULL) { in adv7511_probe()
1406 state->work_queue = create_singlethread_workqueue(sd->name); in adv7511_probe()
1407 if (state->work_queue == NULL) { in adv7511_probe()
1413 INIT_DELAYED_WORK(&state->edid_handler, adv7511_edid_handler); in adv7511_probe()
1424 i2c_unregister_device(state->i2c_edid); in adv7511_probe()
1428 v4l2_ctrl_handler_free(&state->hdl); in adv7511_probe()
1437 struct adv7511_state *state = get_adv7511_state(sd); in adv7511_remove() local
1439 state->chip_revision = -1; in adv7511_remove()
1445 cancel_delayed_work(&state->edid_handler); in adv7511_remove()
1446 i2c_unregister_device(state->i2c_edid); in adv7511_remove()
1447 destroy_workqueue(state->work_queue); in adv7511_remove()