diff options
author | Hans Verkuil <hans.verkuil@cisco.com> | 2017-06-07 17:46:08 +0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@s-opensource.com> | 2017-06-20 12:51:21 +0300 |
commit | 23111ec304166750479e17318b7175ff7db0d6ac (patch) | |
tree | ba0549ef87d364e73d3ca98c3d2df348a9b6f329 /drivers/media/cec | |
parent | acec3630155763c170c7ae6508cf973355464508 (diff) | |
download | linux-23111ec304166750479e17318b7175ff7db0d6ac.tar.xz |
[media] cec: add cec_s_phys_addr_from_edid helper function
This function simplifies the integration of CEC in DRM drivers.
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Diffstat (limited to 'drivers/media/cec')
-rw-r--r-- | drivers/media/cec/cec-adap.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/media/cec/cec-adap.c b/drivers/media/cec/cec-adap.c index fd6d9cccade7..61e39bbe3cf9 100644 --- a/drivers/media/cec/cec-adap.c +++ b/drivers/media/cec/cec-adap.c @@ -28,6 +28,8 @@ #include <linux/string.h> #include <linux/types.h> +#include <drm/drm_edid.h> + #include "cec-priv.h" static void cec_fill_msg_report_features(struct cec_adapter *adap, @@ -1408,6 +1410,18 @@ void cec_s_phys_addr(struct cec_adapter *adap, u16 phys_addr, bool block) } EXPORT_SYMBOL_GPL(cec_s_phys_addr); +void cec_s_phys_addr_from_edid(struct cec_adapter *adap, + const struct edid *edid) +{ + u16 pa = CEC_PHYS_ADDR_INVALID; + + if (edid && edid->extensions) + pa = cec_get_edid_phys_addr((const u8 *)edid, + EDID_LENGTH * (edid->extensions + 1), NULL); + cec_s_phys_addr(adap, pa, false); +} +EXPORT_SYMBOL_GPL(cec_s_phys_addr_from_edid); + /* * Called from either the ioctl or a driver to set the logical addresses. * |