Upon any CQ error, the driver tries to halt the CQE first and
if it fails to halt, then CQE is disabled. The error handling
work function mmc_blk_cmdq_err() also tries to HALT the CQE
at couple of places and takes some action based on the HALT
success/error status. But since CQE is disabled, we should not
treat any errors of CQE halt/unhalt as critical and in fact,
we should not even attempt to halt/unhalt.
Change-Id: I6bef9f2c033f78ad0959954acc5d7627e8a92139
Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
Signed-off-by: Sayali Lokhande <sayalil@codeaurora.org>
The legacy interrupts are enabled as part of CQE halt. But there could
be few cases, where halt fails. In those cases, CQE is disabled without
enabling legacy interrupts. Without this we cannot send any commands
like status CMD13 in legacy mode as part of error handling work.
Change-Id: I944ab4060e779c7f41a945532e6a65c30797d40f
Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
Signed-off-by: Sayali Lokhande <sayalil@codeaurora.org>
There could be cases where CQE halt might fail and in which
case, CQE gets disabled as part of error handling.
In this case, !mmc_host_halt() will be true and the commands
sent in legacy mode are getting software request timeout errors
as they are getting handled as cmdq irq.
Hence, add !mmc_host_cq_disable() check as well in addition to
!mmc_host_halt() in sdhci_irq() before considering it as a
cmdq irq.
Change-Id: Ic529aae53fdecd6b9ecbb17ba13147964dce55dc
Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
Signed-off-by: Sayali Lokhande <sayalil@codeaurora.org>
As per hdcp 2.2 specifications, send the stream type message
to sink at a specified address in case sink is a receiver.
Update the messages to be sent to sink with the message received
from TZ and tear down the session in case it time's out.
Also, enable encryption after stream management message
exchange for hdcp repeaters to avoid unnecessary link failures.
Change-Id: Ib77756c942abfbdd6e1522a3238d5d8499496fc9
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
concurrent sysfs calls on the fw updater can cause
ugly race conditions. Return EBUSY on concurrent sysfs calls.
For sysfs calls which generate deferred work, prevent
the deferred work from running concurrently with other
sysfs calls.
Also check that ext_data_source is appropriately sized
and allocated, based on a patch by
Gengjia Chen (chengjia4574@gmail.com).
Signed-off-by: Andrew Chant <achant@google.com>
Change-Id:I5bbe4992f3fd2d23db288296eaeb61f5831098e9
Bug: 30799828
Bug: 31252388
Git-repo: https://android.googlesource.com/kernel/msm.git
Git-commit: 287ce2ccfefe68067c1f9f5175b6664bf7397fe6
Signed-off-by: Srinivasa Rao Kuppala <srkupp@codeaurora.org>
Video hardware on msm8998 chipset limits the max non secure region
address to 0xE0000000. So reduce non secure region size to 0x6f800000
from 0x8f800000 to limit the max address to 0xE0000000.
CRs-Fixed: 1092881
Change-Id: Ib9602aa2298caf01ab01b4e0225c112c71bb81f4
Signed-off-by: Maheshwar Ajja <majja@codeaurora.org>
Crypto clock is needed for HDCP 1.x/2.x encryption. If not set,
it may result in link integrity failure as source and sink may
go out of synchronization. Set the crypto clock rate as per
hardware recommendations.
Change-Id: I768b3390fbe4728be285424d0ce27981e1a5d6cb
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
Forward thread acquired v4l2_ctrl->handler->lock in
v4l2_s_ctrl() and waiting for response from response thread.
Response thread was blocked on core->lock which was acquired
by second forward thread. The second forward thread acquired
core->lock and called v4l2_g_ctrl() in msm_comm_get_mbs_per_sec()
where it was blocked on same v4l2_ctrl->handler->lock and hence
response thread was not unblocked. Resolve the deadlock issue
by avoiding v4l2_g_ctrl() call in msm_comm_get_mbs_per_sec().
CRs-Fixed: 1095539
Change-Id: I73c2a74f1bb86f2b0359be54ed4f7675051db7b0
Signed-off-by: Maheshwar Ajja <majja@codeaurora.org>
Enable the interrupts required by hdcp 2.2 to update the hdcp 2.2
state machine as per hardware status.
Change-Id: Ib551b1fe8641203b66a31e745d5091641b4d0ae2
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
This change prevents blocking IOCTLs with wrong command
number or wrong magic Number. IOCTL handler should first
check that the command is valid and only then wait for
IPA driver initializations to finish.
CRs-Fixed: 1094653
Signed-off-by: Amir Levy <alevy@codeaurora.org>
Change-Id: I578dc96da96f7c10be51eac1f8b3c190e45dcfcf
This change adds RMNET support using IPA over BAM2BAM.
Removes all different supported control and data
transports and assumes BAM2BAM_IPA as default mode.
Cleans up QTI Control driver to support only RMNET
and DPL.
Change-Id: I5b763acfb28c2f1832874af786704835314fa9c7
Signed-off-by: Ajay Agarwal <ajaya@codeaurora.org>
Some UFS devices violate T-HIBERN8_ENTER_TX time when moving Device
TX (Host RX) lane-1 from SLEEP to HIBERN8 at the end of burst.
M-PHY specification defines max value of 1000 ns for
T-HIBERN8_ENTER_TX but these devices drive DIF-N for 3432 ns. This can
cause the broken link situation after link starup.
This change fixes above issue by increasing host PHY's RX_MIN_HIBERN8_TIME
to 8us (we are giving some additional margin though device needs 3.432us).
Change-Id: I55cb0b718e2e429c0378d842d85a02ace44bf2ce
Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
In case of link integrity failures reported by sink, tear down
the hdcp session. Complete any thread waiting for a response
from sink as part of hdcp protocol to avoid unnecessary delays
in starting new hdcp session.
Change-Id: I0afc56e0177ceccf76b717a483584f7ad5055fe1
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
Some targets doesn't seem to have vbif_nrt_phys in dtsi
file but we still register the debug node for vbif_nrt_reg
and off without checking whether it exists or not. Ensure
this is checked to avoid null pointer reference.
Change-Id: Icce8823f80e586bc4827d8db18dceb2fb866c2f9
Signed-off-by: Jayant Shekhar <jshekhar@codeaurora.org>
Add support to switch non-standard framerate.To achieve this,
first map the fps to standard fps and then tune pixel clock
based non-standard framerate. Panel porches might need update
before pixel clock tuning based on standard framerate mapping.
CRs-fixed: 1032036
Change-Id: I49995875338cd2a3b57e88753cfda1bfa97910dd
Signed-off-by: feifanz <feifanz@codeaurora.org>
Signed-off-by: Krishna Srinivas <krisrini@codeaurora.org>
BTA complete interrupt comes and turns off the clocks. In another
thread we read the panel status and DSI ack returns error. In the
error condition we are trying to read some DSI registers even
when the clocks are turned off.
Change-Id: Ica77c16f3cf4b69f46c9003bb299c6413e199468
Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
Changing the error return value for lineptr sysfs entries, when
the sysfs operation is not allowed. Returning EAGAIN might make
the verification tests to continuously query the sysfs nodes, or
block it. Returning EPERM will fail the query, which is expected.
Change-Id: I43500c07a318da9e2624a1631134228ad45e1cc7
Signed-off-by: Krishna Chaitanya Devarakonda <kdevarak@codeaurora.org>
Change rear and front camera mount angles to have proper orientation.
Change-Id: I7e06e71e0f30d5fa030af52c0bc297f6530bb2fb
CRs-fixed: 1069735
Signed-off-by: Xu Han <hanxu@codeaurora.org>
Fix the parity byte calculation for Audio SDP's that are
sent to the sink during audio playback. If the input data
for the parity byte calculation is only a byte in length,
then the shift operation must only take the first two
nibbles of the byte.
CRs-Fixed: 1076516
Change-Id: Ib686a9aa5198c8e1b30cf37bb3d9c8b259d5fd84
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
Remove excessive logging from AUX transaction procedures as these
logs amount to log spam while debugging.
CRs-Fixed: 1076516
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
Change-Id: Id308267ffe9faf178f7b413c17b44fd68f5b6fef
Update the sink count during the hotplug event in order
to detect hotplug events which involve more than one
sink device.
CRs-Fixed: 1076516
Change-Id: Ic3956da41e04d6287803478527964001db46c67b
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
Update the AUX error codes to match the I2C error codes so that
the driver has the correct corresponding error code. This is
useful for debugging problems in which there is an AUX
transaction failure.
CRs-Fixed: 1076516
Change-Id: I3857905e5cc916a3e095fa8fcf3d170b172a8efd
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
Add support to enter failsafe mode on EDID read failures
that might be caused by corrupt EDID blocks or AUX
transaction failures. The failsafe mode for this driver
is 640x480 at 60fps, in accordance with the Display Port
v1.3 specification.
CRs-Fixed: 1076516
Change-Id: Ia3895fb0e860991173ffcde604c165d007cfa972
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
Add support to parse the test request vector to determine
whether an automated EDID test has been requested. If requested,
send the checksum found in the first EDID block back to the sink
for validation.
Change-Id: I40159e554c1be1972a7e2d91a9792aee89171ac3
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
CRs-Fixed: 1076516
Add support for a new 1080p configuration which utilizes 4 lanes
at a link rate of 2.7 GBps. This configuration is added to the
existing table that stores the transfer unit values for
different link and resolution combinations.
Change-Id: I37a20885445dfff4cf0b9a77c1e948d6793d834b
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
CRs-Fixed: 1062508
Set SEQ_REG(32) to match the L_VAL corresponding to the
first corner with MEM-ACC level 3 or LEVEL_3_UP_VC. This
is needed for compatibility with the latest OSM sequence.
CRs-Fixed: 1095224
Change-Id: Ib9f801f42c5d069ed906ed61bd96634736a07703
Signed-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org>
Ringbuffer timer should always be reset whenever we finish
preempting to that ringbuffer. Currently, there is a case where
wptr in the hardware and the kgsl are identical and thus
the timer isn't reset. Reset the timer regardless if they are
identical or not.
There is one special case when we shouldn't reset the timer.
This happens when we try to figure out next ringbuffer to preempt
but the next ringbuffer is the same one as current. In that case,
if nothing new got submitted to this ringbuffer, then don't reset
the timer.
Change-Id: I6b5aea46f1769021b39ba6e135bef780719a92e7
Signed-off-by: Harshdeep Dhatt <hdhatt@codeaurora.org>
Add qseecom device node with all the necessary parameters,
to enable qseecom driver on msmfalcon.
Change-Id: Ib29962ebc7427391d7c0e355fa46156d2a8d15e5
Signed-off-by: Brahmaji K <bkomma@codeaurora.org>