* [PATCH 2/3] drm/i915: Pass intel_display to the encoder suspend/shutdown helpers
2024-06-17 17:03 [PATCH 1/3] drm/i915: Move encoder suspend/shutdown helpers to intel_encoder.c Imre Deak
@ 2024-06-17 17:03 ` Imre Deak
2024-06-17 17:42 ` Rodrigo Vivi
2024-06-18 9:05 ` Jani Nikula
2024-06-17 17:03 ` [PATCH 3/3] drm/xe: Use the encoder suspend helper also used by the i915 driver Imre Deak
` (5 subsequent siblings)
6 siblings, 2 replies; 15+ messages in thread
From: Imre Deak @ 2024-06-17 17:03 UTC (permalink / raw)
To: intel-gfx, intel-xe
Pass intel_display to the encoder suspend/shutdown helpers instead of
drm_i915_private for better isolation. This assumes that HAS_DISPLAY()
will also take an intel_display parameter in the future (or that the
HAS_DISPLAY() check will be moved to a caller of these functions).
Signed-off-by: Imre Deak <imre.deak@intel.com>
---
drivers/gpu/drm/i915/display/intel_encoder.c | 22 +++++++++++---------
drivers/gpu/drm/i915/display/intel_encoder.h | 7 +++----
drivers/gpu/drm/i915/i915_driver.c | 6 +++---
3 files changed, 18 insertions(+), 17 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_encoder.c b/drivers/gpu/drm/i915/display/intel_encoder.c
index 8a1dccb893a37..8e73d18a522d4 100644
--- a/drivers/gpu/drm/i915/display/intel_encoder.c
+++ b/drivers/gpu/drm/i915/display/intel_encoder.c
@@ -38,8 +38,9 @@ void intel_encoder_link_check_queue_work(struct intel_encoder *encoder, int dela
&encoder->link_check_work, msecs_to_jiffies(delay_ms));
}
-void intel_encoder_suspend_all(struct drm_i915_private *i915)
+void intel_encoder_suspend_all(struct intel_display *display)
{
+ struct drm_i915_private *i915 = to_i915(display->drm);
struct intel_encoder *encoder;
if (!HAS_DISPLAY(i915))
@@ -49,19 +50,20 @@ void intel_encoder_suspend_all(struct drm_i915_private *i915)
* TODO: check and remove holding the modeset locks if none of
* the encoders depends on this.
*/
- drm_modeset_lock_all(&i915->drm);
- for_each_intel_encoder(&i915->drm, encoder)
+ drm_modeset_lock_all(display->drm);
+ for_each_intel_encoder(display->drm, encoder)
if (encoder->suspend)
encoder->suspend(encoder);
- drm_modeset_unlock_all(&i915->drm);
+ drm_modeset_unlock_all(display->drm);
- for_each_intel_encoder(&i915->drm, encoder)
+ for_each_intel_encoder(display->drm, encoder)
if (encoder->suspend_complete)
encoder->suspend_complete(encoder);
}
-void intel_encoder_shutdown_all(struct drm_i915_private *i915)
+void intel_encoder_shutdown_all(struct intel_display *display)
{
+ struct drm_i915_private *i915 = to_i915(display->drm);
struct intel_encoder *encoder;
if (!HAS_DISPLAY(i915))
@@ -71,13 +73,13 @@ void intel_encoder_shutdown_all(struct drm_i915_private *i915)
* TODO: check and remove holding the modeset locks if none of
* the encoders depends on this.
*/
- drm_modeset_lock_all(&i915->drm);
- for_each_intel_encoder(&i915->drm, encoder)
+ drm_modeset_lock_all(display->drm);
+ for_each_intel_encoder(display->drm, encoder)
if (encoder->shutdown)
encoder->shutdown(encoder);
- drm_modeset_unlock_all(&i915->drm);
+ drm_modeset_unlock_all(display->drm);
- for_each_intel_encoder(&i915->drm, encoder)
+ for_each_intel_encoder(display->drm, encoder)
if (encoder->shutdown_complete)
encoder->shutdown_complete(encoder);
}
diff --git a/drivers/gpu/drm/i915/display/intel_encoder.h b/drivers/gpu/drm/i915/display/intel_encoder.h
index e6cd74576f78e..3fa5589f0b1ce 100644
--- a/drivers/gpu/drm/i915/display/intel_encoder.h
+++ b/drivers/gpu/drm/i915/display/intel_encoder.h
@@ -6,8 +6,7 @@
#ifndef __INTEL_ENCODER_H__
#define __INTEL_ENCODER_H__
-struct drm_i915_private;
-
+struct intel_display;
struct intel_encoder;
void intel_encoder_link_check_init(struct intel_encoder *encoder,
@@ -15,7 +14,7 @@ void intel_encoder_link_check_init(struct intel_encoder *encoder,
void intel_encoder_link_check_queue_work(struct intel_encoder *encoder, int delay_ms);
void intel_encoder_link_check_flush_work(struct intel_encoder *encoder);
-void intel_encoder_suspend_all(struct drm_i915_private *i915);
-void intel_encoder_shutdown_all(struct drm_i915_private *i915);
+void intel_encoder_suspend_all(struct intel_display *display);
+void intel_encoder_shutdown_all(struct intel_display *display);
#endif /* __INTEL_ENCODER_H__ */
diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
index e9e38ed246f66..fb8e9c2fcea53 100644
--- a/drivers/gpu/drm/i915/i915_driver.c
+++ b/drivers/gpu/drm/i915/i915_driver.c
@@ -956,8 +956,8 @@ void i915_driver_shutdown(struct drm_i915_private *i915)
if (HAS_DISPLAY(i915))
intel_display_driver_suspend_access(i915);
- intel_encoder_suspend_all(i915);
- intel_encoder_shutdown_all(i915);
+ intel_encoder_suspend_all(&i915->display);
+ intel_encoder_shutdown_all(&i915->display);
intel_dmc_suspend(i915);
@@ -1040,7 +1040,7 @@ static int i915_drm_suspend(struct drm_device *dev)
if (HAS_DISPLAY(dev_priv))
intel_display_driver_suspend_access(dev_priv);
- intel_encoder_suspend_all(dev_priv);
+ intel_encoder_suspend_all(&dev_priv->display);
/* Must be called before GGTT is suspended. */
intel_dpt_suspend(dev_priv);
--
2.43.3
^ permalink raw reply related [flat|nested] 15+ messages in thread* Re: [PATCH 2/3] drm/i915: Pass intel_display to the encoder suspend/shutdown helpers
2024-06-17 17:03 ` [PATCH 2/3] drm/i915: Pass intel_display to the encoder suspend/shutdown helpers Imre Deak
@ 2024-06-17 17:42 ` Rodrigo Vivi
2024-06-18 9:05 ` Jani Nikula
1 sibling, 0 replies; 15+ messages in thread
From: Rodrigo Vivi @ 2024-06-17 17:42 UTC (permalink / raw)
To: Imre Deak; +Cc: intel-gfx, intel-xe
On Mon, Jun 17, 2024 at 08:03:55PM +0300, Imre Deak wrote:
> Pass intel_display to the encoder suspend/shutdown helpers instead of
> drm_i915_private for better isolation. This assumes that HAS_DISPLAY()
> will also take an intel_display parameter in the future (or that the
> HAS_DISPLAY() check will be moved to a caller of these functions).
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
>
> Signed-off-by: Imre Deak <imre.deak@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_encoder.c | 22 +++++++++++---------
> drivers/gpu/drm/i915/display/intel_encoder.h | 7 +++----
> drivers/gpu/drm/i915/i915_driver.c | 6 +++---
> 3 files changed, 18 insertions(+), 17 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_encoder.c b/drivers/gpu/drm/i915/display/intel_encoder.c
> index 8a1dccb893a37..8e73d18a522d4 100644
> --- a/drivers/gpu/drm/i915/display/intel_encoder.c
> +++ b/drivers/gpu/drm/i915/display/intel_encoder.c
> @@ -38,8 +38,9 @@ void intel_encoder_link_check_queue_work(struct intel_encoder *encoder, int dela
> &encoder->link_check_work, msecs_to_jiffies(delay_ms));
> }
>
> -void intel_encoder_suspend_all(struct drm_i915_private *i915)
> +void intel_encoder_suspend_all(struct intel_display *display)
> {
> + struct drm_i915_private *i915 = to_i915(display->drm);
> struct intel_encoder *encoder;
>
> if (!HAS_DISPLAY(i915))
> @@ -49,19 +50,20 @@ void intel_encoder_suspend_all(struct drm_i915_private *i915)
> * TODO: check and remove holding the modeset locks if none of
> * the encoders depends on this.
> */
> - drm_modeset_lock_all(&i915->drm);
> - for_each_intel_encoder(&i915->drm, encoder)
> + drm_modeset_lock_all(display->drm);
> + for_each_intel_encoder(display->drm, encoder)
> if (encoder->suspend)
> encoder->suspend(encoder);
> - drm_modeset_unlock_all(&i915->drm);
> + drm_modeset_unlock_all(display->drm);
>
> - for_each_intel_encoder(&i915->drm, encoder)
> + for_each_intel_encoder(display->drm, encoder)
> if (encoder->suspend_complete)
> encoder->suspend_complete(encoder);
> }
>
> -void intel_encoder_shutdown_all(struct drm_i915_private *i915)
> +void intel_encoder_shutdown_all(struct intel_display *display)
> {
> + struct drm_i915_private *i915 = to_i915(display->drm);
> struct intel_encoder *encoder;
>
> if (!HAS_DISPLAY(i915))
> @@ -71,13 +73,13 @@ void intel_encoder_shutdown_all(struct drm_i915_private *i915)
> * TODO: check and remove holding the modeset locks if none of
> * the encoders depends on this.
> */
> - drm_modeset_lock_all(&i915->drm);
> - for_each_intel_encoder(&i915->drm, encoder)
> + drm_modeset_lock_all(display->drm);
> + for_each_intel_encoder(display->drm, encoder)
> if (encoder->shutdown)
> encoder->shutdown(encoder);
> - drm_modeset_unlock_all(&i915->drm);
> + drm_modeset_unlock_all(display->drm);
>
> - for_each_intel_encoder(&i915->drm, encoder)
> + for_each_intel_encoder(display->drm, encoder)
> if (encoder->shutdown_complete)
> encoder->shutdown_complete(encoder);
> }
> diff --git a/drivers/gpu/drm/i915/display/intel_encoder.h b/drivers/gpu/drm/i915/display/intel_encoder.h
> index e6cd74576f78e..3fa5589f0b1ce 100644
> --- a/drivers/gpu/drm/i915/display/intel_encoder.h
> +++ b/drivers/gpu/drm/i915/display/intel_encoder.h
> @@ -6,8 +6,7 @@
> #ifndef __INTEL_ENCODER_H__
> #define __INTEL_ENCODER_H__
>
> -struct drm_i915_private;
> -
> +struct intel_display;
> struct intel_encoder;
>
> void intel_encoder_link_check_init(struct intel_encoder *encoder,
> @@ -15,7 +14,7 @@ void intel_encoder_link_check_init(struct intel_encoder *encoder,
> void intel_encoder_link_check_queue_work(struct intel_encoder *encoder, int delay_ms);
> void intel_encoder_link_check_flush_work(struct intel_encoder *encoder);
>
> -void intel_encoder_suspend_all(struct drm_i915_private *i915);
> -void intel_encoder_shutdown_all(struct drm_i915_private *i915);
> +void intel_encoder_suspend_all(struct intel_display *display);
> +void intel_encoder_shutdown_all(struct intel_display *display);
>
> #endif /* __INTEL_ENCODER_H__ */
> diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
> index e9e38ed246f66..fb8e9c2fcea53 100644
> --- a/drivers/gpu/drm/i915/i915_driver.c
> +++ b/drivers/gpu/drm/i915/i915_driver.c
> @@ -956,8 +956,8 @@ void i915_driver_shutdown(struct drm_i915_private *i915)
> if (HAS_DISPLAY(i915))
> intel_display_driver_suspend_access(i915);
>
> - intel_encoder_suspend_all(i915);
> - intel_encoder_shutdown_all(i915);
> + intel_encoder_suspend_all(&i915->display);
> + intel_encoder_shutdown_all(&i915->display);
>
> intel_dmc_suspend(i915);
>
> @@ -1040,7 +1040,7 @@ static int i915_drm_suspend(struct drm_device *dev)
> if (HAS_DISPLAY(dev_priv))
> intel_display_driver_suspend_access(dev_priv);
>
> - intel_encoder_suspend_all(dev_priv);
> + intel_encoder_suspend_all(&dev_priv->display);
>
> /* Must be called before GGTT is suspended. */
> intel_dpt_suspend(dev_priv);
> --
> 2.43.3
>
^ permalink raw reply [flat|nested] 15+ messages in thread* Re: [PATCH 2/3] drm/i915: Pass intel_display to the encoder suspend/shutdown helpers
2024-06-17 17:03 ` [PATCH 2/3] drm/i915: Pass intel_display to the encoder suspend/shutdown helpers Imre Deak
2024-06-17 17:42 ` Rodrigo Vivi
@ 2024-06-18 9:05 ` Jani Nikula
2024-06-18 11:19 ` Imre Deak
1 sibling, 1 reply; 15+ messages in thread
From: Jani Nikula @ 2024-06-18 9:05 UTC (permalink / raw)
To: Imre Deak, intel-gfx, intel-xe
On Mon, 17 Jun 2024, Imre Deak <imre.deak@intel.com> wrote:
> Pass intel_display to the encoder suspend/shutdown helpers instead of
> drm_i915_private for better isolation. This assumes that HAS_DISPLAY()
> will also take an intel_display parameter in the future (or that the
> HAS_DISPLAY() check will be moved to a caller of these functions).
You can already do that! HAS_DISPLAY() takes either i915 or display. So
maybe make that change now.
In the future, only display code should have HAS_DISPLAY() anyway, not
i915 or xe core. It's not an option that the caller does the checks.
>
> Signed-off-by: Imre Deak <imre.deak@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_encoder.c | 22 +++++++++++---------
> drivers/gpu/drm/i915/display/intel_encoder.h | 7 +++----
> drivers/gpu/drm/i915/i915_driver.c | 6 +++---
> 3 files changed, 18 insertions(+), 17 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_encoder.c b/drivers/gpu/drm/i915/display/intel_encoder.c
> index 8a1dccb893a37..8e73d18a522d4 100644
> --- a/drivers/gpu/drm/i915/display/intel_encoder.c
> +++ b/drivers/gpu/drm/i915/display/intel_encoder.c
> @@ -38,8 +38,9 @@ void intel_encoder_link_check_queue_work(struct intel_encoder *encoder, int dela
> &encoder->link_check_work, msecs_to_jiffies(delay_ms));
> }
>
> -void intel_encoder_suspend_all(struct drm_i915_private *i915)
> +void intel_encoder_suspend_all(struct intel_display *display)
> {
> + struct drm_i915_private *i915 = to_i915(display->drm);
> struct intel_encoder *encoder;
>
> if (!HAS_DISPLAY(i915))
> @@ -49,19 +50,20 @@ void intel_encoder_suspend_all(struct drm_i915_private *i915)
> * TODO: check and remove holding the modeset locks if none of
> * the encoders depends on this.
> */
> - drm_modeset_lock_all(&i915->drm);
> - for_each_intel_encoder(&i915->drm, encoder)
> + drm_modeset_lock_all(display->drm);
> + for_each_intel_encoder(display->drm, encoder)
> if (encoder->suspend)
> encoder->suspend(encoder);
> - drm_modeset_unlock_all(&i915->drm);
> + drm_modeset_unlock_all(display->drm);
>
> - for_each_intel_encoder(&i915->drm, encoder)
> + for_each_intel_encoder(display->drm, encoder)
> if (encoder->suspend_complete)
> encoder->suspend_complete(encoder);
> }
>
> -void intel_encoder_shutdown_all(struct drm_i915_private *i915)
> +void intel_encoder_shutdown_all(struct intel_display *display)
> {
> + struct drm_i915_private *i915 = to_i915(display->drm);
> struct intel_encoder *encoder;
>
> if (!HAS_DISPLAY(i915))
> @@ -71,13 +73,13 @@ void intel_encoder_shutdown_all(struct drm_i915_private *i915)
> * TODO: check and remove holding the modeset locks if none of
> * the encoders depends on this.
> */
> - drm_modeset_lock_all(&i915->drm);
> - for_each_intel_encoder(&i915->drm, encoder)
> + drm_modeset_lock_all(display->drm);
> + for_each_intel_encoder(display->drm, encoder)
> if (encoder->shutdown)
> encoder->shutdown(encoder);
> - drm_modeset_unlock_all(&i915->drm);
> + drm_modeset_unlock_all(display->drm);
>
> - for_each_intel_encoder(&i915->drm, encoder)
> + for_each_intel_encoder(display->drm, encoder)
> if (encoder->shutdown_complete)
> encoder->shutdown_complete(encoder);
> }
> diff --git a/drivers/gpu/drm/i915/display/intel_encoder.h b/drivers/gpu/drm/i915/display/intel_encoder.h
> index e6cd74576f78e..3fa5589f0b1ce 100644
> --- a/drivers/gpu/drm/i915/display/intel_encoder.h
> +++ b/drivers/gpu/drm/i915/display/intel_encoder.h
> @@ -6,8 +6,7 @@
> #ifndef __INTEL_ENCODER_H__
> #define __INTEL_ENCODER_H__
>
> -struct drm_i915_private;
> -
Ah, this is why you missed the superfluous space. ;)
BR,
Jani.
> +struct intel_display;
> struct intel_encoder;
>
> void intel_encoder_link_check_init(struct intel_encoder *encoder,
> @@ -15,7 +14,7 @@ void intel_encoder_link_check_init(struct intel_encoder *encoder,
> void intel_encoder_link_check_queue_work(struct intel_encoder *encoder, int delay_ms);
> void intel_encoder_link_check_flush_work(struct intel_encoder *encoder);
>
> -void intel_encoder_suspend_all(struct drm_i915_private *i915);
> -void intel_encoder_shutdown_all(struct drm_i915_private *i915);
> +void intel_encoder_suspend_all(struct intel_display *display);
> +void intel_encoder_shutdown_all(struct intel_display *display);
>
> #endif /* __INTEL_ENCODER_H__ */
> diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
> index e9e38ed246f66..fb8e9c2fcea53 100644
> --- a/drivers/gpu/drm/i915/i915_driver.c
> +++ b/drivers/gpu/drm/i915/i915_driver.c
> @@ -956,8 +956,8 @@ void i915_driver_shutdown(struct drm_i915_private *i915)
> if (HAS_DISPLAY(i915))
> intel_display_driver_suspend_access(i915);
>
> - intel_encoder_suspend_all(i915);
> - intel_encoder_shutdown_all(i915);
> + intel_encoder_suspend_all(&i915->display);
> + intel_encoder_shutdown_all(&i915->display);
>
> intel_dmc_suspend(i915);
>
> @@ -1040,7 +1040,7 @@ static int i915_drm_suspend(struct drm_device *dev)
> if (HAS_DISPLAY(dev_priv))
> intel_display_driver_suspend_access(dev_priv);
>
> - intel_encoder_suspend_all(dev_priv);
> + intel_encoder_suspend_all(&dev_priv->display);
>
> /* Must be called before GGTT is suspended. */
> intel_dpt_suspend(dev_priv);
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 15+ messages in thread* Re: [PATCH 2/3] drm/i915: Pass intel_display to the encoder suspend/shutdown helpers
2024-06-18 9:05 ` Jani Nikula
@ 2024-06-18 11:19 ` Imre Deak
0 siblings, 0 replies; 15+ messages in thread
From: Imre Deak @ 2024-06-18 11:19 UTC (permalink / raw)
To: Jani Nikula; +Cc: intel-gfx, intel-xe
On Tue, Jun 18, 2024 at 12:05:16PM +0300, Jani Nikula wrote:
> On Mon, 17 Jun 2024, Imre Deak <imre.deak@intel.com> wrote:
> > Pass intel_display to the encoder suspend/shutdown helpers instead of
> > drm_i915_private for better isolation. This assumes that HAS_DISPLAY()
> > will also take an intel_display parameter in the future (or that the
> > HAS_DISPLAY() check will be moved to a caller of these functions).
>
> You can already do that! HAS_DISPLAY() takes either i915 or display. So
> maybe make that change now.
Ah the _Generic() magic, nice! Will change this.
> In the future, only display code should have HAS_DISPLAY() anyway, not
> i915 or xe core. It's not an option that the caller does the checks.
Ok.
> > Signed-off-by: Imre Deak <imre.deak@intel.com>
> > ---
> > drivers/gpu/drm/i915/display/intel_encoder.c | 22 +++++++++++---------
> > drivers/gpu/drm/i915/display/intel_encoder.h | 7 +++----
> > drivers/gpu/drm/i915/i915_driver.c | 6 +++---
> > 3 files changed, 18 insertions(+), 17 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_encoder.c b/drivers/gpu/drm/i915/display/intel_encoder.c
> > index 8a1dccb893a37..8e73d18a522d4 100644
> > --- a/drivers/gpu/drm/i915/display/intel_encoder.c
> > +++ b/drivers/gpu/drm/i915/display/intel_encoder.c
> > @@ -38,8 +38,9 @@ void intel_encoder_link_check_queue_work(struct intel_encoder *encoder, int dela
> > &encoder->link_check_work, msecs_to_jiffies(delay_ms));
> > }
> >
> > -void intel_encoder_suspend_all(struct drm_i915_private *i915)
> > +void intel_encoder_suspend_all(struct intel_display *display)
> > {
> > + struct drm_i915_private *i915 = to_i915(display->drm);
> > struct intel_encoder *encoder;
> >
> > if (!HAS_DISPLAY(i915))
> > @@ -49,19 +50,20 @@ void intel_encoder_suspend_all(struct drm_i915_private *i915)
> > * TODO: check and remove holding the modeset locks if none of
> > * the encoders depends on this.
> > */
> > - drm_modeset_lock_all(&i915->drm);
> > - for_each_intel_encoder(&i915->drm, encoder)
> > + drm_modeset_lock_all(display->drm);
> > + for_each_intel_encoder(display->drm, encoder)
> > if (encoder->suspend)
> > encoder->suspend(encoder);
> > - drm_modeset_unlock_all(&i915->drm);
> > + drm_modeset_unlock_all(display->drm);
> >
> > - for_each_intel_encoder(&i915->drm, encoder)
> > + for_each_intel_encoder(display->drm, encoder)
> > if (encoder->suspend_complete)
> > encoder->suspend_complete(encoder);
> > }
> >
> > -void intel_encoder_shutdown_all(struct drm_i915_private *i915)
> > +void intel_encoder_shutdown_all(struct intel_display *display)
> > {
> > + struct drm_i915_private *i915 = to_i915(display->drm);
> > struct intel_encoder *encoder;
> >
> > if (!HAS_DISPLAY(i915))
> > @@ -71,13 +73,13 @@ void intel_encoder_shutdown_all(struct drm_i915_private *i915)
> > * TODO: check and remove holding the modeset locks if none of
> > * the encoders depends on this.
> > */
> > - drm_modeset_lock_all(&i915->drm);
> > - for_each_intel_encoder(&i915->drm, encoder)
> > + drm_modeset_lock_all(display->drm);
> > + for_each_intel_encoder(display->drm, encoder)
> > if (encoder->shutdown)
> > encoder->shutdown(encoder);
> > - drm_modeset_unlock_all(&i915->drm);
> > + drm_modeset_unlock_all(display->drm);
> >
> > - for_each_intel_encoder(&i915->drm, encoder)
> > + for_each_intel_encoder(display->drm, encoder)
> > if (encoder->shutdown_complete)
> > encoder->shutdown_complete(encoder);
> > }
> > diff --git a/drivers/gpu/drm/i915/display/intel_encoder.h b/drivers/gpu/drm/i915/display/intel_encoder.h
> > index e6cd74576f78e..3fa5589f0b1ce 100644
> > --- a/drivers/gpu/drm/i915/display/intel_encoder.h
> > +++ b/drivers/gpu/drm/i915/display/intel_encoder.h
> > @@ -6,8 +6,7 @@
> > #ifndef __INTEL_ENCODER_H__
> > #define __INTEL_ENCODER_H__
> >
> > -struct drm_i915_private;
> > -
>
> Ah, this is why you missed the superfluous space. ;)
>
> BR,
> Jani.
>
> > +struct intel_display;
> > struct intel_encoder;
> >
> > void intel_encoder_link_check_init(struct intel_encoder *encoder,
> > @@ -15,7 +14,7 @@ void intel_encoder_link_check_init(struct intel_encoder *encoder,
> > void intel_encoder_link_check_queue_work(struct intel_encoder *encoder, int delay_ms);
> > void intel_encoder_link_check_flush_work(struct intel_encoder *encoder);
> >
> > -void intel_encoder_suspend_all(struct drm_i915_private *i915);
> > -void intel_encoder_shutdown_all(struct drm_i915_private *i915);
> > +void intel_encoder_suspend_all(struct intel_display *display);
> > +void intel_encoder_shutdown_all(struct intel_display *display);
> >
> > #endif /* __INTEL_ENCODER_H__ */
> > diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
> > index e9e38ed246f66..fb8e9c2fcea53 100644
> > --- a/drivers/gpu/drm/i915/i915_driver.c
> > +++ b/drivers/gpu/drm/i915/i915_driver.c
> > @@ -956,8 +956,8 @@ void i915_driver_shutdown(struct drm_i915_private *i915)
> > if (HAS_DISPLAY(i915))
> > intel_display_driver_suspend_access(i915);
> >
> > - intel_encoder_suspend_all(i915);
> > - intel_encoder_shutdown_all(i915);
> > + intel_encoder_suspend_all(&i915->display);
> > + intel_encoder_shutdown_all(&i915->display);
> >
> > intel_dmc_suspend(i915);
> >
> > @@ -1040,7 +1040,7 @@ static int i915_drm_suspend(struct drm_device *dev)
> > if (HAS_DISPLAY(dev_priv))
> > intel_display_driver_suspend_access(dev_priv);
> >
> > - intel_encoder_suspend_all(dev_priv);
> > + intel_encoder_suspend_all(&dev_priv->display);
> >
> > /* Must be called before GGTT is suspended. */
> > intel_dpt_suspend(dev_priv);
>
> --
> Jani Nikula, Intel
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH 3/3] drm/xe: Use the encoder suspend helper also used by the i915 driver
2024-06-17 17:03 [PATCH 1/3] drm/i915: Move encoder suspend/shutdown helpers to intel_encoder.c Imre Deak
2024-06-17 17:03 ` [PATCH 2/3] drm/i915: Pass intel_display to the encoder suspend/shutdown helpers Imre Deak
@ 2024-06-17 17:03 ` Imre Deak
2024-06-17 17:44 ` Rodrigo Vivi
2024-06-17 17:41 ` [PATCH 1/3] drm/i915: Move encoder suspend/shutdown helpers to intel_encoder.c Rodrigo Vivi
` (4 subsequent siblings)
6 siblings, 1 reply; 15+ messages in thread
From: Imre Deak @ 2024-06-17 17:03 UTC (permalink / raw)
To: intel-gfx, intel-xe
Use the suspend encoders helper which is also used by the i915 driver.
This fixes an issue in the xe driver where the encoder
suspend_complete() hook is not called and was an overlook when this hook
was added in
Commit b61fad5f7e5d ("drm/i915/tc: Call TypeC port flush_work/cleanup without modeset locks held")
for i915, but not added to the xe driver (which was still in a separate
source tree at the above point).
Signed-off-by: Imre Deak <imre.deak@intel.com>
---
drivers/gpu/drm/xe/display/xe_display.c | 18 ++----------------
1 file changed, 2 insertions(+), 16 deletions(-)
diff --git a/drivers/gpu/drm/xe/display/xe_display.c b/drivers/gpu/drm/xe/display/xe_display.c
index 78cccbe289475..8b83dcff72e17 100644
--- a/drivers/gpu/drm/xe/display/xe_display.c
+++ b/drivers/gpu/drm/xe/display/xe_display.c
@@ -23,6 +23,7 @@
#include "intel_display_types.h"
#include "intel_dmc.h"
#include "intel_dp.h"
+#include "intel_encoder.h"
#include "intel_fbdev.h"
#include "intel_hdcp.h"
#include "intel_hotplug.h"
@@ -270,21 +271,6 @@ void xe_display_irq_postinstall(struct xe_device *xe, struct xe_gt *gt)
gen11_de_irq_postinstall(xe);
}
-static void intel_suspend_encoders(struct xe_device *xe)
-{
- struct drm_device *dev = &xe->drm;
- struct intel_encoder *encoder;
-
- if (has_display(xe))
- return;
-
- drm_modeset_lock_all(dev);
- for_each_intel_encoder(dev, encoder)
- if (encoder->suspend)
- encoder->suspend(encoder);
- drm_modeset_unlock_all(dev);
-}
-
static bool suspend_to_idle(void)
{
#if IS_ENABLED(CONFIG_ACPI_SLEEP)
@@ -315,7 +301,7 @@ void xe_display_pm_suspend(struct xe_device *xe, bool runtime)
intel_hpd_cancel_work(xe);
- intel_suspend_encoders(xe);
+ intel_encoder_suspend_all(&xe->display);
intel_opregion_suspend(xe, s2idle ? PCI_D1 : PCI_D3cold);
--
2.43.3
^ permalink raw reply related [flat|nested] 15+ messages in thread* Re: [PATCH 3/3] drm/xe: Use the encoder suspend helper also used by the i915 driver
2024-06-17 17:03 ` [PATCH 3/3] drm/xe: Use the encoder suspend helper also used by the i915 driver Imre Deak
@ 2024-06-17 17:44 ` Rodrigo Vivi
2024-06-17 17:54 ` Imre Deak
0 siblings, 1 reply; 15+ messages in thread
From: Rodrigo Vivi @ 2024-06-17 17:44 UTC (permalink / raw)
To: Imre Deak; +Cc: intel-gfx, intel-xe
On Mon, Jun 17, 2024 at 08:03:56PM +0300, Imre Deak wrote:
> Use the suspend encoders helper which is also used by the i915 driver.
> This fixes an issue in the xe driver where the encoder
> suspend_complete() hook is not called and was an overlook when this hook
> was added in
I believe it is okay to stay in the same line and then break the commit
subject in the middle for the next line...
>
> Commit b61fad5f7e5d ("drm/i915/tc: Call TypeC port flush_work/cleanup without modeset locks held")
>
I wonder if we should have a fixes, but probably okay to skip it.
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> for i915, but not added to the xe driver (which was still in a separate
> source tree at the above point).
>
> Signed-off-by: Imre Deak <imre.deak@intel.com>
> ---
> drivers/gpu/drm/xe/display/xe_display.c | 18 ++----------------
> 1 file changed, 2 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/display/xe_display.c b/drivers/gpu/drm/xe/display/xe_display.c
> index 78cccbe289475..8b83dcff72e17 100644
> --- a/drivers/gpu/drm/xe/display/xe_display.c
> +++ b/drivers/gpu/drm/xe/display/xe_display.c
> @@ -23,6 +23,7 @@
> #include "intel_display_types.h"
> #include "intel_dmc.h"
> #include "intel_dp.h"
> +#include "intel_encoder.h"
> #include "intel_fbdev.h"
> #include "intel_hdcp.h"
> #include "intel_hotplug.h"
> @@ -270,21 +271,6 @@ void xe_display_irq_postinstall(struct xe_device *xe, struct xe_gt *gt)
> gen11_de_irq_postinstall(xe);
> }
>
> -static void intel_suspend_encoders(struct xe_device *xe)
> -{
> - struct drm_device *dev = &xe->drm;
> - struct intel_encoder *encoder;
> -
> - if (has_display(xe))
> - return;
> -
> - drm_modeset_lock_all(dev);
> - for_each_intel_encoder(dev, encoder)
> - if (encoder->suspend)
> - encoder->suspend(encoder);
> - drm_modeset_unlock_all(dev);
> -}
> -
> static bool suspend_to_idle(void)
> {
> #if IS_ENABLED(CONFIG_ACPI_SLEEP)
> @@ -315,7 +301,7 @@ void xe_display_pm_suspend(struct xe_device *xe, bool runtime)
>
> intel_hpd_cancel_work(xe);
>
> - intel_suspend_encoders(xe);
> + intel_encoder_suspend_all(&xe->display);
>
> intel_opregion_suspend(xe, s2idle ? PCI_D1 : PCI_D3cold);
>
> --
> 2.43.3
>
^ permalink raw reply [flat|nested] 15+ messages in thread* Re: [PATCH 3/3] drm/xe: Use the encoder suspend helper also used by the i915 driver
2024-06-17 17:44 ` Rodrigo Vivi
@ 2024-06-17 17:54 ` Imre Deak
2024-06-17 18:03 ` Rodrigo Vivi
0 siblings, 1 reply; 15+ messages in thread
From: Imre Deak @ 2024-06-17 17:54 UTC (permalink / raw)
To: Rodrigo Vivi; +Cc: intel-gfx, intel-xe
On Mon, Jun 17, 2024 at 01:44:06PM -0400, Rodrigo Vivi wrote:
> On Mon, Jun 17, 2024 at 08:03:56PM +0300, Imre Deak wrote:
> > Use the suspend encoders helper which is also used by the i915 driver.
> > This fixes an issue in the xe driver where the encoder
> > suspend_complete() hook is not called and was an overlook when this hook
> > was added in
>
> I believe it is okay to stay in the same line and then break the commit
> subject in the middle for the next line...
Ok, looks like done elsewhere as well, will reformat.
> > Commit b61fad5f7e5d ("drm/i915/tc: Call TypeC port flush_work/cleanup without modeset locks held")
> >
>
> I wonder if we should have a fixes, but probably okay to skip it.
I wasn't sure, since strictly the tree itself at the above commit didn't
have the issue. I suppose if needed this would need to be sent to 6.9
stable manually.
> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Thanks.
>
> > for i915, but not added to the xe driver (which was still in a separate
> > source tree at the above point).
> >
> > Signed-off-by: Imre Deak <imre.deak@intel.com>
> > ---
> > drivers/gpu/drm/xe/display/xe_display.c | 18 ++----------------
> > 1 file changed, 2 insertions(+), 16 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/xe/display/xe_display.c b/drivers/gpu/drm/xe/display/xe_display.c
> > index 78cccbe289475..8b83dcff72e17 100644
> > --- a/drivers/gpu/drm/xe/display/xe_display.c
> > +++ b/drivers/gpu/drm/xe/display/xe_display.c
> > @@ -23,6 +23,7 @@
> > #include "intel_display_types.h"
> > #include "intel_dmc.h"
> > #include "intel_dp.h"
> > +#include "intel_encoder.h"
> > #include "intel_fbdev.h"
> > #include "intel_hdcp.h"
> > #include "intel_hotplug.h"
> > @@ -270,21 +271,6 @@ void xe_display_irq_postinstall(struct xe_device *xe, struct xe_gt *gt)
> > gen11_de_irq_postinstall(xe);
> > }
> >
> > -static void intel_suspend_encoders(struct xe_device *xe)
> > -{
> > - struct drm_device *dev = &xe->drm;
> > - struct intel_encoder *encoder;
> > -
> > - if (has_display(xe))
> > - return;
> > -
> > - drm_modeset_lock_all(dev);
> > - for_each_intel_encoder(dev, encoder)
> > - if (encoder->suspend)
> > - encoder->suspend(encoder);
> > - drm_modeset_unlock_all(dev);
> > -}
> > -
> > static bool suspend_to_idle(void)
> > {
> > #if IS_ENABLED(CONFIG_ACPI_SLEEP)
> > @@ -315,7 +301,7 @@ void xe_display_pm_suspend(struct xe_device *xe, bool runtime)
> >
> > intel_hpd_cancel_work(xe);
> >
> > - intel_suspend_encoders(xe);
> > + intel_encoder_suspend_all(&xe->display);
> >
> > intel_opregion_suspend(xe, s2idle ? PCI_D1 : PCI_D3cold);
> >
> > --
> > 2.43.3
> >
^ permalink raw reply [flat|nested] 15+ messages in thread* Re: [PATCH 3/3] drm/xe: Use the encoder suspend helper also used by the i915 driver
2024-06-17 17:54 ` Imre Deak
@ 2024-06-17 18:03 ` Rodrigo Vivi
0 siblings, 0 replies; 15+ messages in thread
From: Rodrigo Vivi @ 2024-06-17 18:03 UTC (permalink / raw)
To: Imre Deak; +Cc: intel-gfx, intel-xe
On Mon, Jun 17, 2024 at 08:54:13PM +0300, Imre Deak wrote:
> On Mon, Jun 17, 2024 at 01:44:06PM -0400, Rodrigo Vivi wrote:
> > On Mon, Jun 17, 2024 at 08:03:56PM +0300, Imre Deak wrote:
> > > Use the suspend encoders helper which is also used by the i915 driver.
> > > This fixes an issue in the xe driver where the encoder
> > > suspend_complete() hook is not called and was an overlook when this hook
> > > was added in
> >
> > I believe it is okay to stay in the same line and then break the commit
> > subject in the middle for the next line...
>
> Ok, looks like done elsewhere as well, will reformat.
nah, not needed. this is clear enough if checkpatch is not complainin no need
to change.
>
> > > Commit b61fad5f7e5d ("drm/i915/tc: Call TypeC port flush_work/cleanup without modeset locks held")
> > >
> >
> > I wonder if we should have a fixes, but probably okay to skip it.
>
> I wasn't sure, since strictly the tree itself at the above commit didn't
> have the issue. I suppose if needed this would need to be sent to 6.9
> stable manually.
good point!
thanks a lot,
Rodrigo.
>
> > Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
>
> Thanks.
>
> >
> > > for i915, but not added to the xe driver (which was still in a separate
> > > source tree at the above point).
> > >
> > > Signed-off-by: Imre Deak <imre.deak@intel.com>
> > > ---
> > > drivers/gpu/drm/xe/display/xe_display.c | 18 ++----------------
> > > 1 file changed, 2 insertions(+), 16 deletions(-)
> > >
> > > diff --git a/drivers/gpu/drm/xe/display/xe_display.c b/drivers/gpu/drm/xe/display/xe_display.c
> > > index 78cccbe289475..8b83dcff72e17 100644
> > > --- a/drivers/gpu/drm/xe/display/xe_display.c
> > > +++ b/drivers/gpu/drm/xe/display/xe_display.c
> > > @@ -23,6 +23,7 @@
> > > #include "intel_display_types.h"
> > > #include "intel_dmc.h"
> > > #include "intel_dp.h"
> > > +#include "intel_encoder.h"
> > > #include "intel_fbdev.h"
> > > #include "intel_hdcp.h"
> > > #include "intel_hotplug.h"
> > > @@ -270,21 +271,6 @@ void xe_display_irq_postinstall(struct xe_device *xe, struct xe_gt *gt)
> > > gen11_de_irq_postinstall(xe);
> > > }
> > >
> > > -static void intel_suspend_encoders(struct xe_device *xe)
> > > -{
> > > - struct drm_device *dev = &xe->drm;
> > > - struct intel_encoder *encoder;
> > > -
> > > - if (has_display(xe))
> > > - return;
> > > -
> > > - drm_modeset_lock_all(dev);
> > > - for_each_intel_encoder(dev, encoder)
> > > - if (encoder->suspend)
> > > - encoder->suspend(encoder);
> > > - drm_modeset_unlock_all(dev);
> > > -}
> > > -
> > > static bool suspend_to_idle(void)
> > > {
> > > #if IS_ENABLED(CONFIG_ACPI_SLEEP)
> > > @@ -315,7 +301,7 @@ void xe_display_pm_suspend(struct xe_device *xe, bool runtime)
> > >
> > > intel_hpd_cancel_work(xe);
> > >
> > > - intel_suspend_encoders(xe);
> > > + intel_encoder_suspend_all(&xe->display);
> > >
> > > intel_opregion_suspend(xe, s2idle ? PCI_D1 : PCI_D3cold);
> > >
> > > --
> > > 2.43.3
> > >
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 1/3] drm/i915: Move encoder suspend/shutdown helpers to intel_encoder.c
2024-06-17 17:03 [PATCH 1/3] drm/i915: Move encoder suspend/shutdown helpers to intel_encoder.c Imre Deak
2024-06-17 17:03 ` [PATCH 2/3] drm/i915: Pass intel_display to the encoder suspend/shutdown helpers Imre Deak
2024-06-17 17:03 ` [PATCH 3/3] drm/xe: Use the encoder suspend helper also used by the i915 driver Imre Deak
@ 2024-06-17 17:41 ` Rodrigo Vivi
2024-06-17 17:59 ` ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/3] " Patchwork
` (3 subsequent siblings)
6 siblings, 0 replies; 15+ messages in thread
From: Rodrigo Vivi @ 2024-06-17 17:41 UTC (permalink / raw)
To: Imre Deak; +Cc: intel-gfx, intel-xe
On Mon, Jun 17, 2024 at 08:03:54PM +0300, Imre Deak wrote:
> Move the encoder suspend/shutdown helpers to intel_encoder.c, this being
> the logical place for encoder functions.
>
> This also allows sharing the above helpers with the xe driver, done in a
> follow-up patch.
>
> While at it rename the functions using the usual intel_encoder prefix
> and in the functions rename the dev_priv parameter to i915.
>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Signed-off-by: Imre Deak <imre.deak@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_encoder.c | 44 +++++++++++++++++
> drivers/gpu/drm/i915/display/intel_encoder.h | 5 ++
> drivers/gpu/drm/i915/i915_driver.c | 51 ++------------------
> 3 files changed, 53 insertions(+), 47 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_encoder.c b/drivers/gpu/drm/i915/display/intel_encoder.c
> index dee55f56960fc..8a1dccb893a37 100644
> --- a/drivers/gpu/drm/i915/display/intel_encoder.c
> +++ b/drivers/gpu/drm/i915/display/intel_encoder.c
> @@ -37,3 +37,47 @@ void intel_encoder_link_check_queue_work(struct intel_encoder *encoder, int dela
> mod_delayed_work(i915->unordered_wq,
> &encoder->link_check_work, msecs_to_jiffies(delay_ms));
> }
> +
> +void intel_encoder_suspend_all(struct drm_i915_private *i915)
> +{
> + struct intel_encoder *encoder;
> +
> + if (!HAS_DISPLAY(i915))
> + return;
> +
> + /*
> + * TODO: check and remove holding the modeset locks if none of
> + * the encoders depends on this.
> + */
> + drm_modeset_lock_all(&i915->drm);
> + for_each_intel_encoder(&i915->drm, encoder)
> + if (encoder->suspend)
> + encoder->suspend(encoder);
> + drm_modeset_unlock_all(&i915->drm);
> +
> + for_each_intel_encoder(&i915->drm, encoder)
> + if (encoder->suspend_complete)
> + encoder->suspend_complete(encoder);
> +}
> +
> +void intel_encoder_shutdown_all(struct drm_i915_private *i915)
> +{
> + struct intel_encoder *encoder;
> +
> + if (!HAS_DISPLAY(i915))
> + return;
> +
> + /*
> + * TODO: check and remove holding the modeset locks if none of
> + * the encoders depends on this.
> + */
> + drm_modeset_lock_all(&i915->drm);
> + for_each_intel_encoder(&i915->drm, encoder)
> + if (encoder->shutdown)
> + encoder->shutdown(encoder);
> + drm_modeset_unlock_all(&i915->drm);
> +
> + for_each_intel_encoder(&i915->drm, encoder)
> + if (encoder->shutdown_complete)
> + encoder->shutdown_complete(encoder);
> +}
> diff --git a/drivers/gpu/drm/i915/display/intel_encoder.h b/drivers/gpu/drm/i915/display/intel_encoder.h
> index 2cda054e2b152..e6cd74576f78e 100644
> --- a/drivers/gpu/drm/i915/display/intel_encoder.h
> +++ b/drivers/gpu/drm/i915/display/intel_encoder.h
> @@ -6,6 +6,8 @@
> #ifndef __INTEL_ENCODER_H__
> #define __INTEL_ENCODER_H__
>
> +struct drm_i915_private;
> +
> struct intel_encoder;
>
> void intel_encoder_link_check_init(struct intel_encoder *encoder,
> @@ -13,4 +15,7 @@ void intel_encoder_link_check_init(struct intel_encoder *encoder,
> void intel_encoder_link_check_queue_work(struct intel_encoder *encoder, int delay_ms);
> void intel_encoder_link_check_flush_work(struct intel_encoder *encoder);
>
> +void intel_encoder_suspend_all(struct drm_i915_private *i915);
> +void intel_encoder_shutdown_all(struct drm_i915_private *i915);
> +
> #endif /* __INTEL_ENCODER_H__ */
> diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
> index 161b21eff6943..e9e38ed246f66 100644
> --- a/drivers/gpu/drm/i915/i915_driver.c
> +++ b/drivers/gpu/drm/i915/i915_driver.c
> @@ -53,6 +53,7 @@
> #include "display/intel_dmc.h"
> #include "display/intel_dp.h"
> #include "display/intel_dpt.h"
> +#include "display/intel_encoder.h"
> #include "display/intel_fbdev.h"
> #include "display/intel_hotplug.h"
> #include "display/intel_overlay.h"
> @@ -933,50 +934,6 @@ static void i915_driver_postclose(struct drm_device *dev, struct drm_file *file)
> i915_gem_flush_free_objects(to_i915(dev));
> }
>
> -static void intel_suspend_encoders(struct drm_i915_private *dev_priv)
> -{
> - struct intel_encoder *encoder;
> -
> - if (!HAS_DISPLAY(dev_priv))
> - return;
> -
> - /*
> - * TODO: check and remove holding the modeset locks if none of
> - * the encoders depends on this.
> - */
> - drm_modeset_lock_all(&dev_priv->drm);
> - for_each_intel_encoder(&dev_priv->drm, encoder)
> - if (encoder->suspend)
> - encoder->suspend(encoder);
> - drm_modeset_unlock_all(&dev_priv->drm);
> -
> - for_each_intel_encoder(&dev_priv->drm, encoder)
> - if (encoder->suspend_complete)
> - encoder->suspend_complete(encoder);
> -}
> -
> -static void intel_shutdown_encoders(struct drm_i915_private *dev_priv)
> -{
> - struct intel_encoder *encoder;
> -
> - if (!HAS_DISPLAY(dev_priv))
> - return;
> -
> - /*
> - * TODO: check and remove holding the modeset locks if none of
> - * the encoders depends on this.
> - */
> - drm_modeset_lock_all(&dev_priv->drm);
> - for_each_intel_encoder(&dev_priv->drm, encoder)
> - if (encoder->shutdown)
> - encoder->shutdown(encoder);
> - drm_modeset_unlock_all(&dev_priv->drm);
> -
> - for_each_intel_encoder(&dev_priv->drm, encoder)
> - if (encoder->shutdown_complete)
> - encoder->shutdown_complete(encoder);
> -}
> -
> void i915_driver_shutdown(struct drm_i915_private *i915)
> {
> disable_rpm_wakeref_asserts(&i915->runtime_pm);
> @@ -999,8 +956,8 @@ void i915_driver_shutdown(struct drm_i915_private *i915)
> if (HAS_DISPLAY(i915))
> intel_display_driver_suspend_access(i915);
>
> - intel_suspend_encoders(i915);
> - intel_shutdown_encoders(i915);
> + intel_encoder_suspend_all(i915);
> + intel_encoder_shutdown_all(i915);
>
> intel_dmc_suspend(i915);
>
> @@ -1083,7 +1040,7 @@ static int i915_drm_suspend(struct drm_device *dev)
> if (HAS_DISPLAY(dev_priv))
> intel_display_driver_suspend_access(dev_priv);
>
> - intel_suspend_encoders(dev_priv);
> + intel_encoder_suspend_all(dev_priv);
>
> /* Must be called before GGTT is suspended. */
> intel_dpt_suspend(dev_priv);
> --
> 2.43.3
>
^ permalink raw reply [flat|nested] 15+ messages in thread* ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/3] drm/i915: Move encoder suspend/shutdown helpers to intel_encoder.c
2024-06-17 17:03 [PATCH 1/3] drm/i915: Move encoder suspend/shutdown helpers to intel_encoder.c Imre Deak
` (2 preceding siblings ...)
2024-06-17 17:41 ` [PATCH 1/3] drm/i915: Move encoder suspend/shutdown helpers to intel_encoder.c Rodrigo Vivi
@ 2024-06-17 17:59 ` Patchwork
2024-06-17 18:00 ` ✗ Fi.CI.SPARSE: " Patchwork
` (2 subsequent siblings)
6 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2024-06-17 17:59 UTC (permalink / raw)
To: Imre Deak; +Cc: intel-gfx
== Series Details ==
Series: series starting with [1/3] drm/i915: Move encoder suspend/shutdown helpers to intel_encoder.c
URL : https://patchwork.freedesktop.org/series/134966/
State : warning
== Summary ==
Error: dim checkpatch failed
f56120af9380 drm/i915: Move encoder suspend/shutdown helpers to intel_encoder.c
7695c637c337 drm/i915: Pass intel_display to the encoder suspend/shutdown helpers
a73dcc8a9fb5 drm/xe: Use the encoder suspend helper also used by the i915 driver
-:12: WARNING:COMMIT_LOG_LONG_LINE: Prefer a maximum 75 chars per line (possible unwrapped commit description?)
#12:
Commit b61fad5f7e5d ("drm/i915/tc: Call TypeC port flush_work/cleanup without modeset locks held")
total: 0 errors, 1 warnings, 0 checks, 36 lines checked
^ permalink raw reply [flat|nested] 15+ messages in thread* ✗ Fi.CI.SPARSE: warning for series starting with [1/3] drm/i915: Move encoder suspend/shutdown helpers to intel_encoder.c
2024-06-17 17:03 [PATCH 1/3] drm/i915: Move encoder suspend/shutdown helpers to intel_encoder.c Imre Deak
` (3 preceding siblings ...)
2024-06-17 17:59 ` ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/3] " Patchwork
@ 2024-06-17 18:00 ` Patchwork
2024-06-17 18:08 ` ✗ Fi.CI.BAT: failure " Patchwork
2024-06-18 8:01 ` [PATCH 1/3] " Jani Nikula
6 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2024-06-17 18:00 UTC (permalink / raw)
To: Imre Deak; +Cc: intel-gfx
== Series Details ==
Series: series starting with [1/3] drm/i915: Move encoder suspend/shutdown helpers to intel_encoder.c
URL : https://patchwork.freedesktop.org/series/134966/
State : warning
== Summary ==
Error: dim sparse failed
Sparse version: v0.6.2
Fast mode used, each commit won't be checked separately.
-
+./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:147:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:147:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:147:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:147:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:147:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:147:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:149:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:149:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:149:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:149:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:149:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:149:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:153:26: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:153:26: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:153:26: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:153:26: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:153:26: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:153:26: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:155:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:155:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:155:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:155:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:155:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:155:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:155:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:155:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:155:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:155:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:155:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:155:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:173:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:173:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:173:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:173:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:173:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:173:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:175:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:175:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:175:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:175:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:175:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:175:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:179:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:179:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:179:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:179:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:179:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:179:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:181:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:181:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:181:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:181:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:181:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:181:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:181:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:181:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:181:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:181:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:181:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:181:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:185:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:185:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:185:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:185:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:185:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:185:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:187:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:187:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:187:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:187:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:187:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:187:9: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:191:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:191:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:191:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:191:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:191:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:191:35: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:194:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:194:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:194:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:194:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:194:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:194:16: warning: unreplaced symbol 'oldbit'
+./arch/x86/include/asm/bitops.h:194:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:194:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:194:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:194:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:194:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:194:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:236:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:236:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:236:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:236:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:236:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:236:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:238:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:238:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:238:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:238:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:238:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:238:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:243:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:243:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:243:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:243:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:243:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:243:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:245:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:245:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:245:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:245:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:245:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:245:9: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:128:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:128:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:128:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:128:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:128:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:128:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:137:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:137:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:137:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:137:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:137:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:137:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:139:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:139:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:139:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:139:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:139:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:139:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol 'break'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol 'break'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol 'break'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol 'break'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol 'break'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol 'break'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol 'continue'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol 'continue'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol 'continue'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol 'continue'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol 'continue'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol 'continue'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol '___p1'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol '___p1'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol '___p1'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol '___p1'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol '___p1'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol '___p1'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol '___p1'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol '___p1'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol '___p1'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol '___p1'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol '___p1'
+./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol '___p1'
+./include/asm-generic/bitops/generic-non-atomic.h:140:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:140:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:140:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:140:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:140:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:140:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:166:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:166:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:166:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:166:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:166:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:166:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:168:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:168:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:168:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:168:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:168:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:168:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:169:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:169:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:169:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:169:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:169:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:169:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:170:9: warning: unreplaced symbol 'val'
+./include/asm-generic/bitops/generic-non-atomic.h:170:9: warning: unreplaced symbol 'val'
+./include/asm-generic/bitops/generic-non-atomic.h:170:9: warning: unreplaced symbol 'val'
+./include/asm-generic/bitops/generic-non-atomic.h:170:9: warning: unreplaced symbol 'val'
+./include/asm-generic/bitops/generic-non-atomic.h:170:9: warning: unreplaced symbol 'val'
+./include/asm-generic/bitops/generic-non-atomic.h:170:9: warning: unreplaced symbol 'val'
+./include/asm-generic/bitops/generic-non-atomic.h:172:19: warning: unreplaced symbol 'val'
+./include/asm-generic/bitops/generic-non-atomic.h:172:19: warning: unreplaced symbol 'val'
+./include/asm-generic/bitops/generic-non-atomic.h:172:19: warning: unreplaced symbol 'val'
+./include/asm-generic/bitops/generic-non-atomic.h:172:19: warning: unreplaced symbol 'val'
+./include/asm-generic/bitops/generic-non-atomic.h:172:19: warning: unreplaced symbol 'val'
+./include/asm-generic/bitops/generic-non-atomic.h:172:19: warning: unreplaced symbol 'val'
+./include/asm-generic/bitops/generic-non-atomic.h:172:25: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:172:25: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:172:25: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:172:25: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:172:25: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:172:25: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:172:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:172:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:172:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:172:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:172:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:172:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:28:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:28:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:28:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:28:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:28:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:28:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:30:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:30:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:30:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:30:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:30:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:30:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:31:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:31:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:31:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:31:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:31:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:31:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:33:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:33:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:33:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:33:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:33:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:33:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:33:16: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:33:16: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:33:16: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:33:16: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:33:16: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:33:16: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:37:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:37:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:37:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:37:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:37:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:37:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:39:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:39:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:39:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:39:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:39:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:39:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:40:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:40:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:40:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:40:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:40:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:40:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:42:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:42:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:42:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:42:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:42:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:42:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:42:16: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:42:16: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:42:16: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:42:16: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:42:16: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:42:16: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:55:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:55:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:55:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:55:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:55:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:55:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:57:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:57:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:57:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:57:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:57:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:57:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:58:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:58:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:58:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:58:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:58:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:58:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:60:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:60:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:60:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:60:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:60:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:60:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:60:15: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:60:15: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:60:15: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:60:15: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:60:15: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:60:15: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:73:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:73:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:73:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:73:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:73:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:73:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:75:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:75:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:75:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:75:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:75:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:75:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:76:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:76:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:76:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:76:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:76:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:76:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:77:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:77:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:77:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:77:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:77:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:77:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:79:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:79:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:79:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:79:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:79:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:79:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:79:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:79:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:79:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:79:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:79:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:79:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:79:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:79:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:79:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:79:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:79:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:79:20: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:80:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:80:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:80:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:80:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:80:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:80:17: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:80:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:80:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:80:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:80:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:80:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:80:23: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:80:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:80:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:80:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:80:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:80:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:80:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:93:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:93:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:93:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:93:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:93:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:93:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/generic-non-atomic.h:95:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:95:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:95:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:95:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:95:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:95:9: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:96:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:96:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:96:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:96:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:96:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:96:9: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:97:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:97:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:97:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:97:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:97:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:97:9: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:99:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:99:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:99:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:99:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:99:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:99:10: warning: unreplaced symbol 'p'
+./include/asm-generic/bitops/generic-non-atomic.h:99:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:99:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:99:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:99:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:99:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:99:14: warning: unreplaced symbol 'old'
+./include/asm-generic/bitops/generic-non-atomic.h:99:21: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:99:21: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:99:21: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:99:21: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:99:21: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/generic-non-atomic.h:99:21: warning: unreplaced symbol 'mask'
+./include/asm-generic/bitops/instrumented-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:100:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:112:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:112:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:112:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:112:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:112:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:112:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:115:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:115:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:115:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:115:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:115:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:115:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:127:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:127:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:127:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:127:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:127:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:127:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:130:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:130:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:130:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:130:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:130:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:130:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:139:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:139:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:139:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:139:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:139:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:139:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:142:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:142:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:142:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:142:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:142:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:142:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:151:1: warning: too many warnings
+./include/asm-generic/bitops/instrumented-non-atomic.h:151:1: warning: too many warnings
+./include/asm-generic/bitops/instrumented-non-atomic.h:151:1: warning: too many warnings
+./include/asm-generic/bitops/instrumented-non-atomic.h:151:1: warning: too many warnings
+./include/asm-generic/bitops/instrumented-non-atomic.h:151:1: warning: too many warnings
+./include/asm-generic/bitops/instrumented-non-atomic.h:151:1: warning: too many warnings
+./include/asm-generic/bitops/instrumented-non-atomic.h:154:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:154:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:154:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:154:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:154:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:154:9: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:26:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:26:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:26:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:26:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:26:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:26:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:42:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:42:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:42:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:42:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:42:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:42:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:58:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:58:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:58:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:58:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:58:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:58:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:97:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:97:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:97:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:97:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:97:1: warning: unreplaced symbol 'return'
+./include/asm-generic/bitops/instrumented-non-atomic.h:97:1: warning: unreplaced symbol 'return'
^ permalink raw reply [flat|nested] 15+ messages in thread* ✗ Fi.CI.BAT: failure for series starting with [1/3] drm/i915: Move encoder suspend/shutdown helpers to intel_encoder.c
2024-06-17 17:03 [PATCH 1/3] drm/i915: Move encoder suspend/shutdown helpers to intel_encoder.c Imre Deak
` (4 preceding siblings ...)
2024-06-17 18:00 ` ✗ Fi.CI.SPARSE: " Patchwork
@ 2024-06-17 18:08 ` Patchwork
2024-06-18 8:01 ` [PATCH 1/3] " Jani Nikula
6 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2024-06-17 18:08 UTC (permalink / raw)
To: Imre Deak; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 5743 bytes --]
== Series Details ==
Series: series starting with [1/3] drm/i915: Move encoder suspend/shutdown helpers to intel_encoder.c
URL : https://patchwork.freedesktop.org/series/134966/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_14957 -> Patchwork_134966v1
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with Patchwork_134966v1 absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in Patchwork_134966v1, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
to document this new failure mode, which will reduce false positives in CI.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_134966v1/index.html
Participating hosts (41 -> 42)
------------------------------
Additional (3): fi-kbl-7567u bat-kbl-2 fi-elk-e7500
Missing (2): bat-arlh-2 fi-snb-2520m
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in Patchwork_134966v1:
### IGT changes ###
#### Possible regressions ####
* igt@kms_pipe_crc_basic@hang-read-crc@pipe-b-dp-1:
- bat-dg2-8: [PASS][1] -> [FAIL][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14957/bat-dg2-8/igt@kms_pipe_crc_basic@hang-read-crc@pipe-b-dp-1.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_134966v1/bat-dg2-8/igt@kms_pipe_crc_basic@hang-read-crc@pipe-b-dp-1.html
Known issues
------------
Here are the changes found in Patchwork_134966v1 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@fbdev@info:
- bat-kbl-2: NOTRUN -> [SKIP][3] ([i915#1849])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_134966v1/bat-kbl-2/igt@fbdev@info.html
* igt@gem_huc_copy@huc-copy:
- fi-kbl-7567u: NOTRUN -> [SKIP][4] ([i915#2190])
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_134966v1/fi-kbl-7567u/igt@gem_huc_copy@huc-copy.html
* igt@gem_lmem_swapping@parallel-random-engines:
- bat-kbl-2: NOTRUN -> [SKIP][5] +39 other tests skip
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_134966v1/bat-kbl-2/igt@gem_lmem_swapping@parallel-random-engines.html
- fi-kbl-7567u: NOTRUN -> [SKIP][6] ([i915#4613]) +3 other tests skip
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_134966v1/fi-kbl-7567u/igt@gem_lmem_swapping@parallel-random-engines.html
* igt@kms_dsc@dsc-basic:
- fi-kbl-7567u: NOTRUN -> [SKIP][7] +11 other tests skip
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_134966v1/fi-kbl-7567u/igt@kms_dsc@dsc-basic.html
* igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12@pipe-a-hdmi-a-1:
- fi-elk-e7500: NOTRUN -> [SKIP][8] +24 other tests skip
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_134966v1/fi-elk-e7500/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12@pipe-a-hdmi-a-1.html
#### Possible fixes ####
* igt@kms_cursor_legacy@basic-flip-after-cursor-legacy:
- {bat-mtlp-9}: [SKIP][9] ([i915#10580]) -> [PASS][10]
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14957/bat-mtlp-9/igt@kms_cursor_legacy@basic-flip-after-cursor-legacy.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_134966v1/bat-mtlp-9/igt@kms_cursor_legacy@basic-flip-after-cursor-legacy.html
* igt@kms_cursor_legacy@basic-flip-after-cursor-varying-size:
- {bat-mtlp-9}: [DMESG-WARN][11] ([i915#11009]) -> [PASS][12] +1 other test pass
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14957/bat-mtlp-9/igt@kms_cursor_legacy@basic-flip-after-cursor-varying-size.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_134966v1/bat-mtlp-9/igt@kms_cursor_legacy@basic-flip-after-cursor-varying-size.html
* igt@kms_frontbuffer_tracking@basic:
- bat-arls-2: [DMESG-WARN][13] ([i915#7507]) -> [PASS][14]
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14957/bat-arls-2/igt@kms_frontbuffer_tracking@basic.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_134966v1/bat-arls-2/igt@kms_frontbuffer_tracking@basic.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[i915#10580]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10580
[i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072
[i915#10979]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10979
[i915#11009]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11009
[i915#1849]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1849
[i915#2190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2190
[i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613
[i915#6121]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6121
[i915#7507]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7507
[i915#9673]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9673
[i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732
Build changes
-------------
* Linux: CI_DRM_14957 -> Patchwork_134966v1
CI-20190529: 20190529
CI_DRM_14957: 3b4eab7e82c7a1429e257890553ad571f320b8a3 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_7890: a137e386eba9f46f838315f5d93b87561691d45e @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_134966v1: 3b4eab7e82c7a1429e257890553ad571f320b8a3 @ git://anongit.freedesktop.org/gfx-ci/linux
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_134966v1/index.html
[-- Attachment #2: Type: text/html, Size: 6218 bytes --]
^ permalink raw reply [flat|nested] 15+ messages in thread* Re: [PATCH 1/3] drm/i915: Move encoder suspend/shutdown helpers to intel_encoder.c
2024-06-17 17:03 [PATCH 1/3] drm/i915: Move encoder suspend/shutdown helpers to intel_encoder.c Imre Deak
` (5 preceding siblings ...)
2024-06-17 18:08 ` ✗ Fi.CI.BAT: failure " Patchwork
@ 2024-06-18 8:01 ` Jani Nikula
2024-06-18 11:16 ` Imre Deak
6 siblings, 1 reply; 15+ messages in thread
From: Jani Nikula @ 2024-06-18 8:01 UTC (permalink / raw)
To: Imre Deak, intel-gfx, intel-xe
On Mon, 17 Jun 2024, Imre Deak <imre.deak@intel.com> wrote:
> Move the encoder suspend/shutdown helpers to intel_encoder.c, this being
> the logical place for encoder functions.
>
> This also allows sharing the above helpers with the xe driver, done in a
> follow-up patch.
>
> While at it rename the functions using the usual intel_encoder prefix
> and in the functions rename the dev_priv parameter to i915.
This is good forward progress, but really i915 should also follow the xe
pattern of only calling a handful of display functions from top level,
instead of direct calls from i915_driver.c to a lot of places.
One nitpick inline that can be fixed while applying, otherwise
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
>
> Signed-off-by: Imre Deak <imre.deak@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_encoder.c | 44 +++++++++++++++++
> drivers/gpu/drm/i915/display/intel_encoder.h | 5 ++
> drivers/gpu/drm/i915/i915_driver.c | 51 ++------------------
> 3 files changed, 53 insertions(+), 47 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_encoder.c b/drivers/gpu/drm/i915/display/intel_encoder.c
> index dee55f56960fc..8a1dccb893a37 100644
> --- a/drivers/gpu/drm/i915/display/intel_encoder.c
> +++ b/drivers/gpu/drm/i915/display/intel_encoder.c
> @@ -37,3 +37,47 @@ void intel_encoder_link_check_queue_work(struct intel_encoder *encoder, int dela
> mod_delayed_work(i915->unordered_wq,
> &encoder->link_check_work, msecs_to_jiffies(delay_ms));
> }
> +
> +void intel_encoder_suspend_all(struct drm_i915_private *i915)
> +{
> + struct intel_encoder *encoder;
> +
> + if (!HAS_DISPLAY(i915))
> + return;
> +
> + /*
> + * TODO: check and remove holding the modeset locks if none of
> + * the encoders depends on this.
> + */
> + drm_modeset_lock_all(&i915->drm);
> + for_each_intel_encoder(&i915->drm, encoder)
> + if (encoder->suspend)
> + encoder->suspend(encoder);
> + drm_modeset_unlock_all(&i915->drm);
> +
> + for_each_intel_encoder(&i915->drm, encoder)
> + if (encoder->suspend_complete)
> + encoder->suspend_complete(encoder);
> +}
> +
> +void intel_encoder_shutdown_all(struct drm_i915_private *i915)
> +{
> + struct intel_encoder *encoder;
> +
> + if (!HAS_DISPLAY(i915))
> + return;
> +
> + /*
> + * TODO: check and remove holding the modeset locks if none of
> + * the encoders depends on this.
> + */
> + drm_modeset_lock_all(&i915->drm);
> + for_each_intel_encoder(&i915->drm, encoder)
> + if (encoder->shutdown)
> + encoder->shutdown(encoder);
> + drm_modeset_unlock_all(&i915->drm);
> +
> + for_each_intel_encoder(&i915->drm, encoder)
> + if (encoder->shutdown_complete)
> + encoder->shutdown_complete(encoder);
> +}
> diff --git a/drivers/gpu/drm/i915/display/intel_encoder.h b/drivers/gpu/drm/i915/display/intel_encoder.h
> index 2cda054e2b152..e6cd74576f78e 100644
> --- a/drivers/gpu/drm/i915/display/intel_encoder.h
> +++ b/drivers/gpu/drm/i915/display/intel_encoder.h
> @@ -6,6 +6,8 @@
> #ifndef __INTEL_ENCODER_H__
> #define __INTEL_ENCODER_H__
>
> +struct drm_i915_private;
> +
Superfluous newline.
> struct intel_encoder;
>
> void intel_encoder_link_check_init(struct intel_encoder *encoder,
> @@ -13,4 +15,7 @@ void intel_encoder_link_check_init(struct intel_encoder *encoder,
> void intel_encoder_link_check_queue_work(struct intel_encoder *encoder, int delay_ms);
> void intel_encoder_link_check_flush_work(struct intel_encoder *encoder);
>
> +void intel_encoder_suspend_all(struct drm_i915_private *i915);
> +void intel_encoder_shutdown_all(struct drm_i915_private *i915);
> +
> #endif /* __INTEL_ENCODER_H__ */
> diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
> index 161b21eff6943..e9e38ed246f66 100644
> --- a/drivers/gpu/drm/i915/i915_driver.c
> +++ b/drivers/gpu/drm/i915/i915_driver.c
> @@ -53,6 +53,7 @@
> #include "display/intel_dmc.h"
> #include "display/intel_dp.h"
> #include "display/intel_dpt.h"
> +#include "display/intel_encoder.h"
> #include "display/intel_fbdev.h"
> #include "display/intel_hotplug.h"
> #include "display/intel_overlay.h"
> @@ -933,50 +934,6 @@ static void i915_driver_postclose(struct drm_device *dev, struct drm_file *file)
> i915_gem_flush_free_objects(to_i915(dev));
> }
>
> -static void intel_suspend_encoders(struct drm_i915_private *dev_priv)
> -{
> - struct intel_encoder *encoder;
> -
> - if (!HAS_DISPLAY(dev_priv))
> - return;
> -
> - /*
> - * TODO: check and remove holding the modeset locks if none of
> - * the encoders depends on this.
> - */
> - drm_modeset_lock_all(&dev_priv->drm);
> - for_each_intel_encoder(&dev_priv->drm, encoder)
> - if (encoder->suspend)
> - encoder->suspend(encoder);
> - drm_modeset_unlock_all(&dev_priv->drm);
> -
> - for_each_intel_encoder(&dev_priv->drm, encoder)
> - if (encoder->suspend_complete)
> - encoder->suspend_complete(encoder);
> -}
> -
> -static void intel_shutdown_encoders(struct drm_i915_private *dev_priv)
> -{
> - struct intel_encoder *encoder;
> -
> - if (!HAS_DISPLAY(dev_priv))
> - return;
> -
> - /*
> - * TODO: check and remove holding the modeset locks if none of
> - * the encoders depends on this.
> - */
> - drm_modeset_lock_all(&dev_priv->drm);
> - for_each_intel_encoder(&dev_priv->drm, encoder)
> - if (encoder->shutdown)
> - encoder->shutdown(encoder);
> - drm_modeset_unlock_all(&dev_priv->drm);
> -
> - for_each_intel_encoder(&dev_priv->drm, encoder)
> - if (encoder->shutdown_complete)
> - encoder->shutdown_complete(encoder);
> -}
> -
> void i915_driver_shutdown(struct drm_i915_private *i915)
> {
> disable_rpm_wakeref_asserts(&i915->runtime_pm);
> @@ -999,8 +956,8 @@ void i915_driver_shutdown(struct drm_i915_private *i915)
> if (HAS_DISPLAY(i915))
> intel_display_driver_suspend_access(i915);
>
> - intel_suspend_encoders(i915);
> - intel_shutdown_encoders(i915);
> + intel_encoder_suspend_all(i915);
> + intel_encoder_shutdown_all(i915);
>
> intel_dmc_suspend(i915);
>
> @@ -1083,7 +1040,7 @@ static int i915_drm_suspend(struct drm_device *dev)
> if (HAS_DISPLAY(dev_priv))
> intel_display_driver_suspend_access(dev_priv);
>
> - intel_suspend_encoders(dev_priv);
> + intel_encoder_suspend_all(dev_priv);
>
> /* Must be called before GGTT is suspended. */
> intel_dpt_suspend(dev_priv);
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 15+ messages in thread* Re: [PATCH 1/3] drm/i915: Move encoder suspend/shutdown helpers to intel_encoder.c
2024-06-18 8:01 ` [PATCH 1/3] " Jani Nikula
@ 2024-06-18 11:16 ` Imre Deak
0 siblings, 0 replies; 15+ messages in thread
From: Imre Deak @ 2024-06-18 11:16 UTC (permalink / raw)
To: Jani Nikula; +Cc: intel-gfx, intel-xe
On Tue, Jun 18, 2024 at 11:01:18AM +0300, Jani Nikula wrote:
> On Mon, 17 Jun 2024, Imre Deak <imre.deak@intel.com> wrote:
> > Move the encoder suspend/shutdown helpers to intel_encoder.c, this being
> > the logical place for encoder functions.
> >
> > This also allows sharing the above helpers with the xe driver, done in a
> > follow-up patch.
> >
> > While at it rename the functions using the usual intel_encoder prefix
> > and in the functions rename the dev_priv parameter to i915.
>
> This is good forward progress, but really i915 should also follow the xe
> pattern of only calling a handful of display functions from top level,
> instead of direct calls from i915_driver.c to a lot of places.
Yes, agreed on moving the display related calls to
intel_display_driver.c / intel_display_driver_suspend(). It needs more
thought and could be done as a follow up imo.
> One nitpick inline that can be fixed while applying, otherwise
>
> Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Thanks.
> > Signed-off-by: Imre Deak <imre.deak@intel.com>
> > ---
> > drivers/gpu/drm/i915/display/intel_encoder.c | 44 +++++++++++++++++
> > drivers/gpu/drm/i915/display/intel_encoder.h | 5 ++
> > drivers/gpu/drm/i915/i915_driver.c | 51 ++------------------
> > 3 files changed, 53 insertions(+), 47 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_encoder.c b/drivers/gpu/drm/i915/display/intel_encoder.c
> > index dee55f56960fc..8a1dccb893a37 100644
> > --- a/drivers/gpu/drm/i915/display/intel_encoder.c
> > +++ b/drivers/gpu/drm/i915/display/intel_encoder.c
> > @@ -37,3 +37,47 @@ void intel_encoder_link_check_queue_work(struct intel_encoder *encoder, int dela
> > mod_delayed_work(i915->unordered_wq,
> > &encoder->link_check_work, msecs_to_jiffies(delay_ms));
> > }
> > +
> > +void intel_encoder_suspend_all(struct drm_i915_private *i915)
> > +{
> > + struct intel_encoder *encoder;
> > +
> > + if (!HAS_DISPLAY(i915))
> > + return;
> > +
> > + /*
> > + * TODO: check and remove holding the modeset locks if none of
> > + * the encoders depends on this.
> > + */
> > + drm_modeset_lock_all(&i915->drm);
> > + for_each_intel_encoder(&i915->drm, encoder)
> > + if (encoder->suspend)
> > + encoder->suspend(encoder);
> > + drm_modeset_unlock_all(&i915->drm);
> > +
> > + for_each_intel_encoder(&i915->drm, encoder)
> > + if (encoder->suspend_complete)
> > + encoder->suspend_complete(encoder);
> > +}
> > +
> > +void intel_encoder_shutdown_all(struct drm_i915_private *i915)
> > +{
> > + struct intel_encoder *encoder;
> > +
> > + if (!HAS_DISPLAY(i915))
> > + return;
> > +
> > + /*
> > + * TODO: check and remove holding the modeset locks if none of
> > + * the encoders depends on this.
> > + */
> > + drm_modeset_lock_all(&i915->drm);
> > + for_each_intel_encoder(&i915->drm, encoder)
> > + if (encoder->shutdown)
> > + encoder->shutdown(encoder);
> > + drm_modeset_unlock_all(&i915->drm);
> > +
> > + for_each_intel_encoder(&i915->drm, encoder)
> > + if (encoder->shutdown_complete)
> > + encoder->shutdown_complete(encoder);
> > +}
> > diff --git a/drivers/gpu/drm/i915/display/intel_encoder.h b/drivers/gpu/drm/i915/display/intel_encoder.h
> > index 2cda054e2b152..e6cd74576f78e 100644
> > --- a/drivers/gpu/drm/i915/display/intel_encoder.h
> > +++ b/drivers/gpu/drm/i915/display/intel_encoder.h
> > @@ -6,6 +6,8 @@
> > #ifndef __INTEL_ENCODER_H__
> > #define __INTEL_ENCODER_H__
> >
> > +struct drm_i915_private;
> > +
>
> Superfluous newline.
>
> > struct intel_encoder;
> >
> > void intel_encoder_link_check_init(struct intel_encoder *encoder,
> > @@ -13,4 +15,7 @@ void intel_encoder_link_check_init(struct intel_encoder *encoder,
> > void intel_encoder_link_check_queue_work(struct intel_encoder *encoder, int delay_ms);
> > void intel_encoder_link_check_flush_work(struct intel_encoder *encoder);
> >
> > +void intel_encoder_suspend_all(struct drm_i915_private *i915);
> > +void intel_encoder_shutdown_all(struct drm_i915_private *i915);
> > +
> > #endif /* __INTEL_ENCODER_H__ */
> > diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
> > index 161b21eff6943..e9e38ed246f66 100644
> > --- a/drivers/gpu/drm/i915/i915_driver.c
> > +++ b/drivers/gpu/drm/i915/i915_driver.c
> > @@ -53,6 +53,7 @@
> > #include "display/intel_dmc.h"
> > #include "display/intel_dp.h"
> > #include "display/intel_dpt.h"
> > +#include "display/intel_encoder.h"
> > #include "display/intel_fbdev.h"
> > #include "display/intel_hotplug.h"
> > #include "display/intel_overlay.h"
> > @@ -933,50 +934,6 @@ static void i915_driver_postclose(struct drm_device *dev, struct drm_file *file)
> > i915_gem_flush_free_objects(to_i915(dev));
> > }
> >
> > -static void intel_suspend_encoders(struct drm_i915_private *dev_priv)
> > -{
> > - struct intel_encoder *encoder;
> > -
> > - if (!HAS_DISPLAY(dev_priv))
> > - return;
> > -
> > - /*
> > - * TODO: check and remove holding the modeset locks if none of
> > - * the encoders depends on this.
> > - */
> > - drm_modeset_lock_all(&dev_priv->drm);
> > - for_each_intel_encoder(&dev_priv->drm, encoder)
> > - if (encoder->suspend)
> > - encoder->suspend(encoder);
> > - drm_modeset_unlock_all(&dev_priv->drm);
> > -
> > - for_each_intel_encoder(&dev_priv->drm, encoder)
> > - if (encoder->suspend_complete)
> > - encoder->suspend_complete(encoder);
> > -}
> > -
> > -static void intel_shutdown_encoders(struct drm_i915_private *dev_priv)
> > -{
> > - struct intel_encoder *encoder;
> > -
> > - if (!HAS_DISPLAY(dev_priv))
> > - return;
> > -
> > - /*
> > - * TODO: check and remove holding the modeset locks if none of
> > - * the encoders depends on this.
> > - */
> > - drm_modeset_lock_all(&dev_priv->drm);
> > - for_each_intel_encoder(&dev_priv->drm, encoder)
> > - if (encoder->shutdown)
> > - encoder->shutdown(encoder);
> > - drm_modeset_unlock_all(&dev_priv->drm);
> > -
> > - for_each_intel_encoder(&dev_priv->drm, encoder)
> > - if (encoder->shutdown_complete)
> > - encoder->shutdown_complete(encoder);
> > -}
> > -
> > void i915_driver_shutdown(struct drm_i915_private *i915)
> > {
> > disable_rpm_wakeref_asserts(&i915->runtime_pm);
> > @@ -999,8 +956,8 @@ void i915_driver_shutdown(struct drm_i915_private *i915)
> > if (HAS_DISPLAY(i915))
> > intel_display_driver_suspend_access(i915);
> >
> > - intel_suspend_encoders(i915);
> > - intel_shutdown_encoders(i915);
> > + intel_encoder_suspend_all(i915);
> > + intel_encoder_shutdown_all(i915);
> >
> > intel_dmc_suspend(i915);
> >
> > @@ -1083,7 +1040,7 @@ static int i915_drm_suspend(struct drm_device *dev)
> > if (HAS_DISPLAY(dev_priv))
> > intel_display_driver_suspend_access(dev_priv);
> >
> > - intel_suspend_encoders(dev_priv);
> > + intel_encoder_suspend_all(dev_priv);
> >
> > /* Must be called before GGTT is suspended. */
> > intel_dpt_suspend(dev_priv);
>
> --
> Jani Nikula, Intel
^ permalink raw reply [flat|nested] 15+ messages in thread