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