From: Jani Nikula <jani.nikula@intel.com>
To: Uma Shankar <uma.shankar@intel.com>,
intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>,
"Peres, Martin" <martin.peres@intel.com>,
Dave Airlie <airlied@redhat.com>
Subject: Re: [PATCH] Revert "drm/fbdev: Fallback to non tiled mode if all tiles not present"
Date: Mon, 25 Nov 2019 17:07:26 +0200 [thread overview]
Message-ID: <8736ecouz5.fsf@intel.com> (raw)
In-Reply-To: <20191123091840.32382-1-uma.shankar@intel.com>
On Sat, 23 Nov 2019, Uma Shankar <uma.shankar@intel.com> wrote:
> This reverts commit f25c7a006cd1c07254780e3406e45cee4842b933.
>
> 2p2c display configuration blows up dmesg when one connector is
> disconnected, causing issues 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>
Pushed to drm-misc-next with Daniel's irc ack. Thanks for the
revert. Back to the drawing board.
I was about to add the Bugzilla: reference, but this being a gitlab
issue instead, I opted for the gitlab Closes: tag:
Closes: https://gitlab.freedesktop.org/drm/intel/issues/6
We should probably align on what we want to use going forward. And do we
want to keep using Bugzilla for bugzilla bugs?
BR,
Jani.
> ---
> drivers/gpu/drm/drm_client_modeset.c | 70 ----------------------------
> 1 file changed, 70 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_client_modeset.c b/drivers/gpu/drm/drm_client_modeset.c
> index f2150a0bac4c..895b73f23079 100644
> --- a/drivers/gpu/drm/drm_client_modeset.c
> +++ b/drivers/gpu/drm/drm_client_modeset.c
> @@ -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",
--
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
WARNING: multiple messages have this Message-ID (diff)
From: Jani Nikula <jani.nikula@intel.com>
To: Uma Shankar <uma.shankar@intel.com>,
intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>,
"Peres, Martin" <martin.peres@intel.com>,
Dave Airlie <airlied@redhat.com>
Subject: Re: [Intel-gfx] [PATCH] Revert "drm/fbdev: Fallback to non tiled mode if all tiles not present"
Date: Mon, 25 Nov 2019 17:07:26 +0200 [thread overview]
Message-ID: <8736ecouz5.fsf@intel.com> (raw)
Message-ID: <20191125150726.3EDZ0bV6oEVaw45befLeVhVpN22oGiplbvaYDPbSnA0@z> (raw)
In-Reply-To: <20191123091840.32382-1-uma.shankar@intel.com>
On Sat, 23 Nov 2019, Uma Shankar <uma.shankar@intel.com> wrote:
> This reverts commit f25c7a006cd1c07254780e3406e45cee4842b933.
>
> 2p2c display configuration blows up dmesg when one connector is
> disconnected, causing issues 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>
Pushed to drm-misc-next with Daniel's irc ack. Thanks for the
revert. Back to the drawing board.
I was about to add the Bugzilla: reference, but this being a gitlab
issue instead, I opted for the gitlab Closes: tag:
Closes: https://gitlab.freedesktop.org/drm/intel/issues/6
We should probably align on what we want to use going forward. And do we
want to keep using Bugzilla for bugzilla bugs?
BR,
Jani.
> ---
> drivers/gpu/drm/drm_client_modeset.c | 70 ----------------------------
> 1 file changed, 70 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_client_modeset.c b/drivers/gpu/drm/drm_client_modeset.c
> index f2150a0bac4c..895b73f23079 100644
> --- a/drivers/gpu/drm/drm_client_modeset.c
> +++ b/drivers/gpu/drm/drm_client_modeset.c
> @@ -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",
--
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2019-11-25 15:07 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-23 9:18 [PATCH] Revert "drm/fbdev: Fallback to non tiled mode if all tiles not present" Uma Shankar
2019-11-23 9:05 ` ✗ Fi.CI.CHECKPATCH: warning for " Patchwork
2019-11-23 9:05 ` [Intel-gfx] " Patchwork
2019-11-23 9:18 ` [Intel-gfx] [PATCH] " Uma Shankar
2019-11-23 9:25 ` ✓ Fi.CI.BAT: success for " Patchwork
2019-11-23 9:25 ` [Intel-gfx] " Patchwork
2019-11-24 8:09 ` ✓ Fi.CI.IGT: " Patchwork
2019-11-24 8:09 ` [Intel-gfx] " Patchwork
2019-11-25 15:07 ` Jani Nikula [this message]
2019-11-25 15:07 ` [Intel-gfx] [PATCH] " Jani Nikula
2019-11-25 21:20 ` Daniel Vetter
2019-11-25 21:20 ` [Intel-gfx] " Daniel Vetter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=8736ecouz5.fsf@intel.com \
--to=jani.nikula@intel.com \
--cc=airlied@redhat.com \
--cc=daniel.vetter@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=martin.peres@intel.com \
--cc=uma.shankar@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox