The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/hptmv/mvSata.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*-
    2  * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
    3  *
    4  * Copyright (c) 2004-2005 MARVELL SEMICONDUCTOR ISRAEL, LTD.
    5  * All rights reserved.
    6  *
    7  * Redistribution and use in source and binary forms, with or without
    8  * modification, are permitted provided that the following conditions
    9  * are met:
   10  * 1. Redistributions of source code must retain the above copyright
   11  *    notice, this list of conditions and the following disclaimer.
   12  * 2. Redistributions in binary form must reproduce the above copyright
   13  *    notice, this list of conditions and the following disclaimer in the
   14  *    documentation and/or other materials provided with the distribution.
   15  *
   16  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
   17  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   18  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   19  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
   20  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   21  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   22  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   23  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   24  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   25  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   26  * SUCH DAMAGE.
   27  *
   28  * $FreeBSD$
   29  */
   30 #ifndef __INCmvSatah
   31 #define __INCmvSatah
   32 
   33 #ifndef SUPPORT_MV_SATA_GEN_1
   34 #define SUPPORT_MV_SATA_GEN_1 1
   35 #endif
   36 
   37 #ifndef SUPPORT_MV_SATA_GEN_2
   38 #define SUPPORT_MV_SATA_GEN_2 0
   39 #endif
   40 
   41 #ifndef SUPPORT_MV_SATA_GEN_2E
   42 #define SUPPORT_MV_SATA_GEN_2E 0
   43 #endif
   44 
   45 #if (SUPPORT_MV_SATA_GEN_1 + SUPPORT_MV_SATA_GEN_2 + SUPPORT_MV_SATA_GEN_2E) > 1
   46 
   47 #define MV_SATA_GEN_1(x) ((x)->sataAdapterGeneration==1)
   48 #define MV_SATA_GEN_2(x) ((x)->sataAdapterGeneration>=2)
   49 #define MV_SATA_GEN_2E(x) ((x)->sataAdapterGeneration==3)
   50 
   51 #elif SUPPORT_MV_SATA_GEN_1==1
   52 
   53 #define MV_SATA_GEN_1(x) 1
   54 #define MV_SATA_GEN_2(x) 0
   55 #define MV_SATA_GEN_2E(x) 0
   56 
   57 #elif SUPPORT_MV_SATA_GEN_2==1
   58 
   59 #define MV_SATA_GEN_1(x) 0
   60 #define MV_SATA_GEN_2(x) 1
   61 #define MV_SATA_GEN_2E(x) 0
   62 
   63 #elif SUPPORT_MV_SATA_GEN_2E==1
   64 
   65 #define MV_SATA_GEN_1(x)  0
   66 #define MV_SATA_GEN_2(x)  1 /* gen2E impiles gen2 */
   67 #define MV_SATA_GEN_2E(x) 1
   68 
   69 #else 
   70 #error "Which IC do you support?"
   71 #endif
   72 
   73 /* Definitions */
   74 /* MV88SX50XX specific defines */
   75 #define MV_SATA_VENDOR_ID                                               0x11AB
   76 #define MV_SATA_DEVICE_ID_5080                                  0x5080
   77 #define MV_SATA_DEVICE_ID_5081                                  0x5081
   78 #define MV_SATA_DEVICE_ID_6080                                  0x6080
   79 #define MV_SATA_DEVICE_ID_6081                                  0x6081
   80 
   81 #if defined(RR2310) || defined(RR1740) || defined(RR2210) || defined (RR2522)
   82 #define MV_SATA_CHANNELS_NUM                                    4
   83 #define MV_SATA_UNITS_NUM                                               1
   84 #else 
   85 #define MV_SATA_CHANNELS_NUM                                    8
   86 #define MV_SATA_UNITS_NUM                                               2
   87 #endif
   88 
   89 #define MV_SATA_PCI_BAR0_SPACE_SIZE                             (1<<18) /* 256 Kb*/
   90 
   91 #define CHANNEL_QUEUE_LENGTH                                    32
   92 #define CHANNEL_QUEUE_MASK                                          0x1F
   93 
   94 #define MV_EDMA_QUEUE_LENGTH                                    32      /* Up to 32 outstanding  */
   95                                                                                 /* commands per SATA channel*/
   96 #define MV_EDMA_QUEUE_MASK                      0x1F
   97 #define MV_EDMA_REQUEST_QUEUE_SIZE                              1024 /* 32*32 = 1KBytes */
   98 #define MV_EDMA_RESPONSE_QUEUE_SIZE                             256  /* 32*8 = 256 Bytes */
   99 
  100 #define MV_EDMA_REQUEST_ENTRY_SIZE                              32
  101 #define MV_EDMA_RESPONSE_ENTRY_SIZE                             8
  102 
  103 #define MV_EDMA_PRD_ENTRY_SIZE                                  16              /* 16Bytes*/
  104 #define MV_EDMA_PRD_NO_SNOOP_FLAG                               0x00000001 /* MV_BIT0 */
  105 #define MV_EDMA_PRD_EOT_FLAG                                    0x00008000 /* MV_BIT15 */
  106 
  107 #define MV_ATA_IDENTIFY_DEV_DATA_LENGTH                 256     /* number of words(2 byte)*/
  108 #define MV_ATA_MODEL_NUMBER_LEN                                 40
  109 #define ATA_SECTOR_SIZE                                                 512
  110 /* Log messages level defines */
  111 #define MV_DEBUG                                                                0x1
  112 #define MV_DEBUG_INIT                                                   0x2
  113 #define MV_DEBUG_INTERRUPTS                                             0x4
  114 #define MV_DEBUG_SATA_LINK                                              0x8
  115 #define MV_DEBUG_UDMA_COMMAND                                   0x10
  116 #define MV_DEBUG_NON_UDMA_COMMAND                               0x20
  117 #define MV_DEBUG_ERROR                                                  0x40
  118 
  119 
  120 /* Typedefs    */
  121 typedef enum mvUdmaType  
  122 {
  123         MV_UDMA_TYPE_READ, MV_UDMA_TYPE_WRITE
  124 } MV_UDMA_TYPE;
  125 
  126 typedef enum mvFlushType 
  127 {
  128         MV_FLUSH_TYPE_CALLBACK, MV_FLUSH_TYPE_NONE 
  129 } MV_FLUSH_TYPE;
  130 
  131 typedef enum mvCompletionType  
  132 {
  133         MV_COMPLETION_TYPE_NORMAL, MV_COMPLETION_TYPE_ERROR,
  134         MV_COMPLETION_TYPE_ABORT 
  135 } MV_COMPLETION_TYPE;
  136 
  137 typedef enum mvEventType 
  138 {
  139         MV_EVENT_TYPE_ADAPTER_ERROR, MV_EVENT_TYPE_SATA_CABLE 
  140 } MV_EVENT_TYPE;
  141 
  142 typedef enum mvEdmaMode 
  143 {
  144         MV_EDMA_MODE_QUEUED,
  145         MV_EDMA_MODE_NOT_QUEUED,
  146         MV_EDMA_MODE_NATIVE_QUEUING
  147 } MV_EDMA_MODE;
  148 
  149 typedef enum mvEdmaQueueResult
  150 {
  151         MV_EDMA_QUEUE_RESULT_OK = 0,
  152         MV_EDMA_QUEUE_RESULT_EDMA_DISABLED,
  153         MV_EDMA_QUEUE_RESULT_FULL,
  154         MV_EDMA_QUEUE_RESULT_BAD_LBA_ADDRESS,
  155         MV_EDMA_QUEUE_RESULT_BAD_PARAMS
  156 } MV_EDMA_QUEUE_RESULT;
  157 
  158 typedef enum mvQueueCommandResult
  159 {
  160         MV_QUEUE_COMMAND_RESULT_OK = 0,
  161         MV_QUEUE_COMMAND_RESULT_QUEUED_MODE_DISABLED,
  162         MV_QUEUE_COMMAND_RESULT_FULL,
  163         MV_QUEUE_COMMAND_RESULT_BAD_LBA_ADDRESS,
  164         MV_QUEUE_COMMAND_RESULT_BAD_PARAMS
  165 } MV_QUEUE_COMMAND_RESULT;
  166 
  167 typedef enum mvNonUdmaProtocol
  168 {
  169     MV_NON_UDMA_PROTOCOL_NON_DATA,
  170     MV_NON_UDMA_PROTOCOL_PIO_DATA_IN,
  171     MV_NON_UDMA_PROTOCOL_PIO_DATA_OUT
  172 } MV_NON_UDMA_PROTOCOL;
  173 
  174 
  175 struct mvDmaRequestQueueEntry;
  176 struct mvDmaResponseQueueEntry;
  177 struct mvDmaCommandEntry;
  178 
  179 struct mvSataAdapter;
  180 struct mvStorageDevRegisters;
  181 
  182 typedef MV_BOOLEAN (* HPTLIBAPI mvSataCommandCompletionCallBack_t)(struct mvSataAdapter *,
  183                                                                                                                  MV_U8,
  184                                                          MV_COMPLETION_TYPE,
  185                                                                                                                  MV_VOID_PTR, MV_U16,
  186                                                                                                                  MV_U32,
  187                                                                                             struct mvStorageDevRegisters SS_SEG*);
  188 
  189 typedef enum mvQueuedCommandType 
  190 {
  191         MV_QUEUED_COMMAND_TYPE_UDMA,
  192         MV_QUEUED_COMMAND_TYPE_NONE_UDMA
  193 } MV_QUEUED_COMMAND_TYPE;
  194 
  195 typedef struct mvUdmaCommandParams 
  196 {
  197         MV_UDMA_TYPE readWrite;
  198         MV_BOOLEAN   isEXT;
  199         MV_U32       lowLBAAddress;
  200         MV_U16       highLBAAddress;
  201         MV_U16       numOfSectors;
  202         MV_U32       prdLowAddr;
  203         MV_U32       prdHighAddr;
  204         mvSataCommandCompletionCallBack_t callBack;
  205         MV_VOID_PTR  commandId;
  206 } MV_UDMA_COMMAND_PARAMS;
  207 
  208 typedef struct mvNoneUdmaCommandParams 
  209 {
  210         MV_NON_UDMA_PROTOCOL protocolType;
  211         MV_BOOLEAN  isEXT;
  212         MV_U16_PTR      bufPtr;
  213         MV_U32          count;
  214         MV_U16          features;
  215         MV_U16          sectorCount;
  216         MV_U16          lbaLow;
  217         MV_U16          lbaMid;
  218         MV_U16          lbaHigh;
  219         MV_U8           device;
  220         MV_U8           command;
  221     mvSataCommandCompletionCallBack_t callBack;
  222         MV_VOID_PTR  commandId;
  223 } MV_NONE_UDMA_COMMAND_PARAMS;
  224 
  225 typedef struct mvQueueCommandInfo
  226 {
  227         MV_QUEUED_COMMAND_TYPE  type;
  228         union
  229         {
  230                 MV_UDMA_COMMAND_PARAMS          udmaCommand;
  231                 MV_NONE_UDMA_COMMAND_PARAMS     NoneUdmaCommand;
  232     } commandParams;
  233 } MV_QUEUE_COMMAND_INFO;
  234 
  235 /* The following structure is for the Core Driver internal usage */
  236 typedef struct mvQueuedCommandEntry 
  237 {
  238     MV_BOOLEAN   isFreeEntry;
  239     MV_U8        commandTag;
  240         struct mvQueuedCommandEntry     *next;
  241         struct mvQueuedCommandEntry     *prev;
  242         MV_QUEUE_COMMAND_INFO   commandInfo;
  243 } MV_QUEUED_COMMAND_ENTRY;
  244 
  245 /* The following structures are part of the Core Driver API */
  246 typedef struct mvSataChannel 
  247 {
  248         /* Fields set by Intermediate Application Layer */
  249         MV_U8                       channelNumber;
  250         MV_BOOLEAN                  waitingForInterrupt;
  251         MV_BOOLEAN                  lba48Address; 
  252         MV_BOOLEAN                  maxReadTransfer;
  253         struct mvDmaRequestQueueEntry SS_SEG *requestQueue;
  254         struct mvDmaResponseQueueEntry SS_SEG *responseQueue;
  255         MV_U32                      requestQueuePciHiAddress;
  256         MV_U32                      requestQueuePciLowAddress;
  257         MV_U32                      responseQueuePciHiAddress;
  258         MV_U32                      responseQueuePciLowAddress;
  259         /* Fields set by CORE driver */
  260         struct mvSataAdapter        *mvSataAdapter;
  261         MV_OS_SEMAPHORE             semaphore;
  262         MV_U32                      eDmaRegsOffset;
  263         MV_U16                      identifyDevice[MV_ATA_IDENTIFY_DEV_DATA_LENGTH];
  264         MV_BOOLEAN                  EdmaActive;
  265         MV_EDMA_MODE                queuedDMA;
  266         MV_U8                       outstandingCommands;
  267         MV_BOOLEAN                                      workAroundDone;
  268         struct mvQueuedCommandEntry     commandsQueue[CHANNEL_QUEUE_LENGTH];
  269         struct mvQueuedCommandEntry     *commandsQueueHead;
  270         struct mvQueuedCommandEntry     *commandsQueueTail;
  271         MV_BOOLEAN                                      queueCommandsEnabled;
  272         MV_U8                       noneUdmaOutstandingCommands;
  273         MV_U8                       EdmaQueuedCommands;
  274     MV_U32                      freeIDsStack[CHANNEL_QUEUE_LENGTH];
  275         MV_U32                      freeIDsNum;
  276         MV_U32                      reqInPtr;
  277         MV_U32                      rspOutPtr;
  278 } MV_SATA_CHANNEL;
  279 
  280 typedef struct mvSataAdapter
  281 {
  282         /* Fields set by Intermediate Application Layer */
  283         MV_U32            adapterId;
  284         MV_U8             pcbVersion;
  285     MV_U8             pciConfigRevisionId;
  286     MV_U16            pciConfigDeviceId;
  287         MV_VOID_PTR               IALData;
  288         MV_BUS_ADDR_T     adapterIoBaseAddress;
  289         MV_U32            intCoalThre[MV_SATA_UNITS_NUM];
  290         MV_U32            intTimeThre[MV_SATA_UNITS_NUM];
  291         MV_BOOLEAN        (* HPTLIBAPI mvSataEventNotify)(struct mvSataAdapter *,
  292                                                                                    MV_EVENT_TYPE,
  293                                                                                    MV_U32, MV_U32); 
  294         MV_SATA_CHANNEL   *sataChannel[MV_SATA_CHANNELS_NUM];
  295         MV_U32            pciCommand; 
  296         MV_U32            pciSerrMask;
  297         MV_U32            pciInterruptMask;
  298 
  299         /* Fields set by CORE driver */
  300         MV_OS_SEMAPHORE   semaphore;
  301         MV_U32                    mainMask;     
  302         MV_OS_SEMAPHORE   interruptsMaskSem;
  303     MV_BOOLEAN        implementA0Workarounds;
  304     MV_BOOLEAN        implement50XXB0Workarounds;
  305         MV_BOOLEAN        implement50XXB1Workarounds;
  306         MV_BOOLEAN        implement50XXB2Workarounds;
  307         MV_BOOLEAN        implement60X1A0Workarounds;
  308         MV_BOOLEAN        implement60X1A1Workarounds;
  309         MV_BOOLEAN        implement60X1B0Workarounds;
  310         MV_BOOLEAN                implement7042A0Workarounds;
  311         MV_BOOLEAN                implement7042A1Workarounds;
  312         MV_U8                     sataAdapterGeneration;
  313         MV_BOOLEAN              isPEX;
  314         MV_U8             failLEDMask;
  315     MV_U8                         signalAmps[MV_SATA_CHANNELS_NUM];
  316         MV_U8                     pre[MV_SATA_CHANNELS_NUM];
  317     MV_BOOLEAN        staggaredSpinup[MV_SATA_CHANNELS_NUM]; /* For 60x1 only */
  318 } MV_SATA_ADAPTER;
  319 
  320 typedef struct mvSataAdapterStatus
  321 {
  322         /* Fields set by CORE driver */
  323         MV_BOOLEAN              channelConnected[MV_SATA_CHANNELS_NUM];
  324         MV_U32                  pciDLLStatusAndControlRegister;
  325         MV_U32                  pciCommandRegister;
  326         MV_U32                  pciModeRegister;
  327         MV_U32                  pciSERRMaskRegister;
  328         MV_U32                  intCoalThre[MV_SATA_UNITS_NUM];
  329         MV_U32                  intTimeThre[MV_SATA_UNITS_NUM];
  330         MV_U32                  R00StatusBridgePortRegister[MV_SATA_CHANNELS_NUM];
  331 }MV_SATA_ADAPTER_STATUS;
  332 
  333 
  334 typedef struct mvSataChannelStatus
  335 {
  336         /* Fields set by CORE driver */
  337         MV_BOOLEAN              isConnected;
  338         MV_U8                   modelNumber[MV_ATA_MODEL_NUMBER_LEN];
  339         MV_BOOLEAN              DMAEnabled;
  340         MV_EDMA_MODE    queuedDMA;
  341         MV_U8                   outstandingCommands;
  342         MV_U32                  EdmaConfigurationRegister;
  343         MV_U32                  EdmaRequestQueueBaseAddressHighRegister;
  344         MV_U32                  EdmaRequestQueueInPointerRegister;
  345         MV_U32                  EdmaRequestQueueOutPointerRegister;
  346         MV_U32                  EdmaResponseQueueBaseAddressHighRegister;
  347         MV_U32                  EdmaResponseQueueInPointerRegister;
  348         MV_U32                  EdmaResponseQueueOutPointerRegister;
  349         MV_U32                  EdmaCommandRegister;
  350         MV_U32                  PHYModeRegister;
  351 }MV_SATA_CHANNEL_STATUS;
  352 
  353 /* this structure used by the IAL defines the PRD entries used by the EDMA HW */
  354 typedef struct mvSataEdmaPRDEntry
  355 {
  356         volatile MV_U32 lowBaseAddr;
  357         volatile MV_U16 byteCount;
  358         volatile MV_U16 flags;
  359         volatile MV_U32 highBaseAddr;
  360         volatile MV_U32 reserved;
  361 }MV_SATA_EDMA_PRD_ENTRY;
  362 
  363 /* API Functions */
  364 
  365 /* CORE driver Adapter Management */
  366 MV_BOOLEAN HPTLIBAPI mvSataInitAdapter(MV_SATA_ADAPTER *pAdapter);
  367 
  368 MV_BOOLEAN HPTLIBAPI mvSataShutdownAdapter(MV_SATA_ADAPTER *pAdapter);
  369 
  370 MV_BOOLEAN HPTLIBAPI mvSataGetAdapterStatus(MV_SATA_ADAPTER *pAdapter,
  371                                                                   MV_SATA_ADAPTER_STATUS *pAdapterStatus);
  372 
  373 MV_U32  HPTLIBAPI mvSataReadReg(MV_SATA_ADAPTER *pAdapter, MV_U32 regOffset);
  374 
  375 MV_VOID HPTLIBAPI mvSataWriteReg(MV_SATA_ADAPTER *pAdapter, MV_U32 regOffset,  
  376                                            MV_U32 regValue);
  377 
  378 MV_VOID HPTLIBAPI mvEnableAutoFlush(MV_VOID);
  379 MV_VOID HPTLIBAPI mvDisableAutoFlush(MV_VOID);
  380 
  381 
  382 /* CORE driver SATA Channel Management */
  383 MV_BOOLEAN HPTLIBAPI mvSataConfigureChannel(MV_SATA_ADAPTER *pAdapter,
  384                                                                   MV_U8 channelIndex);
  385 
  386 MV_BOOLEAN HPTLIBAPI mvSataRemoveChannel(MV_SATA_ADAPTER *pAdapter, MV_U8 channelIndex);
  387 
  388 MV_BOOLEAN HPTLIBAPI mvSataIsStorageDeviceConnected(MV_SATA_ADAPTER *pAdapter,
  389                                                                                   MV_U8 channelIndex);
  390 
  391 MV_BOOLEAN HPTLIBAPI mvSataChannelHardReset(MV_SATA_ADAPTER *pAdapter,
  392                                                                   MV_U8 channelIndex);
  393 
  394 MV_BOOLEAN HPTLIBAPI mvSataConfigEdmaMode(MV_SATA_ADAPTER *pAdapter, MV_U8 channelIndex,
  395                                                                 MV_EDMA_MODE eDmaMode, MV_U8 maxQueueDepth);
  396 
  397 MV_BOOLEAN HPTLIBAPI mvSataEnableChannelDma(MV_SATA_ADAPTER *pAdapter,
  398                                                                   MV_U8 channelIndex);
  399 
  400 MV_BOOLEAN HPTLIBAPI mvSataDisableChannelDma(MV_SATA_ADAPTER *pAdapter,
  401                                                                    MV_U8 channelIndex);
  402 
  403 MV_BOOLEAN HPTLIBAPI mvSataFlushDmaQueue(MV_SATA_ADAPTER *pAdapter, MV_U8 channelIndex, 
  404                                                            MV_FLUSH_TYPE flushType);
  405 
  406 MV_U8 HPTLIBAPI mvSataNumOfDmaCommands(MV_SATA_ADAPTER *pAdapter, MV_U8 channelIndex);
  407 
  408 MV_BOOLEAN HPTLIBAPI mvSataSetIntCoalParams (MV_SATA_ADAPTER *pAdapter, MV_U8 sataUnit,
  409                                                                    MV_U32 intCoalThre, MV_U32 intTimeThre);
  410 
  411 MV_BOOLEAN HPTLIBAPI mvSataSetChannelPhyParams(MV_SATA_ADAPTER *pAdapter,
  412                                                                          MV_U8 channelIndex,
  413                                                                          MV_U8 signalAmps, MV_U8 pre);
  414 
  415 MV_BOOLEAN HPTLIBAPI mvSataChannelPhyShutdown(MV_SATA_ADAPTER *pAdapter,
  416                                                                         MV_U8 channelIndex);
  417 
  418 MV_BOOLEAN HPTLIBAPI mvSataChannelPhyPowerOn(MV_SATA_ADAPTER *pAdapter,
  419                                                                         MV_U8 channelIndex);
  420 
  421 MV_BOOLEAN HPTLIBAPI mvSataChannelSetEdmaLoopBackMode(MV_SATA_ADAPTER *pAdapter,
  422                                                                                         MV_U8 channelIndex,
  423                                                                                         MV_BOOLEAN loopBackOn);
  424 
  425 MV_BOOLEAN HPTLIBAPI mvSataGetChannelStatus(MV_SATA_ADAPTER *pAdapter, MV_U8 channelIndex,
  426                                                                   MV_SATA_CHANNEL_STATUS *pChannelStatus);
  427 
  428 MV_QUEUE_COMMAND_RESULT HPTLIBAPI mvSataQueueCommand(MV_SATA_ADAPTER *pAdapter,
  429                                                                                    MV_U8 channelIndex,
  430                                                                                    MV_QUEUE_COMMAND_INFO SS_SEG *pCommandParams);
  431 
  432 /* Interrupt Service Routine */
  433 MV_BOOLEAN HPTLIBAPI mvSataInterruptServiceRoutine(MV_SATA_ADAPTER *pAdapter);
  434 
  435 MV_BOOLEAN HPTLIBAPI mvSataMaskAdapterInterrupt(MV_SATA_ADAPTER *pAdapter);
  436 
  437 MV_BOOLEAN HPTLIBAPI mvSataUnmaskAdapterInterrupt(MV_SATA_ADAPTER *pAdapter);
  438 
  439 /* Command Completion and Event Notification (user implemented) */
  440 MV_BOOLEAN HPTLIBAPI mvSataEventNotify(MV_SATA_ADAPTER *, MV_EVENT_TYPE ,
  441                                                          MV_U32, MV_U32);
  442 
  443 /*
  444  * Staggered spin-ip support and SATA interface speed control
  445  * (relevant for 60x1 adapters)
  446  */
  447 MV_BOOLEAN HPTLIBAPI mvSataEnableStaggeredSpinUpAll (MV_SATA_ADAPTER *pAdapter);
  448 MV_BOOLEAN HPTLIBAPI mvSataDisableStaggeredSpinUpAll (MV_SATA_ADAPTER *pAdapter);
  449 
  450 #endif

Cache object: a485677eb5e7213ee53370882862e5df


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.