Add struct virtqueue_ops back into the virtio core code to facilitate
the use of virtqueue implementations other than vrings. This allows
virtqueue implementations that use SMD drivers, USB drivers, or other
mechanisms for transport.
Add a new virtqueue operation, virtqueue_get_impl_size, to provide the
functionality of virtqueue_get_vring_size from the previous collapsed
implementation.
This commit partially reverts commit
7c5e9ed0c8.
Change-Id: I1219c4f203879658dce5800f405291bf311564b4
Signed-off-by: Yatin Manerkar <yatinm@codeaurora.org>
Use the gpuaddr to determine whether memstore is being mapped in
mmap or a normal memory allocation is mapped instead of physical
address. gpuaddr of the memstore will always be unique but the
physaddr may be equal to the gpuaddr of another memory allocation
and that will cause the memory allocation to be mapped as memstore
which is wrong.
Change-Id: I6a803e82e0a9d3713ebb3f15ea46d450f69d8ac7
CRs-fixed: 379019
Signed-off-by: Shubhraprakash Das <sadas@codeaurora.org>
1. Ping pong buffer configuration is not done during axi
configuration. Rather, they are programmed by enqueuing/
dequeuing of buffers. Ignore ping pong buffer from axi
configuration structure.
2. BUS_CMD register should be updated when all UB offsets/
depths are configured.
Change-Id: I1de1f5a5b43f964cfd3d1d86f91e2e91e58e9939
Signed-off-by: Shuzhen Wang <shuzhenw@codeaurora.org>
On 8974, camera sensor is created as a platform device.
platform data is specified in device tree node. Add
support in sensor driver to parse sensor information
from device tree node. Create sensor drivers as platform
driver since CCI hardware controls i2c bus. Also, use
Camera Control Interface (CCI) util functions for I2C
communication.
Change-Id: I5dc954c5b83eacbdaf486a4c8241644568f167fe
Signed-off-by: Sreesudhan Ramakrish Ramkumar <srramku@codeaurora.org>
There is a possibility of runtime suspend in the middle of
data transfer on the rx data path of driver. This results in
the completion of data transfer on bulk IN endpoint with short
packet or integral multiple of 512 bytes. Hence for -ENOENT
transfer status check for non zero data length and pass it to
the consumer in the userspace.
CRs-Fixed: 382161
Change-Id: I72407e8879b6b3b7a9456c1234eec71970272495
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
When a thread times out while waiting for a timestamp, check once
whether the timestamp which it was waiting for has expired or not
before treating it as an error
Change-Id: Iffba7955de58974a8d990a589b926e10f6c6a481
Signed-off-by: Shubhraprakash Das <sadas@codeaurora.org>
Use YCrCb 420 (NV12) as the output format for writeback. For Wifi Display
use case, NV12 is required as the encoder requires this as the output
format.
Change-Id: Ica8851073476b9c05f3b5b41232803c2d71f7a3e
Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org>
For local clients, return the relevant msmfb_data which contains a
cookie relevant to the client.
Change-Id: I9b845c0cd7fde1bc8c53a5063ba331460d67427d
Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org>
A lock/handle inode is required in order to successfully create a
new lock/handle. Failure to report the lock/handle inode error can
result in errors for subsequent function calls.
Change-Id: I622af24e695f4781c4dbf46363931a7da09df677
Signed-off-by: Jeff Boody <jboody@codeaurora.org>
Video driver currently supports registration of 4 clients.
Increasing number of clients count to 6 to support new usecases.
Video driver will limit number of instances to 4.
Change-Id: If00911ef1027b1e44917465791ef3612e6c59ed1
Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>
Needed when sensor processor not present. The lis3dh driver is
modified to request regulator
Change-Id: I389d5aa6a7771a9e1fe230ec593ff428e979c236
Signed-off-by: Wentao Xu <wentaox@codeaurora.org>
In newer SDCC v4 versions, the internal single port RAM is
replaced by dual-Port RAM which requires clock muxing after
RX transactions. To ensure clock switch is completed
successfully, the driver has to poll for TX/RX active bits
de-assertion in status register before initiating new transaction.
Change-Id: Idcd7732fa4fa490017e69d62535dbff6eb335eb6
Signed-off-by: Sujit Reddy Thumma <sthumma@codeaurora.org>
The MODEM requires RTS to be cleared for RmNET use case.
The original code clear all SMD tiocm bits upon USB connection.
This fix leaves the RTS bit set, which is the SMD default.
Change-Id: Ie3aaa285c9a1598dfd7408f062ea7af2f391a7dd
CRs-Fixed: 370682
Signed-off-by: Amit Blay <ablay@codeaurora.org>
MDP4 blend logic differs from GPU blend implementation as MDP4
does not differentiate between pre-multiplied alpha layers and
non pre-multiplied alpha layers. Check layers for pre-multiplied
alpha and change blend logic accordingly.
CRs-Fixed: 355755
CRs-Fixed: 361729
Change-Id: Id8253d3888f1ebbadba1b6bbd87e7d98bac22da7
Signed-off-by: Mayank Chopra <makchopra@codeaurora.org>
When the fault injection framework introduces an error to the data
block, the current code queries the SD card to find the number of
blocks actually programmed. This value would be as requested by the
generic block layer. So the entire request would be completed.
Say, request 0 is pulled from queue and submitted. When this is being
processed, request 1 is pulled from queue and prepared. Request 0
though is successful, fault-injection framework injects an error
and modifies the bytes_xferred variable to a random value less than
requested transfer. Request 1 is not processed and during the handling
of error, the SD card is queried for the actual bytes programmed. This
would be the correct value. Thus blk_end_request would complete
this request and the control would return to fetch request 2. In this
process, request 1 is not processed at all and the application waits
indefinitely for request 1 to be processed. No further requests are
issued to the queue.
This patch identifies, if the fault injection-framework has inserted an
error to this request and doesn't query the card and uses
bytes_xferred to complete the request.
Change-Id: I496802e244745bc7550402027a594d967cf7b756
Signed-off-by: Asutosh Das <asutoshd@codeaurora.org>
Modify LVDS Chimei panel pixel clock from 75 MHz to 79.4 MHz
and update PLL settings to achieve refresh rate of 60 Hz for
better user experience.
CRs-Fixed: 375510
Change-Id: Ifb4036c790552b1c43d5a3c817ed05691f86c7f6
Signed-off-by: Ravishangar Kalyanam <rkalya@codeaurora.org>
Logically from RESET to RESET_ACK, no interrupt should be
generated from hardware. Synchronous RESET call makes
code flow simpler.
Create a new ISP command VFE_CMD_RESET_2 which blocks
until RESET_ACK irq fires.
Change-Id: I1c1974c01d7037f457ab767a83f5cece3fe23705
Signed-off-by: Shuzhen Wang <shuzhenw@codeaurora.org>
New function driver to support Standard ECM with adaptions to
QCOM chipsets (Data path is over SPS BAM-to-BAM).
Standard ECM function was added to android gadget.
CRs-Fixed: 358338
Change-Id: Ic1ed2f7ee7ac50601ba5dc43d06c28bffe2c5c23
Signed-off-by: Ofir Cohen <ofirc@codeaurora.org>
Add Camera Control Interface (CCI) driver based on V4L2
architecture. Add probe sequence, subdevice creation,
hardware registers and configuration through V4L2
subdev call mechanism. This driver is responsible for
communicating with sensors, actuators and EEPROM
connected on I2C bus.
Change-Id: I2f135798e26348740f58da223caafdd8dfbbd098
Signed-off-by: Hody Hung <hhung@codeaurora.org>
Signed-off-by: Sreesudhan Ramakrish Ramkumar <srramku@codeaurora.org>
VCD requires we do not give any output buffers to be given until
START_DONE is received. In the case that buffers are given, it
introduces race conditions in the vidc with respect to the SPS/PPS
buffer, which vidc assumes to be present on the first fill_buffer but
actually isn't present until START_DONE.
Change-Id: Ie4dec3ed41e0f248175fb7d9719b458d3b699539
Signed-off-by: Deva Ramasubramanian <dramasub@codeaurora.org>
Add new register definitions for QCE5.0 Hardware
Add new HAL (qce50.c) for interfacing with CE 5.0 hardware:
-- Implement the new interface to BAM (instead of data mover).
-- Add support for multiple Pipes.
-- Add support for use of HW key.
Change-Id: I69dc3993f607553d4752f9f9fb4fdfe1a09a6345
Signed-off-by: Mona Hossain <mhossain@codeaurora.org>
Framebuffer is currently mapped for Display read and rotator source
domains. For MDP writeback mode, Display write domain requires
framebuffer region and it is mapped at initialization time.
CRs-Fixed: 382550
Signed-off-by: Ravishangar Kalyanam <rkalya@codeaurora.org>
Change-Id: Iba6fd0201a48fe1864bf42e9576f063cd58646fd
Reserved fields of fb structure used for various use cases
in qcom fb driver. Reducing the reserved fields caused lot
of side effects and it will change the reserved fields same
as kernel 3.0.
Change-Id: I7bf82a9b5667cb5c84b54e428bbfcb6869157bd7
Signed-off-by: Nagamalleswararao Ganji <nganji@codeaurora.org>
Remove duplicated enum for different VFE version
Change-Id: I386ef874731442ac3deb4ccec36f353f30671f9f
Signed-off-by: Kevin Chan <ktchan@codeaurora.org>
Continuity-counter is compared for each packet against the
counter of the previous packet. This check should take
into account the very first packet after feed is started
otherwise the first packet might be wrongly dropped.
Change-Id: Ibe31bad3eccbd4b6ed1f4b0df1049e28399493d6
Signed-off-by: Hamad Kadmany <hkadmany@codeaurora.org>
The number of files in msm/ folder is increasing and shared by other teams.
This helps improve the organization of the msm folder.
Change-Id: I25f73e467b9d0390850f587363ddc3ff9e44b1e4
Signed-off-by: Shuzhen Wang <shuzhenw@codeaurora.org>
ISPIF changes on 8974 to include VFE interface. Pass VFE interface
from user space ISPIF module and configure accordingly. Add support
to configure extra PIX and RDI interfaces.
Change-Id: Idb840fa3d1ef2d1a7242fc2175b8fa64f75aa14b
Signed-off-by: Sreesudhan Ramakrish Ramkumar <srramku@codeaurora.org>
Panel porch values and pixel clock can be used to calculate the refresh
rate from user space. Assign these values with information from panel
driver.
Change-Id: I29995d27904e50892d72de5e8c7dd39285f9d421
Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
When mdp pipe is freed at end of video play back, Writeback
buffer is freed while mdp still fetchs data from it. This cause
system crashed and blue screen shows on screen. This patch
will free writeback buffer at correct time.
Change-Id: I46a5031c13d86f943d6604713e1841b482dffe96
Signed-off-by: Kuogee Hsieh <khsieh@codeaurora.org>
Debug writeback is used to output MDSS framebuffer contents to memory to
for debugging of MDSS core. Use ion buffer allocation for debug
writeback buffer instead of using memory from framebuffer base layer to
allow entire framebuffer area to be used for composition.
Change-Id: Ia1a91f5f14bed1d29691092142fc94f7a8b6f4d2
Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
Source format should indicate that source is to be rotated 90 degrees
instead of indicating source has been rotated 90 degrees. This is needed
for hardware to fetch source in correct order and generate correct 90
degree output image.
Change-Id: If8d1e12ef3e7a291e67ec9763f5ca92ec6fa983c
Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
MDSS does not support odd width, height or src offsets for YUV formats,
however odd coordinates are acceptable for dst offsets. Remove odd check
done for dst offsets
CRs-Fixed: 372900
Change-Id: I69230640f94bf080a8be4ea6d79f0901a7fa72cd
Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
This utilities is based on Ethernet-over-USB link layer utilities and
contains QC specific implementation (using SPS BAM-to-BAM for data
channel).
Change-Id: Iec417b4df57c34d1ba9368495c7a489c36ddf6dc
Signed-off-by: Ofir Cohen <ofirc@codeaurora.org>
Make thermal monitor performance hit more gradual by stepping down
limit frequency instead of jumping directly to that frequency.
The monitor now steps down to the lowest available cpufreq
frequency, instead of fixing the limit frequency to 918MHz. Also
update the polling frequency to 250ms to improve responsiveness.
Change-Id: I6edb0cfc057284023978de04d7835e9783da5ebd
Signed-off-by: Eugene Seah <eseah@codeaurora.org>
The updated ARM GCC compiler warns about the usage of
a variable that might have been uninitialized. Comply
to the warnings.
Change-Id: Ia400ba4b895f91e828a9e485be0f1fe5c12bcd64
Signed-off-by: Jay Chokshi <jchokshi@codeaurora.org>
Change the GPU hang detection code to avoid the normal case is
mistakely treated as GPU hang scenario.
CRs-Fixed: 378488
Change-Id: Ie79a8d91e35c51ba043e7a845c9a56266277f1a0
Signed-off-by: Wei Zou <wzou@codeaurora.org>
Remove the use of asid(application space ID) from the kgsl driver
for IOMMU since it's known to cause to stability issues on the
2D core
Change-Id: I92f82ebb0941296c7ad625dd833822dd918fe386
CRs-fixed: 379439
Signed-off-by: Shubhraprakash Das <sadas@codeaurora.org>
Sampling clock tuning is really not required if card clock is less than
100MHz. This change makes sure that we do tuning only if clock is >100MHz.
In additional, this change also makes sure that if tuning is enabled then
CDR (clock-data recovery) should be enabled only for data read operations.
Change-Id: I5bf26edd8de28d1f53bd258a064475cb0b67b5b5
Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
This patch will queue multiple surfaces and commit those
surfaces into mdp at same instance so that surfaces will
be blended and displayed at same time. Hardware vsync event
is delivered to the user space frame work via uevent. Both
queue and commit are controlled by frame work and synchonized
with vsync event. Therefore frame rate will match with vsync rate.
Change-Id: If630a6d94fd38483ee313f575b1a71ed8bd65a52
Signed-off-by: Kuogee Hsieh <khsieh@codeaurora.org>
Add support for CSC and QSEED configuration through MSMFB_OVERLAY_SET and
MSMFB_OVERLAY_PLAY ioctls. Provide better integration than previous attempt
with the existing Overlay and PostProcessing APIs.
CRs-Fixed: 380750
Change-Id: If895391074ef1e7d7a6824d289e1ed9da6a52180
Signed-off-by: Carl Vanderlip <carlv@codeaurora.org>
Remove old implementation of HSIC and QSEED smoothing/sharpening overlay
integration. Need to replace with new implementation that better integrates
the existing functions of the two APIs.
CRs-Fixed: 380750
Change-Id: Id3469fad16764ed88e74a8da75bb873f726ba366
Signed-off-by: Carl Vanderlip <carlv@codeaurora.org>
Signed-off-by: Pravin Tamkhane <pravint@codeaurora.org>
Add support for QSEED Table2 reads/writes. Table 2 is a table of coeffients
for QSEED Table 1 to offset into. Table 2 is quite large, caution should be
taken when writing into it.
CRs-Fixed: 380315
Change-Id: I89be18c0047dcf1d9a3bcd538967b2bbe7b4efe1
Signed-off-by: Carl Vanderlip <carlv@codeaurora.org>
Add support to read the tables of QSEED values. When the values of the
QSEED tables are able to be written to, it is beneficial to be able to read
what's there as well.
CRs-Fixed: 380315
Change-Id: I3110721906424f70a12bf5736de7875dec03f4c6
Signed-off-by: Carl Vanderlip <carlv@codeaurora.org>
MobiCore TZ to HLOS interrupt is assigned a unique SPI.
Currently it shares the SPI with EBI_ERP and moving
forward this interrupt has to be not shared in order
to allow the enablement of EBI_ERP feature..
Change-Id: Ie1895524471f587dd8dbb3a2061b2b7d842d760b
Signed-off-by: Lukas Hänel <lukas.haenel@gi-de.com>
Signed-off-by: Ramesh Masavarapu <rameshm@codeaurora.org>
When a free buffer is released/returned back from userspace,
mark it as QUEUED instead of UNUSED. This will ensure that the
buffer is put back into circulation.
Change-Id: Ib6fc058ee2f34044446e777a525f81b2ee971c9c
Signed-off-by: Kiran Kumar H N <hurlisal@codeaurora.org>
Updating diag include file to avoid using mach/msm_hsusb.h which is
deprecated, and update u_bam to include this file as well.
Change-Id: Ia61accc65eb86fe750c3be6dcb0726e480becdae
Signed-off-by: Shimrit Malichi <smalichi@codeaurora.org>
Turning off dtv TG may cause blink. MDP requires h/w idle to change
blt mode, turning off TG can make sure mdp h/w is idle. If turning off
TG is not desired, one way to do is to check busy bits of overlay and
dmae and once they are both idle, the mode can be changed.
CRs-Fixed: 363717
Change-Id: I2817d7751ed04fd9ed144974328c4518c54af3d6
Signed-off-by: Huaibin Yang <huaibiny@codeaurora.org>
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>