OSDN Git Service

cnss2: Add support for genoa sdio
[sagit-ice-cold/kernel_xiaomi_msm8998.git] / drivers / soc / qcom / Kconfig
1 #
2 # QCOM Soc drivers
3 #
4 source "drivers/soc/qcom/hab/Kconfig"
5 config MSM_PASR
6         bool "MSM DDR Partial Array Self-Refresh Driver"
7         help
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
11           memory in DDR.
12
13 config MSM_INRUSH_CURRENT_MITIGATION
14         bool "Inrush-current mitigation Driver"
15         help
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.
20
21 config MSM_PFE_WA
22         depends on HW_PERF_EVENTS
23         bool "Enable a H/W PFE WA"
24         help
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.
28
29           If unsure, say N.
30
31 config QCOM_COMMON_LOG
32         bool "QCOM Common Log Support"
33         help
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.
38
39 config MSM_SMEM
40         depends on ARCH_QCOM
41         depends on REMOTE_SPINLOCK_MSM
42         bool "MSM Shared Memory (SMEM)"
43         help
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.
47
48 config QPNP_HAPTIC
49         tristate "Haptic support for QPNP PMIC"
50         depends on ARCH_QCOM
51         help
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.
57
58 config QPNP_PBS
59         tristate "PBS trigger support for QPNP PMIC"
60         depends on SPMI
61         help
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
65           event to the PBS RAM.
66
67 config MSM_SMD
68         depends on MSM_SMEM
69         bool "MSM Shared Memory Driver (SMD)"
70         help
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.
77
78 config MSM_SMD_DEBUG
79         depends on MSM_SMD
80         bool "MSM SMD debug support"
81         help
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
86           change events occur.
87
88 config MSM_GLINK
89         bool "Generic Link (G-Link)"
90         help
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.
96
97 config MSM_GLINK_LOOPBACK_SERVER
98         bool "Generic Link (G-Link) Loopback Server"
99         help
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.
104
105 config MSM_GLINK_SMD_XPRT
106         depends on MSM_SMD
107         depends on MSM_GLINK
108         bool "Generic Link (G-Link) SMD Transport"
109         help
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.
115
116 config MSM_GLINK_SMEM_NATIVE_XPRT
117         depends on MSM_SMEM
118         depends on MSM_GLINK
119         bool "Generic Link (G-Link) SMEM Native Transport"
120         help
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
125           System-on-Chip.
126
127 config MSM_GLINK_SPI_XPRT
128         depends on MSM_GLINK
129         tristate "Generic Link (G-Link) SPI Transport"
130         help
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.
136
137 config MSM_SPCOM
138         depends on MSM_GLINK
139         bool "Secure Processor Communication over GLINK"
140         help
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.
149
150 config MSM_SPSS_UTILS
151         depends on MSM_PIL
152         bool "Secure Processor Utilities"
153         help
154           spss-utils driver selects Secure Processor firmware file name.
155           The firmware file name for test or production is selected based
156           on a test fuse.
157           Different file name is used for differnt SPSS HW versions,
158           because the SPSS firmware size is too small to support multiple
159           HW versions.
160
161 config MSM_SMEM_LOGGING
162         depends on MSM_SMEM
163         bool "MSM Shared Memory Logger"
164         help
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
168           named smem_log.
169
170 config MSM_SMP2P
171         bool "SMSM Point-to-Point (SMP2P)"
172         depends on MSM_SMEM
173         help
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
179           remote processor ID.
180
181 config MSM_SMP2P_TEST
182         bool "SMSM Point-to-Point Test"
183         depends on MSM_SMP2P
184         help
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
189           implementations.
190
191 config MSM_QMI_INTERFACE
192         depends on IPC_ROUTER
193         depends on QMI_ENCDEC
194         bool "MSM QMI Interface Library"
195         help
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
199           Router.
200
201 config MSM_L2_IA_DEBUG
202        bool "Enable MSM L2 Indirect Access Debug"
203        depends on DEBUG_FS
204        default n
205        help
206          This option enables L2 indirect access debug
207          capability. It exposes L2 indirect access
208          debugfs interface to get/set data, address,
209          and target cpus.
210
211 config MSM_RPM_SMD
212         bool "RPM driver using SMD protocol"
213         help
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
218           during sleep modes.
219
220 config QCOM_BUS_SCALING
221         bool "Bus scaling driver"
222         help
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.
227
228 config QCOM_GSBI
229         tristate "QCOM General Serial Bus Interface"
230         depends on ARCH_QCOM
231         select MFD_SYSCON
232         help
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.
236
237 config QCOM_PM
238         bool "Qualcomm Power Management"
239         depends on ARCH_QCOM && !ARM64
240         select QCOM_SCM
241         help
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
244           low power modes.
245
246 config QCOM_SMEM
247         tristate "Qualcomm Shared Memory Manager (SMEM)"
248         depends on ARCH_QCOM
249         depends on HWSPINLOCK
250         help
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.
254
255 config MSM_SERVICE_LOCATOR
256         bool "Service Locator"
257         depends on MSM_QMI_INTERFACE
258         help
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.
263
264 config MSM_HVC
265         bool "MSM Hypervisor Call Support"
266         help
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.
272
273 config QCOM_DCC
274         bool "QCOM Data Capture and Compare enigne support"
275         help
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.
279
280 config MSM_IPC_ROUTER_SMD_XPRT
281         depends on MSM_SMD
282         depends on IPC_ROUTER
283         bool "MSM SMD XPRT Layer"
284         help
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
288           message exchange.
289
290 config MSM_SYSMON_GLINK_COMM
291         bool "MSM System Monitor communication support using GLINK transport"
292         depends on MSM_GLINK && MSM_SUBSYSTEM_RESTART
293         help
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
297           state-changes.
298
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"
303         help
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
307           exchange.
308
309 config MSM_IPC_ROUTER_MHI_XPRT
310         depends on MSM_MHI
311         depends on IPC_ROUTER
312         bool "MSM MHI XPRT Layer"
313         help
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
317           exchange.
318
319 config MSM_IPC_ROUTER_GLINK_XPRT
320         depends on MSM_GLINK
321         depends on IPC_ROUTER
322         bool "MSM GLINK XPRT Layer"
323         help
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
327           message exchange.
328
329 config MSM_SYSTEM_HEALTH_MONITOR
330         bool "System Health Monitor"
331         depends on MSM_QMI_INTERFACE && MSM_SUBSYSTEM_RESTART
332         help
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.
339
340 config MSM_GLINK_PKT
341         bool "Enable device interface for GLINK packet channels"
342         depends on MSM_GLINK
343         help
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.
348
349 config QCOM_SMD
350         tristate "Qualcomm Shared Memory Driver (SMD)"
351         depends on QCOM_SMEM
352         help
353           Say y here to enable support for the Qualcomm Shared Memory Driver
354           providing communication channels to remote processors in Qualcomm
355           platforms.
356
357 config QCOM_SMD_RPM
358         tristate "Qualcomm Resource Power Manager (RPM) over SMD"
359         depends on QCOM_SMD && OF
360         help
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
363           devices.
364
365           This is required to access many regulators, clocks and bus
366           frequencies controlled by the RPM on these devices.
367
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".
370
371 config MSM_SPM
372         bool "Driver support for SPM and AVS wrapper hardware"
373         help
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
377           both core and L2.
378
379 config MSM_L2_SPM
380         bool "SPM support for L2 cache"
381         help
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
386
387 config QCOM_SCM
388        bool "Secure Channel Manager (SCM) support"
389        default n
390
391 config QCOM_SCM_QCPE
392        bool "Para-Virtualized Secure Channel Manager (SCM) support over QCPE"
393        default n
394
395 config QCOM_EARLY_DOMAIN
396         bool "Support for handoff of early domain services running in bootloader"
397
398 menuconfig QCOM_SCM_XPU
399         bool "Qualcomm XPU configuration driver"
400         depends on QCOM_SCM
401
402 if QCOM_SCM_XPU
403
404 choice
405         prompt "XPU Violation Behavior"
406         default QCOM_XPU_ERR_FATAL
407
408 config QCOM_XPU_ERR_FATAL
409         bool "Configure XPU violations as fatal errors"
410         help
411          Select if XPU violations have to be configured as fatal errors.
412
413 config QCOM_XPU_ERR_NONFATAL
414         bool "Configure XPU violations as non-fatal errors"
415         help
416          Select if XPU violations have to be configured as non-fatal errors.
417
418 endchoice
419
420 endif
421
422 config QCOM_SCM_ERRATA
423         depends on DEBUG_FS
424         depends on QCOM_SCM
425         bool "Support for enabling/disabling errata workarounds via debugfs"
426         help
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.
430
431           If unsure, say N.
432
433 if ARCH_QCOM
434
435 config QCOM_WATCHDOG_V2
436         bool "Qualcomm Watchdog Support"
437         help
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.
442
443 config QCOM_IRQ_HELPER
444         bool "QCOM Irq Helper"
445         help
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
450           by the irq balancer.
451
452 config QCOM_MEMORY_DUMP
453         bool "Qualcomm Memory Dump Support"
454         help
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.
459
460 config QCOM_MEMORY_DUMP_V2
461         bool "QCOM Memory Dump V2 Support"
462         help
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.
467
468 config QCOM_MINIDUMP
469         bool "QCOM Minidump Support"
470         depends on MSM_SMEM && QCOM_DLOAD_MODE
471         help
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.
476
477 config MINIDUMP_MAX_ENTRIES
478         int "Minidump Maximum num of entries"
479         default 200
480         depends on QCOM_MINIDUMP
481         help
482           This defines maximum number of entries to be allocated for application
483           subsytem in Minidump SMEM table.
484
485 config ICNSS
486         tristate "Platform driver for Q6 integrated connectivity"
487         select CNSS_UTILS
488         ---help---
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.
493
494 config ICNSS_DEBUG
495         bool "ICNSS debug support"
496         depends on ICNSS
497         ---help---
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
501           the debugging.
502
503 config MSM_SECURE_BUFFER
504         bool "Helper functions for securing buffers through TZ"
505         help
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
509          buffer
510
511 config MSM_TZ_SMMU
512         bool "Helper functions for SMMU configuration through TZ"
513         depends on ARCH_MSMTHULIUM
514         help
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).
518
519           If unsure, say N.
520
521 config MSM_GLADIATOR_ERP
522         tristate "GLADIATOR coherency interconnect error reporting driver"
523         help
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.
527
528           If unsure, say N.
529
530 config MSM_GLADIATOR_ERP_V2
531         tristate "GLADIATOR coherency interconnect error reporting driver v2"
532         help
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.
536
537                 If unsure, say N.
538
539 config PANIC_ON_GLADIATOR_ERROR_V2
540         depends on MSM_GLADIATOR_ERP_V2
541         bool "Panic on GLADIATOR error report v2"
542         help
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.
546
547                 If unsure, say N.
548
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"
552         help
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.
556           If unsure, say no
557
558 config MSM_GLADIATOR_HANG_DETECT
559         tristate "MSM Gladiator Hang Detection Support"
560         help
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
564           gladiator hang.
565
566 config MSM_CORE_HANG_DETECT
567         tristate "MSM Core Hang Detection Support"
568         help
569           This enables the core hang detection module. It causes SoC
570           reset on core hang detection and collects the core context
571           for hang.
572
573 config MSM_RUN_QUEUE_STATS
574         bool "Enable collection and exporting of MSM Run Queue stats to userspace"
575         help
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.
580
581 config MSM_JTAGV8
582         bool "Debug and ETM trace support across power collapse for ARMv8"
583         default y if CORESIGHT_SOURCE_ETM4X
584         help
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.
589
590           If unsure, say 'N' here to avoid potential power, performance and
591           memory penalty.
592
593 config MSM_BOOT_STATS
594         bool "Use MSM boot stats reporting"
595         help
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.
600
601 config MSM_BOOT_TIME_MARKER
602         bool "Use MSM boot time marker reporting"
603         depends on MSM_BOOT_STATS
604         help
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"
609          If unsure, say N
610
611 config QCOM_CPUSS_DUMP
612     bool "CPU Subsystem Dumping support"
613     help
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.
618           If unsure, say N
619
620 config MSM_QDSP6_APRV2
621         bool "Audio QDSP6 APRv2 support"
622         depends on MSM_SMD
623         help
624           Enable APRv2 IPC protocol support between
625           application processor and QDSP6. APR is
626           used by audio driver to configure QDSP6's
627           ASM, ADM and AFE.
628
629 config MSM_QDSP6_APRV2_VM
630         bool "Audio QDSP6 APRv2 virtualization support"
631         depends on MSM_HAB
632         help
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.
637
638 config MSM_QDSP6_APRV3
639         bool "Audio QDSP6 APRv3 support"
640         depends on MSM_SMD
641         help
642           Enable APRv3 IPC protocol support between
643           application processor and QDSP6. APR is
644           used by audio driver to configure QDSP6v2's
645           ASM, ADM and AFE.
646
647 config MSM_QDSP6_APRV2_GLINK
648         bool "Audio QDSP6 APRv2 over Glink support"
649         depends on MSM_GLINK
650         help
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.
655
656 config MSM_QDSP6_APRV3_GLINK
657         bool "Audio QDSP6 APRv3 over Glink support"
658         depends on MSM_GLINK
659         help
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.
664
665 config MSM_QDSP6_SSR
666         bool "Audio QDSP6 SSR support"
667         depends on MSM_QDSP6_APRV2 || MSM_QDSP6_APRV3 || \
668                 MSM_QDSP6_APRV2_GLINK || MSM_QDSP6_APRV3_GLINK
669         help
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.
675
676
677 config MSM_QDSP6_PDR
678         bool "Audio QDSP6 PDR support"
679         depends on MSM_QDSP6_APRV2 || MSM_QDSP6_APRV3 || \
680                 MSM_QDSP6_APRV2_GLINK || MSM_QDSP6_APRV3_GLINK
681         help
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.
687
688 config MSM_QDSP6_NOTIFIER
689         bool "Audio QDSP6 PDR support"
690         depends on MSM_QDSP6_SSR || MSM_QDSP6_PDR
691         help
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.
698
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
704         help
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.
709
710 config MSM_CDSP_LOADER
711         tristate "CDSP loader support"
712         help
713           Enable CDSP image loader.
714           The CDSP loader brings CDSP out of reset
715           during boot.
716           Say M if you want to enable this module.
717
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
723         help
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.
729
730 config MSM_PERFORMANCE
731         tristate "msm_performance driver to support perflock request"
732         help
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.
738
739 config MSM_PERFORMANCE_HOTPLUG_ON
740         bool "Hotplug functionality through msm_performance turned on"
741         depends on MSM_PERFORMANCE
742         help
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.
746
747 endif # ARCH_QCOM
748
749 config MSM_SUBSYSTEM_RESTART
750         bool "MSM Subsystem Restart"
751         help
752           This option enables the MSM subsystem restart framework.
753
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
757           sysfs.
758
759 config MSM_SYSMON_COMM
760         bool "MSM System Monitor communication support"
761         depends on MSM_SMD && MSM_SUBSYSTEM_RESTART
762         help
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.
766
767 config MSM_PIL
768         bool "Peripheral image loading"
769         select FW_LOADER
770         default n
771         help
772           Some peripherals need to be loaded into memory before they can be
773           brought out of reset.
774
775           Say yes to support these devices.
776
777 config MSM_PIL_SSR_GENERIC
778         tristate "MSM Subsystem Boot Support"
779         depends on MSM_PIL && MSM_SUBSYSTEM_RESTART
780         help
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
785           BCSS.
786
787 config MSM_PIL_MSS_QDSP6V5
788         tristate "MSS QDSP6v5 (Hexagon) Boot Support"
789         depends on MSM_PIL && MSM_SUBSYSTEM_RESTART
790         help
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.
794
795           If unsure, say N.
796
797 config TRACER_PKT
798         bool "Tracer Packet"
799         help
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.
803
804 config QCOM_FORCE_WDOG_BITE_ON_PANIC
805         bool "QCOM force watchdog bite"
806         depends on QCOM_WATCHDOG_V2
807         help
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.
811
812 config MSM_MPM_OF
813        bool "Modem Power Manager"
814        depends on OF
815        help
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
821         tree
822
823
824 config MSM_EVENT_TIMER
825       bool "Event timer"
826       help
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
830         event.
831
832 config MSM_AVTIMER
833         tristate "Avtimer Driver"
834         depends on MSM_QDSP6_APRV2 || MSM_QDSP6_APRV3 || MSM_QDSP6_APRV2_GLINK || \
835                 MSM_QDSP6_APRV2_VM
836         help
837                 This driver gets the Q6 out of power collapsed state and
838                 exposes ioctl control to read avtimer tick.
839
840 config MSM_KERNEL_PROTECT
841         bool "Protect kernel text by removing write permissions in stage-2"
842         depends on !FUNCTION_TRACER
843         help
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.
848
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).
853
854 config MSM_KERNEL_PROTECT_TEST
855         bool "Bootup test of kernel protection (INTENTIONAL CRASH)"
856         depends on MSM_KERNEL_PROTECT
857         help
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.
861
862 config QCOM_REMOTEQDSS
863         bool "Allow debug tools to enable events on other processors"
864         depends on QCOM_SCM && DEBUG_FS
865         help
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.
870
871 config MSM_SERVICE_NOTIFIER
872         bool "Service Notifier"
873         depends on MSM_SERVICE_LOCATOR && MSM_SUBSYSTEM_RESTART
874         help
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
879           locator.
880
881 config MSM_QBT1000
882         bool "QBT1000 Ultrasonic Fingerprint Sensor"
883         help
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.
889
890 config MSM_RPM_RBCPR_STATS_V2_LOG
891         tristate "MSM Resource Power Manager RPBCPR Stat Driver"
892         depends on DEBUG_FS
893         help
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
897           debugfs node.
898
899 config MSM_RPM_LOG
900         tristate "MSM Resource Power Manager Log Driver"
901         depends on DEBUG_FS
902         depends on MSM_RPM_SMD
903         default n
904         help
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
908           via a debugfs node.
909
910 config MSM_RPM_STATS_LOG
911         tristate "MSM Resource Power Manager Stat Driver"
912         depends on DEBUG_FS
913         depends on MSM_RPM_SMD
914         default n
915         help
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
919           via a debugfs node.
920
921 config QSEE_IPC_IRQ_BRIDGE
922         tristate "QSEE IPC Interrupt Bridge"
923         help
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).
927
928 config WCD_DSP_GLINK
929         tristate "WCD DSP GLINK Driver"
930         depends on MSM_GLINK
931         default y if SND_SOC_WCD934X=y
932         help
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.
936
937 config QCOM_SMCINVOKE
938         bool "Secure QSEE Support"
939         help
940           Enable SMCInvoke driver which supports capability based secure
941           communication between QSEE and HLOS.
942
943 config QCOM_EARLY_RANDOM
944         bool "Initialize random pool very early"
945         help
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.
950
951 config QCOM_CX_IPEAK
952         bool "Common driver to handle Cx iPeak limitation"
953         help
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.
959
960 config MSM_CACHE_M4M_ERP64
961        bool "Cache and M4M error report"
962        depends on ARCH_MSM8996
963        help
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.
968
969 config MSM_CACHE_M4M_ERP64_PANIC_ON_CE
970        bool "Panic on correctable cache/M4M errors"
971        help
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.
975
976           If unsure, say N.
977
978 config MSM_CACHE_M4M_ERP64_PANIC_ON_UE
979        bool "Panic on uncorrectable cache/M4M errors"
980        help
981          Say 'Y' here to cause kernel panic when uncorrectable cache/M4M errors
982          are detected.
983
984 config QCOM_QDSS_BRIDGE
985         bool "Configure bridge driver for QTI/Qualcomm Technologies, Inc. MDM"
986         depends on MSM_MHI
987         help
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.
991
992 config EXT_ANC
993         bool "Enable External ANC"
994         depends on MSM_QDSP6_APRV2 || MSM_QDSP6_APRV3
995         help
996          This option enables support for anti-noise cnacellation
997          on Sensor DSP.
998
999 config MFSE_QMI
1000         bool "QMI client for MFSE"
1001         depends on MSM_QMI_INTERFACE
1002         help
1003          This option enables the QMI client driver for MFSE service.
1004
1005 source "drivers/soc/qcom/memshare/Kconfig"