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