* [Intel-gfx] [PATCH 0/5] drm/i915/dmc: some dmc id related fixes and cleanups
@ 2023-02-02 12:04 Jani Nikula
2023-02-02 12:04 ` [Intel-gfx] [PATCH 1/5] drm/i915/dmc: add proper name to dmc id enum and use it Jani Nikula
` (7 more replies)
0 siblings, 8 replies; 11+ messages in thread
From: Jani Nikula @ 2023-02-02 12:04 UTC (permalink / raw)
To: intel-gfx; +Cc: jani.nikula
Address some static analyzer complaints around dmc id usage.
Jani Nikula (5):
drm/i915/dmc: add proper name to dmc id enum and use it
drm/i915/dmc: add for_each_dmc_id() and use it
drm/i915/dmc: remove unnecessary dmc_id validity check
drm/i915/dmc: add is_valid_dmc_id() and use it
drm/i915/dmc: check incoming dmc id validity
drivers/gpu/drm/i915/display/intel_dmc.c | 100 ++++++++++++-----------
drivers/gpu/drm/i915/display/intel_dmc.h | 2 +-
2 files changed, 54 insertions(+), 48 deletions(-)
--
2.34.1
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Intel-gfx] [PATCH 1/5] drm/i915/dmc: add proper name to dmc id enum and use it
2023-02-02 12:04 [Intel-gfx] [PATCH 0/5] drm/i915/dmc: some dmc id related fixes and cleanups Jani Nikula
@ 2023-02-02 12:04 ` Jani Nikula
2023-02-02 12:04 ` [Intel-gfx] [PATCH 2/5] drm/i915/dmc: add for_each_dmc_id() " Jani Nikula
` (6 subsequent siblings)
7 siblings, 0 replies; 11+ messages in thread
From: Jani Nikula @ 2023-02-02 12:04 UTC (permalink / raw)
To: intel-gfx; +Cc: jani.nikula
Clarify DMC ID usage by adding enum intel_dmc_id name to the enum, and
use dmc_id as the variable name for it throughout.
Convert a switch-case to if-ladder to avoid warnings about not handling
DMC_FW_MAX enumeration constant in the switch-case.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/i915/display/intel_dmc.c | 77 ++++++++++++------------
drivers/gpu/drm/i915/display/intel_dmc.h | 2 +-
2 files changed, 39 insertions(+), 40 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_dmc.c b/drivers/gpu/drm/i915/display/intel_dmc.c
index 257aa2b7cf20..2cb748900805 100644
--- a/drivers/gpu/drm/i915/display/intel_dmc.c
+++ b/drivers/gpu/drm/i915/display/intel_dmc.c
@@ -249,7 +249,7 @@ struct stepping_info {
char substepping;
};
-static bool has_dmc_id_fw(struct drm_i915_private *i915, int dmc_id)
+static bool has_dmc_id_fw(struct drm_i915_private *i915, enum intel_dmc_id dmc_id)
{
return i915->display.dmc.dmc_info[dmc_id].payload;
}
@@ -315,26 +315,23 @@ disable_flip_queue_event(struct drm_i915_private *i915,
}
static bool
-get_flip_queue_event_regs(struct drm_i915_private *i915, int dmc_id,
+get_flip_queue_event_regs(struct drm_i915_private *i915, enum intel_dmc_id dmc_id,
i915_reg_t *ctl_reg, i915_reg_t *htp_reg)
{
- switch (dmc_id) {
- case DMC_FW_MAIN:
+ if (dmc_id == DMC_FW_MAIN) {
if (DISPLAY_VER(i915) == 12) {
*ctl_reg = DMC_EVT_CTL(i915, dmc_id, 3);
*htp_reg = DMC_EVT_HTP(i915, dmc_id, 3);
return true;
}
- break;
- case DMC_FW_PIPEA ... DMC_FW_PIPED:
+ } else if (dmc_id >= DMC_FW_PIPEA && dmc_id <= DMC_FW_PIPED) {
if (IS_DG2(i915)) {
*ctl_reg = DMC_EVT_CTL(i915, dmc_id, 2);
*htp_reg = DMC_EVT_HTP(i915, dmc_id, 2);
return true;
}
- break;
}
return false;
@@ -343,7 +340,7 @@ get_flip_queue_event_regs(struct drm_i915_private *i915, int dmc_id,
static void
disable_all_flip_queue_events(struct drm_i915_private *i915)
{
- int dmc_id;
+ enum intel_dmc_id dmc_id;
/* TODO: check if the following applies to all D13+ platforms. */
if (!IS_DG2(i915) && !IS_TIGERLAKE(i915))
@@ -365,22 +362,22 @@ disable_all_flip_queue_events(struct drm_i915_private *i915)
static void disable_all_event_handlers(struct drm_i915_private *i915)
{
- int id;
+ enum intel_dmc_id dmc_id;
/* TODO: disable the event handlers on pre-GEN12 platforms as well */
if (DISPLAY_VER(i915) < 12)
return;
- for (id = DMC_FW_MAIN; id < DMC_FW_MAX; id++) {
+ for (dmc_id = DMC_FW_MAIN; dmc_id < DMC_FW_MAX; dmc_id++) {
int handler;
- if (!has_dmc_id_fw(i915, id))
+ if (!has_dmc_id_fw(i915, dmc_id))
continue;
for (handler = 0; handler < DMC_EVENT_HANDLER_COUNT_GEN12; handler++)
disable_event_handler(i915,
- DMC_EVT_CTL(i915, id, handler),
- DMC_EVT_HTP(i915, id, handler));
+ DMC_EVT_CTL(i915, dmc_id, handler),
+ DMC_EVT_HTP(i915, dmc_id, handler));
}
}
@@ -441,7 +438,8 @@ void intel_dmc_disable_pipe(struct drm_i915_private *i915, enum pipe pipe)
void intel_dmc_load_program(struct drm_i915_private *dev_priv)
{
struct intel_dmc *dmc = &dev_priv->display.dmc;
- u32 id, i;
+ enum intel_dmc_id dmc_id;
+ u32 i;
if (!intel_dmc_has_payload(dev_priv))
return;
@@ -454,20 +452,20 @@ void intel_dmc_load_program(struct drm_i915_private *dev_priv)
preempt_disable();
- for (id = 0; id < DMC_FW_MAX; id++) {
- for (i = 0; i < dmc->dmc_info[id].dmc_fw_size; i++) {
+ for (dmc_id = 0; dmc_id < DMC_FW_MAX; dmc_id++) {
+ for (i = 0; i < dmc->dmc_info[dmc_id].dmc_fw_size; i++) {
intel_de_write_fw(dev_priv,
- DMC_PROGRAM(dmc->dmc_info[id].start_mmioaddr, i),
- dmc->dmc_info[id].payload[i]);
+ DMC_PROGRAM(dmc->dmc_info[dmc_id].start_mmioaddr, i),
+ dmc->dmc_info[dmc_id].payload[i]);
}
}
preempt_enable();
- for (id = 0; id < DMC_FW_MAX; id++) {
- for (i = 0; i < dmc->dmc_info[id].mmio_count; i++) {
- intel_de_write(dev_priv, dmc->dmc_info[id].mmioaddr[i],
- dmc->dmc_info[id].mmiodata[i]);
+ for (dmc_id = 0; dmc_id < DMC_FW_MAX; dmc_id++) {
+ for (i = 0; i < dmc->dmc_info[dmc_id].mmio_count; i++) {
+ intel_de_write(dev_priv, dmc->dmc_info[dmc_id].mmioaddr[i],
+ dmc->dmc_info[dmc_id].mmiodata[i]);
}
}
@@ -540,15 +538,16 @@ static void dmc_set_fw_offset(struct intel_dmc *dmc,
const struct stepping_info *si,
u8 package_ver)
{
- unsigned int i, id;
+ enum intel_dmc_id dmc_id;
+ unsigned int i;
struct drm_i915_private *i915 = container_of(dmc, typeof(*i915), display.dmc);
for (i = 0; i < num_entries; i++) {
- id = package_ver <= 1 ? DMC_FW_MAIN : fw_info[i].dmc_id;
+ dmc_id = package_ver <= 1 ? DMC_FW_MAIN : fw_info[i].dmc_id;
- if (id >= DMC_FW_MAX) {
- drm_dbg(&i915->drm, "Unsupported firmware id: %u\n", id);
+ if (dmc_id >= DMC_FW_MAX) {
+ drm_dbg(&i915->drm, "Unsupported firmware id: %u\n", dmc_id);
continue;
}
@@ -556,19 +555,19 @@ static void dmc_set_fw_offset(struct intel_dmc *dmc,
* check for the stepping since we already found a previous FW
* for this id.
*/
- if (dmc->dmc_info[id].present)
+ if (dmc->dmc_info[dmc_id].present)
continue;
if (fw_info_matches_stepping(&fw_info[i], si)) {
- dmc->dmc_info[id].present = true;
- dmc->dmc_info[id].dmc_offset = fw_info[i].offset;
+ dmc->dmc_info[dmc_id].present = true;
+ dmc->dmc_info[dmc_id].dmc_offset = fw_info[i].offset;
}
}
}
static bool dmc_mmio_addr_sanity_check(struct intel_dmc *dmc,
const u32 *mmioaddr, u32 mmio_count,
- int header_ver, u8 dmc_id)
+ int header_ver, enum intel_dmc_id dmc_id)
{
struct drm_i915_private *i915 = container_of(dmc, typeof(*i915), display.dmc);
u32 start_range, end_range;
@@ -606,7 +605,7 @@ static bool dmc_mmio_addr_sanity_check(struct intel_dmc *dmc,
static u32 parse_dmc_fw_header(struct intel_dmc *dmc,
const struct intel_dmc_header_base *dmc_header,
- size_t rem_size, u8 dmc_id)
+ size_t rem_size, enum intel_dmc_id dmc_id)
{
struct drm_i915_private *i915 = container_of(dmc, typeof(*i915), display.dmc);
struct dmc_fw_info *dmc_info = &dmc->dmc_info[dmc_id];
@@ -802,9 +801,9 @@ static void parse_dmc_fw(struct drm_i915_private *dev_priv,
struct intel_dmc *dmc = &dev_priv->display.dmc;
struct stepping_info display_info = { '*', '*'};
const struct stepping_info *si = intel_get_stepping_info(dev_priv, &display_info);
+ enum intel_dmc_id dmc_id;
u32 readcount = 0;
u32 r, offset;
- int id;
if (!fw)
return;
@@ -825,18 +824,18 @@ static void parse_dmc_fw(struct drm_i915_private *dev_priv,
readcount += r;
- for (id = 0; id < DMC_FW_MAX; id++) {
- if (!dev_priv->display.dmc.dmc_info[id].present)
+ for (dmc_id = 0; dmc_id < DMC_FW_MAX; dmc_id++) {
+ if (!dev_priv->display.dmc.dmc_info[dmc_id].present)
continue;
- offset = readcount + dmc->dmc_info[id].dmc_offset * 4;
+ offset = readcount + dmc->dmc_info[dmc_id].dmc_offset * 4;
if (offset > fw->size) {
drm_err(&dev_priv->drm, "Reading beyond the fw_size\n");
continue;
}
dmc_header = (struct intel_dmc_header_base *)&fw->data[offset];
- parse_dmc_fw_header(dmc, dmc_header, fw->size - offset, id);
+ parse_dmc_fw_header(dmc, dmc_header, fw->size - offset, dmc_id);
}
}
@@ -1044,7 +1043,7 @@ void intel_dmc_ucode_resume(struct drm_i915_private *dev_priv)
*/
void intel_dmc_ucode_fini(struct drm_i915_private *dev_priv)
{
- int id;
+ enum intel_dmc_id dmc_id;
if (!HAS_DMC(dev_priv))
return;
@@ -1052,8 +1051,8 @@ void intel_dmc_ucode_fini(struct drm_i915_private *dev_priv)
intel_dmc_ucode_suspend(dev_priv);
drm_WARN_ON(&dev_priv->drm, dev_priv->display.dmc.wakeref);
- for (id = 0; id < DMC_FW_MAX; id++)
- kfree(dev_priv->display.dmc.dmc_info[id].payload);
+ for (dmc_id = 0; dmc_id < DMC_FW_MAX; dmc_id++)
+ kfree(dev_priv->display.dmc.dmc_info[dmc_id].payload);
}
void intel_dmc_print_error_state(struct drm_i915_error_state_buf *m,
diff --git a/drivers/gpu/drm/i915/display/intel_dmc.h b/drivers/gpu/drm/i915/display/intel_dmc.h
index fd1725de4289..88eae74dbcf2 100644
--- a/drivers/gpu/drm/i915/display/intel_dmc.h
+++ b/drivers/gpu/drm/i915/display/intel_dmc.h
@@ -15,7 +15,7 @@ struct drm_i915_private;
enum pipe;
-enum {
+enum intel_dmc_id {
DMC_FW_MAIN = 0,
DMC_FW_PIPEA,
DMC_FW_PIPEB,
--
2.34.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [Intel-gfx] [PATCH 2/5] drm/i915/dmc: add for_each_dmc_id() and use it
2023-02-02 12:04 [Intel-gfx] [PATCH 0/5] drm/i915/dmc: some dmc id related fixes and cleanups Jani Nikula
2023-02-02 12:04 ` [Intel-gfx] [PATCH 1/5] drm/i915/dmc: add proper name to dmc id enum and use it Jani Nikula
@ 2023-02-02 12:04 ` Jani Nikula
2023-02-02 12:04 ` [Intel-gfx] [PATCH 3/5] drm/i915/dmc: remove unnecessary dmc_id validity check Jani Nikula
` (5 subsequent siblings)
7 siblings, 0 replies; 11+ messages in thread
From: Jani Nikula @ 2023-02-02 12:04 UTC (permalink / raw)
To: intel-gfx; +Cc: jani.nikula
The loop is duplicated many times, with slightly different ways. Unify.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/i915/display/intel_dmc.c | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_dmc.c b/drivers/gpu/drm/i915/display/intel_dmc.c
index 2cb748900805..51109cb1d1b5 100644
--- a/drivers/gpu/drm/i915/display/intel_dmc.c
+++ b/drivers/gpu/drm/i915/display/intel_dmc.c
@@ -249,6 +249,9 @@ struct stepping_info {
char substepping;
};
+#define for_each_dmc_id(__dmc_id) \
+ for ((__dmc_id) = DMC_FW_MAIN; (__dmc_id) < DMC_FW_MAX; (__dmc_id)++)
+
static bool has_dmc_id_fw(struct drm_i915_private *i915, enum intel_dmc_id dmc_id)
{
return i915->display.dmc.dmc_info[dmc_id].payload;
@@ -346,7 +349,7 @@ disable_all_flip_queue_events(struct drm_i915_private *i915)
if (!IS_DG2(i915) && !IS_TIGERLAKE(i915))
return;
- for (dmc_id = 0; dmc_id < DMC_FW_MAX; dmc_id++) {
+ for_each_dmc_id(dmc_id) {
i915_reg_t ctl_reg;
i915_reg_t htp_reg;
@@ -368,7 +371,7 @@ static void disable_all_event_handlers(struct drm_i915_private *i915)
if (DISPLAY_VER(i915) < 12)
return;
- for (dmc_id = DMC_FW_MAIN; dmc_id < DMC_FW_MAX; dmc_id++) {
+ for_each_dmc_id(dmc_id) {
int handler;
if (!has_dmc_id_fw(i915, dmc_id))
@@ -452,7 +455,7 @@ void intel_dmc_load_program(struct drm_i915_private *dev_priv)
preempt_disable();
- for (dmc_id = 0; dmc_id < DMC_FW_MAX; dmc_id++) {
+ for_each_dmc_id(dmc_id) {
for (i = 0; i < dmc->dmc_info[dmc_id].dmc_fw_size; i++) {
intel_de_write_fw(dev_priv,
DMC_PROGRAM(dmc->dmc_info[dmc_id].start_mmioaddr, i),
@@ -462,7 +465,7 @@ void intel_dmc_load_program(struct drm_i915_private *dev_priv)
preempt_enable();
- for (dmc_id = 0; dmc_id < DMC_FW_MAX; dmc_id++) {
+ for_each_dmc_id(dmc_id) {
for (i = 0; i < dmc->dmc_info[dmc_id].mmio_count; i++) {
intel_de_write(dev_priv, dmc->dmc_info[dmc_id].mmioaddr[i],
dmc->dmc_info[dmc_id].mmiodata[i]);
@@ -824,7 +827,7 @@ static void parse_dmc_fw(struct drm_i915_private *dev_priv,
readcount += r;
- for (dmc_id = 0; dmc_id < DMC_FW_MAX; dmc_id++) {
+ for_each_dmc_id(dmc_id) {
if (!dev_priv->display.dmc.dmc_info[dmc_id].present)
continue;
@@ -1051,7 +1054,7 @@ void intel_dmc_ucode_fini(struct drm_i915_private *dev_priv)
intel_dmc_ucode_suspend(dev_priv);
drm_WARN_ON(&dev_priv->drm, dev_priv->display.dmc.wakeref);
- for (dmc_id = 0; dmc_id < DMC_FW_MAX; dmc_id++)
+ for_each_dmc_id(dmc_id)
kfree(dev_priv->display.dmc.dmc_info[dmc_id].payload);
}
--
2.34.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [Intel-gfx] [PATCH 3/5] drm/i915/dmc: remove unnecessary dmc_id validity check
2023-02-02 12:04 [Intel-gfx] [PATCH 0/5] drm/i915/dmc: some dmc id related fixes and cleanups Jani Nikula
2023-02-02 12:04 ` [Intel-gfx] [PATCH 1/5] drm/i915/dmc: add proper name to dmc id enum and use it Jani Nikula
2023-02-02 12:04 ` [Intel-gfx] [PATCH 2/5] drm/i915/dmc: add for_each_dmc_id() " Jani Nikula
@ 2023-02-02 12:04 ` Jani Nikula
2023-02-02 12:04 ` [Intel-gfx] [PATCH 4/5] drm/i915/dmc: add is_valid_dmc_id() and use it Jani Nikula
` (4 subsequent siblings)
7 siblings, 0 replies; 11+ messages in thread
From: Jani Nikula @ 2023-02-02 12:04 UTC (permalink / raw)
To: intel-gfx; +Cc: jani.nikula
The dmc_id comes from for_each_dmc_id() in parse_dmc_fw() ->
parse_dmc_fw_header() -> dmc_mmio_addr_sanity_check(). It's valid by
definition.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/i915/display/intel_dmc.c | 5 -----
1 file changed, 5 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_dmc.c b/drivers/gpu/drm/i915/display/intel_dmc.c
index 51109cb1d1b5..4cc62b040518 100644
--- a/drivers/gpu/drm/i915/display/intel_dmc.c
+++ b/drivers/gpu/drm/i915/display/intel_dmc.c
@@ -576,11 +576,6 @@ static bool dmc_mmio_addr_sanity_check(struct intel_dmc *dmc,
u32 start_range, end_range;
int i;
- if (dmc_id >= DMC_FW_MAX) {
- drm_warn(&i915->drm, "Unsupported firmware id %u\n", dmc_id);
- return false;
- }
-
if (header_ver == 1) {
start_range = DMC_MMIO_START_RANGE;
end_range = DMC_MMIO_END_RANGE;
--
2.34.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [Intel-gfx] [PATCH 4/5] drm/i915/dmc: add is_valid_dmc_id() and use it
2023-02-02 12:04 [Intel-gfx] [PATCH 0/5] drm/i915/dmc: some dmc id related fixes and cleanups Jani Nikula
` (2 preceding siblings ...)
2023-02-02 12:04 ` [Intel-gfx] [PATCH 3/5] drm/i915/dmc: remove unnecessary dmc_id validity check Jani Nikula
@ 2023-02-02 12:04 ` Jani Nikula
2023-02-02 12:04 ` [Intel-gfx] [PATCH 5/5] drm/i915/dmc: check incoming dmc id validity Jani Nikula
` (3 subsequent siblings)
7 siblings, 0 replies; 11+ messages in thread
From: Jani Nikula @ 2023-02-02 12:04 UTC (permalink / raw)
To: intel-gfx; +Cc: jani.nikula
Add a name to the dmc id validity check.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/i915/display/intel_dmc.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/display/intel_dmc.c b/drivers/gpu/drm/i915/display/intel_dmc.c
index 4cc62b040518..ab0ad8e3e620 100644
--- a/drivers/gpu/drm/i915/display/intel_dmc.c
+++ b/drivers/gpu/drm/i915/display/intel_dmc.c
@@ -252,6 +252,11 @@ struct stepping_info {
#define for_each_dmc_id(__dmc_id) \
for ((__dmc_id) = DMC_FW_MAIN; (__dmc_id) < DMC_FW_MAX; (__dmc_id)++)
+static bool is_valid_dmc_id(enum intel_dmc_id dmc_id)
+{
+ return dmc_id >= DMC_FW_MAIN && dmc_id < DMC_FW_MAX;
+}
+
static bool has_dmc_id_fw(struct drm_i915_private *i915, enum intel_dmc_id dmc_id)
{
return i915->display.dmc.dmc_info[dmc_id].payload;
@@ -549,7 +554,7 @@ static void dmc_set_fw_offset(struct intel_dmc *dmc,
for (i = 0; i < num_entries; i++) {
dmc_id = package_ver <= 1 ? DMC_FW_MAIN : fw_info[i].dmc_id;
- if (dmc_id >= DMC_FW_MAX) {
+ if (!is_valid_dmc_id(dmc_id)) {
drm_dbg(&i915->drm, "Unsupported firmware id: %u\n", dmc_id);
continue;
}
--
2.34.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [Intel-gfx] [PATCH 5/5] drm/i915/dmc: check incoming dmc id validity
2023-02-02 12:04 [Intel-gfx] [PATCH 0/5] drm/i915/dmc: some dmc id related fixes and cleanups Jani Nikula
` (3 preceding siblings ...)
2023-02-02 12:04 ` [Intel-gfx] [PATCH 4/5] drm/i915/dmc: add is_valid_dmc_id() and use it Jani Nikula
@ 2023-02-02 12:04 ` Jani Nikula
2023-02-02 15:13 ` Imre Deak
2023-02-02 14:05 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915/dmc: some dmc id related fixes and cleanups Patchwork
` (2 subsequent siblings)
7 siblings, 1 reply; 11+ messages in thread
From: Jani Nikula @ 2023-02-02 12:04 UTC (permalink / raw)
To: intel-gfx; +Cc: jani.nikula
Add validity checks for the dmc ids computed from pipe parameters in
intel_dmc_enable_pipe() and intel_dmc_disable_pipe(). It's slightly
difficult for humans and static analyzers alike to ensure the resulting
dmc ids are within bounds. Just check them and reject invalid ones.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/i915/display/intel_dmc.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_dmc.c b/drivers/gpu/drm/i915/display/intel_dmc.c
index ab0ad8e3e620..3b8e8193d042 100644
--- a/drivers/gpu/drm/i915/display/intel_dmc.c
+++ b/drivers/gpu/drm/i915/display/intel_dmc.c
@@ -415,7 +415,9 @@ static void pipedmc_clock_gating_wa(struct drm_i915_private *i915, bool enable)
void intel_dmc_enable_pipe(struct drm_i915_private *i915, enum pipe pipe)
{
- if (!has_dmc_id_fw(i915, PIPE_TO_DMC_ID(pipe)))
+ enum intel_dmc_id dmc_id = PIPE_TO_DMC_ID(pipe);
+
+ if (!is_valid_dmc_id(dmc_id) || !has_dmc_id_fw(i915, dmc_id))
return;
if (DISPLAY_VER(i915) >= 14)
@@ -426,7 +428,9 @@ void intel_dmc_enable_pipe(struct drm_i915_private *i915, enum pipe pipe)
void intel_dmc_disable_pipe(struct drm_i915_private *i915, enum pipe pipe)
{
- if (!has_dmc_id_fw(i915, PIPE_TO_DMC_ID(pipe)))
+ enum intel_dmc_id dmc_id = PIPE_TO_DMC_ID(pipe);
+
+ if (!is_valid_dmc_id(dmc_id) || !has_dmc_id_fw(i915, dmc_id))
return;
if (DISPLAY_VER(i915) >= 14)
--
2.34.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915/dmc: some dmc id related fixes and cleanups
2023-02-02 12:04 [Intel-gfx] [PATCH 0/5] drm/i915/dmc: some dmc id related fixes and cleanups Jani Nikula
` (4 preceding siblings ...)
2023-02-02 12:04 ` [Intel-gfx] [PATCH 5/5] drm/i915/dmc: check incoming dmc id validity Jani Nikula
@ 2023-02-02 14:05 ` Patchwork
2023-02-02 14:29 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2023-02-02 18:05 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
7 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2023-02-02 14:05 UTC (permalink / raw)
To: Jani Nikula; +Cc: intel-gfx
== Series Details ==
Series: drm/i915/dmc: some dmc id related fixes and cleanups
URL : https://patchwork.freedesktop.org/series/113596/
State : warning
== Summary ==
Error: dim checkpatch failed
20fa69323f49 drm/i915/dmc: add proper name to dmc id enum and use it
b2de2d242648 drm/i915/dmc: add for_each_dmc_id() and use it
-:18: CHECK:MACRO_ARG_REUSE: Macro argument reuse '__dmc_id' - possible side-effects?
#18: FILE: drivers/gpu/drm/i915/display/intel_dmc.c:252:
+#define for_each_dmc_id(__dmc_id) \
+ for ((__dmc_id) = DMC_FW_MAIN; (__dmc_id) < DMC_FW_MAX; (__dmc_id)++)
total: 0 errors, 0 warnings, 1 checks, 57 lines checked
0fc5c95928a2 drm/i915/dmc: remove unnecessary dmc_id validity check
4e42b93e1826 drm/i915/dmc: add is_valid_dmc_id() and use it
a7f94ff438db drm/i915/dmc: check incoming dmc id validity
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/dmc: some dmc id related fixes and cleanups
2023-02-02 12:04 [Intel-gfx] [PATCH 0/5] drm/i915/dmc: some dmc id related fixes and cleanups Jani Nikula
` (5 preceding siblings ...)
2023-02-02 14:05 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915/dmc: some dmc id related fixes and cleanups Patchwork
@ 2023-02-02 14:29 ` Patchwork
2023-02-02 18:05 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
7 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2023-02-02 14:29 UTC (permalink / raw)
To: Jani Nikula; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 5297 bytes --]
== Series Details ==
Series: drm/i915/dmc: some dmc id related fixes and cleanups
URL : https://patchwork.freedesktop.org/series/113596/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_12683 -> Patchwork_113596v1
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_113596v1/index.html
Participating hosts (26 -> 26)
------------------------------
Additional (1): fi-kbl-soraka
Missing (1): fi-snb-2520m
Known issues
------------
Here are the changes found in Patchwork_113596v1 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_huc_copy@huc-copy:
- fi-kbl-soraka: NOTRUN -> [SKIP][1] ([fdo#109271] / [i915#2190])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_113596v1/fi-kbl-soraka/igt@gem_huc_copy@huc-copy.html
* igt@gem_lmem_swapping@basic:
- fi-kbl-soraka: NOTRUN -> [SKIP][2] ([fdo#109271] / [i915#4613]) +3 similar issues
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_113596v1/fi-kbl-soraka/igt@gem_lmem_swapping@basic.html
* igt@i915_selftest@live@dmabuf:
- fi-bsw-nick: [PASS][3] -> [DMESG-FAIL][4] ([i915#7562] / [i915#7913])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12683/fi-bsw-nick/igt@i915_selftest@live@dmabuf.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_113596v1/fi-bsw-nick/igt@i915_selftest@live@dmabuf.html
* igt@i915_selftest@live@gt_pm:
- fi-kbl-soraka: NOTRUN -> [DMESG-FAIL][5] ([i915#1886])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_113596v1/fi-kbl-soraka/igt@i915_selftest@live@gt_pm.html
* igt@i915_selftest@live@hangcheck:
- fi-kbl-soraka: NOTRUN -> [INCOMPLETE][6] ([i915#7913])
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_113596v1/fi-kbl-soraka/igt@i915_selftest@live@hangcheck.html
* igt@kms_chamelium_frames@hdmi-crc-fast:
- fi-kbl-soraka: NOTRUN -> [SKIP][7] ([fdo#109271]) +15 similar issues
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_113596v1/fi-kbl-soraka/igt@kms_chamelium_frames@hdmi-crc-fast.html
* igt@kms_chamelium_hpd@common-hpd-after-suspend:
- fi-bsw-nick: NOTRUN -> [SKIP][8] ([fdo#109271]) +1 similar issue
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_113596v1/fi-bsw-nick/igt@kms_chamelium_hpd@common-hpd-after-suspend.html
#### Possible fixes ####
* igt@fbdev@write:
- fi-blb-e6850: [SKIP][9] ([fdo#109271]) -> [PASS][10] +4 similar issues
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12683/fi-blb-e6850/igt@fbdev@write.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_113596v1/fi-blb-e6850/igt@fbdev@write.html
* igt@i915_selftest@live@execlists:
- fi-bsw-nick: [ABORT][11] ([i915#7911]) -> [PASS][12]
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12683/fi-bsw-nick/igt@i915_selftest@live@execlists.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_113596v1/fi-bsw-nick/igt@i915_selftest@live@execlists.html
* igt@i915_selftest@live@reset:
- {bat-rpls-2}: [ABORT][13] ([i915#4983]) -> [PASS][14]
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12683/bat-rpls-2/igt@i915_selftest@live@reset.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_113596v1/bat-rpls-2/igt@i915_selftest@live@reset.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
[i915#1886]: https://gitlab.freedesktop.org/drm/intel/issues/1886
[i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
[i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
[i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983
[i915#6794]: https://gitlab.freedesktop.org/drm/intel/issues/6794
[i915#6997]: https://gitlab.freedesktop.org/drm/intel/issues/6997
[i915#7562]: https://gitlab.freedesktop.org/drm/intel/issues/7562
[i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
[i915#7911]: https://gitlab.freedesktop.org/drm/intel/issues/7911
[i915#7913]: https://gitlab.freedesktop.org/drm/intel/issues/7913
Build changes
-------------
* Linux: CI_DRM_12683 -> Patchwork_113596v1
CI-20190529: 20190529
CI_DRM_12683: cbc540884f5894cb0e1c84a3822b80342e852b80 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_7144: cda71bf809b981a646270963d6b1ccee4fd4643b @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_113596v1: cbc540884f5894cb0e1c84a3822b80342e852b80 @ git://anongit.freedesktop.org/gfx-ci/linux
### Linux commits
7326d8aba11a drm/i915/dmc: check incoming dmc id validity
4d0bd34448a5 drm/i915/dmc: add is_valid_dmc_id() and use it
ea76e1f2cd2c drm/i915/dmc: remove unnecessary dmc_id validity check
37e181da625a drm/i915/dmc: add for_each_dmc_id() and use it
af1a17c8a184 drm/i915/dmc: add proper name to dmc id enum and use it
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_113596v1/index.html
[-- Attachment #2: Type: text/html, Size: 6246 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Intel-gfx] [PATCH 5/5] drm/i915/dmc: check incoming dmc id validity
2023-02-02 12:04 ` [Intel-gfx] [PATCH 5/5] drm/i915/dmc: check incoming dmc id validity Jani Nikula
@ 2023-02-02 15:13 ` Imre Deak
2023-02-03 10:34 ` Jani Nikula
0 siblings, 1 reply; 11+ messages in thread
From: Imre Deak @ 2023-02-02 15:13 UTC (permalink / raw)
To: Jani Nikula; +Cc: intel-gfx
On Thu, Feb 02, 2023 at 02:04:52PM +0200, Jani Nikula wrote:
> Add validity checks for the dmc ids computed from pipe parameters in
> intel_dmc_enable_pipe() and intel_dmc_disable_pipe(). It's slightly
> difficult for humans and static analyzers alike to ensure the resulting
> dmc ids are within bounds. Just check them and reject invalid ones.
>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Patchset looks ok to me:
Reviewed-by: Imre Deak <imre.deak@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_dmc.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_dmc.c b/drivers/gpu/drm/i915/display/intel_dmc.c
> index ab0ad8e3e620..3b8e8193d042 100644
> --- a/drivers/gpu/drm/i915/display/intel_dmc.c
> +++ b/drivers/gpu/drm/i915/display/intel_dmc.c
> @@ -415,7 +415,9 @@ static void pipedmc_clock_gating_wa(struct drm_i915_private *i915, bool enable)
>
> void intel_dmc_enable_pipe(struct drm_i915_private *i915, enum pipe pipe)
> {
> - if (!has_dmc_id_fw(i915, PIPE_TO_DMC_ID(pipe)))
> + enum intel_dmc_id dmc_id = PIPE_TO_DMC_ID(pipe);
> +
> + if (!is_valid_dmc_id(dmc_id) || !has_dmc_id_fw(i915, dmc_id))
> return;
>
> if (DISPLAY_VER(i915) >= 14)
> @@ -426,7 +428,9 @@ void intel_dmc_enable_pipe(struct drm_i915_private *i915, enum pipe pipe)
>
> void intel_dmc_disable_pipe(struct drm_i915_private *i915, enum pipe pipe)
> {
> - if (!has_dmc_id_fw(i915, PIPE_TO_DMC_ID(pipe)))
> + enum intel_dmc_id dmc_id = PIPE_TO_DMC_ID(pipe);
> +
> + if (!is_valid_dmc_id(dmc_id) || !has_dmc_id_fw(i915, dmc_id))
> return;
>
> if (DISPLAY_VER(i915) >= 14)
> --
> 2.34.1
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915/dmc: some dmc id related fixes and cleanups
2023-02-02 12:04 [Intel-gfx] [PATCH 0/5] drm/i915/dmc: some dmc id related fixes and cleanups Jani Nikula
` (6 preceding siblings ...)
2023-02-02 14:29 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
@ 2023-02-02 18:05 ` Patchwork
7 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2023-02-02 18:05 UTC (permalink / raw)
To: Jani Nikula; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 19655 bytes --]
== Series Details ==
Series: drm/i915/dmc: some dmc id related fixes and cleanups
URL : https://patchwork.freedesktop.org/series/113596/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_12683_full -> Patchwork_113596v1_full
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_113596v1/index.html
Participating hosts (10 -> 10)
------------------------------
No changes in participating hosts
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in Patchwork_113596v1_full:
### IGT changes ###
#### Suppressed ####
The following results come from untrusted machines, tests, or statuses.
They do not affect the overall result.
* igt@gem_ctx_isolation@preservation-s3@rcs0:
- {shard-tglu}: NOTRUN -> [ABORT][1]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_113596v1/shard-tglu-6/igt@gem_ctx_isolation@preservation-s3@rcs0.html
Known issues
------------
Here are the changes found in Patchwork_113596v1_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_exec_fair@basic-none-vip@rcs0:
- shard-glk: [PASS][2] -> [FAIL][3] ([i915#2842])
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12683/shard-glk5/igt@gem_exec_fair@basic-none-vip@rcs0.html
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_113596v1/shard-glk2/igt@gem_exec_fair@basic-none-vip@rcs0.html
#### Possible fixes ####
* igt@drm_fdinfo@most-busy-check-all@rcs0:
- {shard-rkl}: [FAIL][4] ([i915#7742]) -> [PASS][5]
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12683/shard-rkl-4/igt@drm_fdinfo@most-busy-check-all@rcs0.html
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_113596v1/shard-rkl-6/igt@drm_fdinfo@most-busy-check-all@rcs0.html
* igt@fbdev@nullptr:
- {shard-rkl}: [SKIP][6] ([i915#2582]) -> [PASS][7]
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12683/shard-rkl-4/igt@fbdev@nullptr.html
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_113596v1/shard-rkl-6/igt@fbdev@nullptr.html
* igt@feature_discovery@psr1:
- {shard-rkl}: [SKIP][8] ([i915#658]) -> [PASS][9]
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12683/shard-rkl-4/igt@feature_discovery@psr1.html
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_113596v1/shard-rkl-6/igt@feature_discovery@psr1.html
* igt@gem_ctx_isolation@preservation-s3@bcs0:
- {shard-rkl}: [DMESG-WARN][10] ([i915#5122]) -> [PASS][11]
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12683/shard-rkl-4/igt@gem_ctx_isolation@preservation-s3@bcs0.html
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_113596v1/shard-rkl-5/igt@gem_ctx_isolation@preservation-s3@bcs0.html
* igt@gem_ctx_isolation@preservation-s3@rcs0:
- {shard-rkl}: [ABORT][12] -> [PASS][13]
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12683/shard-rkl-4/igt@gem_ctx_isolation@preservation-s3@rcs0.html
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_113596v1/shard-rkl-5/igt@gem_ctx_isolation@preservation-s3@rcs0.html
* igt@gem_exec_endless@dispatch@bcs0:
- {shard-rkl}: [SKIP][14] ([i915#6247]) -> [PASS][15]
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12683/shard-rkl-5/igt@gem_exec_endless@dispatch@bcs0.html
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_113596v1/shard-rkl-1/igt@gem_exec_endless@dispatch@bcs0.html
* igt@gem_exec_fair@basic-pace@vecs0:
- shard-glk: [FAIL][16] ([i915#2842]) -> [PASS][17]
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12683/shard-glk6/igt@gem_exec_fair@basic-pace@vecs0.html
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_113596v1/shard-glk2/igt@gem_exec_fair@basic-pace@vecs0.html
* igt@gem_exec_flush@basic-batch-kernel-default-cmd:
- {shard-rkl}: [SKIP][18] ([fdo#109313]) -> [PASS][19]
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12683/shard-rkl-6/igt@gem_exec_flush@basic-batch-kernel-default-cmd.html
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_113596v1/shard-rkl-5/igt@gem_exec_flush@basic-batch-kernel-default-cmd.html
* igt@gem_exec_reloc@basic-wc-read-noreloc:
- {shard-rkl}: [SKIP][20] ([i915#3281]) -> [PASS][21] +1 similar issue
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12683/shard-rkl-4/igt@gem_exec_reloc@basic-wc-read-noreloc.html
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_113596v1/shard-rkl-5/igt@gem_exec_reloc@basic-wc-read-noreloc.html
* igt@gem_partial_pwrite_pread@writes-after-reads:
- {shard-rkl}: [SKIP][22] ([i915#3282]) -> [PASS][23] +4 similar issues
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12683/shard-rkl-6/igt@gem_partial_pwrite_pread@writes-after-reads.html
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_113596v1/shard-rkl-5/igt@gem_partial_pwrite_pread@writes-after-reads.html
* igt@gen9_exec_parse@bb-start-far:
- {shard-rkl}: [SKIP][24] ([i915#2527]) -> [PASS][25] +2 similar issues
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12683/shard-rkl-6/igt@gen9_exec_parse@bb-start-far.html
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_113596v1/shard-rkl-5/igt@gen9_exec_parse@bb-start-far.html
* igt@i915_pm_dc@dc9-dpms:
- {shard-rkl}: [SKIP][26] ([i915#3361]) -> [PASS][27]
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12683/shard-rkl-5/igt@i915_pm_dc@dc9-dpms.html
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_113596v1/shard-rkl-1/igt@i915_pm_dc@dc9-dpms.html
* igt@i915_pm_rpm@i2c:
- {shard-rkl}: [SKIP][28] ([fdo#109308]) -> [PASS][29]
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12683/shard-rkl-2/igt@i915_pm_rpm@i2c.html
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_113596v1/shard-rkl-6/igt@i915_pm_rpm@i2c.html
* igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_gen12_rc_ccs:
- {shard-rkl}: [SKIP][30] ([i915#1845] / [i915#4098]) -> [PASS][31] +24 similar issues
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12683/shard-rkl-4/igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_gen12_rc_ccs.html
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_113596v1/shard-rkl-6/igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_gen12_rc_ccs.html
* igt@kms_dp_aux_dev:
- {shard-rkl}: [SKIP][32] ([i915#1257]) -> [PASS][33]
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12683/shard-rkl-2/igt@kms_dp_aux_dev.html
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_113596v1/shard-rkl-6/igt@kms_dp_aux_dev.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible@c-hdmi-a1:
- shard-glk: [FAIL][34] ([i915#79]) -> [PASS][35]
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12683/shard-glk5/igt@kms_flip@flip-vs-expired-vblank-interruptible@c-hdmi-a1.html
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_113596v1/shard-glk2/igt@kms_flip@flip-vs-expired-vblank-interruptible@c-hdmi-a1.html
* igt@kms_frontbuffer_tracking@fbc-shrfb-scaledprimary:
- {shard-rkl}: [SKIP][36] ([i915#1849] / [i915#4098]) -> [PASS][37] +15 similar issues
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12683/shard-rkl-2/igt@kms_frontbuffer_tracking@fbc-shrfb-scaledprimary.html
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_113596v1/shard-rkl-6/igt@kms_frontbuffer_tracking@fbc-shrfb-scaledprimary.html
* igt@kms_plane@plane-position-hole@pipe-b-planes:
- {shard-rkl}: [SKIP][38] ([i915#1849]) -> [PASS][39] +5 similar issues
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12683/shard-rkl-4/igt@kms_plane@plane-position-hole@pipe-b-planes.html
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_113596v1/shard-rkl-6/igt@kms_plane@plane-position-hole@pipe-b-planes.html
* igt@kms_psr@dpms:
- {shard-rkl}: [SKIP][40] ([i915#1072]) -> [PASS][41] +2 similar issues
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12683/shard-rkl-2/igt@kms_psr@dpms.html
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_113596v1/shard-rkl-6/igt@kms_psr@dpms.html
* igt@perf@polling-small-buf:
- {shard-rkl}: [FAIL][42] ([i915#1722]) -> [PASS][43]
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12683/shard-rkl-2/igt@perf@polling-small-buf.html
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_113596v1/shard-rkl-6/igt@perf@polling-small-buf.html
* igt@prime_vgem@basic-fence-flip:
- {shard-rkl}: [SKIP][44] ([fdo#109295] / [i915#3708] / [i915#4098]) -> [PASS][45]
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12683/shard-rkl-4/igt@prime_vgem@basic-fence-flip.html
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_113596v1/shard-rkl-6/igt@prime_vgem@basic-fence-flip.html
* igt@sysfs_timeslice_duration@timeout@vcs0:
- {shard-rkl}: [FAIL][46] ([i915#1755]) -> [PASS][47]
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12683/shard-rkl-3/igt@sysfs_timeslice_duration@timeout@vcs0.html
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_113596v1/shard-rkl-1/igt@sysfs_timeslice_duration@timeout@vcs0.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375
[fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
[fdo#109279]: https://bugs.freedesktop.org/show_bug.cgi?id=109279
[fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
[fdo#109283]: https://bugs.freedesktop.org/show_bug.cgi?id=109283
[fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
[fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
[fdo#109300]: https://bugs.freedesktop.org/show_bug.cgi?id=109300
[fdo#109303]: https://bugs.freedesktop.org/show_bug.cgi?id=109303
[fdo#109307]: https://bugs.freedesktop.org/show_bug.cgi?id=109307
[fdo#109308]: https://bugs.freedesktop.org/show_bug.cgi?id=109308
[fdo#109309]: https://bugs.freedesktop.org/show_bug.cgi?id=109309
[fdo#109312]: https://bugs.freedesktop.org/show_bug.cgi?id=109312
[fdo#109313]: https://bugs.freedesktop.org/show_bug.cgi?id=109313
[fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
[fdo#109506]: https://bugs.freedesktop.org/show_bug.cgi?id=109506
[fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
[fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
[fdo#110542]: https://bugs.freedesktop.org/show_bug.cgi?id=110542
[fdo#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723
[fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
[fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
[fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
[fdo#111644]: https://bugs.freedesktop.org/show_bug.cgi?id=111644
[fdo#111656]: https://bugs.freedesktop.org/show_bug.cgi?id=111656
[fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
[fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
[fdo#112054]: https://bugs.freedesktop.org/show_bug.cgi?id=112054
[fdo#112283]: https://bugs.freedesktop.org/show_bug.cgi?id=112283
[i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
[i915#1257]: https://gitlab.freedesktop.org/drm/intel/issues/1257
[i915#132]: https://gitlab.freedesktop.org/drm/intel/issues/132
[i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
[i915#1722]: https://gitlab.freedesktop.org/drm/intel/issues/1722
[i915#1755]: https://gitlab.freedesktop.org/drm/intel/issues/1755
[i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825
[i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839
[i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
[i915#1849]: https://gitlab.freedesktop.org/drm/intel/issues/1849
[i915#1902]: https://gitlab.freedesktop.org/drm/intel/issues/1902
[i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
[i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
[i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
[i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575
[i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
[i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587
[i915#2658]: https://gitlab.freedesktop.org/drm/intel/issues/2658
[i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
[i915#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705
[i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280
[i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
[i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856
[i915#2920]: https://gitlab.freedesktop.org/drm/intel/issues/2920
[i915#3116]: https://gitlab.freedesktop.org/drm/intel/issues/3116
[i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281
[i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
[i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297
[i915#3299]: https://gitlab.freedesktop.org/drm/intel/issues/3299
[i915#3323]: https://gitlab.freedesktop.org/drm/intel/issues/3323
[i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359
[i915#3361]: https://gitlab.freedesktop.org/drm/intel/issues/3361
[i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458
[i915#3469]: https://gitlab.freedesktop.org/drm/intel/issues/3469
[i915#3536]: https://gitlab.freedesktop.org/drm/intel/issues/3536
[i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539
[i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546
[i915#3547]: https://gitlab.freedesktop.org/drm/intel/issues/3547
[i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
[i915#3591]: https://gitlab.freedesktop.org/drm/intel/issues/3591
[i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
[i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638
[i915#3639]: https://gitlab.freedesktop.org/drm/intel/issues/3639
[i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
[i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
[i915#3734]: https://gitlab.freedesktop.org/drm/intel/issues/3734
[i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840
[i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
[i915#3938]: https://gitlab.freedesktop.org/drm/intel/issues/3938
[i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955
[i915#3966]: https://gitlab.freedesktop.org/drm/intel/issues/3966
[i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070
[i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
[i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
[i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
[i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098
[i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
[i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
[i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
[i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
[i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
[i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812
[i915#4833]: https://gitlab.freedesktop.org/drm/intel/issues/4833
[i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852
[i915#4859]: https://gitlab.freedesktop.org/drm/intel/issues/4859
[i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
[i915#4880]: https://gitlab.freedesktop.org/drm/intel/issues/4880
[i915#5122]: https://gitlab.freedesktop.org/drm/intel/issues/5122
[i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
[i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
[i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
[i915#5288]: https://gitlab.freedesktop.org/drm/intel/issues/5288
[i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289
[i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325
[i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
[i915#5439]: https://gitlab.freedesktop.org/drm/intel/issues/5439
[i915#5461]: https://gitlab.freedesktop.org/drm/intel/issues/5461
[i915#5563]: https://gitlab.freedesktop.org/drm/intel/issues/5563
[i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
[i915#6227]: https://gitlab.freedesktop.org/drm/intel/issues/6227
[i915#6230]: https://gitlab.freedesktop.org/drm/intel/issues/6230
[i915#6245]: https://gitlab.freedesktop.org/drm/intel/issues/6245
[i915#6247]: https://gitlab.freedesktop.org/drm/intel/issues/6247
[i915#6248]: https://gitlab.freedesktop.org/drm/intel/issues/6248
[i915#6252]: https://gitlab.freedesktop.org/drm/intel/issues/6252
[i915#6301]: https://gitlab.freedesktop.org/drm/intel/issues/6301
[i915#6334]: https://gitlab.freedesktop.org/drm/intel/issues/6334
[i915#6335]: https://gitlab.freedesktop.org/drm/intel/issues/6335
[i915#6433]: https://gitlab.freedesktop.org/drm/intel/issues/6433
[i915#6497]: https://gitlab.freedesktop.org/drm/intel/issues/6497
[i915#6524]: https://gitlab.freedesktop.org/drm/intel/issues/6524
[i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
[i915#6590]: https://gitlab.freedesktop.org/drm/intel/issues/6590
[i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621
[i915#6768]: https://gitlab.freedesktop.org/drm/intel/issues/6768
[i915#6944]: https://gitlab.freedesktop.org/drm/intel/issues/6944
[i915#6946]: https://gitlab.freedesktop.org/drm/intel/issues/6946
[i915#6953]: https://gitlab.freedesktop.org/drm/intel/issues/6953
[i915#7116]: https://gitlab.freedesktop.org/drm/intel/issues/7116
[i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118
[i915#7128]: https://gitlab.freedesktop.org/drm/intel/issues/7128
[i915#7294]: https://gitlab.freedesktop.org/drm/intel/issues/7294
[i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561
[i915#7651]: https://gitlab.freedesktop.org/drm/intel/issues/7651
[i915#7697]: https://gitlab.freedesktop.org/drm/intel/issues/7697
[i915#7701]: https://gitlab.freedesktop.org/drm/intel/issues/7701
[i915#7707]: https://gitlab.freedesktop.org/drm/intel/issues/7707
[i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711
[i915#7742]: https://gitlab.freedesktop.org/drm/intel/issues/7742
[i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
[i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
[i915#7949]: https://gitlab.freedesktop.org/drm/intel/issues/7949
Build changes
-------------
* Linux: CI_DRM_12683 -> Patchwork_113596v1
CI-20190529: 20190529
CI_DRM_12683: cbc540884f5894cb0e1c84a3822b80342e852b80 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_7144: cda71bf809b981a646270963d6b1ccee4fd4643b @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_113596v1: cbc540884f5894cb0e1c84a3822b80342e852b80 @ git://anongit.freedesktop.org/gfx-ci/linux
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_113596v1/index.html
[-- Attachment #2: Type: text/html, Size: 13026 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Intel-gfx] [PATCH 5/5] drm/i915/dmc: check incoming dmc id validity
2023-02-02 15:13 ` Imre Deak
@ 2023-02-03 10:34 ` Jani Nikula
0 siblings, 0 replies; 11+ messages in thread
From: Jani Nikula @ 2023-02-03 10:34 UTC (permalink / raw)
To: imre.deak; +Cc: intel-gfx
On Thu, 02 Feb 2023, Imre Deak <imre.deak@intel.com> wrote:
> On Thu, Feb 02, 2023 at 02:04:52PM +0200, Jani Nikula wrote:
>> Add validity checks for the dmc ids computed from pipe parameters in
>> intel_dmc_enable_pipe() and intel_dmc_disable_pipe(). It's slightly
>> difficult for humans and static analyzers alike to ensure the resulting
>> dmc ids are within bounds. Just check them and reject invalid ones.
>>
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>
> Patchset looks ok to me:
> Reviewed-by: Imre Deak <imre.deak@intel.com>
Thanks for the review, pushed to din.
BR,
Jani
>
>> ---
>> drivers/gpu/drm/i915/display/intel_dmc.c | 8 ++++++--
>> 1 file changed, 6 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/display/intel_dmc.c b/drivers/gpu/drm/i915/display/intel_dmc.c
>> index ab0ad8e3e620..3b8e8193d042 100644
>> --- a/drivers/gpu/drm/i915/display/intel_dmc.c
>> +++ b/drivers/gpu/drm/i915/display/intel_dmc.c
>> @@ -415,7 +415,9 @@ static void pipedmc_clock_gating_wa(struct drm_i915_private *i915, bool enable)
>>
>> void intel_dmc_enable_pipe(struct drm_i915_private *i915, enum pipe pipe)
>> {
>> - if (!has_dmc_id_fw(i915, PIPE_TO_DMC_ID(pipe)))
>> + enum intel_dmc_id dmc_id = PIPE_TO_DMC_ID(pipe);
>> +
>> + if (!is_valid_dmc_id(dmc_id) || !has_dmc_id_fw(i915, dmc_id))
>> return;
>>
>> if (DISPLAY_VER(i915) >= 14)
>> @@ -426,7 +428,9 @@ void intel_dmc_enable_pipe(struct drm_i915_private *i915, enum pipe pipe)
>>
>> void intel_dmc_disable_pipe(struct drm_i915_private *i915, enum pipe pipe)
>> {
>> - if (!has_dmc_id_fw(i915, PIPE_TO_DMC_ID(pipe)))
>> + enum intel_dmc_id dmc_id = PIPE_TO_DMC_ID(pipe);
>> +
>> + if (!is_valid_dmc_id(dmc_id) || !has_dmc_id_fw(i915, dmc_id))
>> return;
>>
>> if (DISPLAY_VER(i915) >= 14)
>> --
>> 2.34.1
>>
--
Jani Nikula, Intel Open Source Graphics Center
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2023-02-03 10:35 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-02 12:04 [Intel-gfx] [PATCH 0/5] drm/i915/dmc: some dmc id related fixes and cleanups Jani Nikula
2023-02-02 12:04 ` [Intel-gfx] [PATCH 1/5] drm/i915/dmc: add proper name to dmc id enum and use it Jani Nikula
2023-02-02 12:04 ` [Intel-gfx] [PATCH 2/5] drm/i915/dmc: add for_each_dmc_id() " Jani Nikula
2023-02-02 12:04 ` [Intel-gfx] [PATCH 3/5] drm/i915/dmc: remove unnecessary dmc_id validity check Jani Nikula
2023-02-02 12:04 ` [Intel-gfx] [PATCH 4/5] drm/i915/dmc: add is_valid_dmc_id() and use it Jani Nikula
2023-02-02 12:04 ` [Intel-gfx] [PATCH 5/5] drm/i915/dmc: check incoming dmc id validity Jani Nikula
2023-02-02 15:13 ` Imre Deak
2023-02-03 10:34 ` Jani Nikula
2023-02-02 14:05 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915/dmc: some dmc id related fixes and cleanups Patchwork
2023-02-02 14:29 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2023-02-02 18:05 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
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.