Rev 5270 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5270 | Rev 6082 | ||
---|---|---|---|
Line 213... | Line 213... | ||
213 | #define DRM_ELD_HEADER_BLOCK_SIZE 4 |
213 | #define DRM_ELD_HEADER_BLOCK_SIZE 4 |
Line 214... | Line 214... | ||
214 | 214 | ||
215 | #define DRM_ELD_VER 0 |
215 | #define DRM_ELD_VER 0 |
216 | # define DRM_ELD_VER_SHIFT 3 |
216 | # define DRM_ELD_VER_SHIFT 3 |
- | 217 | # define DRM_ELD_VER_MASK (0x1f << 3) |
|
- | 218 | # define DRM_ELD_VER_CEA861D (2 << 3) /* supports 861D or below */ |
|
Line 217... | Line 219... | ||
217 | # define DRM_ELD_VER_MASK (0x1f << 3) |
219 | # define DRM_ELD_VER_CANNED (0x1f << 3) |
Line 218... | Line 220... | ||
218 | 220 | ||
219 | #define DRM_ELD_BASELINE_ELD_LEN 2 /* in dwords! */ |
221 | #define DRM_ELD_BASELINE_ELD_LEN 2 /* in dwords! */ |
Line 322... | Line 324... | ||
322 | 324 | ||
323 | void drm_edid_to_eld(struct drm_connector *connector, struct edid *edid); |
325 | void drm_edid_to_eld(struct drm_connector *connector, struct edid *edid); |
324 | int drm_edid_to_sad(struct edid *edid, struct cea_sad **sads); |
326 | int drm_edid_to_sad(struct edid *edid, struct cea_sad **sads); |
325 | int drm_edid_to_speaker_allocation(struct edid *edid, u8 **sadb); |
327 | int drm_edid_to_speaker_allocation(struct edid *edid, u8 **sadb); |
326 | int drm_av_sync_delay(struct drm_connector *connector, |
328 | int drm_av_sync_delay(struct drm_connector *connector, |
327 | struct drm_display_mode *mode); |
329 | const struct drm_display_mode *mode); |
328 | struct drm_connector *drm_select_eld(struct drm_encoder *encoder, |
- | |
329 | struct drm_display_mode *mode); |
330 | struct drm_connector *drm_select_eld(struct drm_encoder *encoder); |
Line 330... | Line 331... | ||
330 | int drm_load_edid_firmware(struct drm_connector *connector); |
331 | int drm_load_edid_firmware(struct drm_connector *connector); |
331 | 332 | ||
332 | int |
333 | int |
Line 344... | Line 345... | ||
344 | { |
345 | { |
345 | return (eld[DRM_ELD_CEA_EDID_VER_MNL] & DRM_ELD_MNL_MASK) >> DRM_ELD_MNL_SHIFT; |
346 | return (eld[DRM_ELD_CEA_EDID_VER_MNL] & DRM_ELD_MNL_MASK) >> DRM_ELD_MNL_SHIFT; |
346 | } |
347 | } |
Line 347... | Line 348... | ||
347 | 348 | ||
- | 349 | /** |
|
- | 350 | * drm_eld_sad - Get ELD SAD structures. |
|
- | 351 | * @eld: pointer to an eld memory structure with sad_count set |
|
- | 352 | */ |
|
- | 353 | static inline const uint8_t *drm_eld_sad(const uint8_t *eld) |
|
- | 354 | { |
|
- | 355 | unsigned int ver, mnl; |
|
- | 356 | ||
- | 357 | ver = (eld[DRM_ELD_VER] & DRM_ELD_VER_MASK) >> DRM_ELD_VER_SHIFT; |
|
- | 358 | if (ver != 2 && ver != 31) |
|
- | 359 | return NULL; |
|
- | 360 | ||
- | 361 | mnl = drm_eld_mnl(eld); |
|
- | 362 | if (mnl > 16) |
|
- | 363 | return NULL; |
|
- | 364 | ||
- | 365 | return eld + DRM_ELD_CEA_SAD(mnl, 0); |
|
- | 366 | } |
|
- | 367 | ||
348 | /** |
368 | /** |
349 | * drm_eld_sad_count - Get ELD SAD count. |
369 | * drm_eld_sad_count - Get ELD SAD count. |
350 | * @eld: pointer to an eld memory structure with sad_count set |
370 | * @eld: pointer to an eld memory structure with sad_count set |
351 | */ |
371 | */ |
352 | static inline int drm_eld_sad_count(const uint8_t *eld) |
372 | static inline int drm_eld_sad_count(const uint8_t *eld) |