Commit graph

891,777 commits

Author SHA1 Message Date
Neeraj Soni
cd86102b66 mmc: cqhci: Add inline crypto support to cqhci
Wire up cqhci.c with the eMMC Crypto API and support for block layer inline
encryption additions and the keyslot manager.

Ported and fixed the merged conflicts in cqhci.c file
Added new member in cqhci_host to get platform device from sdhci
during cqhci_pltfm_init().

(cherry picked from mainline kernel_msm-4.19 commit 2543833e).
Conflicts:
	drivers/mmc/host/cqhci.c

Test:
1. Device booted upto UI with File Based Encryption enabled.
2. Key insertion using fscryptctl tool.
3. Created new files under /data and checked retention across
   multiple re-boots.
4. vts_kernel_encryption_test tests.
5. check_encryption test for verifying metadata encryption.

Change-Id: I6860cd29d6f044f559385d438048b850faf9a8be
Signed-off-by: Neeraj Soni <neersoni@codeaurora.org>
Signed-off-by: Vaibhav Agrawal <vagrawa@codeaurora.org>
2020-10-22 10:15:43 -07:00
Neeraj Soni
bec27fe2bc mmc: cqhci: Add eMMC crypto APIs
Add functions to use eMMC inline encryption hardware capability
inline with JEDEC eMMC v5.2 specification and to work with
block keyslot manager. Also add crypto variant vops to handle
quirks in individual inline encryption hardware. The vops fallback
to default implementation which is JEDEC eMMC v5.2 compliant.

Fixed the merged conflict in Kconfig file.
Fixed compilation issue in cqhci-crypto.c file.
(cherry picked from mainline kernel_msm-4.19 commit 32f1d1ca).

Conflicts:
	drivers/mmc/host/Kconfig

Test:
1. Device booted upto UI with File Based Encryption enabled.
2. Key insertion using fscryptctl tool.
3. Created new files under /data and checked retention across
   multiple re-boots.
4. vts_kernel_encryption_test tests.
5. check_encryption test for verifying metadata encryption.

Change-Id: I72b85d572d7c76b966e34b80e7e8eca83a2bb35f
Signed-off-by: Neeraj Soni <neersoni@codeaurora.org>
Signed-off-by: Vaibhav Agrawal <vagrawa@codeaurora.org>
2020-10-22 10:10:58 -07:00
qctecmdr
6bd93187f4 Merge "mailbox: apcs-ipc: Add compatible string for mocaco and scuba" 2020-10-22 04:15:34 -07:00
qctecmdr
7a5dbe0098 Merge "usb: f_gsi: Don't set remote_wakeup_allowed to true by default" 2020-10-22 04:15:34 -07:00
qctecmdr
1deb1342d6 Merge "mmc: cqhci: eMMC JEDEC v5.2 crypto spec addition" 2020-10-22 04:15:34 -07:00
qctecmdr
dd78c0248f Merge "fsa4480: Avoid updating settings if unchanged" 2020-10-22 04:15:34 -07:00
qctecmdr
dc88450c3c Merge "fdt: Add correct return for early_init_dt_scan_memory" 2020-10-21 07:15:02 -07:00
qctecmdr
539edd6d2f Merge "msm-perf: Added threshold check for perf_event" 2020-10-21 07:15:02 -07:00
qctecmdr
65826fd62b Merge "clk: qcom: clk-alpha-pll: Add support to be able to slew PLL" 2020-10-21 07:15:01 -07:00
Neeraj Soni
2807413a16 mmc: cqhci: eMMC JEDEC v5.2 crypto spec addition
Add crypto capability registers and structs defined in v5.2 of
JEDEC eMMC specification in prepration to add support for inline
encryption to eMMC controllers.

(cherry picked from mainline kernel_msm-4.19 commit 08093743).

