diff options
author | Robert Morell <rmorell@nvidia.com> | 2011-08-24 16:52:56 -0700 |
---|---|---|
committer | Rohan Somvanshi <rsomvanshi@nvidia.com> | 2011-08-30 04:31:37 -0700 |
commit | 51ecd26878686729f01fc0feb04f1ceadab63613 (patch) | |
tree | 11c9d29f4c7e8c15b3a4cbe8afced50f5f65b692 /include | |
parent | 25625444e148936a57f304e63024e7cb8cf4afb3 (diff) |
video: tegra: Implement EDID query
This change implements the TEGRA_DC_EXT_CONTROL_GET_OUTPUT_EDID ioctl in
the dc_ext interface.
It first adds a way for the tegra dc EDID module to export EDID data
safely, without the risk of reading an incomplete or corrupted EDID in
the presence of hotplug, by moving the actual data to a substructure
with a lifetime maintained by a kref. Then, that support is plumbed
through the hdmi block (which is currently the only way to get at the
EDID) and out to userspace.
Signed-off-by: Robert Morell <rmorell@nvidia.com>
Bug 817119
Change-Id: I78cd170e15322011b428cb71ffad2c0c3ea058ac
Reviewed-on: http://git-master/r/49127
Reviewed-by: Rohan Somvanshi <rsomvanshi@nvidia.com>
Tested-by: Rohan Somvanshi <rsomvanshi@nvidia.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/video/tegra_dc_ext.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/include/video/tegra_dc_ext.h b/include/video/tegra_dc_ext.h index 824afeaf147b..bdfebaeb3c9a 100644 --- a/include/video/tegra_dc_ext.h +++ b/include/video/tegra_dc_ext.h @@ -233,6 +233,16 @@ struct tegra_dc_ext_control_output_properties { __u32 head_mask; }; +/* + * This allows userspace to query the raw EDID data for the specified output + * handle. + * + * Here, the size parameter is both an input and an output: + * 1. Userspace passes in the size of the buffer allocated for data. + * 2. If size is too small, the call fails with the error EFBIG; otherwise, the + * raw EDID data is written to the buffer pointed to by data. In both + * cases, size will be filled in with the size of the data. + */ struct tegra_dc_ext_control_output_edid { __u32 handle; __u32 size; |