Skip to content

Commit bfd4e19

Browse files
committed
drm/edid: use the new displayid iterator for tile info
Neatly reduce displayid boilerplate in code. Remove excessive debug logging while at it, no other functional changes. The old displayid iterator becomes unused; remove it as well as make drm_find_displayid_extension() static. Reviewed-by: Ville Syrjälä <[email protected]> Signed-off-by: Jani Nikula <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/fa4b5c790b5bdd82063545a6f209f8e9d78a63a7.1617024940.git.jani.nikula@intel.com
1 parent 1ba63ca commit bfd4e19

File tree

3 files changed

+10
-45
lines changed

3 files changed

+10
-45
lines changed

drivers/gpu/drm/drm_displayid.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,9 @@ static int validate_displayid(const u8 *displayid, int length, int idx)
3333
return 0;
3434
}
3535

36-
const u8 *drm_find_displayid_extension(const struct edid *edid,
37-
int *length, int *idx,
38-
int *ext_index)
36+
static const u8 *drm_find_displayid_extension(const struct edid *edid,
37+
int *length, int *idx,
38+
int *ext_index)
3939
{
4040
const u8 *displayid = drm_find_edid_extension(edid, DISPLAYID_EXT, ext_index);
4141
const struct displayid_hdr *base;

drivers/gpu/drm/drm_edid.c

Lines changed: 7 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -5969,43 +5969,20 @@ static void drm_parse_tiled_block(struct drm_connector *connector,
59695969
}
59705970
}
59715971

5972-
static void drm_displayid_parse_tiled(struct drm_connector *connector,
5973-
const u8 *displayid, int length, int idx)
5974-
{
5975-
const struct displayid_block *block;
5976-
5977-
idx += sizeof(struct displayid_hdr);
5978-
for_each_displayid_db(displayid, block, idx, length) {
5979-
DRM_DEBUG_KMS("block id 0x%x, rev %d, len %d\n",
5980-
block->tag, block->rev, block->num_bytes);
5981-
5982-
switch (block->tag) {
5983-
case DATA_BLOCK_TILED_DISPLAY:
5984-
drm_parse_tiled_block(connector, block);
5985-
break;
5986-
default:
5987-
DRM_DEBUG_KMS("found DisplayID tag 0x%x, unhandled\n", block->tag);
5988-
break;
5989-
}
5990-
}
5991-
}
5992-
59935972
void drm_update_tile_info(struct drm_connector *connector,
59945973
const struct edid *edid)
59955974
{
5996-
const void *displayid = NULL;
5997-
int ext_index = 0;
5998-
int length, idx;
5975+
const struct displayid_block *block;
5976+
struct displayid_iter iter;
59995977

60005978
connector->has_tile = false;
6001-
for (;;) {
6002-
displayid = drm_find_displayid_extension(edid, &length, &idx,
6003-
&ext_index);
6004-
if (!displayid)
6005-
break;
60065979

6007-
drm_displayid_parse_tiled(connector, displayid, length, idx);
5980+
displayid_iter_edid_begin(edid, &iter);
5981+
displayid_iter_for_each(block, &iter) {
5982+
if (block->tag == DATA_BLOCK_TILED_DISPLAY)
5983+
drm_parse_tiled_block(connector, block);
60085984
}
5985+
displayid_iter_end(&iter);
60095986

60105987
if (!connector->has_tile && connector->tile_group) {
60115988
drm_mode_put_tile_group(connector->dev, connector->tile_group);

include/drm/drm_displayid.h

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -96,18 +96,6 @@ struct displayid_detailed_timing_block {
9696
struct displayid_detailed_timings_1 timings[];
9797
};
9898

99-
#define for_each_displayid_db(displayid, block, idx, length) \
100-
for ((block) = (const struct displayid_block *)&(displayid)[idx]; \
101-
(idx) + sizeof(struct displayid_block) <= (length) && \
102-
(idx) + sizeof(struct displayid_block) + (block)->num_bytes <= (length) && \
103-
(block)->num_bytes > 0; \
104-
(idx) += sizeof(struct displayid_block) + (block)->num_bytes, \
105-
(block) = (const struct displayid_block *)&(displayid)[idx])
106-
107-
const u8 *drm_find_displayid_extension(const struct edid *edid,
108-
int *length, int *idx,
109-
int *ext_index);
110-
11199
/* DisplayID iteration */
112100
struct displayid_iter {
113101
const struct edid *edid;

0 commit comments

Comments
 (0)