Home | History | Annotate | Download | only in drm

Lines Matching defs:cea

721  * From CEA/CTA-861 spec.
1389 * From CEA/CTA-861 spec.
1667 /* allow CEA to slide through, switches mangle this */
1670 DRM_DEBUG("Assuming a KVM switch modified the CEA block but left the original checksum\n");
2491 * The format list here is from CEA, in frame size. Technically we
3112 * so fix up anything that looks like CEA/HDMI mode, but the clock
3164 * Search EDID for CEA extension block.
3175 /* Find CEA extension */
3200 const u8 *cea;
3203 /* Look for a top level CEA extension block */
3204 cea = drm_find_edid_extension(edid, CEA_EXT);
3205 if (cea)
3206 return cea;
3208 /* CEA blocks can also be found embedded in a DisplayID block */
3220 cea = (const u8 *)block;
3225 return cea;
3253 * Calculate the alternate clock for the CEA mode
3346 * drm_match_cea_mode - look for a CEA mode matching given mode
3349 * Return: The CEA Video ID (VIC) of the mode or 0 if it isn't a CEA-861
3494 /* Don't add CEA modes if the CEA extension block is missing */
3500 * with the alternate clock for certain CEA modes.
3579 /* CEA modes are numbered 1..127 */
3596 * @svds: start of the data block of CEA YCBCR 420 VDB
3597 * @len: length of the CEA YCBCR 420 VDB
3599 * Parse the CEA-861-F YCBCR 420 Video Data Block (Y420VDB)
3634 * @vic: CEA vic for the video mode to be added in the map
3662 * gives the index of CEA modes from CEA VDB, which
3806 * @db: start of the CEA vendor specific block
3807 * @len: length of the CEA block payload, ie. one can access up to db[len]
3968 cea_revision(const u8 *cea)
3970 return cea[1];
3974 cea_db_offsets(const u8 *cea, int *start, int *end)
3976 /* DisplayID CTA extension blocks and top-level CEA EDID
3979 * 2) Byte 3 is only present in the CEA top level block.
3986 * CEA EDID block defines byte 2 as:
3993 if (cea[0] == DATA_BLOCK_CTA) {
3995 *end = *start + cea[2];
3996 } else if (cea[0] == CEA_EXT) {
3997 /* Data block offset in CEA extension block */
3999 *end = cea[2];
4083 #define for_each_cea_db(cea, i, start, end) \
4084 for ((i) = (start); (i) < (end) && (i) + cea_db_payload_len(&(cea)[(i)]) < (end); (i) += cea_db_payload_len(&(cea)[(i)]) + 1)
4096 /* All CEA modes support ycbcr420 sampling also.*/
4103 * This map indicates which of the existing CEA block modes
4111 * address 8 CEA modes, in this way this map can address
4129 const u8 *cea = drm_find_cea_extension(edid);
4134 if (cea && cea_revision(cea) >= 3) {
4137 if (cea_db_offsets(cea, &start, &end))
4140 for_each_cea_db(cea, i, start, end) {
4141 db = &cea[i];
4163 * We parse the HDMI VSDB after having added the cea modes as we will
4186 type = "CEA";
4369 const u8 *cea;
4380 cea = drm_find_cea_extension(edid);
4381 if (!cea) {
4382 DRM_DEBUG_KMS("ELD: no CEA Extension found\n");
4389 eld[DRM_ELD_CEA_EDID_VER_MNL] = cea[1] << DRM_ELD_CEA_EDID_VER_SHIFT;
4399 if (cea_revision(cea) >= 3) {
4402 if (cea_db_offsets(cea, &start, &end)) {
4407 for_each_cea_db(cea, i, start, end) {
4408 db = &cea[i];
4457 * Looks for CEA EDID block and extracts SADs (Short Audio Descriptors) from it.
4467 const u8 *cea;
4469 cea = drm_find_cea_extension(edid);
4470 if (!cea) {
4471 DRM_DEBUG_KMS("SAD: no CEA Extension found\n");
4475 if (cea_revision(cea) < 3) {
4476 DRM_DEBUG_KMS("SAD: wrong CEA revision\n");
4480 if (cea_db_offsets(cea
4485 for_each_cea_db(cea, i, start, end) {
4486 const u8 *db = &cea[i];
4517 * Looks for CEA EDID block and extracts the Speaker Allocation Data Block from it.
4528 const u8 *cea;
4530 cea = drm_find_cea_extension(edid);
4531 if (!cea) {
4532 DRM_DEBUG_KMS("SAD: no CEA Extension found\n");
4536 if (cea_revision(cea) < 3) {
4537 DRM_DEBUG_KMS("SAD: wrong CEA revision\n");
4541 if (cea_db_offsets(cea, &start, &end)) {
4546 for_each_cea_db(cea, i, start, end) {
4547 const u8 *db = &cea[i];
4612 * Parse the CEA extension according to CEA-861-B.
4631 * search it from all data blocks of CEA extension.
4646 * Monitor should have CEA extension block.
4647 * If monitor has 'basic audio', but no CEA audio blocks, it's 'basic
4679 DRM_DEBUG_KMS("CEA audio format %d\n",
4695 * as specified in CEA-861.
4702 /* All CEA modes other than VIC 1 use limited quantization range. */
4713 DRM_DEBUG_KMS("CEA VCDB 0x%02x\n", db[2]);
4874 /* The existence of a CEA block should imply RGB support */
5153 * CEA-861-F adds ycbcr capability map block, for HDMI 2.0 sinks.
5155 * from sink info, before parsing CEA modes.
5390 * HDMI 1.4 VIC range: 1 <= VIC <= 64 (CEA-861-D) but
5391 * HDMI 2.0 VIC range: 1 <= VIC <= 107 (CEA-861-F). So we
5443 * user input (if specified) or from the CEA/HDMI mode lists.
5568 * CEA-861:
5584 * CEA-861-F:
5592 * good way to tell which version of CEA-861 the sink supports, so
5594 * on on CEA-861-F.
5787 /* handled in the cea parser code. */