summaryrefslogtreecommitdiff
path: root/drivers/video/fbdev (follow)
Commit message (Collapse)AuthorAge
...
* | msm: mdss: split out framebuffer info from data path controllerAdrian Salido-Moreno2016-03-23
| | | | | | | | | | | | | | | | | | | | Separate framebuffer specific logic from data path controller. This allows the framebuffer API to be agnostic of the actual data path configuration and support more complex display use cases more easily. Change-Id: I5553552a352dea234c6fb33000a5c56a7d643251 Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
* | msm: mdss: implement framebuffer registration eventAdrian Salido-Moreno2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | HDMI panel driver needs access to framebuffer information in order to register some sysfs nodes with framebuffer driver, this is currently accessed through framebuffer private data. Change the way this information is accessed by implement a panel event which provides information when framebuffer registration happens and providing pointer to framebuffer info. Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org> Change-Id: Iab7f104e461ebddc30d9e3936848b4a1f41715b7
* | msm: 8974: MHL error handling in GPIO and VREGManoj Rao2016-03-23
| | | | | | | | | | | | | | | | | | Handle GPIO request failures and vreg request failures gracefully with proper error value propagation. Change-Id: I39804d3b6c9cd581c554ab822ba57fadcddceca3 Signed-off-by: Manoj Rao <manojraj@codeaurora.org>
* | msm: mdss: log rotator completion timeSree Sesha Aravind Vadrevu2016-03-23
| | | | | | | | | | | | | | | | Enabled logs for performance testing purposes CRs-fixed: 433958 Change-Id: I67be767f6c15d41969c335e517640be259aa46fe Signed-off-by: Sree Sesha Aravind Vadrevu <svadrevu@codeaurora.org>
* | msm: mdss: fix initialization of resourcesAdrian Salido-Moreno2016-03-23
| | | | | | | | | | | | | | | | | | Move resetting of clock variables and other resources before they are ever used, this will avoid some variables being used before they are properly initialized. Change-Id: I9e7e9e0f272647f859927d9343a2d3a7adc7c933 Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
* | video: msm: Restore Post Processing configuration on resumeCarl Vanderlip2016-03-23
| | | | | | | | | | | | | | | | | | Restore the configuration of each post processing feature on resume. Previously only enabled/disabled state was being restored causing some features to become misconfigured during suspend resume case. Change-Id: Icbd6584a85b4464931bff4498c0a218948b15822 Signed-off-by: Carl Vanderlip <carlv@codeaurora.org>
* | msm: mdss: hdmi tx: fix race condition during quick suspend/resumeUjwal Patel2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | During suspend/resume if resume occurs before hdmi tx driver has finished processing suspend then internal driver state gets out of sync with actual hw state. This will prevent mirroring if hdmi cable was connected during resume. Fix this by making resume context wait until corresponding suspend has been processed. CRs-Fixed: 441714 Change-Id: I0aa29b8760451f1c2d06576cccf889d9f803397e Signed-off-by: Ujwal Patel <ujwalp@codeaurora.org>
* | msm: mdss: fix release all sync points at suspendAdrian Salido-Moreno2016-03-23
| | | | | | | | | | | | | | | | | | | | Release of sync points is meant to be done when there are no errors during panel off sequence. Correctly check error condition to get expected behavior. CRs-Fixed: 437975 Change-Id: I84a786bd5c1f4db69e482510f08cbf9215a1e44c Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
* | msm: mdss: fix handling of dynamic control pathsAdrian Salido-Moreno2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | Allow dynamic changes in control paths by changing interrupt handler to be able to handle different configurations depending on how control path is configured, additionally make sure to clear control path mixer configuration to make sure all pipes are properly dettached and won't conflict with new control path configuration. CRs-Fixed: 437343 Change-Id: I89c833f2cb6cc2556d15d468375d88a7a550f85e Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
* | msm: mdss: Picture adjustment support for source pipePing Li2016-03-23
| | | | | | | | | | | | | | | | Picture adjustment parameters can be configured via OVERYLAY_SET IOCTL. Change-Id: I7ccb9a03a20bf4441cf8e675dca517513a7aaff1 Signed-off-by: Ping Li <quicpingli@codeaurora.org>
* | video: msm: Reorganize post processing configurationCarl Vanderlip2016-03-23
| | | | | | | | | | | | | | | | Reorganize post processing configuration functions to allow for easier code reuse on other post processing features that are not located in the DSPP. Change-Id: Ifd89afb3066ff0d6dba1d564ef09032cc981f65b Signed-off-by: Carl Vanderlip <carlv@codeaurora.org>
* | msm: mdss: remove mixer stage check in overlayAdrian Salido-Moreno2016-03-23
| | | | | | | | | | | | | | | | | | | | To support cases in which there might be changes in mixer stage before commit, allow user space to set any mixer stage even though it's being used by a different pipe, the replaced pipe can then be used in a different mixer stage or cleaned up. Change-Id: Id12ed4e9c4d08e0ed4b559be38beb2a44cd85c80 Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
* | video: msm: Move no_notify_update from suspend to blankCarl Vanderlip2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | Current location of no_update_notify completion does not wake up when fb_blank is called. Since no_update_notify tracks panel power state (it is assumed that screen updates are expected when the screen is off/blank), no_update_notify should be completed in the blank helper functions rather than suspend's. CRs-Fixed: 434491 Change-Id: I3f74c6d31ba556352e248beb03ce724dbc0c1863 Signed-off-by: Carl Vanderlip <carlv@codeaurora.org>
* | msm: mdss: change MDP early suspend levelAdrian Salido-Moreno2016-03-23
| | | | | | | | | | | | | | | | | | | | | | The early suspend level is used to order how different listeners are notified about suspend/resume events. MDP should be suspended at latest point after FB has been blanked to ensure there are no updates coming after suspend or before resume. CRs-Fixed: 439900 Change-Id: I9122f4bbc08d391d6581750592d0513c5afbfd9a Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
* | msm:mdss: Add gamma correction LUT feature for DSPPPing Li2016-03-23
| | | | | | | | | | | | | | | | Add gamma correction LUT feature for DSPP and define flags to differentiate between gamma correction on layer mixer and DSPP. Change-Id: I626324587bd9c7c00e3e053d101959e54b218eac Signed-off-by: Ping Li <quicpingli@codeaurora.org>
* | msm: display: Remove reserved field usage for frame rateKen Zhang2016-03-23
| | | | | | | | | | | | | | | | | | fb_var_screeninfo reserved[4] is used for panel frame rate passing, this has been replaced by metadata ioctl call. Change-Id: Idf3d63c8d00c546b9dc589a860d957d3414d8a1b Signed-off-by: Ken Zhang <kenz@codeaurora.org>
* | msm: display: panel frame rate reportKen Zhang2016-03-23
| | | | | | | | | | | | | | | | Add metadata ioctl for retrieving panel frame rate. Get ready to remove reserved fields usage. Change-Id: I51a4aed9d85efd5f83a184100b6a3dc682c7a67c Signed-off-by: Ken Zhang <kenz@codeaurora.org>
* | msm: mdss: remove surface pipe locksAdrian Salido-Moreno2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | Pipe locks are used to prevent pipes being updated by two different threads, and to avoid updates when pipes are being released. Update by two different threads are already protected by a different lock (mfd->ov_lock). For updated while being released replace the usage of pipe locks with ref counts to ensure pipe is freed only until there are no updates going on. CRs-Fixed: 438108 Change-Id: I5c41b4efa8d42bfcfc1b9e6ebe4225c46bd27084 Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
* | msm: 8974: MHL MSC/RCP/RAP feature implementationManoj Rao2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | MHL implementation in 8974 for handling CBUS interrupts to enable and handle MSC translation control packets. This change also includes implementation of RCP/RAP protocols by registering MHL driver as input device and building key code mapping. Change-Id: I73e399bbbf9b2f53974225aaa8697fce2057d017 Signed-off-by: Manoj Rao <manojraj@codeaurora.org> [cip@codeaurora.org: Moved new file locations] Signed-off-by: Clarence Ip <cip@codeaurora.org>
* | msm: mdss: increase timeout of first vsyncAdrian Salido-Moreno2016-03-23
| | | | | | | | | | | | | | | | | | | | User space clients usually start to listen for vsync events a lot earlier than the first update which triggers the timing generator. Allow more time for the first update before timing out on waiting for vsync. Change-Id: I0a9f2e838b25459e87ca26b63467f16a936e6b9c Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
* | msm: mdss: add proper locking while setting vsync handlerAdrian Salido-Moreno2016-03-23
| | | | | | | | | | | | | | | | | | | | When panel is suspended, the vsync spin lock may be reset, ensure that access to this lock is properly protected and avoid using this while suspended. CRs-Fixed: 434075 Change-Id: I6f67faed6c9af791563768333ff674b9472d9478 Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
* | msm: mdss: treat full screen layer as framebufferAdrian Salido-Moreno2016-03-23
| | | | | | | | | | | | | | | | | | | | In order to allow userspace to manage framebuffer with overlay APIs, allow first full screen layer to be setup as framebuffer, and use the framebuffer alpha channel for per pixel blending configuration. CRs-Fixed: 437256 Change-Id: Iae09da427903659576dc0ee1fd2b00dccf3bd91c Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
* | msm: mhl_sii8334: support USB chargingJack Pham2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | Add "ext-vbus" power_supply which acts as a supplier to the USB power_supply. When MHL is detected, it will notify USB of the online and present states, as well as set the current limit. Currently (no pun intended) there is no specification in MHL about specific amperage, other than minimum required for operation, so use 700mA for now. Change-Id: Iab5d82b29bca66330922f1da404d3bfe5d95024f Signed-off-by: Jack Pham <jackp@codeaurora.org>
* | msm: display: Add picture adjustment support for SSPP sidePing Li2016-03-23
| | | | | | | | | | | | | | | | | | Add picture adjustment structure input for overlay PP configuration, user can change PA setting via overlay set IOCTL Change-Id: I3b4679991ad4527565809e291fb13a73fbda2181 Signed-off-by: Ping Li <quicpingli@codeaurora.org>
* | msm: mdss: enable border fill setupAdrian Salido-Moreno2016-03-23
| | | | | | | | | | | | | | | | | | | | Border fill setup can be used to unset MDP pipes allocated for framebuffer replacing it with border color fill instead of contents fetched from memory. These pipes can then be used as overlays by userspace apps. Change-Id: I152dd07d867fb618cea7b72980f4bd75816e3034 Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
* | msm: mdss: cache panel setting in suspend stateKen Zhang2016-03-23
| | | | | | | | | | | | | | | | Save panel on/off setting in suspend status to be used when resume, return success as a temp workaround. Change-Id: I10a4136d987a8dee84b2d4750699bfef919c7911 Signed-off-by: Ken Zhang <kenz@codeaurora.org>
* | msm: mdss: power setting protectionKen Zhang2016-03-23
| | | | | | | | | | | | | | | | When mdss is in resume process, other operation needs wait until it is done. Change-Id: I93696bdb9a4b6ac88d88eeb32bfcede5e2f62c8e Signed-off-by: Ken Zhang <kenz@codeaurora.org>
* | msm: mdss: Clear performance request data at turning onKen Zhang2016-03-23
| | | | | | | | | | | | | | | | | | MDSS needs re-request bus and clock when resuming, clear the cached related data, as they do not reflect the hardware status. Change-Id: I4a4b7452f5f8d6fa586904b3badee5f6968110ea Signed-off-by: Ken Zhang <kenz@codeaurora.org>
* | msm: mdss: Non-blocking display commitKen Zhang2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | Schedule a workqueue, do the current job in the workqueue handler. Block the second entry if the first one has not finished Display commit ioctl will do what pan_display can do, addtionally has customized setting, such as non-blocking call Change-Id: Iccced7d7540c6a8bb066f58fa245bbff5ed36fcb Signed-off-by: Ken Zhang <kenz@codeaurora.org>
* | msm: mdss: sync point supportKen Zhang2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | MSMFB_BUFFER_SYNC ioctl is added for hwc to pass in buffer fence, driver creates release fence and return to hwc. Before display update, driver waits for the fence to be signaled. Signal the release fence after update is done. Change-Id: I3d8cd5e8df1f0415832507d19cf629f4c0432164 Signed-off-by: Ken Zhang <kenz@codeaurora.org> [cip@codeaurora.org: Change sync.h/sw_sync.h include location] Signed-off-by: Clarence Ip <cip@codeaurora.org>
* | msm: 8974: add MHL device discovery flagManoj Rao2016-03-23
| | | | | | | | | | | | | | | | | | | | This change stores a static flag for keeping MHL device discovery and makes the driver flexible to function in either one of the modes. It would be very simple to make this dynamically configurable through boot param or module param. Change-Id: If3915c5861e61bc572a9b4e239a6133e5e9a138b Signed-off-by: Manoj Rao <manojraj@codeaurora.org>
* | video: msm: Handle timed-out histogramCarl Vanderlip2016-03-23
| | | | | | | | | | | | | | | | | | | | | | When the histogram collection times out (usually caused by an underrun) the hardware does not trigger a histogram done interrupt. In fact, the histogram hardware returns to its idle state after the next frame starts to draw. Thus, in the case where histogram times out waiting, changing the software state to HIST_IDLE allows histogram collection to continue. Change-Id: Ideb431209067c7d7e5a2bb94a7352ad90dd46e50 Signed-off-by: Carl Vanderlip <carlv@codeaurora.org>
* | video: msm: Trigger no update notify on suspendCarl Vanderlip2016-03-23
| | | | | | | | | | | | | | | | | | Suspend is a special case in the update notify feature in that it is a known state of no upcoming updates. Cause those waiting for a "no update" notification to wake up. Change-Id: Ie415d6c8da36d9871ed1dffad095529a20ebdf88 Signed-off-by: Carl Vanderlip <carlv@codeaurora.org>
* | video: msm: Initialize Histogram LUTCarl Vanderlip2016-03-23
| | | | | | | | | | | | | | | | Initialize the Histogram LUT during MDP probe. This is required otherwise the first histogram LUT request shows a brief period of garbled colors. Change-Id: I60b3077883d0f57dfe3987d7b459477a43da09a5 Signed-off-by: Carl Vanderlip <carlv@codeaurora.org>
* | mhl: 8974: notify usb about non-mhl sink discoveryManoj Rao2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | On cable connect, USB driver triggers MHL's device discovery through an API. This device discovery should inform caller if the device is MHL or USB host mode connection since both hold ID line low. If SII 8334 Tx discovery routine returns a result of non-mhl then MHL driver should notify usb of this result else usb will not be able to proceed further with it's worker functions and state machine. Change-Id: Ie20e0dd517a191ed6df75050042bdcb0ebd01233 Signed-off-by: Manoj Rao <manojraj@codeaurora.org>
* | msm: 8974: MHL set 3V reg. for the 8334 hs switchManoj Rao2016-03-23
| | | | | | | | | | | | | | | | | | Allocate regulator from MHL driver for 3.3V which is required for the high speed switch to function and toggle between usb host mode and mhl mode Change-Id: I87a9db951ff004d0a10caa390723eefddfc0db5e Signed-off-by: Manoj Rao <manojraj@codeaurora.org>
* | msm: 8974: disable mhl device discManoj Rao2016-03-23
| | | | | | | | | | | | | | | | | | | | This discovery mechanism puts the device in complete sleep mode (D3) while leaving the device discovery disabled, and wakes up when USB driver calls the device discovery API from D3 mode by resetting the chip. Change-Id: I7db8dd86c54285a4903c582ae35f6c9d4329ec48 Signed-off-by: Manoj Rao <manojraj@codeaurora.org>
* | msm: 8974: Add intermediate power state for MHLManoj Rao2016-03-23
| | | | | | | | | | | | | | | | | | | | MHL has three power states, D3 - low power sleep, D0 - high power MHL state, D2 - intermediate stage which powers up the chip but doesn't activate the MHL/TMDS lines. Change-Id: I9282a32724e0ac4f7c23233f4bfba97f548d7ac9 Signed-off-by: Manoj Rao <manojraj@codeaurora.org>
* | msm: 8974: Set MHL Tx configuration to USB stateManoj Rao2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | All the ID lines, D+/D- lines are configured to USB by default in this change. All the USB interrutps will be routed directly to USB, which will trigger interrupts in the USB driver. All events on ID line are handled by USB, even in the presence of MHL, USB driver triggers the device detection mechanism through established APIs. Change-Id: I7e70965cf46dfa5734918b2e21db5a162c570706 Signed-off-by: Manoj Rao <manojraj@codeaurora.org>
* | msm: 8974: MHL-USB handshake API implementationManoj Rao2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change adds the implementation of mhl discovery detection procedure, USB hand-off function. Three APIs are exposed from MHL driver to USB driver: for register/unregistering callbacks from USB and triggering device discovery detection in MHL hardware. By default, all the USB interrupts are directed to the USB hardware which is detected by USB driver and at appropriate points the USB driver triggers the MHL device discovery and uses the results to either hand control to MHL driver or continue with it's own detection mechanism. Change-Id: Ic1e22bc4c446de209f2e72d5dda8b823bfd398c8 Signed-off-by: Manoj Rao <manojraj@codeaurora.org>
* | mdss: hdmi: Use delayed work instead of timer for HDCP reauthAravind Venkateswaran2016-03-23
| | | | | | | | | | | | | | | | | | | | Upon detecting HDCP authentication failures, reauthentication attempts should be kicked off after a small delay. Instead of using kernel timers, this is achieved by having the existing HDCP work item as a delayed work. Change-Id: I7d04b33b159c718cd347576d18cffd1b705bb790 Signed-off-by: Aravind Venkateswaran <aravindh@codeaurora.org>
* | mdss: hdmi: Correct HDMI Tx controller settings for DVI modeAravind Venkateswaran2016-03-23
| | | | | | | | | | | | | | | | | | When a connected sink is operating in DVI mode, the HDMI Tx controller should also be programmed accordingly to operate in DVI mode. Change-Id: I63176b55be86a0fe73b23880fc1d45f7a2272d32 Signed-off-by: Aravind Venkateswaran <aravindh@codeaurora.org>
* | msm: mdss: hdmi: Add support for new HDMI-Audio interfaceUjwal Patel2016-03-23
| | | | | | | | | | | | | | | | | | | | Using this new interface, HDMI-Audio codec driver can retrieve sink's audio capabilities. Based on this supported capabilities and current playback clip, it will pass appropriate audio setup information to HDMI driver for configuration. Change-Id: Ia52f72d955778859c381a5e6c94aba57e40d13b2 Signed-off-by: Ujwal Patel <ujwalp@codeaurora.org>
* | msm: mdss: change smp blocks allocation based on fetch widthAdrian Salido-Moreno2016-03-23
| | | | | | | | | | | | | | | | | | | | | | Currently the ammount of shared memory pool blocks allocated for fetching latency lines is based on the full stride of image. There are cases where only a small part of the image is fetched, smp blocks should be allocated to acommodate the fetched width only, and free some memory to be used by other surfaces. Change-Id: Idaa7fbc583a2c4a5166f9e05010a0ae2ff56747a Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
* | msm: mdss: update bus bw calculations to account for is_fg flagAdrian Salido-Moreno2016-03-23
| | | | | | | | | | | | | | | | | | | | | | Overlay flag is_fg is used to disabling fetching of buffers for a layer and all previous blending stages. Need to consider this as part of bus bandwidth calculations and only request bandwidth for layers that are going to be fetched by MDP. CRs-Fixed: 425643 Change-Id: Ie964f5e4ac77945ea6f84a47d337591ddfa1721c Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
* | msm: mdss: Fix porch value assignments based on VESA standardUjwal Patel2016-03-23
| | | | | | | | | | | | | | | | | | Panel driver's porch value representation is similar to VESA standard but framebuffer API's representation is different. Correct this conversion from one representation to other. Change-Id: I1fdc7e664de99a5ad646beef2e74f7066a00c2e0 Signed-off-by: Ujwal Patel <ujwalp@codeaurora.org>
* | msm: mdss: add timeout when waiting for vsyncAdrian Salido-Moreno2016-03-23
| | | | | | | | | | | | | | | | | | To avoid any possible freezes while waiting for vsync, add a timeout while waiting for vsync interrupt and report a visible warning. CRs-Fixed: 428821 Change-Id: I328ac05b98741fc77eb424c313a3b3afb3e206d2 Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
* | msm: mdss: remove wait for ping pong done for video interfacesAdrian Salido-Moreno2016-03-23
| | | | | | | | | | | | | | | | | | | | | | Wait for ping pong was used to ensure that hw is idle while programming any double buffered registers, however most registers that really are changing are double buffered. Remove for ping pong done as it's only causing frame drops and some freezes in some cases. CRs-Fixed: 428821, 426136 Change-Id: Iafebebab7faf0efcb1b3f6a8d2723d67a93d5cd9 Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
* | mdss: hdmi: Fix suspend/resume watchdog crash during HDMI mirroringUjwal Patel2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | During device suspend, HDMI driver holds MDSS suspend context until audio is turned off. Continuous polling for audio off results in unnecessary delay in MDSS suspend as well as watchdog crash. To fix this enable/disable MDSS GDSC regulator during HDMI hpd on/off. This will make HDMI independent of MDSS module in terms of register accesses. Also increase the sleep time between consecutive poll reads in order to prevent watchdog crash. CRs-Fixed: 425536 Change-Id: I7969f0ed8bcce4a356ee6a1e29ed2af76dd345ef Signed-off-by: Ujwal Patel <ujwalp@codeaurora.org>
* | mdss: HDMI: HDCP ImplementationAravind Venkateswaran2016-03-23
| | | | | | | | | | | | | | | | | | | | | | Implement HDCP (High-bandwidth Digital Content Protection) feature which is used to encrypt audiovisual content transmitted over the HDMI link. Change-Id: I6ab92585f979d796d1a40c0ff86d4e7363506b6a Signed-off-by: Aravind Venkateswaran <aravindh@codeaurora.org> [cip@codeaurora.org: Moved new file locations] Signed-off-by: Clarence Ip <cip@codeaurora.org>