* [PATCH] drm/i915: abstract and document register picking macros
@ 2018-06-29 10:20 Jani Nikula
2018-06-29 10:31 ` ✗ Fi.CI.CHECKPATCH: warning for " Patchwork
` (3 more replies)
0 siblings, 4 replies; 6+ messages in thread
From: Jani Nikula @ 2018-06-29 10:20 UTC (permalink / raw)
To: intel-gfx; +Cc: jani.nikula
Try to describe what the pick variants do, and which to prefer. No
functional changes.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
Let the naming bikeshed fest begin!
---
drivers/gpu/drm/i915/i915_reg.h | 28 ++++++++++++++++++++++------
1 file changed, 22 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index c30cfcd90754..7dc774682922 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -139,19 +139,35 @@ static inline bool i915_mmio_reg_valid(i915_reg_t reg)
return !i915_mmio_reg_equal(reg, INVALID_MMIO_REG);
}
+/*
+ * Given the first two numbers __a and __b of arbitrarily many evenly spaced
+ * numbers, pick the 0-based __index'th value.
+ *
+ * Always prefer this over _PICK() if the numbers are evenly spaced.
+ */
+#define _PICK_EVEN(__index, __a, __b) ((__a) + (__index) * ((__b) - (__a)))
+
+/*
+ * Given the arbitrary numbers in varargs, pick the 0-based __index'th number.
+ *
+ * Always prefer _PICK_EVEN() over this if the numbers are evenly spaced.
+ */
#define _PICK(__index, ...) (((const u32 []){ __VA_ARGS__ })[__index])
-#define _PIPE(pipe, a, b) ((a) + (pipe) * ((b) - (a)))
+/*
+ * Named helper wrappers around _PICK_EVEN() and _PICK().
+ */
+#define _PIPE(pipe, a, b) _PICK_EVEN(pipe, a, b)
#define _MMIO_PIPE(pipe, a, b) _MMIO(_PIPE(pipe, a, b))
-#define _PLANE(plane, a, b) _PIPE(plane, a, b)
+#define _PLANE(plane, a, b) _PICK_EVEN(plane, a, b)
#define _MMIO_PLANE(plane, a, b) _MMIO_PIPE(plane, a, b)
-#define _TRANS(tran, a, b) ((a) + (tran) * ((b) - (a)))
+#define _TRANS(tran, a, b) _PICK_EVEN(tran, a, b)
#define _MMIO_TRANS(tran, a, b) _MMIO(_TRANS(tran, a, b))
-#define _PORT(port, a, b) ((a) + (port) * ((b) - (a)))
+#define _PORT(port, a, b) _PICK_EVEN(port, a, b)
#define _MMIO_PORT(port, a, b) _MMIO(_PORT(port, a, b))
#define _MMIO_PIPE3(pipe, a, b, c) _MMIO(_PICK(pipe, a, b, c))
#define _MMIO_PORT3(pipe, a, b, c) _MMIO(_PICK(pipe, a, b, c))
-#define _PLL(pll, a, b) ((a) + (pll) * ((b) - (a)))
+#define _PLL(pll, a, b) _PICK_EVEN(pll, a, b)
#define _MMIO_PLL(pll, a, b) _MMIO(_PLL(pll, a, b))
#define _PHY3(phy, ...) _PICK(phy, __VA_ARGS__)
#define _MMIO_PHY3(phy, a, b, c) _MMIO(_PHY3(phy, a, b, c))
@@ -6874,7 +6890,7 @@ enum {
#define _PS_ECC_STAT_2B 0x68AD0
#define _PS_ECC_STAT_1C 0x691D0
-#define _ID(id, a, b) ((a) + (id) * ((b) - (a)))
+#define _ID(id, a, b) _PICK_EVEN(id, a, b)
#define SKL_PS_CTRL(pipe, id) _MMIO_PIPE(pipe, \
_ID(id, _PS_1A_CTRL, _PS_2A_CTRL), \
_ID(id, _PS_1B_CTRL, _PS_2B_CTRL))
--
2.11.0
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 6+ messages in thread* ✗ Fi.CI.CHECKPATCH: warning for drm/i915: abstract and document register picking macros 2018-06-29 10:20 [PATCH] drm/i915: abstract and document register picking macros Jani Nikula @ 2018-06-29 10:31 ` Patchwork 2018-06-29 10:51 ` ✓ Fi.CI.BAT: success " Patchwork ` (2 subsequent siblings) 3 siblings, 0 replies; 6+ messages in thread From: Patchwork @ 2018-06-29 10:31 UTC (permalink / raw) To: Jani Nikula; +Cc: intel-gfx == Series Details == Series: drm/i915: abstract and document register picking macros URL : https://patchwork.freedesktop.org/series/45650/ State : warning == Summary == $ dim checkpatch origin/drm-tip bce4e19e7c4d drm/i915: abstract and document register picking macros -:25: CHECK:MACRO_ARG_REUSE: Macro argument reuse '__a' - possible side-effects? #25: FILE: drivers/gpu/drm/i915/i915_reg.h:148: +#define _PICK_EVEN(__index, __a, __b) ((__a) + (__index) * ((__b) - (__a))) total: 0 errors, 0 warnings, 1 checks, 48 lines checked _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 6+ messages in thread
* ✓ Fi.CI.BAT: success for drm/i915: abstract and document register picking macros 2018-06-29 10:20 [PATCH] drm/i915: abstract and document register picking macros Jani Nikula 2018-06-29 10:31 ` ✗ Fi.CI.CHECKPATCH: warning for " Patchwork @ 2018-06-29 10:51 ` Patchwork 2018-06-29 14:09 ` ✓ Fi.CI.IGT: " Patchwork 2018-06-29 14:38 ` [PATCH] " Rodrigo Vivi 3 siblings, 0 replies; 6+ messages in thread From: Patchwork @ 2018-06-29 10:51 UTC (permalink / raw) To: Jani Nikula; +Cc: intel-gfx == Series Details == Series: drm/i915: abstract and document register picking macros URL : https://patchwork.freedesktop.org/series/45650/ State : success == Summary == = CI Bug Log - changes from CI_DRM_4403 -> Patchwork_9483 = == Summary - SUCCESS == No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/45650/revisions/1/mbox/ == Known issues == Here are the changes found in Patchwork_9483 that come from known issues: === IGT changes === ==== Issues hit ==== igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c: fi-bxt-dsi: PASS -> INCOMPLETE (fdo#103927) igt@prime_vgem@basic-fence-flip: fi-ilk-650: PASS -> FAIL (fdo#104008) ==== Possible fixes ==== igt@kms_chamelium@dp-crc-fast: fi-kbl-7500u: DMESG-FAIL (fdo#103841) -> PASS fdo#103841 https://bugs.freedesktop.org/show_bug.cgi?id=103841 fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927 fdo#104008 https://bugs.freedesktop.org/show_bug.cgi?id=104008 == Participating hosts (43 -> 39) == Missing (4): fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-hsw-4200u == Build changes == * Linux: CI_DRM_4403 -> Patchwork_9483 CI_DRM_4403: d5ec143981dab1497ec923c943288dbc1be673d0 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4531: a14bc8b4d69eaca189665de505e6b10cbfbb7730 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_9483: bce4e19e7c4d4f41905a70e20dc60f413ac8c076 @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == bce4e19e7c4d drm/i915: abstract and document register picking macros == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_9483/issues.html _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 6+ messages in thread
* ✓ Fi.CI.IGT: success for drm/i915: abstract and document register picking macros 2018-06-29 10:20 [PATCH] drm/i915: abstract and document register picking macros Jani Nikula 2018-06-29 10:31 ` ✗ Fi.CI.CHECKPATCH: warning for " Patchwork 2018-06-29 10:51 ` ✓ Fi.CI.BAT: success " Patchwork @ 2018-06-29 14:09 ` Patchwork 2018-06-29 14:38 ` [PATCH] " Rodrigo Vivi 3 siblings, 0 replies; 6+ messages in thread From: Patchwork @ 2018-06-29 14:09 UTC (permalink / raw) To: Jani Nikula; +Cc: intel-gfx == Series Details == Series: drm/i915: abstract and document register picking macros URL : https://patchwork.freedesktop.org/series/45650/ State : success == Summary == = CI Bug Log - changes from CI_DRM_4403_full -> Patchwork_9483_full = == Summary - WARNING == Minor unknown changes coming with Patchwork_9483_full need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_9483_full, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI. == Possible new issues == Here are the unknown changes that may have been introduced in Patchwork_9483_full: === IGT changes === ==== Warnings ==== igt@gem_exec_schedule@deep-bsd1: shard-kbl: PASS -> SKIP +1 igt@gem_exec_schedule@deep-bsd2: shard-kbl: SKIP -> PASS == Known issues == Here are the changes found in Patchwork_9483_full that come from known issues: === IGT changes === ==== Issues hit ==== igt@drv_selftest@live_gtt: shard-kbl: PASS -> FAIL (fdo#105347) shard-glk: PASS -> INCOMPLETE (fdo#103359, k.org#198133) igt@drv_selftest@live_hugepages: shard-kbl: PASS -> INCOMPLETE (fdo#103665) igt@drv_suspend@shrink: shard-snb: PASS -> INCOMPLETE (fdo#105411) igt@gem_exec_schedule@pi-ringfull-vebox: shard-kbl: NOTRUN -> FAIL (fdo#103158) +1 igt@kms_flip_tiling@flip-to-x-tiled: shard-glk: PASS -> FAIL (fdo#104724) igt@kms_rotation_crc@sprite-rotation-180: shard-hsw: PASS -> FAIL (fdo#104724, fdo#103925) igt@kms_setmode@basic: shard-kbl: PASS -> FAIL (fdo#99912) ==== Possible fixes ==== igt@kms_draw_crc@draw-method-xrgb8888-render-ytiled: shard-glk: FAIL (fdo#104724, fdo#103232) -> PASS igt@kms_flip@flip-vs-expired-vblank: shard-glk: FAIL (fdo#102887) -> PASS igt@kms_flip@flip-vs-expired-vblank-interruptible: shard-apl: FAIL (fdo#105363, fdo#102887) -> PASS fdo#102887 https://bugs.freedesktop.org/show_bug.cgi?id=102887 fdo#103158 https://bugs.freedesktop.org/show_bug.cgi?id=103158 fdo#103232 https://bugs.freedesktop.org/show_bug.cgi?id=103232 fdo#103359 https://bugs.freedesktop.org/show_bug.cgi?id=103359 fdo#103665 https://bugs.freedesktop.org/show_bug.cgi?id=103665 fdo#103925 https://bugs.freedesktop.org/show_bug.cgi?id=103925 fdo#104724 https://bugs.freedesktop.org/show_bug.cgi?id=104724 fdo#105347 https://bugs.freedesktop.org/show_bug.cgi?id=105347 fdo#105363 https://bugs.freedesktop.org/show_bug.cgi?id=105363 fdo#105411 https://bugs.freedesktop.org/show_bug.cgi?id=105411 fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912 k.org#198133 https://bugzilla.kernel.org/show_bug.cgi?id=198133 == Participating hosts (5 -> 5) == No changes in participating hosts == Build changes == * Linux: CI_DRM_4403 -> Patchwork_9483 CI_DRM_4403: d5ec143981dab1497ec923c943288dbc1be673d0 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_4531: a14bc8b4d69eaca189665de505e6b10cbfbb7730 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_9483: bce4e19e7c4d4f41905a70e20dc60f413ac8c076 @ git://anongit.freedesktop.org/gfx-ci/linux piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_9483/shards.html _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] drm/i915: abstract and document register picking macros 2018-06-29 10:20 [PATCH] drm/i915: abstract and document register picking macros Jani Nikula ` (2 preceding siblings ...) 2018-06-29 14:09 ` ✓ Fi.CI.IGT: " Patchwork @ 2018-06-29 14:38 ` Rodrigo Vivi 2018-07-02 14:44 ` Jani Nikula 3 siblings, 1 reply; 6+ messages in thread From: Rodrigo Vivi @ 2018-06-29 14:38 UTC (permalink / raw) To: Jani Nikula; +Cc: intel-gfx On Fri, Jun 29, 2018 at 01:20:39PM +0300, Jani Nikula wrote: > Try to describe what the pick variants do, and which to prefer. No > functional changes. > > Signed-off-by: Jani Nikula <jani.nikula@intel.com> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> > > --- > > Let the naming bikeshed fest begin! > --- > drivers/gpu/drm/i915/i915_reg.h | 28 ++++++++++++++++++++++------ > 1 file changed, 22 insertions(+), 6 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h > index c30cfcd90754..7dc774682922 100644 > --- a/drivers/gpu/drm/i915/i915_reg.h > +++ b/drivers/gpu/drm/i915/i915_reg.h > @@ -139,19 +139,35 @@ static inline bool i915_mmio_reg_valid(i915_reg_t reg) > return !i915_mmio_reg_equal(reg, INVALID_MMIO_REG); > } > > +/* > + * Given the first two numbers __a and __b of arbitrarily many evenly spaced > + * numbers, pick the 0-based __index'th value. > + * > + * Always prefer this over _PICK() if the numbers are evenly spaced. > + */ > +#define _PICK_EVEN(__index, __a, __b) ((__a) + (__index) * ((__b) - (__a))) > + > +/* > + * Given the arbitrary numbers in varargs, pick the 0-based __index'th number. > + * > + * Always prefer _PICK_EVEN() over this if the numbers are evenly spaced. > + */ > #define _PICK(__index, ...) (((const u32 []){ __VA_ARGS__ })[__index]) > > -#define _PIPE(pipe, a, b) ((a) + (pipe) * ((b) - (a))) > +/* > + * Named helper wrappers around _PICK_EVEN() and _PICK(). > + */ > +#define _PIPE(pipe, a, b) _PICK_EVEN(pipe, a, b) > #define _MMIO_PIPE(pipe, a, b) _MMIO(_PIPE(pipe, a, b)) > -#define _PLANE(plane, a, b) _PIPE(plane, a, b) > +#define _PLANE(plane, a, b) _PICK_EVEN(plane, a, b) > #define _MMIO_PLANE(plane, a, b) _MMIO_PIPE(plane, a, b) > -#define _TRANS(tran, a, b) ((a) + (tran) * ((b) - (a))) > +#define _TRANS(tran, a, b) _PICK_EVEN(tran, a, b) > #define _MMIO_TRANS(tran, a, b) _MMIO(_TRANS(tran, a, b)) > -#define _PORT(port, a, b) ((a) + (port) * ((b) - (a))) > +#define _PORT(port, a, b) _PICK_EVEN(port, a, b) > #define _MMIO_PORT(port, a, b) _MMIO(_PORT(port, a, b)) > #define _MMIO_PIPE3(pipe, a, b, c) _MMIO(_PICK(pipe, a, b, c)) > #define _MMIO_PORT3(pipe, a, b, c) _MMIO(_PICK(pipe, a, b, c)) > -#define _PLL(pll, a, b) ((a) + (pll) * ((b) - (a))) > +#define _PLL(pll, a, b) _PICK_EVEN(pll, a, b) > #define _MMIO_PLL(pll, a, b) _MMIO(_PLL(pll, a, b)) > #define _PHY3(phy, ...) _PICK(phy, __VA_ARGS__) > #define _MMIO_PHY3(phy, a, b, c) _MMIO(_PHY3(phy, a, b, c)) > @@ -6874,7 +6890,7 @@ enum { > #define _PS_ECC_STAT_2B 0x68AD0 > #define _PS_ECC_STAT_1C 0x691D0 > > -#define _ID(id, a, b) ((a) + (id) * ((b) - (a))) > +#define _ID(id, a, b) _PICK_EVEN(id, a, b) > #define SKL_PS_CTRL(pipe, id) _MMIO_PIPE(pipe, \ > _ID(id, _PS_1A_CTRL, _PS_2A_CTRL), \ > _ID(id, _PS_1B_CTRL, _PS_2B_CTRL)) > -- > 2.11.0 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] drm/i915: abstract and document register picking macros 2018-06-29 14:38 ` [PATCH] " Rodrigo Vivi @ 2018-07-02 14:44 ` Jani Nikula 0 siblings, 0 replies; 6+ messages in thread From: Jani Nikula @ 2018-07-02 14:44 UTC (permalink / raw) To: Rodrigo Vivi; +Cc: intel-gfx On Fri, 29 Jun 2018, Rodrigo Vivi <rodrigo.vivi@intel.com> wrote: > On Fri, Jun 29, 2018 at 01:20:39PM +0300, Jani Nikula wrote: >> Try to describe what the pick variants do, and which to prefer. No >> functional changes. >> >> Signed-off-by: Jani Nikula <jani.nikula@intel.com> > > Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> Thanks, pushed. BR, Jani. > >> >> --- >> >> Let the naming bikeshed fest begin! >> --- >> drivers/gpu/drm/i915/i915_reg.h | 28 ++++++++++++++++++++++------ >> 1 file changed, 22 insertions(+), 6 deletions(-) >> >> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h >> index c30cfcd90754..7dc774682922 100644 >> --- a/drivers/gpu/drm/i915/i915_reg.h >> +++ b/drivers/gpu/drm/i915/i915_reg.h >> @@ -139,19 +139,35 @@ static inline bool i915_mmio_reg_valid(i915_reg_t reg) >> return !i915_mmio_reg_equal(reg, INVALID_MMIO_REG); >> } >> >> +/* >> + * Given the first two numbers __a and __b of arbitrarily many evenly spaced >> + * numbers, pick the 0-based __index'th value. >> + * >> + * Always prefer this over _PICK() if the numbers are evenly spaced. >> + */ >> +#define _PICK_EVEN(__index, __a, __b) ((__a) + (__index) * ((__b) - (__a))) >> + >> +/* >> + * Given the arbitrary numbers in varargs, pick the 0-based __index'th number. >> + * >> + * Always prefer _PICK_EVEN() over this if the numbers are evenly spaced. >> + */ >> #define _PICK(__index, ...) (((const u32 []){ __VA_ARGS__ })[__index]) >> >> -#define _PIPE(pipe, a, b) ((a) + (pipe) * ((b) - (a))) >> +/* >> + * Named helper wrappers around _PICK_EVEN() and _PICK(). >> + */ >> +#define _PIPE(pipe, a, b) _PICK_EVEN(pipe, a, b) >> #define _MMIO_PIPE(pipe, a, b) _MMIO(_PIPE(pipe, a, b)) >> -#define _PLANE(plane, a, b) _PIPE(plane, a, b) >> +#define _PLANE(plane, a, b) _PICK_EVEN(plane, a, b) >> #define _MMIO_PLANE(plane, a, b) _MMIO_PIPE(plane, a, b) >> -#define _TRANS(tran, a, b) ((a) + (tran) * ((b) - (a))) >> +#define _TRANS(tran, a, b) _PICK_EVEN(tran, a, b) >> #define _MMIO_TRANS(tran, a, b) _MMIO(_TRANS(tran, a, b)) >> -#define _PORT(port, a, b) ((a) + (port) * ((b) - (a))) >> +#define _PORT(port, a, b) _PICK_EVEN(port, a, b) >> #define _MMIO_PORT(port, a, b) _MMIO(_PORT(port, a, b)) >> #define _MMIO_PIPE3(pipe, a, b, c) _MMIO(_PICK(pipe, a, b, c)) >> #define _MMIO_PORT3(pipe, a, b, c) _MMIO(_PICK(pipe, a, b, c)) >> -#define _PLL(pll, a, b) ((a) + (pll) * ((b) - (a))) >> +#define _PLL(pll, a, b) _PICK_EVEN(pll, a, b) >> #define _MMIO_PLL(pll, a, b) _MMIO(_PLL(pll, a, b)) >> #define _PHY3(phy, ...) _PICK(phy, __VA_ARGS__) >> #define _MMIO_PHY3(phy, a, b, c) _MMIO(_PHY3(phy, a, b, c)) >> @@ -6874,7 +6890,7 @@ enum { >> #define _PS_ECC_STAT_2B 0x68AD0 >> #define _PS_ECC_STAT_1C 0x691D0 >> >> -#define _ID(id, a, b) ((a) + (id) * ((b) - (a))) >> +#define _ID(id, a, b) _PICK_EVEN(id, a, b) >> #define SKL_PS_CTRL(pipe, id) _MMIO_PIPE(pipe, \ >> _ID(id, _PS_1A_CTRL, _PS_2A_CTRL), \ >> _ID(id, _PS_1B_CTRL, _PS_2B_CTRL)) >> -- >> 2.11.0 >> >> _______________________________________________ >> Intel-gfx mailing list >> Intel-gfx@lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Jani Nikula, Intel Open Source Graphics Center _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2018-07-02 14:44 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-06-29 10:20 [PATCH] drm/i915: abstract and document register picking macros Jani Nikula 2018-06-29 10:31 ` ✗ Fi.CI.CHECKPATCH: warning for " Patchwork 2018-06-29 10:51 ` ✓ Fi.CI.BAT: success " Patchwork 2018-06-29 14:09 ` ✓ Fi.CI.IGT: " Patchwork 2018-06-29 14:38 ` [PATCH] " Rodrigo Vivi 2018-07-02 14:44 ` Jani Nikula
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.