Change-Id: I8a42be348ca06cffbe841e590c4348990c9d7a08
Signed-off-by: Neeraj Soni <neersoni@codeaurora.org>
Signed-off-by: Vaibhav Agrawal <vagrawa@codeaurora.org>
2020-10-21 14:14:31 +05:30
richagar
1df107b4e5 msm-perf: Added threshold check for perf_event
Added cycle threshold check to perf_events to
filter ipc ratio.

Change-Id: Iedc4ab37eb8668d7019b20a784ad0c0e86ce51df
Signed-off-by: richagar <richagar@codeaurora.org>
2020-10-21 01:12:37 -07:00
qctecmdr
14ce2ef978 Merge "qseecom: improve operation when app unload returns EBUSY" 2020-10-21 01:00:57 -07:00
qctecmdr
fd84b040be Merge "clk: qcom: gcc-holi: Enable clocks for pm8008 by default" 2020-10-21 01:00:57 -07:00
qctecmdr
e19c18ba1b Merge "netfilter: Unlock xt_table later" 2020-10-21 01:00:57 -07:00
qctecmdr
1493c08234 Merge "msm: kgsl: Enable BCL feature on A660 GPU variant" 2020-10-21 01:00:56 -07:00
Jack Pham
559d487878 fsa4480: Avoid updating settings if unchanged
During audio subsystem restart, the audio driver will unregister
its notifier on shutdown and re-register when subsystem is up again.
If a regular USB device, and not a Type-C analog audio device, is
currently connected, we should not re-write the register settings
over I2C to the FSA4480 IC as that will make the D+/D- pins to
be momentarily switched off an on, which causes the USB controller
to detect a momentary disconnect and re-connect of the attached
peripheral.

Fix this by first reading the switch control and enable registers,
and if being updated with the same values, don't re-write them to
avoid unnecessarily resetting D+/D- or SBU1/2.

Change-Id: I9d4e092e9782ca64caf0982958b3e5d05744aa92
Signed-off-by: Jack Pham <jackp@codeaurora.org>
2020-10-20 23:53:52 -07:00
Subash Abhinov Kasiviswanathan
24416c2917 netfilter: Unlock xt_table later
This ensures that two concurrent writers through iptables-restore
cannot overwrite each other. Fixes the following-

<6> Unable to handle kernel paging request at
    virtual address 006b6b6b6b6b6bc5
<6> [006b6b6b6b6b6bc5] address between user
    and kernel address ranges
<2> pc : ipt_do_table+0x3b8/0x660
<2> lr : ipt_do_table+0x31c/0x660
<2> Call trace:
<2>  ipt_do_table+0x3b8/0x660
<2>  iptable_mangle_hook+0x58/0xf8
<2>  nf_hook_slow+0x48/0xd8
<2>  __ip_local_out+0xf4/0x138
<2>  __ip_queue_xmit+0x348/0x3a0
<2>  ip_queue_xmit+0x10/0x18
<2>  __tcp_transmit_skb+0x734/0xaa8
<2>  __tcp_retransmit_skb+0x5b8/0x930
<2>  tcp_send_loss_probe+0x19c/0x300
<2>  tcp_write_timer_handler+0x14c/0x238
<2>  tcp_write_timer+0x74/0xa0
<2>  call_timer_fn+0xc0/0x1c0
<2>  run_timer_softirq+0x2f8/0xa30
<2>  __do_softirq+0x1dc/0x384

This enforces the cleanup of the old entries under the xt_table lock.

