Commit Graph

26 Commits

Author SHA1 Message Date
Ajay Singh Parmar f912dc217b msm: mdss: hdmi: optimize DTD resolution parsing
DTD (Detailed Timing Descriptor) provides full resolution timing
details. Currently we compare these details with our resolution
data base to find a match. This is not needed as DTD has complete
details. Once parsing of resolution is done, just add this as a
new resolution.

Change-Id: I0d6c101c96a6bc8c0ff8fe63c17bf233d52dad7f
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
2015-02-09 16:57:47 -08:00
Ken Zhang e67a5af69e msm: mdss: hdmi: s3d mode support
Add sysfs node s3d_mode for stereo 3d support,
configure vendor info frame when 3d mode is set and
current video mode can support it. Output edid_3d_modes
in sysfs node in correct format.

Change-Id: I634da4ffbd4e7994113d805c3c8facef3c9a5a25
Signed-off-by: Ken Zhang <kenz@codeaurora.org>
2015-01-22 13:07:28 -08:00
Linux Build Service Account c3862881fa Merge "msm: mdss: hdmi: give multiple resolution info using sysfs node" 2015-01-15 23:27:12 -08:00
Ajay Singh Parmar 583992fd44 msm: mdss: hdmi: give multiple resolution info using sysfs node
Provide complete resolution details in a sysfs node "res_info"
limited to PAGE_SIZE. Different modules can query for multiple
resolution details based on the resolution ids received from
EDID of the TV.
In case resolution details exceed PAGE_SIZE, reuse res_info to
get remaining timing details by provide page details.

Change-Id: I3e8e8d4de29f78d22273b3fb8ff6a059a8cb19e1
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
2015-01-09 16:05:21 -08:00
Ajay Singh Parmar 3878b39360 msm: mdss: hdmi: add new resolutions at runtime
EDID (Extended Display Identification Data) may contain some
resolutions in DTDs (Detailed Timing Descriptors) which are not
in the supported resolutions list. In such cases, every time
when the HDMI cable is connected, parse all the resolution data
from DTD and populate the resolution list with the newly found
resolution. This way any resolution found in DTD can be supported
subjected to hardware limitations.

Change-Id: Ib2223e34820a70da0b03b8ac39b170cf6b3e65b5
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
2015-01-06 00:06:43 -08:00
Ajay Singh Parmar 62df9e9943 msm: mdss: hdmi: optimize resolution data base
HDMI has a large number of resolutions supported and currently
for all supported resolutions, related modules maintain static
tables which are populated at boot time. This results in huge
static memory usage. Also, it limits the system to support only
the define resolutions.

Remove static table which stores all the resolution details.
Get individual resolution details on need basis. Also, remove
the dependency to support only the defined resolution. HDMI driver
can support any non standard resolution within the allowed range.

Change-Id: I0972bc3a0ab96051ea642d685d10c4e5535b7051
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
2014-12-15 15:50:06 -08:00
Ajay Singh Parmar 9e827a9132 msm: mdss: hdmi: remove hard-coded resolution id names
Generate the HDMI resolution id names based on resolution timing
details. This makes the code generic for all resolutions.

Change-Id: I097f450f5a85c85c1e81b7c7b1351d9c7228ba01
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
2014-11-05 23:57:26 -08:00
Ajay Singh Parmar e0774e4f38 msm: mdss: hdmi: fix supported parameter in resolution details
Few resolutions are not properly updated with the supported information.
Fix this by adding supported information in the resolution details.

