# SPDX-License-Identifier: GPL-2.0-only
#
# Kernel configuration file for the SAS Class
#
# Copyright (C) 2005 Adaptec, Inc.  All rights reserved.
# Copyright (C) 2005 Luben Tuikov <luben_tuikov@adaptec.com>
#

config SCSI_SAS_LIBSAS
	tristate "SAS Domain Transport Attributes"
	depends on SCSI
	select SCSI_SAS_ATTRS
	select BLK_DEV_BSGLIB
	help
	  This provides transport specific helpers for SAS drivers which
	  use the domain device construct (like the aic94xxx).

config SCSI_SAS_ATA
	bool "ATA support for libsas (requires libata)"
	depends on SCSI_SAS_LIBSAS
	depends on ATA = y || ATA = SCSI_SAS_LIBSAS
	help
		Builds in ATA support into libsas.  Will necessitate
		the loading of libata along with libsas.

config SCSI_SAS_HOST_SMP
	bool "Support for SMP interpretation for SAS hosts"
	default y
	depends on SCSI_SAS_LIBSAS
	help
		Allows sas hosts to receive SMP frames.  Selecting this
		option builds an SMP interpreter into libsas.  Say
		N here if you want to save the few kb this consumes.
