All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Jani Nikula <jani.nikula@intel.com>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [Intel-gfx] [RESEND] drm/i915/display: stop using BUG()
Date: Tue, 31 May 2022 19:43:49 +0300	[thread overview]
Message-ID: <YpZFxYjlJykSXuxI@intel.com> (raw)
In-Reply-To: <20220531162527.1062319-1-jani.nikula@intel.com>

On Tue, May 31, 2022 at 07:25:27PM +0300, Jani Nikula wrote:
> Avoid bringing the entire machine down even if there's a bug that
> shouldn't happen, but won't corrupt the system either. Log them loudly
> and limp on.
> 
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

> ---
>  drivers/gpu/drm/i915/display/intel_ddi.c      | 11 ++++++-----
>  drivers/gpu/drm/i915/display/intel_display.c  | 19 +++++++++++--------
>  .../drm/i915/display/intel_display_types.h    | 15 +++++++++------
>  3 files changed, 26 insertions(+), 19 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
> index 333871cf3a2c..915e8e3e8f38 100644
> --- a/drivers/gpu/drm/i915/display/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
> @@ -455,6 +455,9 @@ intel_ddi_transcoder_func_reg_val_get(struct intel_encoder *encoder,
>  		temp |= TRANS_DDI_SELECT_PORT(port);
>  
>  	switch (crtc_state->pipe_bpp) {
> +	default:
> +		MISSING_CASE(crtc_state->pipe_bpp);
> +		fallthrough;
>  	case 18:
>  		temp |= TRANS_DDI_BPC_6;
>  		break;
> @@ -467,8 +470,6 @@ intel_ddi_transcoder_func_reg_val_get(struct intel_encoder *encoder,
>  	case 36:
>  		temp |= TRANS_DDI_BPC_12;
>  		break;
> -	default:
> -		BUG();
>  	}
>  
>  	if (crtc_state->hw.adjusted_mode.flags & DRM_MODE_FLAG_PVSYNC)
> @@ -478,6 +479,9 @@ intel_ddi_transcoder_func_reg_val_get(struct intel_encoder *encoder,
>  
>  	if (cpu_transcoder == TRANSCODER_EDP) {
>  		switch (pipe) {
> +		default:
> +			MISSING_CASE(pipe);
> +			fallthrough;
>  		case PIPE_A:
>  			/* On Haswell, can only use the always-on power well for
>  			 * eDP when not using the panel fitter, and when not
> @@ -494,9 +498,6 @@ intel_ddi_transcoder_func_reg_val_get(struct intel_encoder *encoder,
>  		case PIPE_C:
>  			temp |= TRANS_DDI_EDP_INPUT_C_ONOFF;
>  			break;
> -		default:
> -			BUG();
> -			break;
>  		}
>  	}
>  
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index 806d50b302ab..e6a84d97718f 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -500,6 +500,9 @@ void vlv_wait_port_ready(struct drm_i915_private *dev_priv,
>  	i915_reg_t dpll_reg;
>  
>  	switch (dig_port->base.port) {
> +	default:
> +		MISSING_CASE(dig_port->base.port);
> +		fallthrough;
>  	case PORT_B:
>  		port_mask = DPLL_PORTB_READY_MASK;
>  		dpll_reg = DPLL(0);
> @@ -513,8 +516,6 @@ void vlv_wait_port_ready(struct drm_i915_private *dev_priv,
>  		port_mask = DPLL_PORTD_READY_MASK;
>  		dpll_reg = DPIO_PHY_STATUS;
>  		break;
> -	default:
> -		BUG();
>  	}
>  
>  	if (intel_de_wait_for_register(dev_priv, dpll_reg,
> @@ -3157,6 +3158,10 @@ static void i9xx_set_pipeconf(const struct intel_crtc_state *crtc_state)
>  				    PIPECONF_DITHER_TYPE_SP;
>  
>  		switch (crtc_state->pipe_bpp) {
> +		default:
> +			/* Case prevented by intel_choose_pipe_bpp_dither. */
> +			MISSING_CASE(crtc_state->pipe_bpp);
> +			fallthrough;
>  		case 18:
>  			pipeconf |= PIPECONF_BPC_6;
>  			break;
> @@ -3166,9 +3171,6 @@ static void i9xx_set_pipeconf(const struct intel_crtc_state *crtc_state)
>  		case 30:
>  			pipeconf |= PIPECONF_BPC_10;
>  			break;
> -		default:
> -			/* Case prevented by intel_choose_pipe_bpp_dither. */
> -			BUG();
>  		}
>  	}
>  
> @@ -3464,6 +3466,10 @@ static void ilk_set_pipeconf(const struct intel_crtc_state *crtc_state)
>  	val = 0;
>  
>  	switch (crtc_state->pipe_bpp) {
> +	default:
> +		/* Case prevented by intel_choose_pipe_bpp_dither. */
> +		MISSING_CASE(crtc_state->pipe_bpp);
> +		fallthrough;
>  	case 18:
>  		val |= PIPECONF_BPC_6;
>  		break;
> @@ -3476,9 +3482,6 @@ static void ilk_set_pipeconf(const struct intel_crtc_state *crtc_state)
>  	case 36:
>  		val |= PIPECONF_BPC_12;
>  		break;
> -	default:
> -		/* Case prevented by intel_choose_pipe_bpp_dither. */
> -		BUG();
>  	}
>  
>  	if (crtc_state->dither)
> diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
> index a27d66fd4383..37c25364350c 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_types.h
> +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
> @@ -1798,13 +1798,14 @@ static inline enum dpio_channel
>  vlv_dig_port_to_channel(struct intel_digital_port *dig_port)
>  {
>  	switch (dig_port->base.port) {
> +	default:
> +		MISSING_CASE(dig_port->base.port);
> +		fallthrough;
>  	case PORT_B:
>  	case PORT_D:
>  		return DPIO_CH0;
>  	case PORT_C:
>  		return DPIO_CH1;
> -	default:
> -		BUG();
>  	}
>  }
>  
> @@ -1812,13 +1813,14 @@ static inline enum dpio_phy
>  vlv_dig_port_to_phy(struct intel_digital_port *dig_port)
>  {
>  	switch (dig_port->base.port) {
> +	default:
> +		MISSING_CASE(dig_port->base.port);
> +		fallthrough;
>  	case PORT_B:
>  	case PORT_C:
>  		return DPIO_PHY0;
>  	case PORT_D:
>  		return DPIO_PHY1;
> -	default:
> -		BUG();
>  	}
>  }
>  
> @@ -1826,13 +1828,14 @@ static inline enum dpio_channel
>  vlv_pipe_to_channel(enum pipe pipe)
>  {
>  	switch (pipe) {
> +	default:
> +		MISSING_CASE(pipe);
> +		fallthrough;
>  	case PIPE_A:
>  	case PIPE_C:
>  		return DPIO_CH0;
>  	case PIPE_B:
>  		return DPIO_CH1;
> -	default:
> -		BUG();
>  	}
>  }
>  
> -- 
> 2.30.2

-- 
Ville Syrjälä
Intel

  reply	other threads:[~2022-05-31 16:43 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-31 16:25 [Intel-gfx] [RESEND] drm/i915/display: stop using BUG() Jani Nikula
2022-05-31 16:43 ` Ville Syrjälä [this message]
2022-05-31 17:13 ` [Intel-gfx] ✗ Fi.CI.BAT: failure for " Patchwork
2022-05-31 20:32 ` [Intel-gfx] [RESEND] " Andrzej Hajda
2022-06-01 10:16   ` Jani Nikula
2022-05-31 20:51 ` [Intel-gfx] ✗ Fi.CI.BAT: failure for drm/i915/display: stop using BUG() (rev2) Patchwork
2022-06-01  8:10 ` [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/display: stop using BUG() (rev4) Patchwork
2022-06-01  9:35 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork

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=YpZFxYjlJykSXuxI@intel.com \
    --to=ville.syrjala@linux.intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=jani.nikula@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.