summaryrefslogtreecommitdiff
path: root/include
AgeCommit message (Collapse)Author
2016-03-23msm: mdss: fix issue in calculating decimated dimensionsJeevan Shriram
Width and height are not properly calculated when decimation is involved. When there is scaling on a pipe, the required number of pixels are wrongly programmed resulting in pipe hangs and leading to TLB SYNC issues. This change handles proper calculation of decimated width and height. Change-Id: Iadc4b201b32dda3dba6afe23070f349677be417c Signed-off-by: Jeevan Shriram <jshriram@codeaurora.org>
2016-03-23msm: mdss: Remove union for output buffer and retire fenceTerence Hampson
In order to provide more reusable code, and prevent unnecessary debugging removing union as memory saving is insignificant. Change-Id: I5da68c64c0bf09157738fbec1feb6adde5af42a2 [veeras@codeaurora.org: Resolve merge conflict in msm_mdp_ext.h by retaining the version in this file] Signed-off-by: Terence Hampson <thampson@codeaurora.org> Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
2016-03-23msm: mdss: hdmi: add new resolutions at runtimeAjay Singh Parmar
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 [veeras@codeaurora.org: Resolved merge conflict in msm_hdmi_modes.h by retaining the version of this commit] Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org> Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
2016-03-23msm: mdss: hdmi: give multiple resolution info using sysfs nodeAjay Singh Parmar
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>
2016-03-23msm: mdss: hdmi: optimize resolution data baseAjay Singh Parmar
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>
2016-03-23msm: mdss: hdmi: add scrambling support for hdmi driverVinu Deokaran
Add support for enabling scrambler on hosts that support scrambling. Scrambling is a new freature added in HDMI 2.0 specification to reduce EMI interference at higher clock frequencies. Scrambling is enabled for HDMI modes that have pixel clock greater than 340MHz. For lower pixel clock frequencies, scrambling is enabled if sink supports scrambling at lower frequencies. Change-Id: I3aa224a32e768e2754a9e056a58ca90808a26ec6 Signed-off-by: Vinu Deokaran <vinud@codeaurora.org>
2016-03-23msm: mdss: ioctl to get pp feature versionGopikrishnaiah Anandan
Some of the PP(post processing) features in MDP might be upgraded when new revision hardware is released. Clients of driver were relying on MDP revision to decide which version of the PP feature is supported. With MDP revision approach the client of driver needs to maintain a mapping between MDP revision and PP feature version. This change exposes ioctl to driver clients to query PP driver version of feature instead of maintaining mapping. Change-Id: I73f465400112445070c75f65f6ffd87c03eef2fb Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>
2016-03-23msm: mdss: Add PCC support for SSPP in thuliumGopikrishnaiah Anandan
PCC(polynomial color correction) feature is supported in SSPP(source surface post processing) MDP block of thulium. This change enables the caching of PCC params passed by driver client and programming the SSPP pcc hardware block. Change-Id: I3798becf7ed675c32a90bc7cefa415c055516d72 Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>
2016-03-23msm: mdss: Add PA support to SSPP in thuliumBenet Clark
Picture Adjustment (PA) global and memory color adjustments are supported on source side VIG pipes in MDP. Clients of MDP driver can enable the feature using overlay ioctl interface. This change adds support for clients of the driver to enable the feature. Change-Id: If961bb20167a7d08bf77dc4807acb46f38094f63 Signed-off-by: Benet Clark <benetc@codeaurora.org>
2016-03-23msm: mdss: Add source side IGC support for thuliumGopikrishnaiah Anandan
IGC(Inverse gamma correction) feature is supported on source side pipes in MDP. Clients of MDP driver can enable the feature using overlay ioctl interface. Change adds support for clients of driver to enable the feature. Change-Id: I5243b001acffff869f9369211fd724d7dd75e8a1 Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>
2016-03-23msm: mdss: Add PA support for DSPP in thuliumBenet Clark
MDP block supports picture adjustment feature on the DSPP which can be enabled/disabled by driver clients. Change adds the support in post processing driver and allows clients of driver to configure the PA block in DSPP. Change-Id: I22e3df32fd67fda4029eeb4740ad47917ae7e3a1 Signed-off-by: Benet Clark <benetc@codeaurora.org>
2016-03-23msm: mdss: hdmi: remove hard-coded resolution id namesAjay Singh Parmar
Generate the HDMI resolution id names based on resolution timing details. This makes the code generic for all resolutions. Change-Id: I097f450f5a85c85c1e81b7c7b1351d9c7228ba01 (cherry picked from commit 0e21977a89c126d610763c8ed9baf013bc9fa72a) [veeras@codeaurora.org: Done as part of 3.18 upgrade Removed msm8994-fluid.dtsi, msm8994-pinctrl.dtsi from this commit] Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org> Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
2016-03-23msm: mdss: Add dither support for ThuliumPing Li
MDP block supports dither feature in DSPPs (destination surface processing pipes) which can be enabled or disabled by driver clients. This change adds the support in post-processing driver to allow dither configuration in DSPPs. Change-Id: I2bd2da482f3d204649351bebdbe66bd5dab7a187 Signed-off-by: Ping Li <pingli@codeaurora.org>
2016-03-23msm: mdss: Support for gamma correction in thuliumPing Li
Gama correction blocks are part of destination and layer mixer blocks of MDP. Client of PP driver can program these blocks and enable them. Change adds support to program and enable the gamma correction blocks. Change-Id: Ieba07290525c1ccf79e4abf3648baf3dfd02d266 Signed-off-by: Ping Li <pingli@codeaurora.org>
2016-03-23msm: mdss: Add PA LUT support in DSPP for ThuliumPing Li
MDP block supports picture adjustment LUTv in the DSPPs (destination surface processing pipes) which can be enabled or disabled by driver clients. This change adds the support in post-processing driver to allows configuration on PA LUTv in DSPPs. Change-Id: I7a0d436e7fdd921c55d12fddef33f5ba6c14ba00 Signed-off-by: Ping Li <pingli@codeaurora.org>
2016-03-23msm: mdss: Add support for IGC in thuliumPing Li
Inverse gamma correction(IGC) feature is exposed by the MDP hardware block in source and destination pipes. Clients of the post processing driver can program the IGC tables and enable the feature. This change adds support for IGC post processing feature. Change-Id: I177fb06f5eec58fea0a54b537c0009d4c8e01bd7 Signed-off-by: Ping Li <pingli@codeaurora.org>
2016-03-23msm: mdss: Add PCC support in DSPP for ThuliumBenet Clark
MDP block supports PCC feature on the dspp(destination side picture pipe) which can be enabled/disabled by driver clients. Change adds the support in post processing driver and allows clients of driver to configure the PCC block in DSPP. Change-Id: Ic9307e12d6204c9e6e780ef8f2266151cc8a7ddc Signed-off-by: Benet Clark <benetc@codeaurora.org>
2016-03-23msm: mdss: Add support for gamut on dsppPing li
MDP block supports GAMUT feature on the dspp(destination side picture pipe) which can be enabled/disabled by driver clients. Change adds the support in post processing driver and allows clients of driver to configure the GAMUT block in mdp. Change-Id: I4024d54f14ebd41374c591a27b12dcda8695c80d (cherry picked from commit a285051a127bcfa1da56d66fe7f96eeece88c2c8) [veeras@codeaurora.org: Done as part of 3.18 upgrade Resolve conflict by adding this commits version of include/uapi/linux/msm_mdp.h] Signed-off-by: Ping Li <pingli@codeaurora.org> Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
2016-03-23mdss: Add MDP_SMP_FORCE_ALLOC mdp flagJustin Philip
MDP_SMP_FORCE_ALLOC flag is used to allow SMP allocations even when there is mismatch between allocated and requested SMPs for a pipe. User space can make use of this flag in extreme scenarios where SMP allocations need to pass like GPU composition and playback of protected or secure videos. Change-Id: I369b4361e7e2bbfc8150add467678c4ef8d5cfb6 Signed-off-by: Justin Philip <jphili@codeaurora.org>
2016-03-23mdss: mdp: add UBWC format support in MDSS driverDhaval Patel
UBWC format is supported for pipe input and WB0 & WB1 output for MDPv(1.7). This new format also has specific buffer configuration requirement for bit stream and meta data. This change adds UBWC support in MDSS driver and put checks for format support in various use cases and register configuration. Change-Id: I29c262a94461d7571bead63f60517875eaaa5e5b Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
2016-03-23msm: mdss: add MDSS version macro for msm8994v2Chandan Uddaraju
This change adds version macro for msm8994v2 and uses this version where ever necessary in the driver. Change-Id: I20603d98c154c4e414adab6740233507c7b09c7b Signed-off-by: Chandan Uddaraju <chandanu@codeaurora.org>
2016-03-23msm: mdss: Support ARGB1555 and ARGB4444Vishnuvardhan Prodduturi
Add support for ARGB1555 and ARGB4444 formats in mdp. Change-Id: I6000316d177d9988eabcca8f43131e3a9f636961 Signed-off-by: Vishnuvardhan Prodduturi <vproddut@codeaurora.org>
2016-03-23msm: mdss: Override partial update PP block using ioctlKrishna Chaitanya Parimi
Partial update when enabled blocks all PP ioctls. There is currently no subtle way to enable PP. Providing an ioctl to override the blockage of PP ioctls. This would allow PP to override the blockage caused due to the default enablement of partial update. Change-Id: Ia120caa179bfa0414041bacd80328540f24dd6c8 Signed-off-by: Krishna Chaitanya Parimi <cparimi@codeaurora.org>
2016-03-23mdss: mdp: Add mdss version macro for 8992 targetJeykumar Sankaran
Add mdss version macro for 8992 target and initialize maximum blending stages supported for the target. Change-Id: Ic741fb725907498791c1d17581561e3632a40cec Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
2016-03-23msm: mdss: add support for dedicated hardware cursorSree Sesha Aravind Vadrevu
Hardware cursor within mdss from mdss v1.5 onwards is programmed within the SSPP interface and is no longer a separate dedicated stage in the layer mixer. Cursor needs to be staged onto the existing layer mixer stages and always at the top level available. From this version onwards, cursors are expected to be programmed through the overlay interface by the user. Change-Id: Ia225dd92079e0153e9677ff035cf8531e62d5554 Signed-off-by: Sree Sesha Aravind Vadrevu <svadrevu@codeaurora.org> Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
2016-03-23msm: mdss: update MDSS driver to support latency ramDhaval Patel
Different MDSS hardware variants support fixed pixel latency ram for each pipe vs SMP (Shared Memory Pool). Software does not have to handle SMP allocation/deallocation for hardware with fixed pixel latency ram. This change enables the driver to handle such MDSS hardware. Change-Id: Ia55f45d65c3eb19350c7195acd83af8ffc0e9a10 Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
2016-03-23msm: mdss: share fb memory ion fd to userspaceJeevan Shriram
Add new operation request to share ion fd to userspace for mapping to the frame buffer memory. Change-Id: I404c73c19e3fffec593ffd32c34e7b1a74a500d8 Signed-off-by: Jeevan Shriram <jshriram@codeaurora.org>
2016-03-23msm: mdss: hdmi: update clockrate for 480p resolutionCasey Piper
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>
2016-03-23msm: mdss: add additional blending stages for the layer mixersSree Sesha Aravind Vadrevu
msm8994 can support three additional blending stages in the layer mixer bringing the total to 8 layers including the base stage. Modify layer mixer programming to support additional blend stages. Change-Id: Iff812ec2cf08e4234dc13c5630fe66ba07462b87 Signed-off-by: Sree Sesha Aravind Vadrevu <svadrevu@codeaurora.org>
2016-03-23msm: display: Add pipe type selection in overlay requestVinu Deokaran
Allow user to specify the type when requesting an overlay pipe. If field is set the pipe type indication in the flags will be ignored. Change-Id: Iee51d24b96c7a2a987dc70a439342e6548dfc8fa Signed-off-by: Vinu Deokaran <vinud@codeaurora.org>
2016-03-23mdss: display: add support of dual dsi partial update.Kuogee Hsieh
This patch adds l_roi and r_roi fields to display commit struct to support partial update for dual DSI panels. Panel side frame buffer's column, page address and DSI controller's stream size are updated based on the ROI requested. Change-Id: I70957c9ee1546448416441a8d0608fb00c3b92ca Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org> Signed-off-by: Siddhartha Agrawal <agrawals@codeaurora.org> Signed-off-by: Kuogee Hsieh <khsieh@codeaurora.org>
2016-03-23msm: mdss: Add support for dynamic mode switchSandeep Panda
Add support for switching between dsi command mode and video mode and vice versa at runtime. If the panel is configured in video mode, it would be power efficient to be able to dynamically switch to command mode on need basis. This change adds the support by providing an IOCTL to switch between video mode and command mode at runtime. Change-Id: I573c063556d68d631fe27cc2d1447522eceb7f2a Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
2016-03-23mdss: mdp: use file descriptor node info to track clientsVeera Sundaram Sankaran
FB clients are tracked using process id. The process id does not match if open and close API callers are different. Track the fb clients using file descriptor node id in such cases and release all resources associated with that process id gracefully. CRs-fixed: 652449 Change-Id: I09c965a421197c6464a64684e9706f30df327882 Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org> Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
2016-03-23msm: mdss: send panic/roburst signal to bimc based on fill levelDhaval Patel
MDP hardware will send panic/roburst signal to bimc based on fill level for all pipes connected to realtime interferfaces. This allows bimc to priortize the MDP traffic across all bimc ports, regardless of other clients' priority. This feature is not for non-realtime clients like writeback. Change-Id: Iafe891c6aefad905d482bd7aa54e00562698676e Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
2016-03-23msm: mdss: Add update notify for backlight change in static screenPing Li
Previously, the change of backlight sysfs node value will not trigger notify updates if display is in static screen case. This will cause delay or wrong configuration for assertive display. This patch fixes the above issue by adding an update notify if backlight changes when there are no display updates. Change-Id: I1475896214a50dc1fa71739aa751b2e626d27adb Signed-off-by: Ping Li <quicpingli@codeaurora.org>
2016-03-23linux: Move hdmi audio codec header to common locationCasey Piper
Move contents of msm_hdmi_audio_codec.h directory to msm_hdmi.h in common linux directory to remove platform dependence. Change-Id: I6331073ba1e5e119770c5e8cb50f6ff677807292 Signed-off-by: Casey Piper <cpiper@codeaurora.org>
2016-03-23msm: mdss: propagate pipe priority to user-spaceUjwal Patel
Priority is returned by the driver when overlay is set for the first time. It indicates the priority of the underlying pipe serving the overlay. This priority can be used by user-space in source split when pipes are re-used and shuffled around to reduce fall-backs related priority restrictions. Change-Id: Ibfda0280279e7057a1d3494f4e5f68962b26ef4a Signed-off-by: Ujwal Patel <ujwalp@codeaurora.org>
2016-03-23msm: mdss: add support for 565 macro tile formatsUjwal Patel
Extend macro tile format support to rgb565 and bgr565. Change-Id: Ida93ac7fbf93819b4d20f7392edc7df5a95f7979 Signed-off-by: Ujwal Patel <ujwalp@codeaurora.org>
2016-03-23msm: mdss: Add backlight attenuation mechanism in AD auto strength modePing Li
AD backlight attenuation provides the ability to modulate backlight based on calibration before feeding it to AD core for strength computation. Change-Id: Iea011807b25882463b1142e17324fa0509007aa4 Signed-off-by: Ping Li <quicpingli@codeaurora.org>
2016-03-23msm: mdss: implement overlay prepare ioctlAdrian Salido-Moreno
Overlay prepare will allow a full frame with multiple overlays to be configured at once and perform frame level checks before being pushed to display. This function guarantees that if the call is successful, the frame can be displayed successfully on the screen when display commit is called. Change-Id: I276b6fe3e0a872a2e93170f3cea1002d3ce0dac9 Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
2016-03-23msm: mdss: share mdss io utility APIs with other driversDhaval Patel
MDSS io utility contains APIs to handle driver specific resources like GPIOs, power supplies, clocks and other resources. Sharing them with other drivers allow them to do resource management without re-writing the same code. Change-Id: Ib699407667239336cf82211e3f6e8eec97a104a8 Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org> [cip@codeaurora.org: Move mdss_io_util.h to include/linux] Signed-off-by: Clarence Ip <cip@codeaurora.org>
2016-03-23msm: display: 8092: Update pipe-flush sel reg for VID pipeKen Zhang
For mpq platform, buffer is not queued through HWC except the first frame. So, added this change to get the correct pipe flush setting for VIG pipe. Since, in mpq, the buffer is queued directly by Maple firmware only on VIG pipe. The flag MDP_VPU_PIPE determines that the layer will be composed by VPU(maple) on the given pipe. Change-Id: I0566913d5d14f6160e5cbc132b76ba8fbec609a7 Signed-off-by: Zohaib Alam <zalam@codeaurora.org>
2016-03-23msm: mdss: Add SMP parameters into hw capabilitesMayank Chopra
To handle use cases better, expose smp_mb_cnt and smp_mb_per_pipe to userspace as part of hardware capability. Pipes availablity for a use case can be computed taking these values, based on which, composition decisions can be made. Change-Id: Ia7cc4db153cdb164a29ae2369d3e991b95aaba65 Signed-off-by: Mayank Chopra <makchopra@codeaurora.org>
2016-03-23msm: mdss: move MDSS revision macros to uapi/linux/msm_mdp.hUjwal Patel
Currently kernel driver and user mode libraries keep their own copies of HW revision numbers. This strategy is prone to errors and usually frowned upon. Fix this by moving revision information to sanitized header which is shared by kernel drivers and user mode libraries. Change-Id: I59d1256ffd98e07f4ef9ae2b534f04b67abd2119 Signed-off-by: Ujwal Patel <ujwalp@codeaurora.org>
2016-03-23msm: mdss: add retire fence supportAdrian Salido-Moreno
Retire fence timeline should follow the actual panel vsync more closely. For video mode the retire fence can be signaled along with the release timeline with +1 offset, since this is signaled at vsync. In case of command mode the panel vsync can be different from buffer release timeline. To handle the command mode panel vsyncs better, create a new timeline for the retire fence signaling. Change-Id: If8a1eb717d733ca215275a8be4f0054091dbc147 Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org> [cip@codeaurora.org: Update sw_sync.h include] Signed-off-by: Clarence Ip <cip@codeaurora.org>
2016-03-23msm: mdss: hdmi: Cable connection status notificationAjay Singh Parmar
Provide a callback machanism to all the modules registered for HDMI cable notifications. The registered modules will be notified everytime the cable is connected or disconnected. The callback will be scheduled on global kernel workqueue. Change-Id: I74630748448d8479b6e0cda6ccd148cbeae48a51 Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
2016-03-23msm: mdss: Use MDP_SOLID_FILL to enable color on pipeMayank Chopra
To enable constant color on a pipe, set MDP_SOLID_FILL in pipe flag. This will do a solid fill on the pipe with the color specified in bg_color. Change-Id: I3201e2fa657a6fc6d0e7f51f8585366afc3d29a3 Signed-off-by: Mayank Chopra <makchopra@codeaurora.org>
2016-03-23msm: mdss: Support demo mode for post processingCarl Vanderlip
Add demo mode feature for numerous post processing features. In dual pipe case, demo mode allows for either the left or right pipe's feature to be disabled to showcase its effects. Features supported include assertive display, gamut mapping, panel gamma correction, inverse gamma correction, dithering, picture adjustment (v2 only), and polynomial color correction. Change-Id: I8bceeffc11967ff23497df7739e6f99c30d2b10f Signed-off-by: Carl Vanderlip <carlv@codeaurora.org> Signed-off-by: Ping Li <quicpingli@codeaurora.org>
2016-03-23msm: mdss: Block postprocessing updates during DTMDhaval Patel
When calibration tool requests the fb driver to enter in Display Tuning Mode (DTM), PostProcessing blocks should not update the HSIC, Memory color, Six Zone colors, etc. Updating them during DTM conflicts the update from calibration tool. Change-Id: I11fcac57a651581d85e771911f83b2fdd9c3c681 Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
2016-03-23msm: mdss: Enable solid fill on pipeAdrian Salido-Moreno
Add support to enable solid fill on pipe with an option to configure fill-color by userspace. This support does not confine to background pipe and can be used to enable solid fill on any source surface processing pipes irrespective of the z-order. This support can be used in requirements involving constant color layers. Change-Id: Iae3c2968ca2f2f1be161e9c2f857641ffbb859e5 Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org> Signed-off-by: Mayank Chopra <makchopra@codeaurora.org>