Change-Id: I10ca776cf014f9ce064a2b45d43725f69e9ea6d2
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
2014-10-24 12:36:27 -07:00
Ajay Singh Parmar 5161473e61 msm: mdss: hdmi: correct 480p pixel clock
Use correct pixel clock for 480p (VIC #3) which is 27.027MHz.

Change-Id: I7a5ca0fe84ea49070fbb4bf3a983b3ef2edd417a
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
2014-10-07 19:37:14 -07:00
Ajay Singh Parmar aebb3f815d msm: mdss: hdmi: add new DMT resolution timing details
Add complete timing details of new resolutions which can be
found in Established Timing I, II and III and DTD (Detailed
Timing Descrpitors).

Following new resolutions are added:

16:10
1920x1200_60Hz
1680x1050_60Hz
1440x900_60Hz
1280x800_60Hz

16:9
1366x768_60Hz
1360x768_60Hz
848x480_60Hz

4:3
1600x1200_60Hz
1400x1050_60Hz
1280x960_60Hz
800x600_60Hz

Change-Id: I998039d7e3eca9c53917fb7f17d0b6b0be48bafd
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
2014-09-28 22:29:31 -07:00
Linux Build Service Account 49da6336ce Merge "msm: mdss: hdmi: update clockrate for 480p resolution" 2014-07-15 01:51:30 -07:00
Casey Piper 0e07fa9e44 msm: mdss: hdmi: update clockrate for 480p resolution
Correct the 480p clockrate to ensure HDMI pll
locks when connected to a 480p sink.

Change-Id: I93b49390c534966b86cb73bf02bdf25f5b12890e
Signed-off-by: Casey Piper <cpiper@codeaurora.org>
2014-06-24 15:26:49 -07:00
Greg Hackmann dfe618664a video: adf: ensure consistent alignment on userspace facing structs
64-bit types in structs create alignment problems when a 32-bit x86
userspace talks to an x86_64 kernel.  In most cases the 64-bit types can
be replaced with 32-bit ones, since they're being used for fds and
should have been __s32 in the first place.  For adf_vsync_event,
alignment can be enforced by making the timestamp an __aligned_u64.

Change-Id: I87cf73d8f57730bd7bb43ffce6b7b411eb0ff198
Signed-off-by: Greg Hackmann <ghackmann@google.com>
Git-commit: 0c423165c11dc5efe70a7f436080a7c549fc9878
Git-repo: https://android.googlesource.com/kernel/common.git
Signed-off-by: Ian Maund <imaund@codeaurora.org>
2014-06-23 14:34:28 -07:00
Greg Hackmann 32d1902345 video: adf: define constants for device-custom ioctls
Device-custom ADF ioctls can use type ADF_IOCTL_TYPE and
nr >= ADF_IOCTL_NR_CUSTOM

Change-Id: Ia8270973df5100e996ca0e021ede60e54b9af72a
Signed-off-by: Greg Hackmann <ghackmann@google.com>
Git-commit: c10c64d40bf14ce5964300991744d17296d57481
Git-Repo: https://android.googlesource.com/kernel/common.git
Signed-off-by: Ian Maund <imaund@codeaurora.org>
2014-06-13 12:06:11 -07:00
Greg Hackmann dc5b2da5fd video: adf: fix ADF_MAX_ATTACHMENTS declaration
Userspace-facing ADF_MAX_ATTACHMENTS must be in terms of
userspace-facing struct adf_attachment_config

Change-Id: Iaaddcd6366f13b3e52eb3911efcfff8a61e0b225
Signed-off-by: Greg Hackmann <ghackmann@google.com>
Git-commit: ccf0b45b743f5075143beccf8beca8fd9e988ef1
Git-Repo: https://android.googlesource.com/kernel/common.git
Signed-off-by: Ian Maund <imaund@codeaurora.org>
2014-06-13 12:05:54 -07:00
Greg Hackmann 4dcf90bac2 video: adf: remove PAGE_SIZE from userspace-facing header
Systems may define PAGE_SIZE in userspace limits.h but don't have to.
PAGE_SIZE was picked as an arbitrary "reasonable" limit so just use 4096
instead.

Change-Id: I9555e39aba64a3a70f61eb6ded2a4129ab236ce0
Signed-off-by: Greg Hackmann <ghackmann@google.com>
Git-commit: b95f5c534f2ca5c2dfd341732afadce10b306ecd
Git-Repo: https://android.googlesource.com/kernel/common.git
Signed-off-by: Ian Maund <imaund@codeaurora.org>
2014-06-13 12:05:53 -07:00
Greg Hackmann 1fece039f1 video: adf: add informational flags to interfaces
Informational flags don't affect ADF directly but may be useful to
clients.  Currently used to indicate primary and external displays.

Change-Id: I343c7f0148da0869244c8e818350e9855525df85
Signed-off-by: Greg Hackmann <ghackmann@google.com>
Git-commit: 27e7183c5aa432bfd6a99e6164761eae3917748b
Git-Repo: https://android.googlesource.com/kernel/common.git
Signed-off-by: Ian Maund <imaund@codeaurora.org>
2014-06-13 12:05:34 -07:00
Greg Hackmann 532dc26238 video: adf: add supported formats to adf_overlay_engine_data
Change-Id: If2aa783b9ece60160f465bf697508fc58682e1bc
Signed-off-by: Greg Hackmann <ghackmann@google.com>
Git-commit: 8bf80c569500ee125d6f85290521b0c1c3f64814
Git-Repo: https://android.googlesource.com/kernel/common.git
Signed-off-by: Ian Maund <imaund@codeaurora.org>
2014-06-13 12:05:32 -07:00
Greg Hackmann 480da3d350 video: adf: support "simple" buffers
Simple buffers are linear RGB buffers analogous to KMS's dumb buffers.
Simple buffers can be allocated and posted to a display interface
without any driver-private data.

Internally, ADF drivers provide the driver-private data needed (if any)
to post a simple buffer to the display.

Change-Id: Ib0b737622eaf343111310f6623f99d69cf3807d2
Signed-off-by: Greg Hackmann <ghackmann@google.com>
Git-commit: b07062e41853a8096096d3a75767b955e13a57bb
Git-Repo: https://android.googlesource.com/kernel/common.git
Signed-off-by: Ian Maund <imaund@codeaurora.org>
2014-06-13 12:05:31 -07:00
Greg Hackmann c2e4941cf5 video: add atomic display framework
Change-Id: I693257e269a99012cd0dbb57576ac222869cf4c7
Signed-off-by: Greg Hackmann <ghackmann@google.com>
Git-commit: aa431ca700139dbaaddd14e689f58625469f94d0
Git-Repo: https://android.googlesource.com/kernel/common.git
Signed-off-by: Ian Maund <imaund@codeaurora.org>
2014-06-13 12:05:28 -07:00
Ajay Singh Parmar 0d89ee3ce1 mdss: hdmi: HDCP Topology
This change provides a mechanism to communicate with HDCP manager
to share the downstream KSVs to upstream HDMI devices.

Change-Id: Ib0d772d157af65b2f35c9b7e7cebe8d0e1670735
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
2013-09-04 17:29:46 -07:00
Arun Kumar K.R f7121afc3b msm_fb: hdmi: change inline functions to macros
Stripped out kernel headers remove the function definitions,
hence change the functions to macros

Change-Id: Idc3697c8e9427865b6f89469937e9a8cb1c7ea75
Signed-off-by: Arun Kumar K.R <akumarkr@codeaurora.org>
2013-09-04 17:01:42 -07:00
Manoj Rao c3c0efb2d2 msm: mdss: hdmi: add support for vesa formats
Add support for VESA formats at pixel frequencies
of 65MHz and 108MHz. These pixel frequencies are
required to support VESA(DVI) video formats, in
particular, add support for 1024x768p and 1280x1024p
video formats. These formats are supported on many
existing monitors.

CRs-Fixed: 438028
Change-Id: Ibe55648f32fface8ab310a431e9fb670085a86f7
Signed-off-by: Manoj Rao <manojraj@codeaurora.org>
2013-09-04 16:32:01 -07:00
Aravind Venkateswaran c2d75b6dec msm_fb: hdmi: Resolution modes on HDMI
Add a new header file that lists all supported
HDMI resolution modes and the associated timing
information.

Change-Id: I971422ddb97e3b219cc682032eb67212b434daab
Signed-off-by: Aravind Venkateswaran <aravindh@codeaurora.org>
2013-09-04 16:15:49 -07:00
David Howells b889fcf63c UAPI: (Scripted) Disintegrate include/video
Signed-off-by: David Howells <dhowells@redhat.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Michael Kerrisk <mtk.manpages@gmail.com>
Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Acked-by: Dave Jones <davej@redhat.com>
2012-12-20 17:14:26 +00:00
David Howells 4413e16d9d UAPI: (Scripted) Set up UAPI Kbuild files
Set up empty UAPI Kbuild files to be populated by the header splitter.

Signed-off-by: David Howells <dhowells@redhat.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Acked-by: Dave Jones <davej@redhat.com>
2012-10-02 18:01:35 +01:00