/* SPDX-License-Identifier: GPL-2.0-only */ /* * Aic94xx SAS/SATA driver sequencer interface header file. * * Copyright (C) 2005 Adaptec, Inc. All rights reserved. * Copyright (C) 2005 Luben Tuikov */ #ifndef _AIC94XX_SEQ_H_ #define _AIC94XX_SEQ_H_ #define CSEQ_NUM_VECS 3 #define LSEQ_NUM_VECS 11 #define SAS_RAZOR_SEQUENCER_FW_FILE "aic94xx-seq.fw" #define SAS_RAZOR_SEQUENCER_FW_MAJOR 1 /* Note: All quantites in the sequencer file are little endian */ struct sequencer_file_header { /* Checksum of the entire contents of the sequencer excluding * these four bytes */ u32 csum; /* numeric major version */ u32 major; /* numeric minor version */ u32 minor; /* version string printed by driver */ char version[16]; u32 cseq_table_offset; u32 cseq_table_size; u32 lseq_table_offset; u32 lseq_table_size; u32 cseq_code_offset; u32 cseq_code_size; u32 lseq_code_offset; u32 lseq_code_size; u16 mode2_task; u16 cseq_idle_loop; u16 lseq_idle_loop; } __attribute__((packed)); #ifdef __KERNEL__ int asd_init_seqs(struct asd_ha_struct *asd_ha); int asd_start_seqs(struct asd_ha_struct *asd_ha); int asd_release_firmware(void); void asd_update_port_links(struct asd_ha_struct *asd_ha, struct asd_phy *phy); #endif #endif