ISDB-T client requires flags indicating the correctness
of output YUV data from MPEG-2 decoder. With this commit,
DATA_CORRUPT flag is sent from the driver if the output
YUV is either INCORRECT or APPROX_CORRECT.
Change-Id: I72e8ba81f45200715a195497d4eae140cbe86616
Signed-off-by: Rajeshwar Kurapaty <rkurapat@codeaurora.org>
(cherry picked from commit d68ca84da4a5c68eb2caf1f9e4dbb665bba5a05c)
Conflicts:
drivers/video/msm/vidc/1080p/ddl/vcd_ddl_interrupt_handler.c
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
Signed-off-by: Manish Kumar <manishku@codeaurora.org>
MPEG-2 display aspect ratio calculation was done similar
to MPEG-4 standard. Correct it as per the MPEG-2 standard
and video core interface specification.
Change-Id: I1aa98ca238c7b38e35c78905b29457cfa59edd45
Signed-off-by: Shobhit Pandey <cshopan@codeaurora.org>
(cherry picked from commit ce5f973881c11491c3fa35ceb8c945a6c8ee2b8f)
Signed-off-by: Manish Kumar <manishku@codeaurora.org>
Add platform device for isa1200 to provide haptic
support
Change-Id: Ieb91a561f8b6ca6475332df461e0918d34e1d226
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
(cherry picked from commit ae54a6227f0e999fa93822c341d9605b2d007b9a)
The JB MR1 update was not recognizing the LVDS panel and hence
throwing an invalid panel error. Adding check for LVDS panel to
enable display on 8064 CDP.
Change-Id: Ib125cc797b288ca027f91778d9892acfa00a3214
Signed-off-by: Siddhartha Agrawal <agrawals@codeaurora.org>
There are two pathes (pan display and overlay commit) to commit
display buffer, so change the location of cpu timer wakup call to the
common pipe_commit function to make sure cpu get waked up around
vsync.
Signed-off-by: Huaibin Yang <huaibiny@codeaurora.org>
Change-Id: Idbe6049d740a7e17a6a90e28566f7a9c74e348f2
Add this feature for cmd mode panel. The feature is to avoid frame
drops due to power collapse and it is already present for other
display interfaces.
Change-Id: Ic68f41cd59931294b592577475ed7480459f2cf8
Signed-off-by: Huaibin Yang <huaibiny@codeaurora.org>
To avoid frame drops due to power collapse,
wake up cpu right before vsync.
Conflicts:
drivers/video/msm/mdp.c
drivers/video/msm/msm_fb.h
Change-Id: I63385eb329ae5e74cbac5256823fd3a213e0a0e1
Signed-off-by: Ken Zhang <kenz@codeaurora.org>
Signed-off-by: Huaibin Yang <huaibiny@codeaurora.org>
Use 16M, 1M, 64K or 4K iommu pages when physical
and virtual addresses are appropriately aligned.
This can reduce TLB misses when large buffers
are mapped.
Change-Id: Ic0dedbadeca18cf163eb4e42116e0573720ab4d2
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: Jeremy Gebben <jgebben@codeaurora.org>
Add data for AVS in all PVS bins. Per experiment, this saves several
mA of current in graphics/video playback usecases.
Change-Id: Ifcee9c3f909da156771396df8aaba6baca9bcd98
Signed-off-by: Patrick Daly <pdaly@codeaurora.org>
(cherry picked from commit 2352b35293331485a78ee282f523bb4ff545030f)
Refactor AVS API to a cleaner C implementation. The new implementation
uses C assembly functions and provides a cleaner way for future targets
to add new AVS functionality.
Also fixed a possible issue with the earlier AVS_ENABLE and AVS_DISABLE
implementations. The earlier implementation did a get_cpu() and compared
it against the cpu for which AVS was to to be disabled, if the cpu's did
not match then it did not return an error and avs could have been left
enabled during the voltage change. In this new implementation, enable
and disable use smp_call_function_single() to ensure that the enable and
disable indeed happen on the core requested.
If acpuclock_set_rate() was called on the right core correctly during
cpufreq frequency change, there would have been no issue, but newer
implementation of mach-msm/cpufreq.c does not gaurantee that.
Change-Id: I94db3fc70341ceb79d747d54c7f525056b377755
Signed-off-by: Praveen Chidambaram <pchidamb@codeaurora.org>
(cherry picked from commit 5e6141182f2a3638aaa04ed399643c013e414a65)
USB diag gadget driver prints an error message and return error code
when ep request queue is failed. Diag char driver drops this packet
but does not stop queuing further. This results a flood of log messages
on serial console. The target eventually crash due to watchdog timeout.
(cherry picked from commit ac3aa91a5a73df0d3bb5577ee4efc3c75958ef86)
CRs-fixed: 422601
Change-Id: I2e7be3b7aa5469a2abe8daa220ba27c010bee2a1
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
Signed-off-by: Neha Pandey <nehap@codeaurora.org>
Older targets like 8x50 had the first version of Apdaptive Voltage
Scaling done in software. This feature was never enabled and supported.
Remove the code and the associated config items.
Change-Id: If3bdab7d0bdb5d51e099f7c37f56592826edc102
Signed-off-by: Praveen Chidambaram <pchidamb@codeaurora.org>
(cherry picked from commit 4ca77687eba64b56426b51f9e0edd9fede7d389f)
Some buses like HSIC would like to keep device in suspend state
after system resume. The remote wakeup or interface activity
later will auto resume the device. This will work only if the
device is auto suspended before system suspend. If the device
runtime state had been active during system suspend and system
suspend routine put the device in suspend, it will not be resumed
during system resume. When remote wakeup happen for this device,
the runtime resume will not bring the device to active as runtime
core think it is already active.
The HSIC bus ensure that device is auto suspended prior to system
suspend by holding a wakelock till the bus is suspended. HSIC bus
is not handling the case where device is auto resumed immediately
after system suspend begins. HSIC bus simply put the device into
suspend in system suspend routine.
This patch fixes above issue by returning an error code if the device
is not auto suspended during system suspend. Also add a safe guard
check in HSIC system resume routine to skip device resume only if it
is auto suspended prior to system suspend.
(cherry picked from commit 41d004c4eaa5565cb8d9113862c3cef1e51be648)
CRs-Fixed: 422876
Change-Id: I07063d1fe2ef054adc5c593691d417272e66221e
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
Signed-off-by: Neha Pandey <nehap@codeaurora.org>
If SDIO keep power flag (MMC_PM_KEEP_POWER) is not set, card would
be reinitialized during resume but as we are not resetting
(CMD52 reset) the SDIO card during this reinitialization, card may
fail to respond back to subsequent commands (CMD5 etc...).
This change resets the card before the reinitialization of card
during resume.
(cherry picked from commit 2679307563a616af7ab189706604a245c6a3be92)
CRs-Fixed: 424805
Change-Id: I1ccd93e9221de631a407064219793e7378ac8f31
Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
Signed-off-by: Neha Pandey <nehap@codeaurora.org>
Some of the register macros are incorrectly used. Fix
them to be used properly.
(cherry picked from commit 58ff4051ab7ec40d516ca82b6287a230260fe2ee)
CRs-fixed: 421968
Change-Id: I392ab2e7074a432d152aaa846adbae54ad51ba3a
Signed-off-by: Mohan Pallaka <mpallaka@codeaurora.org>
Signed-off-by: Neha Pandey <nehap@codeaurora.org>
Although not in internal reference designs, customers
may need to use pmic based vibrator instead of isa1200.
CRs-fixed: 416276
Change-Id: I190840eee4862ac82c5120501748b795e6d0c760
Signed-off-by: Amy Maloche <amaloche@codeaurora.org>
Signed-off-by: Neha Pandey <nehap@codeaurora.org>
- Due to race condition between free buffer and flush output buffers,
invalid buffer is getting accessed sometimes.
- Reset all the members in buffer entry except list elements.
(cherry picked from commit 8105df366cf6b9f1ddbc15d561fb6a5f12540416)
CRs-Fixed: 411197
Change-Id: Id95037f57d7fe4bc88b96f187953194ec838d63b
Signed-off-by: Srinu Gorle <sgorle@codeaurora.org>
Signed-off-by: Neha Pandey <nehap@codeaurora.org>
Fix a possible bug where id interrupt is not monitored during ID
detection circuit switch between ACA and PMIC. This can happen
during quick Micro-A cable reconnection.
(cherry picked from commit becab5ba0d6a342612ff31ff9514e324f2f02517)
CRs-Fixed: 404516
Change-Id: I7e7edda54d1a9f5c4334cab1c48413c7461df2f1
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
Signed-off-by: Neha Pandey <nehap@codeaurora.org>
when USB_STORAGE_DEBUG config is enabled, all scsi commands sent to
USB storage devices are printed onto console. As serial console
is enabled, this is degrading throughput. This debug feature is
useful only during debugging issues. Hence disable this feature
by default.
(cherry picked from commit 4713b9d5ded96679e68efdaebe9e8eb0e77b0e6f)
CRs-Fixed: 421411
Change-Id: I0e7e5546af84bbe7a0172fb177d1d3607f858e24
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
Signed-off-by: Neha Pandey <nehap@codeaurora.org>
MDM control bridge driver unlinks the pending URBs when control
bridge gets closed as a result of usb cable disconnect. Driver
sends set_control_line_state request to MDM upon bridge close.
Right after sending the setup request driver unlinks the pending
URBs. In case if the URB is unlinked after setup stage is completed,
status stage remains pending. This results in a control transfer
stall. Similarly, when the bridge is reopened as a result of USB
cable plug-in, the interrupt URB is not resubmitted, which can also
lead to a QMI stall since the MDM is waiting indefinitely to send
its response available notification. Fix these two potential stall
conditions by not unlinking URBs upon cable disconnect; this will
allow in-progress control transfers to finish gracefully and will
also allow notification interrupts to always be handled. Unlinking
of the URBs will happen during MDM device disconnect, instead of
upon bridge close.
(cherry picked from commit 77f79575ebe35f2ec329827290e7a67fb0e75286)
CRs-Fixed: 419128,418478
Change-Id: I5474372d832de2fd49f17faf77e7e549e80566ad
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
Signed-off-by: Neha Pandey <nehap@codeaurora.org>
The video codec's bus ports have changed between 8960 and 8960ab.
Update the footswitch data accordingly, so that the correct ports
are halted and unhalted.
(cherry picked from commit 231cb1b4bec54fbba8210eda28a9622671e0e44f)
CRs-Fixed: 410449
Change-Id: If6b85b5f9e952c733da97fd61935305fdf9556ab
Signed-off-by: Matt Wagantall <mattw@codeaurora.org>
Signed-off-by: Neha Pandey <nehap@codeaurora.org>
8960ab doesn't have any gfx2d hardware, so we shouldn't add the
gfx2d footswitches on this device. By not adding them we avoid
probe errors in the kernel logs.
(cherry picked from commit 913c29d9696a86d93705afae14a1169f96d561b0)
Change-Id: I27ca48d4d7a58b5d752f1f0fcbc3eff5cfe20e1e
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Neha Pandey <nehap@codeaurora.org>
This change addresses two memory leaks:-
1) misc device is not getting deregistered during device
disconnect. Hence call misc_deregister() in disconnect.
2) Driver returns without freeing previous instances of
the driver data structure if memory allocation fails. Hence
free up memory allocated for ks_bridge structure.
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
(cherry picked from commit da86bd2faa9cfbf065c7a1f0adba124d7e8335e0)
Conflicts:
drivers/usb/misc/ks_bridge.c
Change-Id: I5e1c357fa29b455bae5f3dc71b4d65d5cc216bb3
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
Update the profile info in the sequence header with the
info which the core returns in the shared memory register.
(cherry picked from commit 5a60819aeb698b9d27937329bb5559a7a787a06e)
CRs-fixed: 408349
Change-Id: I6db75c907260c9744ec4e0d88db776be9bca8dea
Signed-off-by: Shobhit Pandey <cshopan@codeaurora.org>
Signed-off-by: Neha Pandey <nehap@codeaurora.org>
UARTDM device is used as interface to connect external devices through
GPIOs. Currently those GPIOs are configured in active mode once driver's
probe() is called and configured in suspend mode once its remove() is
called. Probe() is called once only and remove is not called until UARTDM
platform device is removed. With this current implementation, although
external device (ex. Bluetooth SoC) is not operational mode, used UARTDM
GPIOs are configured in active mode which is causing more leakage current
and more power consumption.
Hence configure those UARTDM GPIOs in active mode only when used UARTDM
device is opened and under used. Configure UARTDM GPIOs back to suspend
mode when UARTDM device is closed and under not used.
CRs-Fixed: 422217
Change-Id: I057a2da827f37687e5ea69bdca1533568be06eab
Signed-off-by: Mayank Rana <mrana@codeaurora.org>
Signed-off-by: Neha Pandey <nehap@codeaurora.org>
Those attributes used to be writable by world. This change allows
read only access by world.
CRs-Fixed: 382751
Change-Id: I2b37763514a86da9beed3fcb7dcb4706c790e44d
Signed-off-by: Wentao Xu <wentaox@codeaurora.org>
Signed-off-by: Neha Pandey <nehap@codeaurora.org>
In certain memory configurations there can be a large number of
CMA pages which are not suitable to satisfy certain memory
requests.
This large number of unsuitable pages can cause the
lowmemorykiller to not kill any tasks because the
lowmemorykiller counts all free pages.
In order to ensure the lowmemorykiller properly evaluates the
free memory only count the free CMA pages if they are suitable
for satisfying the memory request.
Change-Id: I7f06d53e2d8cfe7439e5561fe6e5209ce73b1c90
CRs-fixed: 437016
Signed-off-by: Liam Mark <lmark@codeaurora.org>
When video data is tunneled internally between demux and dvb-video,
the ION buffer holding the video data needs to be shared with
dvb-video driver.
Change-Id: Ia6517bd9cbf284e1314d5275eccc6813dc8d3096
Signed-off-by: Hamad Kadmany <hkadmany@codeaurora.org>
TSIF signals (clock, data, enable and sync) may be configured
to be inversed at TSIF unit input. This is useful in case
TSIF signals from external units need to be inversed.
Change-Id: I21a5c8eca73df0f4458c0d035ef8ae90920ea0c5
Signed-off-by: Hamad Kadmany <hkadmany@codeaurora.org>
Modify min and max period bytes and number of periods in
compressed driver so as to be consistent with lpa and to
meet ION memory requirements. This avoids using huge
buffer sizes for tunnel decode.
Change-Id: Ib71da4cebfc097e7aeaf0ca0e65ee847ba7cceb7
Signed-off-by: Phani Kumar Uppalapati <phanik@codeaurora.org>
- Allow Soc to interrupt host for RT Plus, eRT data
- Parse the RDS group for RT Plus, eRT
- Queue the parsed data and event for RT Plus, eRT
to upper layer
CRs-fixed: 419248
Signed-off-by: Ayaz Ahmad <aahmad@codeaurora.org>
(cherry picked from commit 89265111440674132f59c3aa2938a0aefbfc84fb)
Change-Id: I44010cebd5d7de7ae3a4b076971d24d65aa4fb91
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
On 8960 i2c ioexpander should be added based on CONFIG_GPIO_SX150X.
On 8930 Camera gpio settings should be added based on CONFIG_GPIO_SX150X.
Change-Id: I645e2bd41da16c19aff90b04d587938ec8ed9068
Signed-off-by: Hanumant Singh <hanumant@codeaurora.org>
All ethernet related gpio settings not encapsulated
within same CONFIG_KS8851 option.
Change-Id: Ic610f75e931a69c16e919f9b842a001e090806df
Signed-off-by: Hanumant Singh <hanumant@codeaurora.org>
Currently mdp bandwidth request logic is based on source image size
and number of layers. This logic can not support complicated mdp
usecases and it is not power efficient. The logic is improved by
calculating mdp bandwidth request at runtime from all pipes and mixers.
Conflicts:
drivers/video/msm/mdp.c
drivers/video/msm/mdp4_overlay.c
drivers/video/msm/mipi_dsi.c
CRs-fixed: 425823
Change-Id: I63206f00f8d3017a2449f8ac617fce3ba2a4d36c
Signed-off-by: Huaibin Yang <huaibiny@codeaurora.org>
Due to some mismatch in applying patches, one patch was overriding
the changes added by commit bd5c9fcbf79d326817312138cf03298adf09df27.
This patch restores the changes.
Change-Id: I43223f01653c53df00682e8489b89e8978989944
Signed-off-by: Rajeev Kulkarni <krajeev@codeaurora.org>
Add counter for number of decoder packets with transport error
indication. Reset all decoder counters exposed in debugfs when
video is started.
Change-Id: I9434b2da3c24e19bb57acf562dcdb7df49a10dad
Signed-off-by: Hamad Kadmany <hkadmany@codeaurora.org>
Signed-off-by: Neha Pandey <nehap@codeaurora.org>
PCR packets with error indication is dropped to filter-out
invalid PCR values and flags that might cause errors
in clock recovery mechanism. In addition PCR is reported
also when playing from memory with 0 STC if the packet is
not in 192-tail format.
Change-Id: I3118877e0847f1df9aeb0d1891184c59b0d658c8
Signed-off-by: Hamad Kadmany <hkadmany@codeaurora.org>
Signed-off-by: Neha Pandey <nehap@codeaurora.org>
Video buffer is allocated from CP-MM heap for both secure and non-secure
buffers. Some targets may restrict not to allocate non-secure buffer from
CP-MM heap, in such case need to make the allocation from IOMMU heap.
Change-Id: If0f56cab5fc6e3da1d4b7f1ec568184c9d16fed4
Signed-off-by: Hamad Kadmany <hkadmany@codeaurora.org>
Signed-off-by: Neha Pandey <nehap@codeaurora.org>
Video stream buffer should be first initialized and then
registered to the adapter, otherwise, if registered
before initialization the video consumer may get uninitialized
stream-buffer.
Change-Id: I9f3e02ee360140b5132cd49df406cf2fa2ac6579
Signed-off-by: Hamad Kadmany <hkadmany@codeaurora.org>
Signed-off-by: Neha Pandey <nehap@codeaurora.org>
Added the following files to existing demux directory in debug-fs:
1. decoder_out_count: Counts number of frames output to decoder.
2. decoder_out_interval_sum: Sum of time intervals between
frames outputs.
3. decoder_out_interval_average: Average of time intervals between
frames outputs.
4. decoder_out_interval_max: Maximum time interval between
frames outputs.
All counters can read and reset by writing to the respective file.
demux device output in debug-fs was adjusted for better visibility.
Change-Id: I2c9835364c534cc4b9c1cbc74afee71c40f61d98
Signed-off-by: Hamad Kadmany <hkadmany@codeaurora.org>
Signed-off-by: Neha Pandey <nehap@codeaurora.org>
TSPP output buffer when allocated as physically contiguous to serve
as input to TrustZone should be allocated from QSEECOM heap and not
CP_MM heap since the latter may be locked in secure playback.
Added a module parameter for the heap to allocate the buffer from,
default is QSEECOM. In addition, the existing implementation allocated
TSPP output buffer once for each demux device though is it not one per
demux device but rather one per TSIF, the allocation was moved to be
done once an output channel from specific TSIF is opened.
Change-Id: Ie606c6074a4f78d9f51f0d47697539567a1643cd
Signed-off-by: Hamad Kadmany <hkadmany@codeaurora.org>
Signed-off-by: Neha Pandey <nehap@codeaurora.org>
For each TSIF two pipes were allocated, one for section output
and one for PES output. The two pipes were unified into a single
pipe as the pipes were configured with the same parameters and there's
no real need for separating them. A unified pipe allows recording of
section packets along with non-section packets while maintaining the
order of the packets in the output to be the same as they
appear in the input.
Change-Id: Ifb9c8d9a3e83b3c4b144ea26d2d7f144ec605b8c
Signed-off-by: Hamad Kadmany <hkadmany@codeaurora.org>
Signed-off-by: Neha Pandey <nehap@codeaurora.org>
demux reported the first video PTS using the PTS value within the
first video PES after playback starts. When playbak starts demux
drops all PES data until reaching sequence-header, the PTS of the
first PES holding a video frame after reaching the sequence header
should be used and not the one in the first PES before data is dropped.
Change-Id: I4c2b3f79e8320239d7c8e165093d4c6111dc8a27
Signed-off-by: Hamad Kadmany <hkadmany@codeaurora.org>
Signed-off-by: Neha Pandey <nehap@codeaurora.org>
The output buffers of demux filters can be set in decoder
and in non-PES filters, it is separate from the video output
buffers. When filter is stopped the buffer should be un-mapped
always if it was mapped previously regardless of the filter's type.
Change-Id: I5e0562b23e983a9c624be2dd71612ef23f3b50d0
Signed-off-by: Hamad Kadmany <hkadmany@codeaurora.org>
Signed-off-by: Neha Pandey <nehap@codeaurora.org>
Video elemenatry stream data is usually passed from demux to a video
consumer (e.g. video decoder) in kernel-space via tunneling. However
there are cases when the video consumer is a user-space application
controlled by the middleware. This change adds support for notifying
user-space about newly available elementary stream data and
associated meta-data, using the existing events queue mechanism.
Change-Id: I1994879f9056abea389602224fa970bd029b1e56
Signed-off-by: Liron Kuch <lkuch@codeaurora.org>
Signed-off-by: Neha Pandey <nehap@codeaurora.org>
Read-complete interrupt can be generated from TSPP HW for test
purposes only. It is generated for each TS packet TSPP fetches from
TSIF interface. Having it enabled cause great load of interrupts
that are not used by the SW.
Change-Id: I4eb1be173cb3e30a8540fb17223abc034c54f048
Signed-off-by: Hamad Kadmany <hkadmany@codeaurora.org>
Signed-off-by: Neha Pandey <nehap@codeaurora.org>
Framing used to rely on underlying decoder buffer being managed as
ring buffer, and used absolute addresses to derive frame length.
This fix changes this and framing is now agnostic to the number
of decoder buffers, and whether they are managed as a ring-buffer
or as a group of linear buffers.
In addition, instead of reporting each pattern, framing now only
notifies video consumer on video frame patterns. Previous non-video
frame patterns are still included in the output data.
Change-Id: Ia3fe350110b77b3a7805e23f13927913e643f479
Signed-off-by: Gilad Broner <gbroner@codeaurora.org>
Signed-off-by: Neha Pandey <nehap@codeaurora.org>