diff options
Diffstat (limited to 'drivers/message/fusion/mptbase.h')
-rw-r--r-- | drivers/message/fusion/mptbase.h | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/drivers/message/fusion/mptbase.h b/drivers/message/fusion/mptbase.h index f4827d923731..bbd21d74ce5c 100644 --- a/drivers/message/fusion/mptbase.h +++ b/drivers/message/fusion/mptbase.h | |||
@@ -65,6 +65,7 @@ | |||
65 | #include "lsi/mpi_fc.h" /* Fibre Channel (lowlevel) support */ | 65 | #include "lsi/mpi_fc.h" /* Fibre Channel (lowlevel) support */ |
66 | #include "lsi/mpi_targ.h" /* SCSI/FCP Target protcol support */ | 66 | #include "lsi/mpi_targ.h" /* SCSI/FCP Target protcol support */ |
67 | #include "lsi/mpi_tool.h" /* Tools support */ | 67 | #include "lsi/mpi_tool.h" /* Tools support */ |
68 | #include "lsi/mpi_sas.h" /* SAS support */ | ||
68 | 69 | ||
69 | /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ | 70 | /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ |
70 | 71 | ||
@@ -477,6 +478,14 @@ typedef struct _ScsiCfgData { | |||
477 | u8 rsvd[1]; | 478 | u8 rsvd[1]; |
478 | } ScsiCfgData; | 479 | } ScsiCfgData; |
479 | 480 | ||
481 | typedef struct _SasCfgData { | ||
482 | u8 ptClear; /* 1 to automatically clear the | ||
483 | * persistent table. | ||
484 | * 0 to disable | ||
485 | * automatic clearing. | ||
486 | */ | ||
487 | }SasCfgData; | ||
488 | |||
480 | /* | 489 | /* |
481 | * Adapter Structure - pci_dev specific. Maximum: MPT_MAX_ADAPTERS | 490 | * Adapter Structure - pci_dev specific. Maximum: MPT_MAX_ADAPTERS |
482 | */ | 491 | */ |
@@ -530,11 +539,15 @@ typedef struct _MPT_ADAPTER | |||
530 | u8 *sense_buf_pool; | 539 | u8 *sense_buf_pool; |
531 | dma_addr_t sense_buf_pool_dma; | 540 | dma_addr_t sense_buf_pool_dma; |
532 | u32 sense_buf_low_dma; | 541 | u32 sense_buf_low_dma; |
542 | u8 *HostPageBuffer; /* SAS - host page buffer support */ | ||
543 | u32 HostPageBuffer_sz; | ||
544 | dma_addr_t HostPageBuffer_dma; | ||
533 | int mtrr_reg; | 545 | int mtrr_reg; |
534 | struct pci_dev *pcidev; /* struct pci_dev pointer */ | 546 | struct pci_dev *pcidev; /* struct pci_dev pointer */ |
535 | u8 __iomem *memmap; /* mmap address */ | 547 | u8 __iomem *memmap; /* mmap address */ |
536 | struct Scsi_Host *sh; /* Scsi Host pointer */ | 548 | struct Scsi_Host *sh; /* Scsi Host pointer */ |
537 | ScsiCfgData spi_data; /* Scsi config. data */ | 549 | ScsiCfgData spi_data; /* Scsi config. data */ |
550 | SasCfgData sas_data; /* Sas config. data */ | ||
538 | MPT_IOCTL *ioctl; /* ioctl data pointer */ | 551 | MPT_IOCTL *ioctl; /* ioctl data pointer */ |
539 | struct proc_dir_entry *ioc_dentry; | 552 | struct proc_dir_entry *ioc_dentry; |
540 | struct _MPT_ADAPTER *alt_ioc; /* ptr to 929 bound adapter port */ | 553 | struct _MPT_ADAPTER *alt_ioc; /* ptr to 929 bound adapter port */ |
@@ -554,31 +567,35 @@ typedef struct _MPT_ADAPTER | |||
554 | #else | 567 | #else |
555 | u32 mfcnt; | 568 | u32 mfcnt; |
556 | #endif | 569 | #endif |
557 | u32 NB_for_64_byte_frame; | 570 | u32 NB_for_64_byte_frame; |
558 | u32 hs_req[MPT_MAX_FRAME_SIZE/sizeof(u32)]; | 571 | u32 hs_req[MPT_MAX_FRAME_SIZE/sizeof(u32)]; |
559 | u16 hs_reply[MPT_MAX_FRAME_SIZE/sizeof(u16)]; | 572 | u16 hs_reply[MPT_MAX_FRAME_SIZE/sizeof(u16)]; |
560 | IOCFactsReply_t facts; | 573 | IOCFactsReply_t facts; |
561 | PortFactsReply_t pfacts[2]; | 574 | PortFactsReply_t pfacts[2]; |
562 | FCPortPage0_t fc_port_page0[2]; | 575 | FCPortPage0_t fc_port_page0[2]; |
576 | struct timer_list persist_timer; /* persist table timer */ | ||
577 | int persist_wait_done; /* persist completion flag */ | ||
578 | u8 persist_reply_frame[MPT_DEFAULT_FRAME_SIZE]; /* persist reply */ | ||
563 | LANPage0_t lan_cnfg_page0; | 579 | LANPage0_t lan_cnfg_page0; |
564 | LANPage1_t lan_cnfg_page1; | 580 | LANPage1_t lan_cnfg_page1; |
565 | /* | 581 | /* |
566 | * Description: errata_flag_1064 | 582 | * Description: errata_flag_1064 |
567 | * If a PCIX read occurs within 1 or 2 cycles after the chip receives | 583 | * If a PCIX read occurs within 1 or 2 cycles after the chip receives |
568 | * a split completion for a read data, an internal address pointer incorrectly | 584 | * a split completion for a read data, an internal address pointer incorrectly |
569 | * increments by 32 bytes | 585 | * increments by 32 bytes |
570 | */ | 586 | */ |
571 | int errata_flag_1064; | 587 | int errata_flag_1064; |
572 | u8 FirstWhoInit; | 588 | u8 FirstWhoInit; |
573 | u8 upload_fw; /* If set, do a fw upload */ | 589 | u8 upload_fw; /* If set, do a fw upload */ |
574 | u8 reload_fw; /* Force a FW Reload on next reset */ | 590 | u8 reload_fw; /* Force a FW Reload on next reset */ |
575 | u8 NBShiftFactor; /* NB Shift Factor based on Block Size (Facts) */ | 591 | u8 NBShiftFactor; /* NB Shift Factor based on Block Size (Facts) */ |
576 | u8 pad1[4]; | 592 | u8 pad1[4]; |
577 | int DoneCtx; | 593 | int DoneCtx; |
578 | int TaskCtx; | 594 | int TaskCtx; |
579 | int InternalCtx; | 595 | int InternalCtx; |
580 | struct list_head list; | 596 | struct list_head list; |
581 | struct net_device *netdev; | 597 | struct net_device *netdev; |
598 | struct list_head sas_topology; | ||
582 | } MPT_ADAPTER; | 599 | } MPT_ADAPTER; |
583 | 600 | ||
584 | /* | 601 | /* |
@@ -964,6 +981,7 @@ extern void mpt_alloc_fw_memory(MPT_ADAPTER *ioc, int size); | |||
964 | extern void mpt_free_fw_memory(MPT_ADAPTER *ioc); | 981 | extern void mpt_free_fw_memory(MPT_ADAPTER *ioc); |
965 | extern int mpt_findImVolumes(MPT_ADAPTER *ioc); | 982 | extern int mpt_findImVolumes(MPT_ADAPTER *ioc); |
966 | extern int mpt_read_ioc_pg_3(MPT_ADAPTER *ioc); | 983 | extern int mpt_read_ioc_pg_3(MPT_ADAPTER *ioc); |
984 | extern int mptbase_sas_persist_operation(MPT_ADAPTER *ioc, u8 persist_opcode); | ||
967 | 985 | ||
968 | /* | 986 | /* |
969 | * Public data decl's... | 987 | * Public data decl's... |