mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-26 19:00:25 +00:00
Revert "drm/fbdev: Fallback to non tiled mode if all tiles not present"
This reverts commitf25c7a006c
("drm/fbdev: Fallback to non tiled mode if all tiles not present"). The commit causes flip done timeouts in CI. Below are the sample errors thrown in logs: [IGT] core_getversion: executing [IGT] core_getversion: exiting, ret=0 Setting dangerous option reset - tainting kernel drm:drm_atomic_helper_wait_for_dependencies] ERROR [CRTC:152:pipe B] flip_done timed out drm:drm_atomic_helper_wait_for_dependencies] ERROR [CONNECTOR:299:DP-2] flip_done timed out drm:drm_atomic_helper_wait_for_dependencies] ERROR [PLANE:92:plane 1B] flip_done timed out [drm:drm_atomic_helper_wait_for_flip_done] ERROR [CRTC:152:pipe B] flip_done timed out [drm:drm_atomic_helper_wait_for_dependencies] ERROR [CRTC:152:pipe B] flip_done timed out [drm:drm_atomic_helper_wait_for_dependencies] ERROR [CONNECTOR:299:DP-2] flip_done timed out [drm:drm_atomic_helper_wait_for_dependencies] ERROR [PLANE:92:plane 1B] flip_done timed out [drm:drm_atomic_helper_wait_for_flip_done] ERROR [CRTC:152:pipe B] flip_done timed out Console: switching to colour frame buffer device 480x135 [drm:drm_atomic_helper_wait_for_dependencies] ERROR [CRTC:152:pipe B] flip_done timed out [drm:drm_atomic_helper_wait_for_dependencies] ERROR [CONNECTOR:299:DP-2] flip_done timed out Reverting the change for now to unblock CI execution. Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Cc: Dave Airlie <airlied@redhat.com> Cc: Jani Nikula <jani.nikula@intel.com> Cc: Manasi Navare <manasi.d.navare@intel.com> Signed-off-by: Uma Shankar <uma.shankar@intel.com> Fixes:f25c7a006c
("drm/fbdev: Fallback to non tiled mode if all tiles not present") Closes: https://gitlab.freedesktop.org/drm/intel/issues/6 Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Jani Nikula <jani.nikula@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20191123091840.32382-1-uma.shankar@intel.com
This commit is contained in:
parent
6b7ce2c416
commit
f053c83ad5
1 changed files with 0 additions and 70 deletions
|
@ -114,33 +114,6 @@ drm_client_find_modeset(struct drm_client_dev *client, struct drm_crtc *crtc)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static struct drm_display_mode *
|
||||
drm_connector_get_tiled_mode(struct drm_connector *connector)
|
||||
{
|
||||
struct drm_display_mode *mode;
|
||||
|
||||
list_for_each_entry(mode, &connector->modes, head) {
|
||||
if (mode->hdisplay == connector->tile_h_size &&
|
||||
mode->vdisplay == connector->tile_v_size)
|
||||
return mode;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static struct drm_display_mode *
|
||||
drm_connector_fallback_non_tiled_mode(struct drm_connector *connector)
|
||||
{
|
||||
struct drm_display_mode *mode;
|
||||
|
||||
list_for_each_entry(mode, &connector->modes, head) {
|
||||
if (mode->hdisplay == connector->tile_h_size &&
|
||||
mode->vdisplay == connector->tile_v_size)
|
||||
continue;
|
||||
return mode;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static struct drm_display_mode *
|
||||
drm_connector_has_preferred_mode(struct drm_connector *connector, int width, int height)
|
||||
{
|
||||
|
@ -375,14 +348,8 @@ static bool drm_client_target_preferred(struct drm_connector **connectors,
|
|||
struct drm_connector *connector;
|
||||
u64 conn_configured = 0;
|
||||
int tile_pass = 0;
|
||||
int num_tiled_conns = 0;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < connector_count; i++) {
|
||||
if (connectors[i]->has_tile)
|
||||
num_tiled_conns++;
|
||||
}
|
||||
|
||||
retry:
|
||||
for (i = 0; i < connector_count; i++) {
|
||||
connector = connectors[i];
|
||||
|
@ -432,28 +399,6 @@ static bool drm_client_target_preferred(struct drm_connector **connectors,
|
|||
list_for_each_entry(modes[i], &connector->modes, head)
|
||||
break;
|
||||
}
|
||||
/*
|
||||
* In case of tiled mode if all tiles not present fallback to
|
||||
* first available non tiled mode.
|
||||
* After all tiles are present, try to find the tiled mode
|
||||
* for all and if tiled mode not present due to fbcon size
|
||||
* limitations, use first non tiled mode only for
|
||||
* tile 0,0 and set to no mode for all other tiles.
|
||||
*/
|
||||
if (connector->has_tile) {
|
||||
if (num_tiled_conns <
|
||||
connector->num_h_tile * connector->num_v_tile ||
|
||||
(connector->tile_h_loc == 0 &&
|
||||
connector->tile_v_loc == 0 &&
|
||||
!drm_connector_get_tiled_mode(connector))) {
|
||||
DRM_DEBUG_KMS("Falling back to non tiled mode on Connector %d\n",
|
||||
connector->base.id);
|
||||
modes[i] = drm_connector_fallback_non_tiled_mode(connector);
|
||||
} else {
|
||||
modes[i] = drm_connector_get_tiled_mode(connector);
|
||||
}
|
||||
}
|
||||
|
||||
DRM_DEBUG_KMS("found mode %s\n", modes[i] ? modes[i]->name :
|
||||
"none");
|
||||
conn_configured |= BIT_ULL(i);
|
||||
|
@ -570,7 +515,6 @@ static bool drm_client_firmware_config(struct drm_client_dev *client,
|
|||
bool fallback = true, ret = true;
|
||||
int num_connectors_enabled = 0;
|
||||
int num_connectors_detected = 0;
|
||||
int num_tiled_conns = 0;
|
||||
struct drm_modeset_acquire_ctx ctx;
|
||||
|
||||
if (!drm_drv_uses_atomic_modeset(dev))
|
||||
|
@ -588,10 +532,6 @@ static bool drm_client_firmware_config(struct drm_client_dev *client,
|
|||
memcpy(save_enabled, enabled, count);
|
||||
mask = GENMASK(count - 1, 0);
|
||||
conn_configured = 0;
|
||||
for (i = 0; i < count; i++) {
|
||||
if (connectors[i]->has_tile)
|
||||
num_tiled_conns++;
|
||||
}
|
||||
retry:
|
||||
conn_seq = conn_configured;
|
||||
for (i = 0; i < count; i++) {
|
||||
|
@ -691,16 +631,6 @@ static bool drm_client_firmware_config(struct drm_client_dev *client,
|
|||
connector->name);
|
||||
modes[i] = &connector->state->crtc->mode;
|
||||
}
|
||||
/*
|
||||
* In case of tiled modes, if all tiles are not present
|
||||
* then fallback to a non tiled mode.
|
||||
*/
|
||||
if (connector->has_tile &&
|
||||
num_tiled_conns < connector->num_h_tile * connector->num_v_tile) {
|
||||
DRM_DEBUG_KMS("Falling back to non tiled mode on Connector %d\n",
|
||||
connector->base.id);
|
||||
modes[i] = drm_connector_fallback_non_tiled_mode(connector);
|
||||
}
|
||||
crtcs[i] = new_crtc;
|
||||
|
||||
DRM_DEBUG_KMS("connector %s on [CRTC:%d:%s]: %dx%d%s\n",
|
||||
|
|
Loading…
Reference in a new issue