Message ID | 1418125588-20072-1-git-send-email-mika.kuoppala@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, 09 Dec 2014, Mika Kuoppala <mika.kuoppala@linux.intel.com> wrote: > Make the domains and domain identifiers enums. To emphasize > the difference in order to avoid mistakes. > > Suggested-by: Daniel Vetter <daniel.vetter@ffwll.ch> > Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com> > --- > drivers/gpu/drm/i915/i915_drv.h | 41 +++++++++++++++++---------------- > drivers/gpu/drm/i915/intel_uncore.c | 45 +++++++++++++++++++------------------ > 2 files changed, 45 insertions(+), 41 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h > index 0d47397..5c6c372 100644 > --- a/drivers/gpu/drm/i915/i915_drv.h > +++ b/drivers/gpu/drm/i915/i915_drv.h > @@ -533,11 +533,28 @@ struct drm_i915_display_funcs { > void (*enable_backlight)(struct intel_connector *connector); > }; > > +enum fw_domain_id { Does anyone else think of "firmware" first when seeing "fw", and "forcewake" only after a moment? Jani. > + FW_DOMAIN_ID_RENDER = 0, > + FW_DOMAIN_ID_BLITTER, > + FW_DOMAIN_ID_MEDIA, > + > + FW_DOMAIN_ID_COUNT > +}; > + > +enum fw_domains { > + FORCEWAKE_RENDER = (1 << FW_DOMAIN_ID_RENDER), > + FORCEWAKE_BLITTER = (1 << FW_DOMAIN_ID_BLITTER), > + FORCEWAKE_MEDIA = (1 << FW_DOMAIN_ID_MEDIA), > + FORCEWAKE_ALL = (FORCEWAKE_RENDER | > + FORCEWAKE_BLITTER | > + FORCEWAKE_MEDIA) > +}; > + > struct intel_uncore_funcs { > void (*force_wake_get)(struct drm_i915_private *dev_priv, > - int fw_engine); > + enum fw_domains domains); > void (*force_wake_put)(struct drm_i915_private *dev_priv, > - int fw_engine); > + enum fw_domains domains); > > uint8_t (*mmio_readb)(struct drm_i915_private *dev_priv, off_t offset, bool trace); > uint16_t (*mmio_readw)(struct drm_i915_private *dev_priv, off_t offset, bool trace); > @@ -554,25 +571,17 @@ struct intel_uncore_funcs { > uint64_t val, bool trace); > }; > > -enum { > - FW_DOMAIN_ID_RENDER = 0, > - FW_DOMAIN_ID_BLITTER, > - FW_DOMAIN_ID_MEDIA, > - > - FW_DOMAIN_ID_COUNT > -}; > - > struct intel_uncore { > spinlock_t lock; /** lock is also taken in irq contexts. */ > > struct intel_uncore_funcs funcs; > > unsigned fifo_count; > - unsigned fw_domains; > + enum fw_domains fw_domains; > > struct intel_uncore_forcewake_domain { > struct drm_i915_private *i915; > - int id; > + enum fw_domain_id id; > unsigned wake_count; > struct timer_list timer; > u32 reg_set; > @@ -582,12 +591,6 @@ struct intel_uncore { > u32 reg_post; > u32 val_reset; > } fw_domain[FW_DOMAIN_ID_COUNT]; > -#define FORCEWAKE_RENDER (1 << FW_DOMAIN_ID_RENDER) > -#define FORCEWAKE_BLITTER (1 << FW_DOMAIN_ID_BLITTER) > -#define FORCEWAKE_MEDIA (1 << FW_DOMAIN_ID_MEDIA) > -#define FORCEWAKE_ALL (FORCEWAKE_RENDER | \ > - FORCEWAKE_BLITTER | \ > - FORCEWAKE_MEDIA) > }; > > /* Iterate over initialised fw domains */ > @@ -2449,7 +2452,7 @@ extern void intel_uncore_init(struct drm_device *dev); > extern void intel_uncore_check_errors(struct drm_device *dev); > extern void intel_uncore_fini(struct drm_device *dev); > extern void intel_uncore_forcewake_reset(struct drm_device *dev, bool restore); > -const char *intel_uncore_forcewake_domain_to_str(const int domain_id); > +const char *intel_uncore_forcewake_domain_to_str(const enum fw_domain_id id); > void intel_uncore_forcewake_get(struct drm_i915_private *dev_priv, > unsigned fw_domains); > void intel_uncore_forcewake_put(struct drm_i915_private *dev_priv, > diff --git a/drivers/gpu/drm/i915/intel_uncore.c b/drivers/gpu/drm/i915/intel_uncore.c > index 509b9c9..e802486 100644 > --- a/drivers/gpu/drm/i915/intel_uncore.c > +++ b/drivers/gpu/drm/i915/intel_uncore.c > @@ -49,7 +49,7 @@ static const char * const forcewake_domain_names[] = { > }; > > const char * > -intel_uncore_forcewake_domain_to_str(const int id) > +intel_uncore_forcewake_domain_to_str(const enum fw_domain_id id) > { > BUILD_BUG_ON((sizeof(forcewake_domain_names)/sizeof(const char *)) != > FW_DOMAIN_ID_COUNT); > @@ -122,10 +122,10 @@ fw_domain_posting_read(const struct intel_uncore_forcewake_domain *d) > } > > static void > -fw_domains_get(struct drm_i915_private *dev_priv, int fw_domains) > +fw_domains_get(struct drm_i915_private *dev_priv, enum fw_domains fw_domains) > { > struct intel_uncore_forcewake_domain *d; > - int id; > + enum fw_domain_id id; > > for_each_fw_domain_mask(d, fw_domains, dev_priv, id) { > fw_domain_wait_ack_clear(d); > @@ -136,10 +136,10 @@ fw_domains_get(struct drm_i915_private *dev_priv, int fw_domains) > } > > static void > -fw_domains_put(struct drm_i915_private *dev_priv, int fw_domains) > +fw_domains_put(struct drm_i915_private *dev_priv, enum fw_domains fw_domains) > { > struct intel_uncore_forcewake_domain *d; > - int id; > + enum fw_domain_id id; > > for_each_fw_domain_mask(d, fw_domains, dev_priv, id) > fw_domain_put(d); > @@ -149,7 +149,7 @@ static void > fw_domains_posting_read(struct drm_i915_private *dev_priv) > { > struct intel_uncore_forcewake_domain *d; > - int id; > + enum fw_domain_id id; > > /* No need to do for all, just do for first found */ > for_each_fw_domain(d, dev_priv, id) { > @@ -159,10 +159,10 @@ fw_domains_posting_read(struct drm_i915_private *dev_priv) > } > > static void > -fw_domains_reset(struct drm_i915_private *dev_priv, const unsigned fw_domains) > +fw_domains_reset(struct drm_i915_private *dev_priv, enum fw_domains fw_domains) > { > struct intel_uncore_forcewake_domain *d; > - int id; > + enum fw_domain_id id; > > for_each_fw_domain_mask(d, fw_domains, dev_priv, id) > fw_domain_reset(d); > @@ -181,7 +181,7 @@ static void __gen6_gt_wait_for_thread_c0(struct drm_i915_private *dev_priv) > } > > static void fw_domains_get_with_thread_status(struct drm_i915_private *dev_priv, > - int fw_domains) > + enum fw_domains fw_domains) > { > fw_domains_get(dev_priv, fw_domains); > > @@ -199,7 +199,7 @@ static void gen6_gt_check_fifodbg(struct drm_i915_private *dev_priv) > } > > static void fw_domains_put_with_fifo(struct drm_i915_private *dev_priv, > - int fw_domains) > + enum fw_domains fw_domains) > { > fw_domains_put(dev_priv, fw_domains); > gen6_gt_check_fifodbg(dev_priv); > @@ -251,9 +251,10 @@ static void intel_uncore_fw_release_timer(unsigned long arg) > void intel_uncore_forcewake_reset(struct drm_device *dev, bool restore) > { > struct drm_i915_private *dev_priv = dev->dev_private; > - unsigned long irqflags, fw = 0; > + unsigned long irqflags; > struct intel_uncore_forcewake_domain *domain; > - int id; > + enum fw_domain_id id; > + enum fw_domains fw = 0; > > /* Hold uncore.lock across reset to prevent any register access > * with forcewake not set correctly > @@ -329,11 +330,11 @@ void intel_uncore_sanitize(struct drm_device *dev) > * intel_uncore_forcewake_put() at the end of the sequence. > */ > void intel_uncore_forcewake_get(struct drm_i915_private *dev_priv, > - unsigned fw_domains) > + enum fw_domains fw_domains) > { > unsigned long irqflags; > struct intel_uncore_forcewake_domain *domain; > - int id; > + enum fw_domain_id id; > > if (!dev_priv->uncore.funcs.force_wake_get) > return; > @@ -358,11 +359,11 @@ void intel_uncore_forcewake_get(struct drm_i915_private *dev_priv, > * see intel_uncore_forcewake_get() > */ > void intel_uncore_forcewake_put(struct drm_i915_private *dev_priv, > - unsigned fw_domains) > + enum fw_domains fw_domains) > { > unsigned long irqflags; > struct intel_uncore_forcewake_domain *domain; > - int id; > + enum fw_domain_id id; > > if (!dev_priv->uncore.funcs.force_wake_put) > return; > @@ -386,7 +387,7 @@ void intel_uncore_forcewake_put(struct drm_i915_private *dev_priv, > void assert_forcewakes_inactive(struct drm_i915_private *dev_priv) > { > struct intel_uncore_forcewake_domain *domain; > - int id; > + enum fw_domain_id id; > > if (!dev_priv->uncore.funcs.force_wake_get) > return; > @@ -559,10 +560,10 @@ __gen2_read(64) > return val > > static inline void __force_wake_get(struct drm_i915_private *dev_priv, > - unsigned fw_domains) > + enum fw_domains fw_domains) > { > struct intel_uncore_forcewake_domain *domain; > - int id; > + enum fw_domain_id id; > > if (WARN_ON(!fw_domains)) > return; > @@ -626,7 +627,7 @@ chv_read##x(struct drm_i915_private *dev_priv, off_t reg, bool trace) { \ > #define __gen9_read(x) \ > static u##x \ > gen9_read##x(struct drm_i915_private *dev_priv, off_t reg, bool trace) { \ > - unsigned fw_engine; \ > + enum fw_domains fw_engine; \ > GEN6_READ_HEADER(x); \ > if (!SKL_NEEDS_FORCE_WAKE((dev_priv), (reg))) \ > fw_engine = 0; \ > @@ -826,7 +827,7 @@ static bool is_gen9_shadowed(struct drm_i915_private *dev_priv, u32 reg) > static void \ > gen9_write##x(struct drm_i915_private *dev_priv, off_t reg, u##x val, \ > bool trace) { \ > - unsigned fw_engine; \ > + enum fw_domains fw_engine; \ > GEN6_WRITE_HEADER; \ > if (!SKL_NEEDS_FORCE_WAKE((dev_priv), (reg)) || \ > is_gen9_shadowed(dev_priv, reg)) \ > @@ -892,7 +893,7 @@ do { \ > > > static void fw_domain_init(struct drm_i915_private *dev_priv, > - u32 domain_id, u32 reg_set, u32 reg_ack) > + enum fw_domain_id domain_id, u32 reg_set, u32 reg_ack) > { > struct intel_uncore_forcewake_domain *d; > > -- > 1.9.1 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
On Tue, Dec 09, 2014 at 03:32:05PM +0200, Jani Nikula wrote: > On Tue, 09 Dec 2014, Mika Kuoppala <mika.kuoppala@linux.intel.com> wrote: > > Make the domains and domain identifiers enums. To emphasize > > the difference in order to avoid mistakes. > > > > Suggested-by: Daniel Vetter <daniel.vetter@ffwll.ch> > > Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com> > > --- > > drivers/gpu/drm/i915/i915_drv.h | 41 +++++++++++++++++---------------- > > drivers/gpu/drm/i915/intel_uncore.c | 45 +++++++++++++++++++------------------ > > 2 files changed, 45 insertions(+), 41 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h > > index 0d47397..5c6c372 100644 > > --- a/drivers/gpu/drm/i915/i915_drv.h > > +++ b/drivers/gpu/drm/i915/i915_drv.h > > @@ -533,11 +533,28 @@ struct drm_i915_display_funcs { > > void (*enable_backlight)(struct intel_connector *connector); > > }; > > > > +enum fw_domain_id { > > Does anyone else think of "firmware" first when seeing "fw", and > "forcewake" only after a moment? Hm yeah. -Daniel
On Tuesday 09 December 2014 05:16 PM, Mika Kuoppala wrote: > Make the domains and domain identifiers enums. To emphasize > the difference in order to avoid mistakes. > > Suggested-by: Daniel Vetter <daniel.vetter@ffwll.ch> > Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com> > --- > drivers/gpu/drm/i915/i915_drv.h | 41 +++++++++++++++++---------------- > drivers/gpu/drm/i915/intel_uncore.c | 45 +++++++++++++++++++------------------ > 2 files changed, 45 insertions(+), 41 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h > index 0d47397..5c6c372 100644 > --- a/drivers/gpu/drm/i915/i915_drv.h > +++ b/drivers/gpu/drm/i915/i915_drv.h > @@ -533,11 +533,28 @@ struct drm_i915_display_funcs { > void (*enable_backlight)(struct intel_connector *connector); > }; > > +enum fw_domain_id { > + FW_DOMAIN_ID_RENDER = 0, > + FW_DOMAIN_ID_BLITTER, > + FW_DOMAIN_ID_MEDIA, > + > + FW_DOMAIN_ID_COUNT > +}; > + > +enum fw_domains { > + FORCEWAKE_RENDER = (1 << FW_DOMAIN_ID_RENDER), > + FORCEWAKE_BLITTER = (1 << FW_DOMAIN_ID_BLITTER), > + FORCEWAKE_MEDIA = (1 << FW_DOMAIN_ID_MEDIA), > + FORCEWAKE_ALL = (FORCEWAKE_RENDER | > + FORCEWAKE_BLITTER | > + FORCEWAKE_MEDIA) > +}; > + > struct intel_uncore_funcs { > void (*force_wake_get)(struct drm_i915_private *dev_priv, > - int fw_engine); > + enum fw_domains domains); > void (*force_wake_put)(struct drm_i915_private *dev_priv, > - int fw_engine); > + enum fw_domains domains); > > uint8_t (*mmio_readb)(struct drm_i915_private *dev_priv, off_t offset, bool trace); > uint16_t (*mmio_readw)(struct drm_i915_private *dev_priv, off_t offset, bool trace); > @@ -554,25 +571,17 @@ struct intel_uncore_funcs { > uint64_t val, bool trace); > }; > > -enum { > - FW_DOMAIN_ID_RENDER = 0, > - FW_DOMAIN_ID_BLITTER, > - FW_DOMAIN_ID_MEDIA, > - > - FW_DOMAIN_ID_COUNT > -}; > - > struct intel_uncore { > spinlock_t lock; /** lock is also taken in irq contexts. */ > > struct intel_uncore_funcs funcs; > > unsigned fifo_count; > - unsigned fw_domains; > + enum fw_domains fw_domains; > > struct intel_uncore_forcewake_domain { > struct drm_i915_private *i915; > - int id; > + enum fw_domain_id id; > unsigned wake_count; > struct timer_list timer; > u32 reg_set; > @@ -582,12 +591,6 @@ struct intel_uncore { > u32 reg_post; > u32 val_reset; > } fw_domain[FW_DOMAIN_ID_COUNT]; > -#define FORCEWAKE_RENDER (1 << FW_DOMAIN_ID_RENDER) > -#define FORCEWAKE_BLITTER (1 << FW_DOMAIN_ID_BLITTER) > -#define FORCEWAKE_MEDIA (1 << FW_DOMAIN_ID_MEDIA) > -#define FORCEWAKE_ALL (FORCEWAKE_RENDER | \ > - FORCEWAKE_BLITTER | \ > - FORCEWAKE_MEDIA) > }; > > /* Iterate over initialised fw domains */ > @@ -2449,7 +2452,7 @@ extern void intel_uncore_init(struct drm_device *dev); > extern void intel_uncore_check_errors(struct drm_device *dev); > extern void intel_uncore_fini(struct drm_device *dev); > extern void intel_uncore_forcewake_reset(struct drm_device *dev, bool restore); > -const char *intel_uncore_forcewake_domain_to_str(const int domain_id); > +const char *intel_uncore_forcewake_domain_to_str(const enum fw_domain_id id); > void intel_uncore_forcewake_get(struct drm_i915_private *dev_priv, > unsigned fw_domains); > void intel_uncore_forcewake_put(struct drm_i915_private *dev_priv, > diff --git a/drivers/gpu/drm/i915/intel_uncore.c b/drivers/gpu/drm/i915/intel_uncore.c > index 509b9c9..e802486 100644 > --- a/drivers/gpu/drm/i915/intel_uncore.c > +++ b/drivers/gpu/drm/i915/intel_uncore.c > @@ -49,7 +49,7 @@ static const char * const forcewake_domain_names[] = { > }; > > const char * > -intel_uncore_forcewake_domain_to_str(const int id) > +intel_uncore_forcewake_domain_to_str(const enum fw_domain_id id) > { > BUILD_BUG_ON((sizeof(forcewake_domain_names)/sizeof(const char *)) != > FW_DOMAIN_ID_COUNT); > @@ -122,10 +122,10 @@ fw_domain_posting_read(const struct intel_uncore_forcewake_domain *d) > } > > static void > -fw_domains_get(struct drm_i915_private *dev_priv, int fw_domains) > +fw_domains_get(struct drm_i915_private *dev_priv, enum fw_domains fw_domains) > { > struct intel_uncore_forcewake_domain *d; > - int id; > + enum fw_domain_id id; > > for_each_fw_domain_mask(d, fw_domains, dev_priv, id) { > fw_domain_wait_ack_clear(d); > @@ -136,10 +136,10 @@ fw_domains_get(struct drm_i915_private *dev_priv, int fw_domains) > } > > static void > -fw_domains_put(struct drm_i915_private *dev_priv, int fw_domains) > +fw_domains_put(struct drm_i915_private *dev_priv, enum fw_domains fw_domains) > { > struct intel_uncore_forcewake_domain *d; > - int id; > + enum fw_domain_id id; > > for_each_fw_domain_mask(d, fw_domains, dev_priv, id) > fw_domain_put(d); > @@ -149,7 +149,7 @@ static void > fw_domains_posting_read(struct drm_i915_private *dev_priv) > { > struct intel_uncore_forcewake_domain *d; > - int id; > + enum fw_domain_id id; > > /* No need to do for all, just do for first found */ > for_each_fw_domain(d, dev_priv, id) { > @@ -159,10 +159,10 @@ fw_domains_posting_read(struct drm_i915_private *dev_priv) > } > > static void > -fw_domains_reset(struct drm_i915_private *dev_priv, const unsigned fw_domains) > +fw_domains_reset(struct drm_i915_private *dev_priv, enum fw_domains fw_domains) > { > struct intel_uncore_forcewake_domain *d; > - int id; > + enum fw_domain_id id; > > for_each_fw_domain_mask(d, fw_domains, dev_priv, id) > fw_domain_reset(d); > @@ -181,7 +181,7 @@ static void __gen6_gt_wait_for_thread_c0(struct drm_i915_private *dev_priv) > } > > static void fw_domains_get_with_thread_status(struct drm_i915_private *dev_priv, > - int fw_domains) > + enum fw_domains fw_domains) > { > fw_domains_get(dev_priv, fw_domains); > > @@ -199,7 +199,7 @@ static void gen6_gt_check_fifodbg(struct drm_i915_private *dev_priv) > } > > static void fw_domains_put_with_fifo(struct drm_i915_private *dev_priv, > - int fw_domains) > + enum fw_domains fw_domains) > { > fw_domains_put(dev_priv, fw_domains); > gen6_gt_check_fifodbg(dev_priv); > @@ -251,9 +251,10 @@ static void intel_uncore_fw_release_timer(unsigned long arg) > void intel_uncore_forcewake_reset(struct drm_device *dev, bool restore) > { > struct drm_i915_private *dev_priv = dev->dev_private; > - unsigned long irqflags, fw = 0; > + unsigned long irqflags; > struct intel_uncore_forcewake_domain *domain; > - int id; > + enum fw_domain_id id; > + enum fw_domains fw = 0; > > /* Hold uncore.lock across reset to prevent any register access > * with forcewake not set correctly > @@ -329,11 +330,11 @@ void intel_uncore_sanitize(struct drm_device *dev) > * intel_uncore_forcewake_put() at the end of the sequence. > */ > void intel_uncore_forcewake_get(struct drm_i915_private *dev_priv, > - unsigned fw_domains) > + enum fw_domains fw_domains) > { > unsigned long irqflags; > struct intel_uncore_forcewake_domain *domain; > - int id; > + enum fw_domain_id id; > > if (!dev_priv->uncore.funcs.force_wake_get) > return; > @@ -358,11 +359,11 @@ void intel_uncore_forcewake_get(struct drm_i915_private *dev_priv, > * see intel_uncore_forcewake_get() > */ > void intel_uncore_forcewake_put(struct drm_i915_private *dev_priv, > - unsigned fw_domains) > + enum fw_domains fw_domains) > { > unsigned long irqflags; > struct intel_uncore_forcewake_domain *domain; > - int id; > + enum fw_domain_id id; > > if (!dev_priv->uncore.funcs.force_wake_put) > return; > @@ -386,7 +387,7 @@ void intel_uncore_forcewake_put(struct drm_i915_private *dev_priv, > void assert_forcewakes_inactive(struct drm_i915_private *dev_priv) > { > struct intel_uncore_forcewake_domain *domain; > - int id; > + enum fw_domain_id id; > > if (!dev_priv->uncore.funcs.force_wake_get) > return; > @@ -559,10 +560,10 @@ __gen2_read(64) > return val > > static inline void __force_wake_get(struct drm_i915_private *dev_priv, > - unsigned fw_domains) > + enum fw_domains fw_domains) > { > struct intel_uncore_forcewake_domain *domain; > - int id; > + enum fw_domain_id id; > > if (WARN_ON(!fw_domains)) > return; > @@ -626,7 +627,7 @@ chv_read##x(struct drm_i915_private *dev_priv, off_t reg, bool trace) { \ > #define __gen9_read(x) \ > static u##x \ > gen9_read##x(struct drm_i915_private *dev_priv, off_t reg, bool trace) { \ > - unsigned fw_engine; \ > + enum fw_domains fw_engine; \ > GEN6_READ_HEADER(x); \ > if (!SKL_NEEDS_FORCE_WAKE((dev_priv), (reg))) \ > fw_engine = 0; \ > @@ -826,7 +827,7 @@ static bool is_gen9_shadowed(struct drm_i915_private *dev_priv, u32 reg) > static void \ > gen9_write##x(struct drm_i915_private *dev_priv, off_t reg, u##x val, \ > bool trace) { \ > - unsigned fw_engine; \ > + enum fw_domains fw_engine; \ > GEN6_WRITE_HEADER; \ > if (!SKL_NEEDS_FORCE_WAKE((dev_priv), (reg)) || \ > is_gen9_shadowed(dev_priv, reg)) \ > @@ -892,7 +893,7 @@ do { \ > > > static void fw_domain_init(struct drm_i915_private *dev_priv, > - u32 domain_id, u32 reg_set, u32 reg_ack) > + enum fw_domain_id domain_id, u32 reg_set, u32 reg_ack) > { > struct intel_uncore_forcewake_domain *d; > Looks fine Reviewed-by: Deepak S<deepak.s@linux.intel.com>
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index 0d47397..5c6c372 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -533,11 +533,28 @@ struct drm_i915_display_funcs { void (*enable_backlight)(struct intel_connector *connector); }; +enum fw_domain_id { + FW_DOMAIN_ID_RENDER = 0, + FW_DOMAIN_ID_BLITTER, + FW_DOMAIN_ID_MEDIA, + + FW_DOMAIN_ID_COUNT +}; + +enum fw_domains { + FORCEWAKE_RENDER = (1 << FW_DOMAIN_ID_RENDER), + FORCEWAKE_BLITTER = (1 << FW_DOMAIN_ID_BLITTER), + FORCEWAKE_MEDIA = (1 << FW_DOMAIN_ID_MEDIA), + FORCEWAKE_ALL = (FORCEWAKE_RENDER | + FORCEWAKE_BLITTER | + FORCEWAKE_MEDIA) +}; + struct intel_uncore_funcs { void (*force_wake_get)(struct drm_i915_private *dev_priv, - int fw_engine); + enum fw_domains domains); void (*force_wake_put)(struct drm_i915_private *dev_priv, - int fw_engine); + enum fw_domains domains); uint8_t (*mmio_readb)(struct drm_i915_private *dev_priv, off_t offset, bool trace); uint16_t (*mmio_readw)(struct drm_i915_private *dev_priv, off_t offset, bool trace); @@ -554,25 +571,17 @@ struct intel_uncore_funcs { uint64_t val, bool trace); }; -enum { - FW_DOMAIN_ID_RENDER = 0, - FW_DOMAIN_ID_BLITTER, - FW_DOMAIN_ID_MEDIA, - - FW_DOMAIN_ID_COUNT -}; - struct intel_uncore { spinlock_t lock; /** lock is also taken in irq contexts. */ struct intel_uncore_funcs funcs; unsigned fifo_count; - unsigned fw_domains; + enum fw_domains fw_domains; struct intel_uncore_forcewake_domain { struct drm_i915_private *i915; - int id; + enum fw_domain_id id; unsigned wake_count; struct timer_list timer; u32 reg_set; @@ -582,12 +591,6 @@ struct intel_uncore { u32 reg_post; u32 val_reset; } fw_domain[FW_DOMAIN_ID_COUNT]; -#define FORCEWAKE_RENDER (1 << FW_DOMAIN_ID_RENDER) -#define FORCEWAKE_BLITTER (1 << FW_DOMAIN_ID_BLITTER) -#define FORCEWAKE_MEDIA (1 << FW_DOMAIN_ID_MEDIA) -#define FORCEWAKE_ALL (FORCEWAKE_RENDER | \ - FORCEWAKE_BLITTER | \ - FORCEWAKE_MEDIA) }; /* Iterate over initialised fw domains */ @@ -2449,7 +2452,7 @@ extern void intel_uncore_init(struct drm_device *dev); extern void intel_uncore_check_errors(struct drm_device *dev); extern void intel_uncore_fini(struct drm_device *dev); extern void intel_uncore_forcewake_reset(struct drm_device *dev, bool restore); -const char *intel_uncore_forcewake_domain_to_str(const int domain_id); +const char *intel_uncore_forcewake_domain_to_str(const enum fw_domain_id id); void intel_uncore_forcewake_get(struct drm_i915_private *dev_priv, unsigned fw_domains); void intel_uncore_forcewake_put(struct drm_i915_private *dev_priv, diff --git a/drivers/gpu/drm/i915/intel_uncore.c b/drivers/gpu/drm/i915/intel_uncore.c index 509b9c9..e802486 100644 --- a/drivers/gpu/drm/i915/intel_uncore.c +++ b/drivers/gpu/drm/i915/intel_uncore.c @@ -49,7 +49,7 @@ static const char * const forcewake_domain_names[] = { }; const char * -intel_uncore_forcewake_domain_to_str(const int id) +intel_uncore_forcewake_domain_to_str(const enum fw_domain_id id) { BUILD_BUG_ON((sizeof(forcewake_domain_names)/sizeof(const char *)) != FW_DOMAIN_ID_COUNT); @@ -122,10 +122,10 @@ fw_domain_posting_read(const struct intel_uncore_forcewake_domain *d) } static void -fw_domains_get(struct drm_i915_private *dev_priv, int fw_domains) +fw_domains_get(struct drm_i915_private *dev_priv, enum fw_domains fw_domains) { struct intel_uncore_forcewake_domain *d; - int id; + enum fw_domain_id id; for_each_fw_domain_mask(d, fw_domains, dev_priv, id) { fw_domain_wait_ack_clear(d); @@ -136,10 +136,10 @@ fw_domains_get(struct drm_i915_private *dev_priv, int fw_domains) } static void -fw_domains_put(struct drm_i915_private *dev_priv, int fw_domains) +fw_domains_put(struct drm_i915_private *dev_priv, enum fw_domains fw_domains) { struct intel_uncore_forcewake_domain *d; - int id; + enum fw_domain_id id; for_each_fw_domain_mask(d, fw_domains, dev_priv, id) fw_domain_put(d); @@ -149,7 +149,7 @@ static void fw_domains_posting_read(struct drm_i915_private *dev_priv) { struct intel_uncore_forcewake_domain *d; - int id; + enum fw_domain_id id; /* No need to do for all, just do for first found */ for_each_fw_domain(d, dev_priv, id) { @@ -159,10 +159,10 @@ fw_domains_posting_read(struct drm_i915_private *dev_priv) } static void -fw_domains_reset(struct drm_i915_private *dev_priv, const unsigned fw_domains) +fw_domains_reset(struct drm_i915_private *dev_priv, enum fw_domains fw_domains) { struct intel_uncore_forcewake_domain *d; - int id; + enum fw_domain_id id; for_each_fw_domain_mask(d, fw_domains, dev_priv, id) fw_domain_reset(d); @@ -181,7 +181,7 @@ static void __gen6_gt_wait_for_thread_c0(struct drm_i915_private *dev_priv) } static void fw_domains_get_with_thread_status(struct drm_i915_private *dev_priv, - int fw_domains) + enum fw_domains fw_domains) { fw_domains_get(dev_priv, fw_domains); @@ -199,7 +199,7 @@ static void gen6_gt_check_fifodbg(struct drm_i915_private *dev_priv) } static void fw_domains_put_with_fifo(struct drm_i915_private *dev_priv, - int fw_domains) + enum fw_domains fw_domains) { fw_domains_put(dev_priv, fw_domains); gen6_gt_check_fifodbg(dev_priv); @@ -251,9 +251,10 @@ static void intel_uncore_fw_release_timer(unsigned long arg) void intel_uncore_forcewake_reset(struct drm_device *dev, bool restore) { struct drm_i915_private *dev_priv = dev->dev_private; - unsigned long irqflags, fw = 0; + unsigned long irqflags; struct intel_uncore_forcewake_domain *domain; - int id; + enum fw_domain_id id; + enum fw_domains fw = 0; /* Hold uncore.lock across reset to prevent any register access * with forcewake not set correctly @@ -329,11 +330,11 @@ void intel_uncore_sanitize(struct drm_device *dev) * intel_uncore_forcewake_put() at the end of the sequence. */ void intel_uncore_forcewake_get(struct drm_i915_private *dev_priv, - unsigned fw_domains) + enum fw_domains fw_domains) { unsigned long irqflags; struct intel_uncore_forcewake_domain *domain; - int id; + enum fw_domain_id id; if (!dev_priv->uncore.funcs.force_wake_get) return; @@ -358,11 +359,11 @@ void intel_uncore_forcewake_get(struct drm_i915_private *dev_priv, * see intel_uncore_forcewake_get() */ void intel_uncore_forcewake_put(struct drm_i915_private *dev_priv, - unsigned fw_domains) + enum fw_domains fw_domains) { unsigned long irqflags; struct intel_uncore_forcewake_domain *domain; - int id; + enum fw_domain_id id; if (!dev_priv->uncore.funcs.force_wake_put) return; @@ -386,7 +387,7 @@ void intel_uncore_forcewake_put(struct drm_i915_private *dev_priv, void assert_forcewakes_inactive(struct drm_i915_private *dev_priv) { struct intel_uncore_forcewake_domain *domain; - int id; + enum fw_domain_id id; if (!dev_priv->uncore.funcs.force_wake_get) return; @@ -559,10 +560,10 @@ __gen2_read(64) return val static inline void __force_wake_get(struct drm_i915_private *dev_priv, - unsigned fw_domains) + enum fw_domains fw_domains) { struct intel_uncore_forcewake_domain *domain; - int id; + enum fw_domain_id id; if (WARN_ON(!fw_domains)) return; @@ -626,7 +627,7 @@ chv_read##x(struct drm_i915_private *dev_priv, off_t reg, bool trace) { \ #define __gen9_read(x) \ static u##x \ gen9_read##x(struct drm_i915_private *dev_priv, off_t reg, bool trace) { \ - unsigned fw_engine; \ + enum fw_domains fw_engine; \ GEN6_READ_HEADER(x); \ if (!SKL_NEEDS_FORCE_WAKE((dev_priv), (reg))) \ fw_engine = 0; \ @@ -826,7 +827,7 @@ static bool is_gen9_shadowed(struct drm_i915_private *dev_priv, u32 reg) static void \ gen9_write##x(struct drm_i915_private *dev_priv, off_t reg, u##x val, \ bool trace) { \ - unsigned fw_engine; \ + enum fw_domains fw_engine; \ GEN6_WRITE_HEADER; \ if (!SKL_NEEDS_FORCE_WAKE((dev_priv), (reg)) || \ is_gen9_shadowed(dev_priv, reg)) \ @@ -892,7 +893,7 @@ do { \ static void fw_domain_init(struct drm_i915_private *dev_priv, - u32 domain_id, u32 reg_set, u32 reg_ack) + enum fw_domain_id domain_id, u32 reg_set, u32 reg_ack) { struct intel_uncore_forcewake_domain *d;
Make the domains and domain identifiers enums. To emphasize the difference in order to avoid mistakes. Suggested-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com> --- drivers/gpu/drm/i915/i915_drv.h | 41 +++++++++++++++++---------------- drivers/gpu/drm/i915/intel_uncore.c | 45 +++++++++++++++++++------------------ 2 files changed, 45 insertions(+), 41 deletions(-)