-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
drm/eld: add helpers to modify the SADs of an ELD
Occasionally it's necessary for drivers to modify the SADs of an ELD, but it's not so cool to have drivers poke at the ELD buffer directly. Using the helpers to translate between 3-byte SAD and struct cea_sad, add ELD helpers to get/set the SADs from/to an ELD. v2: s/i/sad_index/ (Mitul) Cc: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com> Signed-off-by: Jani Nikula <jani.nikula@intel.com> Reviewed-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/8e9a05f2b1e0dd184132d636e1e778e8917ec25d.1698747331.git.jani.nikula@intel.com
- Loading branch information
Jani Nikula
committed
Nov 9, 2023
1 parent
8af4681
commit f415a60
Showing
4 changed files
with
64 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
// SPDX-License-Identifier: MIT | ||
/* | ||
* Copyright © 2023 Intel Corporation | ||
*/ | ||
|
||
#include <drm/drm_edid.h> | ||
#include <drm/drm_eld.h> | ||
|
||
#include "drm_internal.h" | ||
|
||
/** | ||
* drm_eld_sad_get - get SAD from ELD to struct cea_sad | ||
* @eld: ELD buffer | ||
* @sad_index: SAD index | ||
* @cta_sad: destination struct cea_sad | ||
* | ||
* @return: 0 on success, or negative on errors | ||
*/ | ||
int drm_eld_sad_get(const u8 *eld, int sad_index, struct cea_sad *cta_sad) | ||
{ | ||
const u8 *sad; | ||
|
||
if (sad_index >= drm_eld_sad_count(eld)) | ||
return -EINVAL; | ||
|
||
sad = eld + DRM_ELD_CEA_SAD(drm_eld_mnl(eld), sad_index); | ||
|
||
drm_edid_cta_sad_set(cta_sad, sad); | ||
|
||
return 0; | ||
} | ||
EXPORT_SYMBOL(drm_eld_sad_get); | ||
|
||
/** | ||
* drm_eld_sad_set - set SAD to ELD from struct cea_sad | ||
* @eld: ELD buffer | ||
* @sad_index: SAD index | ||
* @cta_sad: source struct cea_sad | ||
* | ||
* @return: 0 on success, or negative on errors | ||
*/ | ||
int drm_eld_sad_set(u8 *eld, int sad_index, const struct cea_sad *cta_sad) | ||
{ | ||
u8 *sad; | ||
|
||
if (sad_index >= drm_eld_sad_count(eld)) | ||
return -EINVAL; | ||
|
||
sad = eld + DRM_ELD_CEA_SAD(drm_eld_mnl(eld), sad_index); | ||
|
||
drm_edid_cta_sad_get(cta_sad, sad); | ||
|
||
return 0; | ||
} | ||
EXPORT_SYMBOL(drm_eld_sad_set); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters