4 source "drivers/soc/qcom/hab/Kconfig"
6 bool "MSM DDR Partial Array Self-Refresh Driver"
8 RPM controls DDR functionaliy. This driver
9 is an interface for linux memory hotplug to RPM
10 for start/stop self-refresh of hot added or removed
13 config MSM_INRUSH_CURRENT_MITIGATION
14 bool "Inrush-current mitigation Driver"
16 This driver helps in mitigating in-rush current on MSM
17 chipsets which has voltage droop issues due to sudden
18 huge load on a rail. This driver introduces an intermediate
19 load to mitigate the in-rush current.
22 depends on HW_PERF_EVENTS
23 bool "Enable a H/W PFE WA"
25 Sometimes the PFTLB entries get stuck in the invalid state and new
26 prefetches get dropped. For a workaround, count L1 prefeches dropped
27 due to PFTLB miss and reset H/W PFE when a overflow happens.
31 config QCOM_COMMON_LOG
32 bool "QCOM Common Log Support"
34 Use this to export symbols of some log address and variables
35 that need to parse crash dump files to a memory dump table. This
36 table can be used by post analysis tools to extract information
37 from memory when device crashes.
41 depends on REMOTE_SPINLOCK_MSM
42 bool "MSM Shared Memory (SMEM)"
44 Support for the shared memory interface between the various
45 processors in the System on a Chip (SoC) which allows basic
46 inter-processor communication.
49 tristate "Haptic support for QPNP PMIC"
52 This option enables device driver support for the haptic peripheral
53 found on Qualcomm Technologies, Inc. QPNP PMICs. The haptic
54 peripheral is capable of driving both LRA and ERM vibrators. This
55 module provides haptic feedback for user actions such as a long press
56 on the touch screen. It uses the Android timed-output framework.
59 tristate "PBS trigger support for QPNP PMIC"
62 This driver supports configuring software PBS trigger event through PBS
63 RAM on Qualcomm Technologies, Inc. QPNP PMICs. This module provides
64 the APIs to the client drivers that wants to send the PBS trigger
69 bool "MSM Shared Memory Driver (SMD)"
71 Support for the shared memory interprocessor communication protocol
72 which provides virual point to point serial channels between processes
73 on the apps processor and processes on other processors in the SoC.
74 Also includes support for the Shared Memory State Machine (SMSM)
75 protocol which provides a mechanism to publish single bit state
76 information to one or more processors in the SoC.
80 bool "MSM SMD debug support"
82 Support for debugging SMD and SMSM communication between apps and
83 other processors in the SoC. Debug support primarily consists of
84 logs consisting of information such as what interrupts were processed,
85 what channels caused interrupt activity, and when internal state
89 bool "Generic Link (G-Link)"
91 G-Link is a generic link transport that replaces SMD. It is used
92 within a System-on-Chip (SoC) for communication between both internal
93 processors and external peripherals. The actual physical transport
94 is handled by transport plug-ins that can be individually enabled and
95 configured separately.
97 config MSM_GLINK_LOOPBACK_SERVER
98 bool "Generic Link (G-Link) Loopback Server"
100 G-Link Loopback Server that enable loopback test framework to test
101 and validate the G-Link protocol stack. It support both local and
102 remote clients to configure the loopback server and echo back the
103 data received from the clients.
105 config MSM_GLINK_SMD_XPRT
108 bool "Generic Link (G-Link) SMD Transport"
110 G-Link SMD Transport is a G-Link Transport plug-in. It allows G-Link
111 communication to remote entities through a SMD physical transport
112 channel. The remote side is assumed to be pure SMD. The nature of
113 SMD limits this G-Link transport to only connecting with entities
114 internal to the System-on-Chip.
116 config MSM_GLINK_SMEM_NATIVE_XPRT
119 bool "Generic Link (G-Link) SMEM Native Transport"
121 G-Link SMEM Native Transport is a G-Link Transport plug-in. It allows
122 G-Link communication to remote entities through a shared memory
123 physical transport. The nature of shared memory limits this G-Link
124 transport to only connecting with entities internal to the
127 config MSM_GLINK_SPI_XPRT
129 tristate "Generic Link (G-Link) SPI Transport"
131 G-Link SPI Transport is a Transport plug-in developed over SPI
132 bus. This transport plug-in performs marshaling of G-Link
133 commands & data to the appropriate SPI bus wire format and
134 allows for G-Link communication with remote subsystems that are
135 external to the System-on-Chip.
139 bool "Secure Processor Communication over GLINK"
141 spcom driver allows loading Secure Processor Applications and
142 sending messages to Secure Processor Applications.
143 spcom provides interface to both user space app and kernel driver.
144 It is using glink as the transport layer, which provides multiple
145 logical channels over signle physical channel.
146 The physical layer is based on shared memory and interrupts.
147 spcom provides clients/server API, although currently only one client
148 or server is allowed per logical channel.
150 config MSM_SPSS_UTILS
152 bool "Secure Processor Utilities"
154 spss-utils driver selects Secure Processor firmware file name.
155 The firmware file name for test or production is selected based
157 Different file name is used for differnt SPSS HW versions,
158 because the SPSS firmware size is too small to support multiple
161 config MSM_SMEM_LOGGING
163 bool "MSM Shared Memory Logger"
165 Enable the shared memory logging to log the events between
166 the various processors in the system. This option exposes
167 the shared memory logger at /dev/smem_log and a debugfs node
171 bool "SMSM Point-to-Point (SMP2P)"
174 Provide point-to-point remote signaling support.
175 SMP2P enables transferring 32-bit values between
176 the local and a remote system using shared
177 memory and interrupts. A client can open multiple
178 32-bit values by specifying a unique string and
181 config MSM_SMP2P_TEST
182 bool "SMSM Point-to-Point Test"
185 Enables loopback and unit testing support for
186 SMP2P. Loopback support is used by other
187 processors to do unit testing. Unit tests
188 are used to verify the local and remote
191 config MSM_QMI_INTERFACE
192 depends on IPC_ROUTER
193 depends on QMI_ENCDEC
194 bool "MSM QMI Interface Library"
196 Library to send and receive QMI messages over IPC Router.
197 This library provides interface functions to the kernel drivers
198 to perform QMI message marshaling and transport them over IPC
201 config MSM_L2_IA_DEBUG
202 bool "Enable MSM L2 Indirect Access Debug"
206 This option enables L2 indirect access debug
207 capability. It exposes L2 indirect access
208 debugfs interface to get/set data, address,
212 bool "RPM driver using SMD protocol"
214 RPM is the dedicated hardware engine for managing shared SoC
215 resources. This config adds driver support for using SMD as a
216 transport layer communication with RPM hardware. It also selects
217 the MSM_MPM config that programs the MPM module to monitor interrupts
220 config QCOM_BUS_SCALING
221 bool "Bus scaling driver"
223 This option enables bus scaling on MSM devices. Bus scaling
224 allows devices to request the clocks be set to rates sufficient
225 for the active devices needs without keeping the clocks at max
226 frequency when a slower speed is sufficient.
229 tristate "QCOM General Serial Bus Interface"
233 Say y here to enable GSBI support. The GSBI provides control
234 functions for connecting the underlying serial UART, SPI, and I2C
235 devices to the output pins.
238 bool "Qualcomm Power Management"
239 depends on ARCH_QCOM && !ARM64
242 QCOM Platform specific power driver to manage cores and L2 low power
243 modes. It interface with various system drivers to put the cores in
247 tristate "Qualcomm Shared Memory Manager (SMEM)"
249 depends on HWSPINLOCK
251 Say y here to enable support for the Qualcomm Shared Memory Manager.
252 The driver provides an interface to items in a heap shared among all
253 processors in a Qualcomm platform.
255 config MSM_SERVICE_LOCATOR
256 bool "Service Locator"
257 depends on MSM_QMI_INTERFACE
259 The Service Locator provides a library to retrieve location
260 information given a service identifier. Location here translates
261 to what process domain exports the service, and which subsystem
262 that process domain will execute in.
265 bool "MSM Hypervisor Call Support"
267 This enables the Hypervisor Call module. It provides apis to call
268 into the hypervisor thereby allowing access to services exposed by
269 the hypervisor. It is primarily intended to be used for Silicon
270 Partner/Manufacturer function identifier subrange but supports other
271 service call subranges as well.
274 bool "QCOM Data Capture and Compare enigne support"
276 This option enables driver for Data Capture and Compare engine. DCC
277 driver provides interface to configure DCC block and read back
278 captured data from DCC's internal SRAM.
280 config MSM_IPC_ROUTER_SMD_XPRT
282 depends on IPC_ROUTER
283 bool "MSM SMD XPRT Layer"
285 SMD Transport Layer that enables IPC Router communication within
286 a System-on-Chip(SoC). When the SMD channels become available,
287 this layer registers a transport with IPC Router and enable
290 config MSM_SYSMON_GLINK_COMM
291 bool "MSM System Monitor communication support using GLINK transport"
292 depends on MSM_GLINK && MSM_SUBSYSTEM_RESTART
294 This option adds support for MSM System Monitor APIs using the GLINK
295 transport layer. The APIs provided may be used for notifying
296 subsystems within the SoC about other subsystems' power-up/down
299 config MSM_IPC_ROUTER_HSIC_XPRT
300 depends on USB_QCOM_IPC_BRIDGE
301 depends on IPC_ROUTER
302 bool "MSM HSIC XPRT Layer"
304 HSIC Transport Layer that enables off-chip communication of
305 IPC Router. When the HSIC endpoint becomes available, this layer
306 registers the transport with IPC Router and enable message
309 config MSM_IPC_ROUTER_MHI_XPRT
311 depends on IPC_ROUTER
312 bool "MSM MHI XPRT Layer"
314 MHI Transport Layer that enables off-chip communication of
315 IPC Router. When the MHI endpoint becomes available, this layer
316 registers the transport with IPC Router and enable message
319 config MSM_IPC_ROUTER_GLINK_XPRT
321 depends on IPC_ROUTER
322 bool "MSM GLINK XPRT Layer"
324 GLINK Transport Layer that enables IPC Router communication within
325 a System-on-Chip(SoC). When the GLINK channels become available,
326 this layer registers a transport with IPC Router and enable
329 config MSM_SYSTEM_HEALTH_MONITOR
330 bool "System Health Monitor"
331 depends on MSM_QMI_INTERFACE && MSM_SUBSYSTEM_RESTART
333 System Health Monitor (SHM) passively monitors the health of the
334 peripherals connected to the application processor. Software
335 components in the application processor that experience
336 communication failure can request the SHM to perform a system-wide
337 health check. If any failures are detected during the health-check,
338 then a subsystem restart will be triggered for the failed subsystem.
341 bool "Enable device interface for GLINK packet channels"
344 G-link packet driver provides the interface for the userspace
345 clients to communicate over G-Link via deivce nodes.
346 This enable the usersapce clients to read and write to
347 some glink packets channel.
350 tristate "Qualcomm Shared Memory Driver (SMD)"
353 Say y here to enable support for the Qualcomm Shared Memory Driver
354 providing communication channels to remote processors in Qualcomm
358 tristate "Qualcomm Resource Power Manager (RPM) over SMD"
359 depends on QCOM_SMD && OF
361 If you say yes to this option, support will be included for the
362 Resource Power Manager system found in the Qualcomm 8974 based
365 This is required to access many regulators, clocks and bus
366 frequencies controlled by the RPM on these devices.
368 Say M here if you want to include support for the Qualcomm RPM as a
369 module. This will build a module called "qcom-smd-rpm".
372 bool "Driver support for SPM and AVS wrapper hardware"
374 Enables the support SAW and AVS wrapper hardware on MSMs SPM
375 hardware is used to manage the processor power during sleep. The
376 driver allows configuring SPM to allow different low power modes for
380 bool "SPM support for L2 cache"
382 Enable SPM driver support for L2 cache. Some MSM chipsets allow
383 control of L2 cache low power mode with a Subsystem Power manager.
384 Enabling this driver allows configuring L2 SPM for low power modes
385 on supported chipsets
388 bool "Secure Channel Manager (SCM) support"
392 bool "Para-Virtualized Secure Channel Manager (SCM) support over QCPE"
395 config QCOM_EARLY_DOMAIN
396 bool "Support for handoff of early domain services running in bootloader"
398 menuconfig QCOM_SCM_XPU
399 bool "Qualcomm XPU configuration driver"
405 prompt "XPU Violation Behavior"
406 default QCOM_XPU_ERR_FATAL
408 config QCOM_XPU_ERR_FATAL
409 bool "Configure XPU violations as fatal errors"
411 Select if XPU violations have to be configured as fatal errors.
413 config QCOM_XPU_ERR_NONFATAL
414 bool "Configure XPU violations as non-fatal errors"
416 Select if XPU violations have to be configured as non-fatal errors.
422 config QCOM_SCM_ERRATA
425 bool "Support for enabling/disabling errata workarounds via debugfs"
427 Exposes a debugfs interface intended for advanced system debugging
428 where it may be desirable to enable or disable certain hardware
429 errata workarounds at runtime.
435 config QCOM_WATCHDOG_V2
436 bool "Qualcomm Watchdog Support"
438 This enables the watchdog module. It causes kernel panic if the
439 watchdog times out. It allows for detection of cpu hangs and
440 deadlocks. It does not run during the bootup process, so it will
441 not catch any early lockups.
443 config QCOM_IRQ_HELPER
444 bool "QCOM Irq Helper"
446 This enables the irq helper module. It exposes two APIs
447 int irq_blacklist_on(void) and int irq_blacklist_off(void)
448 to other kernel module.
449 These two apis will be used to control the black list used
452 config QCOM_MEMORY_DUMP
453 bool "Qualcomm Memory Dump Support"
455 This enables memory dump feature. It allows various client
456 subsystems to register respective dump regions. At the time
457 of deadlocks or cpu hangs these dump regions are captured to
458 give a snapshot of the system at the time of the crash.
460 config QCOM_MEMORY_DUMP_V2
461 bool "QCOM Memory Dump V2 Support"
463 This enables memory dump feature. It allows various client
464 subsystems to register respective dump regions. At the time
465 of deadlocks or cpu hangs these dump regions are captured to
466 give a snapshot of the system at the time of the crash.
469 bool "QCOM Minidump Support"
470 depends on MSM_SMEM && QCOM_DLOAD_MODE
472 This enables minidump feature. It allows various clients to
473 register to dump their state at system bad state (panic/WDT,etc.,).
474 This uses SMEM to store all registered client information.
475 This will dump all registered entries, only when DLOAD mode is enabled.
477 config MINIDUMP_MAX_ENTRIES
478 int "Minidump Maximum num of entries"
480 depends on QCOM_MINIDUMP
482 This defines maximum number of entries to be allocated for application
483 subsytem in Minidump SMEM table.
486 tristate "Platform driver for Q6 integrated connectivity"
489 This module adds support for Q6 integrated WLAN connectivity
490 subsystem. This module is responsible for communicating WLAN on/off
491 control messages to FW over QMI channel. It is also responsible for
492 handling WLAN PD restart notifications.
495 bool "ICNSS debug support"
498 Say 'Y' here to enable ICNSS driver debug support. Debug support
499 primarily consists of logs consisting of information related to
500 hardware register access and enabling BUG_ON for certain cases to aid
503 config MSM_SECURE_BUFFER
504 bool "Helper functions for securing buffers through TZ"
506 Say 'Y' here for targets that need to call into TZ to secure
507 memory buffers. This ensures that only the correct clients can
508 use this memory and no unauthorized access is made to the
512 bool "Helper functions for SMMU configuration through TZ"
513 depends on ARCH_MSMTHULIUM
515 Say 'Y' here for targets that need to call into TZ to configure
516 SMMUs for any reason (for example, for errata workarounds or
517 configuration of SMMU virtualization).
521 config MSM_GLADIATOR_ERP
522 tristate "GLADIATOR coherency interconnect error reporting driver"
524 Support dumping debug information for the GLADIATOR
525 cache interconnect in the error interrupt handler.
526 Meant to be used for debug scenarios only.
530 config MSM_GLADIATOR_ERP_V2
531 tristate "GLADIATOR coherency interconnect error reporting driver v2"
533 Support dumping debug information for the GLADIATOR
534 cache interconnect in the error interrupt handler.
535 Meant to be used for debug scenarios only.
539 config PANIC_ON_GLADIATOR_ERROR_V2
540 depends on MSM_GLADIATOR_ERP_V2
541 bool "Panic on GLADIATOR error report v2"
543 Panic upon detection of an Gladiator coherency interconnect error
544 in order to support dumping debug information.
545 Meant to be used for debug scenarios only.
549 config MSM_GLADIATOR_ERROR_V2_MAIN_LOGGER_ONLY
550 depends on MSM_GLADIATOR_ERP_V2
551 bool "QCOM Gladiator error v2 main logger support only"
553 Gladiator has two error loggers to report error captured.
554 By default, two error loggers will both be enabled.
555 This option enables only the main error logger.
558 config MSM_GLADIATOR_HANG_DETECT
559 tristate "MSM Gladiator Hang Detection Support"
561 This enables the gladiator hang detection module.
562 If the configured threshold is reached, it causes SoC reset on
563 gladiator hang detection and collects the context for the
566 config MSM_CORE_HANG_DETECT
567 tristate "MSM Core Hang Detection Support"
569 This enables the core hang detection module. It causes SoC
570 reset on core hang detection and collects the core context
573 config MSM_RUN_QUEUE_STATS
574 bool "Enable collection and exporting of MSM Run Queue stats to userspace"
576 This option enables the driver to periodically collecting the statistics
577 of kernel run queue information and calculate the load of the system.
578 This information is exported to usespace via sysfs entries and userspace
579 algorithms uses info and decide when to turn on/off the cpu cores.
582 bool "Debug and ETM trace support across power collapse for ARMv8"
583 default y if CORESIGHT_SOURCE_ETM4X
585 Enables support for debugging (specifically breakpoints) and ETM
586 processor tracing across power collapse both for JTag and OS hosted
587 software running on ARMv8 target. Enabling this will ensure debug
588 and ETM registers are saved and restored across power collapse.
590 If unsure, say 'N' here to avoid potential power, performance and
593 config MSM_BOOT_STATS
594 bool "Use MSM boot stats reporting"
596 Use this to report msm boot stats such as bootloader throughput,
597 display init, total boot time.
598 This figures are reported in mpm sleep clock cycles and have a
599 resolution of 31 bits as 1 bit is used as an overflow check.
601 config MSM_BOOT_TIME_MARKER
602 bool "Use MSM boot time marker reporting"
603 depends on MSM_BOOT_STATS
605 Use this to mark msm boot kpi for measurement.
606 An instrumentation for boot time measurement.
607 To create an entry, call "place_marker" function.
608 At userspace, write marker name to "/sys/kernel/debug/bootkpi/kpi_values"
611 config QCOM_CPUSS_DUMP
612 bool "CPU Subsystem Dumping support"
614 Add support to dump various hardware entities such as the instruction
615 and data tlb's as well as the unified tlb, which are a part of the
616 cpu subsystem to an allocated buffer. This allows for analysis of the
617 the entities if corruption is suspected.
620 config MSM_QDSP6_APRV2
621 bool "Audio QDSP6 APRv2 support"
624 Enable APRv2 IPC protocol support between
625 application processor and QDSP6. APR is
626 used by audio driver to configure QDSP6's
629 config MSM_QDSP6_APRV2_VM
630 bool "Audio QDSP6 APRv2 virtualization support"
633 Enable APRv2 IPC protocol support over
634 HAB between application processor and
635 QDSP6. APR is used by audio driver to
636 configure QDSP6's ASM, ADM and AFE.
638 config MSM_QDSP6_APRV3
639 bool "Audio QDSP6 APRv3 support"
642 Enable APRv3 IPC protocol support between
643 application processor and QDSP6. APR is
644 used by audio driver to configure QDSP6v2's
647 config MSM_QDSP6_APRV2_GLINK
648 bool "Audio QDSP6 APRv2 over Glink support"
651 Enable APRv2 IPC protocol support over
652 Glink between application processor and
653 QDSP6. APR is used by audio driver to
654 configure QDSP6's ASM, ADM and AFE.
656 config MSM_QDSP6_APRV3_GLINK
657 bool "Audio QDSP6 APRv3 over Glink support"
660 Enable APRv3 IPC protocol support over
661 Glink between application processor and
662 QDSP6. APR is used by audio driver to
663 configure QDSP6v2's ASM, ADM and AFE.
666 bool "Audio QDSP6 SSR support"
667 depends on MSM_QDSP6_APRV2 || MSM_QDSP6_APRV3 || \
668 MSM_QDSP6_APRV2_GLINK || MSM_QDSP6_APRV3_GLINK
670 Enable Subsystem Restart. Reset audio
671 clients when the ADSP subsystem is
672 restarted. Subsystem Restart for audio
673 is only used for processes on the ADSP
674 and signals audio drivers through APR.
678 bool "Audio QDSP6 PDR support"
679 depends on MSM_QDSP6_APRV2 || MSM_QDSP6_APRV3 || \
680 MSM_QDSP6_APRV2_GLINK || MSM_QDSP6_APRV3_GLINK
682 Enable Protection Domain Restart. Reset
683 audio clients when a process on the ADSP
684 is restarted. PDR for audio is only used
685 for processes on the ADSP and signals
686 audio drivers through APR.
688 config MSM_QDSP6_NOTIFIER
689 bool "Audio QDSP6 PDR support"
690 depends on MSM_QDSP6_SSR || MSM_QDSP6_PDR
692 Enable notifier which decides whether
693 to use SSR or PDR and notifies all
694 audio clients of the event. Both SSR
695 and PDR are recovery methods when
696 there is a crash on ADSP. Audio drivers
697 are contacted by ADSP through APR.
699 config MSM_ADSP_LOADER
700 tristate "ADSP loader support"
701 select SND_SOC_MSM_APRV2_INTF
702 depends on MSM_QDSP6_APRV2 || MSM_QDSP6_APRV3 || \
703 MSM_QDSP6_APRV2_GLINK || MSM_QDSP6_APRV3_GLINK
705 Enable ADSP image loader.
706 The ADSP loader brings ADSP out of reset
707 for the platforms that use APRv2.
708 Say M if you want to enable this module.
710 config MSM_CDSP_LOADER
711 tristate "CDSP loader support"
713 Enable CDSP image loader.
714 The CDSP loader brings CDSP out of reset
716 Say M if you want to enable this module.
718 config MSM_LPASS_RESOURCE_MANAGER
719 tristate "LPASS Resource Manager support"
720 select SND_SOC_MSM_APRV2_INTF
721 depends on MSM_QDSP6_APRV2 || MSM_QDSP6_APRV3 || \
722 MSM_QDSP6_APRV2_GLINK || MSM_QDSP6_APRV3_GLINK
724 Manages the allocation of LPASS resources. It also
725 can check LPAIF for Early Audio playback progress.
726 To check early audio playback, PCM registers are read.
727 If register is enabled, playback is on-going.
728 Say M if you want to enable this module.
730 config MSM_PERFORMANCE
731 tristate "msm_performance driver to support perflock request"
733 This driver is used to set minfreq/maxfreq for CPUs from userspace via
734 perflock. It also add CPU hotplug support to userspace. It ensures
735 that no more than a user specified number of CPUs stay online at any
736 given point in time. It also provides CPU/IO intensive workload
737 detection for userspace.
739 config MSM_PERFORMANCE_HOTPLUG_ON
740 bool "Hotplug functionality through msm_performance turned on"
741 depends on MSM_PERFORMANCE
743 Setting this flag to true will enable the nodes needed for core-control
744 functionality of hot plugging cores through msm_performance if there is
745 no default core-control driver available.
749 config MSM_SUBSYSTEM_RESTART
750 bool "MSM Subsystem Restart"
752 This option enables the MSM subsystem restart framework.
754 The MSM subsystem restart framework provides support to boot,
755 shutdown, and restart subsystems with a reference counted API.
756 It also notifies userspace of transitions between these states via
759 config MSM_SYSMON_COMM
760 bool "MSM System Monitor communication support"
761 depends on MSM_SMD && MSM_SUBSYSTEM_RESTART
763 This option adds support for MSM System Monitor library, which
764 provides an API that may be used for notifying subsystems within
765 the SoC about other subsystems' power-up/down state-changes.
768 bool "Peripheral image loading"
772 Some peripherals need to be loaded into memory before they can be
773 brought out of reset.
775 Say yes to support these devices.
777 config MSM_PIL_SSR_GENERIC
778 tristate "MSM Subsystem Boot Support"
779 depends on MSM_PIL && MSM_SUBSYSTEM_RESTART
781 Support for booting and shutting down MSM Subsystem processors.
782 This driver also monitors the SMSM status bits and the watchdog
783 interrupt for the subsystem and restarts it on a watchdog bite
784 or a fatal error. Subsystems include LPASS, Venus, VPU, WCNSS and
787 config MSM_PIL_MSS_QDSP6V5
788 tristate "MSS QDSP6v5 (Hexagon) Boot Support"
789 depends on MSM_PIL && MSM_SUBSYSTEM_RESTART
791 Support for booting and shutting down QDSP6v5 (Hexagon) processors
792 in modem subsystems. If you would like to make or receive phone
793 calls then say Y here.
800 Tracer Packet helps in profiling the performance of inter-
801 processor communication protocols. The profiling information
802 can be logged into the tracer packet itself.
804 config QCOM_FORCE_WDOG_BITE_ON_PANIC
805 bool "QCOM force watchdog bite"
806 depends on QCOM_WATCHDOG_V2
808 This forces a watchdog bite when the device restarts due to a
809 kernel panic. On certain MSM SoCs, this provides us
810 additional debugging information.
813 bool "Modem Power Manager"
816 MPM is a dedicated hardware resource responsible for entering and
817 waking up from a system wide low power mode. The MPM driver tracks
818 the wakeup interrupts and configures the MPM to monitor the wakeup
819 interrupts when going to a system wide sleep mode. This config option
820 enables the MPM driver that supports initialization from a device
824 config MSM_EVENT_TIMER
827 This option enables a modules that manages a list of event timers that
828 need to be monitored by the PM. The enables the PM code to monitor
829 events that require the core to be awake and ready to handle the
833 tristate "Avtimer Driver"
834 depends on MSM_QDSP6_APRV2 || MSM_QDSP6_APRV3 || MSM_QDSP6_APRV2_GLINK || \
837 This driver gets the Q6 out of power collapsed state and
838 exposes ioctl control to read avtimer tick.
840 config MSM_KERNEL_PROTECT
841 bool "Protect kernel text by removing write permissions in stage-2"
842 depends on !FUNCTION_TRACER
844 On hypervisor-enabled targets, this option will make a call into
845 the hypervisor to request that the kernel text be remapped
846 without write permissions. This protects against malicious
847 devices rewriting kernel code.
849 Note that this will BREAK any runtime patching of the kernel text
850 (i.e. anything that uses apply_alternatives,
851 aarch64_insn_patch_text_nosync, etc. including the various CPU
852 errata workarounds in arch/arm64/kernel/cpu_errata.c).
854 config MSM_KERNEL_PROTECT_TEST
855 bool "Bootup test of kernel protection (INTENTIONAL CRASH)"
856 depends on MSM_KERNEL_PROTECT
858 Attempts to write to the kernel text after making the kernel text
859 read-only. This test is FATAL whether it passes or fails!
860 Success is signaled by a stage-2 fault.
862 config QCOM_REMOTEQDSS
863 bool "Allow debug tools to enable events on other processors"
864 depends on QCOM_SCM && DEBUG_FS
866 Other onchip processors/execution environments may support debug
867 events. Provide a sysfs interface for debug tools to dynamically
868 enable/disable these events. Interface located in
869 /sys/class/remoteqdss.
871 config MSM_SERVICE_NOTIFIER
872 bool "Service Notifier"
873 depends on MSM_SERVICE_LOCATOR && MSM_SUBSYSTEM_RESTART
875 The Service Notifier provides a library for a kernel client to
876 register for state change notifications regarding a remote service.
877 A remote service here refers to a process providing certain services
878 like audio, the identifier for which is provided by the service
882 bool "QBT1000 Ultrasonic Fingerprint Sensor"
884 This driver provides services for configuring the fingerprint
885 sensor hardware and for communicating with the trusted app which
886 uses it. It enables clocks and provides commands for loading
887 trusted apps, unloading them and marshalling buffers to the
888 trusted fingerprint app.
890 config MSM_RPM_RBCPR_STATS_V2_LOG
891 tristate "MSM Resource Power Manager RPBCPR Stat Driver"
894 This option enables v2 of the rpmrbcpr_stats driver which reads RPM
895 memory for statistics pertaining to RPM's RBCPR(Rapid Bridge Core
896 Power Reduction) driver. The drivers outputs the message via a
900 tristate "MSM Resource Power Manager Log Driver"
902 depends on MSM_RPM_SMD
905 This option enables a driver which can read from a circular buffer
906 of messages produced by the RPM. These messages provide diagnostic
907 information about RPM operation. The driver outputs the messages
910 config MSM_RPM_STATS_LOG
911 tristate "MSM Resource Power Manager Stat Driver"
913 depends on MSM_RPM_SMD
916 This option enables a driver which reads RPM messages from a shared
917 memory location. These messages provide statistical information about
918 the low power modes that RPM enters. The drivers outputs the message
921 config QSEE_IPC_IRQ_BRIDGE
922 tristate "QSEE IPC Interrupt Bridge"
924 This module enables bridging an Inter-Processor Communication(IPC)
925 interrupt from a remote subsystem directed towards Qualcomm
926 Technologies, Inc. Secure Execution Environment(QSEE).
929 tristate "WCD DSP GLINK Driver"
931 default y if SND_SOC_WCD934X=y
933 This option enables driver which provides communication interface
934 between MSM and WCD DSP over glink transport protocol. This driver
935 provides read and write interface via char device.
937 config QCOM_SMCINVOKE
938 bool "Secure QSEE Support"
940 Enable SMCInvoke driver which supports capability based secure
941 communication between QSEE and HLOS.
943 config QCOM_EARLY_RANDOM
944 bool "Initialize random pool very early"
946 The standard random pool may not initialize until late in the boot
947 process which means that any calls to get random numbers before then
948 may not be truly random. Select this option to make an early call
949 to get some random data to put in the pool. If unsure, say N.
952 bool "Common driver to handle Cx iPeak limitation"
954 Cx ipeak HW module is used to limit the current drawn by various subsystem
955 blocks on Cx power rail. Each client needs to set their
956 bit in tcsr register if it is going to cross its own threshold. If all
957 clients are going to cross their thresholds then Cx ipeak hw module will raise
958 an interrupt to cDSP block to throttle cDSP fmax.
960 config MSM_CACHE_M4M_ERP64
961 bool "Cache and M4M error report"
962 depends on ARCH_MSM8996
964 Say 'Y' here to enable reporting of cache and M4M errors to the kernel
965 log. The kernel log contains collected error syndrome and address
966 registers. These register dumps can be used as useful information
967 to find out possible hardware problems.
969 config MSM_CACHE_M4M_ERP64_PANIC_ON_CE
970 bool "Panic on correctable cache/M4M errors"
972 Say 'Y' here to cause kernel panic when correctable cache/M4M errors
973 are detected. Enabling this is useful when you want to dump memory
974 and system state close to the time when the error occured.
978 config MSM_CACHE_M4M_ERP64_PANIC_ON_UE
979 bool "Panic on uncorrectable cache/M4M errors"
981 Say 'Y' here to cause kernel panic when uncorrectable cache/M4M errors
984 config QCOM_QDSS_BRIDGE
985 bool "Configure bridge driver for QTI/Qualcomm Technologies, Inc. MDM"
988 The driver will help route diag traffic from modem side over the QDSS
989 sub-system to USB on APSS side. The driver acts as a bridge between the
990 MHI and USB interface. If unsure, say N.
993 bool "Enable External ANC"
994 depends on MSM_QDSP6_APRV2 || MSM_QDSP6_APRV3
996 This option enables support for anti-noise cnacellation
1000 bool "QMI client for MFSE"
1001 depends on MSM_QMI_INTERFACE
1003 This option enables the QMI client driver for MFSE service.
1005 source "drivers/soc/qcom/memshare/Kconfig"