diff options
author | Kevin Brace <kevinbrace@gmx.com> | 2017-11-03 21:48:42 -0700 |
---|---|---|
committer | Kevin Brace <kevinbrace@gmx.com> | 2017-11-03 21:48:42 -0700 |
commit | 49817ccdbadb771dbbbad59b4099188f7448c315 (patch) | |
tree | c75dc940f2911700d8a1763a7c35963542b0233d | |
parent | fce635e8b9e04e5e0cf3542bae8320d3ab356b7f (diff) |
drm/openchrome: Replace via_lcd_detect with via_fp_detect
Signed-off-by: Kevin Brace <kevinbrace@gmx.com>
-rw-r--r-- | drivers/gpu/drm/openchrome/via_fp.c | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/drivers/gpu/drm/openchrome/via_fp.c b/drivers/gpu/drm/openchrome/via_fp.c index ca2ba71d8372..f9f553013cd3 100644 --- a/drivers/gpu/drm/openchrome/via_fp.c +++ b/drivers/gpu/drm/openchrome/via_fp.c @@ -918,20 +918,27 @@ const struct drm_encoder_funcs via_lvds_enc_funcs = { .destroy = via_encoder_cleanup, }; -/* detect this connector connect status */ +/* Detect FP presence. */ static enum drm_connector_status -via_lcd_detect(struct drm_connector *connector, bool force) +via_fp_detect(struct drm_connector *connector, bool force) { struct via_connector *con = container_of(connector, struct via_connector, base); + struct via_device *dev_priv = connector->dev->dev_private; enum drm_connector_status ret = connector_status_disconnected; struct i2c_adapter *i2c_bus; struct edid *edid = NULL; + u8 mask; DRM_DEBUG_KMS("Entered %s.\n", __func__); drm_mode_connector_update_edid_property(connector, edid); + if (machine_is_olpc()) { + ret = connector_status_connected; + goto exit; + } + if (con->i2c_bus & VIA_I2C_BUS2) { i2c_bus = via_find_ddc_bus(0x31); } else if (con->i2c_bus & VIA_I2C_BUS3) { @@ -949,19 +956,19 @@ via_lcd_detect(struct drm_connector *connector, bool force) ret = connector_status_connected; } } else { - struct via_device *dev_priv = connector->dev->dev_private; - u8 mask = BIT(1); - - if (connector->dev->pdev->device == PCI_DEVICE_ID_VIA_CLE266) + if (connector->dev->pdev->device == + PCI_DEVICE_ID_VIA_CLE266) { mask = BIT(3); + } else { + mask = BIT(1); + } - if (vga_rcrt(VGABASE, 0x3B) & mask) - ret = connector_status_connected; - - if (machine_is_olpc()) + if (vga_rcrt(VGABASE, 0x3B) & mask) { ret = connector_status_connected; + } } +exit: DRM_DEBUG_KMS("Exiting %s.\n", __func__); return ret; } @@ -1009,7 +1016,7 @@ exit: struct drm_connector_funcs via_lcd_connector_funcs = { .dpms = drm_helper_connector_dpms, - .detect = via_lcd_detect, + .detect = via_fp_detect, .fill_modes = drm_helper_probe_single_connector_modes, .set_property = via_fp_set_property, .destroy = via_connector_destroy, |