android_kernel_google_msm/include/media/msm_vidc.h

50 lines
1.8 KiB
C
Raw Normal View History

msm: vidc: Add msm video core driver commit 72d9968a380b41386631d83bbca4f02fe87658c8 Author: Arun Menon <menon@codeaurora.org> Date: Wed Dec 26 22:09:02 2012 -0800 msm: vidc: rename functions in hfi layer to hardware specific The V4L2 video driver hfi layer would be supporting Venus hardware and Q6 firmware for video encode\decode. So renaming the functions specific to Venus and common functionality accordingly. Change-Id: Iaacf44bfe4fd5735fe5e82f335e01e8a314f6575 Signed-off-by: Arun Menon <menon@codeaurora.org> commit 2f39048f9e548d11134ae686549f92283e23d319 Author: Arun Menon <menon@codeaurora.org> Date: Wed Dec 26 15:43:01 2012 -0800 msm: vidc: move vidc resources inside hfi layer As a part of V4L2 video driver restructure, hardware specific resources such as ocmem, bus bw requests are moved inside hardware specific hfi layer. This is needed since same V4L2 video driver will be supporting video decode\encode on both venus and Q6 hardware. Change-Id: I35eef5051d07ba36f61eded3c58018fde28ca57d Signed-off-by: Arun Menon <menon@codeaurora.org> commit bf94306622a59f35d4e0079e5df4ee60cedafe0c Author: Arun Menon <menon@codeaurora.org> Date: Tue Dec 18 14:13:15 2012 -0800 msm: vidc: create common packetization module Venus and Q6 host firmware interface (hfi) share common packet interface. The hfi_packetization module will be used by both Q6 and Venus hfi layers to create packets. Change-Id: I74d89d8568315a8e21fa07179eeeb1d9132048e9 Signed-off-by: Arun Menon <menon@codeaurora.org> commit d9223b518a19e40e306523b42678e3d1518673be Author: Arun Menon <menon@codeaurora.org> Date: Mon Nov 5 13:56:04 2012 -0800 msm: vidc: Rename hal files to hfi The v4l2 video driver will be supporting multiple Host Firmware Interface (HFI) layers, so renaming generic file names to hfi specific ones. Change-Id: If96e23619fc28a03841e9e41470d1de86406ad2f Signed-off-by: Arun Menon <menon@codeaurora.org> commit ed7d1fa26f4ec8f263c63a926e6a5308ab4066bf Author: Praneeth Paladugu <ppaladug@codeaurora.org> Date: Fri Dec 14 16:22:08 2012 -0800 msm_vidc: Add support to log Firmware debug messages Driver need to configure the debug mode to Venus firmware. Venus firmware won't send any messages to driver without this setting. This change fixes the same. Change-Id: I24cac6054afc65b9672bb5b294d641053ddd87ea Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org> commit c66cd9a1ae4933b1585d381bfd44f36b9632deb6 Author: Vinay Kalia <vkalia@codeaurora.org> Date: Fri Dec 14 14:53:54 2012 -0800 msm_vidc: Notify subsystem framework of venus subsystem crashes The subsystem framework will use this information to do housekeeping work on the subsystem like taking ramdumps (if enabled) when the next subsystem_put() is called, etc. Change-Id: I5b76acde223e46c04b51a6b84950f4d59566c8c7 Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit 484fa46427fddc8f72758b90b7646317cf688e32 Author: Vinay Kalia <vkalia@codeaurora.org> Date: Fri Dec 14 15:17:00 2012 -0800 msm_vidc: Handle venus watchdog timeout Handle venus watchdog timeout by informing all clients about the error so that existing video sessions can be closed. Change-Id: I631e319c810d8114050b21038e2f9edbbaf7427e Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit ca878a968d466b432cfec23935bbeb10c9855d33 Author: Vinay Kalia <vkalia@codeaurora.org> Date: Fri Dec 14 13:57:54 2012 -0800 msm_vidc: Remove SSR related code Remove venus subsystem restart related code as this code is obsolete now after architecture changes in subsystem restart framework. Change-Id: I429f5d6ccf6d0a6f0d2513fb0e52c2ed0206e77d Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit 86aa0d6de817dbd4e9bd8a009621f297a7349aaf Author: Praneeth Paladugu <ppaladug@codeaurora.org> Date: Fri Dec 14 00:29:33 2012 -0800 msm_vidc: Add support to send EOS NAL If FW detectd End Of Sequence through NAL unit, it sets a flag in FBD message. Add support to process this flag and convey to userspace. Change-Id: I1224199b0a0db727278898e6d8ef2bb49f814d57 Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org> commit 1d498a8d96fd01691a1c05809feeb50cc881ec7e Author: Ashray Kulkarni <ashrayk@codeaurora.org> Date: Thu Oct 18 17:08:17 2012 -0700 msm_vidc: Update bus bandwidth request to support 4kx2k resolution when running 4kx2k videos, video driver was not requesting enough bus bandwidth, resulting in low performance. This change updates bus request for both encoder and decoder. Change-Id: Ic5458338443d777ce3b9a274677c10a62581e9a2 Signed-off-by: Ashray Kulkarni <ashrayk@codeaurora.org> commit 9c52fe1998e67983e548a384b2ce6cf620a53fe2 Author: Praneeth Paladugu <ppaladug@codeaurora.org> Date: Wed Dec 12 15:40:56 2012 -0800 msm_vidc: Add error check for clock scaling. Clock scaling uses timestamp to determine the current fps. Timestamp for some frames might be invalid and shouldn't be used to calculate the fps. Add a check to handle this case. Change-Id: I8c570b131d11b1d2644806714fe2a726ca155eb5 Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org> commit aed3021f83932b0bc50ff52e6bc0b088a58c4223 Author: Deva Ramasubramanian <dramasub@codeaurora.org> Date: Tue Dec 11 18:27:23 2012 -0800 msm: vidc: Numerator of timeperframe should be in seconds Currently we're treating the numerator of timeperframe as microseconds. This is contrary to the V4L2 spec, hence treat it in units of seconds. Change-Id: Id934e38c055fe8977557cd6ed464051330607439 Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org> commit d08430e2ffad551f7b99e591aab83c05060d278d Author: Deva Ramasubramanian <dramasub@codeaurora.org> Date: Tue Oct 23 15:23:38 2012 -0700 msm: vidc: Deprecate V4L2_CID_QCOM_VIDEO_SYNC_FRAME_SEQ_HDR Removing the vendor specific control V4L2_CID_QCOM_VIDEO_SYNC_FRAME_SEQ_HDR in favour of the more standard V4L2_CID_MPEG_VIDEO_HEADER_MODE. Change-Id: Iae2b357f23bbcd68af5b38fcbb08d97763dd1dc4 Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org> commit 05c648e741255b2f7138f801496412a2ef3ccccc Author: Deva Ramasubramanian <dramasub@codeaurora.org> Date: Wed Dec 5 18:03:25 2012 -0800 msm: vidc: add support for V4L2_CID_MPEG_VIDEO_HEADER_MODE Add support for V4L2_CID_MPEG_VIDEO_HEADER_MODE, which changes the interface by which userspace can request for the video header. Change-Id: I412316c5173d677b2797b6b30f91dc0ead596718 Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org> commit 5b624bbfabfafa36c443d9b36d5912979eeb753f Author: Deva Ramasubramanian <dramasub@codeaurora.org> Date: Mon Oct 22 19:09:10 2012 -0700 msm: vidc: Allow client to set only bitrate mode Add support for V4L2_CID_MPEG_VIDEO_BITRATE_MODE which is a standard V4L2 control. This precedes the custom QCOM specific control which only allows the client to set the bitrate and the framerate. Change-Id: Idb2bef8f5b10a2d72c0d02be628f67eb878826c7 Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org> commit 5084a757570b3ee5220442721d0bbff5787fe31f Author: Deva Ramasubramanian <dramasub@codeaurora.org> Date: Mon Oct 22 16:21:28 2012 -0700 msm: vidc: Add support for setting I-frame period Add support for the V4L2 standard control for setting I-frame period. Thus far, we've only had support for setting the IDR-frame period. Change-Id: I877ec596d9056dd24384718bcb397bc5b8e6eede Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org> commit 2c2836fb7572d2d5eeaf622fddb4f44734d2d860 Author: Deva Ramasubramanian <dramasub@codeaurora.org> Date: Mon Nov 5 18:39:43 2012 -0800 msm: vidc: Group controls into clusters Organize related controls into clusters. This commit does away with hacks to store values of related controls in static structures which inhibit concurrency use cases. CRs-Fixed: 414261 Change-Id: I7347a8c10b57be22be34d88b0a1a7bca5ce8b8a1 Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org> commit d7cd510da3eff4645227144c2d33fcda074443f3 Author: Praneeth Paladugu <ppaladug@codeaurora.org> Date: Tue Oct 30 19:20:54 2012 -0700 msm: vidc: Add support for decoder dynamic clock scaling Add support for dynamic clock scaling by calculating the decoding fps. Fps is calculated using input timestamps. CRs-fixed: 405399 Change-Id: I0f09d902a3d44a9b93540ed652f872baf8ef8264 Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org> Signed-off-by: Ashray Kulkarni <ashrayk@codeaurora.org> Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit 37529ad4569b2ab42d5b5690b6b286da58491b3b Author: Vinay Kalia <vkalia@codeaurora.org> Date: Fri Dec 7 15:20:23 2012 -0800 msm: vidc: Fallback to IOMMU heap Video buffer allocation falls back to IOMMU heap if MM heap runs out of memory. This helps reduce MM carveout size while supporting higher resolution encoding/decoding. CRs-fixed: 420585 Change-Id: I3b71a722cbff3bcac32fdd3d74908685870d51ad Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit d9db1c618b1804eab402129878d710cd70a0f5c8 Author: Vinay Kalia <vkalia@codeaurora.org> Date: Thu Dec 6 16:44:33 2012 -0800 msm: vidc: Print buffer address in hex Print buffer address in hex for readability. Change-Id: I8c747701b5a6f8c1669ad31537721954af135594 Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit eea3cc694bfd3af1ba2643585a06736397543157 Author: Vinay Kalia <vkalia@codeaurora.org> Date: Wed Dec 5 17:38:36 2012 -0800 msm: vidc: Driver cleanup on receiving SYS error SYS errors reported by firmware are handled properly and reported to client. On receiving SYS error client tries to close the driver. Cleanup in such scenarios was not proper. This change fixes that. CRs-fixed: 420316 Change-Id: Ied7303bc2ecf4def6241dc7a37eceb1265417c2e Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit d8e3de6042849eab31df3d6ee4486dcb356eda3f Author: Praneeth Paladugu <ppaladug@codeaurora.org> Date: Fri Nov 16 17:31:30 2012 -0800 msm: vidc: Add error check before calling release buffers to FW Release buffers can be called in any FW state. If release buffers called in non-release reources state, the FW might use them whereas the driver will unmap them causing IOMMU page fault. Change-Id: I21e7ac3e696594c0a802bd6066ef7a9a3ab9f12b Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org> commit cc8192a0ace8ddd5bd44adca3347ff98296309a1 Author: Praneeth Paladugu <ppaladug@codeaurora.org> Date: Wed Nov 28 17:08:27 2012 -0800 msm: vidc: Fix NULL pointer exception The error check to validate the device open failure has an issue where it is checking the wrong variable. This lead to NULL pointer access. This change fixes the same. CRs-Fixed: 417092 Change-Id: I635fc43b19a368c2477ab41c9d6d28ec9dc8524e Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org> commit 949c2524f9c8d3cf9dd9cf558c0a2cfd2dd2789f Author: Ashray Kulkarni <ashrayk@codeaurora.org> Date: Thu Nov 8 18:33:18 2012 -0800 msm_vidc: Fix race condition during buffer release Firmware accessed buffers when driver was freeing them. To avoid this race condition, firmware now acknowledges release buffer command. Driver will wait for this response before releasing the buffers. CRs-fixed: 417952 Change-Id: I1d28103fb4aa8ef55b3d3665a7202284887ae6f6 Signed-off-by: Ashray Kulkarni <ashrayk@codeaurora.org> commit 25731c7b1b5a36284729821c0f906392f000a4d6 Author: Vinay Kalia <vkalia@codeaurora.org> Date: Wed Nov 28 12:36:01 2012 -0800 msm: vidc: Vote for DDR BW before FW download Vote for DDR bandwidth before downloading video firmware so that as soon as hardware is brought out of reset it is able to access firmware. Not doing this might result in IOMMU page faults on starting video playback or recording. Change-Id: I91ecdcdc4c57765f848f75ae6f476cee46a16829 Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit 7765f8331fe55363c35f3a28592bea064db6fbb1 Author: Vinay Kalia <vkalia@codeaurora.org> Date: Wed Nov 28 12:58:26 2012 -0800 msm: vidc: Align secure buffer mappings to 1MB Secure buffer mappings should be aligned to 1MB for the mappings to succeed. This change takes care of that. Change-Id: I963df71271b9b24191ac94203d36a25fec90cdbf Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit 4e4922b4c17353c60b5b89fb4ed32d81b9868dd1 Author: Praneeth Paladugu <ppaladug@codeaurora.org> Date: Tue Nov 27 12:17:11 2012 -0800 msm: vidc: update driver for firmware interface changes This change updates the driver with the new FW interface changes. FW modified various packet structures. So the changes have made to update the driver accordingly. The changes are backward compatible so these work with old FW as well. Change-Id: I6b34eb1282c74b2ac4a5dd7fc4b4435b9517070b Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org> commit bdcbe380dd07e711a20dbbc6da79768a8f2a6cbf Author: Vinay Kalia <vkalia@codeaurora.org> Date: Mon Nov 26 21:01:52 2012 -0800 msm: vidc: Unvote for bus BW after unloading FW Driver should unvote for bus bandwidth after all transactions are completed. Unvoting after unloading firmware makes sure there are no outstanding transactions. Without this change, stability of video playback might be impacted when video is played back to back. CRs-fixed: 419402 Change-Id: I821f941183fc24ba65d6f17b3f39354e0d77b4bf Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit 60802d92c6c96dd57c9b2d988dc3334e731c83fe Author: Deva Ramasubramanian <dramasub@codeaurora.org> Date: Wed Nov 21 14:53:35 2012 -0800 msm: vidc: Use proper msm_vidc_core when handling SYS_ERROR When handling SYS_ERROR use device_id to determine the core rather than find the core via the instance (contained with in session_id). The firmware does not respond with the proper session_id in cases of SYS_ERROR. When handling SESSION_ERROR pass through the session_id returned by the firmware, so that the instance can be cleaned up properly. Change-Id: Ic38feb0878579403a1c8e108f18d46bea2891795 CRs-Fixed: 419792 Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org> commit af26b337d6d092106c2fa099b2ed1a8cd3cf43af Author: Vinay Kalia <vkalia@codeaurora.org> Date: Mon Nov 12 11:50:49 2012 -0800 msm: vidc: Add control to enable extradata Add control to enable extradata. Client can use this control to enable a particular extradata for gathering additional information about the associated buffer. Change-Id: Ib39c614997cd43bee68fccac00d623ddd8caaf9b Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit 110e12cc3807af1401986147e6b8371c0c38518e Author: Praneeth Paladugu <ppaladug@codeaurora.org> Date: Mon Nov 5 12:24:57 2012 -0800 msm: vidc: Add change in error check for FW buffer requirements FW buffer requirements for some buffers can be zero. Driver treat them as an error and returing bad buffer requirement which are actually valid.Add a fix to process the FW buffer requirement correctly. Change-Id: I7116fe5a03be77d10b1ecab737f0f3504377f80f Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org> commit b0c1a9ae734a67a45e519bd67c5a1e7d9cbbea46 Author: Praneeth Paladugu <ppaladug@codeaurora.org> Date: Fri Nov 9 15:44:03 2012 -0800 msm: vidc: Add fix to update capture port buffer size If the resolution changed and no port reconfig, the V4L2 framework and driver have different capture port buffer sizes. Due to this mismatch the buffer is rejected by V4L2 framework.Add fix to update the buffer size. Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org> Change-Id: Ib2ed5684aa10d13a614a3e213afb449d1c3dee8c commit 6c03c29dbb9e70d172674c33391daff210710db9 Author: Vinay Kalia <vkalia@codeaurora.org> Date: Tue Nov 13 13:35:25 2012 -0800 msm: vidc: Fix a bug in state transition Fix a bug in state transition in driver. Without this fix some of the buffers were not released on firmware in following scenario: 1. Video device is openend. 2. Buffers are allocated. 3. Video device is closed. This change fixes this issue. CRs-fixed: 419927 Change-Id: I5f27b047971bcf1fb85e45a8c9d9938e177a4de5 Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit 6472cd488fe6f5d59b442745700f0f88f4318a35 Author: Vinay Kalia <vkalia@codeaurora.org> Date: Thu Sep 6 14:12:34 2012 -0700 msm: vidc: Changes for secure video playback Changes required to protect and unprotect buffer memory for secure video playback. Change-Id: Ia918e35142852b9cb51275972692914d4b78bfb9 Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit d4497883dad4e34d0755cb7585db1088c2fb969e Author: Ashray Kulkarni <ashrayk@codeaurora.org> Date: Mon Nov 12 17:57:31 2012 -0800 msm_vidc: venc: update input buffer count for firmware Setting max buffer count to firmware and later querying the buffer requirements after setting resolution and other properties will result in firmware returning max buffer count. To avoid allocating extra buffers, this change sets firmware with the max buffer count requested by client and firmware. Change-Id: I3d5e800ea3cdea4064d4e9d8453eb4d925c77f8c Signed-off-by: Ashray Kulkarni <ashrayk@codeaurora.org> commit 0eaa2266918bb65a89d2a7df0ebb20aebf76c590 Author: Ashray Kulkarni <ashrayk@codeaurora.org> Date: Fri Nov 2 11:57:55 2012 -0700 msm_vidc: update driver for firmware interface changes This change updates the driver to the new firmware requirements. Since, FW interface has changed significantly so pre-existing driver code does not work with this firmware. This change is a must for driver to work with new firmware. After this change, old FW will not work with this driver. Change-Id: I2f8408dd46909f7f527252410655c6fa919c465a Signed-off-by: Ashray Kulkarni <ashrayk@codeaurora.org> Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit 3823bbcf8132561b8da5a76d33d5bd2d143b3d82 Author: Ashray Kulkarni <ashrayk@codeaurora.org> Date: Thu Oct 25 15:36:22 2012 -0700 msm_vidc: Update firmware of input buffer count for video encoder If video firmware is not aware of input buffer count, and driver queues more buffers than firmware is aware of, this results in firmware crash. This change updates firmware of updated input buffer count. CRs-fixed: 411057 Change-Id: I5713a300636071db80f532029cf81c3b88db0789 Signed-off-by: Ashray Kulkarni <ashrayk@codeaurora.org> commit 9e2d8826d1b6c7c7a7ccfd8da908af68a5a808aa Author: Vinay Kalia <vkalia@codeaurora.org> Date: Wed Nov 7 16:23:05 2012 -0800 msm: vidc: Fix a bug in free_irq Free irq should not be called with NULL but instead it should be called with hal_device. Change-Id: Ic45fbec37ab1c3d3ec877a0f89c7e1c7a1834f59 Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit c4e0e5de4869c0bc3c91fddb0657c93bc997b324 Author: Vinay Kalia <vkalia@codeaurora.org> Date: Tue Nov 6 15:50:10 2012 -0800 msm: vidc: Remove SSR init/uninit calls SSR architecture has changed so driver does not need to call ssr init/uninit anymore. Changes need to be made according to new architecture. Removing the old code. Change-Id: I5a4334a4da604a78775864a310f2a12378a8de83 Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit 57860a865d0f91e0c40645c7d8dc0e2b9143936e Author: Praneeth Paladugu <ppaladug@codeaurora.org> Date: Thu Nov 1 11:52:28 2012 -0700 msm: vidc: Add support to process FW errors Adds support to process system and session errors received by FW and communicate them to client. Change-Id: Iddcb8f0b8a459cf7185e56121ffcbd6a3532e365 Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org> commit 36f8d36a1fd675741df5e76e030c6bfc09bc6d17 Author: Ashray Kulkarni <ashrayk@codeaurora.org> Date: Thu Oct 18 17:01:06 2012 -0700 msm_vidc: update vbif setting for video hardware Update vbif registers to improve encode and decoder performance on 8974. Change-Id: I297968273c6acd8d753c310a34f24fa978a6e5f2 Signed-off-by: Ashray Kulkarni <ashrayk@codeaurora.org> commit ff9c23f98a888f7acfe4416f9fd166e876e8d490 Author: Vinay Kalia <vkalia@codeaurora.org> Date: Fri Oct 26 13:09:10 2012 -0700 msm: vidc: Fix iommu detach and pil_put order IOMMU detach should be called before subsystem_put. This change takes care of it. Change-Id: Iece3f548a152a443705223725763cb8ef6e37b80 Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit 72f479db62c0cec8080183d2171bd1967ba2598b Author: Praneeth Paladugu <ppaladug@codeaurora.org> Date: Wed Oct 31 15:30:25 2012 -0700 msm: vidc: Remove SSR trigger for SYS error Firmware is incorrectly sending the SYS error for nonfatal error cases. This is causing the SSR trigger for invalid scenarios hence removing this trigger until it is fixed in firmware. Change-Id: If98a1b07d071a8c903fe2c6addf01747745c0ae5 Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org> commit 71b7ba92ed4d143bf1ff3e6a38ab362a56e8775f Author: Praneeth Paladugu <ppaladug@codeaurora.org> Date: Tue Oct 30 15:41:02 2012 -0700 msm: vidc: Add support to process resources request from HW Add support to process resources request from HW based on smooth streaming flag.The client is updated with the updated resource request. Change-Id: Id95321f6894a903c23d25ee33835bcd1efb36d29 Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org> commit c1a7261dcaed73a2023ed4f43df12a13cc77991d Author: Stephen Boyd <sboyd@codeaurora.org> Date: Thu Jul 5 14:07:35 2012 -0700 msm: ramdump: Add parent link to miscdevice Set the parent of the miscdevice created in create_ramdump_device() to be the platform device for each processor. This allows us to easily locate ramdump devices for a particular processor. Change-Id: I7241e57231ad3f6a60d799be094d2b7a7fc40a3d Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> commit 77db8bb9741de2d09f52947a7f6dff89110f3f99 Author: Stephen Boyd <sboyd@codeaurora.org> Date: Wed Jun 27 15:15:16 2012 -0700 treewide: Replace pil_get()/put() with subsystem_get()/put() Do a tree wide sed to replace pil_get and pil_put() with their subsystem counterpart. With all the pil drivers migrated over to the new subsystem start/stop API this is essentially a no-op. We rename "q6" to "adsp" to be more in line with how future chipsets name the low power audio subsystem. This requires minor changes to userspace; hopefully no more changes will be necessary. Change-Id: I22dbbdcf7f5aaaa80394a6d70b5cfc24cdb32044 Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> commit 6c51b6e489752a0f92e9e446625c79504028ec44 Author: Vinay Kalia <vkalia@codeaurora.org> Date: Mon Oct 15 15:18:04 2012 -0700 msm: vidc: Add header file for sharing media info Create a common header file which can be used across mulitmedia subsystems for sharing static information between them. One such requirement is to share information related to video color formats. This common header file avoids duplication of same calculations across different drivers and userspace. Change-Id: I4cb70c6b2461cc4dfcabcf147f0f314c5cf6a8bd Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit 9cb13cccc47d197987f750ad3096aa0dcf583d64 Author: Vinay Kalia <vkalia@codeaurora.org> Date: Mon Oct 29 12:58:57 2012 -0700 msm: vdec: Handle no-extradata case for video. Firmware or client may request for no extradata. In such scenarios we have to ignore the extradata and let the session go ahead without extradata as extradata is not required. CRs-fixed: 415351 Change-Id: I2b58303172552a0e1aa78e71e5b91e2d80d084e9 Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit 1f0c265bb1da311601f2c1d20baca4506450d1aa Author: Praneeth Paladugu <ppaladug@codeaurora.org> Date: Mon Oct 22 15:47:52 2012 -0700 msm: vidc: Add support for dynamic clock scaling Adds support for dynamic clock scaling by calculating the number of mbs based on the frame rate set by client. Change-Id: Ie680bfc4ad536636a1e5793f15efbda1c73e5af8 Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org> commit 4e303609cf8dc5c340e47224df37f54cf37b90a0 Author: Ashray Kulkarni <ashrayk@codeaurora.org> Date: Mon Oct 1 18:56:34 2012 -0700 msm_vidc: venc: Release encoder buffers Video encoder session cleanup was not done completely, this change allows cleaning up of the scratch buffers and ensures firmware releases output buffers before driver frees them. Change-Id: I08e825376c81311c4235bbf7d6dd81de969bee73 Signed-off-by: Ashray Kulkarni <ashrayk@codeaurora.org> Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit 74932576309bf985c3b985f2e88912ff90f8ecaa Author: Vinay Kalia <vkalia@codeaurora.org> Date: Wed Oct 24 18:54:13 2012 -0700 msm: vidc: Fix iommu unmap and iommu detach order Free any outstanding memory allocations and unmap IOMMU before IOMMU is detached. Change-Id: Id750db5be260cfdb07e4db013635f94bd120a755 Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit a2692a1946b0365c6c335315ced32c9ef4f4d201 Author: Vinay Kalia <vkalia@codeaurora.org> Date: Thu Oct 18 19:23:29 2012 -0700 msm: vidc: Add logs to indicate video open/close Add logs to indicate when video is openend and when it is closed. This helps a lot in debugging complex issues where multiple instances of video are running concurrently. Change-Id: I043b248a6bf90bd9b328527782b3a406f6b7f577 Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit 131aaac36440b3a68bfd252c16adf85b55566f9b Author: Praneeth Paladugu <ppaladug@codeaurora.org> Date: Tue Oct 16 17:30:22 2012 -0700 msm: vidc: Add support for thumbnail mode Add support for thumbnail mode decode. This reduces the memory requirements from HW. Change-Id: I7f54cc618759b366389e748527b051524fb2c20b Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org> commit e0368f062d399970940f1d16264f1874ac0a392a Author: Deva Ramasubramanian <dramasub@codeaurora.org> Date: Wed Oct 17 16:41:14 2012 -0700 msm: vidc: Change V4L2_CID_MPEG_VIDC_VIDEO_REQUEST_IFRAME to button type V4L2_CID_MPEG_VIDC_VIDEO_REQUEST_IFRAME should not be a boolean type as subsequent requests for I-frames will be dropped by the V4L2 control framework as a duplicate s_ctrl. Change-Id: I27b30d8626488dcf7164a4709551d817d607a8d7 Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org> commit 1efc291329375462538440baca9c47fcfad1aae2 Author: Vinay Kalia <vkalia@codeaurora.org> Date: Wed Jul 25 19:52:17 2012 -0700 msm: vidc: Add extradata support Uncompressed buffers can have extradata associated with them. This extradata contains information about the uncompressed buffer, eg: interleaving information, macroblock error information etc. With this change extradata buffers can be exchanged between firmware and client. If the number of planes in a v4l2 buffer are more than one, then the last plane is considered as the plane containing extradata information. Change-Id: I4659d5a5749b0c1f4e32e17ccd5aecfbc4600f62 Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit ed8ad3cee7f2a51f1b33cd22f8c391b1ff036727 Author: Ashray Kulkarni <ashrayk@codeaurora.org> Date: Tue Oct 23 16:17:50 2012 -0700 msm_vidc: update performance calculations in video driver Performance calculation were not accurate, resulting in incorrect fps reported by driver. Updated the calculations to reflect correct numbers. Change-Id: I74813aa902332cb2fc088f353e3d1e47e223791d Signed-off-by: Ashray Kulkarni <ashrayk@codeaurora.org> commit cd2c13431063c20104ee1a07a60280b57f1d2623 Author: Praneeth Paladugu <ppaladug@codeaurora.org> Date: Thu Aug 23 11:59:09 2012 -0700 msm: vidc: Add support to process HW Error Add support to process Watchdog timeout and sys error with SSR framework and reporting event bck to userspace. Change-Id: Ie12a15044dd01cb0ceab82d4f29d612db2955b8d Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org> commit 9df72b18a3fed5b0752812978a4713631d5eaed3 Author: Ashray Kulkarni <ashrayk@codeaurora.org> Date: Tue Oct 16 15:57:04 2012 -0700 msm_vidc: update bus bandwidth selection for video driver. Incorrect bus bandwidth was selected for video encoder or decoder, resulting in performance being lower than expected. This change picks the correct value when requesting bus bandwidth. Change-Id: I76d8bc4e77430337e26aa394e6a3c1d0e5c8b79b CRs-Fixed: 406619 Signed-off-by: Ashray Kulkarni <ashrayk@codeaurora.org> commit 39f7889bd4d53480867cedd726aaabba4858ef9d Author: Deva Ramasubramanian <dramasub@codeaurora.org> Date: Tue Oct 16 16:36:25 2012 -0700 msm: vidc: On session_end_done only free current session context Currently, the msm_vidc driver is freeing the contexts of all the active sessions, causing hanging pointers and general memory corruption. We should only be closing the context of the session that is ending. Change-Id: Ie7bbd5a5b31f79a3ed80bca84b4ec0cc7e6bb013 CRs-Fixed: 407718 Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org> commit ae3e91a67f5d8e4a6aae55a9f7a0d9aad6b71215 Author: Ashray Kulkarni <ashrayk@codeaurora.org> Date: Fri Oct 12 17:37:37 2012 -0700 msm_vidc: mask extra interrupts from video hardware. video driver was registering to receive all interrupts from video hardware, so video hardware raised multiple interrupts when processing a frame. This change masks interrupts which do not convey video information, thereby reducing the number of times video hardware interrupts the host. Change-Id: I861cad7cc217241bb804b808796863f566aedf6c Signed-off-by: Ashray Kulkarni <ashrayk@codeaurora.org> commit 000b382c1ee984de63c1b63b8b88c01ed04282bd Author: Ashray Kulkarni <ashrayk@codeaurora.org> Date: Thu Oct 11 18:20:58 2012 -0700 msm_vidc: reduce excess logging in video playback. Excess video driver logs sometimes causes system to crash/freeze UI. This change reduces the logs printed during session and fix incomplete messages. CRs-fixed: 408825 Change-Id: I1da2f077e2254a813655792805d9bd26b1d63495 Signed-off-by: Ashray Kulkarni <ashrayk@codeaurora.org> commit cde7852e58e7e6d55edca090d63a3b371e7336a8 Author: Ashray Kulkarni <ashrayk@codeaurora.org> Date: Thu Jun 28 18:14:50 2012 -0700 msm_vidc: enable firmware debug logs from video driver Firmware messages don't get printed to console. This change enables firmware debug messages and prints them as part of video driver kernel messages. Change-Id: Ie59a11ee127bbdf87e9ee1983ab52720aa427d27 Signed-off-by: Ashray Kulkarni <ashrayk@codeaurora.org> commit ee1973ba0ea6c63ca781fd6a233411212df3c934 Author: Ashray Kulkarni <ashrayk@codeaurora.org> Date: Wed Sep 26 18:24:34 2012 -0700 msm_vidc: Enable performance metrics calculations in video driver Add support for measure video core response time for command/data calls issued from driver Change-Id: I2d08cb65b2ef8cf2f977ae13870956413bd8e5fa Signed-off-by: Ashray Kulkarni <ashrayk@codeaurora.org> commit 45648a4a5199e3fb2c8f9aca9e8c003d477c8aaa Author: Ashray Kulkarni <ashrayk@codeaurora.org> Date: Wed Oct 10 18:58:54 2012 -0700 msm_vidc: venc: set resolution on firmware in set_format call. Resolution information was saved in driver and set to firmware once before encoding starts, in one use case this lead to corruption. This change configures the firmware to update the resolution everytime client updates resolution. CRs-fixed: 408761 Change-Id: I6b43d59c7e44b2e4f48d1fda061f006dc0faca55 Signed-off-by: Ashray Kulkarni <ashrayk@codeaurora.org> commit 6a8803fded6d41363efac47314efeb3f142248bc Author: Ashray Kulkarni <ashrayk@codeaurora.org> Date: Tue Oct 9 18:41:49 2012 -0700 msm_vidc: venc: set slice size to firmware. Slice size information was not propogated to firmware resulting in slice size = 0 for all slice enabled encodings. This change configures proper size to firmware. Change-Id: Ie87ac63791e3473aab98a7186364befbb2156128 Signed-off-by: Ashray Kulkarni <ashrayk@codeaurora.org> commit 1586fee7cb9f25516a4290a45a42b9568b9ebee2 Author: Ashray Kulkarni <ashrayk@codeaurora.org> Date: Thu Oct 4 16:21:36 2012 -0700 msm_vidc: venc: set correct count for input buffers. Input buffer count was not set properly for video encoder driver resulting in failure to start encoder session. This changes configures the encoder to pick maximum of the configured buffer count and updated buffer count. Change-Id: Ifc25eb930be758bf690d697638255a312b2f39c6 Signed-off-by: Ashray Kulkarni <ashrayk@codeaurora.org> commit acff683704e6c952b6c8007f14f2f477db24118e Author: Ashray Kulkarni <ashrayk@codeaurora.org> Date: Thu Sep 27 18:06:01 2012 -0700 msm_vidc: change logging mechanism in video driver video driver was logged all messages below given level, this change allows selective logging, and enables error and warning messages. Change-Id: Idf19bf9f4aa3d729506a32a5e781af7c7d6aa8ad Signed-off-by: Ashray Kulkarni <ashrayk@codeaurora.org> commit 9105d4246637072b7cc9fe4a30cedf7889101324 Author: Praneeth Paladugu <ppaladug@codeaurora.org> Date: Thu Oct 4 18:11:24 2012 -0700 msm: vidc: Adds fix to set the correct MPEG4 profile Fixes a mismatch of profile values between HW and vidc driver. Change-Id: Id82ab02445fa3f35e4dec5a1553fbecde6b307f7 Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org> commit 99686cafd940a4734b527117a13a9100e6c24a68 Author: Vinay Kalia <vkalia@codeaurora.org> Date: Thu Oct 4 10:14:21 2012 -0700 msm: vidc: Clear pending buffer queue on flush If flush is called before streamon but after queuing the buffers then driver needs to return back the queued buffers. This change takes care of that scenario. Change-Id: Icab901ee0016c8033d113bc049cc1abbe01ed9e9 Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit 76b9b4d881b32c13356c736a07b2ee363d5ddd9b Author: Mitchel Humpherys <mitchelh@codeaurora.org> Date: Mon Sep 17 14:33:22 2012 -0700 ion: remove obsolete ion flags The symbols CACHED and UNCACHED have been replaced by ION_FLAG_CACHED upstream. This removes them from the kernel. Change-Id: I565dcc4595298ce6a0e81dd8cb98b86a1b38fdb2 Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org> commit 911b4b702a63fbd241863966cad45909e40e4665 Author: Mitchel Humpherys <mitchelh@codeaurora.org> Date: Wed Sep 12 14:42:50 2012 -0700 ion: change ion kernel map function to not take flags argument Buffer flags are going to be specified at allocation time rather than map time. This removes the flags argument from the ion kernel map function. Change-Id: I91589ca7b1ab142bb5ac8e6b0f4c06fa1305f23a Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org> commit 7d72bad55a0e03392d81eee77a9a8c9df6b73a9a Author: Hanumant Singh <hanumant@codeaurora.org> Date: Wed Aug 29 18:39:44 2012 -0700 ion: Port heap mask change to ion Heap mask field passes as argument at allocation time to specify ion heap. Change-Id: I8881dfc491dc0f8f70581ad97b35756a6a33dd6d Signed-off-by: Hanumant Singh <hanumant@codeaurora.org> Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org> commit 227a6582d86ae918d290c208f30246b3756084fb Author: Mitchel Humpherys <mitchelh@codeaurora.org> Date: Tue Sep 11 15:59:11 2012 -0700 ion: change ion buffer flags This syncs up our ion buffer flags in ion.h with upstream (using ION_FLAG_CACHED instead of CACHED and UNCACHED). Change-Id: I0bca35210da403098a12747ddadb51fa399f8758 Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org> commit a67f6464ffbeccb97cc5c27cc704881bc8324e42 Author: Vinay Kalia <vkalia@codeaurora.org> Date: Wed Sep 19 22:02:49 2012 -0700 msm: vidc: Protect queued buffers list with lock Queued buffers list can be accessed across different threads so it should be protected with a lock. Without proper locking the lists might get corrupted resulting in frame drops and crash eventually. CRs-fixed: 400702 Change-Id: Ie316b6744db342203e23a83bf6194983ea5eecca Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit cc2bb4d2164217b82fd0e36a84b1a8f309005ea9 Author: Vinay Kalia <vkalia@codeaurora.org> Date: Mon Sep 24 16:17:45 2012 -0700 msm: vidc: Fix release buffers to prevent mem leak Fix a bug in release buffers and clean up code to reuse already existing functionality. Without this fix release buffers was failing which might result in memory leak. Change-Id: Iedaa19657b69883dd0c66654ada8f0e5bf2ec03f Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit 2e542e4409b7a351dbfbe53d2256c3511cb63579 Author: Vinay Kalia <vkalia@codeaurora.org> Date: Mon Sep 24 14:28:19 2012 -0700 msm: vidc: Unmap iommu in non-atomic context ion_unmap_iommu should not be called in atomic context. This change removes spinlocks around this call. spinlock is needed to protect the addition and deletion into the queues and it is not required while unmapping/freeing memory. Change-Id: I8a35f8d9c18302ce4761eda25f4238b66e948430 Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit 8c5f34fb8a5c98a827f0c70839cee3c2bfaf1d28 Author: Ashray Kulkarni <ashrayk@codeaurora.org> Date: Fri Sep 14 17:13:38 2012 -0700 msm: vidc: Configure codecconfig param on video core When firmware sends syncframe, codecconfig is also sent along, this is default behavior. This means codecconfig is being sent multiple times resulting in parsing errors in container. This change configures firmware to not send the codecconfig data with syncframe. CRs-fixed: 396716 Change-Id: If89aee60a16e422217ac9a7e7415d6448a068966 Signed-off-by: Ashray Kulkarni <ashrayk@codeaurora.org> Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit bddb1ebee894aa085db755bfd889b798f74e37c6 Author: Vinay Kalia <vkalia@codeaurora.org> Date: Mon Sep 24 18:01:57 2012 -0700 msm: vidc: Fix IOMMU pagefault for long clips Shared command/message queues are circular, so if they get full driver has to write/read into them from the beginning. The address used to write/read from beginning was not the kernel virtual address causing IOMMU page fault. CRs-fixed: 400747 Change-Id: Ie414f75370c31c8a4fb1bf7c879d1d0f4d5c7ea0 Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit 86449e6b5f9a803c730ef3988d67378b3d57c86e Author: Ashray Kulkarni <ashrayk@codeaurora.org> Date: Wed Sep 19 15:24:33 2012 -0700 msm_vidc: venc: Change default fps for Video encoder. V4L2 framework will not pass the fps information to firmware if new fps = current fps. This resulted as incorrect rate control setting to firmware. This change fixes the issue. CRs-fixed: 396793 Change-Id: I69b66c2d06330cc00857a612f1f4e1f28a2eb2ec Signed-off-by: Ashray Kulkarni <ashrayk@codeaurora.org> commit 00dd73ca7b3b8a0083596354dfe0295694399fd0 Author: Praneeth Paladugu <ppaladug@codeaurora.org> Date: Wed Sep 5 23:13:14 2012 -0700 msm: vidc: Adds support to release buffers Adds support to release internal,scratch and output buffers at the end of the video playback and return them to userspace. Change-Id: Iffd2a09146f4129a97a9566432be8ddde9442308 Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org> commit 106f5182c1344abff687477a7feabb231f7856ab Author: Deva Ramasubramanian <dramasub@codeaurora.org> Date: Fri Jul 6 15:08:22 2012 -0700 msm: vidc: Add msm_vidc_wait as a poll interface for kernel clients Add a new interface msm_vidc_wait that is similar to msm_vidc_poll in functionality, except intended for kernel-space clients. Change-Id: Ia08f228f9865dcb8c92ba8fc04692e4b0184daea Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org> commit 7d12f84196c9f2f29f7ca92759502fe407bebe30 Author: Deva Ramasubramanian <dramasub@codeaurora.org> Date: Tue Jul 3 15:10:49 2012 -0700 msm: vidc: Expose additional vidc interfaces Add additional interfaces to msm_vidc so that kernel clients may use them. To enable this, msm_vidc_open() interface has been modified such that internal structs do not need to be exposed. Furthermore, some functions such as (un)subscribe_event() have been moved from the v4l2 layer to the vidc layer. Change-Id: If29154b8f542835e6c4ebf0be4c654474038c1ec Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org> commit 2e2c63936972bbb4f004e2499485e2c67e62293f Author: Praneeth Paladugu <ppaladug@codeaurora.org> Date: Sun Aug 12 01:43:14 2012 -0700 msm: vidc: Adds support for VC-1 MP and SP support Adds support for VC-1 Main and Simple profile decoders by adding VC-1 decoder entry in vdec formats struct. Change-Id: I7b2bbaee6b84e7198f825a80aeb7c52a6271a9a5 Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org> commit ff92804047a2e3f7d75f7fc661779a93f9bc2c24 Author: Vinay Kalia <vkalia@codeaurora.org> Date: Fri Sep 14 18:33:45 2012 -0700 msm: vidc: Reduce video core clock for encoding After performance and power analysis, video core clock should be reduced to 133MHz for 1080p@30fps load. With this clock setting, camcorder end to end performance is not impacted. Change-Id: Iee0fa9ce20181935faceb7b833b1aa510bbc6976 Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit b717b9d6825305d55b3aff75545afbd283ee0714 Author: Vinay Kalia <vkalia@codeaurora.org> Date: Fri Sep 14 12:00:45 2012 -0700 msm: vidc: Camcorder performance enhancement Set VBIF priority register to achieve 1080p @ 30fps camcorder performance. This register setting has been recommended after performance testing. Change-Id: I5feb128b0ff460f3638edb6ca644efbfb3b03283 Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit 071b9bef721194780cea699b31cdff7d19921052 Author: Mitchel Humpherys <mitchelh@codeaurora.org> Date: Thu Sep 6 10:45:28 2012 -0700 msm: vidc: include msm-specific ion header All msm_ion clients need to use <linux/msm_ion.h> instead of <linux/ion.h> Change-Id: Ie44e862e13d0929b6ef6e73a74a7bb19a5c6319e Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org> commit 4e042b585af2a84e5dec89aba56219dfcdebbec5 Author: Vinay Kalia <vkalia@codeaurora.org> Date: Wed Sep 12 13:41:39 2012 -0700 msm: vidc: Remove HAL_MSG_* macros Video driver no longer uses HAL_MSG_* macros for debug messages. Instead dprintk is uses. Removing these macros as they are deprecated. Change-Id: Id3949b28c1fcd85803c061768e59da79218171f0 Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit aaeffd29ab225cd12f30c9dbd581b015ffaf2cab Author: Vinay Kalia <vkalia@codeaurora.org> Date: Tue Sep 11 17:19:55 2012 -0700 msm: vidc: Reduce OCMEM bandwidth request. Reduce bandwidth request for OCMEM as same performance is achieved at lower bandwidth numbers. Change-Id: I2e1f1560681f86316ecccb08a9daabf46b70cf3e Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit e76323d5edd85dc16a21c1ebee2044f370292f14 Author: Vinay Kalia <vkalia@codeaurora.org> Date: Mon Sep 10 18:03:48 2012 -0700 msm: vidc: Remove spinlock around ocmem_free Spinlock around OCMEM free is not needed. This is already being protected by a mutex. Change-Id: I9fa370047433812a6b267e24fb4a71ab5443ad58 Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit 934e81ed00866b905a5e6a8ce53fd45699173dea Author: Praneeth Paladugu <ppaladug@codeaurora.org> Date: Mon Sep 10 16:56:45 2012 -0700 msm_vidc: Fix bus bw request for lower resolutions Fix bus bw request for lower resolution and send proper device address to firmware while releasing buffers. With this change clips less than VGA resolution should work. Change-Id: I96f3ef4185f1ba88931f92a859c3fd92d6e13b63 Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org> Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit 15e870b358cbe8f9e75209448ef6a92f8e4793b3 Author: Vinay Kalia <vkalia@codeaurora.org> Date: Mon Sep 10 15:30:23 2012 -0700 msm: vidc: Encoder performance tuning. Set VBIF registers and clock changes to improve encoder performance. This is required to achieve 1080p 30fps encoding. Change-Id: Iacb66e70a3988ca114b23ff002aa46d0fbadeb54 Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit b673450004ebe1e44748c1f414900b114d745cb1 Author: Ashray Kulkarni <ashrayk@codeaurora.org> Date: Fri Aug 24 13:00:22 2012 -0700 msm_vidc: Changes to enable Camcorder - Add get_seq_hdr support in driver - send KEYFRMAE flag with first frame data Change-Id: I57c9097f3f54e63bb8e46629aed987cee054c816 Signed-off-by: Ashray Kulkarni <ashrayk@codeaurora.org> commit f1a7cffbda1049a005ca7c028bfd305fc95f6760 Author: Blaine Dietrich <blained@codeaurora.org> Date: Mon Jul 23 12:14:18 2012 -0700 msm: vidc: Enable/disbale debug messages Adds support to enable/disable debug messages from debugfs so that messages only upto a desired priority can be enabled. By default, only error messages are enabled. Change-Id: Id133c3f109d227862d1fa580f3b5df4cbbc37e11 Signed-off-by: Blaine Dietrich <blained@codeaurora.org> Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org> commit 7ceb94edc3f97df463b6e1c3e9062760fb7f9ad2 Author: Vinay Kalia <vkalia@codeaurora.org> Date: Wed May 23 20:19:54 2012 -0700 msm: vidc: Add debug support for video driver Add debugfs and other debug support for video codec driver. This creates a debugfs entry on device for video and basic information about video playback and encoding can be obtained from the debugfs files. Change-Id: Id4d3d7f6e38bb4993587621ecb8e5dc6bbeb00fd Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit 4cd435dd3e4d0157c8d8a692ea66a39d826c3351 Author: Vinay Kalia <vkalia@codeaurora.org> Date: Thu Aug 23 12:59:24 2012 -0700 msm: vidc: Add flush for video codecs Add support to flush input/output buffers. This will flush the buffers being held by firmware or video driver and return them to client. This operation is usually used by an application during seek operation or while closing the driver. Change-Id: I61d3d8f94eeeeeea0e4c40460bebfd7873f428df Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit 9f2303869d0d81b8e09a27e8c3fb2e5057d25dbb Author: Deva Ramasubramanian <dramasub@codeaurora.org> Date: Fri Aug 24 11:48:41 2012 -0700 msm: vidc: Pass on the CODECCONFIG flag to core In case of SPS/PPS buffers in frame by frame mode, the respective buffers must be marked with the CODECCONFIG flag. Change-Id: Iba29fc03ec736280f2babefc68d3380e856e3006 Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org> Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit be3d0f7d01f715a642b87f602a2b97f9da6d23f5 Author: Vinay Kalia <vkalia@codeaurora.org> Date: Wed Aug 29 21:10:53 2012 -0700 msm: vidc: Reduce calls to get buffer requirements Reduce calls to firmware to get buffer requirements. This call is very expensive causing too much delay in video startup. Only calling this when necessary. Change-Id: I01f59b5402e82a79742f257d39cda1c9504e6dd0 Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit d40bd3f22bec010057a7f26d43f0c8f84edd79fa Author: Vinay Kalia <vkalia@codeaurora.org> Date: Fri Aug 31 13:22:32 2012 -0700 msm: vidc: Tune input buffer count for performance With just two input buffers, video hardware stays idle quite often waiting for data. With the new input buffer count venus idle time is reduced and improved performance is observed. Change-Id: Ia44e106e4c8cf46ebcae9c89054508337c23a6cb Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit cdf8d0cf7bb1e8313d2e5f949ef00b59ef797553 Author: Vinay Kalia <vkalia@codeaurora.org> Date: Tue Aug 28 12:07:36 2012 -0700 msm: vidc: Video performance tuning. Setting vbif registers as per the performance analysis to achieve better video performance. Change-Id: Id12ebb93ea3bea6e599b40bebf16b0cab16a2bdf Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit a31f9e6ba2087844b3c124aa961463fc99ec95ab Author: Vinay Kalia <vkalia@codeaurora.org> Date: Mon Aug 20 22:49:18 2012 -0700 msm: vidc: Fix clock and bus scaling Fix bus and clock scaling requests by video encoder and decoder. Updated bus bandwidth numbers after performance analysis. Change-Id: I17a6e857679e88afb88a0b31e9e1a0f4da3d995d Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit 20d2801618a3ec248fa0188f9494a91f0e29f4d5 Author: Deva Ramasubramanian <dramasub@codeaurora.org> Date: Thu Aug 23 14:07:10 2012 -0700 msm: vidc: Always map into IOMMU as uncached If buffers provided by userspace are cached, mapping into IOMMU with the same flags results in a failiure as cached IOMMU mappings are not supported. As a result, map all buffers as uncached. Change-Id: I483eab817b330e4aa7e232b30db2ae0d56730d8b Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org> Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit 39a8e71631e6658e0909df3573b44694b0df0c96 Author: Deva Ramasubramanian <dramasub@codeaurora.org> Date: Fri Aug 17 16:39:51 2012 -0700 msm: vidc: Return timestamps correctly back to the client Propagate the timestamp client provides on the OUTPUT port to the CAPTURE port. Additionally, use kernel provided functions to convert the timeval struct to a 64 bit value rather than requiring the clients to set the timestamp within the tv_usec field. Change-Id: I19b8b953c837199019d7370f8bf3afec88a0d00d Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org> Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit cd111c7a4710f08ea28e4cdb17d6e6e088d38d60 Author: Ashray Kulkarni <ashrayk@codeaurora.org> Date: Thu Aug 16 22:39:02 2012 -0700 vidc: fix NV12 buffer size calculation in encoder and decoder. Buffer size calculation in driver and firmware is different. This results in inconsistent behaviour for different resolutions. This change calculates buffer size as in firmware. Change-Id: I9dca9e0e8729eb4e578de63dc43c01dd65c3f3be Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org> Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit 3dbe9997ba80f8fcd7e90a91c8dc8154a991ff07 Author: Ashray Kulkarni <ashrayk@codeaurora.org> Date: Mon Aug 20 12:22:57 2012 -0700 msm_vidc: Fix setting queue size to firmware. Incorrect queue size was being set to firmware. This patch fixes the issue. Change-Id: Ic0ab9384d364f70cf06c352331887dfcdf6592c4 Signed-off-by: Ashray Kulkarni <ashrayk@codeaurora.org> Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit 3475a6e57c17051ffe2180f02f38957e36a912c0 Author: Deva Ramasubramanian <dramasub@codeaurora.org> Date: Fri Aug 10 21:34:03 2012 -0700 msm: vidc: Honor client's request for more buffers The driver should allow the client's request for more buffers than the minimum rather than enforcing just the minimum required by Venus. Change-Id: I8c10372b1ffef55d0e73b824b13ad80de2446f23 Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org> commit 564814bd20e01d1d49a105df00604ab90b418179 Author: Vinay Kalia <vkalia@codeaurora.org> Date: Mon Aug 20 11:09:57 2012 -0700 msm: vidc: Fix for IOMMU mapping. Same memory region was being mapped multiple times. This fix avoids this scenario and makes sure that that we map proper size and single fd is mapped and unmapped one time only. Change-Id: Ibba932456792d5964213fe93db2c6101ad94b74c Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit e38c55f7034c140d6bdd57bc7016107e3746e72f Author: Vinay Kalia <vkalia@codeaurora.org> Date: Thu Aug 16 19:37:28 2012 -0700 msm: vidc: Add support for cached ion allocation Add support to allocate ion memory from cached or uncached region in video driver. Also, Clean and invalidate caches for input, output, shared command memory and internal buffers incase they are allocated from cached region. Change-Id: Id1ac9587bfef8d2d0e2a3d3d30f30e39de10665e Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit 8383c095459de560e644c7fa1f96dd8dcc025983 Author: Ashray Kulkarni <ashrayk@codeaurora.org> Date: Thu Aug 16 22:30:09 2012 -0700 vidc: Disable venus VBIF dynamic clock gating for video core. Video core behaviour was inconsistent for different resolutions. This was due to dynamic clock gating for venus VBIF was enabled. Disable Venus VBIF clock gating to prevent this inconsistent behaviour. Change-Id: Id7efd4b7f922efcb77c729f1dc119b1549cb8d74 Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org> Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit cbad85b92cfe6e487c1da0c723f3e94206690a0c Author: Ashray Kulkarni <ashrayk@codeaurora.org> Date: Fri Aug 17 14:38:53 2012 -0700 vidc: Use correct port setting for encoder during prepare buffer. When prepare buffer was called for encoder, the port configurations were swapped. This change corrects this error. Change-Id: I927cf66666dd02e0f4abbdc9d7be561a857ab2b0 Signed-off-by: Ashray Kulkarni <ashrayk@codeaurora.org> commit c71662f18efbbd44270df8c81571c73ea98a980a Author: Vinay Kalia <vkalia@codeaurora.org> Date: Thu Aug 16 17:49:28 2012 -0700 msm: vidc: Separate partition for shared memory Create separate partition for shared command queues. Virtual device addresses for shared command queues need to be from upper 16MB region of mon-secure virtual device address space. This change creates a partition to ensure this. Change-Id: Iba22daf93b7d08c70f43685de7182a2f235a7690 Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit 443e6348f76663fd0d590c3fe446ec3fda838854 Author: Praneeth Paladugu <ppaladug@codeaurora.org> Date: Mon Jul 30 00:48:07 2012 -0700 msm: vidc: Adds support for Rate Control Adds support for Rate Control by setting correct RC Mode and bit rate. Change-Id: I0307417f3a517e0aa40f67c5d4835db3ef4ea444 Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org> commit e541526f3b35b02b25831c14cbc4f43baf6310df Author: Praneeth Paladugu <ppaladug@codeaurora.org> Date: Wed Aug 1 16:21:08 2012 -0700 msm: vidc: Adds support to send new command - Adds supports to send DECODER command to decoder which inturn used to CLOSE the instance. - Adds supports to send ENCODER command to encoder which inturn used to CLOSE the instance. Change-Id: Ia6037fdf66824538124f775442150b7a4ed201b8 Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org> commit cd9383f390ebce77c88cd6acb1345fee5b0a497b Author: Praneeth Paladugu <ppaladug@codeaurora.org> Date: Thu Aug 2 15:58:26 2012 -0700 msm: vidc: Adds support to send frame rate to Video Hardware Adds support to send frame rate to Video HW in right format. Change-Id: Ifba83310cb88e6ec898266f9d24bb157ae63aad6 Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org> commit d075233da173e5ea1e64f7558d3b3fc8f8a74e4a Author: Praneeth Paladugu <ppaladug@codeaurora.org> Date: Fri Jul 6 11:14:21 2012 -0700 msm: vidc: Adds error check for controls - Adds Error check before calling control to make sure that Venus is in right state. - Adds supports to calculate right scratch buffer length. Change-Id: I83043a87859d7bb31c683e3ad19a4a23fb519747 Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org> commit d39507a2afd46a2caa4460699a72d0ee1287c687 Author: Vinay Kalia <vkalia@codeaurora.org> Date: Mon Jul 30 17:31:37 2012 -0700 msm: vidc: Allocate persist buffers. Persist buffers are needed by decoder/encoder in some cases. These buffers are mandatory and cannot be ignored. This change allocates persist buffers according to the requirement by video device to avoid hangs. Change-Id: I961bb1abe45dba1cbc770edef2277f33ea186546 Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit c2a557ca7c83963156770f6e4212619969c29714 Author: Vinay Kalia <vkalia@codeaurora.org> Date: Fri Aug 3 11:39:47 2012 -0700 msm: vidc: Fix scratch buffer allocation. In some cases, firmware is reqesting driver to allocate one scratch with size zero, eg: if height and width is set to zero on firmware. This change handles this scenario appropriately to avoid kernel panic. Change-Id: If670f91ef600678af8e246934f685defcb7fdfeb Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit 12d8eefc7bcdb1dc4f65b0943e8ea1f1e8b9ea31 Author: Vinay Kalia <vkalia@codeaurora.org> Date: Fri Aug 3 17:45:53 2012 -0700 msm: vidc: Set proper height and width. Set proper height and width on firmware. Proper height, width was not getting set on firmware resulting in firmware reporting bad buffer requirements which caused hang or crash during port reconfig. Change-Id: I4097e0219a1df423fdd0ec9421800635525cf8c4 Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit b17f8aa08ff5d4c7acff0dd3f07019f1755be7b6 Author: Deva Ramasubramanian <dramasub@codeaurora.org> Date: Mon Jul 30 17:16:32 2012 -0700 msm: vidc: Specify the number of planes in buffer to client When a V4L2 client sets or gets the format, driver is supposed to report back the dimensions, the size of the buffer, and the number of planes contained with in the buffer. The former two were being reported back to the client, while the latter wasn't. Change-Id: Ie225e108ce90cc40823ee9c0f13aeb7d054f5bdb Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org> commit bc9f60a99f7d6130e6d8028e340a421072498d3f Author: Vinay Kalia <vkalia@codeaurora.org> Date: Tue Jul 17 01:23:42 2012 -0700 msm: vidc: Uses on-chip memory for video codecs Video driver allocates on-chip memory (OCMEM) and hands it over to the video hardware for internal usage. Video encode/decode performance improves with OCMEM. Change-Id: Ic6e35278db24cedc003aa33d5e3cef52172e2254 Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit cb722d6f8f9a27cd9d579bc8821692b6b03beefc Author: Vinay Kalia <vkalia@codeaurora.org> Date: Thu Jun 28 19:35:22 2012 -0700 msm: vidc: Adds bus scaling for video codecs Adds bus scaling so that the bus bandwidth can be voted for according to load. This optimizes power consumption during video encode and decode operation. Change-Id: I4b7123e9ae2e429ffe9bf4636d633284768e1b33 Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit 6a8d04ce4f9fa9b7ea96a7009120c9bcee295627 Author: Vinay Kalia <vkalia@codeaurora.org> Date: Tue Jul 17 19:23:05 2012 -0700 msm: vidc: Change configuration flag for video. Change kernel configuration flag for video on 8974 so that it does not interfere with video drivers on other chipsets. Change-Id: I74fa8f0ed7be713893b9e280bb9b77606bc5c786 Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit 94b221b88d8274f1d04839e52ad3b09fc5aa5fe1 Author: Vinay Kalia <vkalia@codeaurora.org> Date: Mon Jun 25 18:50:13 2012 -0700 msm: vidc: Adds clock scaling Video driver manages clock rate according to the increase in load on video core. Clock is scaled as per number of macroblocks decoded/encoded per second. This makes sure that the power consumption and performance is optimal. Change-Id: If8aede0e3048cdc9bcdf14ce0c239a58bdd5d263 Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit 0ebb19b6f630f7ee2338504b37db278b617d2a5e Author: Deva Ramasubramanian <dramasub@codeaurora.org> Date: Fri Jun 22 01:32:37 2012 -0700 msm: vidc: Add controls specific to H263 Userspace requires controls to set profile and level values. Hence expose V4L2_CID_MPEG_VIDC_VIDEO_H263_PROFILE and V4L2_CID_MPEG_VIDC_VIDEO_H263_LEVEL. Change-Id: Id2b5d4ade8dda1a32b11820936532300b18c37ac Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org> Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit 68398a4f0e87aa7285ccf55d1e087f15c32aedca Author: Vinay Kalia <vkalia@codeaurora.org> Date: Fri Jun 22 18:36:12 2012 -0700 msm: vidc: Download firmware using PIL. Video driver uses PIL and IOMMU to download video firmware.Video firmware is downloaded during the start of video session using PIL apis. Change-Id: If285e9b6df57ecdfa379fa82b9eef542e6aa9bba Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit 9c4d9599ad8d57a4fa860c52ac892441a5e605bc Author: Praneeth Paladugu <ppaladug@codeaurora.org> Date: Sat Jul 14 01:27:35 2012 -0700 msm: vidc: Adds support for high bit rate and frame rate Increased the maximum value for controls V4L2_CID_MPEG_VIDEO_BITRATE and V4L2_CID_MPEG_VIDC_VIDEO_FRAME_RATE thus by increasing maximum supported frame rate and bit rate. Change-Id: I6330d178d12652683cce793b7544572594b5dabf Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org> commit 951c02de0409e5e56ce2cfe0c06989e2aec1814a Author: Praneeth Paladugu <ppaladug@codeaurora.org> Date: Wed Jul 11 12:19:42 2012 -0700 msm: vidc: Adds support for dynamic I frame request. Adds support for dynamic Intra frame request by setting correct command packet size to video hardware. Change-Id: Id851345176bfececae87927fcd61cc9e3f028828 Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org> commit c5041daa75ffab4ce8cffb222298bd958fec5ffe Author: Praneeth Paladugu <ppaladug@codeaurora.org> Date: Wed Jul 18 15:44:57 2012 -0700 msm: vidc: Adds support for high bit rate decode Adds support for high bit rate decoding by increasing the input buffer size to hold large input frame data. Change-Id: I06f8bebddf879104761956bd982c44d854edca2b Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org> commit a46f06badbe9da62bb64790d45c34293b3831a00 Author: Praneeth Paladugu <ppaladug@codeaurora.org> Date: Fri Jul 6 12:23:48 2012 -0700 msm: vidc: Adds support for VP8 Encoder. Adds support for VP8 video encoder by adding VP8 entry in venc formats struct. Change-Id: Icb9fbc049aadd226c7f803ad938d1d76cbb760f4 Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org> commit 40c3ae806210f2e4576e8fa44fb871124a8fbcc7 Author: Vinay Kalia <vkalia@codeaurora.org> Date: Mon Jul 9 15:23:02 2012 -0700 msm: vidc: Fixes back-to-back video decode/encode. Fixes a bug introduced in recent commit because of which only one video session worked. Next video session always failed when client tries to open the video device. The commit ID caused the issue is fe72c45cf670cb0fafb04a6a2fa6a1aa428435c6 Change-Id: Ib0cbe7cac5189cf617e8b3bcfc549e022e88fd46 Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit 1e8ddaef241c09ab7684fd6dea4a7952c3d57e42 Author: Praneeth Paladugu <ppaladug@codeaurora.org> Date: Fri Jul 6 12:13:06 2012 -0700 msm: vidc: Adds support for VP8 Decoder. Adds support for VP8 Decoder by adding VP8 codec entry in vdec formats struct. Change-Id: I93bca63e18ae2ba2a125e76584d230c0af1cc33a Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org> commit df7532d69948f453d66f59d0303fe116e3ad8919 Author: Vinay Kalia <vkalia@codeaurora.org> Date: Mon Jul 9 11:21:16 2012 -0700 msm: vidc: Migration to new firmware version. Adds support for the new firmware version by incorporating the interface changes between driver and video firmware. These changes make the driver compatible to new firmware version. FW_VERSION: 100100 Change-Id: I04e9457ac8a85a070f2e4c738ad3e4fc9cbfbaeb Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit 1b03554c22ee7d6a90f1a281072dbb73ee831535 Author: Praneeth Paladugu <ppaladug@codeaurora.org> Date: Fri Jul 6 11:02:38 2012 -0700 msm: vidc: Adds support to send individual controls. Adds support to set individual properties to Venus by calling controls separately. Change-Id: I4af3176ee009f202e62d566de3ce859b6a8d36c2 Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org> commit b040a018b5ec2f054e58b6a3b2806c161fd9d22a Author: Praneeth Paladugu <ppaladug@codeaurora.org> Date: Fri Jul 6 11:29:15 2012 -0700 msm: vidc: Adds support for Intra Refresh Adds Support for Intra refresh by setting default values and calling right set_property. Change-Id: Ibc04ec195b5265a1db60befb8109693a41f8fe51 Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org> Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit d8c98c33c58f5f78e7fb60a678fac69b33424dc0 Author: Vinay Kalia <vkalia@codeaurora.org> Date: Fri Jun 15 18:32:52 2012 -0700 msm: vidc: Fixes polling on video driver. poll should return all the available events in one call. This change implements this behavior. Change-Id: I498b621cc5d8fca820376109ca4a5f1bd4c492b2 Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit 2bf4fb12fdfbfe5552039c6d9d272fdd0c95937c Author: Deva Ramasubramanian <dramasub@codeaurora.org> Date: Wed Jun 27 20:42:33 2012 -0700 msm: vidc: Amend buffer size calculation Amend the input and output buffer calculation to reflect what the Venus core expects. Change-Id: Ib3c600d0e838525e3a82a1b2c05803f86075ba15 Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org> commit 98dfb65a7644809b8868809262a8fbf4937aa915 Author: Praneeth Paladugu <ppaladug@codeaurora.org> Date: Fri Jul 6 08:19:37 2012 -0700 msm: vidc: Adds support to parse SEQ_CHANGED cmd payload Adds support to parse the payload of command evt_seq_changed to know about resource request. Change-Id: I483954b0453a84be26e3d180f4f18bef042ab409 Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org> commit 3a323802585b92a821aa79e368611d7c0cb407b3 Author: Deva Ramasubramanian <dramasub@codeaurora.org> Date: Fri Jun 15 15:15:42 2012 -0700 msm: vidc: Add input buffer flushing support Flushing the core is now done with the V4L2_DEC_QCOM_CMD_FLUSH ioctl rather than V4L2_DEC_CMD_STOP. The latter is confusing and the arguments specified by the V4L2 spec do not allow for flushing the input and and output buffers seperately. Change-Id: I53e18e06c4e09ee8496bdcc337b4798f22911708 Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org> commit 1fc82a278c42f755e65dc909baf2326a3a6e142e Author: Praneeth Paladugu <ppaladug@codeaurora.org> Date: Fri Jul 6 11:38:51 2012 -0700 msm: vidc: Adds Profile and Level support Adds support for Profile and Level support by setting default values and calling set_property. Change-Id: Ied289779bca6441c5cfdde7c766c02c14c8bce23 Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org> commit e29238b519a7c3b210ceab89029baf0498f6328d Author: Praneeth Paladugu <ppaladug@codeaurora.org> Date: Fri Jul 6 12:04:17 2012 -0700 msm: vidc: Adds support for VC-1 decoder Adds support for VC-1 decoder by adding the VC-1 Decoder entry in vdec formats struct. Change-Id: I4a5a278a93c252f4e3a16eb004d06d72dba6e491 Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org> commit b361d7772dffe94636c53ea0da113cfc6637fab7 Author: Praneeth Paladugu <ppaladug@codeaurora.org> Date: Thu Jul 5 23:26:55 2012 -0700 msm: vidc: Adds new event type Adds new event type to convey about the resources requirement. Change-Id: I7ea67231c247dc983463a02b828c10adc486b60d Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org> commit b14ed96f74b1258b1f102831a2b0ccd56f991132 Author: Laura Abbott <lauraa@codeaurora.org> Date: Mon Jan 30 14:18:08 2012 -0800 gpu: ion: Pull in patches for 3.4 Pull in Ion patches for 3.4 upgrade. Inclues the following patches from google: commit 7191e9ba2508ca6f1eaab251cf3f0a2318eebe26 Author: Rebecca Schultz Zavin <rebecca@android.com> Date: Mon Jan 30 14:18:08 2012 -0800 ion: Switch map/unmap dma api to sg_tables Switch these api's from scatterlists to sg_tables Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com> commit 6f9e56945d4ee3a2621968caa72b135cb07e49c4 Author: Rebecca Schultz Zavin <rebecca@android.com> Date: Tue Jan 31 09:40:30 2012 -0800 ion: Add reserve function to ion Rather than requiring each platform call memblock_remove or reserve from the board file, add this to ion Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com> commit 9ae7e01de1cf03c77054da44d135a7e85863fcb0 Author: KyongHo Cho <pullip.cho@samsung.com> Date: Wed Sep 7 11:27:07 2011 +0900 gpu: ion: several bugfixes and enhancements of ION 1. Verifying if the size of memory allocation in ion_alloc() is aligned by PAGE_SIZE at least. If it is not, this change makes the size to be aligned by PAGE_SIZE. 2. Unmaps all mappings to the kernel and DMA address spaces when destroying ion_buffer in ion_buffer_destroy(). This prevents leaks in those virtual address spaces. 3. Makes the return value of ion_alloc() to be explicit Linux error code when it fails to allocate a buffer. 4. Makes ion_alloc() implementation simpler. Removes 'goto' statement and relavant call to ion_buffer_put(). 5. Checks if the task is valid before calling put_task_struct() due to failure on creating a ion client in ion_client_create(). 6. Returns error when buffer allocation requested by userspace is failed. Signed-off-by: KyongHo Cho <pullip.cho@samsung.com> commit 043a61468f395dd6d4fc518299726955e9999c59 Author: Rebecca Schultz Zavin <rebecca@android.com> Date: Wed Feb 1 11:09:46 2012 -0800 ion: Switch ion to use dma-buf Ion now uses dma-buf file descriptors to share buffers with userspace. Ion becomes a dma-buf exporter and any driver that can import dma-bufs can now import ion file descriptors. Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com> commit 0d1259b5f84969bd00811ff9faa1c44cdb9fdbb5 Author: Rebecca Schultz Zavin <rebecca@android.com> Date: Mon Apr 30 16:45:38 2012 -0700 gpu: ion: Use alloc_pages instead of vmalloc from the system heap With this change the ion_system_heap will only use kernel address space when the memory is mapped into the kernel (rare case). Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com> commit be4a1ee79a89da3ca705aecc2ac92cbeedd032bd Author: Rebecca Schultz Zavin <rebecca@android.com> Date: Thu Apr 26 20:44:10 2012 -0700 gpu: ion: support begin/end and kmap/kunmap dma_buf ops These ops were added in the 3.4 kernel. This patch adds support for them to ion. Previous ion_map/unmap_kernel api is also retained in addition to this new api. Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com> commit 46d71337f9aa84694e4e6cca7f3beb6b033bbf76 Author: Rebecca Schultz Zavin <rebecca@android.com> Date: Mon May 7 16:06:32 2012 -0700 gpu: ion: Allocate the sg_table at creation time rather than dynamically Rather than calling map_dma on the allocations dynamically, this patch switches to creating the sg_table at the time the buffer is created. This is necessary because in future updates the sg_table will be used for cache maintenance. Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com> commit 903f6c716db3d4e26952aae9717f81dd5bc9e4ba Author: Rebecca Schultz Zavin <rebecca@android.com> Date: Wed May 23 12:55:55 2012 -0700 gpu: ion: Get an sg_table from an ion handle This patch adds an interface to return and sg_table given a valid ion handle. Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com> The commit also includes fixups needed for MSM specific code. Change-Id: Idbcfa9d6af0febf06f56daaa6beaa59cc08e4351 Signed-off-by: Laura Abbott <lauraa@codeaurora.org> commit 995fd27825c1bb27f0bfa76d4a887dc00cd0f1eb Author: Ashray Kulkarni <ashrayk@codeaurora.org> Date: Mon Jul 2 12:57:55 2012 -0700 msm_vidc: Fix decoder output order. Decoder's output order was configured incorrectly, this change fixes it. Change-Id: I523260db33f1df5ffb7c30026683b272c9a05488 Signed-off-by: Ashray Kulkarni <ashrayk@codeaurora.org> commit 90ced6e40066e6ed681b78d1689ef9b8e552f0ab Author: Abhimanyu Kapur <abhimany@codeaurora.org> Date: Tue Jun 26 17:41:25 2012 -0700 msm: 8974: rename copper to 8974 The official name for copper is MSM8974. Switch to it. Change-Id: Ifb241232111139912477bf7b5f2e9cf5d38d0f9e Signed-off-by: Abhimanyu Kapur <abhimany@codeaurora.org> commit fe72c45cf670cb0fafb04a6a2fa6a1aa428435c6 Author: Ashray Kulkarni <ashrayk@codeaurora.org> Date: Tue May 29 19:52:00 2012 -0700 vidc_hal: update driver to new hal interface. Update video driver to maintain video functionality with new hardware interface. Change-Id: I731133ffc4b3633d0c2b55846d983846dfe6930f Signed-off-by: Ashray Kulkarni <ashrayk@codeaurora.org> commit cf7e27f92a99cdc422d67f6d328c0b910d2bbf9d Author: Vinay Kalia <vkalia@codeaurora.org> Date: Thu Jun 14 19:05:15 2012 -0700 msm: vidc: Video driver update to kernel 3.4. During the migration from kernel 3.0 to 3.4, V4L2 framework changed. This requires changes from video driver. This change makes video driver code compatible with kernel 3.4. Change-Id: I12fb28e4b7c261c9755fbb62bb6bb8ea299d5272 Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit 1c72b395348a0d4944e4f05e2979c80e7f8d8c52 Author: Ashray Kulkarni <ashrayk@codeaurora.org> Date: Wed Jun 20 10:50:00 2012 -0700 msm: video: Fix compiler warnings changed array definitions, #defines and variable repetition to resolve warnings in compilation. Change-Id: Ic26f1924da389f4a8638728963c6a4c8b2f859d0 Signed-off-by: Jessica Gonzalez <jgaona@codeaurora.org> commit 240368102e7f6f23ed70835c97bb4e43effb78cc Author: Praneeth Paladugu <ppaladug@codeaurora.org> Date: Thu Jun 14 00:26:25 2012 -0700 msm: media: Adds error check in memory alloc function Adds Error check for Zero size. Change-Id: Ib450c1c8b34436b6a5d1fdc3c14dbb52c9b3f177 Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org> commit a1980a18e0e6f868485b232af83efb58f2b3f004 Author: Deva Ramasubramanian <dramasub@codeaurora.org> Date: Thu May 31 12:31:10 2012 -0700 msm: vidc: Add support for DIVX 4/5/6 Add support to the driver to properly configure the Venus core for various DIVX formats. Change-Id: Ica6411936a09edfc3aa4ca321c781ff22948742a Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org> commit c249b751531d3ca2f5506d083720571cb07fc453 Author: Deva Ramasubramanian <dramasub@codeaurora.org> Date: Fri May 18 17:31:03 2012 -0700 msm: vidc: Add DIVX311 support Implement changes in the driver to support decoding of Divx311 bitstreams Change-Id: Ie4e05c9161d89b866f9f36ca1865a9b64bc51240 Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org> commit e6a37af67ac6f2f9eef441e57d13914b4682e1ef Author: Vinay Kalia <vkalia@codeaurora.org> Date: Wed May 16 16:47:54 2012 -0700 msm: vidc: Removes extradata allocation. Reverting extradata allocation added earlier in 3766b1e6b4dea7dea0abed1e9090390640a12909 because extradata allocation is causing a hang in firmware. Change-Id: I18854cf19757a01794522da75f066bf1ff5e0aa0 Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> commit bff3d1085ec9aeb7942fe76ea3520741061eb1cc Author: Ashray Kulkarni <ashrayk@codeaurora.org> Date: Mon May 21 14:50:27 2012 -0700 media: msm_vidc: change encoder output size Change encoder buffer size from fixed to resolution based, so high resolution input can be encoded Change-Id: I572c8c82a649ae11abe1319bb13d24838d6fcfd1 Signed-off-by: Ashray Kulkarni <ashrayk@codeaurora.org> commit cb00cab7f826f54338303bbb8f02ce72cfa05030 Author: Ashray Kulkarni <ashrayk@codeaurora.org> Date: Mon May 21 14:22:55 2012 -0700 media: msm_vidc: extradata buffer cleanup. move extradata buffer cleanup to the end of decoder session to enable back to back decoding Change-Id: Ib4183c73d083efc26442d42e33dc9e2d476ecc13 Signed-off-by: Ashray Kulkarni <ashrayk@codeaurora.org> commit f2acb8593e9b17c69a4c33dd280ecd7edee3dbea Author: Praneeth Paladugu <ppaladug@codeaurora.org> Date: Mon May 7 17:44:53 2012 -0700 msm: vidc: Adds support for port reconfiguration. Adds support for port reconfiguration. This enables decoder to reconfigure to new resolution or settings other than initially configured to continue video playback. Change-Id: Id11e973e4cf1a5c7e4ec5544215fe57cb19466be Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org> commit 5b79a3252710683b406c03ab21a808e852cb2962 Author: Praneeth Paladugu <ppaladug@codeaurora.org> Date: Wed Apr 18 15:16:29 2012 -0700 msm: vidc: Adds support for conveying events. Adds support for conveying events to userspace from kernel driver. This is needed to let userspace/client know of any error or other event of importance. Change-Id: Ife450b9f5dfe23f07b6f346c8e27c214fc85e083 Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org> commit a6b8db6c28d6db6409bba8397b28f4b89dfb74ac Author: Ashray Kulkarni <ashrayk@codeaurora.org> Date: Fri Apr 20 15:20:29 2012 -0700 msm: msm_vidc: enable msm_vidc driver compilation on 8x74. Enables compilation of v4l2 based video driver for 8x74.V4L2 clients can use video driver to encode and decode video using hardware accelerated codecs. Change-Id: If615930ddf72023b2a626af6cca87ebf56ede047 Signed-off-by: Ashray Kulkarni <ashrayk@codeaurora.org> commit 9c8bab95ac974600c7809db2fc7b3c35004fd5dd Author: Ashray Kulkarni <ashrayk@codeaurora.org> Date: Thu May 17 18:20:25 2012 -0700 media: msm_vidc: fix compilation issue. This file depends on vidc_hal_api.h, which was modified to address review comments. The change reflects the fix. Change-Id: I2b5a64c28e87f6a1696f86c07d597fc058927e6c Signed-off-by: Ashray Kulkarni <ashrayk@codeaurora.org> commit d2ab0e33cf250647cccabff1073f736f05c7ee83 Author: Ashray Kulkarni <ashrayk@codeaurora.org> Date: Tue Apr 3 18:40:29 2012 -0700 media: msm_vidc: add v4l2 controls for video encoder Adds encoder specific v4l2 controls in video driver, giving flexibility to userspace or in-kernel v4l2 client to change/set video encoder properties like codec, profile, level, resolution, bitrate, ratecontrol, framerate to video hardware. Change-Id: Ie9d0eed301c3adad20471d8ef93f8087fe9dda15 Signed-off-by: Ashray Kulkarni <ashrayk@codeaurora.org> commit 1ccbc9106c61b27462036667e7896bdbe0c7d8fb Author: Ashray Kulkarni <ashrayk@codeaurora.org> Date: Fri Mar 23 16:26:52 2012 -0700 media: msm_vidc: add set property support in video driver Enables setting video encoding and decoding parameters to video hardware. This allows configuring video hardware with userspace or in-kernel client settings for codec, profile, level, bitrate, resolution, ratecontrol, framerate. Change-Id: Ie95674dc4ad50e00d737e765af1382c1397d4442 Signed-off-by: Ashray Kulkarni <ashrayk@codeaurora.org> commit 6ab782bdf6385bb325667841b7ee53a62a97dca5 Author: Ashray Kulkarni <ashrayk@codeaurora.org> Date: Thu Jan 26 16:58:01 2012 -0800 media: msm_vidc: Add hardware interface for video core. - Provides hardware level interface to perform video encoding and decoding. - Implements interrupt handling and processing for video core. - Packages data to core readable format and processes response from core. Change-Id: Ie16796449d2aacf331c7e02b3f0a63175cc5d37b Signed-off-by: Ashray Kulkarni <ashrayk@codeaurora.org> commit 3766b1e6b4dea7dea0abed1e9090390640a12909 Author: Vinay Kalia <vkalia@codeaurora.org> Date: Wed Jan 11 18:58:41 2012 -0800 media: msm_vidc: Add video driver for video core. - Adds video encoding and decoding functionality. - Implements v4l2 interface based driver for interacting with userspace modules to perform video encoding and decoding. - Implements kernel API for interacting with kernel modules like Wifi display(encoder) and V4L2 based DVB(decoder). Change-Id: Iadb83b60139e659ae7f66e5dc38c46fef52ca99d Signed-off-by: Vinay Kalia <vkalia@codeaurora.org> Signed-off-by: David Brown <davidb@codeaurora.org>
2013-01-14 22:02:57 +00:00
/* Copyright (c) 2012, Code Aurora Forum. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#ifndef _MSM_VIDC_H_
#define _MSM_VIDC_H_
#include <linux/videodev2.h>
#include <linux/poll.h>
enum core_id {
MSM_VIDC_CORE_0 = 0,
MSM_VIDC_CORES_MAX,
};
enum session_type {
MSM_VIDC_ENCODER = 0,
MSM_VIDC_DECODER,
MSM_VIDC_MAX_DEVICES,
};
int msm_vidc_open(void *vidc_inst, int core_id, int session_type);
int msm_vidc_close(void *instance);
int msm_vidc_querycap(void *instance, struct v4l2_capability *cap);
int msm_vidc_enum_fmt(void *instance, struct v4l2_fmtdesc *f);
int msm_vidc_s_fmt(void *instance, struct v4l2_format *f);
int msm_vidc_g_fmt(void *instance, struct v4l2_format *f);
int msm_vidc_s_ctrl(void *instance, struct v4l2_control *a);
int msm_vidc_g_ctrl(void *instance, struct v4l2_control *a);
int msm_vidc_reqbufs(void *instance, struct v4l2_requestbuffers *b);
int msm_vidc_prepare_buf(void *instance, struct v4l2_buffer *b);
int msm_vidc_release_buf(void *instance, struct v4l2_buffer *b);
int msm_vidc_qbuf(void *instance, struct v4l2_buffer *b);
int msm_vidc_dqbuf(void *instance, struct v4l2_buffer *b);
int msm_vidc_streamon(void *instance, enum v4l2_buf_type i);
int msm_vidc_streamoff(void *instance, enum v4l2_buf_type i);
int msm_vidc_decoder_cmd(void *instance, struct v4l2_decoder_cmd *dec);
int msm_vidc_poll(void *instance, struct file *filp,
struct poll_table_struct *pt);
#endif