static int lspcon_change_mode(struct intel_lspcon *lspcon, enum drm_lspcon_mode mode) { int err; enum drm_lspcon_mode current_mode; struct i2c_adapter *adapter = &lspcon_to_intel_dp(lspcon)->aux.ddc; err = drm_lspcon_get_mode(adapter, ¤t_mode); if (err) { DRM_ERROR("Error reading LSPCON mode\n"); return err; } if (current_mode == mode) { DRM_DEBUG_KMS("Current mode = desired LSPCON mode\n"); return 0; } err = drm_lspcon_set_mode(adapter, mode); if (err < 0) { DRM_ERROR("LSPCON mode change failed\n"); return err; } lspcon->mode = mode; DRM_DEBUG_KMS("LSPCON mode changed done\n"); return 0; }
static enum drm_lspcon_mode lspcon_get_current_mode(struct intel_lspcon *lspcon) { enum drm_lspcon_mode current_mode; struct i2c_adapter *adapter = &lspcon_to_intel_dp(lspcon)->aux.ddc; if (drm_lspcon_get_mode(adapter, ¤t_mode)) { DRM_ERROR("Error reading LSPCON mode\n"); return DRM_LSPCON_MODE_INVALID; } return current_mode; }
static enum drm_lspcon_mode lspcon_get_current_mode(struct intel_lspcon *lspcon) { enum drm_lspcon_mode current_mode = DRM_LSPCON_MODE_INVALID; struct i2c_adapter *adapter = &lspcon_to_intel_dp(lspcon)->aux.ddc; if (drm_lspcon_get_mode(adapter, ¤t_mode)) DRM_ERROR("Error reading LSPCON mode\n"); else DRM_DEBUG_KMS("Current LSPCON mode %s\n", current_mode == DRM_LSPCON_MODE_PCON ? "PCON" : "LS"); return current_mode; }