| /* | 
 |  * Aic94xx SAS/SATA driver sequencer interface header file. | 
 |  * | 
 |  * Copyright (C) 2005 Adaptec, Inc.  All rights reserved. | 
 |  * Copyright (C) 2005 Luben Tuikov <luben_tuikov@adaptec.com> | 
 |  * | 
 |  * This file is licensed under GPLv2. | 
 |  * | 
 |  * This file is part of the aic94xx driver. | 
 |  * | 
 |  * The aic94xx driver is free software; you can redistribute it and/or | 
 |  * modify it under the terms of the GNU General Public License as | 
 |  * published by the Free Software Foundation; version 2 of the | 
 |  * License. | 
 |  * | 
 |  * The aic94xx driver is distributed in the hope that it will be useful, | 
 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | 
 |  * General Public License for more details. | 
 |  * | 
 |  * You should have received a copy of the GNU General Public License | 
 |  * along with the aic94xx driver; if not, write to the Free Software | 
 |  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA | 
 |  * | 
 |  */ | 
 |  | 
 | #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 |