2006-10-19 01:43:37 +04:00
/*
* Support for SATA devices on Serial Attached SCSI ( SAS ) controllers
*
* Copyright ( C ) 2006 IBM Corporation
*
* Written by : Darrick J . Wong < djwong @ us . ibm . com > , IBM Corporation
*
* This program is free software ; you can redistribute it and / or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation ; either version 2 of the
* License , or ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful , but
* WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the GNU
* General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with this program ; if not , write to the Free Software
* Foundation , Inc . , 59 Temple Place , Suite 330 , Boston , MA 02111 - 1307
* USA
*
*/
# ifndef _SAS_ATA_H_
# define _SAS_ATA_H_
# include <linux/libata.h>
# include <scsi/libsas.h>
2007-07-22 22:15:55 +04:00
# ifdef CONFIG_SCSI_SAS_ATA
2006-10-19 01:43:37 +04:00
static inline int dev_is_sata ( struct domain_device * dev )
{
2011-11-18 05:59:48 +04:00
return dev - > dev_type = = SATA_DEV | | dev - > dev_type = = SATA_PM | |
2012-01-13 05:57:35 +04:00
dev - > dev_type = = SATA_PM_PORT | | dev - > dev_type = = SATA_PENDING ;
2006-10-19 01:43:37 +04:00
}
2012-01-13 05:57:35 +04:00
int sas_get_ata_info ( struct domain_device * dev , struct ex_phy * phy ) ;
2006-10-19 01:43:37 +04:00
int sas_ata_init_host_and_port ( struct domain_device * found_dev ,
struct scsi_target * starget ) ;
2007-01-30 12:18:58 +03:00
void sas_ata_task_abort ( struct sas_task * task ) ;
2011-01-23 18:44:12 +03:00
void sas_ata_strategy_handler ( struct Scsi_Host * shost ) ;
2012-01-12 00:08:36 +04:00
void sas_ata_eh ( struct Scsi_Host * shost , struct list_head * work_q ,
struct list_head * done_q ) ;
2011-12-01 11:23:33 +04:00
void sas_ata_schedule_reset ( struct domain_device * dev ) ;
2011-12-03 04:07:01 +04:00
void sas_ata_wait_eh ( struct domain_device * dev ) ;
2007-07-22 22:15:55 +04:00
# else
static inline int dev_is_sata ( struct domain_device * dev )
{
return 0 ;
}
2008-04-03 18:04:31 +04:00
static inline int sas_ata_init_host_and_port ( struct domain_device * found_dev ,
2007-07-22 22:15:55 +04:00
struct scsi_target * starget )
{
return 0 ;
}
2008-04-03 18:04:31 +04:00
static inline void sas_ata_task_abort ( struct sas_task * task )
2007-07-22 22:15:55 +04:00
{
}
2011-01-23 18:44:12 +03:00
static inline void sas_ata_strategy_handler ( struct Scsi_Host * shost )
{
}
2012-01-12 00:08:36 +04:00
static inline void sas_ata_eh ( struct Scsi_Host * shost , struct list_head * work_q ,
struct list_head * done_q )
2011-01-23 18:44:12 +03:00
{
}
2011-12-01 11:23:33 +04:00
static inline void sas_ata_schedule_reset ( struct domain_device * dev )
{
}
2011-12-03 04:07:01 +04:00
static inline void sas_ata_wait_eh ( struct domain_device * dev )
{
}
2012-01-13 05:57:35 +04:00
static inline int sas_get_ata_info ( struct domain_device * dev , struct ex_phy * phy )
{
return 0 ;
}
2007-07-22 22:15:55 +04:00
# endif
2006-10-19 01:43:37 +04:00
# endif /* _SAS_ATA_H_ */