# SPDX-License-Identifier: GPL-2.0-only
#
# MemoryStick core configuration
#

comment "MemoryStick drivers"

config MEMSTICK_UNSAFE_RESUME
	bool "Allow unsafe resume (DANGEROUS)"
	help
	  If you say Y here, the MemoryStick layer will assume that all
	  cards stayed in their respective slots during the suspend. The
	  normal behaviour is to remove them at suspend and
	  redetecting them at resume. Breaking this assumption will
	  in most cases result in data corruption.

	  This option is usually just for embedded systems which use
	  a MemoryStick card for rootfs. Most people should say N here.

config MSPRO_BLOCK
	tristate "MemoryStick Pro block device driver"
	depends on BLOCK
	imply IOSCHED_BFQ
	help
	  Say Y here to enable the MemoryStick Pro block device driver
	  support. This provides a block device driver, which you can use
	  to mount the filesystem. Almost everyone wishing MemoryStick
	  support should say Y or M here.

config MS_BLOCK
	tristate "MemoryStick Standard device driver"
	depends on BLOCK
	imply IOSCHED_BFQ
	help
	  Say Y here to enable the MemoryStick Standard device driver
	  support. This provides a block device driver, which you can use
	  to mount the filesystem.
	  This driver works with old (bulky) MemoryStick and MemoryStick Duo
	  but not PRO. Say Y if you have such card.
	  Driver is new and not yet well tested, thus it can damage your card
	  (even permanently)
