Linux-libre 5.4.47-gnu
[librecmc/linux-libre.git] / drivers / scsi / aic94xx / aic94xx_seq.h
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 "/*(DEBLOBBED)*/"
16 #define SAS_RAZOR_SEQUENCER_FW_MAJOR    1
17
18 /* Note:  All quantites in the sequencer file are little endian */
19 struct 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__
43 int asd_init_seqs(struct asd_ha_struct *asd_ha);
44 int asd_start_seqs(struct asd_ha_struct *asd_ha);
45 int asd_release_firmware(void);
46
47 void asd_update_port_links(struct asd_ha_struct *asd_ha, struct asd_phy *phy);
48 #endif
49
50 #endif