2019-05-27 08:55:05 +02:00
/* SPDX-License-Identifier: GPL-2.0-or-later */
2006-10-18 14:43:37 -07: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
*/
# ifndef _SAS_ATA_H_
# define _SAS_ATA_H_
# include <linux/libata.h>
# include <scsi/libsas.h>
2007-07-22 13:15:55 -05:00
# ifdef CONFIG_SCSI_SAS_ATA
2006-10-18 14:43:37 -07:00
static inline int dev_is_sata ( struct domain_device * dev )
{
2013-05-07 14:44:06 -07:00
return dev - > dev_type = = SAS_SATA_DEV | | dev - > dev_type = = SAS_SATA_PM | |
dev - > dev_type = = SAS_SATA_PM_PORT | | dev - > dev_type = = SAS_SATA_PENDING ;
2006-10-18 14:43:37 -07:00
}
2012-01-12 17:57:35 -08:00
int sas_get_ata_info ( struct domain_device * dev , struct ex_phy * phy ) ;
2012-03-21 21:09:07 -07:00
int sas_ata_init ( struct domain_device * dev ) ;
2007-01-30 01:18:58 -08:00
void sas_ata_task_abort ( struct sas_task * task ) ;
2011-01-23 09:44:12 -06:00
void sas_ata_strategy_handler ( struct Scsi_Host * shost ) ;
2012-01-11 12:08:36 -08:00
void sas_ata_eh ( struct Scsi_Host * shost , struct list_head * work_q ,
struct list_head * done_q ) ;
2011-11-30 23:23:33 -08:00
void sas_ata_schedule_reset ( struct domain_device * dev ) ;
2011-12-02 16:07:01 -08:00
void sas_ata_wait_eh ( struct domain_device * dev ) ;
2012-01-18 20:47:01 -08:00
void sas_probe_sata ( struct asd_sas_port * port ) ;
2012-06-21 23:41:51 -07:00
void sas_suspend_sata ( struct asd_sas_port * port ) ;
void sas_resume_sata ( struct asd_sas_port * port ) ;
2012-06-21 23:25:27 -07:00
void sas_ata_end_eh ( struct ata_port * ap ) ;
2007-07-22 13:15:55 -05:00
# else
static inline int dev_is_sata ( struct domain_device * dev )
{
return 0 ;
}
2012-03-21 21:09:07 -07:00
static inline int sas_ata_init ( struct domain_device * dev )
2007-07-22 13:15:55 -05:00
{
return 0 ;
}
2008-04-03 09:04:31 -05:00
static inline void sas_ata_task_abort ( struct sas_task * task )
2007-07-22 13:15:55 -05:00
{
}
2011-01-23 09:44:12 -06:00
static inline void sas_ata_strategy_handler ( struct Scsi_Host * shost )
{
}
2012-01-11 12:08:36 -08:00
static inline void sas_ata_eh ( struct Scsi_Host * shost , struct list_head * work_q ,
struct list_head * done_q )
2011-01-23 09:44:12 -06:00
{
}
2011-11-30 23:23:33 -08:00
static inline void sas_ata_schedule_reset ( struct domain_device * dev )
{
}
2011-12-02 16:07:01 -08:00
static inline void sas_ata_wait_eh ( struct domain_device * dev )
{
}
2012-01-12 17:57:35 -08:00
2012-01-18 20:47:01 -08:00
static inline void sas_probe_sata ( struct asd_sas_port * port )
{
}
2012-06-21 23:41:51 -07:00
static inline void sas_suspend_sata ( struct asd_sas_port * port )
{
}
static inline void sas_resume_sata ( struct asd_sas_port * port )
{
}
2012-01-12 17:57:35 -08:00
static inline int sas_get_ata_info ( struct domain_device * dev , struct ex_phy * phy )
{
return 0 ;
}
2012-06-21 23:25:27 -07:00
static inline void sas_ata_end_eh ( struct ata_port * ap )
{
}
2007-07-22 13:15:55 -05:00
# endif
2006-10-18 14:43:37 -07:00
# endif /* _SAS_ATA_H_ */