> -----Original Message----- > From: Intel-gfx <intel-gfx-bounces@xxxxxxxxxxxxxxxxxxxxx> On Behalf Of Jani > Nikula > Sent: Thursday, August 11, 2022 8:37 PM > To: intel-gfx@xxxxxxxxxxxxxxxxxxxxx > Cc: Nikula, Jani <jani.nikula@xxxxxxxxx>; De Marchi, Lucas > <lucas.demarchi@xxxxxxxxx> > Subject: [PATCH 09/39] drm/i915: move and group gmbus > members under display.gmbus > > Move display related members under drm_i915_private display sub-struct. > > Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx> > --- > drivers/gpu/drm/i915/display/intel_cdclk.c | 6 +-- > .../gpu/drm/i915/display/intel_display_core.h | 23 ++++++++++ > drivers/gpu/drm/i915/display/intel_dp_aux.c | 2 +- > drivers/gpu/drm/i915/display/intel_gmbus.c | 46 +++++++++---------- > drivers/gpu/drm/i915/i915_drv.h | 16 ------- > drivers/gpu/drm/i915/i915_irq.c | 4 +- > drivers/gpu/drm/i915/i915_reg.h | 14 +++--- > 7 files changed, 59 insertions(+), 52 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.c > b/drivers/gpu/drm/i915/display/intel_cdclk.c > index 6095f5800a2e..ea40c75c2986 100644 > --- a/drivers/gpu/drm/i915/display/intel_cdclk.c > +++ b/drivers/gpu/drm/i915/display/intel_cdclk.c > @@ -2098,12 +2098,12 @@ static void intel_set_cdclk(struct > drm_i915_private *dev_priv, > * functions use cdclk. Not all platforms/ports do, > * but we'll lock them all for simplicity. > */ > - mutex_lock(&dev_priv->gmbus_mutex); > + mutex_lock(&dev_priv->display.gmbus.mutex); > for_each_intel_dp(&dev_priv->drm, encoder) { > struct intel_dp *intel_dp = enc_to_intel_dp(encoder); > > mutex_lock_nest_lock(&intel_dp->aux.hw_mutex, > - &dev_priv->gmbus_mutex); > + &dev_priv->display.gmbus.mutex); > } > > intel_cdclk_set_cdclk(dev_priv, cdclk_config, pipe); @@ -2113,7 > +2113,7 @@ static void intel_set_cdclk(struct drm_i915_private *dev_priv, > > mutex_unlock(&intel_dp->aux.hw_mutex); > } > - mutex_unlock(&dev_priv->gmbus_mutex); > + mutex_unlock(&dev_priv->display.gmbus.mutex); > > for_each_intel_encoder_with_psr(&dev_priv->drm, encoder) { > struct intel_dp *intel_dp = enc_to_intel_dp(encoder); diff -- > git a/drivers/gpu/drm/i915/display/intel_display_core.h > b/drivers/gpu/drm/i915/display/intel_display_core.h > index 306584c038c9..fe19d4f9a9ab 100644 > --- a/drivers/gpu/drm/i915/display/intel_display_core.h > +++ b/drivers/gpu/drm/i915/display/intel_display_core.h > @@ -6,7 +6,11 @@ > #ifndef __INTEL_DISPLAY_CORE_H__ > #define __INTEL_DISPLAY_CORE_H__ > > +#include <linux/mutex.h> > #include <linux/types.h> > +#include <linux/wait.h> > + > +#include "intel_gmbus.h" > > struct drm_i915_private; > struct intel_atomic_state; > @@ -78,6 +82,25 @@ struct intel_display { > /* Display internal color functions */ > const struct intel_color_funcs *color; > } funcs; > + > + /* Grouping using anonymous structs. Keep sorted. */ > + struct { > + /* > + * Base address of where the gmbus and gpio blocks are > located > + * (either on PCH or on SoC for platforms without PCH). > + */ > + u32 mmio_base; > + > + /* > + * gmbus.mutex protects against concurrent usage of the > single > + * hw gmbus controller on different i2c buses. > + */ > + struct mutex mutex; > + > + struct intel_gmbus *bus[GMBUS_NUM_PINS]; > + > + wait_queue_head_t wait_queue; > + } gmbus; > }; Can this be moved to struct intel_dp? Thanks and Regards, Arun R Murthy --------------------