mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-24 09:50:04 +00:00
drm/i915/dvo: Fix panel and DDC i2c pins
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
parent
a8ed0b16a9
commit
f573c66061
1 changed files with 3 additions and 9 deletions
|
@ -81,7 +81,6 @@ struct intel_dvo {
|
||||||
struct intel_encoder base;
|
struct intel_encoder base;
|
||||||
|
|
||||||
struct intel_dvo_device dev;
|
struct intel_dvo_device dev;
|
||||||
int ddc_bus;
|
|
||||||
|
|
||||||
struct drm_display_mode *panel_fixed_mode;
|
struct drm_display_mode *panel_fixed_mode;
|
||||||
bool panel_wants_dither;
|
bool panel_wants_dither;
|
||||||
|
@ -245,7 +244,7 @@ static int intel_dvo_get_modes(struct drm_connector *connector)
|
||||||
* that's not the case.
|
* that's not the case.
|
||||||
*/
|
*/
|
||||||
intel_ddc_get_modes(connector,
|
intel_ddc_get_modes(connector,
|
||||||
&dev_priv->gmbus[intel_dvo->ddc_bus].adapter);
|
&dev_priv->gmbus[GMBUS_PORT_DPC].adapter);
|
||||||
if (!list_empty(&connector->probed_modes))
|
if (!list_empty(&connector->probed_modes))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
|
@ -349,7 +348,6 @@ void intel_dvo_init(struct drm_device *dev)
|
||||||
struct intel_encoder *intel_encoder;
|
struct intel_encoder *intel_encoder;
|
||||||
struct intel_dvo *intel_dvo;
|
struct intel_dvo *intel_dvo;
|
||||||
struct intel_connector *intel_connector;
|
struct intel_connector *intel_connector;
|
||||||
int ret = 0;
|
|
||||||
int i;
|
int i;
|
||||||
int encoder_type = DRM_MODE_ENCODER_NONE;
|
int encoder_type = DRM_MODE_ENCODER_NONE;
|
||||||
|
|
||||||
|
@ -367,9 +365,6 @@ void intel_dvo_init(struct drm_device *dev)
|
||||||
drm_encoder_init(dev, &intel_encoder->base,
|
drm_encoder_init(dev, &intel_encoder->base,
|
||||||
&intel_dvo_enc_funcs, encoder_type);
|
&intel_dvo_enc_funcs, encoder_type);
|
||||||
|
|
||||||
/* Set up the DDC bus */
|
|
||||||
intel_dvo->ddc_bus = GMBUS_PORT_DPB;
|
|
||||||
|
|
||||||
/* Now, try to find a controller */
|
/* Now, try to find a controller */
|
||||||
for (i = 0; i < ARRAY_SIZE(intel_dvo_devices); i++) {
|
for (i = 0; i < ARRAY_SIZE(intel_dvo_devices); i++) {
|
||||||
struct drm_connector *connector = &intel_connector->base;
|
struct drm_connector *connector = &intel_connector->base;
|
||||||
|
@ -384,7 +379,7 @@ void intel_dvo_init(struct drm_device *dev)
|
||||||
if (dvo->gpio != 0)
|
if (dvo->gpio != 0)
|
||||||
gpio = dvo->gpio;
|
gpio = dvo->gpio;
|
||||||
else if (dvo->type == INTEL_DVO_CHIP_LVDS)
|
else if (dvo->type == INTEL_DVO_CHIP_LVDS)
|
||||||
gpio = GMBUS_PORT_PANEL;
|
gpio = GMBUS_PORT_SSC;
|
||||||
else
|
else
|
||||||
gpio = GMBUS_PORT_DPB;
|
gpio = GMBUS_PORT_DPB;
|
||||||
|
|
||||||
|
@ -395,8 +390,7 @@ void intel_dvo_init(struct drm_device *dev)
|
||||||
i2c = &dev_priv->gmbus[gpio].adapter;
|
i2c = &dev_priv->gmbus[gpio].adapter;
|
||||||
|
|
||||||
intel_dvo->dev = *dvo;
|
intel_dvo->dev = *dvo;
|
||||||
ret = dvo->dev_ops->init(&intel_dvo->dev, i2c);
|
if (!dvo->dev_ops->init(&intel_dvo->dev, i2c))
|
||||||
if (!ret)
|
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
intel_encoder->type = INTEL_OUTPUT_DVO;
|
intel_encoder->type = INTEL_OUTPUT_DVO;
|
||||||
|
|
Loading…
Reference in a new issue