linux/drivers/scsi/libsas/sas_ata.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * Support for SATA devices on Serial Attached SCSI (SAS) controllers
 *
 * Copyright (C) 2006 IBM Corporation
 *
 * Written by: Darrick J. Wong <[email protected]>, IBM Corporation
 */

#include <linux/scatterlist.h>
#include <linux/slab.h>
#include <linux/async.h>
#include <linux/export.h>

#include <scsi/sas_ata.h>
#include "sas_internal.h"
#include <scsi/scsi_host.h>
#include <scsi/scsi_device.h>
#include <scsi/scsi_tcq.h>
#include <scsi/scsi.h>
#include <scsi/scsi_transport.h>
#include <scsi/scsi_transport_sas.h>
#include "scsi_sas_internal.h"
#include "scsi_transport_api.h"
#include <scsi/scsi_eh.h>

static enum ata_completion_errors sas_to_ata_err(struct task_status_struct *ts)
{}

static void sas_ata_task_done(struct sas_task *task)
{}

static unsigned int sas_ata_qc_issue(struct ata_queued_cmd *qc)
	__must_hold(ap->lock)
{}

static void sas_ata_qc_fill_rtf(struct ata_queued_cmd *qc)
{}

static struct sas_internal *dev_to_sas_internal(struct domain_device *dev)
{}

static int sas_get_ata_command_set(struct domain_device *dev)
{}

int sas_get_ata_info(struct domain_device *dev, struct ex_phy *phy)
{}

static int sas_ata_clear_pending(struct domain_device *dev, struct ex_phy *phy)
{}

int smp_ata_check_ready_type(struct ata_link *link)
{}
EXPORT_SYMBOL_GPL();

static int smp_ata_check_ready(struct ata_link *link)
{}

static int local_ata_check_ready(struct ata_link *link)
{}

static int sas_ata_printk(const char *level, const struct domain_device *ddev,
			  const char *fmt, ...)
{}

static int sas_ata_wait_after_reset(struct domain_device *dev, unsigned long deadline)
{}

static int sas_ata_hard_reset(struct ata_link *link, unsigned int *class,
			      unsigned long deadline)
{}

/*
 * notify the lldd to forget the sas_task for this internal ata command
 * that bypasses scsi-eh
 */
static void sas_ata_internal_abort(struct sas_task *task)
{}

static void sas_ata_post_internal(struct ata_queued_cmd *qc)
{}


static void sas_ata_set_dmamode(struct ata_port *ap, struct ata_device *ata_dev)
{}

static void sas_ata_sched_eh(struct ata_port *ap)
{}

void sas_ata_end_eh(struct ata_port *ap)
{}

static int sas_ata_prereset(struct ata_link *link, unsigned long deadline)
{}

static struct ata_port_operations sas_sata_ops =;

int sas_ata_init(struct domain_device *found_dev)
{}

void sas_ata_task_abort(struct sas_task *task)
{}

void sas_probe_sata(struct asd_sas_port *port)
{}

int sas_ata_add_dev(struct domain_device *parent, struct ex_phy *phy,
		    struct domain_device *child, int phy_id)
{}

static void sas_ata_flush_pm_eh(struct asd_sas_port *port, const char *func)
{}

void sas_suspend_sata(struct asd_sas_port *port)
{}

void sas_resume_sata(struct asd_sas_port *port)
{}

/**
 * sas_discover_sata - discover an STP/SATA domain device
 * @dev: pointer to struct domain_device of interest
 *
 * Devices directly attached to a HA port, have no parents.  All other
 * devices do, and should have their "parent" pointer set appropriately
 * before calling this function.
 */
int sas_discover_sata(struct domain_device *dev)
{}

static void async_sas_ata_eh(void *data, async_cookie_t cookie)
{}

void sas_ata_strategy_handler(struct Scsi_Host *shost)
{}

void sas_ata_eh(struct Scsi_Host *shost, struct list_head *work_q)
{}

void sas_ata_schedule_reset(struct domain_device *dev)
{}
EXPORT_SYMBOL_GPL();

void sas_ata_wait_eh(struct domain_device *dev)
{}

void sas_ata_device_link_abort(struct domain_device *device, bool force_reset)
{}
EXPORT_SYMBOL_GPL();

int sas_execute_ata_cmd(struct domain_device *device, u8 *fis, int force_phy_id)
{}
EXPORT_SYMBOL_GPL();

static ssize_t sas_ncq_prio_supported_show(struct device *device,
					   struct device_attribute *attr,
					   char *buf)
{}

static struct device_attribute dev_attr_sas_ncq_prio_supported =;

static ssize_t sas_ncq_prio_enable_show(struct device *device,
					struct device_attribute *attr,
					char *buf)
{}

static ssize_t sas_ncq_prio_enable_store(struct device *device,
					 struct device_attribute *attr,
					 const char *buf, size_t len)
{}

static struct device_attribute dev_attr_sas_ncq_prio_enable =;

static struct attribute *sas_ata_sdev_attrs[] =;

static umode_t sas_ata_attr_is_visible(struct kobject *kobj,
				       struct attribute *attr, int i)
{}

const struct attribute_group sas_ata_sdev_attr_group =;
EXPORT_SYMBOL_GPL();