summaryrefslogtreecommitdiff
path: root/drivers/video/fbdev/msm (follow)
Commit message (Collapse)AuthorAge
...
* msm: mdss: add handoff support for multiple pipes on same mixer stageJeevan Shriram2016-03-23
| | | | | | | | | | | | In the existing implementation, display driver assumes only one pipe can be staged on a layer mixer during overlay handoff. Starting from MDSS v1.03, layer mixer can support two pipes staged at the same stage. This change handles the case for two pipes on layer mixer at same staging level. If more than two pipes are staged on a layer mixer, it is invalid. Change-Id: Ie6fa42e7a5b555de53fc4a3801e89447c3b1f90f Signed-off-by: Jeevan Shriram <jshriram@codeaurora.org>
* msm: mdss: support probe defer in writeback driverCasey Piper2016-03-23
| | | | | | | | Exit cleanly in the case of failure in writeback driver to support probe defer scenarios. Change-Id: I8c8b5099ea649e98b99093cf8b9c3a06d55f8b57 Signed-off-by: Casey Piper <cpiper@codeaurora.org>
* msm: mdss: add sysfs node for panel statusRay Zhang2016-03-23
| | | | | | | | Some tools like MMI need know whether panel is working correctly or not, so add a panel_status node in sysfs. Signed-off-by: Ray Zhang <rayz@codeaurora.org> Change-Id: I2f5da3c850f83230476f0cd66f2bf11b9234ed32
* msm: mdss: Fix tearing and hang issues for autorefreshSiddhartha Agrawal2016-03-23
| | | | | | | | | | | While turning off autorefresh feature, there are some frames that do not get transmitted causing timeouts. This change gracefully exits autorefresh feature while new frames are pushed. Crs-Fixed: 773221 Change-Id: I66ecf13133723ff5fad465755d50c6eb1ec0e52a Signed-off-by: Siddhartha Agrawal <agrawals@codeaurora.org> Signed-off-by: Ujwal Patel <ujwalp@codeaurora.org>
* msm: mdss: Synchronize control stop and ESD checkJayant Shekhar2016-03-23
| | | | | | | | | Use ctl mutex offlock to synchronize between control stop and BTA ESD status check function to prevent any race condition. Change-Id: I841e03a066b6e9e193ba9c6deae20d5527d4a20f Signed-off-by: Jayant Shekhar <jshekhar@codeaurora.org>
* msm: mdss: avoid MDP line count check when target is in suspendPadmanabhan Komanduru2016-03-23
| | | | | | | | | | | | | | | | During DSI data lane recovery sequence, we poll on the MDP line count to enter the active region before performing the DSI recovery operation. Sometimes, the overflow error can occur just when the display enters suspend state. This causes the DSI event thread to enter a continuous while loop causing watchdog kill due to kernel logs flooded with the below error. mdss_mdp_video_intf_recovery: line count is less. line_cnt = 0 Avoid check for the line count in such cases. Change-Id: I4159ae639edc9b0e2cd0f09b97ba6fbd640737d4 Signed-off-by: Padmanabhan Komanduru <pkomandu@codeaurora.org>
* msm: mdss: fix issues with transition from LP3 to LP2Aravind Venkateswaran2016-03-23
| | | | | | | | | | When transitioning from LP3 power state to LP2 power state, reset the flag to indicate that the interface is active again and can accept updates. This ensures that all the interface clocks are correctly turned back during the subsequent display update. Change-Id: Ia3e90a5e9da7432529a9dd5ca3c5690b8d6c2af0 Signed-off-by: Aravind Venkateswaran <aravindh@codeaurora.org>
* msm: mdss: debugfs: add support to serialize wait4pingpongIngrid Gallardo2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For command mode panels, current code configures the HW to transfer a frame and returns the commit context without waiting for transfer to finish. As an example, after kicking off frame N transfer, commit context doesn't wait for Frame N's transfer to finish. By doing so, it allows SW to configure/queue frame (N+1) and improves the performance. But before frame (N+1) is kicked off, SW needs to make sure that frame N is finished otherwise it may lead to tearing and/or unknown behavior. This is achieved by calling wait4pingpong routine. But this optimization has a side effect when debugging critical issues. If for some reason, frame N had a bad HW configuration and it had HW hang then wait4pingpong during frame (N+1) will timeout. This timeout will lead to HW register dumps but this register dump is related frame (N+1) and not frame N. This gives incorrect debug information. To overcome this side effect, allow wait4pingpong's timing to change using debugfs. Setting this node to true will make the driver to run this processing in a synchronous way, setting it to false will return the driver to normal asynchronous operation: echo 1 > /<debugfs>/mdp/serialize_wait4pp -> sync echo 0 > /<debugfs>/mdp/serialize_wait4pp -> async (default) Change-Id: Ief25232b65cf3dfec7c2147120dac57d0f54d22f Signed-off-by: Ingrid Gallardo <ingridg@codeaurora.org> [cip@codeaurora.org: Use debugfs_create_u32 for wait4pp] Signed-off-by: Clarence Ip <cip@codeaurora.org>
* msm: mdss: debugfs: xlog: add support to dump from a work itemIngrid Gallardo2016-03-23
| | | | | | | | Add support to initiate the dump from a work item so the driver can dump from an interrupt context. Change-Id: I51a9719884c826713cc4c9abe926205eaac4d721 Signed-off-by: Ingrid Gallardo <ingridg@codeaurora.org>
* msm: mdss: Add gamma correction support in mdp3Krishna Chaitanya Parimi2016-03-23
| | | | | | | | | | | | | | Add gamma correction support in mdp3 driver via MSMFB_MDP_PP ioctl. The ioctl has been extended to program luts corresponding to histogram based outputs and gamma correction based on flag. The gain corresponding to gamma correction and the histogram based output are combined in driver and applied to hardware. Change-Id: Ie875b4a9f4f4c752ad9a811ad68aff1c5110d57b Signed-off-by: Krishna Chaitanya Parimi <cparimi@codeaurora.org>
* msm: mdss: Correct RGB order for LUT programming in mdp3Krishna Chaitanya Parimi2016-03-23
| | | | | | | | | MDP3 LUT programming has incorrect RGB order as per HW. The correct order is to have color0 for green, color1 for red and color2 for blue. Correcting color order in mdp3. Change-Id: Ie7b6ab7f83e18495e83a05102e288fee6841e3ab Signed-off-by: Krishna Chaitanya Parimi <cparimi@codeaurora.org>
* msm: mdss: fix ret value during error caseDhaval Patel2016-03-23
| | | | | | | | | | Fix ret value for error case in framebuffer allocation api and use integer instead of unsigned int for sscanf api. CRs-fixed: 790640 Change-Id: Ib7fa217334365b8194571e220740a769597636e0 Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
* msm: mdss: Fix gamut mapping disable sequenceBenet Clark2016-03-23
| | | | | | | | | | | For the new versioned PP framework with config payload pointers, the Disable operation should be highest priority and allow a feature to be disabled without requiring a config payload. Gamut Mapping had no check to see if Disable operation was present before throwing error for a NULL payload. Now, Disable op is checked first. Change-Id: Ia644316dcd8f86d6f85b06f4a8aed99873c54e4d Signed-off-by: Benet Clark <benetc@codeaurora.org>
* msm: mdss: update clamp ctrl register config for msm8996Kuogee Hsieh2016-03-23
| | | | | | | | | Clamp control enable register is different on 8996 target. Update DSI software to handle it based on DSI version. Change-Id: Iac61ac0a03397633154d2fe1bf44bcaaeeab1c52 Signed-off-by: Kuogee Hsieh <khsieh@codeaurora.org> Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
* msm: mdss: fix chroma plane size requirement for nv12 ubwc formatDhaval Patel2016-03-23
| | | | | | | | Fix chroma plane size requirement for bit stream and meta data for NV12 ubwc format. Change-Id: Icae966ea296cc34673492d7adae0094303e92a0d Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
* msm: mdss: Remove smmu v1 related codeClarence Ip2016-03-23
| | | | | | | | | | smmu v1 is not supported in 3.18. Remove smmu v1 specific changes in display. Change-Id: I9deb060b6d3539acb9ee4b3fa05f491e0fc1db43 Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org> [cip@codeaurora.org: Resolved merge conflict] Signed-off-by: Clarence Ip <cip@codeaurora.org>
* msm: mdss: Include MDSS and cleanup unsupported versions in KconfigVeera Sundaram Sankaran2016-03-23
| | | | | | | | | | Add configs necessary to include MDSS hw. Remove panel related configs and other unsupported MDP versions. Change-Id: Ie358ca1c8105d99ce4d3aa8b27be34df1b788b1b Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org> [cip@codeaurora.org: Resolved merge conflicts] Signed-off-by: Clarence Ip <cip@codeaurora.org>
* msm: mdss: Replace thulium with msm8996 in display codeVeera Sundaram Sankaran2016-03-23
| | | | | | | | | | Use appropriate SOC name. Also replace all instances of thulia with kryo. Change-Id: I3d21e3534fdf113190882c84ee5426ee929da131 Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org> [cip@codeaurora.org: Always build mdss_mdp_pp_v1_7.c] Signed-off-by: Clarence Ip <cip@codeaurora.org>
* msm: mdss: debugfs: xlog: add support to dump registers by rangesIngrid Gallardo2016-03-23
| | | | | | | | | | | | | | | Current xlog dumps the entire registers ranges mapped in memory. This entire range can be reduced to only the meaningful offsets to help in debugging and avoid overflows in the debug buffers. This change adds support to only dump the registers ranges specified. Change-Id: Iecf7f5eaa909b0365ea599ae094c7f184c0ae8b8 Signed-off-by: Ingrid Gallardo <ingridg@codeaurora.org> (cherry picked from commit 899cf5dbc528b13bd488038215356c5bea5b591c) [veeras@codeaurora.org: Resolve merge conflict in mdss_dsi.c] Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
* msm: mdss: debugfs: xlog: move reg dump function to xlogHuaibin Yang2016-03-23
| | | | | | | | | reg dump func is specifically used by xlog, so it should be static in xlog file. Change-Id: I14570e174b215d7ea5f77f0b333f65956b549222 Signed-off-by: Huaibin Yang <huaibiny@codeaurora.org> Signed-off-by: Ingrid Gallardo <ingridg@codeaurora.org>
* msm: mdss: debugfs: xlog: fix block names for reg dumpHuaibin Yang2016-03-23
| | | | | | | | Update obsolete mdss block names to new ones for xlog register dump. Change-Id: Iae8859c42df45577bfccd5a939669742f8395ca2 Signed-off-by: Huaibin Yang <huaibiny@codeaurora.org> Signed-off-by: Ingrid Gallardo <ingridg@codeaurora.org>
* msm: mdss: debugfs: xlog: add debug xlogHuaibin Yang2016-03-23
| | | | | | | | | | When MDSS_XLOG_DBG entries are inserted into code, these entries are always logged regardless enable status. This helps use xlog in quick debugging and none of these entries should be merged. Change-Id: Iebcf6cb7fc32bc77281e2f02a354f35357ff6d88 Signed-off-by: Huaibin Yang <huaibiny@codeaurora.org> Signed-off-by: Ingrid Gallardo <ingridg@codeaurora.org>
* msm: mdss: debugfs: xlog: add iommu xlogHuaibin Yang2016-03-23
| | | | | | | | | | | | | Add iommu xlog flags and handlers. MDSS_XLOG_IOMMU is dedicated to iommu issues. The fault handler, if installed, dumps mdp registers to ram, dump xlog entries to kernel log and panic the system. Change-Id: I7d703c5958104fb3dc2c30a7fc1e59508c8d0ca3 Signed-off-by: Huaibin Yang <huaibiny@codeaurora.org> Signed-off-by: Ingrid Gallardo <ingridg@codeaurora.org> (cherry picked from commit a3cfbff0abb7ff9f906df76a7ff68007d7f1fc3f) [veeras@codeaurora.org: Resolve merge conflict in mdss_mdp.c] Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
* msm: mdss: debugfs: xlog: fix xlog early crashHuaibin Yang2016-03-23
| | | | | | | | | | xlog entries may be called before debugfs nodes are created, so spinlock intitialization should be done during compile time. Use ktime APIs to avoid other crashes during early boot time. Change-Id: I5dc8e066b56d26934fd4c324c03e5f1ec3b4a6f3 Signed-off-by: Huaibin Yang <huaibiny@codeaurora.org> Signed-off-by: Ingrid Gallardo <ingridg@codeaurora.org>
* msm: mdss: debugfs: xlog: refactor xlog dumpHuaibin Yang2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | Make overall dump facility more reliable and more useable for debugging: write xlog info to stdout; only un-logged and un-dumped entries will be dumped out each dump; add func line number, pid and time stamp difference for each entry; add index for each entry dump. Format of the log is as follows: name:line=>[entry:timestamp:delta][pid]:params Where: name: Name of the caller function line: Line in the source file entry: Index in the circular buffer timestamp: time when log was taken delta: time difference with previous log pid: process id params: parameters used to log information (these are specific to each log) Change-Id: I32853ef7e27cc8ac34775ff492d60c801df61dba Signed-off-by: Huaibin Yang <huaibiny@codeaurora.org> Signed-off-by: Ingrid Gallardo <ingridg@codeaurora.org> [cip@codeaurora.org: Use debugfs_create_u32 for xlog panic] Signed-off-by: Clarence Ip <cip@codeaurora.org>
* msm: mdss: set dsi clock lane to proper state on 8994Kuogee Hsieh2016-03-23
| | | | | | | | | | | | | | For 8994, dsi clock lane may get stuck at hs mode. It needs manual control of clock lane to avoid it. Force clock lane to HS mode before kick off and clear it after completion. CRs-Fixed: 774612 Change-Id: I8182489d2d5eaf041b4869af71155378dd3aea99 Signed-off-by: Kuogee Hsieh <khsieh@codeaurora.org> (cherry picked from commit 5d9e1ace6123d8f5a1ac8f0eb62e9fd8c841d5f8) [veeras@codeaurora.org: Resolve merge conflict in mdss_dsi_host.c] Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
* msm: mdss: ignore overflow error when sending dcs commandKuogee Hsieh2016-03-23
| | | | | | | | | | | When horizontal line time of BLLP is too short to finish sending dcs command packet, overflow error is reported mistakenly. The remaining packet data will get transmitted at next line. Therefore this overflow error can be ignored. CRs-Fixed: 769898 Change-Id: I2239bd6bf432a1144f0f5b65bf1d82127dd4cfff Signed-off-by: Kuogee Hsieh <khsieh@codeaurora.org>
* msm: mdss: debugfs: xlog: enable xlog with different flagsHuaibin Yang2016-03-23
| | | | | | | | | | | | | | | | | xlog buffer helps capture debug events, however, due to its small size, one set of xlogs cannot solve all problems. It would be helpful that when a specific issue happens, only one set of xlogs specific to that particular issue is dumped and other irrelevant events can be ignored. Accordingly different event handlers can be registered as well for different issues. echo 0x00 > <debugfs>/mdp/xlog/enable -> disable echo 0x01 > <debugfs>/mdp/xlog/enable -> enable default xlogs echo 0x80 > <debugfs>/mdp/xlog/enable -> enable all xlogs echo 0xff > <debugfs>/mdp/xlog/enable -> enable xlogs regardless flags Change-Id: Id1bf2a6f2009afdc63d74add652ce2722a3173a4 Signed-off-by: Huaibin Yang <huaibiny@codeaurora.org>
* msm: mdss: debugfs: xlog: dump mdp registers to RAMHuaibin Yang2016-03-23
| | | | | | | | | | | | | | Currently xlog provides the capability of dumping mdp registers to kernel log. This patch adds the option of dumping mdp regs to ram as well. echo 0x0 > <debugfs>/mdp/xlog/reg_dump -> disable mdp reg dump echo 0x1 > <debugfs>/mdp/xlog/reg_dump -> enable mdp reg dump to log echo 0x2 > <debugfs>/mdp/xlog/reg_dump -> enable mdp reg dump to ram echo 0x3 > <debugfs>/mdp/xlog/reg_dump -> enable mdp reg dump to both Change-Id: I767bbd956ac3b1c9e76800bd9d563fc80bd337db Signed-off-by: Huaibin Yang <huaibiny@codeaurora.org>
* msm: mdss: debugfs: xlog: move xlog related variables to localHuaibin Yang2016-03-23
| | | | | | | | | debug_log is an unnecessary global structure that is actually only related to xlog debugfs nodes. Those variables that control xlog behaviors should be in the local xlog file. Change-Id: I8e2a37e72d849b09e5c8afb8b2170adf9516e215 Signed-off-by: Huaibin Yang <huaibiny@codeaurora.org>
* msm: mdss: fix phy_io base for ldo_cntrlHuaibin Yang2016-03-23
| | | | | | | | Due to wrong base io address, ldo_cntrl is not properly configured. Fix this bug to get suspend/resume working. Change-Id: I708d645f33a05a0bf8d68be0909c43fc628d293e Signed-off-by: Huaibin Yang <huaibiny@codeaurora.org>
* msm: mdss: Avoid NULL pointer accessAnusha Koduru2016-03-23
| | | | | | | Validate pointer to avoid NULL pointer access Change-Id: I47671f0072a61c7025d47da74de13ab66a543064 Signed-off-by: Anusha Koduru <kanusha@codeaurora.org>
* msm: mdss: fix wb memory registration optimizationAdrian Salido-Moreno2016-03-23
| | | | | | | | | | | | | | In order to avoid multiple mappings of same buffer handle, we check for any existing handles that are already mapped within writeback. However current checks are based on file descriptors, and these may be reused for a new buffer handle, and in turn we end up having wrong assumptions of the actual queued buffer while performing the writeback commit. Fix this by getting the actual ion handle mapped to the file descriptor and look for this handle instead. Change-Id: Ib800dc4000ce8353ed16c7e779cda21644696ec8 Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
* msm: mdss: add init and deinit calls to notify update ioctlKrishna Chaitanya Parimi2016-03-23
| | | | | | | | | | | | | | | | | Adding notify update init and notify update deinit calls which ought to be called when the notify update thread is being started and exited in userspace. The need for these is to ensure that during exit sequence of the notify update thread there is minimal wait due to ioctl being blocked in driver. The wait completions will not be reset if deinit has been called and will need an init call for them to start working. So when we are exiting the notify update thread, any block that might happen due to either a concurrent or a later notify update call is now handled properly so that the block is either returned early or is not allowed respectively. Change-Id: I8212bf058285f5929ebc85d41d6bb12b50e388d9 Signed-off-by: Krishna Chaitanya Parimi <cparimi@codeaurora.org>
* msm: mdss: swap flags for LP1 and LP2 modesAravind Venkateswaran2016-03-23
| | | | | | | | | | Use FB_BLANK_NORMAL flag for LP1 power mode and FB_BLANK_VSYNC_SUSPEND flag for LP2 power mode. This better aligns with the definition of these power modes since display updates are suspended in LP2 power mode while updates can still occur in LP1 power mode. Change-Id: Ica132e38dd1d0bb96368a1bbb51143100f0352cc Signed-off-by: Aravind Venkateswaran <aravindh@codeaurora.org>
* msm: mdss: add mutex locking when BTA is triggeredHuaibin Yang2016-03-23
| | | | | | | | Add cmd_mutex when doing s/w triggered BTA to make sure this operation does not race with DCS commands. Change-Id: I888e06a8175691938aebc7a51c2c693d582ce23d Signed-off-by: Huaibin Yang <huaibiny@codeaurora.org>
* msm: mdss: hdmi: set tmds clock ratio bit if scdc is supportedVinu Deokaran2016-03-23
| | | | | | | | | | Set TMDS_BIT_CLOCK_RATIO bit in the SCDC port based on the bit rate for the current mode. This bit has to be set before the TMDS clock is turned on. Change-Id: I315e00a032a1465974431e09ed2918ff353cb6de Signed-off-by: Vinu Deokaran <vinud@codeaurora.org> Signed-off-by: Casey Piper <cpiper@codeaurora.org>
* msm: mdss: fix right_blend pipe assignment for validate layer pathUjwal Patel2016-03-23
| | | | | | | | | | | | When source split is enabled, a layer mixer can have two pipes staged on a same z_order, or stage. To support this, pipe on the right side of the blending is recognized as right_blend. Current validate ioctl path is missing implementation for this use-case which is causing unexpected behaviour when source split is enabled. Fix this by bringing a logic to identify pipe as a right blend. Change-Id: Ia117afbad993d9d60f28f1ea6641b780ba866783 Signed-off-by: Ujwal Patel <ujwalp@codeaurora.org>
* msm: mdss: fix ab/ib vote for nrt clientsDhaval Patel2016-03-23
| | | | | | | | | | Invalid port calculation is causing wrong ab/ib vote on rt(RealTime) and nrt(NonRealTime) clients. This change fixes it and provides correct ab/ib vote for nrt clients. Change-Id: I6b7f63721237b63fa12457b96e47852913597d9f Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
* msm: mdss: fix RGB565 and RGBA888 UBWC format configDhaval Patel2016-03-23
| | | | | | | | | | Invalid stride, format configuration and destination configuration causes corruption for RGB565 and RGBA8888 UBWC format at input and output level. This change fixes them for input path and output path. Change-Id: I77cc20409bbb7c95fd0f3bdac9e61b305fddc811 Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
* msm: mdss: Unblock mdp PP features when AD calib mode is enabledPing Li2016-03-23
| | | | | | | | | Assertive display calibration mode can co-exist with MDP based post-processing features, only the backlight changes need to be blocked when AD calibration mode is enabled. Change-Id: I9c2932e4fa305a9d53cb4dcca11b877f298b4a23 Signed-off-by: Ping Li <pingli@codeaurora.org>
* msm: mdss: remove bwc workaround for thuliumIngrid Gallardo2016-03-23
| | | | | | | | | | HW problem where panic was being asserted continuously when BWC was enabled and causing CPU throttling is fixed in thulium, so this patch disables BWC workaround for this target. Change-Id: Ie418dcfb75c6af06f3cdfe530da7d78e5d6c8ca8 Signed-off-by: Ingrid Gallardo <ingridg@codeaurora.org>
* msm: mdss: program Client Driven Prefetch (CDP) for thuliumIngrid Gallardo2016-03-23
| | | | | | | | | | | Program CDP for thulium target as per recommendation. This disables CDP on source pipe and WB block when used in rotation operations for v1. Change-Id: Ia77f80d15033b20edd64e73f6fe98467aabb88f1 Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org> Signed-off-by: Ingrid Gallardo <ingridg@codeaurora.org>
* msm: mdss: add overhead factors to ab bw voteIngrid Gallardo2016-03-23
| | | | | | | | For the ab calculation, add the overhead and compression factors for the bandwidth vote. Change-Id: Id1cb8d7c12e24d7c4dcce145ce0ca00e4966049c Signed-off-by: Ingrid Gallardo <ingridg@codeaurora.org>
* msm: mdss: adjust ib bw vote as maximum per-pipe bwIngrid Gallardo2016-03-23
| | | | | | | | Adjust ib vote to calculate it as the maximum per-pipe bandwidth of the real time clients. Change-Id: I1596b7dd8e1304985ac3ab49581d9083c64a2b9d Signed-off-by: Ingrid Gallardo <ingridg@codeaurora.org>
* msm: mdss: hdmi: Make hdcp enable check look for HDCP 2.2 as wellAlhad Purnapatre2016-03-23
| | | | | | | | | Currently the HDCP enabling logic checks only to see if HDCP 1.4 is available. Added support for also checking to see if HDCP 2.2 is available and enable HDCP encryption if either 1.4 or 2.2 is available. Change-Id: I84c87ac6cb52025dbab28f2a99c4787bd75ce7bf Signed-off-by: Alhad Purnapatre <alhadp@codeaurora.org>
* msm: mdss: rotator: return dst format for request match optimizationUjwal Patel2016-03-23
| | | | | | | | | | | | | As per current implementation, every successful OVERLAY_SET IOCTL should return destination format for that request. Now there is a driver based optimization where if back to back OVERLAY_SET IOCTLs request same configurations then driver avoids extra register writes. However this optimization doesn't return correct destination format which violates the IOCTL spec and may result in inefficiencies. Fix this by returning correct destination format for this optimization. Change-Id: I792e2f44f17bceb1efc7b1d389db84478581c474 Signed-off-by: Ujwal Patel <ujwalp@codeaurora.org>
* msm: mdss: rotator: fix synchronization issue with multiple sessionsUjwal Patel2016-03-23
| | | | | | | | | | | | | | | Current rotator driver allows more sessions than actual number of rotator hardware. This requires virtualization when number of active sessions are greater than number of rotators. In the current implementation, synchronization bug is getting exposed if one rotator has two or more sessions, all these sessions are actively using shared rotator in interleave fashion and one of the session is using optimized path where back to back configuration is same. This leads to unexpected results and device hang. Fix this by maintaining proper ownership and hand-off when one session is finished using given rotator and other one picks up. Change-Id: I1f2e7376a01f248d11253bf5b6153ab236f07b19 Signed-off-by: Ujwal Patel <ujwalp@codeaurora.org>
* msm: mdss: move per pipe mdp clk calc to a separate functionIngrid Gallardo2016-03-23
| | | | | | | | | Separate the per pipe mdp clock calculation from the bandwidth calculation within the function that computes the pipe performance. Change-Id: I40cb9c786bf32523cbc5982a494e439f586cc43f Signed-off-by: Ingrid Gallardo <ingridg@codeaurora.org>
* msm: mdss: Parse wfd mode prior to mdp ctl infoTerence Hampson2016-03-23
| | | | | | | | | | | | Prior to parsing mdp ctl info we need to parse wfd mode. When wfd mode is shared we create a virtual ctl within mdss_mdp_ctl_addr_setup. The default value for wfd is shared; So we are always creating virtual ctl. If wfd is in fact not shared the value was updated afterwards and the virtual ctl never is used. Change-Id: Ie24f224c9ea9bed1704e8688e97bf61c022ae9fa Signed-off-by: Terence Hampson <thampson@codeaurora.org>