Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/drivers/gpu/drm/drm_eld.c
26428 views
1
// SPDX-License-Identifier: MIT
2
/*
3
* Copyright © 2023 Intel Corporation
4
*/
5
6
#include <linux/export.h>
7
8
#include <drm/drm_edid.h>
9
#include <drm/drm_eld.h>
10
11
#include "drm_crtc_internal.h"
12
13
/**
14
* drm_eld_sad_get - get SAD from ELD to struct cea_sad
15
* @eld: ELD buffer
16
* @sad_index: SAD index
17
* @cta_sad: destination struct cea_sad
18
*
19
* @return: 0 on success, or negative on errors
20
*/
21
int drm_eld_sad_get(const u8 *eld, int sad_index, struct cea_sad *cta_sad)
22
{
23
const u8 *sad;
24
25
if (sad_index >= drm_eld_sad_count(eld))
26
return -EINVAL;
27
28
sad = eld + DRM_ELD_CEA_SAD(drm_eld_mnl(eld), sad_index);
29
30
drm_edid_cta_sad_set(cta_sad, sad);
31
32
return 0;
33
}
34
EXPORT_SYMBOL(drm_eld_sad_get);
35
36
/**
37
* drm_eld_sad_set - set SAD to ELD from struct cea_sad
38
* @eld: ELD buffer
39
* @sad_index: SAD index
40
* @cta_sad: source struct cea_sad
41
*
42
* @return: 0 on success, or negative on errors
43
*/
44
int drm_eld_sad_set(u8 *eld, int sad_index, const struct cea_sad *cta_sad)
45
{
46
u8 *sad;
47
48
if (sad_index >= drm_eld_sad_count(eld))
49
return -EINVAL;
50
51
sad = eld + DRM_ELD_CEA_SAD(drm_eld_mnl(eld), sad_index);
52
53
drm_edid_cta_sad_get(cta_sad, sad);
54
55
return 0;
56
}
57
EXPORT_SYMBOL(drm_eld_sad_set);
58
59