drivers/gpu/drm/i915/display/intel_sdvo.c
1007
static bool intel_sdvo_write_infoframe(struct intel_sdvo *intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
1011
struct intel_display *display = to_intel_display(&intel_sdvo->base);
drivers/gpu/drm/i915/display/intel_sdvo.c
1016
if (!intel_sdvo_set_value(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
1021
if (!intel_sdvo_get_hbuf_size(intel_sdvo, &hbuf_size))
drivers/gpu/drm/i915/display/intel_sdvo.c
1036
if (!intel_sdvo_set_value(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
1042
return intel_sdvo_set_value(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
1047
static ssize_t intel_sdvo_read_infoframe(struct intel_sdvo *intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
1051
struct intel_display *display = to_intel_display(&intel_sdvo->base);
drivers/gpu/drm/i915/display/intel_sdvo.c
1056
if (!intel_sdvo_get_value(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
1064
if (!intel_sdvo_set_value(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
1069
if (!intel_sdvo_get_value(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
1078
if (!intel_sdvo_get_hbuf_size(intel_sdvo, &hbuf_size))
drivers/gpu/drm/i915/display/intel_sdvo.c
1088
if (!intel_sdvo_write_cmd(intel_sdvo, SDVO_CMD_GET_HBUF_DATA, NULL, 0))
drivers/gpu/drm/i915/display/intel_sdvo.c
1090
if (!intel_sdvo_read_response(intel_sdvo, &data[i],
drivers/gpu/drm/i915/display/intel_sdvo.c
1098
static bool intel_sdvo_compute_avi_infoframe(struct intel_sdvo *intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
1102
struct intel_display *display = to_intel_display(&intel_sdvo->base);
drivers/gpu/drm/i915/display/intel_sdvo.c
1134
static bool intel_sdvo_set_avi_infoframe(struct intel_sdvo *intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
1137
struct intel_display *display = to_intel_display(&intel_sdvo->base);
drivers/gpu/drm/i915/display/intel_sdvo.c
1154
return intel_sdvo_write_infoframe(intel_sdvo, SDVO_HBUF_INDEX_AVI_IF,
drivers/gpu/drm/i915/display/intel_sdvo.c
1159
static void intel_sdvo_get_avi_infoframe(struct intel_sdvo *intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
1162
struct intel_display *display = to_intel_display(&intel_sdvo->base);
drivers/gpu/drm/i915/display/intel_sdvo.c
1171
len = intel_sdvo_read_infoframe(intel_sdvo, SDVO_HBUF_INDEX_AVI_IF,
drivers/gpu/drm/i915/display/intel_sdvo.c
1195
static void intel_sdvo_get_eld(struct intel_sdvo *intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
1198
struct intel_display *display = to_intel_display(&intel_sdvo->base);
drivers/gpu/drm/i915/display/intel_sdvo.c
1205
if (!intel_sdvo_get_value(intel_sdvo, SDVO_CMD_GET_AUDIO_STAT, &val, 1))
drivers/gpu/drm/i915/display/intel_sdvo.c
1211
len = intel_sdvo_read_infoframe(intel_sdvo, SDVO_HBUF_INDEX_ELD,
drivers/gpu/drm/i915/display/intel_sdvo.c
1217
static bool intel_sdvo_set_tv_format(struct intel_sdvo *intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
1228
return intel_sdvo_set_value(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
1234
intel_sdvo_set_output_timings_from_mode(struct intel_sdvo *intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
1240
if (!intel_sdvo_set_target_output(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
1245
if (!intel_sdvo_set_output_timing(intel_sdvo, &output_dtd))
drivers/gpu/drm/i915/display/intel_sdvo.c
1256
intel_sdvo_get_preferred_input_mode(struct intel_sdvo *intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
1264
if (!intel_sdvo_set_target_input(intel_sdvo))
drivers/gpu/drm/i915/display/intel_sdvo.c
1267
if (!intel_sdvo_create_preferred_input_timing(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
1272
if (!intel_sdvo_get_preferred_input_timing(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
1277
intel_sdvo->dtd_sdvo_flags = input_dtd.part2.sdvo_flags;
drivers/gpu/drm/i915/display/intel_sdvo.c
1329
struct intel_sdvo *intel_sdvo = to_sdvo(encoder);
drivers/gpu/drm/i915/display/intel_sdvo.c
1331
if ((intel_sdvo->colorimetry_cap & SDVO_COLORIMETRY_RGB220) == 0)
drivers/gpu/drm/i915/display/intel_sdvo.c
1362
struct intel_sdvo *intel_sdvo = to_sdvo(encoder);
drivers/gpu/drm/i915/display/intel_sdvo.c
1387
if (!intel_sdvo_set_output_timings_from_mode(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
1392
(void) intel_sdvo_get_preferred_input_mode(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
1408
if (!intel_sdvo_set_output_timings_from_mode(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
1413
(void) intel_sdvo_get_preferred_input_mode(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
1452
if (!intel_sdvo_compute_avi_infoframe(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
1464
intel_sdvo_set_value(intel_sdvo, SDVO_CMD_SET_##NAME, &val, sizeof(val)); \
drivers/gpu/drm/i915/display/intel_sdvo.c
1467
static void intel_sdvo_update_props(struct intel_sdvo *intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
1536
struct intel_sdvo *intel_sdvo = to_sdvo(intel_encoder);
drivers/gpu/drm/i915/display/intel_sdvo.c
1542
intel_sdvo_update_props(intel_sdvo, sdvo_state);
drivers/gpu/drm/i915/display/intel_sdvo.c
1554
intel_sdvo_set_value(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
1559
if (!intel_sdvo_set_target_output(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
1572
if (!intel_sdvo_set_output_timing(intel_sdvo, &output_dtd))
drivers/gpu/drm/i915/display/intel_sdvo.c
1575
SDVO_NAME(intel_sdvo));
drivers/gpu/drm/i915/display/intel_sdvo.c
1578
if (!intel_sdvo_set_target_input(intel_sdvo))
drivers/gpu/drm/i915/display/intel_sdvo.c
1582
intel_sdvo_set_encode(intel_sdvo, SDVO_ENCODE_HDMI);
drivers/gpu/drm/i915/display/intel_sdvo.c
1583
intel_sdvo_set_colorimetry(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
1587
intel_sdvo_set_avi_infoframe(intel_sdvo, crtc_state);
drivers/gpu/drm/i915/display/intel_sdvo.c
1588
intel_sdvo_set_pixel_replication(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
1592
intel_sdvo_set_encode(intel_sdvo, SDVO_ENCODE_DVI);
drivers/gpu/drm/i915/display/intel_sdvo.c
1595
!intel_sdvo_set_tv_format(intel_sdvo, conn_state))
drivers/gpu/drm/i915/display/intel_sdvo.c
1601
input_dtd.part2.sdvo_flags = intel_sdvo->dtd_sdvo_flags;
drivers/gpu/drm/i915/display/intel_sdvo.c
1602
if (!intel_sdvo_set_input_timing(intel_sdvo, &input_dtd))
drivers/gpu/drm/i915/display/intel_sdvo.c
1605
SDVO_NAME(intel_sdvo));
drivers/gpu/drm/i915/display/intel_sdvo.c
1616
if (!intel_sdvo_set_clock_rate_mult(intel_sdvo, rate))
drivers/gpu/drm/i915/display/intel_sdvo.c
1627
sdvox = intel_de_read(display, intel_sdvo->sdvo_reg);
drivers/gpu/drm/i915/display/intel_sdvo.c
1628
if (intel_sdvo->base.port == PORT_B)
drivers/gpu/drm/i915/display/intel_sdvo.c
1653
intel_sdvo_write_sdvox(intel_sdvo, sdvox);
drivers/gpu/drm/i915/display/intel_sdvo.c
1660
struct intel_sdvo *intel_sdvo = intel_attached_sdvo(connector);
drivers/gpu/drm/i915/display/intel_sdvo.c
1663
intel_sdvo_get_active_outputs(intel_sdvo, &active_outputs);
drivers/gpu/drm/i915/display/intel_sdvo.c
1690
struct intel_sdvo *intel_sdvo = to_sdvo(encoder);
drivers/gpu/drm/i915/display/intel_sdvo.c
1694
intel_sdvo_get_active_outputs(intel_sdvo, &active_outputs);
drivers/gpu/drm/i915/display/intel_sdvo.c
1696
ret = intel_sdvo_port_enabled(display, intel_sdvo->sdvo_reg, pipe);
drivers/gpu/drm/i915/display/intel_sdvo.c
1705
struct intel_sdvo *intel_sdvo = to_sdvo(encoder);
drivers/gpu/drm/i915/display/intel_sdvo.c
1715
sdvox = intel_de_read(display, intel_sdvo->sdvo_reg);
drivers/gpu/drm/i915/display/intel_sdvo.c
1717
ret = intel_sdvo_get_input_timing(intel_sdvo, &dtd);
drivers/gpu/drm/i915/display/intel_sdvo.c
1760
if (intel_sdvo_get_value(intel_sdvo, SDVO_CMD_GET_CLOCK_RATE_MULT,
drivers/gpu/drm/i915/display/intel_sdvo.c
1780
if (intel_sdvo_get_value(intel_sdvo, SDVO_CMD_GET_COLORIMETRY,
drivers/gpu/drm/i915/display/intel_sdvo.c
1786
if (intel_sdvo_get_value(intel_sdvo, SDVO_CMD_GET_AUDIO_STAT,
drivers/gpu/drm/i915/display/intel_sdvo.c
1792
if (intel_sdvo_get_value(intel_sdvo, SDVO_CMD_GET_ENCODE,
drivers/gpu/drm/i915/display/intel_sdvo.c
1798
intel_sdvo_get_avi_infoframe(intel_sdvo, pipe_config);
drivers/gpu/drm/i915/display/intel_sdvo.c
180
static struct intel_sdvo *to_sdvo(struct intel_encoder *encoder)
drivers/gpu/drm/i915/display/intel_sdvo.c
1800
intel_sdvo_get_eld(intel_sdvo, pipe_config);
drivers/gpu/drm/i915/display/intel_sdvo.c
1807
struct intel_sdvo *intel_sdvo = to_sdvo(encoder);
drivers/gpu/drm/i915/display/intel_sdvo.c
1812
intel_sdvo_set_audio_state(intel_sdvo, 0);
drivers/gpu/drm/i915/display/intel_sdvo.c
1819
struct intel_sdvo *intel_sdvo = to_sdvo(encoder);
drivers/gpu/drm/i915/display/intel_sdvo.c
182
return container_of(encoder, struct intel_sdvo, base);
drivers/gpu/drm/i915/display/intel_sdvo.c
1825
intel_sdvo_set_audio_state(intel_sdvo, 0);
drivers/gpu/drm/i915/display/intel_sdvo.c
1827
intel_sdvo_write_infoframe(intel_sdvo, SDVO_HBUF_INDEX_ELD,
drivers/gpu/drm/i915/display/intel_sdvo.c
1831
intel_sdvo_set_audio_state(intel_sdvo, SDVO_AUDIO_ELD_VALID |
drivers/gpu/drm/i915/display/intel_sdvo.c
1841
struct intel_sdvo *intel_sdvo = to_sdvo(encoder);
drivers/gpu/drm/i915/display/intel_sdvo.c
1845
intel_sdvo_set_active_outputs(intel_sdvo, 0);
drivers/gpu/drm/i915/display/intel_sdvo.c
1847
intel_sdvo_set_encoder_power_state(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
185
static struct intel_sdvo *intel_attached_sdvo(struct intel_connector *connector)
drivers/gpu/drm/i915/display/intel_sdvo.c
1850
temp = intel_de_read(display, intel_sdvo->sdvo_reg);
drivers/gpu/drm/i915/display/intel_sdvo.c
1853
intel_sdvo_write_sdvox(intel_sdvo, temp);
drivers/gpu/drm/i915/display/intel_sdvo.c
1870
intel_sdvo_write_sdvox(intel_sdvo, temp);
drivers/gpu/drm/i915/display/intel_sdvo.c
1873
intel_sdvo_write_sdvox(intel_sdvo, temp);
drivers/gpu/drm/i915/display/intel_sdvo.c
1902
struct intel_sdvo *intel_sdvo = to_sdvo(encoder);
drivers/gpu/drm/i915/display/intel_sdvo.c
1911
temp = intel_de_read(display, intel_sdvo->sdvo_reg);
drivers/gpu/drm/i915/display/intel_sdvo.c
1913
intel_sdvo_write_sdvox(intel_sdvo, temp);
drivers/gpu/drm/i915/display/intel_sdvo.c
1918
success = intel_sdvo_get_trained_inputs(intel_sdvo, &input1, &input2);
drivers/gpu/drm/i915/display/intel_sdvo.c
1928
SDVO_NAME(intel_sdvo));
drivers/gpu/drm/i915/display/intel_sdvo.c
1932
intel_sdvo_set_encoder_power_state(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
1934
intel_sdvo_set_active_outputs(intel_sdvo, intel_sdvo_connector->output_flag);
drivers/gpu/drm/i915/display/intel_sdvo.c
1942
struct intel_sdvo *intel_sdvo = intel_attached_sdvo(to_intel_connector(connector));
drivers/gpu/drm/i915/display/intel_sdvo.c
1963
if (intel_sdvo->pixel_clock_min > clock)
drivers/gpu/drm/i915/display/intel_sdvo.c
1966
if (intel_sdvo->pixel_clock_max < clock)
drivers/gpu/drm/i915/display/intel_sdvo.c
1984
static bool intel_sdvo_get_capabilities(struct intel_sdvo *intel_sdvo, struct intel_sdvo_caps *caps)
drivers/gpu/drm/i915/display/intel_sdvo.c
1986
struct intel_display *display = to_intel_display(&intel_sdvo->base);
drivers/gpu/drm/i915/display/intel_sdvo.c
1989
if (!intel_sdvo_get_value(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
200
intel_sdvo_output_setup(struct intel_sdvo *intel_sdvo);
drivers/gpu/drm/i915/display/intel_sdvo.c
202
intel_sdvo_tv_create_property(struct intel_sdvo *intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
2023
static u8 intel_sdvo_get_colorimetry_cap(struct intel_sdvo *intel_sdvo)
drivers/gpu/drm/i915/display/intel_sdvo.c
2027
if (!intel_sdvo_get_value(intel_sdvo, SDVO_CMD_GET_COLORIMETRY_CAP,
drivers/gpu/drm/i915/display/intel_sdvo.c
2034
static u16 intel_sdvo_get_hotplug_support(struct intel_sdvo *intel_sdvo)
drivers/gpu/drm/i915/display/intel_sdvo.c
2036
struct intel_display *display = to_intel_display(&intel_sdvo->base);
drivers/gpu/drm/i915/display/intel_sdvo.c
2049
if (!intel_sdvo_get_value(intel_sdvo, SDVO_CMD_GET_HOT_PLUG_SUPPORT,
drivers/gpu/drm/i915/display/intel_sdvo.c
2058
struct intel_sdvo *intel_sdvo = to_sdvo(encoder);
drivers/gpu/drm/i915/display/intel_sdvo.c
206
intel_sdvo_create_enhance_property(struct intel_sdvo *intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
2060
if (!intel_sdvo_write_cmd(intel_sdvo, SDVO_CMD_SET_ACTIVE_HOT_PLUG,
drivers/gpu/drm/i915/display/intel_sdvo.c
2061
&intel_sdvo->hotplug_active, 2))
drivers/gpu/drm/i915/display/intel_sdvo.c
2062
drm_warn(intel_sdvo->base.base.dev,
drivers/gpu/drm/i915/display/intel_sdvo.c
214
static void intel_sdvo_write_sdvox(struct intel_sdvo *intel_sdvo, u32 val)
drivers/gpu/drm/i915/display/intel_sdvo.c
2145
struct intel_sdvo *intel_sdvo = intel_attached_sdvo(to_intel_connector(connector));
drivers/gpu/drm/i915/display/intel_sdvo.c
2159
if (!intel_sdvo_set_target_output(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
216
struct intel_display *display = to_intel_display(&intel_sdvo->base);
drivers/gpu/drm/i915/display/intel_sdvo.c
2163
if (!intel_sdvo_get_value(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
221
intel_de_write(display, intel_sdvo->sdvo_reg, val);
drivers/gpu/drm/i915/display/intel_sdvo.c
222
intel_de_posting_read(display, intel_sdvo->sdvo_reg);
drivers/gpu/drm/i915/display/intel_sdvo.c
228
intel_de_write(display, intel_sdvo->sdvo_reg, val);
drivers/gpu/drm/i915/display/intel_sdvo.c
229
intel_de_posting_read(display, intel_sdvo->sdvo_reg);
drivers/gpu/drm/i915/display/intel_sdvo.c
2306
struct intel_sdvo *intel_sdvo = intel_attached_sdvo(to_intel_connector(connector));
drivers/gpu/drm/i915/display/intel_sdvo.c
2329
if (!intel_sdvo_set_target_output(intel_sdvo, intel_sdvo_connector->output_flag))
drivers/gpu/drm/i915/display/intel_sdvo.c
2333
if (!intel_sdvo_write_cmd(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
2337
if (!intel_sdvo_read_response(intel_sdvo, &reply, 3))
drivers/gpu/drm/i915/display/intel_sdvo.c
234
if (intel_sdvo->base.port == PORT_B)
drivers/gpu/drm/i915/display/intel_sdvo.c
253
static bool intel_sdvo_read_byte(struct intel_sdvo *intel_sdvo, u8 addr, u8 *ch)
drivers/gpu/drm/i915/display/intel_sdvo.c
255
struct intel_display *display = to_intel_display(&intel_sdvo->base);
drivers/gpu/drm/i915/display/intel_sdvo.c
2553
struct intel_sdvo *sdvo = to_sdvo(encoder);
drivers/gpu/drm/i915/display/intel_sdvo.c
2570
intel_sdvo_guess_ddc_bus(struct intel_sdvo *sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
258
.addr = intel_sdvo->target_addr,
drivers/gpu/drm/i915/display/intel_sdvo.c
2620
intel_sdvo_select_ddc_bus(struct intel_sdvo *sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
264
.addr = intel_sdvo->target_addr,
drivers/gpu/drm/i915/display/intel_sdvo.c
2644
intel_sdvo_select_i2c_bus(struct intel_sdvo *sdvo)
drivers/gpu/drm/i915/display/intel_sdvo.c
2677
intel_sdvo_unselect_i2c_bus(struct intel_sdvo *sdvo)
drivers/gpu/drm/i915/display/intel_sdvo.c
2683
intel_sdvo_is_hdmi_connector(struct intel_sdvo *intel_sdvo)
drivers/gpu/drm/i915/display/intel_sdvo.c
2685
return intel_sdvo_check_supp_encode(intel_sdvo);
drivers/gpu/drm/i915/display/intel_sdvo.c
2689
intel_sdvo_get_target_addr(struct intel_sdvo *sdvo)
drivers/gpu/drm/i915/display/intel_sdvo.c
272
if ((ret = i2c_transfer(intel_sdvo->i2c, msgs, 2)) == 2)
drivers/gpu/drm/i915/display/intel_sdvo.c
2729
struct intel_sdvo *sdvo, int bit);
drivers/gpu/drm/i915/display/intel_sdvo.c
2733
struct intel_sdvo *encoder)
drivers/gpu/drm/i915/display/intel_sdvo.c
2768
intel_sdvo_add_hdmi_properties(struct intel_sdvo *intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
2772
if (intel_sdvo->colorimetry_cap & SDVO_COLORIMETRY_RGB220)
drivers/gpu/drm/i915/display/intel_sdvo.c
2801
intel_sdvo_dvi_init(struct intel_sdvo *intel_sdvo, u16 type)
drivers/gpu/drm/i915/display/intel_sdvo.c
2803
struct intel_display *display = to_intel_display(&intel_sdvo->base);
drivers/gpu/drm/i915/display/intel_sdvo.c
2804
struct drm_encoder *encoder = &intel_sdvo->base.base;
drivers/gpu/drm/i915/display/intel_sdvo.c
2820
if (intel_sdvo_get_hotplug_support(intel_sdvo) &
drivers/gpu/drm/i915/display/intel_sdvo.c
2822
intel_sdvo->hotplug_active |= intel_sdvo_connector->output_flag;
drivers/gpu/drm/i915/display/intel_sdvo.c
2837
if (intel_sdvo_is_hdmi_connector(intel_sdvo)) {
drivers/gpu/drm/i915/display/intel_sdvo.c
2842
if (intel_sdvo_connector_init(intel_sdvo_connector, intel_sdvo) < 0) {
drivers/gpu/drm/i915/display/intel_sdvo.c
2848
intel_sdvo_add_hdmi_properties(intel_sdvo, intel_sdvo_connector);
drivers/gpu/drm/i915/display/intel_sdvo.c
2854
intel_sdvo_tv_init(struct intel_sdvo *intel_sdvo, u16 type)
drivers/gpu/drm/i915/display/intel_sdvo.c
2856
struct intel_display *display = to_intel_display(&intel_sdvo->base);
drivers/gpu/drm/i915/display/intel_sdvo.c
2857
struct drm_encoder *encoder = &intel_sdvo->base.base;
drivers/gpu/drm/i915/display/intel_sdvo.c
2875
if (intel_sdvo_connector_init(intel_sdvo_connector, intel_sdvo) < 0) {
drivers/gpu/drm/i915/display/intel_sdvo.c
2880
if (!intel_sdvo_tv_create_property(intel_sdvo, intel_sdvo_connector, type))
drivers/gpu/drm/i915/display/intel_sdvo.c
2883
if (!intel_sdvo_create_enhance_property(intel_sdvo, intel_sdvo_connector))
drivers/gpu/drm/i915/display/intel_sdvo.c
2894
intel_sdvo_analog_init(struct intel_sdvo *intel_sdvo, u16 type)
drivers/gpu/drm/i915/display/intel_sdvo.c
2896
struct intel_display *display = to_intel_display(&intel_sdvo->base);
drivers/gpu/drm/i915/display/intel_sdvo.c
2897
struct drm_encoder *encoder = &intel_sdvo->base.base;
drivers/gpu/drm/i915/display/intel_sdvo.c
2917
if (intel_sdvo_connector_init(intel_sdvo_connector, intel_sdvo) < 0) {
drivers/gpu/drm/i915/display/intel_sdvo.c
2926
intel_sdvo_lvds_init(struct intel_sdvo *intel_sdvo, u16 type)
drivers/gpu/drm/i915/display/intel_sdvo.c
2928
struct intel_display *display = to_intel_display(&intel_sdvo->base);
drivers/gpu/drm/i915/display/intel_sdvo.c
2929
struct drm_encoder *encoder = &intel_sdvo->base.base;
drivers/gpu/drm/i915/display/intel_sdvo.c
2947
if (intel_sdvo_connector_init(intel_sdvo_connector, intel_sdvo) < 0) {
drivers/gpu/drm/i915/display/intel_sdvo.c
2952
if (!intel_sdvo_create_enhance_property(intel_sdvo, intel_sdvo_connector))
drivers/gpu/drm/i915/display/intel_sdvo.c
3001
static bool intel_sdvo_output_init(struct intel_sdvo *sdvo, u16 type)
drivers/gpu/drm/i915/display/intel_sdvo.c
3016
intel_sdvo_output_setup(struct intel_sdvo *intel_sdvo)
drivers/gpu/drm/i915/display/intel_sdvo.c
3018
struct intel_display *display = to_intel_display(&intel_sdvo->base);
drivers/gpu/drm/i915/display/intel_sdvo.c
3034
flags = intel_sdvo_filter_output_flags(intel_sdvo->caps.output_flags);
drivers/gpu/drm/i915/display/intel_sdvo.c
3039
SDVO_NAME(intel_sdvo), intel_sdvo->caps.output_flags);
drivers/gpu/drm/i915/display/intel_sdvo.c
3049
if (!intel_sdvo_output_init(intel_sdvo, type))
drivers/gpu/drm/i915/display/intel_sdvo.c
3053
intel_sdvo->base.pipe_mask = ~0;
drivers/gpu/drm/i915/display/intel_sdvo.c
3058
static void intel_sdvo_output_cleanup(struct intel_sdvo *intel_sdvo)
drivers/gpu/drm/i915/display/intel_sdvo.c
3060
struct intel_display *display = to_intel_display(&intel_sdvo->base);
drivers/gpu/drm/i915/display/intel_sdvo.c
3065
if (intel_attached_encoder(to_intel_connector(connector)) == &intel_sdvo->base) {
drivers/gpu/drm/i915/display/intel_sdvo.c
3072
static bool intel_sdvo_tv_create_property(struct intel_sdvo *intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
3076
struct intel_display *display = to_intel_display(&intel_sdvo->base);
drivers/gpu/drm/i915/display/intel_sdvo.c
3080
if (!intel_sdvo_set_target_output(intel_sdvo, type))
drivers/gpu/drm/i915/display/intel_sdvo.c
3084
if (!intel_sdvo_get_value(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
3119
if (!intel_sdvo_get_value(intel_sdvo, SDVO_CMD_GET_MAX_##NAME, &data_value, 4) || \
drivers/gpu/drm/i915/display/intel_sdvo.c
3120
!intel_sdvo_get_value(intel_sdvo, SDVO_CMD_GET_##NAME, &response, 2)) \
drivers/gpu/drm/i915/display/intel_sdvo.c
3136
intel_sdvo_create_enhance_property_tv(struct intel_sdvo *intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
3140
struct intel_display *display = to_intel_display(&intel_sdvo->base);
drivers/gpu/drm/i915/display/intel_sdvo.c
3149
if (!intel_sdvo_get_value(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
3154
if (!intel_sdvo_get_value(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
3182
if (!intel_sdvo_get_value(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
3187
if (!intel_sdvo_get_value(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
3230
if (!intel_sdvo_get_value(intel_sdvo, SDVO_CMD_GET_DOT_CRAWL, &response, 2))
drivers/gpu/drm/i915/display/intel_sdvo.c
3248
intel_sdvo_create_enhance_property_lvds(struct intel_sdvo *intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
3252
struct intel_display *display = to_intel_display(&intel_sdvo->base);
drivers/gpu/drm/i915/display/intel_sdvo.c
3263
static bool intel_sdvo_create_enhance_property(struct intel_sdvo *intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
3266
struct intel_display *display = to_intel_display(&intel_sdvo->base);
drivers/gpu/drm/i915/display/intel_sdvo.c
3274
if (!intel_sdvo_get_value(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
3283
return intel_sdvo_create_enhance_property_tv(intel_sdvo, intel_sdvo_connector, enhancements.reply);
drivers/gpu/drm/i915/display/intel_sdvo.c
3285
return intel_sdvo_create_enhance_property_lvds(intel_sdvo, intel_sdvo_connector, enhancements.reply);
drivers/gpu/drm/i915/display/intel_sdvo.c
3295
struct intel_sdvo *sdvo = ddc->sdvo;
drivers/gpu/drm/i915/display/intel_sdvo.c
3306
struct intel_sdvo *sdvo = ddc->sdvo;
drivers/gpu/drm/i915/display/intel_sdvo.c
3320
struct intel_sdvo *sdvo = ddc->sdvo;
drivers/gpu/drm/i915/display/intel_sdvo.c
3329
struct intel_sdvo *sdvo = ddc->sdvo;
drivers/gpu/drm/i915/display/intel_sdvo.c
3338
struct intel_sdvo *sdvo = ddc->sdvo;
drivers/gpu/drm/i915/display/intel_sdvo.c
3351
struct intel_sdvo *sdvo, int ddc_bus)
drivers/gpu/drm/i915/display/intel_sdvo.c
3388
struct intel_sdvo *intel_sdvo;
drivers/gpu/drm/i915/display/intel_sdvo.c
3397
intel_sdvo = kzalloc_obj(*intel_sdvo);
drivers/gpu/drm/i915/display/intel_sdvo.c
3398
if (!intel_sdvo)
drivers/gpu/drm/i915/display/intel_sdvo.c
3402
intel_encoder = &intel_sdvo->base;
drivers/gpu/drm/i915/display/intel_sdvo.c
3411
intel_sdvo->sdvo_reg = sdvo_reg;
drivers/gpu/drm/i915/display/intel_sdvo.c
3412
intel_sdvo->target_addr = intel_sdvo_get_target_addr(intel_sdvo) >> 1;
drivers/gpu/drm/i915/display/intel_sdvo.c
3414
intel_sdvo_select_i2c_bus(intel_sdvo);
drivers/gpu/drm/i915/display/intel_sdvo.c
3420
if (!intel_sdvo_read_byte(intel_sdvo, i, &byte)) {
drivers/gpu/drm/i915/display/intel_sdvo.c
3423
SDVO_NAME(intel_sdvo));
drivers/gpu/drm/i915/display/intel_sdvo.c
3443
if (!intel_sdvo_get_capabilities(intel_sdvo, &intel_sdvo->caps))
drivers/gpu/drm/i915/display/intel_sdvo.c
3446
intel_sdvo->colorimetry_cap =
drivers/gpu/drm/i915/display/intel_sdvo.c
3447
intel_sdvo_get_colorimetry_cap(intel_sdvo);
drivers/gpu/drm/i915/display/intel_sdvo.c
3449
for (i = 0; i < ARRAY_SIZE(intel_sdvo->ddc); i++) {
drivers/gpu/drm/i915/display/intel_sdvo.c
3452
ret = intel_sdvo_init_ddc_proxy(&intel_sdvo->ddc[i],
drivers/gpu/drm/i915/display/intel_sdvo.c
3453
intel_sdvo, i + 1);
drivers/gpu/drm/i915/display/intel_sdvo.c
3458
if (!intel_sdvo_output_setup(intel_sdvo)) {
drivers/gpu/drm/i915/display/intel_sdvo.c
3461
SDVO_NAME(intel_sdvo));
drivers/gpu/drm/i915/display/intel_sdvo.c
3470
if (intel_sdvo->hotplug_active) {
drivers/gpu/drm/i915/display/intel_sdvo.c
3471
if (intel_sdvo->base.port == PORT_B)
drivers/gpu/drm/i915/display/intel_sdvo.c
3485
intel_sdvo->base.cloneable = 0;
drivers/gpu/drm/i915/display/intel_sdvo.c
3488
if (!intel_sdvo_set_target_input(intel_sdvo))
drivers/gpu/drm/i915/display/intel_sdvo.c
3491
if (!intel_sdvo_get_input_pixel_clock_range(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
3492
&intel_sdvo->pixel_clock_min,
drivers/gpu/drm/i915/display/intel_sdvo.c
3493
&intel_sdvo->pixel_clock_max))
drivers/gpu/drm/i915/display/intel_sdvo.c
3500
SDVO_NAME(intel_sdvo),
drivers/gpu/drm/i915/display/intel_sdvo.c
3501
intel_sdvo->caps.vendor_id, intel_sdvo->caps.device_id,
drivers/gpu/drm/i915/display/intel_sdvo.c
3502
intel_sdvo->caps.device_rev_id,
drivers/gpu/drm/i915/display/intel_sdvo.c
3503
intel_sdvo->pixel_clock_min / 1000,
drivers/gpu/drm/i915/display/intel_sdvo.c
3504
intel_sdvo->pixel_clock_max / 1000,
drivers/gpu/drm/i915/display/intel_sdvo.c
3505
intel_sdvo->caps.sdvo_num_inputs,
drivers/gpu/drm/i915/display/intel_sdvo.c
3507
intel_sdvo->caps.output_flags &
drivers/gpu/drm/i915/display/intel_sdvo.c
3511
intel_sdvo->caps.output_flags &
drivers/gpu/drm/i915/display/intel_sdvo.c
3517
intel_sdvo_output_cleanup(intel_sdvo);
drivers/gpu/drm/i915/display/intel_sdvo.c
3519
intel_sdvo_unselect_i2c_bus(intel_sdvo);
drivers/gpu/drm/i915/display/intel_sdvo.c
414
static void intel_sdvo_debug_write(struct intel_sdvo *intel_sdvo, u8 cmd,
drivers/gpu/drm/i915/display/intel_sdvo.c
417
struct intel_display *display = to_intel_display(&intel_sdvo->base);
drivers/gpu/drm/i915/display/intel_sdvo.c
441
drm_dbg_kms(display->drm, "%s: W: %02X %s\n", SDVO_NAME(intel_sdvo),
drivers/gpu/drm/i915/display/intel_sdvo.c
463
static bool __intel_sdvo_write_cmd(struct intel_sdvo *intel_sdvo, u8 cmd,
drivers/gpu/drm/i915/display/intel_sdvo.c
467
struct intel_display *display = to_intel_display(&intel_sdvo->base);
drivers/gpu/drm/i915/display/intel_sdvo.c
483
intel_sdvo_debug_write(intel_sdvo, cmd, args, args_len);
drivers/gpu/drm/i915/display/intel_sdvo.c
486
msgs[i].addr = intel_sdvo->target_addr;
drivers/gpu/drm/i915/display/intel_sdvo.c
493
msgs[i].addr = intel_sdvo->target_addr;
drivers/gpu/drm/i915/display/intel_sdvo.c
502
msgs[i+1].addr = intel_sdvo->target_addr;
drivers/gpu/drm/i915/display/intel_sdvo.c
507
msgs[i+2].addr = intel_sdvo->target_addr;
drivers/gpu/drm/i915/display/intel_sdvo.c
513
ret = i2c_transfer(intel_sdvo->i2c, msgs, i+3);
drivers/gpu/drm/i915/display/intel_sdvo.c
515
ret = __i2c_transfer(intel_sdvo->i2c, msgs, i+3);
drivers/gpu/drm/i915/display/intel_sdvo.c
533
static bool intel_sdvo_write_cmd(struct intel_sdvo *intel_sdvo, u8 cmd,
drivers/gpu/drm/i915/display/intel_sdvo.c
536
return __intel_sdvo_write_cmd(intel_sdvo, cmd, args, args_len, true);
drivers/gpu/drm/i915/display/intel_sdvo.c
539
static bool intel_sdvo_read_response(struct intel_sdvo *intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
542
struct intel_display *display = to_intel_display(&intel_sdvo->base);
drivers/gpu/drm/i915/display/intel_sdvo.c
568
if (!intel_sdvo_read_byte(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
580
if (!intel_sdvo_read_byte(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
600
if (!intel_sdvo_read_byte(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
611
SDVO_NAME(intel_sdvo), buffer);
drivers/gpu/drm/i915/display/intel_sdvo.c
616
SDVO_NAME(intel_sdvo), buffer);
drivers/gpu/drm/i915/display/intel_sdvo.c
630
static bool __intel_sdvo_set_control_bus_switch(struct intel_sdvo *intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
634
return __intel_sdvo_write_cmd(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
639
static bool intel_sdvo_set_value(struct intel_sdvo *intel_sdvo, u8 cmd, const void *data, int len)
drivers/gpu/drm/i915/display/intel_sdvo.c
641
if (!intel_sdvo_write_cmd(intel_sdvo, cmd, data, len))
drivers/gpu/drm/i915/display/intel_sdvo.c
644
return intel_sdvo_read_response(intel_sdvo, NULL, 0);
drivers/gpu/drm/i915/display/intel_sdvo.c
648
intel_sdvo_get_value(struct intel_sdvo *intel_sdvo, u8 cmd, void *value, int len)
drivers/gpu/drm/i915/display/intel_sdvo.c
650
if (!intel_sdvo_write_cmd(intel_sdvo, cmd, NULL, 0))
drivers/gpu/drm/i915/display/intel_sdvo.c
653
return intel_sdvo_read_response(intel_sdvo, value, len);
drivers/gpu/drm/i915/display/intel_sdvo.c
656
static bool intel_sdvo_set_target_input(struct intel_sdvo *intel_sdvo)
drivers/gpu/drm/i915/display/intel_sdvo.c
659
return intel_sdvo_set_value(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
670
static bool intel_sdvo_get_trained_inputs(struct intel_sdvo *intel_sdvo, bool *input_1, bool *input_2)
drivers/gpu/drm/i915/display/intel_sdvo.c
675
if (!intel_sdvo_get_value(intel_sdvo, SDVO_CMD_GET_TRAINED_INPUTS,
drivers/gpu/drm/i915/display/intel_sdvo.c
684
static bool intel_sdvo_set_active_outputs(struct intel_sdvo *intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
687
return intel_sdvo_set_value(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
692
static bool intel_sdvo_get_active_outputs(struct intel_sdvo *intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
695
return intel_sdvo_get_value(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
700
static bool intel_sdvo_set_encoder_power_state(struct intel_sdvo *intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
720
return intel_sdvo_set_value(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
724
static bool intel_sdvo_get_input_pixel_clock_range(struct intel_sdvo *intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
731
if (!intel_sdvo_get_value(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
742
static bool intel_sdvo_set_target_output(struct intel_sdvo *intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
745
return intel_sdvo_set_value(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
750
static bool intel_sdvo_set_timing(struct intel_sdvo *intel_sdvo, u8 cmd,
drivers/gpu/drm/i915/display/intel_sdvo.c
753
return intel_sdvo_set_value(intel_sdvo, cmd, &dtd->part1, sizeof(dtd->part1)) &&
drivers/gpu/drm/i915/display/intel_sdvo.c
754
intel_sdvo_set_value(intel_sdvo, cmd + 1, &dtd->part2, sizeof(dtd->part2));
drivers/gpu/drm/i915/display/intel_sdvo.c
757
static bool intel_sdvo_get_timing(struct intel_sdvo *intel_sdvo, u8 cmd,
drivers/gpu/drm/i915/display/intel_sdvo.c
760
return intel_sdvo_get_value(intel_sdvo, cmd, &dtd->part1, sizeof(dtd->part1)) &&
drivers/gpu/drm/i915/display/intel_sdvo.c
761
intel_sdvo_get_value(intel_sdvo, cmd + 1, &dtd->part2, sizeof(dtd->part2));
drivers/gpu/drm/i915/display/intel_sdvo.c
764
static bool intel_sdvo_set_input_timing(struct intel_sdvo *intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
767
return intel_sdvo_set_timing(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
771
static bool intel_sdvo_set_output_timing(struct intel_sdvo *intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
774
return intel_sdvo_set_timing(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
778
static bool intel_sdvo_get_input_timing(struct intel_sdvo *intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
781
return intel_sdvo_get_timing(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
786
intel_sdvo_create_preferred_input_timing(struct intel_sdvo *intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
807
return intel_sdvo_set_value(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
812
static bool intel_sdvo_get_preferred_input_timing(struct intel_sdvo *intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
817
return intel_sdvo_get_value(intel_sdvo, SDVO_CMD_GET_PREFERRED_INPUT_TIMING_PART1,
drivers/gpu/drm/i915/display/intel_sdvo.c
819
intel_sdvo_get_value(intel_sdvo, SDVO_CMD_GET_PREFERRED_INPUT_TIMING_PART2,
drivers/gpu/drm/i915/display/intel_sdvo.c
823
static bool intel_sdvo_set_clock_rate_mult(struct intel_sdvo *intel_sdvo, u8 val)
drivers/gpu/drm/i915/display/intel_sdvo.c
825
return intel_sdvo_set_value(intel_sdvo, SDVO_CMD_SET_CLOCK_RATE_MULT, &val, 1);
drivers/gpu/drm/i915/display/intel_sdvo.c
87
struct intel_sdvo;
drivers/gpu/drm/i915/display/intel_sdvo.c
91
struct intel_sdvo *sdvo;
drivers/gpu/drm/i915/display/intel_sdvo.c
927
static bool intel_sdvo_check_supp_encode(struct intel_sdvo *intel_sdvo)
drivers/gpu/drm/i915/display/intel_sdvo.c
932
return intel_sdvo_get_value(intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
937
static bool intel_sdvo_set_encode(struct intel_sdvo *intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
940
return intel_sdvo_set_value(intel_sdvo, SDVO_CMD_SET_ENCODE, &mode, 1);
drivers/gpu/drm/i915/display/intel_sdvo.c
943
static bool intel_sdvo_set_colorimetry(struct intel_sdvo *intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
946
return intel_sdvo_set_value(intel_sdvo, SDVO_CMD_SET_COLORIMETRY, &mode, 1);
drivers/gpu/drm/i915/display/intel_sdvo.c
949
static bool intel_sdvo_set_pixel_replication(struct intel_sdvo *intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
952
return intel_sdvo_set_value(intel_sdvo, SDVO_CMD_SET_PIXEL_REPLI,
drivers/gpu/drm/i915/display/intel_sdvo.c
956
static bool intel_sdvo_set_audio_state(struct intel_sdvo *intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
959
return intel_sdvo_set_value(intel_sdvo, SDVO_CMD_SET_AUDIO_STAT,
drivers/gpu/drm/i915/display/intel_sdvo.c
963
static bool intel_sdvo_get_hbuf_size(struct intel_sdvo *intel_sdvo,
drivers/gpu/drm/i915/display/intel_sdvo.c
966
if (!intel_sdvo_get_value(intel_sdvo, SDVO_CMD_GET_HBUF_INFO,
drivers/gpu/drm/i915/display/intel_sdvo.c
978
static void intel_sdvo_dump_hdmi_buf(struct intel_sdvo *intel_sdvo)