# SPDX-License-Identifier: GPL-2.0
comment "S/390 block device drivers"
	depends on S390 && BLOCK

config BLK_DEV_XPRAM
	def_tristate m
	prompt "XPRAM disk support"
	depends on S390 && BLOCK
	help
	  Select this option if you want to use your expanded storage on S/390
	  or zSeries as a disk.  This is useful as a _fast_ swap device if you
	  want to access more than 2G of memory when running in 31 bit mode.
	  This option is also available as a module which will be called
	  xpram.  If unsure, say "N".

config DCSSBLK
	def_tristate m
	select DAX
	select FS_DAX_LIMITED
	prompt "DCSSBLK support"
	depends on S390 && BLOCK
	help
	  Support for dcss block device

config DASD
	def_tristate y
	prompt "Support for DASD devices"
	depends on CCW && BLOCK
	select IOSCHED_DEADLINE
	help
	  Enable this option if you want to access DASDs directly utilizing
	  S/390s channel subsystem commands. This is necessary for running
	  natively on a single image or an LPAR.

config DASD_PROFILE
	def_bool y
	prompt "Profiling support for dasd devices"
	depends on DASD
	help
	  Enable this option if you want to see profiling information
          in /proc/dasd/statistics.

config DASD_ECKD
	def_tristate y
	prompt "Support for ECKD Disks"
	depends on DASD
	help
	  ECKD devices are the most commonly used devices. You should enable
	  this option unless you are very sure to have no ECKD device.

config DASD_FBA
	def_tristate y
	prompt "Support for FBA  Disks"
	depends on DASD
	help
	  Select this option to be able to access FBA devices. It is safe to
	  say "Y".

config DASD_DIAG
	def_tristate y
	prompt "Support for DIAG access to Disks"
	depends on DASD
	help
	  Select this option if you want to use Diagnose250 command to access
	  Disks under VM.  If you are not running under VM or unsure what it is,
	  say "N".

config DASD_EER
	def_bool y
	prompt "Extended error reporting (EER)"
	depends on DASD
	help
	  This driver provides a character device interface to the
	  DASD extended error reporting. This is only needed if you want to
	  use applications written for the EER facility.

config SCM_BLOCK
	def_tristate m
	prompt "Support for Storage Class Memory"
	depends on S390 && BLOCK && EADM_SCH && SCM_BUS
	help
	  Block device driver for Storage Class Memory (SCM). This driver
	  provides a block device interface for each available SCM increment.

	  To compile this driver as a module, choose M here: the
	  module will be called scm_block.
