psb_intel_sdvo_connector
struct psb_intel_sdvo_connector *psb_intel_sdvo_connector = to_psb_intel_sdvo_connector(connector);
if (psb_intel_sdvo_connector->force_audio)
psb_intel_sdvo->has_hdmi_audio = psb_intel_sdvo_connector->force_audio > 0;
struct psb_intel_sdvo_connector *psb_intel_sdvo_connector = to_psb_intel_sdvo_connector(connector);
psb_intel_sdvo_connector->output_flag);
if ((psb_intel_sdvo_connector->output_flag & response) == 0)
else if (IS_TMDS(psb_intel_sdvo_connector))
struct psb_intel_sdvo_connector *psb_intel_sdvo_connector = to_psb_intel_sdvo_connector(connector);
bool connector_is_digital = !!IS_TMDS(psb_intel_sdvo_connector);
struct psb_intel_sdvo_connector *psb_intel_sdvo_connector = to_psb_intel_sdvo_connector(connector);
if (IS_TV(psb_intel_sdvo_connector))
else if (IS_LVDS(psb_intel_sdvo_connector))
struct psb_intel_sdvo_connector *psb_intel_sdvo_connector = to_psb_intel_sdvo_connector(connector);
if (i == psb_intel_sdvo_connector->force_audio)
psb_intel_sdvo_connector->force_audio = i;
if (psb_intel_sdvo_connector->name == property) { \
if (psb_intel_sdvo_connector->cur_##name == temp_value) return 0; \
if (psb_intel_sdvo_connector->max_##name < temp_value) return -EINVAL; \
psb_intel_sdvo_connector->cur_##name = temp_value; \
if (property == psb_intel_sdvo_connector->tv_format) {
psb_intel_sdvo_connector->tv_format_supported[val])
psb_intel_sdvo->tv_format_index = psb_intel_sdvo_connector->tv_format_supported[val];
} else if (IS_TV_OR_LVDS(psb_intel_sdvo_connector)) {
if (psb_intel_sdvo_connector->left == property) {
psb_intel_sdvo_connector->right, val);
if (psb_intel_sdvo_connector->left_margin == temp_value)
psb_intel_sdvo_connector->left_margin = temp_value;
psb_intel_sdvo_connector->right_margin = temp_value;
temp_value = psb_intel_sdvo_connector->max_hscan -
psb_intel_sdvo_connector->left_margin;
} else if (psb_intel_sdvo_connector->right == property) {
psb_intel_sdvo_connector->left, val);
if (psb_intel_sdvo_connector->right_margin == temp_value)
psb_intel_sdvo_connector->left_margin = temp_value;
psb_intel_sdvo_connector->right_margin = temp_value;
temp_value = psb_intel_sdvo_connector->max_hscan -
psb_intel_sdvo_connector->left_margin;
} else if (psb_intel_sdvo_connector->top == property) {
psb_intel_sdvo_connector->bottom, val);
if (psb_intel_sdvo_connector->top_margin == temp_value)
psb_intel_sdvo_connector->top_margin = temp_value;
psb_intel_sdvo_connector->bottom_margin = temp_value;
temp_value = psb_intel_sdvo_connector->max_vscan -
psb_intel_sdvo_connector->top_margin;
} else if (psb_intel_sdvo_connector->bottom == property) {
psb_intel_sdvo_connector->top, val);
if (psb_intel_sdvo_connector->bottom_margin == temp_value)
psb_intel_sdvo_connector->top_margin = temp_value;
psb_intel_sdvo_connector->bottom_margin = temp_value;
temp_value = psb_intel_sdvo_connector->max_vscan -
psb_intel_sdvo_connector->top_margin;
psb_intel_sdvo_connector_init(struct psb_intel_sdvo_connector *connector,
psb_intel_sdvo_add_hdmi_properties(struct psb_intel_sdvo_connector *connector)
struct psb_intel_sdvo_connector *psb_intel_sdvo_connector;
psb_intel_sdvo_connector = kzalloc_obj(struct psb_intel_sdvo_connector);
if (!psb_intel_sdvo_connector)
psb_intel_sdvo_connector->output_flag = SDVO_OUTPUT_TMDS0;
psb_intel_sdvo_connector->output_flag = SDVO_OUTPUT_TMDS1;
intel_connector = &psb_intel_sdvo_connector->base;
psb_intel_sdvo_connector_init(psb_intel_sdvo_connector, psb_intel_sdvo);
psb_intel_sdvo_add_hdmi_properties(psb_intel_sdvo_connector);
struct psb_intel_sdvo_connector *psb_intel_sdvo_connector;
psb_intel_sdvo_connector = kzalloc_obj(struct psb_intel_sdvo_connector);
if (!psb_intel_sdvo_connector)
intel_connector = &psb_intel_sdvo_connector->base;
psb_intel_sdvo_connector->output_flag = type;
psb_intel_sdvo_connector_init(psb_intel_sdvo_connector, psb_intel_sdvo);
if (!psb_intel_sdvo_tv_create_property(psb_intel_sdvo, psb_intel_sdvo_connector, type))
if (!psb_intel_sdvo_create_enhance_property(psb_intel_sdvo, psb_intel_sdvo_connector))
struct psb_intel_sdvo_connector *psb_intel_sdvo_connector;
psb_intel_sdvo_connector = kzalloc_obj(struct psb_intel_sdvo_connector);
if (!psb_intel_sdvo_connector)
intel_connector = &psb_intel_sdvo_connector->base;
psb_intel_sdvo_connector->output_flag = SDVO_OUTPUT_RGB0;
psb_intel_sdvo_connector->output_flag = SDVO_OUTPUT_RGB1;
psb_intel_sdvo_connector_init(psb_intel_sdvo_connector,
struct psb_intel_sdvo_connector *psb_intel_sdvo_connector;
psb_intel_sdvo_connector = kzalloc_obj(struct psb_intel_sdvo_connector);
if (!psb_intel_sdvo_connector)
intel_connector = &psb_intel_sdvo_connector->base;
psb_intel_sdvo_connector->output_flag = SDVO_OUTPUT_LVDS0;
psb_intel_sdvo_connector->output_flag = SDVO_OUTPUT_LVDS1;
psb_intel_sdvo_connector_init(psb_intel_sdvo_connector, psb_intel_sdvo);
if (!psb_intel_sdvo_create_enhance_property(psb_intel_sdvo, psb_intel_sdvo_connector))
static struct psb_intel_sdvo_connector *to_psb_intel_sdvo_connector(struct drm_connector *connector)
return container_of(to_gma_connector(connector), struct psb_intel_sdvo_connector, base);
struct psb_intel_sdvo_connector *psb_intel_sdvo_connector,
psb_intel_sdvo_connector->format_supported_num = 0;
psb_intel_sdvo_connector->tv_format_supported[psb_intel_sdvo_connector->format_supported_num++] = i;
psb_intel_sdvo_connector->tv_format =
struct psb_intel_sdvo_connector *psb_intel_sdvo_connector,
"mode", psb_intel_sdvo_connector->format_supported_num);
if (!psb_intel_sdvo_connector->tv_format)
for (i = 0; i < psb_intel_sdvo_connector->format_supported_num; i++)
psb_intel_sdvo_connector->tv_format,
i, tv_format_names[psb_intel_sdvo_connector->tv_format_supported[i]]);
psb_intel_sdvo->tv_format_index = psb_intel_sdvo_connector->tv_format_supported[0];
drm_object_attach_property(&psb_intel_sdvo_connector->base.base.base,
psb_intel_sdvo_connector->tv_format, 0);
psb_intel_sdvo_connector->max_##name = data_value[0]; \
psb_intel_sdvo_connector->cur_##name = response; \
psb_intel_sdvo_connector->name = \
if (!psb_intel_sdvo_connector->name) return false; \
psb_intel_sdvo_connector->name, \
psb_intel_sdvo_connector->cur_##name); \
struct psb_intel_sdvo_connector *psb_intel_sdvo_connector,
struct psb_intel_sdvo_connector *psb_intel_sdvo_connector);
struct drm_connector *connector = &psb_intel_sdvo_connector->base.base;
psb_intel_sdvo_connector->max_hscan = data_value[0];
psb_intel_sdvo_connector->left_margin = data_value[0] - response;
psb_intel_sdvo_connector->right_margin = psb_intel_sdvo_connector->left_margin;
psb_intel_sdvo_connector->left =
if (!psb_intel_sdvo_connector->left)
psb_intel_sdvo_connector->left,
psb_intel_sdvo_connector->left_margin);
psb_intel_sdvo_connector->right =
if (!psb_intel_sdvo_connector->right)
psb_intel_sdvo_connector->right,
psb_intel_sdvo_connector->right_margin);
psb_intel_sdvo_connector->max_vscan = data_value[0];
psb_intel_sdvo_connector->top_margin = data_value[0] - response;
psb_intel_sdvo_connector->bottom_margin = psb_intel_sdvo_connector->top_margin;
psb_intel_sdvo_connector->top =
if (!psb_intel_sdvo_connector->top)
psb_intel_sdvo_connector->top,
psb_intel_sdvo_connector->top_margin);
psb_intel_sdvo_connector->bottom =
if (!psb_intel_sdvo_connector->bottom)
psb_intel_sdvo_connector->bottom,
psb_intel_sdvo_connector->bottom_margin);
psb_intel_sdvo_connector->max_dot_crawl = 1;
psb_intel_sdvo_connector->cur_dot_crawl = response & 0x1;
psb_intel_sdvo_connector->dot_crawl =
if (!psb_intel_sdvo_connector->dot_crawl)
psb_intel_sdvo_connector->dot_crawl,
psb_intel_sdvo_connector->cur_dot_crawl);
struct psb_intel_sdvo_connector *psb_intel_sdvo_connector,
struct drm_connector *connector = &psb_intel_sdvo_connector->base.base;
struct psb_intel_sdvo_connector *psb_intel_sdvo_connector)
if (IS_TV(psb_intel_sdvo_connector))
return psb_intel_sdvo_create_enhance_property_tv(psb_intel_sdvo, psb_intel_sdvo_connector, enhancements.reply);
else if(IS_LVDS(psb_intel_sdvo_connector))
return psb_intel_sdvo_create_enhance_property_lvds(psb_intel_sdvo, psb_intel_sdvo_connector, enhancements.reply);