linux/drivers/scsi/aic94xx/aic94xx_seq.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0-only */
   2/*
   3 * Aic94xx SAS/SATA driver sequencer interface header file.
   4 *
   5 * Copyright (C) 2005 Adaptec, Inc.  All rights reserved.
   6 * Copyright (C) 2005 Luben Tuikov <luben_tuikov@adaptec.com>
   7 */
   8
   9#ifndef _AIC94XX_SEQ_H_
  10#define _AIC94XX_SEQ_H_
  11
  12#define CSEQ_NUM_VECS   3
  13#define LSEQ_NUM_VECS   11
  14
  15#define SAS_RAZOR_SEQUENCER_FW_FILE "aic94xx-seq.fw"
  16#define SAS_RAZOR_SEQUENCER_FW_MAJOR    1
  17
  18/* Note:  All quantites in the sequencer file are little endian */
  19struct sequencer_file_header {
  20        /* Checksum of the entire contents of the sequencer excluding
  21         * these four bytes */
  22        u32     csum;
  23        /* numeric major version */
  24        u32     major;
  25        /* numeric minor version */
  26        u32     minor;
  27        /* version string printed by driver */
  28        char    version[16];
  29        u32     cseq_table_offset;
  30        u32     cseq_table_size;
  31        u32     lseq_table_offset;
  32        u32     lseq_table_size;
  33        u32     cseq_code_offset;
  34        u32     cseq_code_size;
  35        u32     lseq_code_offset;
  36        u32     lseq_code_size;
  37        u16     mode2_task;
  38        u16     cseq_idle_loop;
  39        u16     lseq_idle_loop;
  40} __attribute__((packed));
  41
  42#ifdef __KERNEL__
  43int asd_init_seqs(struct asd_ha_struct *asd_ha);
  44int asd_start_seqs(struct asd_ha_struct *asd_ha);
  45int asd_release_firmware(void);
  46
  47void asd_update_port_links(struct asd_ha_struct *asd_ha, struct asd_phy *phy);
  48#endif
  49
  50#endif
  51