summaryrefslogtreecommitdiff
path: root/drivers/video (follow)
Commit message (Collapse)AuthorAge
...
* | | msm: mdss: check intr line status before handling isrDhaval Patel2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hardware might return/call the pending interrupt on one CPU when same interrupt is disabled from other core. Such parallel processing may lead to unclocked register access in interrupt context followed by panic. It is safe to check the interrupt line status before handling isr to avoid crash in such race condition. Change-Id: I460550cb5188c7f77b9f741682917010f9231a50 Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
* | | msm: mdss: fix deadlock between display and ESD check threadRay Zhang2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Display thread holds ov_lock followed by mutex, while the ESD check thread for cmd mode panel holds mutex followed by ov_lock. Fix this deadlock by acquiring mutex before ov_lock in ESD check thread. Change-Id: I857f780e14a6ccb679e89ff16b19706d205df4b6 Signed-off-by: Ray Zhang <rayz@codeaurora.org>
* | | msm: mdss: hdmi: hdcp2p2: fix hdcp 2.2 compliance issuesAjay Singh Parmar2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Send stream management message to sink after topology update. Poll for new message or authentication required status after successful receiver or repeater authentication. Also, DDC hardware polls sink for a given time. Let the polling complete and do not treat intermediate DDC errors as failures because DDC transaction can pass in next iteration. Once polling ends, check for errors and timeouts and reset polling data. Treat these errors as failure only after polling ends. Change-Id: I286fb00cf935bff493e108c05df625d5ca3ade26 Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
* | | msm: mdss: maintain AD state through idle power collapsePing Li2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When device enters the idle power collapse mode, the entire AD HW block is powered down, which will cause the previous AD settings get lost. So when device exits the idle power collapse mode, we need to store AD to previous state. In order to achieve this, we need to switch AD mode to 0x85 first and manually write the last AD strength value to AD register. Keep this setting for couple of frames, in the meantime, kick off AD calculator with t_filter_control value of 0 to ramp up the AD strength from 0 to current target strength. Then switch the mode back to auto strength (0x81). Change-Id: Iddc12dbb0da06675141fa9fe049cfe90110defb9 Signed-off-by: Ping Li <pingli@codeaurora.org>
* | | msm: mdss: fix NULL pointer dereferencing issuesJayant Shekhar2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change fixes the errors reported in static analysis of MDSS driver code. These changes include fix for various potential NULL pointer dereferencing and array index out of bounds issues in MDP, DSI and PP module of MDSS driver. Change-Id: I49f65f0b4e5218f9fc90469e9d431a3aec811ee2 Signed-off-by: Jayant Shekhar <jshekhar@codeaurora.org> Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
* | | msm: mdss: update PHY timing calculation logic for resolution changeSandeep Panda2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | In current implementation we are always overriding the PHY read from dt entry with the ones we are calculating in driver. Update the PHY timing only when there is a change in resolution. Change-Id: I2ba936af6e55b27c7b28d38990b32e896c877e08 Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
* | | msm: mdss: Use the correct AD backlight for AD BL filterPing Li2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | Use the last backlight sent to AD core for AD backlight filter threshold comparison. Change-Id: I8ea26a8a95c700749aa83d5b70a3b16c44258767 Signed-off-by: Ping Li <pingli@codeaurora.org>
* | | msm: mdss: Optimize backlight mapping calculation for ADPing Li2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | Reduce the rounding error during AD backlight linearization and attenuation. Change-Id: Ibf181414512d457d3341bbccf8cf9338aef8ac76 Signed-off-by: Ping Li <pingli@codeaurora.org>
* | | msm: mdss: Correctly reset the ad_events countPing Li2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reset the ad_events count in the AD ioctl instead of ad_setup(). There are some time delay between AD ioctl and ad_setup, which is part of the display commit path, so if we reset the ad_event count in ad_setup, then it is possible that user space reads the ad_events sysfs node after the AD ioctl but before the ad_setup(). In that case, user space may get the incorrect ad_events count, and cause the gradual AD off fail. Change-Id: I13f2043a6a21be7e49b44a964b00b0aa4315dc17 Signed-off-by: Ping Li <pingli@codeaurora.org>
* | | msm: mdss: add multiple register support in ESD checkRay Zhang2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Current implementation cannot support multiple registers in ESD check, and it does not work for many cases. For example, some panels need check multiple registers to get its status, and some panels might return several possible values for one register read. To support this kind of behaviors, a new property in dtsi is added as "qcom,mdss-dsi-panel-status-valid-params" which specifies the valid value length we should check in the payload returned by panel, and the payload length panel should return is specified by the property "qcom,mdss-dsi- panel-status-read-length". "qcom,mdss-dsi-panel-status-value" is also extended to an array which specifies all the possible return values from panel. Change-Id: I098d04281b819581f53c7c509778e7b594aa499a Signed-off-by: Ray Zhang <rayz@codeaurora.org>
* | | msm: mdss: Add support to retain AD RAMsPing Li2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Modify the MDP_CBCR bits to retain the AD RAMs through idle power collapse(IPC). Bits setting when device enters IPC: - MEM_CORE_ON: 1 - MEM_PERIPH_ON: 0 - MEM_PERIPH_OFF: 1 Bits setting when device exits the IPC: - MEM_CORE_ON: 1 - MEM_PERIPH_ON: 1 - MEM_PERIPH_OFF: 0 Change-Id: I10749312d905eb4629e94e396b1604667738e84f Signed-off-by: Ping Li <pingli@codeaurora.org>
* | | msm: mdss: add min vote on the bus before iommu attachKalyan Thota2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | MDSS needs a min vote on sysmmnoc clk to perform TZ and IOMMU operations. This vote is needed for few low tier chipsets. Change-Id: Iff8c775bfc2001f0bae5118427334793bf392bc0 Signed-off-by: Kalyan Thota <kalyant@codeaurora.org>
* | | msm: mdss: debug: add xin id to pipe dumpIngrid Gallardo2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | Add the xin id information on the dump of the pipes. Change-Id: I20d63e02d0f36f1d173185c520b7c448ead7409d Signed-off-by: Ingrid Gallardo <ingridg@codeaurora.org>
* | | msm: mdss: make sure backlight is off during suspendPadmanabhan Komanduru2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The backlight of the display panel will not get turned off during suspend if there are no display commits between suspend/resume since allow_bl_update will only be set to 'true' after first valid display commit after resume. This is possible for power off charging use-case where there will be only one display commit initially and later just the content of the buffer gets updated without anymore display commits across suspend/resume. Make sure the backlight is turned off during suspend by explicitly setting allow_bl_update to 'true' before trying to set the backlight to zero. Change-Id: I10f39e3913e5b40a61066f0bbce3a7a8f1a9441b Signed-off-by: Padmanabhan Komanduru <pkomandu@codeaurora.org>
* | | msm: mdss: move used pipes to cleanup list on overlay freeVeera Sundaram Sankaran2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Avoid moving pipes to destroy list during overlay free based on the pipe play count as it might not give the actual information. The play count is set to 0 for all new or config changed pipes during the validate call. And if we get a fb_release_all request right after the validate, it would indicate an inconsistent state for the play count. Instead, move the used pipes to cleanup list, so that the NULL kickoff would handle the pipes to be unstaged and destroyed. Change-Id: I0026d512e92d0d59962ee8114873f7804a31c018 Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
* | | msm: mdss: remove interrupt handler when pingpong is not presentRay Zhang2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | Remove pingpong interrupt handler when pingpong done interrupt is not present. This will ensure no unexpected pingpong is reported which might lead to confliction with the destroying ctx. Change-Id: I9a7173fb19e55344cedcfeccdaf23efaba11892c Signed-off-by: Ray Zhang <rayz@codeaurora.org>
* | | msm: mdss: set default resolution of DBA driver during bootSandeep Panda2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In cases of EDID read or parser failures, driver should expose a default resolution to other modules to continue with the HDMI initialization. So during bridge chip initialization sequence update the default resolution. Change-Id: Ia6a7f8b4d9e3f1650b9c11aafc118a2662801ba0 Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
* | | msm: mdss: alter linear_map to incorporate rounding for ADKrishna Chaitanya Parimi2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The helper function linear_map would take the integral part of the calculated map, thereby causing issues with getting the same value after consecutive map and inverse map calls. For ex: linear_map(21, out, 255, 4095) would translate to *out = 21 * 4095 / 255 = 337, whereas inverse case linear_map(337, out, 4095, 255) would translate to *out = 337 * 255 / 4095 = 20 Changing linear_map from ((in * out_max) / in_max) to a more precise ((2 * (in * out_max) + in_max) / (2 * in_max)) for incorporating rounding in the integral mapping. Change-Id: I15cd8aa1326813ce3cb3a426cbb4e78374623c72 Signed-off-by: Krishna Chaitanya Parimi <cparimi@codeaurora.org>
* | | msm: mdss: disable auto refresh before configuring tearcheckSandeep Panda2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | If auto refresh mode is enabled in LK, then it needs be disabled when kernel loads. Otherwise it might cause display corruption, when in kernel display again configures tearcheck block. Change-Id: I0b4dddee25e39cea4f32b8afd537993ad64ea812 Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
* | | msm: mdss: turn on the mdss clocks when enabling vsyncKalyan Thota2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Switch on the mdss clocks while enabling vsync irq. Since mdss clocks are refcounted and irq is asynchronus there can be case as clocks are off and irq is triggered. This change will add a refcount while enabling irq so that clocks are on when irq is triggered. Change-Id: I90728f6d94b9d846b2c805a68ee49a6ef2a8ffc3 Signed-off-by: Kalyan Thota <kalyant@codeaurora.org>
* | | msm: mdss: ensure rotator clocks on for entire rotator sessionJayant Shekhar2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rotator clock and BW votes are updated on each rotator request during same session. This is not required because rotator source and destination does not change during session. Ensure that rotator clocks are on throughout session such that extra overhead of rpm calls are avoided. Change-Id: I7a74aa2b8d8556b1d8ee4c52f871b9ebb149764a Signed-off-by: Jayant Shekhar <jshekhar@codeaurora.org>
* | | mdss: fix dynamic FPS mode switch configurationChandan Uddaraju2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For dual DSI panels, DFPS mode switch configuration through sysfs is not properly enabled for the second DSI interface. Fix this by initializing the mode switch update variable. While changing the DFPS mode, idle-time should be disabled and the device should be configured to default FPS. Add these checks when DFPS mode switch is initiated. Change-Id: Ib9e67f20758e2fb1c72a747c31109364db1d1160 Signed-off-by: Chandan Uddaraju <chandanu@codeaurora.org>
* | | msm: mdss: read DSI CTRL and PHY revision properlySandeep Panda2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the current implementation DSI PHY revision is read once DSI PHY initialization is complete. But this needs to be done before initializing PHY, so that correct PHY initialization sequence can be executed. Change-Id: I6f0cd59d63d0a8c0a5d47284f2e86e72f37d099f Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
* | | msm: mdss: separate out DBA and CEC functionality from DSISandeep Panda2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, DBA (Display Bridge Abstract) related functionality is being used in DSI files. Carve out DBA related functionality into a new file which serves as a utility module and can be used by any MDSS driver. Define CEC on/enable functions in DBA (Display Bridge Abstract) so that clients can enable disable CEC based on other dependent CEC modules. Separate out CEC abstract data with CEC driver data and initialize and release corresponding modules properly. Change-Id: I84f53d99547dcd4ce0b8275401b03ed8e96e14d5 Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org> Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
* | | msm: mdss: configure DSI PHY regulator when coming out of idle collapseSandeep Panda2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In command mode static screen usecase if DSI PHY was clamped and then MDSS was reset by power collapsing it, in that case reconfigure DSI PHY regulator while coming out of power collapse. This will avoid DSI PHY stuck issue when there are two independent displays running. Change-Id: I6c33244c332d97522b66cbb9191fce0a268bf9f4 Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
* | | msm: mdss: properly handle dsi phy regulator for dual dsi caseSandeep Panda2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In dual dsi case, if we do DSI PHY sw reset for one DSI controller then it will reset the DSI PHY regulator also. Since DSI PHY regulator is shared among both the DSI controllers, it might cause side effects on the other DSI controller if that is active. So only reset DSI PHY lane and PHY HW as when one of the DSI controller is still in active state. Also avoid reconfiguring DSI PHY regulator in dual dsi case if the other DSI controller is active. Change-Id: I5ad1251c89e8ad3f521c4e5c11607494e14143cf Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
* | | msm: mdss: enable clocks before doing SW reset during recoverySandeep Panda2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | There can be unclocked register access during DSI FIFO empty error recovery case in command mode, so enable DSI core clocks prior to doing SW reset. Change-Id: Ic48561b979f1a13304dc2fa29f8008e8ff63c8ca Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
* | | msm: mdss: avoid panel status check when panel is offDhaval Patel2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sending BTA or other panel check status commands to the panel, when panel is off might lead to abnormal behavior. Since client can poll for the panel status anytime, add necessary checks to avoid sending commands when panel is off. Change-Id: I95acc3df464d0a4640b79963b5701fcde79646d5 Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
* | | video: msm: mdss: Fix error in log messageNaseer Ahmed2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | The log message which is only active in modem build is missing an argument causing build error. This commit fixes it. Change-Id: I7e66c34c22e13a0063af93cbf725cfd9c24ffb99 Signed-off-by: Naseer Ahmed <naseer@codeaurora.org>
* | | msm: mdss: fix 32-bit compilation errors in HDMI driverVishnuvardhan Prodduturi2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | HDMI driver has compilation issue in 32-bit mode due to incorrect type casting. This patche fixes the same. Change-Id: Ie620b1059f37b858beadf61ff8e100312b1bb988 Signed-off-by: Vishnuvardhan Prodduturi <vproddut@codeaurora.org>
* | | msm: mdss: Remove redundant handoff pending checkJayant Shekhar2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In overlay start, currently there is a check that if splash handoff is pending then fail the overlay start for that particular fb. Remove this check as this is not required anymore. HAL should take care that it calls fb open (for HDMI) only after splash cleanup is done. Change-Id: Ie20bd778ba8df2bd54c3804870ad4e8bb45702b8 Signed-off-by: Jayant Shekhar <jshekhar@codeaurora.org>
* | | msm: mdss: Send backlight sysfs notification in all BL update locationsBenet Clark2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are two places where the backlight can get updated. Currently, the sysfs notification only happens in mdss_fb_set_backlight. If the backlight is restored during the first display commit, the backlight update occurs in mdss_fb_update_backlight. This change adds the sysfs notification in update_backlight. Change-Id: Iffa1e4f0aa0cdc8babb1b6683d3175795f4b4d27 Signed-off-by: Benet Clark <benetc@codeaurora.org> Signed-off-by: Krishna Chaitanya Parimi <cparimi@codeaurora.org> CRs-fixed: 949146
* | | msm: mdss: update mdp capabilites with pipe statusDhaval Patel2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | Update mdp capabilities with pipe index, type, handoff status and display interface number information. Change-Id: I3ff1c66cb20bb1a45a67eb952d7cdaa7e360d377 Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
* | | msm: mdss: update DSI PHY enable sequence based on PHY revisionSandeep Panda2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the current implementation DSI controller version is used to determine which PHY enable sequence should be used. But this will fail in case of platforms where DSI controller version is same as older platforms but PHY version is new. So change the version check to be based on PHY version instead for controller version. Change-Id: I636a6442e84f1bd549b6a125cfb991402e53c796 Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
* | | msm: mdss: reset intf_stopped flag for sctl when exiting LP statesVeera Sundaram Sankaran2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | When exiting low power state (LP1 of LP2), ensure that the intf_stopped flag is reset for the secondary ctl as well, otherwise it may result in the display corruption for that ctl path. Change-Id: I2ac9cff00e25a3cae6999e33c9f5a7a959413277 Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
* | | msm: mdss: fix new and used pipe config in layer validationDhaval Patel2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Pipes present in destroy and cleanup list are considers as used pipes during layer validation. This assumption is wrong. Async update should not be supported for such pipes because they are not stagged in current draw cycle. These pipes should also go through destroy cleanup process if any layer validation fails during the atomic ioctl check. Change-Id: I11ba16db40634e32e7f55af4e19f6cb42530b1f4 Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
* | | msm: mdss: fix deadlock between display and dsi status check threadVeera Sundaram Sankaran2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The vsync handler in display thread holds ov_lock followed by offlock. And the DSI status check thread for cmd mode panel holds offlock followed by ovlock, causing a clear deadlock scenario. Fix it by acquiring ov_lock before offlock in DSI status check thread. Change-Id: I54ef54b5ca7e4c87e909c510b28ff7770bb20a3b Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
* | | msm: mdss: hdmi: add support for custom edidAjay Singh Parmar2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add sysfs node to provide a custome EDID to HDMI driver to address some special requirements from user applications like switching to a custom EDID in cases where sink doesn't support EDID or DDC line to read EDID. Change-Id: I75726e28722aa128cfc315b3b1b0e97e9a9cde56 Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
* | | msm: mdss: force HW reprogram when ROI changes mixer layoutUjwal Patel2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Current driver has various optimizations to skip pipe reprogramming if certain layer parameters are not changed. However if mixer layout changes then we need to reprogram all the staged pipes on that mixer. This scenario can happen when partial update is enabled on a topology with split layer mixers. Add a logic to find if the mixer layout is changing between two consecutive updates and if it does, force reprogramming of all the staged pipes. CRs-fixed: 946164 Change-Id: I16caa4bb8b9587b804d6543d0bd340df970784ba Signed-off-by: Ujwal Patel <ujwalp@codeaurora.org>
* | | msm: mdss: hdmi: create hardware independent CEC abstract moduleAjay Singh Parmar2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Create a new CEC abstract module which is hardware independent and interacts with other modules. Make hardware dependent CEC a separate module and integrate with CEC abstract module. This makes it easy to integrate multiple CEC hardwares without disturbing other modules interacting with the abstract module. Change-Id: I0cf4973e567fe82a1b714c03ae8b18508521260e Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org> Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
* | | msm: mdss: hdmi: add dynamic encryption enable supportAjay Singh Parmar2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement qseecomm API to send command to TZ to enable/disable encryption based on hdcp status. Enable encryption when hdcp part 1 is successful and disable it when cable is disconnected or authentication fails. Change-Id: Ia5e1a5927dad36abc3093b16638879be823c84df Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
* | | msm: mdss: hdmi: schedule link work from isrAjay Singh Parmar2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Do not schedule link work periodically to check for new message or authentication status. Hardware automatically poll sink for the same. Once new message is available or sink indicates re-authentication required, isr is triggered. Queue link check work from isr to avoid unnecessary software polling. Change-Id: I83c71f5151aa077e863b6578a89f6515f6497159 Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
* | | msm: mdss: hdmi: hdcp2p2: add tethered supportAjay Singh Parmar2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Provide user an option to let the HDCP2.2 authentication run on main thread. Avoid processing on module threads thus avoiding any scheduling delays. The user may choose to switch to this mode based on its requirements. Change-Id: I76ec4a18f0fc52e99bbe76b6707511d3af6151f3 Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
* | | msm: mdss: hdmi: clear ddc line before starting hdcpAjay Singh Parmar2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Clear DDC line if scrambling and Rx status polling is still going on. Check for all scrambling and Rx status errors and stop polling in error cases. This needs to be done before new hdcp authentication session is started to avoid any authentication failures because of ddc line being busy. Change-Id: I90957410172ca206d435a5549d689ada222f84db Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
* | | msm: mdss: update DSI PHY panel timing dt parsing logicSandeep Panda2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In current implementation there are two entries in DSI panel specific dt file for specifying panel timing parameters. But in case only one entry is specified in panel dt, then if the first entry is not there in dt, driver is returning failure and because of this the second entry is not getting parsed at all. Update the parsing logic so that driver parses both the entries to get proper dsi panel timing parameters. Change-Id: I1774421fd9686de123cb669a745ac110fe8667da Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
* | | msm: mdss: hdmi: update hdcp information at hdcp startAjay Singh Parmar2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Update the hdcp related information when hdcp is started and not before that. Updating hdcp information depends on some modules which may not be ready during boot-up resulting in hdcp failure. Update hdcp information on user thread to make sure that kernel has completed boot-up and dependent modules are ready. Change-Id: I159ec55dbe3d6f109a97a15c2f22d96694727133 Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
* | | msm: mdss: hdmi: check clk state before power onAjay Singh Parmar2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Clocks should be enabled and running at proper rates before powering on hdmi transmitter. In fast plug in/plug out of hdmi cable cases or fast suspend resume cases, there can be a race condition related to enable/disable of clocks and hdmi power on/off. Make sure, in such corner cases, hdmi transmitter core is not being programmed to avoid any possible un-clocked register access issue. Change-Id: Ide3db0d0947f4bb5deee26aee95111be27523924 Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
* | | msm: mdss: read display id from device treeVinu Deokaran2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | Add support to read display ID string from device tree. The string could be empty if it's not defined in the device tree. Change-Id: I70584a1e20b7394145e40d83a2af7775f0117506 Signed-off-by: Vinu Deokaran <vinud@codeaurora.org>
* | | msm: mdss: add support to report display idVinu Deokaran2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | Add support to report display ID back to user space through panel_info node. Change-Id: I0d711400b02f441bce17b27bd747034bd5b61b1a Signed-off-by: Vinu Deokaran <vinud@codeaurora.org>
* | | msm: mdss: add a new display id for panel destinationVinu Deokaran2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | Since driver could support four displays running concurrently, adding one more display id for setting up panel destination. Change-Id: I0999b3787e1a329538d6513fc3c9a43a3da9999a Signed-off-by: Vinu Deokaran <vinud@codeaurora.org>