CRs-fixed: 2612021
Change-Id: If721ceb7891e58847eae5c1ad9c5e9aea4c569e3
Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
2020-10-20 09:28:08 -07:00
qctecmdr
986ca5b1f1 Merge "msm: kgsl: Skip SP_INST_TAG and SP_INST_DATA dump in snapshot for A6xx" 2020-10-20 09:24:14 -07:00
qctecmdr
dfcf991962 Merge "msm: kgsl: Cleanup kgsl_iommu_probe properly on error" 2020-10-20 09:24:14 -07:00
qctecmdr
1d7dde2504 Merge "msm: kgsl: Clear ddr_table pointer after free" 2020-10-20 09:24:14 -07:00
qctecmdr
4ed01e9865 Merge "msm: kgsl: Update the sequence to resume stalled SMMU on no GMU devices" 2020-10-20 09:24:13 -07:00
qctecmdr
248ae1ef4f Merge "cnss2: Add debug dump for Wlan FW PBL and SBL for HST" 2020-10-20 09:24:13 -07:00
Sarthak Garg
5dc9da83a5 mmc: host: Use request queue pointer for mmc crypto
To use block crypto based inline encryption mechanism
storage device driver should create a keyslot manager
and register it with device request queue. To achieve this
pass request queue pointer during host controller initialization
where request queue can be updated with keyslot manager.

Change-Id: I71f0005a1ad8867b6210e92878b8c112d436688e
Signed-off-by: Sarthak Garg <sartgarg@codeaurora.org>
2020-10-20 00:57:31 -07:00
Vivek Golani
200a8fc4ed mailbox: apcs-ipc: Add compatible string for mocaco and scuba
Add compatible string in mailbox driver to match scuba and monaco
apcs_glb device node.

Change-Id: I5d07413485c73df769a7922e82eb4729321acb7b
Signed-off-by: Vivek Golani <vgolani@codeaurora.org>
2020-10-20 12:48:58 +05:30
Zhen Kong
72729b4dee qseecom: improve operation when app unload returns EBUSY
If unload app was failed due to EBUSY, qseecom will not free
app list entry, but just restore app ref_cnt and return EBUSY
to client.

Change-Id: If7b20b52690a34ba9cf1b3c3e96f84583d221dec
Signed-off-by: Zhen Kong <zkong@codeaurora.org>
2020-10-19 22:08:21 -07:00
qctecmdr
4cf5de7504 Merge "rpmsg: glink: do not break from interrupt handler" 2020-10-19 19:06:17 -07:00
qctecmdr
977809564c Merge "cnss2: Wait for RDDM if device is already in bad state" 2020-10-19 19:06:17 -07:00
qctecmdr
6d38e358c5 Merge "defconfig: Enable pil nodes on sdxlemur perf" 2020-10-19 19:06:16 -07:00
qctecmdr
0ffdcaf93c Merge "net: qrtr: Use alloc_skb_with_frags for backup memory" 2020-10-19 19:06:16 -07:00
qctecmdr
32ca277521 Merge "qcom: wdog: fix static analyzer reported issue in watchdog core" 2020-10-19 16:25:27 -07:00
Mayank Rana
c7c6b1e662 usb: f_gsi: Don't set remote_wakeup_allowed to true by default
Currently USB remote wakeup functionality is not fully supported.
Hence set remote_wakeup_allowed to false instead of setting true.
This helps to disconnect USB IPA GSI channel instead of suspending
on getting suspend interrupt when USB is enumerated into high speed.
It prevents getting any unwanted remote wakeup from IPA which is
racing against USB LPM functionality causing unclock USB controller
register access while handling remote wakeup.

Change-Id: I1691e3989b9d008ea541a51dd51aafca116fe0ff
Signed-off-by: Mayank Rana <mrana@codeaurora.org>
2020-10-19 12:11:08 -07:00
Melody Olvera
3674e9ac35 defconfig: Enable pil nodes on sdxlemur perf
Enable pil node driver on perf for sdxlemur

Change-Id: Ib77e294e7b134dc44c7f3ff2d3f45de27a09597b
Signed-off-by: Melody Olvera <molvera@codeaurora.org>
2020-10-19 10:55:29 -07:00
Taniya Das
02ba86356d clk: qcom: clk-alpha-pll: Add support to be able to slew PLL
Few alpha PLLs would require to be able to slew in the same VCO mode, which
means the PLL would be able to update the new frequency L value without
turning it off. But to be support this feature the PLL needs to calibrated
at the mid of the VCO range and then enabled.

