2019-05-27 09:55:05 +03:00
/* SPDX-License-Identifier: GPL-2.0-or-later */
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
*/
# 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 )
{
2013-05-08 01:44:06 +04: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-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 ) ;
2012-03-22 08:09:07 +04:00
int sas_ata_init ( struct domain_device * dev ) ;
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 ) ;
2022-02-11 09:42:57 +03:00
void sas_ata_eh ( struct Scsi_Host * shost , struct list_head * work_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 ) ;
2012-01-19 08:47:01 +04:00
void sas_probe_sata ( struct asd_sas_port * port ) ;
2012-06-22 10:41:51 +04:00
void sas_suspend_sata ( struct asd_sas_port * port ) ;
void sas_resume_sata ( struct asd_sas_port * port ) ;
2012-06-22 10:25:27 +04:00
void sas_ata_end_eh ( struct ata_port * ap ) ;
2022-10-17 12:20:28 +03:00
void sas_ata_device_link_abort ( struct domain_device * dev , bool force_reset ) ;
2022-02-22 15:50:59 +03:00
int sas_execute_ata_cmd ( struct domain_device * device , u8 * fis ,
int force_phy_id ) ;
2022-11-18 11:37:12 +03:00
int smp_ata_check_ready_type ( struct ata_link * link ) ;
2007-07-22 22:15:55 +04:00
# else
static inline int dev_is_sata ( struct domain_device * dev )
{
return 0 ;
}
2012-03-22 08:09:07 +04:00
static inline int sas_ata_init ( struct domain_device * dev )
2007-07-22 22:15:55 +04:00
{
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 )
{
}
2022-02-11 09:42:57 +03:00
static inline void sas_ata_eh ( struct Scsi_Host * shost , struct list_head * work_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
2012-01-19 08:47:01 +04:00
static inline void sas_probe_sata ( struct asd_sas_port * port )
{
}
2012-06-22 10:41:51 +04: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-13 05:57:35 +04:00
static inline int sas_get_ata_info ( struct domain_device * dev , struct ex_phy * phy )
{
return 0 ;
}
2012-06-22 10:25:27 +04:00
static inline void sas_ata_end_eh ( struct ata_port * ap )
{
}
2022-02-22 15:50:59 +03:00
2022-10-17 12:20:28 +03:00
static inline void sas_ata_device_link_abort ( struct domain_device * dev ,
bool force_reset )
{
}
2022-02-22 15:50:59 +03:00
static inline int sas_execute_ata_cmd ( struct domain_device * device , u8 * fis ,
int force_phy_id )
{
return 0 ;
}
2022-05-12 14:15:32 +03:00
2022-11-18 11:37:12 +03:00
static inline int smp_ata_check_ready_type ( struct ata_link * link )
{
return 0 ;
}
2007-07-22 22:15:55 +04:00
# endif
2006-10-19 01:43:37 +04:00
# endif /* _SAS_ATA_H_ */