summaryrefslogtreecommitdiff
path: root/drivers/video/fbdev (follow)
Commit message (Collapse)AuthorAge
...
* | msm: mdss: Unlock correct mutex in AD setupBenet Clark2016-03-23
| | | | | | | | | | | | | | | | | | The incorrect mutex for the BL file descriptor was being unlocked in AD setup. Removed the incorrect unlock and replaced it with an unlock on the correct mutex. Change-Id: I276823c34d1183b69d7af06bae8b02cb7e1b56b1 Signed-off-by: Benet Clark <benetc@codeaurora.org>
* | msm: mdss: Add six zone functionality for PP PAv2Benet Clark2016-03-23
| | | | | | | | | | | | | | | | | | | | Added six zone memory color adjustment for picture adjustment block in post-processing. This includes the necessary structures, flags, and register reads and writes in order to program the six zone LUT hardware block in PA Change-Id: Idb381077497e2b63399ebeb7051027a46b5dd6e1 Signed-off-by: Benet Clark <benetc@codeaurora.org>
* | msm: mdss: Add changes for PP PA v2 functionalityBenet Clark2016-03-23
| | | | | | | | | | | | | | | | | | | | The new version of PA in postproc has added functionality in DSPP and VIG. This change adds functions for handling the reading and writing of these new registers, as well as PA v2 setup in DSPP and VIG setups. This change only adds functionality for global adjustment and memory color adjustment. Change-Id: Iab1644714928055f15cf496185509b1712d0ceae Signed-off-by: Benet Clark <benetc@codeaurora.org>
* | msm: mdss:set brightness to min_bl if brightness is less than min_bl.shuoy2016-03-23
| | | | | | | | | | | | | | | | | | For some backlight controllers,its minumul Duty is 10% (brightness 30), so we need to adjust the brightness to min_bl when brightness is less than it. Change-Id: I543764449074fdc0974f312fdbc4043f4f24d5c0 Signed-off-by: Shuo Yan <shuoy@codeaurora.org>
* | msm: mdss: hdmi: Remove ext-5v gpio for HPDAjay Singh Parmar2016-03-23
| | | | | | | | | | | | | | | | | | | | Remove the PMIC's interface to 5V enable GPIO which is used to enable power for HDMI HPD (Hot Plug Detect). This PMIC GPIO will be used as HDMI voltage regulator so that multiple clients can make use of it. Change-Id: Ifd50344ce19541a1c055b9123c55eddd08ccd05f Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
* | msm: mdss: Initialize right mixer ROI for split controlJeykumar Sankaran2016-03-23
| | | | | | | | | | | | | | | | | | | | | | This change initializes ROI of the right mixer on dual DSI panels to its complete resolution. This will ensure that the right mixer composes to its full resolution when partial update feature is not enabled / applicable. CRs-Fixed: 556185 Change-Id: I3c2f2b9a220dc223ef66475d6f6cbfc18c4a67db Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
* | msm: mdss: Turn off backlight while blank-unblank in continuous splashShivaraj Shetty2016-03-23
| | | | | | | | | | | | | | | | | | Turn off the backlight while calling blank-unblank during continuous splash as it could show white flicker depending on the panel. CRs-Fixed: 532273 Change-Id: I99e9bff26b540f2e33bfeb13cbb29548feea599c Signed-off-by: Shivaraj Shetty <shivaraj@codeaurora.org>
* | mdss: ppp: Add support for MDP_BGRX_8888 in mdp3 pppTerence Hampson2016-03-23
| | | | | | | | | | | | | | Support for MDP_BGRX_8888 is required, so we are adding it in. Change-Id: I43e9b6ccc63f7fd7b83fa4b3b24828f58b56b1fc Signed-off-by: Terence Hampson <thampson@codeaurora.org>
* | mdss: msm: Add support for Secure DisplayArun Kumar K.R2016-03-23
| | | | | | | | | | | | | | | | | | Invoke scm call to inform TZ core about the start of secure display. This TZ call modifies the XPU settings to block the read/write access for master(MDP) with non-secure VMID. Change-Id: Ib8d1ec756883efaa7388d632e854c32e9f2885ba Signed-off-by: Arun Kumar K.R <akumarkr@codeaurora.org>
* | msm: mdss: Fix dual-DSI mixer swapUjwal Patel2016-03-23
| | | | | | | | | | | | | | | | | | | | In dual-DSI panel configuration it is possible that panels are physically swapped on the device. In those situations mixer swap is done. There is an old dead code in current implementation which leads to failures in mixer swap use-case. Fix these failures by removing this dead code. Change-Id: Ib0d7141e322f18bcf1060bc5ab2a404dc41a4cc2 Signed-off-by: Ujwal Patel <ujwalp@codeaurora.org>
* | msm: mdss: wait for the first display updateXiaoming Zhou2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | Display backlight is enabled after commit kickoff function returns. However, the return of the function does not mean the data has been sent to the panel yet. During suspend and resume use case, it results a split of second of screen corruption. This makes sure backlight is enabled only after the first display update is complete. Change-Id: Id5e6bada69c51180ebedfdb301d4d68fc12877b0 Signed-off-by: Xiaoming Zhou <zhoux@codeaurora.org>
* | mdss: display: add mdp core clock to edp controlKuogee Hsieh2016-03-23
| | | | | | | | | | | | | | | | | | Since mdss interrupts are generated in mdp core clock domain, mdp clock need to be enabled along with edp clocks to have edp interrupt be delivered to edp during edp probe. Change-Id: Idad19dddfdc2aed9efda15b28b666ac0411dbbda Signed-off-by: Kuogee Hsieh <khsieh@codeaurora.org>
* | msm: mdss: Add scalar data structure to enable scalar programmingSree Sesha Aravind Vadrevu2016-03-23
| | | | | | | | | | | | | | | | | | | | mdp_scale_data is a data structure added to mdp_overlay structure to receive scalar factors for the QSEED filter such as initial phase, phase step and pixel extension from the userland. This data is need to achieve image clarity when using the scalar. Signed-off-by: Sree Sesha Aravind Vadrevu <svadrevu@codeaurora.org> Change-Id: I88e5e0cc9f4e604f38fa7c35a6a93378d3b55050
* | msm: mdss: Replace the size check for gamut LUTsPing Li2016-03-23
| | | | | | | | | | | | | | | | Add more reliable size check for gamut LUTs to prevent potential security issues such as information leak. Change-Id: I32be41a2612a100b9ba6167737c2f8778f720fa2 Signed-off-by: Ping Li <quicpingli@codeaurora.org>
* | msm: mdss: hdmi: Proper permissions for CEC logical addressAjay Singh Parmar2016-03-23
| | | | | | | | | | | | | | | | | | | | Do not give universal access to CEC (Consumer Electronics Control) sysfs nodes for logical and physical addresses to avoid unauthorized access. CRs-Fixed: 547968 Change-Id: I2ba57f050cc92a361586064dfd5e5659ab07c2f7 Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
* | mdss: ppp: Reset parameters passed into mdp3_start_pppTerence Hampson2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | mdp3_start_ppp is manipulating some of the parameters passed in. Within a sw workaround to a hw issue, a blit request can be broken down and create a need for multiple calls to mdp3_start_ppp. When this happens, the parameters passed in will be modified and a snowball effect takes place. To fix this issue we simply reset parameters before next call to mdp3_start_ppp. Change-Id: I29888b5f2f07391d3502ae1478068d7bf12805c3 Signed-off-by: Terence Hampson <thampson@codeaurora.org>
* | mdss: mdp: Add support for partial panel updatesJeykumar Sankaran2016-03-23
| | | | | | | | | | | | | | | | | | This change programs MDP only for the output resolution (ROI) set by the client. All staged pipes are cropped to fetch data only for the resolution programmed. Change-Id: I1e113fd051a01d8fc1247a74d363a26cd9a0cd61 Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
* | mdss: mdp3: Add underrun counter to debugfs stat callTerence Hampson2016-03-23
| | | | | | | | | | | | | | | | To allow for easier debug we added logs to output current underrun count. Change-Id: I61f3911b315193ae5550de0332c5abefe22c12ce Signed-off-by: Terence Hampson <thampson@codeaurora.org>
* | msm: mdss: Account for null ctl passed to line countCasey Piper2016-03-23
| | | | | | | | | | | | | | | | | | | | | | Line count could be passed a null ctl structure, which would cause a kernel panic. To prevent this, line count will just return 0 if a null parameter is passed. Change-Id: I2b52533e6b67b842542de5b81be5b43fccc364dc CRs-Fixed: 551701 Signed-off-by: Casey Piper <cpiper@codeaurora.org>
* | msm: mdss: Prevent ALS data configuration when AD is disabledPing Li2016-03-23
| | | | | | | | | | | | | | | | | | If assertive display is disabled, backlight data structure is reset to NULL, which in some conditons gets dereferenced or casuses crash. Change-Id: I535eac6d2f0aef222fc2846f80d72db1f3e3480d Signed-off-by: Ping Li <quicpingli@codeaurora.org>
* | msm: mdss: Validate mixer/ctl are not nullCasey Piper2016-03-23
| | | | | | | | | | | | | | | | | | | | | | mdss_mdp_wb_mixer_destroy could theoretically be called with null mixer or ctl, which would cause a null pointer dereference. Adding a check to prevent this from happening. Change-Id: I376c449daf05c8ca4ebb789d402575598ee59d86 CRs-Fixed: 551787 Signed-off-by: Casey Piper <cpiper@codeaurora.org>
* | mdss: display: configure continuous splash mixers with border fill pipeKuogee Hsieh2016-03-23
| | | | | | | | | | | | | | | | | | At end of continuous splash operation, configure mixers with border fill pipe to avoid unexpected side effects before transition into local home screen. Change-Id: Id2a7c1093035956774aef5518a449636ffd57c95 Signed-off-by: Kuogee Hsieh <khsieh@codeaurora.org>
* | msm: mdss: Allocate fb memory under 4GB physical address spaceUjwal Patel2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | Linux kernel framework of framebuffer APIs do not support LPAE systems. These APIs are using "unsigned long" data type instead of "phys_addr_t" for physical addresses which doesn't work with LPAE systems. Until framebuffer APIs are fixed, allocate fb memory on MSM chip-sets using dma_alloc_coherent and GFP_KERNEL to get the memory from below 4GB physical address space. Change-Id: Ieca41cae21c956a8b4cf1d5729d287bb0bb30f8d Signed-off-by: Ujwal Patel <ujwalp@codeaurora.org>
* | msm: mdss: Request for TE GPIO only for command mode panelPadmanabhan Komanduru2016-03-23
| | | | | | | | | | | | | | | | | | There is a possibility that a board has TE GPIO in dts file and we request and use it in video mode also. Hence, request and enable the TE GPIO only when panel is in command mode. Change-Id: I89b9b89f569f341940d2b0471fc8bea0345dffb6 Signed-off-by: Padmanabhan Komanduru <pkomandu@codeaurora.org>
* | mdss: dsi: Add support to partial updateJeykumar Sankaran2016-03-23
| | | | | | | | | | | | | | | | | | Add support to send DCS commands to set the partial update region of interest(ROI) size. These commands will set the column/row start and end coordinates based on the ROI size. Change-Id: I3418472d9d622150c3cd7571b0b1e7a3482f5597 Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
* | msm: mdss: hdmi: Proper CEC line busy checkAjay Singh Parmar2016-03-23
| | | | | | | | | | | | | | | | | | | | Checks the CEC (Consumer Electronics Control) line for availability properly so that in case of line being busy it can send re-try request. CRs-Fixed: 552367 Change-Id: I75dae23738d791de9a75b78a14e62cd3c40fa2c4 Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
* | msm: mdss: hdmi: Security check for EDID 3D data parsingAjay Singh Parmar2016-03-23
| | | | | | | | | | | | | | | | | | | | | | While parsing EDID (Extended display identification data) received from TV for 3D data and other, proper buffer overflow check is done to avoid data overflow or overwrite. Also, replace snprintf with scnprintf for better memory copy results. CRs-Fixed: 542823 Change-Id: I2603beea6eb88a92b013a1a45d960a4c3ba6c09b Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
* | msm: mdss: hdmi: Proper HDMI feature checkAjay Singh Parmar2016-03-23
| | | | | | | | | | | | | | | | | | Checks for the proper HDMI feature before providing the corresponding feature data to avoid invalid memory access. CRs-Fixed: 542785 Change-Id: I943bee9e843e0504effdfddfaf2dea82c22388f6 Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
* | msm: mdss: remove extra lock for ctl callsAdrian Salido-Moreno2016-03-23
| | | | | | | | | | | | | | | | | | | | Some ctl functions need only protection for mixer programming changes, since all of these calls are made within ov_lock there is no need for additional protection. Specially since ctl->lock is still held when mixer configuration is safe to be changed. Change-Id: I4f39e28f40ef18789a653d02346358b7ca7590c6 Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
* | msm: mdss: fix double sync fence put in buf sync functionAdrian Salido-Moreno2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | If an error occurs after setting acquire fds, the list of sync fences will be put for cleanup. However if mdss_fb_wait_for_fence() is called this will also wait and clear the list of fences, since we are relying on local variable for cleanup, it may not reflect the state after the function call. Fix this by maintaining the proper state of the list. CRs-fixed: 548042 Change-Id: I4885eb393ac9bd2b4818292b9a60f53fb4baacc8 Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org> Signed-off-by: Mayank Chopra <makchopra@codeaurora.org>
* | mdss: display: add command mode mdp fifo underflow recoveryKuogee Hsieh2016-03-23
| | | | | | | | | | | | | | | | | | At command mode, mdp underflow can not be recovered but cause mdp to hang up. Add mdp underflow recovery mechanism when mdp underflow detected. Change-Id: I26fc64005ac247372257aa126f2c8c0076925bb9 Signed-off-by: Kuogee Hsieh <khsieh@codeaurora.org>
* | msm: mdss: request and free gpio at display on and offXiaoming Zhou2016-03-23
| | | | | | | | | | | | | | | | This fixes a power leakage due to gpio is not put into the suspended mode at display off. Change-Id: If37426b821cdf08e207888ac84a2afbcbc011451 Signed-off-by: Xiaoming Zhou <zhoux@codeaurora.org>
* | msm: mdss: update error codes returned to user spaceAdrian Salido-Moreno2016-03-23
| | | | | | | | | | | | | | | | | | | | Some of the error codes reported to user space may not be properly handled or can be confused. Replacing the error codes returned with more unique ones to correctly identify problem. CRs-Fixed: 549702 Change-Id: I01ffff79e748fc852898dc7605fd15873dfb33f8 Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
* | msm: mdss_fb: update max brightness set for led backlightAdrian Salido-Moreno2016-03-23
| | | | | | | | | | | | | | | | Led backlight structure allows setting max backlight so that max backlight is properly clamped by led driver. Change-Id: Icbc87d9575679c1626c03b0fa5c359ebf4d7e43d Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
* | msm: mdss: fix sw calculation of interlace x offsetAdrian Salido-Moreno2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | Interlacing is handled in software by changing the original height to half which would become the width after rotation. In cases of 90 degree rotation the height becomes the displayed width so in that case the source x offset needs to be updated to half of intended similar to source width. CRs-Fixed: 545926 Change-Id: I0de9adb243d6162f5387b1ebc2821141eea4b111 Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
* | msm: mdss: Use single flush method for 8084 split displayUjwal Patel2016-03-23
| | | | | | | | | | | | | | | | | | | | | | Split display use-cases have two independent control paths. MDSS before 8084 requires both control paths to program their own flush registers which can lead to race conditions. Starting 8084, MDSS HW can achieve same flush but with only single register write and eliminating race conditions. Change-Id: I62e5d61decb6f20cbd9bec542e035471b84b2c0a Signed-off-by: Ujwal Patel <ujwalp@codeaurora.org>
* | msm: mdss: Make DSPP PP setup more modularBenet Clark2016-03-23
| | | | | | | | | | | | | | | | | | | | The previous DSPP PP setup function included config functions for each of the different PP blocks except for dither. Now there is a dither setup function, as well as an opmode setup function in order to clean up what is done inside DSPP PP setup. Change-Id: Ia347c35bb675e20531272566647a364f6e68468c Signed-off-by: Benet Clark <benetc@codeaurora.org>
* | msm: mdss: update the backlight only when successful commitXiaoming Zhou2016-03-23
| | | | | | | | | | | | | | | | | | | | During suspend and resume, the first commit got called with no overlay buffer. The backlight is turned on regardless of successful commit or not. This then causes display corruption. Change-Id: I00fada5f6bedabf6ab0df97f6d429297d7fb601f Signed-off-by: Xiaoming Zhou <zhoux@codeaurora.org>
* | msm: mdss: Add data check before pipes are programmedJayant Shekhar2016-03-23
| | | | | | | | | | | | | | | | | | Move the mdss_mdp_data_check call to image_setup instead of src_addr_setup. Return a failure in image setup so that the new parameters won't be programmed Change-Id: Ib35b41eadf4cb50225866b7056670323cc8e8eac Signed-off-by: Jayant Shekhar <jshekhar@codeaurora.org>
* | msm: mdss: release all overlay resources on last fb releaseAdrian Salido-Moreno2016-03-23
| | | | | | | | | | | | | | | | | | | | There are cases where the last frame buffer reference is released from a different pid than the one who originally allocated the resource. In these cases we can still deallocate all resources currently allocated as we know that all references on fb dev have been released. Change-Id: Ice2ca8df765cb8c4537a89fec887cb125d820d7a Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
* | msm: mdss: hdmi: bounds check for 3d data in vsd bufManoj Rao2016-03-23
| | | | | | | | | | | | | | | | | | | | Ensure the 3D formats are only read from the proper buffer region for vendor specific data block. This prevents illegal data being read from the EDID data. Change-Id: I36286db54241246aaa06c399e4b6e962d54d716d CRs-Fixed: 522147 Signed-off-by: Manoj Rao <manojraj@codeaurora.org>
* | msm: mdss: hdmi: bounds check for ieee reg id fieldManoj Rao2016-03-23
| | | | | | | | | | | | | | | | | | | | Ensure data is only read from allowed region for IEEE reg ID field in the EDID data. This prevents illegal data access beyond the limits of this buffer. Change-Id: Iee6f1a54be6f1c833da37687c0c8063e3c27f122 CRs-Fixed: 522147 Signed-off-by: Manoj Rao <manojraj@codeaurora.org>
* | msm: mdss: hdmi: bounds check for edid dbcManoj Rao2016-03-23
| | | | | | | | | | | | | | | | | | | | | | Ensure data is read from within limits of buffer for data block collection/video data block in EDID. This prevents EDID data from being read past the end of data block collection offset. Change-Id: I2ddb279d715c89a15ff4a4679480900b73b43da4 CRs-Fixed: 522147 Signed-off-by: Manoj Rao <manojraj@codeaurora.org>
* | msm: mdss: Fix incorrect pp flush programming for apq8084Ujwal Patel2016-03-23
| | | | | | | | | | | | | | | | | | | | In apq8084 flush bits for newly added layer mixer 5 and DSPP 3 are not symmetrically aligned with other layer mixers and DSPPs. Current post processing code does not consider this and configures wrong flush bits. Fix this by updating correct flush bits. Change-Id: I150f58405f343239d167c4ad6feb991aa7cb61d2 Signed-off-by: Ujwal Patel <ujwalp@codeaurora.org>
* | msm: mdss: Revert changes for separating out PP flushes from commitsPing Li2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | MDP flush behavior on MSM8974 needs to have single flush in given vsync cycle, more than one flushes in same vsync cycle can cause unexpected behavior such as blank screens, incorrect frame updates on LCD or some visual artifacts. Currently post processing and frame updates have independent flush mechanisms which in certain cases can cause visual artifacts or blank screen. So revert changes to independently flush MDP registers so that post processing piggybacks on flushes for frame updates. CRs-Fixed: 494856 Change-Id: Iaa0f6f123487f57abb1b56f7d0946fa3abfe3058 Signed-off-by: Ping Li <quicpingli@codeaurora.org>
* | msm: mdss: Configure minimum voltage for CX power railChandan Uddaraju2016-03-23
| | | | | | | | | | | | | | | | | | | | | | For smart panels, we observe abnormal waveforms and unexpected voltage spikes on DSI data lanes when the cx power rail goes to minimum voltage. Vote for the cx regulator in mdp driver and control the voltage to avoid frame shifting. Change-Id: I7ec9e29a4972373775406fa29a5037fd43fef315 Signed-off-by: Chandan Uddaraju <chandanu@codeaurora.org>
* | msm: mdss: Fix possible buffer overflow in pppShivaraj Shetty2016-03-23
| | | | | | | | | | | | | | | | | | Correct the limit check for the buffer format and avoid the possible buffer overflow. CRs-Fixed: 542730 Signed-off-by: Shivaraj Shetty <shivaraj@codeaurora.org> Change-Id: I78f86cf8e7dcd0b3f4e124fbbf70353796583a47
* | msm: mdss: initialize pipe to NULLManoj Rao2016-03-23
| | | | | | | | | | | | | | | | | | | | | | Initialize the pipe pointer to NULL. So that even if the selection of pipe from pipe-pool fails, the function returns NULL instead of an uninitialized value. Change-Id: Ib04c0a983cba6ffe9532862bcaf516877e49746a CRs-Fixed: 524466 Signed-off-by: Manoj Rao <manojraj@codeaurora.org>
* | msm: mhl: sii8334: initialize return valueManoj Rao2016-03-23
| | | | | | | | | | | | | | | | | | | | Initialize the variable holding the return code to appropriate error value so that an incorrect return code isn't sent to the caller. Change-Id: I7654523c37ac9b7a60dda1fae77dfacc196df6fa CRs-Fixed: 524484 Signed-off-by: Manoj Rao <manojraj@codeaurora.org>
* | msm: mdss: Reset right mixer flush bits in split-display use-caseUjwal Patel2016-03-23
| | | | | | | | | | | | | | | | | | Split-display uses left and right mixers in a single control path. In such scenarios, flush bits variable holding right mixer updates needs to be reset in along with left mixer. Change-Id: I66060b7be5a38e2c08e0f1d3d82a18062e2bd8c8 Signed-off-by: Ujwal Patel <ujwalp@codeaurora.org>