Add support for dynamic update in which the frequency can be changed
without turning off the PLL. and also Update list_register operation
to read the pll offset defined in PLL register map to avoid mismatch
alpha PLL.

Change-Id: Idbb374be8710cdcd80ab3c4ed57f89f00ed15d23
Signed-off-by: Taniya Das <tdas@codeaurora.org>
2020-10-19 22:55:04 +05:30
Deepak Kumar Singh
d1ce922a2b rpmsg: glink: do not break from interrupt handler
If receive callback fails, returning error can cause interrupt
handler to exit. if old interrupts have been missed glink may
not read new packets from rx fifo.

Print error message if callback fails but do not return any error
to interrupt handler so that it can continue reading pending data in
rx fifo even if old interrupts were missed and no new interrupt is
coming from remote host.

Change-Id: I1adec1e2ba7337008ecc2d71bf5f96c331a22695
Signed-off-by: Deepak Kumar Singh <deesin@codeaurora.org>
2020-10-19 19:02:30 +05:30
qctecmdr
1baf48e18b Merge "msm: kgsl: Add missing registers in snapshot dump for holi gpu" 2020-10-19 03:31:30 -07:00
qctecmdr
797e04bfa4 Merge "mmc: Enable clk scaling for cqe" 2020-10-19 03:31:29 -07:00
qctecmdr
2777a719d6 Merge "soc: qcom: smem: increase smem hosts max count" 2020-10-19 03:31:29 -07:00
qctecmdr
63fbc8ffb1 Merge "mmc: sdhci-msm: Pass min and max voltage values to enable regulators" 2020-10-19 03:31:29 -07:00
qctecmdr
819fc38366 Merge "net/embms-kernel : EMBMS Tunneling Module" 2020-10-19 03:31:28 -07:00
qctecmdr
9cd07da8bf Merge "icnss2: Avoid sending fw down uevent to wlan driver twice" 2020-10-19 03:31:28 -07:00
Pankaj Gupta
a2cb531ffa msm: kgsl: Skip SP_INST_TAG and SP_INST_DATA dump in snapshot for A6xx
For A6XX targets skip dumping of SP_INST_TAG and SP_INST_DATA to fix
race in responding crashdumper status register through host path, when
crashdumper is busy reading SP data.

Change-Id: I8eb5647cefdba23571acc21f682782cfbf944eb1
Signed-off-by: Pankaj Gupta <gpankaj@codeaurora.org>
2020-10-19 02:03:47 -07:00
Mukesh Ojha
906421edbe qcom: wdog: fix static analyzer reported issue in watchdog core
Code static analyzer reports 'pivot' variable is uninitialized.
Let's fix this by initializing it with NULL and add necessary
checks.

Change-Id: I2aa521002ea55fa1e44b3ce17262a9093dd130a0
Signed-off-by: Mukesh Ojha <mojha@codeaurora.org>
2020-10-19 14:29:14 +05:30
Deepak Kumar Singh
9228043d74 soc: qcom: smem: increase smem hosts max count
Increase max host count to 14, inorder to accommodate newly
added sybsystem wpss with smem host id 13.

Change-Id: I48c7e576d3478bdc4645c44aa435900f3eaaa2c4
Signed-off-by: Deepak Kumar Singh <deesin@codeaurora.org>
2020-10-19 11:53:06 +05:30
Indira Biruduraju
d4e6b209bd msm: kgsl: Add missing registers in snapshot dump for holi gpu
Add missing registers in snapshot dump collected
at the time of GPU hang for holi gpu.

Change-Id: I90c5a8a001c3fbfdd0e8b2359bc719d779e6545a
Signed-off-by: Indira Biruduraju <ibirudur@codeaurora.org>
2020-10-18 22:14:53 -07:00
Santosh Mardi
8616e29d2c drivers: soc: qcom: fix incorrect updation of pmu cache flag in CPU_PM_EXIT
rimps_memlat driver will cache PMU counter values when cpu
is going down in hotplug path and also when CPU is entering
lpm. Once the PMU counter values are saved to the shared memory,
cache valid bit is set, and it is cleared when cpu comes back online
or exit from lpm.

