android_kernel_xiaomi_sm8350/drivers/soc/qcom/Kconfig

1374 lines
49 KiB
Plaintext
Raw Permalink Normal View History

# SPDX-License-Identifier: GPL-2.0-only
#
# QCOM Soc drivers
#
menu "Qualcomm SoC drivers"
config QCOM_AOSS_QMP
tristate "Qualcomm AOSS Driver"
depends on ARCH_QCOM || COMPILE_TEST
depends on MAILBOX
soc: qcom: fix QCOM_AOSS_QMP dependency and build errors Fix Kconfig warning and subsequent build errors that are caused when PM_GENERIC_DOMAINS=y but CONFIG_PM is not set/enabled. WARNING: unmet direct dependencies detected for PM_GENERIC_DOMAINS Depends on [n]: PM [=n] Selected by [m]: - QCOM_AOSS_QMP [=m] && (ARCH_QCOM || COMPILE_TEST [=y]) && MAILBOX [=y] && COMMON_CLK [=y] Fixes these build errors: ../drivers/base/power/domain.c: In function ‘genpd_queue_power_off_work’: ../drivers/base/power/domain.c:485:13: error: ‘pm_wq’ undeclared (first use in this function) queue_work(pm_wq, &genpd->power_off_work); ../drivers/base/power/domain.c:485:13: note: each undeclared identifier is reported only once for each function it appears in ../drivers/base/power/domain.c: In function ‘genpd_dev_pm_qos_notifier’: ../drivers/base/power/domain.c:675:25: error: ‘struct dev_pm_info’ has no member named ‘ignore_children’ if (!dev || dev->power.ignore_children) ../drivers/base/power/domain.c: In function ‘rtpm_status_str’: ../drivers/base/power/domain.c:2754:16: error: ‘struct dev_pm_info’ has no member named ‘runtime_error’ if (dev->power.runtime_error) ../drivers/base/power/domain.c:2756:21: error: ‘struct dev_pm_info’ has no member named ‘disable_depth’ else if (dev->power.disable_depth) ../drivers/base/power/domain.c:2758:21: error: ‘struct dev_pm_info’ has no member named ‘runtime_status’ else if (dev->power.runtime_status < ARRAY_SIZE(status_lookup)) ../drivers/base/power/domain.c:2759:31: error: ‘struct dev_pm_info’ has no member named ‘runtime_status’ p = status_lookup[dev->power.runtime_status]; ../drivers/base/power/domain_governor.c: In function ‘default_suspend_ok’: ../drivers/base/power/domain_governor.c:82:17: error: ‘struct dev_pm_info’ has no member named ‘ignore_children’ Signed-off-by: Randy Dunlap <rdunlap@infradead.org> Cc: Bjorn Andersson <bjorn.andersson@sonymobile.com> Cc: Bjorn Andersson <bjorn.andersson@linaro.org> Cc: Andy Gross <andy.gross@linaro.org> Cc: David Brown <david.brown@linaro.org> Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
2019-06-14 17:47:48 -04:00
depends on COMMON_CLK && PM
select PM_GENERIC_DOMAINS
help
This driver provides the means of communicating with and controlling
the low-power state for resources related to the remoteproc
subsystems as well as controlling the debug clocks exposed by the Always On
Subsystem (AOSS) using Qualcomm Messaging Protocol (QMP).
config QCOM_COMMAND_DB
Merge android11-5.4.54 (261a54f) into msm-5.4 * refs/heads/tmp-261a54f: Revert "soc: qcom: rpmh: Update dirty flag only when data changes" Revert "soc: qcom: rpmh: Invalidate SLEEP and WAKE TCSes before flushing new data" Revert "soc: qcom: rpmh-rsc: Clear active mode configuration for wake TCS" Revert "soc: qcom: rpmh-rsc: Allow using free WAKE TCS for active request" Revert "soc: qcom: rpmh: Dirt can only make you dirtier, not cleaner" Linux 5.4.54 ath9k: Fix regression with Atheros 9271 ath9k: Fix general protection fault in ath9k_hif_usb_rx_cb dm integrity: fix integrity recalculation that is improperly skipped ASoC: topology: fix tlvs in error handling for widget_dmixer ASoC: topology: fix kernel oops on route addition error ASoC: qcom: Drop HAS_DMA dependency to fix link failure ASoC: rt5670: Add new gpio1_is_ext_spk_en quirk and enable it on the Lenovo Miix 2 10 x86, vmlinux.lds: Page-align end of ..page_aligned sections parisc: Add atomic64_set_release() define to avoid CPU soft lockups drm/amd/powerplay: fix a crash when overclocking Vega M drm/amdgpu: Fix NULL dereference in dpm sysfs handlers mmc: sdhci-of-aspeed: Fix clock divider calculation io-mapping: indicate mapping failure khugepaged: fix null-pointer dereference due to race mm: memcg/slab: fix memory leak at non-root kmem_cache destroy mm/memcg: fix refcount error while moving and swapping mm/mmap.c: close race between munmap() and expand_upwards()/downwards() Makefile: Fix GCC_TOOLCHAIN_DIR prefix for Clang cross compilation vt: Reject zero-sized screen buffer size. fbdev: Detect integer underflow at "struct fbcon_ops"->clear_margins. /dev/mem: Add missing memory barriers for devmem_inode serial: 8250_mtk: Fix high-speed baud rates clamping serial: 8250: fix null-ptr-deref in serial8250_start_tx() serial: tegra: fix CREAD handling for PIO staging: comedi: addi_apci_1564: check INSN_CONFIG_DIGITAL_TRIG shift staging: comedi: addi_apci_1500: check INSN_CONFIG_DIGITAL_TRIG shift staging: comedi: ni_6527: fix INSN_CONFIG_DIGITAL_TRIG support staging: comedi: addi_apci_1032: check INSN_CONFIG_DIGITAL_TRIG shift staging: wlan-ng: properly check endpoint types tty: xilinx_uartps: Really fix id assignment iwlwifi: mvm: don't call iwl_mvm_free_inactive_queue() under RCU Revert "cifs: Fix the target file was deleted when rename failed." usb: xhci: Fix ASM2142/ASM3142 DMA addressing usb: xhci-mtk: fix the failure of bandwidth allocation binder: Don't use mmput() from shrinker function. RISC-V: Upgrade smp_mb__after_spinlock() to iorw,iorw drivers/perf: Prevent forced unbinding of PMU drivers asm-generic/mmiowb: Allow mmiowb_set_pending() when preemptible() x86: math-emu: Fix up 'cmp' insn for clang ias arm64: Use test_tsk_thread_flag() for checking TIF_SINGLESTEP drivers/perf: Fix kernel panic when rmmod PMU modules during perf sampling ALSA: hda/realtek - fixup for yet another Intel reference board hwmon: (scmi) Fix potential buffer overflow in scmi_hwmon_probe() platform/x86: asus-wmi: allow BAT1 battery name platform/x86: ISST: Add new PCI device ids hwmon: (nct6775) Accept PECI Calibration as temperature source for NCT6798D drm/amdgpu: fix preemption unit test drm/amdgpu/gfx10: fix race condition for kiq hwmon: (adm1275) Make sure we are reading enough data for different chips usb: cdns3: trace: fix some endian issues usb: cdns3: ep0: fix some endian issues usb: gadget: udc: gr_udc: fix memleak on error handling path in gr_ep_init() usb: dwc3: pci: add support for the Intel Jasper Lake usb: dwc3: pci: add support for the Intel Tiger Lake PCH -H variant Input: elan_i2c - only increment wakeup count on touch Input: synaptics - enable InterTouch for ThinkPad X1E 1st gen dmaengine: ioat setting ioat timeout as module parameter dmaengine: fsl-edma: fix wrong tcd endianness for big-endian cpu hwmon: (aspeed-pwm-tacho) Avoid possible buffer overflow regmap: dev_get_regmap_match(): fix string comparison spi: mediatek: use correct SPI_CFG2_REG MACRO ARM: dts: n900: remove mmc1 card detect gpio Input: add `SW_MACHINE_COVER` dmaengine: tegra210-adma: Fix runtime PM imbalance on error HID: apple: Disable Fn-key key-re-mapping on clone keyboards HID: steam: fixes race in handling device list. HID: alps: support devices with report id 2 HID: i2c-hid: add Mediacom FlexBook edge13 to descriptor override scripts/gdb: fix lx-symbols 'gdb.error' while loading modules scripts/decode_stacktrace: strip basepath from all paths serial: exar: Fix GPIO configuration for Sealevel cards based on XR17V35X geneve: fix an uninitialized value in geneve_changelink() bonding: check return value of register_netdevice() in bond_newlink() i2c: i2c-qcom-geni: Fix DMA transfer race i2c: rcar: always clear ICSAR to avoid side effects enetc: Remove the mdio bus on PF probe bailout nfsd4: fix NULL dereference in nfsd/clients display code Revert "PCI/PM: Assume ports without DLL Link Active train links in 100 ms" net: ethernet: ave: Fix error returns in ave_init ipvs: fix the connection sync failed in some cases qed: suppress false-positives interrupt error messages on HW init qed: suppress "don't support RoCE & iWARP" flooding on HW init netdevsim: fix unbalaced locking in nsim_create() net: dsa: microchip: call phy_remove_link_mode during probe net: hns3: fix error handling for desc filling net: ag71xx: add missed clk_disable_unprepare in error path of probe ionic: fix up filter locks and debug msgs ionic: use offset for ethtool regs data mlxsw: destroy workqueue when trap_register in mlxsw_emad_init bonding: check error value of register_netdevice() immediately net: smc91x: Fix possible memory leak in smc_drv_probe() drm: sun4i: hdmi: Fix inverted HPD result ieee802154: fix one possible memleak in adf7242_probe net: dp83640: fix SIOCSHWTSTAMP to update the struct with actual configuration ASoC: Intel: bytcht_es8316: Add missed put_device() RDMA/mlx5: Use xa_lock_irq when access to SRQ table ax88172a: fix ax88172a_unbind() failures vsock/virtio: annotate 'the_virtio_vsock' RCU pointer hippi: Fix a size used in a 'pci_free_consistent()' in an error handling path fpga: dfl: fix bug in port reset handshake fpga: dfl: pci: reduce the scope of variable 'ret' bnxt_en: Fix completion ring sizing with TPA enabled. bnxt_en: Fix race when modifying pause settings. btrfs: fix page leaks after failure to lock page for delalloc btrfs: fix mount failure caused by race with umount btrfs: fix double free on ulist after backref resolution failure ASoC: rt5670: Correct RT5670_LDO_SEL_MASK ALSA: info: Drop WARN_ON() from buffer NULL sanity check ALSA: hda/realtek: Fixed ALC298 sound bug by adding quirk for Samsung Notebook Pen S uprobes: Change handle_swbp() to send SIGTRAP with si_code=SI_KERNEL, to fix GDB regression btrfs: reloc: clear DEAD_RELOC_TREE bit for orphan roots to prevent runaway balance btrfs: reloc: fix reloc root leak and NULL pointer dereference SUNRPC reverting d03727b248d0 ("NFSv4 fix CLOSE not waiting for direct IO compeletion") drm/amd/display: Check DMCU Exists Before Loading dmabuf: use spinlock to access dmabuf->name ARM: dts: imx6qdl-gw551x: fix audio SSI ARM: dts: imx6qdl-gw551x: Do not use 'simple-audio-card,dai-link' irqdomain/treewide: Keep firmware node unconditionally allocated fuse: fix weird page warning drivers/firmware/psci: Fix memory leakage in alloc_init_cpu_groups() dm: use bio_uninit instead of bio_disassociate_blkg scsi: dh: Add Fujitsu device to devinfo and dh lists scsi: mpt3sas: Fix error returns in BRM_status_show drm/nouveau/i2c/g94-: increase NV_PMGR_DP_AUXCTL_TRANSACTREQ timeout net: sky2: initialize return of gm_phy_read ALSA: hda/hdmi: fix failures at PCM open on Intel ICL and later drivers/net/wan/lapbether: Fixed the value of hard_header_len scsi: mpt3sas: Fix unlock imbalance xtensa: update *pos in cpuinfo_op.next xtensa: fix __sync_fetch_and_{and,or}_4 declarations scsi: scsi_transport_spi: Fix function pointer check mac80211: allow rx of mesh eapol frames with default rx key pinctrl: amd: fix npins for uart0 in kerncz_groups gpio: arizona: put pm_runtime in case of failure gpio: arizona: handle pm_runtime_get_sync failure case soc: qcom: rpmh: Dirt can only make you dirtier, not cleaner ANDROID: build: update ABI definitions ANDROID: update the kernel release format for GKI ANDROID: GKI: update clocksource abi due to upstream fixes needed for VDSO backport UPSTREAM: arm64: arch_timer: Disable the compat vdso for cores affected by ARM64_WORKAROUND_1418040 UPSTREAM: arm64: arch_timer: Allow an workaround descriptor to disable compat vdso UPSTREAM: arm64: Introduce a way to disable the 32bit vdso ANDROID: staging: android: ion: Fix compilation error for ion_trace.h ANDROID: GKI: enable CONFIG_SCSI_UFS_BSG=y ANDROID: Incremental fs: magic number compatible 32-bit ANDROID: kbuild: don't merge .*..compoundliteral in modules ANDROID: KABI updates for db845c (QCOM_COMMAND_DB fixups) ANDROID: soc: qcom: cmd-db: Allow COMMAND_DB driver to be loaded as a module ANDROID: GKI: preserve ABI for struct sock_cgroup_data Revert "genetlink: remove genl_bind" Revert "arm64/alternatives: use subsections for replacement sequences" ANDROID: KABI updates for db845c (USB_EHCI_HCD, USB_EHCI_HCD_PLATFORM and DWC3 fixups) ANDROID: db845c_gki.fragment: Remove DWC3 modules built into GKI ANDROID: db845c_gki.fragment: Remove modules built into GKI ANDROID: power: wakeup_reason: refine wakeup logs ANDROID: power: wakeup_reason: export log_threaded_irq_wakeup_reason Linux 5.4.53 gpio: pca953x: disable regmap locking for automatic address incrementing drm/i915/gvt: Fix two CFL MMIO handling caused by regression. iommu/vt-d: Make Intel SVM code 64-bit only ionic: export features for vlans to use spi: sprd: switch the sequence of setting WDG_LOAD_LOW and _HIGH rxrpc: Fix trace string libceph: don't omit recovery_deletes in target_copy() block: fix get_max_segment_size() overflow on 32bit arch block: fix splitting segments on boundary masks drm/i915/gt: Ignore irq enabling on the virtual engines drm/amdgpu/sdma5: fix wptr overwritten in ->get_wptr() genirq/affinity: Handle affinity setting on inactive interrupts correctly sched/fair: handle case of task_h_load() returning 0 sched: Fix unreliable rseq cpu_id for new tasks arm64: compat: Ensure upper 32 bits of x0 are zero on syscall return arm64: ptrace: Consistently use pseudo-singlestep exceptions arm64: ptrace: Override SPSR.SS when single-stepping is enabled thermal/drivers/cpufreq_cooling: Fix wrong frequency converted from power thermal: int3403_thermal: Downgrade error message misc: atmel-ssc: lock with mutex instead of spinlock dmaengine: fsl-edma-common: correct DSIZE_32BYTE dmaengine: mcf-edma: Fix NULL pointer exception in mcf_edma_tx_handler dmaengine: fsl-edma: Fix NULL pointer exception in fsl_edma_tx_handler intel_th: Fix a NULL dereference when hub driver is not loaded intel_th: pci: Add Emmitsburg PCH support intel_th: pci: Add Tiger Lake PCH-H support intel_th: pci: Add Jasper Lake CPU support powerpc/pseries/svm: Fix incorrect check for shared_lppaca_size powerpc/book3s64/pkeys: Fix pkey_access_permitted() for execute disable pkey hwmon: (emc2103) fix unable to change fan pwm1_enable attribute riscv: use 16KB kernel stack on 64-bit timer: Fix wheel index calculation on last level timer: Prevent base->clk from moving backward scsi: megaraid_sas: Remove undefined ENABLE_IRQ_POLL macro uio_pdrv_genirq: fix use without device tree and no interrupt uio_pdrv_genirq: Remove warning when irq is not specified Input: elan_i2c - add more hardware ID for Lenovo laptops Input: i8042 - add Lenovo XiaoXin Air 12 to i8042 nomux list mei: bus: don't clean driver pointer Revert "zram: convert remaining CLASS_ATTR() to CLASS_ATTR_RO()" fuse: Fix parameter for FS_IOC_{GET,SET}FLAGS fuse: use ->reconfigure() instead of ->remount_fs() fuse: ignore 'data' argument of mount(..., MS_REMOUNT) ovl: fix unneeded call to ovl_change_flags() ovl: relax WARN_ON() when decoding lower directory file handle ovl: inode reference leak in ovl_is_inuse true case. ovl: fix regression with re-formatted lower squashfs serial: mxs-auart: add missed iounmap() in probe failure and remove virtio: virtio_console: add missing MODULE_DEVICE_TABLE() for rproc serial Revert "tty: xilinx_uartps: Fix missing id assignment to the console" virt: vbox: Fix guest capabilities mask check virt: vbox: Fix VBGL_IOCTL_VMMDEV_REQUEST_BIG and _LOG req numbers to match upstream USB: serial: option: add Quectel EG95 LTE modem USB: serial: option: add GosunCn GM500 series USB: serial: ch341: add new Product ID for CH340 USB: serial: cypress_m8: enable Simply Automated UPB PIM USB: serial: iuu_phoenix: fix memory corruption usb: gadget: function: fix missing spinlock in f_uac1_legacy usb: chipidea: core: add wakeup support for extcon usb: dwc2: Fix shutdown callback in platform USB: c67x00: fix use after free in c67x00_giveback_urb ALSA: hda/realtek - Enable Speaker for ASUS UX563 ALSA: hda/realtek - Enable Speaker for ASUS UX533 and UX534 ALSA: hda/realtek: Enable headset mic of Acer TravelMate B311R-31 with ALC256 ALSA: hda/realtek: enable headset mic of ASUS ROG Zephyrus G14(G401) series with ALC289 ALSA: hda/realtek - change to suitable link model for ASUS platform ALSA: usb-audio: Fix race against the error recovery URB submission ALSA: line6: Sync the pending work cancel at disconnection ALSA: line6: Perform sanity check for each URB creation HID: quirks: Ignore Simply Automated UPB PIM HID: quirks: Always poll Obins Anne Pro 2 keyboard HID: magicmouse: do not set up autorepeat HID: logitech-hidpp: avoid repeated "multiplier = " log messages slimbus: core: Fix mismatch in of_node_get/put clk: qcom: gcc: Add missing UFS clocks for SM8150 clk: qcom: gcc: Add GPU and NPU clocks for SM8150 mtd: rawnand: oxnas: Release all devices in the _remove() path mtd: rawnand: oxnas: Unregister all devices on error mtd: rawnand: oxnas: Keep track of registered devices mtd: rawnand: brcmnand: fix CS0 layout mtd: rawnand: brcmnand: correctly verify erased pages mtd: rawnand: timings: Fix default tR_max and tCCS_min timings mtd: rawnand: marvell: Fix probe error path mtd: rawnand: marvell: Use nand_cleanup() when the device is not yet registered mtd: rawnand: marvell: Fix the condition on a return code RDMA/mlx5: Verify that QP is created with RQ or SQ soc: qcom: rpmh-rsc: Allow using free WAKE TCS for active request soc: qcom: rpmh-rsc: Clear active mode configuration for wake TCS soc: qcom: rpmh: Invalidate SLEEP and WAKE TCSes before flushing new data soc: qcom: rpmh: Update dirty flag only when data changes perf stat: Zero all the 'ena' and 'run' array slot stats for interval mode PCI/PM: Call .bridge_d3() hook only if non-NULL habanalabs: Align protection bits configuration of all TPCs apparmor: ensure that dfa state tables have entries soc: qcom: socinfo: add missing soc_id sysfs entry arm: dts: mt7623: add phy-mode property for gmac2 copy_xstate_to_kernel: Fix typo which caused GDB regression regmap: debugfs: Don't sleep while atomic for fast_io regmaps keys: asymmetric: fix error return code in software_key_query() arm64: dts: spcfpga: Align GIC, NAND and UART nodenames with dtschema ARM: dts: socfpga: Align L2 cache-controller nodename with dtschema xprtrdma: fix incorrect header size calculations Revert "thermal: mediatek: fix register index error" ARM: dts: Fix dcan driver probe failed on am437x platform fuse: don't ignore errors from fuse_writepages_fill() NFS: Fix interrupted slots by sending a solo SEQUENCE operation clk: AST2600: Add mux for EMMC clock clk: mvebu: ARMADA_AP_CPU_CLK needs to select ARMADA_AP_CP_HELPER staging: comedi: verify array index is correct before using it usb: gadget: udc: atmel: fix uninitialized read in debug printk spi: spi-sun6i: sun6i_spi_transfer_one(): fix setting of clock rate dmaengine: dmatest: stop completed threads when running without set channel dmaengine: dw: Initialize channel before each transfer iio: adc: ad7780: Fix a resource handling path in 'ad7780_probe()' bus: ti-sysc: Do not disable on suspend for no-idle bus: ti-sysc: Fix sleeping function called from invalid context for RTC quirk bus: ti-sysc: Fix wakeirq sleeping function called from invalid context arm64: dts: meson-gxl-s805x: reduce initial Mali450 core frequency arm64: dts: meson: add missing gxl rng clock phy: sun4i-usb: fix dereference of pointer phy0 before it is null checked dmaengine: sh: usb-dmac: set tx_result parameters soundwire: intel: fix memory leak with devm_kasprintf iio:health:afe4404 Fix timestamp alignment and prevent data leak. ALSA: usb-audio: Add registration quirk for Kingston HyperX Cloud Flight S bus: ti-sysc: Use optional clocks on for enable and wait for softreset bit ACPI: video: Use native backlight on Acer TravelMate 5735Z Input: mms114 - add extra compatible for mms345l ALSA: usb-audio: Add quirk for Focusrite Scarlett 2i2 ALSA: usb-audio: Add registration quirk for Kingston HyperX Cloud Alpha S ACPI: video: Use native backlight on Acer Aspire 5783z ALSA: usb-audio: Rewrite registration quirk handling mmc: sdhci: do not enable card detect interrupt for gpio cd type doc: dt: bindings: usb: dwc3: Update entries for disabling SS instances in park mode ALSA: usb-audio: Create a registration quirk for Kingston HyperX Amp (0951:16d8) Input: goodix - fix touch coordinates on Cube I15-TC ALSA: usb-audio: Add support for MOTU MicroBook IIc bus: ti-sysc: Detect EDMA and set quirk flags for tptc arm64: dts: g12-common: add parkmode_disable_ss_quirk on DWC3 controller bus: ti-sysc: Detect display subsystem related devices bus: ti-sysc: Handle module unlock quirk needed for some RTC bus: ti-sysc: Consider non-existing registers too when matching quirks bus: ti-sysc: Rename clk related quirks to pre_reset and post_reset quirks scsi: sr: remove references to BLK_DEV_SR_VENDOR, leave it enabled drm/sun4i: tcon: Separate quirks for tcon0 and tcon1 on A20 ARM: at91: pm: add quirk for sam9x60's ulp1 HID: quirks: Remove ITE 8595 entry from hid_have_special_driver mmc: mmci: Support any block sizes for ux500v2 and qcom variant ARM: OMAP2+: use separate IOMMU pdata to fix DRA7 IPU1 boot ARM: OMAP2+: Add workaround for DRA7 DSP MStandby errata i879 ARM: OMAP4+: remove pdata quirks for omap4+ iommus net: sfp: add some quirks for GPON modules net: sfp: add support for module quirks Revert "usb/xhci-plat: Set PM runtime as active on resume" Revert "usb/ehci-platform: Set PM runtime as active on resume" Revert "usb/ohci-platform: Fix a warning when hibernating" net: ethernet: mvneta: Add back interface mode validation net: ethernet: mvneta: Do not error out in non serdes modes net: macb: call pm_runtime_put_sync on failure path of: of_mdio: Correct loop scanning logic net: dsa: bcm_sf2: Fix node reference count spi: spi-fsl-dspi: Fix lockup if device is shutdown during SPI transfer iio:health:afe4403 Fix timestamp alignment and prevent data leak. iio:pressure:ms5611 Fix buffer element alignment iio:humidity:hts221 Fix alignment and data leak issues iio: pressure: zpa2326: handle pm_runtime_get_sync failure iio: mma8452: Add missed iio_device_unregister() call in mma8452_probe() iio: core: add missing IIO_MOD_H2/ETHANOL string identifiers iio: magnetometer: ak8974: Fix runtime PM imbalance on error iio:humidity:hdc100x Fix alignment and data leak issues iio:magnetometer:ak8974: Fix alignment and data leak issues arm64/alternatives: don't patch up internal branches i2c: eg20t: Load module automatically if ID matches gfs2: read-only mounts should grab the sd_freeze_gl glock tpm_tis: extra chip->ops check on error path in tpm_tis_core_init arm64/alternatives: use subsections for replacement sequences cifs: prevent truncation from long to int in wait_for_free_credits dt-bindings: mailbox: zynqmp_ipi: fix unit address m68k: mm: fix node memblock init m68k: nommu: register start of the memory with memblock blk-mq-debugfs: update blk_queue_flag_name[] accordingly for new flags thermal/drivers: imx: Fix missing of_node_put() at probe time x86/fpu: Reset MXCSR to default in kernel_fpu_begin() drm/exynos: fix ref count leak in mic_pre_enable drm/exynos: Properly propagate return value in drm_iommu_attach_device() drm/msm/dpu: allow initialization of encoder locks during encoder init drm/msm: fix potential memleak in error branch arm64: arch_timer: Disable the compat vdso for cores affected by ARM64_WORKAROUND_1418040 arm64: arch_timer: Allow an workaround descriptor to disable compat vdso arm64: Introduce a way to disable the 32bit vdso ip: Fix SO_MARK in RST, ACK and ICMP packets cgroup: Fix sock_cgroup_data on big-endian. cgroup: fix cgroup_sk_alloc() for sk_clone_lock() tcp: md5: allow changing MD5 keys in all socket states tcp: md5: refine tcp_md5_do_add()/tcp_md5_hash_key() barriers vlan: consolidate VLAN parsing code and limit max parsing depth tcp: md5: do not send silly options in SYNCOOKIES tcp: md5: add missing memory barriers in tcp_md5_do_add()/tcp_md5_hash_key() tcp: make sure listeners don't initialize congestion-control state tcp: fix SO_RCVLOWAT possible hangs under high mem pressure sched: consistently handle layer3 header accesses in the presence of VLANs net: usb: qmi_wwan: add support for Quectel EG95 LTE modem net_sched: fix a memory leak in atm_tc_init() net: dsa: microchip: set the correct number of ports net: Added pointer check for dst->ops->neigh_lookup in dst_neigh_lookup_skb llc: make sure applications use ARPHRD_ETHER l2tp: remove skb_dst_set() from l2tp_xmit_skb() ipv6: Fix use of anycast address with loopback ipv6: fib6_select_path can not use out path for nexthop objects ipv4: fill fl4_icmp_{type,code} in ping_v4_sendmsg genetlink: remove genl_bind bridge: mcast: Fix MLD2 Report IPv6 payload length check net: rmnet: fix lower interface leak net: atlantic: fix ip dst and ipv6 address filters crypto: atmel - Fix build error of CRYPTO_AUTHENC crypto: atmel - Fix selection of CRYPTO_AUTHENC ANDROID: GKI: update abi symbol lists now that CONFIG_DWC3 is enabled. ANDROID: GKI: Enable CONFIG_USB_DWC3 ANDROID: ABI: add the symbols of dwc3.ko and sprd-dma.ko to unisoc ANDROID: ABI: Update the ABI whitelist for QCOM ANDROID: GKI: Update CF abi list for virtio-console UPSTREAM: lkdtm/heap: Avoid edge and middle of slabs UPSTREAM: lkdtm: Avoid more compiler optimizations for bad writes ANDROID: GKI: Update ABI after RPMH config change ANDROID: GKI: Adjust symbol lists after RPMH removed from gki_defconfig ANDROID: db845c_gki.fragment: Add QCOM_RPMH and QCOM_RPMHPD as modules ANDROID: gki_defconfig: Remove QCOM_RPMH from the gki_defconfig ANDROID: Kconfig.gki: Remove GKI_QCOM_CLKS_CONFIGS and QCOM_RPMHPD from GKI_HACKS config option FROMLIST: soc: qcom: rpmh: Allow RPMH driver to be loaded as a module UPSTREAM: soc: qcom: rpmhpd: Allow RPMHPD driver to be loaded as a module ANDROID: GKI: Export memblock_free to drivers ANDROID: GKI: do not export symbol_get/put() ANDROID: add xfs back to allmodconfig build tests FROMLIST: rpmsg: core: Add signal API support ANDROID: GKI: Fix x86 warning on DMA_VIRTUAL_CHANNELS ANDROID: GKI: Update ABI and export list for qcom Revert "ANDROID: net: enable wireless core features with GKI_LEGACY_WEXT_ALLCONFIG" Revert "ALSA: compress: fix partial_drain completion state" Conflicts: Documentation/devicetree/bindings Documentation/devicetree/bindings/mailbox/xlnx,zynqmp-ipi-mailbox.txt Documentation/devicetree/bindings/usb/dwc3.txt android/abi_gki_aarch64_qcom drivers/soc/qcom/Kconfig drivers/soc/qcom/socinfo.c drivers/usb/host/xhci-plat.c kernel/sched/core.c Change-Id: If4d45d5447eb2b1b86326bae8c3844fe565a0b42 Signed-off-by: Blagovest Kolenichev <bkolenichev@codeaurora.org>
2020-08-04 14:32:47 -04:00
tristate "Qualcomm Technologies, Inc. Command DB driver"
qcom: cmd-db: enforce CONFIG_OF_RESERVED_MEM dependency Without CONFIG_OF_RESERVED_MEM, gcc sees that the global cmd_db_header variable is never initialized, and through code optimization concludes that a lot of other code cannot possibly work after that: drivers/soc/qcom/cmd-db.c: In function 'cmd_db_read_addr': drivers/soc/qcom/cmd-db.c:197:21: error: 'ent.addr' may be used uninitialized in this function [-Werror=maybe-uninitialized] return ret < 0 ? 0 : le32_to_cpu(ent.addr); drivers/soc/qcom/cmd-db.c: In function 'cmd_db_read_aux_data': drivers/soc/qcom/cmd-db.c:224:10: error: 'ent.len' may be used uninitialized in this function [-Werror=maybe-uninitialized] ent_len = le16_to_cpu(ent.len); drivers/soc/qcom/cmd-db.c:115:6: error: 'rsc_hdr.data_offset' may be used uninitialized in this function [-Werror=maybe-uninitialized] u16 offset = le16_to_cpu(hdr->data_offset); ^~~~~~ drivers/soc/qcom/cmd-db.c:116:6: error: 'ent.offset' may be used uninitialized in this function [-Werror=maybe-uninitialized] u16 loffset = le16_to_cpu(ent->offset); ^~~~~~~ drivers/soc/qcom/cmd-db.c: In function 'cmd_db_read_aux_data_len': drivers/soc/qcom/cmd-db.c:250:38: error: 'ent.len' may be used uninitialized in this function [-Werror=maybe-uninitialized] return ret < 0 ? 0 : le16_to_cpu(ent.len); ^ drivers/soc/qcom/cmd-db.c: In function 'cmd_db_read_slave_id': drivers/soc/qcom/cmd-db.c:272:7: error: 'ent.addr' may be used uninitialized in this function [-Werror=maybe-uninitialized] Using a hard CONFIG_OF_RESERVED_MEM dependency avoids this warning, and we can remove the CONFIG_OF dependency. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org> Signed-off-by: Andy Gross <andy.gross@linaro.org>
2018-05-25 12:08:24 -04:00
depends on ARCH_QCOM || COMPILE_TEST
depends on OF_RESERVED_MEM
help
Command DB queries shared memory by key string for shared system
resources. Platform drivers that require to set state of a shared
resource on a RPM-hardened platform must use this database to get
SoC specific identifier and information for the shared resources.
config QCOM_MEM_OFFLINE
bool "Dynamic Memory Region Offline driver"
depends on MEMORY_HOTPLUG
help
Add support for DDR Self-Refresh power management through the dynamic
memory offline framework. This driver interfaces between the memory
hotplug subsystem and AOP which hot adds or removes memory blocks and
controls the start/stop of self-refresh of these DDR regions. This
helps reduce power consumption during idle mode of the system.
If unsure, say N
config BUG_ON_HW_MEM_ONLINE_FAIL
bool "Trigger a BUG when HW memory online fails"
depends on QCOM_MEM_OFFLINE
help
Select this option if kernel should BUG when the hardware
onlining of memory hotplug blocks fails. This helps to catch
online failures much quicker and avoids the later side effects
of such memory online failures.
If unsure, say N
config OVERRIDE_MEMORY_LIMIT
bool "Override memory limit set by the kernel boot parameter"
depends on QCOM_MEM_OFFLINE
help
Override any memory limit set by the kernel boot parameter with
limit set by mem-offline dt entry so that memory offline framework
can initialize remaining memory with movable pages for memory
hot-plugging.
If unsure, say N
config QCOM_MEM_BUF
bool "Qualcomm Technologies, Inc. Memory Buffer Sharing Driver"
depends on HH_MSGQ && HH_RM_DRV && ION_MSM_HEAPS
help
Add support for lending memory from one virtual machine to another.
This driver communicates with the hypervisor, as well as other
virtual machines, to request and lend memory from and to VMs
respectively.
If unsure, say N
config QCOM_GENI_SE
tristate "QCOM GENI Serial Engine Driver"
depends on ARCH_QCOM || COMPILE_TEST
help
This driver is used to manage Generic Interface (GENI) firmware based
Qualcomm Technologies, Inc. Universal Peripheral (QUP) Wrapper. This
driver is also used to manage the common aspects of multiple Serial
Engines present in the QUP.
config OVERRIDE_MEMORY_LIMIT
bool "Override memory limit set by the kernel boot parameter"
depends on QCOM_MEM_OFFLINE
help
Override any memory limit set by the kernel boot parameter with
limit set by mem-offline dt entry so that memory offline framework
can initialize remaining memory with movable pages for memory
hot-plugging.
If unsure, say N
config QCOM_GLINK_SSR
tristate "Qualcomm Glink SSR driver"
depends on RPMSG
depends on QCOM_RPROC_COMMON
help
Say y here to enable GLINK SSR support. The GLINK SSR driver
implements the SSR protocol for notifying the remote processor about
neighboring subsystems going up or down.
config MSM_SPSS_UTILS
depends on MSM_PIL
tristate "Secure Processor Utilities"
help
spss-utils driver selects Secure Processor firmware file name.name
The firmware file name for dev, test or production is selected
based on two fuses.fuses
Different file name is used for differnt SPSS HW versions,versions
because the SPSS firmware size is too small to support multiple
HW versions.
config MSM_QBT_HANDLER
tristate "Event Handler for QTI Ultrasonic Fingerprint Sensor"
help
This driver acts as a interrupt handler, where the interrupt is generated
by the QTI Ultrasonic Fingerprint Sensor. It queues the events for each
interrupt in an event queue and notifies the userspace to read the events
from the queue. It also creates an input device to send key events such as
KEY_POWER, KEY_HOME.
config QCOM_PROXY_OF_CONSUMER
tristate "Qualcomm Technologies, Inc. OF proxy consumer driver"
help
A target may contain multiple defconfigs, but only one device-tree
configuration. Such a target may have device-drivers that are
only enabled in a particular defconfig, while disabled in the
others. For the kernel that boots up with disabled configuration,
since the device-tree node exists, the of_devlink logic expects
the driver to be probed, which is not possible. As a result, the
sync-state remains incomplete.
This proxy consumer driver shows a proxy-presence of the main
driver to satisfy the sync-state.
config QCOM_GSBI
tristate "QCOM General Serial Bus Interface"
depends on ARCH_QCOM || COMPILE_TEST
select MFD_SYSCON
help
Say y here to enable GSBI support. The GSBI provides control
functions for connecting the underlying serial UART, SPI, and I2C
devices to the output pins.
config QCOM_IPCC
tristate "Qualcomm Technologies, Inc. IPCC driver"
depends on MAILBOX
help
Qualcomm Technologies, Inc. IPCC driver for MSM devices. The drivers
acts as an interrupt controller for the clients interested in
talking to the IPCC (inbound-communication). On the other hand, the
driver also provides a mailbox channel for outbound-communications.
Say Y here to compile the driver as a part of kernel or M to compile
as a module.
config QCOM_RIMPS
tristate "Qualcomm Technologies, Inc. Rimps driver"
depends on MAILBOX
help
Qualcomm Technologies, Inc. RIMPS driver for MSM devices. This driver
acts as a mailbox controller to do doorbell between Apss and Rimps
subsystem. Say yes here to enable rx and tx channel between both
the subsystems.
If unsure, say n.
config QCOM_LLCC
tristate "Qualcomm Technologies, Inc. LLCC driver"
depends on ARCH_QCOM || COMPILE_TEST
select REGMAP_MMIO
help
Qualcomm Technologies, Inc. platform specific
Last Level Cache Controller(LLCC) driver. This provides interfaces
to clients that use the LLCC. Say yes here to enable LLCC slice
driver.
config QCOM_LAHAINA_LLCC
tristate "Qualcomm Technologies, Inc. LAHAINA LLCC driver"
depends on QCOM_LLCC
help
Say y or m here to enable the LLCC driver for Lahaina platform.
This provides data required to configure LLCC so that clients
can start using the LLCC slices.
If unsure, say n.
config QCOM_SDXLEMUR_LLCC
tristate "Qualcomm Technologies, Inc. SDXLEMUR LLCC driver"
depends on QCOM_LLCC
help
Say y or m here to enable the LLCC driver for SDXLEMUR platform.
This provides data required to configure LLCC so that clients
can start using the LLCC slices.
If unsure, say n.
config QCOM_SHIMA_LLCC
tristate "Qualcomm Technologies, Inc. SHIMA LLCC driver"
depends on QCOM_LLCC
help
Say y or m here to enable the LLCC driver for Shima platform.
This provides data required to configure LLCC so that clients
can start using the LLCC slices.
If unsure, say n.
config QCOM_YUPIK_LLCC
tristate "Qualcomm Technologies, Inc. YUPIK LLCC driver"
depends on QCOM_LLCC
help
Say y or m here to enable the LLCC driver for Yupik platform.
This provides data required to configure LLCC so that clients
can start using the LLCC slices.
If unsure, say n.
config QCOM_SM8150_LLCC
tristate "Qualcomm Technologies, Inc. SM8150 LLCC driver"
depends on QCOM_LLCC
help
Say y or m here to enable the LLCC driver for SM8150 platform.
This provides data required to configure LLCC so that clients
can start using the LLCC slices.
If unsure, say n.
config QCOM_SDMSHRIKE_LLCC
tristate "Qualcomm Technologies, Inc. SDMSHRIKE LLCC driver"
depends on QCOM_LLCC
help
Say y or m here to enable the LLCC driver for SDMSHRIKE platform.
This provides data required to configure LLCC so that clients
can start using the LLCC slices.
If unsure, say n.
config QCOM_SM6150_LLCC
tristate "Qualcomm Technologies, Inc. SM6150 LLCC driver"
depends on QCOM_LLCC
help
Say yes here to enable the LLCC driver for SM6150. This is provides
data required to configure LLCC so that clients can start using the
LLCC slices.
If unsure, say n.
config QCOM_SDM845_LLCC
tristate "Qualcomm Technologies, Inc. SDM845 LLCC driver"
depends on QCOM_LLCC
help
Say yes here to enable the LLCC driver for SDM845. This provides
data required to configure LLCC so that clients can start using the
LLCC slices.
config QCOM_LLCC_PERFMON
tristate "Qualcomm Technologies, Inc. LLCC Perfmon driver"
depends on QCOM_LLCC
help
This option enables driver for LLCC Performance monitor block. Using
this various events in different LLCC sub ports can be monitored.
This is used for performance and debug activity and exports sysfs
interface. sysfs interface is used to configure and dump the LLCC
performance events.
config QCOM_DIREWOLF_LLCC
tristate "Qualcomm Technologies, Inc. Direwolf LLCC driver"
depends on QCOM_LLCC
help
Say y or m here to enable the LLCC driver for Direwolf platform.
This provides data required to configure LLCC so that clients
can start using the LLCC slices.
If unsure, say n.
config QCOM_MDT_LOADER
tristate
select QCOM_SCM
config QPNP_PBS
tristate "PBS trigger support for QPNP PMIC"
depends on SPMI
help
This driver supports configuring software PBS trigger event through PBS
RAM on Qualcomm Technologies, Inc. QPNP PMICs. This module provides
the APIs to the client drivers that wants to send the PBS trigger
event to the PBS RAM.
ARM: qcom: Add Subsystem Power Manager (SPM) driver SPM is a hardware block that controls the peripheral logic surrounding the application cores (cpu/l$). When the core executes WFI instruction, the SPM takes over the putting the core in low power state as configured. The wake up for the SPM is an interrupt at the GIC, which then completes the rest of low power mode sequence and brings the core out of low power mode. The SPM has a set of control registers that configure the SPMs individually based on the type of the core and the runtime conditions. SPM is a finite state machine block to which a sequence is provided and it interprets the bytes and executes them in sequence. Each low power mode that the core can enter into is provided to the SPM as a sequence. Configure the SPM to set the core (cpu or L2) into its low power mode, the index of the first command in the sequence is set in the SPM_CTL register. When the core executes ARM wfi instruction, it triggers the SPM state machine to start executing from that index. The SPM state machine waits until the interrupt occurs and starts executing the rest of the sequence until it hits the end of the sequence. The end of the sequence jumps the core out of its low power mode. Add support for an idle driver to set up the SPM to place the core in Standby or Standalone power collapse mode when the core is idle. Based on work by: Mahesh Sivasubramanian <msivasub@codeaurora.org>, Ai Li <ali@codeaurora.org>, Praveen Chidambaram <pchidamb@codeaurora.org> Original tree available at - git://codeaurora.org/quic/la/kernel/msm-3.10.git Cc: Stephen Boyd <sboyd@codeaurora.org> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Kevin Hilman <khilman@linaro.org> Cc: Daniel Lezcano <daniel.lezcano@linaro.org> Signed-off-by: Lina Iyer <lina.iyer@linaro.org> Reviewed-by: Stephen Boyd <sboyd@codeaurora.org> Tested-by: Kevin Hilman <khilman@linaro.org> Acked-by: Kumar Gala <galak@codeaurora.org> Acked-by: Kevin Hilman <khilman@linaro.org> Signed-off-by: Kumar Gala <galak@codeaurora.org>
2015-04-09 15:20:41 -04:00
config QCOM_PM
bool "Qualcomm Power Management"
depends on ARCH_QCOM && !ARM64
select ARM_CPU_SUSPEND
select QCOM_SCM
ARM: qcom: Add Subsystem Power Manager (SPM) driver SPM is a hardware block that controls the peripheral logic surrounding the application cores (cpu/l$). When the core executes WFI instruction, the SPM takes over the putting the core in low power state as configured. The wake up for the SPM is an interrupt at the GIC, which then completes the rest of low power mode sequence and brings the core out of low power mode. The SPM has a set of control registers that configure the SPMs individually based on the type of the core and the runtime conditions. SPM is a finite state machine block to which a sequence is provided and it interprets the bytes and executes them in sequence. Each low power mode that the core can enter into is provided to the SPM as a sequence. Configure the SPM to set the core (cpu or L2) into its low power mode, the index of the first command in the sequence is set in the SPM_CTL register. When the core executes ARM wfi instruction, it triggers the SPM state machine to start executing from that index. The SPM state machine waits until the interrupt occurs and starts executing the rest of the sequence until it hits the end of the sequence. The end of the sequence jumps the core out of its low power mode. Add support for an idle driver to set up the SPM to place the core in Standby or Standalone power collapse mode when the core is idle. Based on work by: Mahesh Sivasubramanian <msivasub@codeaurora.org>, Ai Li <ali@codeaurora.org>, Praveen Chidambaram <pchidamb@codeaurora.org> Original tree available at - git://codeaurora.org/quic/la/kernel/msm-3.10.git Cc: Stephen Boyd <sboyd@codeaurora.org> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Kevin Hilman <khilman@linaro.org> Cc: Daniel Lezcano <daniel.lezcano@linaro.org> Signed-off-by: Lina Iyer <lina.iyer@linaro.org> Reviewed-by: Stephen Boyd <sboyd@codeaurora.org> Tested-by: Kevin Hilman <khilman@linaro.org> Acked-by: Kumar Gala <galak@codeaurora.org> Acked-by: Kevin Hilman <khilman@linaro.org> Signed-off-by: Kumar Gala <galak@codeaurora.org>
2015-04-09 15:20:41 -04:00
help
QCOM Platform specific power driver to manage cores and L2 low power
modes. It interface with various system drivers to put the cores in
low power modes.
config MSM_PIL
tristate "Peripheral image loader"
select FW_LOADER
help
Some peripherals' firmware need to be loaded into memory before
they can be brought out of reset. The Peripheral Image Loader (PIL)
framework is used to achive this. The driver relays the lower-level
functionalities such as, authenticating the images, performing the
reset of the peripheral, and so on to the drivers that are registered
with it.
Say 'y' or 'm' to support these devices.
config MSM_SUBSYSTEM_RESTART
tristate "MSM Subsystem Restart"
select MSM_PIL
select QCOM_QMI_HELPERS
help
This option enables the MSM subsystem restart framework.
The MSM subsystem restart framework provides support to boot,
shutdown, and restart subsystems with a reference counted API.
It also extends the APIs to add support for MSM System Monitor
using the QMI layer. These APIs may be used for sending events
or passing commands.
Moreover, the framework also notifies userspace of transitions
between these states via sysfs.
config MSM_QUIN_SUBSYSTEM_NOTIF_VIRT
tristate "MSM QUIN Subsystem Notif Virt"
select MSM_SUBSYSTEM_RESTART
help
This option enables the virtual MSM subsystem notification
framework for the QUIN platform.
The virtual MSM subsystem notif framework provides support for
a subsystem to notify its clients of its state, when the clients
are in a different virtual machine domain than the subsystem.
config SETUP_SSR_NOTIF_TIMEOUTS
bool "Set timeouts on SSR sysmon notifications and notifier callbacks"
help
Setup timers prior to initiating communication between
subsystems through sysmon, and prior to sending notifications
to drivers in the kernel that have registered callbacks with the
subsystem notifier framework for a particular subsystem. This
is a debugging feature.
config SSR_SYSMON_NOTIF_TIMEOUT
depends on SETUP_SSR_NOTIF_TIMEOUTS
int "SSR Sysmon notifications timeout in ms"
default 10000
help
The amount of time, in milliseconds, that should elapse between
the start and end of sysmon SSR notifications, before a warning
is emitted.
config SSR_SUBSYS_NOTIF_TIMEOUT
depends on SETUP_SSR_NOTIF_TIMEOUTS
int "SSR Subsystem notifier timeout in ms"
default 10000
help
The amount of time, in milliseconds, that should elapse between
the start and end of SSR notifications through the subsystem
notifier, before a warning is emitted.
config PANIC_ON_SSR_NOTIF_TIMEOUT
bool "Trigger kernel panic when notification timeout expires"
depends on SETUP_SSR_NOTIF_TIMEOUTS
help
This is a debug feature where a kernel panic is triggered when
communication between subsystems through sysmon is taking too
long. This scneario can happen if the peripheral has died and
is no longer responsive.
Also trigger a kernel panic if invoking the callbacks registered
with a particular subsystem's notifications by the subsystem
notifier framework is taking too long.
config MSM_PIL_SSR_GENERIC
tristate "MSM Subsystem Boot Support"
depends on MSM_SUBSYSTEM_RESTART
help
Support for booting and shutting down MSM Subsystem processors.
This driver also monitors the SMSM status bits and the watchdog
interrupt for the subsystem and restarts it on a watchdog bite
or a fatal error. Subsystems include LPASS, Venus, VPU, WCNSS and
BCSS.
config MSM_PIL_MSS_QDSP6V5
tristate "MSS QDSP6v5 (Hexagon) Boot Support"
depends on MSM_PIL && MSM_SUBSYSTEM_RESTART
help
Support for booting and shutting down QDSP6v5 (Hexagon) processors
in modem subsystems. If you would like to make or receive phone
calls then say Y here.
If unsure, say N.
config MSM_SERVICE_LOCATOR
tristate "Service Locator"
select QCOM_QMI_HELPERS
help
The Service Locator provides a library to retrieve location
information given a service identifier. Location here translates
to what process domain exports the service, and which subsystem
that process domain will execute in.
config MSM_SERVICE_NOTIFIER
tristate "Service Notifier"
depends on MSM_SERVICE_LOCATOR && MSM_SUBSYSTEM_RESTART
help
The Service Notifier provides a library for a kernel client to
register for state change notifications regarding a remote service.
A remote service here refers to a process providing certain services
like audio, the identifier for which is provided by the service
locator.
config MSM_BOOT_STATS
tristate "Use MSM boot stats reporting"
help
Use this to report msm boot stats such as bootloader throughput,
display init, total boot time.
This figures are reported in mpm sleep clock cycles and have a
resolution of 31 bits as 1 bit is used as an overflow check.
config QGKI_MSM_BOOT_TIME_MARKER
bool "Use MSM boot time marker reporting"
depends on MSM_BOOT_STATS && QGKI
help
Use this to mark msm boot kpi for measurement.
An instrumentation for boot time measurement.
To create an entry, call "place_marker" function.
At userspace, write marker name to "/sys/kernel/boot_kpi/kpi_values"
config QCOM_QMI_HELPERS
tristate
depends on ARCH_QCOM || COMPILE_TEST
depends on NET
source "drivers/soc/qcom/memshare/Kconfig"
config QCOM_QFPROM_SYS
tristate "Qualcomm Technologies, Inc. QFPROM_SYS driver "
depends on QCOM_QFPROM
help
Qualcomm Technologies, Inc. QFPROM_SYS driver. The QFPROM SYS driver
provides access to the child nodes of QFPROM to user space. The cell
values are exported as sysfs entries.
Say y here to enable QFPROM SYS support.
config QCOM_RMTFS_MEM
tristate "Qualcomm Remote Filesystem memory driver"
depends on ARCH_QCOM
select QCOM_SCM
help
The Qualcomm remote filesystem memory driver is used for allocating
and exposing regions of shared memory with remote processors for the
purpose of exchanging sector-data between the remote filesystem
service and its clients.
Say y here if you intend to boot the modem remoteproc.
config MSM_CORE_HANG_DETECT
tristate "MSM Core Hang Detection Support"
help
This enables the core hang detection module. It causes SoC
reset on core hang detection and collects the core context
for hang. By using sysfs entries core hang detection can be
enabled or disabled dynamically.
drivers: qcom: rpmh-rsc: add RPMH controller for QCOM SoCs Add controller driver for QCOM SoCs that have hardware based shared resource management. The hardware IP known as RSC (Resource State Coordinator) houses multiple Direct Resource Voter (DRV) for different execution levels. A DRV is a unique voter on the state of a shared resource. A Trigger Control Set (TCS) is a bunch of slots that can house multiple resource state requests, that when triggered will issue those requests through an internal bus to the Resource Power Manager Hardened (RPMH) blocks. These hardware blocks are capable of adjusting clocks, voltages, etc. The resource state request from a DRV are aggregated along with state requests from other processors in the SoC and the aggregate value is applied on the resource. Some important aspects of the RPMH communication - - Requests are <addr, value> with some header information - Multiple requests (upto 16) may be sent through a TCS, at a time - Requests in a TCS are sent in sequence - Requests may be fire-n-forget or completion (response expected) - Multiple TCS from the same DRV may be triggered simultaneously - Cannot send a request if another request for the same addr is in progress from the same DRV - When all the requests from a TCS are complete, an IRQ is raised - The IRQ handler needs to clear the TCS before it is available for reuse - TCS configuration is specific to a DRV - Platform drivers may use DRV from different RSCs to make requests Resource state requests made when CPUs are active are called 'active' state requests. Requests made when all the CPUs are powered down (idle state) are called 'sleep' state requests. They are matched by a corresponding 'wake' state requests which puts the resources back in to previously requested active state before resuming any CPU. TCSes are dedicated for each type of requests. Active mode TCSes (AMC) are used to send requests immediately to the resource, while control TCS are used to provide specific information to the controller. Sleep and Wake TCS send sleep and wake requests, after and before the system halt respectively. Signed-off-by: Lina Iyer <ilina@codeaurora.org> Signed-off-by: Raju P.L.S.S.S.N <rplsssn@codeaurora.org> Signed-off-by: Andy Gross <andy.gross@linaro.org>
2018-06-20 09:26:58 -04:00
config QCOM_RPMH
tristate "Qualcomm RPM-Hardened (RPMH) Communication"
depends on ARCH_QCOM || COMPILE_TEST
drivers: qcom: rpmh-rsc: add RPMH controller for QCOM SoCs Add controller driver for QCOM SoCs that have hardware based shared resource management. The hardware IP known as RSC (Resource State Coordinator) houses multiple Direct Resource Voter (DRV) for different execution levels. A DRV is a unique voter on the state of a shared resource. A Trigger Control Set (TCS) is a bunch of slots that can house multiple resource state requests, that when triggered will issue those requests through an internal bus to the Resource Power Manager Hardened (RPMH) blocks. These hardware blocks are capable of adjusting clocks, voltages, etc. The resource state request from a DRV are aggregated along with state requests from other processors in the SoC and the aggregate value is applied on the resource. Some important aspects of the RPMH communication - - Requests are <addr, value> with some header information - Multiple requests (upto 16) may be sent through a TCS, at a time - Requests in a TCS are sent in sequence - Requests may be fire-n-forget or completion (response expected) - Multiple TCS from the same DRV may be triggered simultaneously - Cannot send a request if another request for the same addr is in progress from the same DRV - When all the requests from a TCS are complete, an IRQ is raised - The IRQ handler needs to clear the TCS before it is available for reuse - TCS configuration is specific to a DRV - Platform drivers may use DRV from different RSCs to make requests Resource state requests made when CPUs are active are called 'active' state requests. Requests made when all the CPUs are powered down (idle state) are called 'sleep' state requests. They are matched by a corresponding 'wake' state requests which puts the resources back in to previously requested active state before resuming any CPU. TCSes are dedicated for each type of requests. Active mode TCSes (AMC) are used to send requests immediately to the resource, while control TCS are used to provide specific information to the controller. Sleep and Wake TCS send sleep and wake requests, after and before the system halt respectively. Signed-off-by: Lina Iyer <ilina@codeaurora.org> Signed-off-by: Raju P.L.S.S.S.N <rplsssn@codeaurora.org> Signed-off-by: Andy Gross <andy.gross@linaro.org>
2018-06-20 09:26:58 -04:00
help
Support for communication with the hardened-RPM blocks in
Qualcomm Technologies Inc (QTI) SoCs. RPMH communication uses an
internal bus to transmit state requests for shared resources. A set
of hardware components aggregate requests for these resources and
help apply the aggregated state on the resource.
config QCOM_RPMH_QGKI_DEBUG
bool "Enhance RPMh debug for QGKI variants"
depends on QCOM_RPMH
help
Adding debug prints increases latency of handling RPMh requests. This
is specially notable during the boot process. Let's selectively remove
some tracing that are more informative than an actual error.
soc: qcom: rpmhpd: Add RPMh power domain driver The RPMh power domain driver aggregates the corner votes from various consumers for the ARC resources and communicates it to RPMh. With RPMh we use 2 different numbering space for corners, one used by the clients to express their performance needs, and another used to communicate to RPMh hardware. The clients express their performance requirements using a sparse numbering space which are mapped to meaningful levels like RET, SVS, NOMINAL, TURBO etc which then get mapped to another number space between 0 and 15 which is communicated to RPMh. The sparse number space, also referred to as vlvl is mapped to the continuous number space of 0 to 15, also referred to as hlvl, using command DB. Some power domain clients could request a performance state only while the CPU is active, while some others could request for a certain performance state all the time regardless of the state of the CPU. We handle this by internally aggregating the votes from both type of clients and then send the aggregated votes to RPMh. There are also 3 different types of votes that are comunicated to RPMh for every resource. 1. ACTIVE_ONLY: This specifies the requirement for the resource when the CPU is active 2. SLEEP: This specifies the requirement for the resource when the CPU is going to sleep 3. WAKE_ONLY: This specifies the requirement for the resource when the CPU is coming out of sleep to active state We add data for all power domains on sdm845 SoC as part of the patch. The driver can be extended to support other SoCs which support RPMh Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org> Reviewed-by: Stephen Boyd <swboyd@chromium.org> Signed-off-by: Rajendra Nayak <rnayak@codeaurora.org> Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org> Signed-off-by: Andy Gross <andy.gross@linaro.org>
2019-01-09 23:02:07 -05:00
config QCOM_RPMHPD
tristate "Qualcomm RPMh Power domain driver"
soc: qcom: rpmhpd: Add RPMh power domain driver The RPMh power domain driver aggregates the corner votes from various consumers for the ARC resources and communicates it to RPMh. With RPMh we use 2 different numbering space for corners, one used by the clients to express their performance needs, and another used to communicate to RPMh hardware. The clients express their performance requirements using a sparse numbering space which are mapped to meaningful levels like RET, SVS, NOMINAL, TURBO etc which then get mapped to another number space between 0 and 15 which is communicated to RPMh. The sparse number space, also referred to as vlvl is mapped to the continuous number space of 0 to 15, also referred to as hlvl, using command DB. Some power domain clients could request a performance state only while the CPU is active, while some others could request for a certain performance state all the time regardless of the state of the CPU. We handle this by internally aggregating the votes from both type of clients and then send the aggregated votes to RPMh. There are also 3 different types of votes that are comunicated to RPMh for every resource. 1. ACTIVE_ONLY: This specifies the requirement for the resource when the CPU is active 2. SLEEP: This specifies the requirement for the resource when the CPU is going to sleep 3. WAKE_ONLY: This specifies the requirement for the resource when the CPU is coming out of sleep to active state We add data for all power domains on sdm845 SoC as part of the patch. The driver can be extended to support other SoCs which support RPMh Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org> Reviewed-by: Stephen Boyd <swboyd@chromium.org> Signed-off-by: Rajendra Nayak <rnayak@codeaurora.org> Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org> Signed-off-by: Andy Gross <andy.gross@linaro.org>
2019-01-09 23:02:07 -05:00
depends on QCOM_RPMH && QCOM_COMMAND_DB
help
QCOM RPMh Power domain driver to support power-domains with
performance states. The driver communicates a performance state
value to RPMh which then translates it into corresponding voltage
for the voltage rail.
config QCOM_RUN_QUEUE_STATS
bool "Enable collection and exporting of QTI Run Queue stats to userspace"
help
This option enables the driver to periodically collecting the statistics
of kernel run queue information and calculate the load of the system.
This information is exported to usespace via sysfs entries and userspace
algorithms uses info and decide when to turn on/off the cpu cores.
config QCOM_RPMPD
bool "Qualcomm RPM Power domain driver"
depends on QCOM_SMD_RPM=y
help
QCOM RPM Power domain driver to support power-domains with
performance states. The driver communicates a performance state
value to RPM which then translates it into corresponding voltage
for the voltage rail.
config QCOM_SMEM
tristate "Qualcomm Shared Memory Manager (SMEM)"
depends on ARCH_QCOM || COMPILE_TEST
depends on HWSPINLOCK
help
Say y here to enable support for the Qualcomm Shared Memory Manager.
The driver provides an interface to items in a heap shared among all
processors in a Qualcomm platform.
config QCOM_SMD_RPM
tristate "Qualcomm Resource Power Manager (RPM) over SMD"
depends on ARCH_QCOM || COMPILE_TEST
depends on RPMSG
help
If you say yes to this option, support will be included for the
Resource Power Manager system found in the Qualcomm 8974 based
devices.
This is required to access many regulators, clocks and bus
frequencies controlled by the RPM on these devices.
Say M here if you want to include support for the Qualcomm RPM as a
module. This will build a module called "qcom-smd-rpm".
config MSM_SPM
bool "Driver support for SPM and AVS wrapper hardware"
help
Enables the support for SPM and AVS wrapper hardware on MSMs. SPM
hardware is used to manage the processor power during sleep. The
driver allows configuring SPM to allow different low power modes for
both core and L2.
config MSM_L2_SPM
bool "SPM support for L2 cache"
help
Enable SPM driver support for L2 cache. Some MSM chipsets allow
control of L2 cache low power mode with a Subsystem Power manager.
Enabling this driver allows configuring L2 SPM for low power modes
on supported chipsets.
config QCOM_MEMORY_DUMP_V2
tristate "QCOM Memory Dump V2 Support"
help
This enables memory dump feature. It allows various client
subsystems to register respective dump regions. At the time
of deadlocks or cpu hangs these dump regions are captured to
give a snapshot of the system at the time of the crash.
config MSM_REMOTEQDSS
bool "Allow debug tools to enable events on other processors"
depends on QCOM_SCM && DEBUG_FS
help
Other onchip processors/execution environments may support debug
events. Provide a sysfs interface for debug tools to dynamically
enable/disable these events. Interface located in
/sys/class/remoteqdss.
config QCOM_SMEM_STATE
bool
config QCOM_SMP2P
tristate "Qualcomm Shared Memory Point to Point support"
depends on MAILBOX
depends on QCOM_SMEM
select QCOM_SMEM_STATE
select IRQ_DOMAIN
help
Say yes here to support the Qualcomm Shared Memory Point to Point
protocol.
config QCOM_SMSM
tristate "Qualcomm Shared Memory State Machine"
depends on QCOM_SMEM
select QCOM_SMEM_STATE
select IRQ_DOMAIN
help
Say yes here to support the Qualcomm Shared Memory State Machine.
The state machine is represented by bits in shared memory.
config QCOM_SOCINFO
tristate "Qualcomm socinfo driver"
depends on QCOM_SMEM
select SOC_BUS
help
Say yes here to support the Qualcomm socinfo driver, providing
information about the SoC to user space.
config QCOM_WCNSS_CTRL
tristate "Qualcomm WCNSS control driver"
depends on ARCH_QCOM || COMPILE_TEST
depends on RPMSG
help
Client driver for the WCNSS_CTRL SMD channel, used to download nv
firmware to a newly booted WCNSS chip.
config QCOM_DCC_V2
bool "Qualcomm Technologies Data Capture and Compare enigne support for V2"
help
This option enables driver for Data Capture and Compare engine. DCC
driver provides interface to configure DCC block and read back
captured data from DCC's internal SRAM.
config QCOM_MINIDUMP
tristate "QCOM Minidump Support"
depends on QCOM_SMEM && POWER_RESET_MSM
help
This enables minidump feature. It allows various clients to
register to dump their state at system bad state (panic/WDT,etc.,).
Minidump would dump all registered entries, only when DLOAD mode
is enabled.
config QCOM_DYN_MINIDUMP_STACK
bool "QTI Dynamic Minidump Stack Registration Support"
depends on QCOM_MINIDUMP
help
This enables minidump dynamic current stack registration feature.
It allows current task stack to be available in minidump, for cases
where CPU is unable to register it from IPI_CPU_STOP. The stack data
can be used to unwind stack frames.
config QCOM_MINIDUMP_FTRACE
bool "QCOM Minidump Support"
depends on QGKI && QCOM_MINIDUMP
help
This enables ftrace buffer registration in minidump table.
This allows dumping ftrace buffer content as part of
minidump dumps.
config QCOM_MINIDUMP_PANIC_DUMP
bool "QCOM Minidump Panic dumps Support"
depends on QGKI && QCOM_MINIDUMP
help
This enables various dumps collection in minidump table,
on panic.
config QCOM_MINIDUMP_PANIC_CPU_CONTEXT
bool "QCOM Minidump Panic dumps Support"
depends on ARM64 && QCOM_MINIDUMP_PANIC_DUMP
help
This enables cpu context collection in minidump table,
on panic.
config MINIDUMP_MAX_ENTRIES
int "Minidump Maximum num of entries"
default 200
depends on QCOM_MINIDUMP
help
This defines maximum number of entries to be allocated for application
subsytem in Minidump table.
config QCOM_MINIDUMP_ENCRYPT
bool "QCOM Minidump Encryption Required"
depends on QCOM_MINIDUMP
default y
help
This adds a support to decide whether the regions in minidump
table should be encrypted or not. By default, encryption is done
by the boot firmware and the decision for encryption is taken by
the subsystems.
config QCOM_MICRODUMP
tristate "Qualcomm Technologies, Inc. Microdump Support"
depends on MSM_SUBSYSTEM_RESTART
depends on QCOM_SMEM
help
This enables microdump feature. It collects
crash data from SMEM whenever modem subsytem
crashes and stores it under /dev to expose
to user space.
config QCOM_APR
tristate "Qualcomm APR Bus (Asynchronous Packet Router)"
depends on ARCH_QCOM || COMPILE_TEST
depends on RPMSG
help
Enable APR IPC protocol support between
application processor and QDSP6. APR is
used by audio driver to configure QDSP6
ASM, ADM and AFE modules.
config QCOM_SECURE_BUFFER
tristate "Helper functions for secure buffers through TZ"
depends on QCOM_SCM
help
Enable for targets that need to call into TZ to secure
memory buffers. This ensures that only the correct clients can
use this memory and no unauthorized access is made to the
buffer.
config QCOM_GLINK_PKT
tristate "Enable device interface for GLINK packet channels"
depends on QCOM_GLINK || RPMSG_QCOM_GLINK_SLATECOM
help
G-link packet driver provides the interface for the userspace
clients to communicate over G-Link via device nodes.
This enable the userspace clients to read and write to
some glink packets channel.
source "drivers/soc/qcom/hab/Kconfig"
source "drivers/soc/qcom/hgsl/Kconfig"
config MSM_PERFORMANCE
tristate "msm performance driver to support userspace fmin/fmax request"
help
This driver can restrict max freq or min freq of cpu cluster
when requested by the userspace by changing the cpufreq policy
fmin and fmax. The user space can request the cpu freq change by
writing cpu#:freq values
config QTI_PLH
bool "Qualcomm Technologies Inc. RIMPS PLH interface"
depends on ARM_SCMI_PROTOCOL && MSM_PERFORMANCE
default n
help
Interface between RIMPS PLH and userspace.
This interface is responsible for handling the communication
with RIMPS PLH such as passing tunables, enable and disable.
config MSM_PERFORMANCE_QGKI
bool "Enable QGKI features"
depends on QGKI
help
This option enables full functionality of MSM_PERFORMANCE for
QGKI flavor. This is not defined in GKI builds wherein the driver
offers minimal functionality of changing the min and max frequency
of a given cluster. The user space can request the cpu freq change
by writing cpu#:freq values
config QMP_DEBUGFS_CLIENT
bool "Debugfs Client to communicate with AOP using QMP protocol"
depends on DEBUG_FS
help
This options enables a driver which allows clients to send messages
to Alway On processor using QMP transport. Users can echo a message
into an exposed debugfs node to send to AOP. The driver expects the
passed in string argument to be formatted correctly for AOP to read.
config QSEE_IPC_IRQ_BRIDGE
tristate "QSEE IPC Interrupt Bridge"
help
This module enables bridging an Inter-Processor Communication(IPC)
interrupt from a remote subsystem directed towards
Qualcomm Technologies, Inc. Secure Execution Environment(QSEE) to
userspace. The interrupt will be propagated through a character device
that userspace clients can poll on.
config QCOM_SMP2P_SLEEPSTATE
tristate "SMP2P Sleepstate notifier"
depends on QCOM_SMP2P
help
When this option is enabled, notifications are sent to remote procs
for the power state changes on the local processor. The notifications
are sent through the smp2p framework. This driver can also receive
notifications from the remote to prevent suspend on the local
processor.
config SENSORS_SSC
tristate "Enable Sensors Driver Support for SSC"
depends on MSM_SUBSYSTEM_RESTART
help
Say y or m here to enable Snapdragon Sensor Core(SSC)
support for Qualcomm Technologies, Inc SoCs. SSC is used for
exercising sensor use-cases. This driver loads firmware files
for SSC and also does time synchronization with DSP clock.
config QSEE_IPC_IRQ
tristate "QSEE interrupt manager"
help
The QSEE IPC IRQ controller manages the interrupts from the QTI
secure execution environment. This interrupt controller will use
the registers in the spcs region to mask and clear interrupts.
Clients can use this driver to avoid adding common interrupt handling
code.
config QCOM_GLINK
tristate "GLINK Probe Helper"
depends on RPMSG_QCOM_GLINK_SMEM
help
This enables the GLINK Probe module. This is designed to set up
other edges in the system. It will initialize all the transports for
all the edges present in the device.
Say M if you want to enable this module.
config MSM_GLINK_SSR
tristate "MSM GLINK SSR"
depends on RPMSG
help
The GLINK RPMSG Plugin is currently designed to plugin with the
remote proc framework as a subdev. This module is responsible
for creating the glink transports when remote proc is disabled. This
will be used for drivers on MSMs.
Say M if you want to enable this
config QTI_PMIC_GLINK
tristate "Enable support for PMIC GLINK"
depends on QCOM_GLINK
help
The PMIC Glink driver provides the interface for clients to
communicate over GLink for sending and receiving data to charger
firmware that runs on a remote subsystem like DSP which supports
charging and gauging.
This enables clients to read and write battery charging parameters.
config QTI_PMIC_GLINK_CLIENT_DEBUG
depends on QTI_PMIC_GLINK && DEBUG_FS
bool "Enable debugfs features in PMIC GLINK client drivers"
help
This option enables the generation of debugfs files in PMIC GLINK
client drivers that are strictly meant for internal debugging only.
Writing to these debug files changes key physical parameters of a
system, which may lead to instability. Therefore, this option should
never be enabled on production devices.
config QTI_BATTERY_GLINK_DEBUG
tristate "Enable support for QTI battery glink debug driver"
depends on QTI_PMIC_GLINK
help
Qualcomm Technologies, Inc. battery glink debug driver helps to
obtain debug information for battery charging and gauging over PMIC
Glink from charger and gauging firmware running on a remote subsystem
(e.g. DSP).
config QTI_ALTMODE_GLINK
tristate "Type-C alternate mode over GLINK"
depends on QTI_PMIC_GLINK
help
The Qualcomm Technologies, Inc. Type-C alternate mode driver provides
an interface for Type-C alternate mode clients to receive data such
as Pin Assignment Notifications from the Type-C stack running on a
remote subsystem (e.g. DSP) via the PMIC GLINK interface.
config QTI_PMIC_PON_LOG
tristate "PMIC PON log parser driver"
help
The PMIC PON log driver parses PMIC power-on, power-off, and fault
information out of a binary log stored in the SDAM memory found on
some Qualcomm Technologies, Inc. PMIC devices. This driver is useful
when debugging unexpected power-off scenarios.
config MSM_CDSP_LOADER
tristate "CDSP loader support"
help
This enables the CDSP loader driver that loads the CDSP
firmware images and brings the compute DSP out of reset
for platforms that have one.
Say M if you want to enable this module.
config QGKI
bool "Enable for QGKI or debug variant"
help
When this flag is enabled, it is safe to assume that the build
is a Non GKI build. It can be either QGKI build or a debug
build. This does not differentiate a QGKI and a debug build.
This flag is absent if the build is a GKI build. If this flag is
enabled, all the ABI compatibilities are not applicable.
config MSM_PM
bool
select MSM_IDLE_STATS if DEBUG_FS
select QTI_SYSTEM_PM if QCOM_RPMH
select QTI_SYSTEM_PM_RPM if MSM_RPM_SMD && QGKI && QCOM_MPM
bool "Qualcomm Technologies, Inc. (QTI) Power Management Drivers"
help
Platform specific power driver to manage cores and l2 low power
modes. It interface with various system driver and put the cores
into low power modes. It implements OS initiated scheme and
determines last CPU to call into PSCI for cluster Low power
modes.
config QTI_SYSTEM_PM
bool
config QTI_SYSTEM_PM_RPM
bool
config MSM_PM_LEGACY
depends on PM
select MSM_IDLE_STATS if DEBUG_FS
select CPU_IDLE_MULTIPLE_DRIVERS
bool "Qualcomm Technologies, Inc. (QTI) platform specific Legacy PM driver"
help
Platform specific legacy power driver to manage
cores and l2 low power modes. It interface with
various system driver and put the cores into
low power modes.
config QTI_PLH_SCMI_CLIENT
tristate "Qualcomm Technologies Inc. SCMI client driver for PLH"
depends on QTI_PLH
default n
help
SCMI client driver registers itself with SCMI framework for PLH
vendor protocol, and also registers with the plh interface driver
msm_performance.
This driver deliver the PLH vendor protocol handle to interface
driver, and interface driver will use this handle to communicate
with RIMPS PLH.
config QTI_HW_MEMLAT
tristate "Qualcomm Technologies Inc. RIMPS memlat interface driver"
depends on PERF_EVENTS
default n
help
Interface driver between RIMPS memlat and userspace.
This driver is responsible for handling the communication with
RIMPS memlat such as setting up PMU events, passing tunables, frequency
table, PMU counters and saving the values of PMU counters during LPM and
hotplug.
config QTI_HW_NUM_AMU
int
default 7 if ARCH_LAHAINA && QTI_HW_MEMLAT
default 5 if ARCH_HOLI && QTI_HW_MEMLAT
default 5
config QTI_HW_NUM_PMU
int
default 6 if (ARCH_LAHAINA || ARCH_HOLI) && QTI_HW_MEMLAT
default 6
config QTI_HW_MEMLAT_SCMI_CLIENT
tristate "Qualcomm Technologies Inc. SCMI client driver for HW MEMLAT"
depends on QTI_HW_MEMLAT
default n
help
SCMI client driver registers itself with SCMI framework for memlat
vendor protocol, and also registers with the memlat hw interface
driver.
This driver deliver the memlat vendor protocol handle to interface
driver, and interface driver will use this handle to communicate with
memlat HW.
config QTI_HW_MEMLAT_LOG
tristate "Qualcomm Technologies Inc. HW MEMLAT Logging"
depends on IPC_LOGGING && QCOM_RIMPS
default n
help
Memlat hw logging driver, this driver has the infra to collect logs
generated in MEMLAT HW and log the buffers.
This driver register with IPC_Logging framework, to have dedicated
buffer for memlat hw device.
if (MSM_PM || MSM_PM_LEGACY)
menuconfig MSM_IDLE_STATS
bool "Collect idle statistics"
help
Collect cores various low power mode idle statistics
and export them in proc/msm_pm_stats. User can read
this data and determine what low power modes and how
many times cores have entered into LPM modes.
if MSM_IDLE_STATS
config MSM_IDLE_STATS_FIRST_BUCKET
int "First bucket time"
default 62500
help
Upper time limit in nanoseconds of first bucket.
config MSM_IDLE_STATS_BUCKET_SHIFT
int "Bucket shift"
default 2
config MSM_IDLE_STATS_BUCKET_COUNT
int "Bucket count"
default 10
config MSM_SUSPEND_STATS_FIRST_BUCKET
int "First bucket time for suspend"
default 1000000000
help
Upper time limit in nanoseconds of first bucket of the
histogram. This is for collecting statistics on suspend.
endif # MSM_IDLE_STATS
endif # MSM_PM || MSM_PM_LEGACY
config QTI_RPM_STATS_LOG
tristate "Qualcomm Technologies RPM Stats Driver"
help
This option enables a driver which reads RPM messages from a shared
memory location. These messages provide statistical information about
the low power modes that RPM enters. The drivers outputs the message
via a sysfs node.
config QCOM_SUBSYSTEM_SLEEP_STATS
tristate "Qualcomm Technologies, Inc. Subsystem sleep stats driver"
depends on QCOM_SMEM
help
This driver is IOCTL implementation to get the subsystem stats data
from SMEM. Stats information such as sleep count, last entered at,
last exited at and accumulated duration can be read from
userspace with ioctl.
config QTI_DDR_STATS_LOG
tristate "Qualcomm Technologies Inc (QTI) DDR Stats Driver"
depends on QCOM_RPMH
help
This option enables a driver which reads DDR statistical information
from AOP shared memory location such as DDR low power modes and DDR
frequency residency and counts. The driver outputs information using
sysfs.
config QTI_SYS_PM_VX
tristate "Qualcomm Technologies Inc (QTI) System PM Violators Driver"
depends on QMP_DEBUGFS_CLIENT
help
This option enables debug subystems that prevent system low power
modes. The user sends a QMP message to AOP to record subsystems
preventing deeper system low power modes. The data is stored in the
MSGRAM by AOP and read and reported in the debugfs by this driver.
config MSM_JTAGV8
bool "Debug and ETM trace support across power collapse for ARMv8"
default y if CORESIGHT_SOURCE_ETM4X
depends on QCOM_SCM=y
help
Enables support for debugging (specifically breakpoints) and ETM
processor tracing across power collapse both for JTag and OS hosted
software running on ARMv8 target. Enabling this will ensure debug
and ETM registers are saved and restored across power collapse.
If unsure, say 'N' here to avoid potential power, performance and
memory penalty.
config QCOM_FSA4480_I2C
bool "Fairchild FSA4480 chip with I2C"
select REGMAP_I2C
depends on I2C
depends on AUDIO_QGKI
help
Support for the Fairchild FSA4480 IC switch chip controlled
using I2C. This driver provides common support
for accessing the device, switching between USB and Audio
modes, changing orientation.
config QCOM_SOC_SLEEP_STATS
tristate "Qualcomm Technologies, Inc. (QTI) SoC sleep stats driver"
help
Qualcomm Technologies Inc (QTI) SoC sleep stats driver to read
the shared memory exported by the remote processor related to
various SoC level low power modes statistics and export to sysfs
interface.
config QCOM_CDSP_RM
tristate "CDSP request manager"
depends on QCOM_GLINK
help
This driver serves CDSP requests for CPU L3 clock and CPU QoS thus
improving CDSP performance. Using this driver, CDSP can set appropriate
CPU L3 clock for improving IO-Coherent throughput and opt for QoS mode
to improve RPC latency. The driver also registers cooling devices for
CDSP subsystem and implements Cx ipeak limit management.
config CDSPRM_VTCM_DYNAMIC_DEBUG
bool "Enable for VTCM parition test enablement"
help
The VTCM dynamic debug flag is used to enable the vtcm partition test
feature from the debugfs node from cdsprm driver.When the test is
enabled, the vtcm partition details are sent to the CDSP via rpmsg
channel.
config QCOM_SYSMON_SUBSYSTEM_STATS
tristate "Qualcomm Technologies SysMon DSP subsystem stats"
depends on QCOM_SMEM
help
sysMon subsystem stats driver exposes API to query DSP
subsystem's load and power statistics stored in SMEM.
SMEM region for each DSP subsystem is updated periodically
by the respective subsystem. Power stats gets updated after
DSP clock change event.
config QCOM_WDT_CORE
tristate "Qualcomm Technologies, Inc. Watchdog Support"
depends on ARCH_QCOM
help
This enables the watchdog framework for Qualcomm Technologies, Inc.
devices. It causes a kernel panic if the watchdog times out. It allows
for the detection of cpu hangs and deadlocks. It does not run during the
bootup process, so it will not catch any early lockups. Enabling this
only enables the framework, an individual Qualcomm Technologies, Inc.
watchdog module must be loaded along with this for watchdog
functionality.
config QCOM_CX_IPEAK
tristate "Common driver to handle Cx iPeak limitation"
help
Cx ipeak HW module is used to limit the current drawn by various
subsystem blocks on Cx power rail. Each client needs to set their
bit in tcsr register if it is going to cross its own threshold.
If all clients are going to cross their thresholds then Cx ipeak
hw module will raise an interrupt to cDSP block to throttle cDSP fmax.
config QCOM_SOC_WATCHDOG
tristate "Qualcomm Technologies, Inc. Soc Watchdog"
depends on QCOM_WDT_CORE
help
This enables the Qualcomm Technologies, Inc. watchdog module for the
Soc. It provides an interface to perform watchdog actions such as
setting the bark/bite time and also petting the hardware watchdog. To
utilize this the Qualcomm Technologies, Inc. watchdog framework must
also be enabled.
config QCOM_IRQ_STAT
bool "QCOM IRQ stats"
depends on QGKI && QCOM_WDT_CORE
help
This give irq stats for top hitter at
watchdog pet, watchdog bark and kernel panics.
This provides additional debug information
for irq counts on cpu and ipi counts.
config QCOM_INITIAL_LOGBUF
bool "QCOM save initial log_buf"
depends on QGKI && QCOM_WDT_CORE
help
This enables to keep copy of initial log_buf
of minimum 512KB from bootup. It can help in
debugging issues which are manifestation
of failure during initial bootup.
config QCOM_FORCE_WDOG_BITE_ON_PANIC
bool "QCOM force watchdog bite on panic"
depends on QCOM_WDT_CORE
help
This forces a watchdog bite when the device restarts
due to a kernel panic. On certain MSM SoCs,
this provides additional debugging
information.
config QCOM_WDOG_BITE_EARLY_PANIC
bool "QCOM early panic watchdog bite"
depends on QCOM_WDT_CORE && QCOM_FORCE_WDOG_BITE_ON_PANIC
help
This forces a watchdog bite early in panic sequence. On certain
MSM SoCs, this provides us additional debugging information at the
context of the crash. If this option is disabled, then bite occurs
later in panic, which permits more of the restart sequence to run
(e.g. more dmesg to flushed to console).
config QCOM_WATCHDOG_BARK_TIME
depends on QCOM_WDT_CORE
int "Qualcomm Technologies, Inc. Watchdog bark time in ms"
default 11000
range 11000 11000
help
The amount of time, in milliseconds, that should elapse after
a watchdog timer reset before a bark interrupt is sent from the
watchdog.
config QCOM_WATCHDOG_PET_TIME
depends on QCOM_WDT_CORE
int "Qualcomm Technologies, Inc. Watchdog pet time in ms"
default 9360
range 9360 9360
help
The amount of time, in milliseconds, that should elapse before
a watchdog pet is initiated to reset the watchdog timer to 0.
config QCOM_WATCHDOG_IPI_PING
depends on QCOM_WDT_CORE
bool "Qualcomm Technologies, Inc. Watchdog ipi ping"
default y
help
This boolean flag gives the watchdog driver the ability to send a
keep-alive ping to other cpu's if it is set to 1. Otherwise, when
it is set to 0 no keep alive pings will be sent.
config QCOM_WATCHDOG_WAKEUP_ENABLE
depends on QCOM_WDT_CORE
bool "Qualcomm Technologies, Inc. Watchdog wakeup enable"
default y
help
This boolean flag allows the non secure watchdog counter to freeze
and unfreeze automatically across the system suspend and resume
path.
config QCOM_WATCHDOG_USERSPACE_PET
depends on QCOM_WDT_CORE
bool "Qualcomm Technologies, Inc. Watchdog user pet enable"
default n
help
This boolean flag allows enabling the userspace-watchdog feature.
This feature requires userspace to pet the watchdog every in an
interval that matches the time set in the pet-time config.
The feature is supported through device sysfs files.
config MSM_SPCOM
depends on QCOM_GLINK
tristate "Secure Processor Communication over RPMSG"
help
SPCOM driver allows loading Secure Processor Applications and sending
messages to Secure Processor Applications. SPCOM implements logic of RPMSG
client of SPSS edge. SPCOM provides interface to both user space app and
kernel driver. It is using glink as the transport layer, which provides
multiple logical channels over single physical channel. The physical layer
is based on shared memory and interrupts. SPCOM provides clients/server API
although currently only one client/server is allowed per logical channel.
config QCOM_EUD
tristate "QTI Embedded USB Debugger (EUD)"
depends on ARCH_QCOM
select SERIAL_CORE
help
The EUD (Embedded USB Debugger) is a mini-USB hub implemented
on chip to support the USB-based debug and trace capabilities.
This module enables support for Qualcomm Technologies, Inc.
Embedded USB Debugger (EUD).
If unsure, say N.
config QCOM_SMCINVOKE
tristate "Secure QSEE Support"
help
Enable SMCInvoke driver which supports capability based secure
communication between QTI Secure Execution Environment (QSEE)
and high level operating system. It exposes APIs for both
userspace and kernel clients.
config QCOM_GUESTVM
tristate "Enable Guest VM to be loaded by PIL"
help
This driver invokes Peripheral Image Loader to load images of
any guest Virtual Machine (VM). It also communicates with the
Resource Manager driver to start the boot of VMs once it has
successfully loaded the VM images in the designated memory.
config QCOM_HYP_CORE_CTL
bool "CPU reservation scheme for Hypervisor"
depends on QCOM_GUESTVM && SCHED_WALT
help
This driver reserve the specified CPUS by isolating them. The reserved
CPUs can be assigned to the other guest OS by the hypervisor.
An offline CPU is considered as a reserved CPU since this OS can't use
it.
config QTI_CRYPTO_COMMON
tristate "Enable common crypto functionality used for FBE"
depends on SCSI_UFS_CRYPTO_QTI
help
Say 'Y' to enable the common crypto implementation to be used by
different storage layers such as UFS and EMMC for file based hardware
encryption. This library implements API to program and evict
keys using Trustzone or Hardware Key Manager.
config QTI_CRYPTO_TZ
tristate "Enable Trustzone to be used for FBE"
depends on QTI_CRYPTO_COMMON
help
Say 'Y' to enable routing crypto requests to Trustzone while
performing hardware based file encryption. This means keys are
programmed and managed through SCM calls to TZ where ICE driver
will configure keys.
config QTI_CRYPTO_FDE
tristate "Enable common crypto functionality used for FDE"
depends on QTI_CRYPTO_COMMON
help
Say 'Y' to enable hardware Full Disk Encryption implementation to be used by
different storage layers such as UFS. Enabling the FDE will reserve one slot
of KSM(Key Slot Manager) for the FDE. Making one less slot available for FBE
(File based encryption) in case both encryption mechanism are enabled on device.
config QTI_CRYPTO_VIRTUALIZATION
tristate "Enable hypervysor to be used for FBE"
depends on FS_ENCRYPTION_INLINE_CRYPT
depends on MSM_HAB
help
Say 'Y' to enable routing of crypto requests to different operating
system in virtualized environment. Driver uses a hardware abstraction(hab)
layer where the APIs exposed by that operationg systems are used to send
requests to perform the hardware crypto operation.
config QTI_HW_KEY_MANAGER
tristate "Enable QTI Hardware Key Manager for storage encryption"
default n
help
Say 'Y' to enable the hardware key manager driver used to operate
and access key manager hardware block. This is used to interface with
HWKM hardware to perform key operations from the kernel which will
be used for storage encryption.
config QCOM_RTIC
bool "Enable Qualcomm Technologies, Inc. RTIC feature"
depends on QGKI
default y if QGKI
help
This option enables QCOM Real Time Integrity Check feature. This
will trigger RTIC kernel MP.s (measurement parameters) generation
during the kernel build.
config RENAME_BLOCK_DEVICE
tristate "Rename block device node in /dev"
default n
help
Say 'Y' to to rename the block device node assigned by generic
driver to a name that is needed. This is used for rename block
device names created by default as sda1, sda2 etc. to the
names system is needed.this is applicable for block devices only.
config QCOM_ADSP_MANUAL_VOTE
bool "Send commands to ADSP to unvote/vote during Suspend/resume"
help
This driver is used to manually release and acquire the ADSP vote from
APPS processor during system suspend and resume.
This driver sends message over QMI to the service which is running on
ADSP.
config MSM_SLATECOM
bool "Provide APIs to communicate with Slate chipset"
help
SLATECOM is a thin layer above SPI. It is used whithin a SoC for
communication between G-Link/slate_com_dev and Slate processor over SPI.
This handle the interrupts raised by BG and notify the G-link with
interrupt event and event data.
config MSM_SLATECOM_INTERFACE
tristate "Driver support for Slate Communication"
depends on MSM_SLATECOM
help
Create a slate_com_dev device node for user space communication.
Single user space client can open device node for communication
from hardware. Hardware will provide access to read
registers and read/write AHB memory in the device.
config QCOM_AOP_SET_DDR
tristate "Sysfs to communicate with AOP using QMP protocol"
help
This options enables a driver which allows clients to send messages
to Alway On processor using QMP transport. Users can echo a frequency
into an exposed sysfs node to send to AOP. The driver expects the Cap
frequency of DDR based on SKU.
config DUMP_XBL_LOG
bool "print xbl log on console from fs"
help
This driver is used to capture xbl log from reserved memory region
defined separately in each device tree and print on console when user
requests. User can perform below command to print xbl log stored in
reserved memory region:
cat /sys/module/xbl_log/xbl_log
config MSM_SEB
tristate "Provide APIs to send and receive events from Slate chipset"
help
SEB(Slate event bridge) communicates to Slate over rpmsg driver to
send or receive events from Slate. The button events received from
Slate are send to input framework. The driver provides functionality
for a client to register a callback to receive events from a group.
config MSM_SEB_RPMSG
tristate "Provide support for slate event GLINK channel"
depends on MSM_SEB
help
SEB_RPMSG informs SEB driver if GLINK channel has been
opened by remote processor. It doesn't maintain state machine
and is probed when Slate opens channel and removed when the
channel is closed by remote processor.
config SDX_EXT_IPC
tristate "QCOM external ipc driver"
help
This enables the module to help modem communicate with external
Application processor connected to Qualcomm Technologies, Inc
modem chipset. The modem and APQ can understand each other's
state by reading ipc gpios.
If unsure, say N.
source "drivers/soc/qcom/icnss2/Kconfig"
source "drivers/soc/qcom/gnsssirf/Kconfig"
endmenu