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,
* struct drm_edid_iter iter;
* const u8 *block;
*
* drm_edid_iter_begin(edid, &iter);
* drm_edid_iter_begin(drm_edid, &iter);
* drm_edid_iter_for_each(block, &iter) {
* // do stuff with block
* }
* drm_edid_iter_end(&iter);
*/
struct drm_edid_iter {
const struct edid *edid;
const struct drm_edid *drm_edid;
/* Current block 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)
{
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)
{
const void *block = NULL;
if (!iter->edid)
if (!iter->drm_edid)
return NULL;
if (iter->index < edid_block_count(iter->edid))
block = edid_block_data(iter->edid, iter->index++);
if (iter->index < edid_block_count(iter->drm_edid->edid))
block = edid_block_data(iter->drm_edid->edid, iter->index++);
return block;
}
......@@ -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++)
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) {
switch (*ext) {
case CEA_EXT:
......@@ -4453,7 +4453,7 @@ static void cea_db_iter_edid_begin(const struct drm_edid *drm_edid,
{
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);
}
......@@ -5163,7 +5163,7 @@ static bool _drm_detect_monitor_audio(const struct drm_edid *drm_edid)
const u8 *edid_ext;
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) {
if (edid_ext[0] == CEA_EXT) {
has_audio = edid_ext[3] & EDID_BASIC_AUDIO;
......@@ -5516,7 +5516,7 @@ static void drm_parse_cea_ext(struct drm_connector *connector,
struct cea_db_iter iter;
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) {
if (edid_ext[0] != CEA_EXT)
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