# 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
	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
	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)
