Skip to content

Commit 272c7e5

Browse files
dceraoloickle
authored andcommitted
drm/i915: reduce the dev_priv->uncore dance in uncore.c
Use a local variable where it makes sense. Signed-off-by: Daniele Ceraolo Spurio <[email protected]> Cc: Paulo Zanoni <[email protected]> Reviewed-by: Paulo Zanoni <[email protected]> Signed-off-by: Chris Wilson <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
1 parent cb7ee69 commit 272c7e5

File tree

1 file changed

+43
-36
lines changed

1 file changed

+43
-36
lines changed

drivers/gpu/drm/i915/intel_uncore.c

Lines changed: 43 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -313,14 +313,15 @@ static inline u32 fifo_free_entries(struct drm_i915_private *dev_priv)
313313

314314
static void __gen6_gt_wait_for_fifo(struct drm_i915_private *dev_priv)
315315
{
316+
struct intel_uncore *uncore = &dev_priv->uncore;
316317
u32 n;
317318

318319
/* On VLV, FIFO will be shared by both SW and HW.
319320
* So, we need to read the FREE_ENTRIES everytime */
320321
if (IS_VALLEYVIEW(dev_priv))
321322
n = fifo_free_entries(dev_priv);
322323
else
323-
n = dev_priv->uncore.fifo_count;
324+
n = uncore->fifo_count;
324325

325326
if (n <= GT_FIFO_NUM_RESERVED_ENTRIES) {
326327
if (wait_for_atomic((n = fifo_free_entries(dev_priv)) >
@@ -331,7 +332,7 @@ static void __gen6_gt_wait_for_fifo(struct drm_i915_private *dev_priv)
331332
}
332333
}
333334

334-
dev_priv->uncore.fifo_count = n - 1;
335+
uncore->fifo_count = n - 1;
335336
}
336337

337338
static enum hrtimer_restart
@@ -795,7 +796,7 @@ void assert_forcewakes_active(struct intel_uncore *uncore,
795796
#define GEN11_NEEDS_FORCE_WAKE(reg) \
796797
((reg) < 0x40000 || ((reg) >= 0x1c0000 && (reg) < 0x1dc000))
797798

798-
#define __gen6_reg_read_fw_domains(offset) \
799+
#define __gen6_reg_read_fw_domains(uncore, offset) \
799800
({ \
800801
enum forcewake_domains __fwd; \
801802
if (NEEDS_FORCE_WAKE(offset)) \
@@ -881,19 +882,19 @@ static const struct intel_forcewake_range __vlv_fw_ranges[] = {
881882
GEN_FW_RANGE(0x30000, 0x3ffff, FORCEWAKE_MEDIA),
882883
};
883884

884-
#define __fwtable_reg_read_fw_domains(offset) \
885+
#define __fwtable_reg_read_fw_domains(uncore, offset) \
885886
({ \
886887
enum forcewake_domains __fwd = 0; \
887888
if (NEEDS_FORCE_WAKE((offset))) \
888-
__fwd = find_fw_domain(&dev_priv->uncore, offset); \
889+
__fwd = find_fw_domain(uncore, offset); \
889890
__fwd; \
890891
})
891892

892-
#define __gen11_fwtable_reg_read_fw_domains(offset) \
893+
#define __gen11_fwtable_reg_read_fw_domains(uncore, offset) \
893894
({ \
894895
enum forcewake_domains __fwd = 0; \
895896
if (GEN11_NEEDS_FORCE_WAKE((offset))) \
896-
__fwd = find_fw_domain(&dev_priv->uncore, offset); \
897+
__fwd = find_fw_domain(uncore, offset); \
897898
__fwd; \
898899
})
899900

@@ -945,7 +946,7 @@ static bool is_gen##x##_shadowed(u32 offset) \
945946
__is_genX_shadowed(8)
946947
__is_genX_shadowed(11)
947948

948-
#define __gen8_reg_write_fw_domains(offset) \
949+
#define __gen8_reg_write_fw_domains(uncore, offset) \
949950
({ \
950951
enum forcewake_domains __fwd; \
951952
if (NEEDS_FORCE_WAKE(offset) && !is_gen8_shadowed(offset)) \
@@ -975,19 +976,19 @@ static const struct intel_forcewake_range __chv_fw_ranges[] = {
975976
GEN_FW_RANGE(0x30000, 0x37fff, FORCEWAKE_MEDIA),
976977
};
977978

978-
#define __fwtable_reg_write_fw_domains(offset) \
979+
#define __fwtable_reg_write_fw_domains(uncore, offset) \
979980
({ \
980981
enum forcewake_domains __fwd = 0; \
981982
if (NEEDS_FORCE_WAKE((offset)) && !is_gen8_shadowed(offset)) \
982-
__fwd = find_fw_domain(&dev_priv->uncore, offset); \
983+
__fwd = find_fw_domain(uncore, offset); \
983984
__fwd; \
984985
})
985986

986-
#define __gen11_fwtable_reg_write_fw_domains(offset) \
987+
#define __gen11_fwtable_reg_write_fw_domains(uncore, offset) \
987988
({ \
988989
enum forcewake_domains __fwd = 0; \
989990
if (GEN11_NEEDS_FORCE_WAKE((offset)) && !is_gen11_shadowed(offset)) \
990-
__fwd = find_fw_domain(&dev_priv->uncore, offset); \
991+
__fwd = find_fw_domain(uncore, offset); \
991992
__fwd; \
992993
})
993994

@@ -1137,16 +1138,17 @@ __gen2_read(64)
11371138
#undef GEN2_READ_HEADER
11381139

11391140
#define GEN6_READ_HEADER(x) \
1141+
struct intel_uncore *uncore = &dev_priv->uncore; \
11401142
u32 offset = i915_mmio_reg_offset(reg); \
11411143
unsigned long irqflags; \
11421144
u##x val = 0; \
11431145
assert_rpm_wakelock_held(dev_priv); \
1144-
spin_lock_irqsave(&dev_priv->uncore.lock, irqflags); \
1146+
spin_lock_irqsave(&uncore->lock, irqflags); \
11451147
unclaimed_reg_debug(dev_priv, reg, true, true)
11461148

11471149
#define GEN6_READ_FOOTER \
11481150
unclaimed_reg_debug(dev_priv, reg, true, false); \
1149-
spin_unlock_irqrestore(&dev_priv->uncore.lock, irqflags); \
1151+
spin_unlock_irqrestore(&uncore->lock, irqflags); \
11501152
trace_i915_reg_rw(false, reg, val, sizeof(val), trace); \
11511153
return val
11521154

@@ -1183,9 +1185,9 @@ static u##x \
11831185
func##_read##x(struct drm_i915_private *dev_priv, i915_reg_t reg, bool trace) { \
11841186
enum forcewake_domains fw_engine; \
11851187
GEN6_READ_HEADER(x); \
1186-
fw_engine = __##func##_reg_read_fw_domains(offset); \
1188+
fw_engine = __##func##_reg_read_fw_domains(uncore, offset); \
11871189
if (fw_engine) \
1188-
__force_wake_auto(&dev_priv->uncore, fw_engine); \
1190+
__force_wake_auto(uncore, fw_engine); \
11891191
val = __raw_i915_read##x(dev_priv, reg); \
11901192
GEN6_READ_FOOTER; \
11911193
}
@@ -1249,16 +1251,17 @@ __gen2_write(32)
12491251
#undef GEN2_WRITE_HEADER
12501252

12511253
#define GEN6_WRITE_HEADER \
1254+
struct intel_uncore *uncore = &dev_priv->uncore; \
12521255
u32 offset = i915_mmio_reg_offset(reg); \
12531256
unsigned long irqflags; \
12541257
trace_i915_reg_rw(true, reg, val, sizeof(val), trace); \
12551258
assert_rpm_wakelock_held(dev_priv); \
1256-
spin_lock_irqsave(&dev_priv->uncore.lock, irqflags); \
1259+
spin_lock_irqsave(&uncore->lock, irqflags); \
12571260
unclaimed_reg_debug(dev_priv, reg, false, true)
12581261

12591262
#define GEN6_WRITE_FOOTER \
12601263
unclaimed_reg_debug(dev_priv, reg, false, false); \
1261-
spin_unlock_irqrestore(&dev_priv->uncore.lock, irqflags)
1264+
spin_unlock_irqrestore(&uncore->lock, irqflags)
12621265

12631266
#define __gen6_write(x) \
12641267
static void \
@@ -1275,9 +1278,9 @@ static void \
12751278
func##_write##x(struct drm_i915_private *dev_priv, i915_reg_t reg, u##x val, bool trace) { \
12761279
enum forcewake_domains fw_engine; \
12771280
GEN6_WRITE_HEADER; \
1278-
fw_engine = __##func##_reg_write_fw_domains(offset); \
1281+
fw_engine = __##func##_reg_write_fw_domains(uncore, offset); \
12791282
if (fw_engine) \
1280-
__force_wake_auto(&dev_priv->uncore, fw_engine); \
1283+
__force_wake_auto(uncore, fw_engine); \
12811284
__raw_i915_write##x(dev_priv, reg, val); \
12821285
GEN6_WRITE_FOOTER; \
12831286
}
@@ -1781,22 +1784,23 @@ int __intel_wait_for_register(struct drm_i915_private *dev_priv,
17811784
unsigned int slow_timeout_ms,
17821785
u32 *out_value)
17831786
{
1787+
struct intel_uncore *uncore = &dev_priv->uncore;
17841788
unsigned fw =
17851789
intel_uncore_forcewake_for_reg(dev_priv, reg, FW_REG_READ);
17861790
u32 reg_value;
17871791
int ret;
17881792

17891793
might_sleep_if(slow_timeout_ms);
17901794

1791-
spin_lock_irq(&dev_priv->uncore.lock);
1792-
intel_uncore_forcewake_get__locked(&dev_priv->uncore, fw);
1795+
spin_lock_irq(&uncore->lock);
1796+
intel_uncore_forcewake_get__locked(uncore, fw);
17931797

17941798
ret = __intel_wait_for_register_fw(dev_priv,
17951799
reg, mask, value,
17961800
fast_timeout_us, 0, &reg_value);
17971801

1798-
intel_uncore_forcewake_put__locked(&dev_priv->uncore, fw);
1799-
spin_unlock_irq(&dev_priv->uncore.lock);
1802+
intel_uncore_forcewake_put__locked(uncore, fw);
1803+
spin_unlock_irq(&uncore->lock);
18001804

18011805
if (ret && slow_timeout_ms)
18021806
ret = __wait_for(reg_value = I915_READ_NOTRACE(reg),
@@ -1820,11 +1824,12 @@ bool intel_uncore_unclaimed_mmio(struct drm_i915_private *dev_priv)
18201824
bool
18211825
intel_uncore_arm_unclaimed_mmio_detection(struct drm_i915_private *dev_priv)
18221826
{
1827+
struct intel_uncore *uncore = &dev_priv->uncore;
18231828
bool ret = false;
18241829

1825-
spin_lock_irq(&dev_priv->uncore.lock);
1830+
spin_lock_irq(&uncore->lock);
18261831

1827-
if (unlikely(dev_priv->uncore.unclaimed_mmio_check <= 0))
1832+
if (unlikely(uncore->unclaimed_mmio_check <= 0))
18281833
goto out;
18291834

18301835
if (unlikely(intel_uncore_unclaimed_mmio(dev_priv))) {
@@ -1834,12 +1839,12 @@ intel_uncore_arm_unclaimed_mmio_detection(struct drm_i915_private *dev_priv)
18341839
"Please use i915.mmio_debug=N for more information.\n");
18351840
i915_modparams.mmio_debug++;
18361841
}
1837-
dev_priv->uncore.unclaimed_mmio_check--;
1842+
uncore->unclaimed_mmio_check--;
18381843
ret = true;
18391844
}
18401845

18411846
out:
1842-
spin_unlock_irq(&dev_priv->uncore.lock);
1847+
spin_unlock_irq(&uncore->lock);
18431848

18441849
return ret;
18451850
}
@@ -1848,21 +1853,22 @@ static enum forcewake_domains
18481853
intel_uncore_forcewake_for_read(struct drm_i915_private *dev_priv,
18491854
i915_reg_t reg)
18501855
{
1856+
struct intel_uncore *uncore = &dev_priv->uncore;
18511857
u32 offset = i915_mmio_reg_offset(reg);
18521858
enum forcewake_domains fw_domains;
18531859

18541860
if (INTEL_GEN(dev_priv) >= 11) {
1855-
fw_domains = __gen11_fwtable_reg_read_fw_domains(offset);
1861+
fw_domains = __gen11_fwtable_reg_read_fw_domains(uncore, offset);
18561862
} else if (HAS_FWTABLE(dev_priv)) {
1857-
fw_domains = __fwtable_reg_read_fw_domains(offset);
1863+
fw_domains = __fwtable_reg_read_fw_domains(uncore, offset);
18581864
} else if (INTEL_GEN(dev_priv) >= 6) {
1859-
fw_domains = __gen6_reg_read_fw_domains(offset);
1865+
fw_domains = __gen6_reg_read_fw_domains(uncore, offset);
18601866
} else {
18611867
WARN_ON(!IS_GEN_RANGE(dev_priv, 2, 5));
18621868
fw_domains = 0;
18631869
}
18641870

1865-
WARN_ON(fw_domains & ~dev_priv->uncore.fw_domains);
1871+
WARN_ON(fw_domains & ~uncore->fw_domains);
18661872

18671873
return fw_domains;
18681874
}
@@ -1871,23 +1877,24 @@ static enum forcewake_domains
18711877
intel_uncore_forcewake_for_write(struct drm_i915_private *dev_priv,
18721878
i915_reg_t reg)
18731879
{
1880+
struct intel_uncore *uncore = &dev_priv->uncore;
18741881
u32 offset = i915_mmio_reg_offset(reg);
18751882
enum forcewake_domains fw_domains;
18761883

18771884
if (INTEL_GEN(dev_priv) >= 11) {
1878-
fw_domains = __gen11_fwtable_reg_write_fw_domains(offset);
1885+
fw_domains = __gen11_fwtable_reg_write_fw_domains(uncore, offset);
18791886
} else if (HAS_FWTABLE(dev_priv) && !IS_VALLEYVIEW(dev_priv)) {
1880-
fw_domains = __fwtable_reg_write_fw_domains(offset);
1887+
fw_domains = __fwtable_reg_write_fw_domains(uncore, offset);
18811888
} else if (IS_GEN(dev_priv, 8)) {
1882-
fw_domains = __gen8_reg_write_fw_domains(offset);
1889+
fw_domains = __gen8_reg_write_fw_domains(uncore, offset);
18831890
} else if (IS_GEN_RANGE(dev_priv, 6, 7)) {
18841891
fw_domains = FORCEWAKE_RENDER;
18851892
} else {
18861893
WARN_ON(!IS_GEN_RANGE(dev_priv, 2, 5));
18871894
fw_domains = 0;
18881895
}
18891896

1890-
WARN_ON(fw_domains & ~dev_priv->uncore.fw_domains);
1897+
WARN_ON(fw_domains & ~uncore->fw_domains);
18911898

18921899
return fw_domains;
18931900
}

0 commit comments

Comments
 (0)