RIMPS expects the PMU cache flag to be valid, when cpu is offline
or entered lpm. Observed a race when the hotplug is in progress
and that particular cpu can enter and exit lpm. The current
implementation clears the cache flag during lpm exit without
checking the cpu hotplug status. Once hotplug is complete, core
goes offline and the status flag will remain in incorrect state
indicating cache area is invalid, which will cause RIMPS to read
PMU counter values directly from hardware which will result in APB
read errors.

When hotplug is in progress, do not set status flag to
PMU_CACHE_INVALID in CPU_PM_EXIT path.

Change-Id: I17947ad93eeef99b2148e873dc719622aa372b7c
Signed-off-by: Santosh Mardi <gsantosh@codeaurora.org>
2020-10-17 18:36:04 +05:30
Santosh Mardi
67838f80cd drivers: soc: qcom: allow setup of pmu events during hotplug
Setup pmu counter functions of rimps memlat driver check cpu_is_hp
flag before creating counters, and the setup of pmu counters will
be called in two places one in probe and other when cpu is coming
up from hotplug path.

The hotplug path will clear cpu_is_hp after the pmu setup calls are
issued, but pmu setup function will not create pmu events as the
cpu_is_hp flag not cleared at this point, this results in pmu
counters not getting setup even cpu is up from the hotplug path.

Add a parameter to these functions indicating from which path these
are called and update the logic accordingly to allow creation of
pmu events when core is coming up.

Change-Id: I8bf8d52d91d14ab3f4d837271055f03e704e98a0
Signed-off-by: Santosh Mardi <gsantosh@codeaurora.org>
2020-10-17 18:36:03 +05:30
Santosh Mardi
cbcfe29a9d drivers: soc: qcom: use hw counter values for PMU snapshot to RIMPS
RIMPS memlat driver reads the current PMU counter value
using perf_event_read_local() API at the time of core
going offline or entering LPM and saves the current
snapshot to a shared memory for access by RIMPS.

RIMPS reads these values from the shared memory when
core is offline or in LPM state, and reads directly
from PMU hardware when core is online. The value read
from hardware and the one read from shared memory are
going out of sync because perf event driver limits the
counting range of PMU counter to half of the total range
supported by hardware, and it configures the counter to
start counting from midpoint at the time of counter reset
and upon overflow. It keeps adding the delta read from
hardware counters to software maintained counters and it
returns the same through perf_event_read API.
As this is not the exact same value as what is read from
hardware counters, the values read by RIMPS from shared
memory are going out of sync.

To address this get the current snapshot of hardware counter
value from prev_count member of hw_perf_event structure which
is part of perf_event structure, and store that to shared memory.

Change-Id: I71f416270a02f7925b16e576f637cf3579fec6ce
Signed-off-by: Santosh Mardi <gsantosh@codeaurora.org>
2020-10-17 18:35:52 +05:30
Santosh Mardi
2cb80d18ee drivers: soc: qcom: code clean up for rimps_memlat driver
Remove unused variable in hotplug path.

Change-Id: Ida006e8f39adc741ee63f63cdddcb51ddd2804f1
Signed-off-by: Santosh Mardi <gsantosh@codeaurora.org>
2020-10-17 03:24:43 -07:00
Santosh Mardi
dc4268916b drivers: soc: qcom: Handle CPU_PM_ENTER_FAILED notification
Mark PMU cache invalid if CPU_PM_ENTER fails.

Change-Id: Ieb2d34fcd94b99972443a3ade0458f9955281ffe
Signed-off-by: Santosh Mardi <gsantosh@codeaurora.org>
2020-10-17 03:24:21 -07:00
qctecmdr
d77ee90deb Merge "defconfig: msm: Enable qfprom_sys for Lahaina GKI" 2020-10-16 22:07:17 -07:00