Commit bbded689 authored by Jani Nikula's avatar Jani Nikula

drm/edid: convert drm_edid_iter_begin() to drm_edid

We'll need to propagate drm_edid everywhere.

v2: Rebase
Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
Reviewed-by: default avatarAnkit Nautiyal <ankit.k.nautiyal@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/24dfb5fd9026ebef573bb55b368b94e56cae5cec.1652097712.git.jani.nikula@intel.com
parent 5e87b2e5
...@@ -1632,36 +1632,36 @@ static const struct drm_edid *drm_edid_legacy_init(struct drm_edid *drm_edid, ...@@ -1632,36 +1632,36 @@ static const struct drm_edid *drm_edid_legacy_init(struct drm_edid *drm_edid,
* struct drm_edid_iter iter; * struct drm_edid_iter iter;
* const u8 *block; * const u8 *block;
* *
* drm_edid_iter_begin(edid, &iter); * drm_edid_iter_begin(drm_edid, &iter);
* drm_edid_iter_for_each(block, &iter) { * drm_edid_iter_for_each(block, &iter) {
* // do stuff with block * // do stuff with block
* } * }
* drm_edid_iter_end(&iter); * drm_edid_iter_end(&iter);
*/ */
struct drm_edid_iter { struct drm_edid_iter {
const struct edid *edid; const struct drm_edid *drm_edid;
/* Current block index. */ /* Current block index. */
int index; int index;
}; };
static void drm_edid_iter_begin(const struct edid *edid, static void drm_edid_iter_begin(const struct drm_edid *drm_edid,
struct drm_edid_iter *iter) struct drm_edid_iter *iter)
{ {
memset(iter, 0, sizeof(*iter)); memset(iter, 0, sizeof(*iter));
iter->edid = edid; iter->drm_edid = drm_edid;
} }
static const void *__drm_edid_iter_next(struct drm_edid_iter *iter) static const void *__drm_edid_iter_next(struct drm_edid_iter *iter)
{ {
const void *block = NULL; const void *block = NULL;
if (!iter->edid) if (!iter->drm_edid)
return NULL; return NULL;
if (iter->index < edid_block_count(iter->edid)) if (iter->index < edid_block_count(iter->drm_edid->edid))
block = edid_block_data(iter->edid, iter->index++); block = edid_block_data(iter->drm_edid->edid, iter->index++);
return block; return block;
} }
...@@ -2611,7 +2611,7 @@ static void drm_for_each_detailed_block(const struct drm_edid *drm_edid, ...@@ -2611,7 +2611,7 @@ static void drm_for_each_detailed_block(const struct drm_edid *drm_edid,
for (i = 0; i < EDID_DETAILED_TIMINGS; i++) for (i = 0; i < EDID_DETAILED_TIMINGS; i++)
cb(&drm_edid->edid->detailed_timings[i], closure); cb(&drm_edid->edid->detailed_timings[i], closure);
drm_edid_iter_begin(drm_edid->edid, &edid_iter); drm_edid_iter_begin(drm_edid, &edid_iter);
drm_edid_iter_for_each(ext, &edid_iter) { drm_edid_iter_for_each(ext, &edid_iter) {
switch (*ext) { switch (*ext) {
case CEA_EXT: case CEA_EXT:
...@@ -4453,7 +4453,7 @@ static void cea_db_iter_edid_begin(const struct drm_edid *drm_edid, ...@@ -4453,7 +4453,7 @@ static void cea_db_iter_edid_begin(const struct drm_edid *drm_edid,
{ {
memset(iter, 0, sizeof(*iter)); memset(iter, 0, sizeof(*iter));
drm_edid_iter_begin(drm_edid ? drm_edid->edid : NULL, &iter->edid_iter); drm_edid_iter_begin(drm_edid, &iter->edid_iter);
displayid_iter_edid_begin(drm_edid ? drm_edid->edid : NULL, &iter->displayid_iter); displayid_iter_edid_begin(drm_edid ? drm_edid->edid : NULL, &iter->displayid_iter);
} }
...@@ -5163,7 +5163,7 @@ static bool _drm_detect_monitor_audio(const struct drm_edid *drm_edid) ...@@ -5163,7 +5163,7 @@ static bool _drm_detect_monitor_audio(const struct drm_edid *drm_edid)
const u8 *edid_ext; const u8 *edid_ext;
bool has_audio = false; bool has_audio = false;
drm_edid_iter_begin(drm_edid ? drm_edid->edid : NULL, &edid_iter); drm_edid_iter_begin(drm_edid, &edid_iter);
drm_edid_iter_for_each(edid_ext, &edid_iter) { drm_edid_iter_for_each(edid_ext, &edid_iter) {
if (edid_ext[0] == CEA_EXT) { if (edid_ext[0] == CEA_EXT) {
has_audio = edid_ext[3] & EDID_BASIC_AUDIO; has_audio = edid_ext[3] & EDID_BASIC_AUDIO;
...@@ -5516,7 +5516,7 @@ static void drm_parse_cea_ext(struct drm_connector *connector, ...@@ -5516,7 +5516,7 @@ static void drm_parse_cea_ext(struct drm_connector *connector,
struct cea_db_iter iter; struct cea_db_iter iter;
const u8 *edid_ext; const u8 *edid_ext;
drm_edid_iter_begin(drm_edid->edid, &edid_iter); drm_edid_iter_begin(drm_edid, &edid_iter);
drm_edid_iter_for_each(edid_ext, &edid_iter) { drm_edid_iter_for_each(edid_ext, &edid_iter) {
if (edid_ext[0] != CEA_EXT) if (edid_ext[0] != CEA_EXT)
continue; continue;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment