Lines Matching refs:iter
76 struct displayid_iter *iter)
78 memset(iter, 0, sizeof(*iter));
80 iter->drm_edid = drm_edid;
84 displayid_iter_block(const struct displayid_iter *iter)
88 if (!iter->section)
91 block = (const struct displayid_block *)&iter->section[iter->idx];
93 if (iter->idx + sizeof(*block) <= iter->length &&
94 iter->idx + sizeof(*block) + block->num_bytes <= iter->length)
101 __displayid_iter_next(struct displayid_iter *iter)
105 if (!iter->drm_edid)
108 if (iter->section) {
110 block = displayid_iter_block(iter);
112 iter->section = NULL;
113 iter->drm_edid = NULL;
118 iter->idx += sizeof(*block) + block->num_bytes;
120 block = displayid_iter_block(iter);
127 bool base_section = !iter->section;
129 iter->section = drm_find_displayid_extension(iter->drm_edid,
130 &iter->length,
131 &iter->idx,
132 &iter->ext_index);
133 if (!iter->section) {
134 iter->drm_edid = NULL;
142 base = displayid_get_header(iter->section, iter->length,
143 iter->idx);
145 iter->version = base->rev;
146 iter->primary_use = base->prod_id;
150 iter->idx += sizeof(struct displayid_header);
152 block = displayid_iter_block(iter);
158 void displayid_iter_end(struct displayid_iter *iter)
160 memset(iter, 0, sizeof(*iter));
164 u8 displayid_version(const struct displayid_iter *iter)
166 return iter->version;
173 u8 displayid_primary_use(const struct displayid_iter *iter)
175 return iter->primary_use;