Implement platform_execute_tuning and toggle_cdr callbacks that are
needed to support HS200 and SDR104 bus speed modes. Also, set
IO_PAD_PWR_SWITCH control bit in vendor specific register if
the IO voltage level is within low voltage range (1.7v - 1.9v).
Change-Id: If41704758d097229ffc0204d581886e137e8b581
Signed-off-by: Asutosh Das <asutoshd@codeaurora.org>
[venkatg@codeaurora.org: Rename tuning ops fn to platform_execute_tuning]
Signed-off-by: Venkat Gopalakrishnan <venkatg@codeaurora.org>
MSM SDHCI controller doesn't support tuning as specified by the
Standard Host Controller 3.0 spec. As a result of which,
CMD CRC errors are expected for tuning commands. Hence, add a
new quirk SDHCI_QUIRK2_IGNORE_CMDCRC_FOR_TUNING to ignore
those errors for tuning commands.
Change-Id: Id43d300bf8fabea921c80931fbf45cd3782ff3fa
Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
[subhashj@codeaurora.org: fix trivial merge conflict]
Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
Initial version of Qualcomm SDHC has the following two h/w
issues. This patch adds s/w workarounds for the same.
H/W issue: Read Transfer Active/ Write Transfer Active may be not
de-asserted after end of transaction.
S/W workaround: Set Software Reset for DAT line in Software Reset
Register (Bit 2).
Added a quirk SDHCI_QUIRK2_RDWR_TX_ACTIVE_EOT to enable this workaround.
H/W issue: Slow interrupt clearance at 400KHz may cause host controller
driver interrupt handler to be called twice.
S/W Workaround: Add 40us delay in interrupt handler when operating at
initialization frequency(400KHz).
Added a quirk SDHCI_QUIRK2_SLOW_INT_CLR to enable this workaround.
Change-Id: I8b4062f101085adadd66560f77b98b04d75cb836
Signed-off-by: Venkat Gopalakrishnan <venkatg@codeaurora.org>
Signed-off-by: Asutosh Das <asutoshd@codeaurora.org>
Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
[subhashj@codeaurora.org: fix trivial merge conflict]
Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
This patch adds the pad and tlmm configuration to msm-sdhci
driver.
Change-Id: Ic2b9beffdb555598bdc15b4b03c8adb78fbd0c2c
Signed-off-by: Asutosh Das <asutoshd@codeaurora.org>
Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
This platform driver adds the support of Secure Digital Host
Controller Interface compliant controller in MSM chipsets.
Change-Id: Ide3a658ad51a3c3d4a05c47c0e8f013f647c9516
Signed-off-by: Asutosh Das <asutoshd@codeaurora.org>
Signed-off-by: Venkat Gopalakrishnan <venkatg@codeaurora.org>
[subhashj@codeaurora.org: fix trivial merge conflicts and Changed
Qualcomm to Qualcomm Technologies, Inc.]
Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
The upstream sdhci-msm driver has diverged, removing the upstream version
to recreate our internal tree from msm-3.18 to msm-4.4.
Change-Id: I952b08667177272fdc30fea79b445f96a3fc2182
Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
Avoid retrying using single block for read commands that
fail with MMC_BLK_DATA_ERR. The single block read retry
is needed only in case of a CRC error for which
MMC_BLK_ECC_ERR will be set anyway by mmc_blk_err_check().
Change-Id: Iec9487fd73ecf2bdd5e62732cd42cdb3a639d0dc
Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
The data complete interrupt is also used to indicate that a
busy state has ended. Fix a race condition between sdhci_cmd_irq()
that sets any cmd err and sdhci_data_irq() (received to indicate
end of busy state) that clears cmd error. This can happen when a
cmd err is set and finish tasklet is scheduled but sdhci_data_irq()
executes before the tasklet. The cmd err status is critical for the
tasklet handler to reset the controller's state machine. This
should be cleared only when we have successfully processed a sbc
command and are ready to submit the actual command next, not when
there is an actual cmd err.
CRs-fixed: 733074
Change-Id: I91ea2b949c34446fb629446aabb21505734e27bb
Signed-off-by: Venkat Gopalakrishnan <venkatg@codeaurora.org>
Disable HS200 mode until all msm-3.10 mmc changes have been
ported to msm-3.14. This avoids potential hangs at boot.
Change-Id: Ifc3dfbad59705db86c133b26baef0bc739a5dc30
Signed-off-by: Venkat Gopalakrishnan <venkatg@codeaurora.org>
SDMA buffer boundary size parameter in block size register should only be
programmed if host controller DMA is operating in SDMA mode otherwise its
better not to set this parameter to avoid any side effect when DMA is
operating in ADMA mode operation.
Change-Id: Ia29ca4759ead2e4c9ea1d72908444a03bf205bac
Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
[venkatg@codeaurora.org: fix trivial merge conflict]
Signed-off-by: Venkat Gopalakrishnan <venkatg@codeaurora.org>
Certain Samsung eMMC meet multi read timeout, and could not
reponse status CMD anymore after that. Add long read timeout
fixup to resolve it.
Change-Id: Ibeb0e6ab3d889d48fdee91244bec720a6994b907
Signed-off-by: Guoping Yu <guopingy@codeaurora.org>
[venkatg@codeaurora.org: fix trivial merge conflict]
Signed-off-by: Venkat Gopalakrishnan <venkatg@codeaurora.org>
In order for this driver to function as a drop-in replacement for the
msm-3.10 driver:
- Allow selectability on ARCH_MSM
- Rename clock names to include _clk prefix
- Change supported compatible string
Change-Id: I20bc683512ebdd22fcd7845c7e43dd645a2f146f
Signed-off-by: Georgi Djakov <gdjako@codeaurora.org>
Signed-off-by: Josh Cartwright <joshc@codeaurora.org>
[venkatg@codeaurora.org: fix kconfig options conflict]
Signed-off-by: Venkat Gopalakrishnan <venkatg@codeaurora.org>
Fixup callback is added for dais which
do not follow the FE and BE convention
and is directly controlled by userspace
such as hostless dais. This will restrict
the hw_params based on what is supported by
hardware rather than blindly setting what
is given by userspace.
Change-Id: I401c70ab5de1df10363ec808cb68f72d8d74af96
Signed-off-by: Anish Kumar <kanish@codeaurora.org>
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
As per the hardware documentation, PON device in pmicobalt need
not have to be configured during any type of reset. Hence remove
the DT property "qcom,secondary-pon-reset" from pmicobalt PON
device.
CRs-Fixed: 1001210
Change-Id: Iaf46a2247e70e17ed0b0032038860bfa64e7f7c6
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
Current list of domains in iommu-debug was only
maintained during attach/detach calls. But for
masters like graphics this won't account for all
the domains, as it allocates multiple different
domains but attaches only one domain at a time.
Add support for maintaining list of unattached
domains too by adding them to debug_attachments
list during domain alloc but keeping dev as NULL.
We would add entry in debugfs attachment directory
only on actual attach call.
Change-Id: Ifde043e5c39f356b4187a30cbdf020ee943618f1
Signed-off-by: Susheel Khiani <skhiani@codeaurora.org>
show_data messages for the value at the addresses
needs to printed in the continuation.
CRs-Fixed: 1010438
Change-Id: I41c48e090ec4c44aeccd0e8fbbcb814b55c0416d
Signed-off-by: Trilok Soni <tsoni@codeaurora.org>
While setting up route for a particular device, compare
stream name of CPU DAI and Backend DAI to find the correct
Backend DAI.
Change-Id: Ic3f7c0e5b2a1055e7fdf52c78ded797a9a126d03
Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
New country XA is based on Japan. The channels 5170-5250 are marked
as PASSIVE.
CRs-Fixed: 990486
Change-Id: I6dad4ce061316680239b3f9c23e64b23a875eb75
Signed-off-by: Amar Singhal <asinghal@codeaurora.org>
USB GSI function driver uses usb_ipa_w work to queue different events
like EVT_CONNECTED, EVT_DISCONNECTED and more. ipa_event_handler()
uses those events as inputs to make necessary decision about performing
connect and disconnect with IPA driver. It is required that before USB
GSI driver calls ipa_usb_deinit_teth_prot(), it has invoked IPA
disconnect API ipa_usb_xdci_disconnect() if it has called
ipa_usb_xdci_connect() API. Current code is making sure that any
running usb_ipa_w work is being completed before calling
ipa_usb_deinit_teth_prot() but if work is not scheduled and pending,
ipa_usb_xdci_connect() is not called (i.e. later when usb_ipw_w work is
scheduled, EVT_DISCONNECTED is being processed but gsi_unbind() has
changed sm_state as STATE_UNINITIALIZED which results into no-ops.)
which results into USB and IPA driver go out of sync in terms of
expected state machine. Hence calling ipa_usb_init_teth_prot() on next
USB cable connect from gsi_bind_config() fails which results into no
USB GSI functionality. Fix this issue by using drain_workqueue() instead
of flush_workqueue() which makes sure that re-queue work is flushed.
CRs-Fixed: 1005018
Change-Id: I64ff559b85f901688a4abd0110ebb32a5317e34d
Signed-off-by: Mayank Rana <mrana@codeaurora.org>
Enable QPNP_POWER_ON device support for msmcobalt platform so
that the power-on/off reasons of PMIC PON devices can be
printed out during bootup. Also, based on the reset type, PON
devices needs to be configured as per the hardware documentation.
CRs-Fixed: 1001210
Change-Id: I3db5f233e7c182e330f5144b4ab0d0769abf4a8d
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
The defconfigs have gotten out of sync again. Sync them up.
CRs-Fixed: 1017606
Change-Id: I7d2ac7172396e5e08cde8ef156685222eb8941d8
Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
This DT bindings header file snapshot is taken as of msm-3.18
'commit 0b20839e37187 ("Merge "slim-msm: Synchronize SSR callbacks"")'.
CRs-Fixed: 1001210
Change-Id: Ic132efb650d4e8de561c3d1f95a281afeef4ce42
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
Updating SOC layer clock API to support both platform drivers and
i2c driver.
Change-Id: I3d4a2e5c778c23dd80644080fdad7512c5e71e33
Signed-off-by: Sureshnaidu Laveti <lsuresh@codeaurora.org>
While porting changes to 4.4, looks like some functionality lost
and causing below compilation issues if we try to enable ZRAM.
[1]
drivers/block/zram/zram_drv.c: In function 'zram_bvec_write':
drivers/block/zram/zram_drv.c:724:9: error: 'ALLOC_ERROR_LOG_RATE_MS' \
undeclared (first use in this function)
ALLOC_ERROR_LOG_RATE_MS))
^
drivers/block/zram/zram_drv.c:724:9: note: each undeclared identifier \
is reported only once for each function it appears in
drivers/block/zram/zram_drv.c: In function 'zram_add':
drivers/block/zram/zram_drv.c:1239:34: error: 'struct zram' has no \
member named 'queue'
__set_bit(QUEUE_FLAG_FAST, &zram->queue->queue_flags);
^
make[4]: *** [drivers/block/zram/zram_drv.o] Error 1
make[3]: *** [drivers/block/zram] Error 2
make[2]: *** [drivers/block] Error 2
make[1]: *** [drivers] Error 2
[2]
drivers/block/zram/zram_drv.c: In function 'zram_add':
drivers/block/zram/zram_drv.c:1241:34: error: 'struct zram' \
has no member named 'queue'
__set_bit(QUEUE_FLAG_FAST, &zram->queue->queue_flags);
^
make[4]: *** [drivers/block/zram/zram_drv.o] Error 1
make[3]: *** [drivers/block/zram] Error 2
make[2]: *** [drivers/block] Error 2
CRs-Fixed: 1013947
Change-Id: I4f7944069306ba92e1fd82625bc15c7fa3bcdb0c
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
Enable camera VFE, Pproc and jpeg nodes in dtsi.
CRs-Fixed: 1017151
Change-Id: I33b172ca712064dcc86a87ae413f868f8d7d4342
Signed-off-by: JinHee Kim <jinheek@codeaurora.org>
a malicious app can open a perf event with constraint_duplicate
bit set, disable the event, and close the fd. On closing the fd,
the perf_release() modification causes the kernel to clean up
the event as if it still were enabled, leading to the event
being removed from a list twice.
CRs-Fixed: 977563
Change-Id: I5fbec3722407d2f3d0ff0d9f7097c5889e31fd62
Signed-off-by: Srinivasarao P <spathi@codeaurora.org>
Type-C cable can be connected in two different orientations.
Connector orientation information is required to configure
super speed phy lane. Extcon driver provides this information
using EXTCON_USB_CC.
Change-Id: Ib2c86970b30cb575146438611a11fde17ab106e8
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
When SPM_CORE_RET_MAPPING is set to 1, cores in retention
are treated as inactive by the OSM. However, currently
this register is programmed to 0 when the flag to treat
cores in retention as inactive is specified. Fix this.
Change-Id: Ibc5df71ddd0cfdabf82d3c1e47efca0d88823a2f
CRs-Fixed: 1017123
Signed-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org>
Currently USB GSI function driver increments USB gadget device's
pm usage count on set_alt() and decrements on USB bus suspend or
USB cable disconnect case. Current code is not decrementing this
usage count when sm_state is STATE_INITIALIZED and USB cable is
disconnected (i.e. event EVT_DISCONNECTED posted). Fix this issue
by decrementing USB gadget device's pm usage count by addding check
for event EVT_DISCONNECTED when sm_state is STATE_INITIALIZED.
CRs-Fixed: 1003242
Change-Id: I4d6c9ce254f4c4139313dfd33da6c8745f34a1d3
Signed-off-by: Mayank Rana <mrana@codeaurora.org>
This change adds support for concurrent writeback in supported
targets. The client requests for concurrent writeback by
selecting the data point in output buffer flags.
Change-Id: Ic108ce94daef4f96d1fa27b4057e49c01b9e9b8e
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
Signed-off-by: Ingrid Gallardo <ingridg@codeaurora.org>
Add programming the PLL_CAL_L_VAL register to the fabia PLL
set_rate sequence. This is required on MSMCOBALT v1 as a
workaround.
CRs-Fixed: 1016938
Change-Id: I298acf633228b2c565736bf7bfd446d96f4e1983
Signed-off-by: Deepak Katragadda <dkatraga@codeaurora.org>
Currently we don't support having both CONFIG_DEBUG_RODATA
and CONFIG_FORCE_PAGES enabled at the same time.
Update the dependencies for CONFIG_FORCE_PAGES to enforce
this.
If there is a need for read only support with
CONFIG_FORCE_PAGES enabled then enable
CONFIG_KERNEL_TEXT_RDONLY instead of CONFIG_DEBUG_RODATA.
Change-Id: I9ee1732ed0673edc7272d32469d08133fba9637f
Signed-off-by: Liam Mark <lmark@codeaurora.org>
Port support from 3.10 for retrying cma allocations
to 3.18 to help resolve cma allocation failures.
It was observed that CMA pages are sometimes getting
pinned down by BG processes scheduled out in their exit
path. Since BG processes have lower priority they end up
getting less time slice by scheduler there by consuming
more time to free up CMA pages.
Also when a process is being forked copy_one_pte
may create copy-on-write mappings, when this is done
the page _count and page _mapcount are each
incremented sequentially. If the process is context
switched out after incrementing the _count but before
incrementing the _mapcount then the page will appear
temporarily pinned.
So instead of failing to allocate and directly
returning an error on the CMA allocation path we do 2
retries, with sleeps, to give the system an opportunity
to unpin any pinned pages.
Change-Id: I022a9341f8ee44f281c7cb34769695843e97d684
Signed-off-by: Susheel Khiani <skhiani@codeaurora.org>
Signed-off-by: Liam Mark <lmark@codeaurora.org>
While force mapping regions as page, do not go for 1GB
block mapping.
Change-Id: I85ca7046626048acb7a138dc174dc40efbba4ac9
Signed-off-by: Shiraz Hashim <shashim@codeaurora.org>
The provision to map 1GB block, gives a problem during
dma_contiguous_remap when it attempts to remaps the dma
buffers into 4K. During this attempt to remap dma buffers
it overwrites pgd mapping for 1G block, thus leaving an
unmapped hole.
Managing remapping of dma regions with 1G block mapping is
difficult hence avoid mapping 1G block and switch to
SECTION_SIZE mapping (2MB) when memory region overlaps
with dma buffers range.
Change-Id: I2aa4119b3aeb328a2b95cf22656d2ec36012716f
Signed-off-by: Shiraz Hashim <shashim@codeaurora.org>
bonding and TC drivers (sch_multiq) are required
for fast session transfer feature.
CRs-Fixed: 1001827
Change-Id: I08ee482ddc6c189241a69452fb12335d1ffb626f
Signed-off-by: Maya Erez <merez@codeaurora.org>
In cases where source ep or dest ep is not valid, descriptor
memory allocated for frag skb's is not freed. Make a change
to free the memory in such error cases.
Change-Id: Ie15c48ae1bb34e304795607a09c753360eb015ec
Acked-by: Chaitanya Pratapa <cpratapa@qti.qualcomm.com>
Signed-off-by: Sridhar Ancha <sancha@codeaurora.org>
Make changes to use consistent function names across v2 and V3
during SSR functionality.
Change-Id: Ib9c79f4795d0be9ca00b3cda984ed89b61e58b02
Acked-by: Chaitanya Pratapa <cpratapa@qti.qualcomm.com>
Signed-off-by: Sridhar Ancha <sancha@codeaurora.org>
Enable v4l2 video driver on msmcobalt for decode
and encode sessions.
Change-Id: Ibda63abad6a469c0a5f738c51ee1e740d0f1ce7a
Signed-off-by: Vikash Garodia <vgarodia@codeaurora.org>
Enable VMEM node and configure the
size as per msmcobalt.
CRs-Fixed: 1008076
Change-Id: I8bbb827e6fcddb12bf452279f5f7d60b614c2915
Signed-off-by: Vikash Garodia <vgarodia@codeaurora.org>
Common log driver can be used to register entries for memory dump table.
Change-Id: I75be0d467c8f7c2db854987598770f9798688e51
Signed-off-by: Shashank Mittal <mittals@codeaurora.org>
Set MSM_DCC config to enable support for Data Capture and Compare(DCC)
device.
Change-Id: Ibc2de3c142b8df4ac86e4628199726750f19dac3
Signed-off-by: Shashank Mittal <mittals@codeaurora.org>