Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Typedefs | Functions
ncr53c8xx.c File Reference
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <linux/dma-mapping.h>
#include <linux/errno.h>
#include <linux/gfp.h>
#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/ioport.h>
#include <linux/mm.h>
#include <linux/module.h>
#include <linux/sched.h>
#include <linux/signal.h>
#include <linux/spinlock.h>
#include <linux/stat.h>
#include <linux/string.h>
#include <linux/time.h>
#include <linux/timer.h>
#include <linux/types.h>
#include <asm/dma.h>
#include <asm/io.h>
#include <scsi/scsi.h>
#include <scsi/scsi_cmnd.h>
#include <scsi/scsi_dbg.h>
#include <scsi/scsi_device.h>
#include <scsi/scsi_tcq.h>
#include <scsi/scsi_transport.h>
#include <scsi/scsi_transport_spi.h>
#include "ncr53c8xx.h"

Go to the source code of this file.

Data Structures

struct  m_link
 
struct  m_vtob
 
struct  m_pool
 
struct  link
 
struct  usrcmd
 
struct  tcb
 
struct  lcb
 
struct  launch
 
struct  head
 
struct  dsb
 
struct  ccb
 
struct  ncb
 
struct  script
 
struct  scripth
 
struct  host_data
 

Macros

#define SCSI_NCR_DRIVER_NAME   "ncr53c8xx-3.4.3g"
 
#define SCSI_NCR_DEBUG_FLAGS   (0)
 
#define NAME53C8XX   "ncr53c8xx"
 
#define DEBUG_ALLOC   (0x0001)
 
#define DEBUG_PHASE   (0x0002)
 
#define DEBUG_QUEUE   (0x0008)
 
#define DEBUG_RESULT   (0x0010)
 
#define DEBUG_POINTER   (0x0020)
 
#define DEBUG_SCRIPT   (0x0040)
 
#define DEBUG_TINY   (0x0080)
 
#define DEBUG_TIMING   (0x0100)
 
#define DEBUG_NEGO   (0x0200)
 
#define DEBUG_TAGS   (0x0400)
 
#define DEBUG_SCATTER   (0x0800)
 
#define DEBUG_IC   (0x1000)
 
#define DEBUG_FLAGS   ncr_debug
 
#define MEMO_SHIFT   4 /* 16 bytes minimum memory chunk */
 
#define MEMO_PAGE_ORDER   1 /* 2 PAGES maximum */
 
#define MEMO_FREE_UNUSED   /* Free unused pages immediately */
 
#define MEMO_WARN   1
 
#define MEMO_GFP_FLAGS   GFP_ATOMIC
 
#define MEMO_CLUSTER_SHIFT   (PAGE_SHIFT+MEMO_PAGE_ORDER)
 
#define MEMO_CLUSTER_SIZE   (1UL << MEMO_CLUSTER_SHIFT)
 
#define MEMO_CLUSTER_MASK   (MEMO_CLUSTER_SIZE-1)
 
#define VTOB_HASH_SHIFT   5
 
#define VTOB_HASH_SIZE   (1UL << VTOB_HASH_SHIFT)
 
#define VTOB_HASH_MASK   (VTOB_HASH_SIZE-1)
 
#define VTOB_HASH_CODE(m)   ((((m_addr_t) (m)) >> MEMO_CLUSTER_SHIFT) & VTOB_HASH_MASK)
 
#define __m_calloc(mp, s, n)   __m_calloc2(mp, s, n, MEMO_WARN)
 
#define _m_calloc_dma(np, s, n)   __m_calloc_dma(np->dev, s, n)
 
#define _m_free_dma(np, p, s, n)   __m_free_dma(np->dev, p, s, n)
 
#define m_calloc_dma(s, n)   _m_calloc_dma(np, s, n)
 
#define m_free_dma(p, s, n)   _m_free_dma(np, p, s, n)
 
#define _vtobus(np, p)   __vtobus(np->dev, p)
 
#define vtobus(p)   _vtobus(np, p)
 
#define __data_mapped   SCp.phase
 
#define __data_mapping   SCp.have_data_in
 
#define unmap_scsi_data(np, cmd)   __unmap_scsi_data(np->dev, cmd)
 
#define map_scsi_sg_data(np, cmd)   __map_scsi_sg_data(np->dev, cmd)
 
#define initverbose   (driver_setup.verbose)
 
#define bootverbose   (np->verbose)
 
#define ARG_SEP   ','
 
#define OPT_TAGS   1
 
#define OPT_MASTER_PARITY   2
 
#define OPT_SCSI_PARITY   3
 
#define OPT_DISCONNECTION   4
 
#define OPT_SPECIAL_FEATURES   5
 
#define OPT_UNUSED_1   6
 
#define OPT_FORCE_SYNC_NEGO   7
 
#define OPT_REVERSE_PROBE   8
 
#define OPT_DEFAULT_SYNC   9
 
#define OPT_VERBOSE   10
 
#define OPT_DEBUG   11
 
#define OPT_BURST_MAX   12
 
#define OPT_LED_PIN   13
 
#define OPT_MAX_WIDE   14
 
#define OPT_SETTLE_DELAY   15
 
#define OPT_DIFF_SUPPORT   16
 
#define OPT_IRQM   17
 
#define OPT_PCI_FIX_UP   18
 
#define OPT_BUS_CHECK   19
 
#define OPT_OPTIMIZE   20
 
#define OPT_RECOVERY   21
 
#define OPT_SAFE_SETUP   22
 
#define OPT_USE_NVRAM   23
 
#define OPT_EXCLUDE   24
 
#define OPT_HOST_ID   25
 
#define ARG_SEP   ','
 
#define DEF_DEPTH   (driver_setup.default_tags)
 
#define ALL_TARGETS   -2
 
#define NO_TARGET   -1
 
#define ALL_LUNS   -2
 
#define NO_LUN   -1
 
#define SCSI_NCR_CCB_DONE_SUPPORT
 
#define MAX_DONE   24
 
#define CCB_DONE_EMPTY   0xffffffffUL
 
#define CCB_DONE_VALID(cp)
 
#define SCSI_NCR_MYADDR   (7)
 
#define MAX_TAGS   SCSI_NCR_MAX_TAGS
 
#define NO_TAG   (255)
 
#define MAX_TARGET   (SCSI_NCR_MAX_TARGET)
 
#define MAX_LUN   SCSI_NCR_MAX_LUN
 
#define SCSI_NCR_MIN_ASYNC   (40)
 
#define MAX_START   (SCSI_NCR_CAN_QUEUE + 4)
 
#define MAX_SCATTER   (SCSI_NCR_MAX_SCATTER)
 
#define MAX_SCATTERL   80
 
#define MAX_SCATTERH   (MAX_SCATTER - MAX_SCATTERL)
 
#define NCR_SNOOP_TIMEOUT   (1000000)
 
#define ScsiResult(host_code, scsi_code)   (((host_code) << 16) + ((scsi_code) & 0x7f))
 
#define initverbose   (driver_setup.verbose)
 
#define bootverbose   (np->verbose)
 
#define HS_IDLE   (0)
 
#define HS_BUSY   (1)
 
#define HS_NEGOTIATE   (2) /* sync/wide data transfer*/
 
#define HS_DISCONNECT   (3) /* Disconnected by target */
 
#define HS_DONEMASK   (0x80)
 
#define HS_COMPLETE   (4|HS_DONEMASK)
 
#define HS_SEL_TIMEOUT   (5|HS_DONEMASK) /* Selection timeout */
 
#define HS_RESET   (6|HS_DONEMASK) /* SCSI reset */
 
#define HS_ABORTED   (7|HS_DONEMASK) /* Transfer aborted */
 
#define HS_TIMEOUT   (8|HS_DONEMASK) /* Software timeout */
 
#define HS_FAIL   (9|HS_DONEMASK) /* SCSI or PCI bus errors */
 
#define HS_UNEXPECTED   (10|HS_DONEMASK)/* Unexpected disconnect */
 
#define HS_INVALMASK   (0x40)
 
#define HS_SELECTING   (0|HS_INVALMASK)
 
#define HS_IN_RESELECT   (1|HS_INVALMASK)
 
#define HS_STARTING   (2|HS_INVALMASK)
 
#define HS_SKIPMASK   (0x20)
 
#define SIR_BAD_STATUS   (1)
 
#define SIR_XXXXXXXXXX   (2)
 
#define SIR_NEGO_SYNC   (3)
 
#define SIR_NEGO_WIDE   (4)
 
#define SIR_NEGO_FAILED   (5)
 
#define SIR_NEGO_PROTO   (6)
 
#define SIR_REJECT_RECEIVED   (7)
 
#define SIR_REJECT_SENT   (8)
 
#define SIR_IGN_RESIDUE   (9)
 
#define SIR_MISSING_SAVE   (10)
 
#define SIR_RESEL_NO_MSG_IN   (11)
 
#define SIR_RESEL_NO_IDENTIFY   (12)
 
#define SIR_RESEL_BAD_LUN   (13)
 
#define SIR_RESEL_BAD_TARGET   (14)
 
#define SIR_RESEL_BAD_I_T_L   (15)
 
#define SIR_RESEL_BAD_I_T_L_Q   (16)
 
#define SIR_DONE_OVERFLOW   (17)
 
#define SIR_INTFLY   (18)
 
#define SIR_MAX   (18)
 
#define XE_OK   (0)
 
#define XE_EXTRA_DATA   (1) /* unexpected data phase */
 
#define XE_BAD_PHASE   (2) /* illegal phase (4/5) */
 
#define NS_NOCHANGE   (0)
 
#define NS_SYNC   (1)
 
#define NS_WIDE   (2)
 
#define NS_PPR   (4)
 
#define CCB_MAGIC   (0xf2691ad2)
 
#define UC_SETSYNC   10
 
#define UC_SETTAGS   11
 
#define UC_SETDEBUG   12
 
#define UC_SETORDER   13
 
#define UC_SETWIDE   14
 
#define UC_SETFLAG   15
 
#define UC_SETVERBOSE   17
 
#define UF_TRACE   (0x01)
 
#define UF_NODISC   (0x02)
 
#define UF_NOSCAN   (0x04)
 
#define QU_REG   scr0
 
#define HS_REG   scr1
 
#define HS_PRT   nc_scr1
 
#define SS_REG   scr2
 
#define SS_PRT   nc_scr2
 
#define PS_REG   scr3
 
#define actualquirks   phys.header.status[0]
 
#define host_status   phys.header.status[1]
 
#define scsi_status   phys.header.status[2]
 
#define parity_status   phys.header.status[3]
 
#define xerr_st   header.scr_st[0]
 
#define sync_st   header.scr_st[1]
 
#define nego_st   header.scr_st[2]
 
#define wide_st   header.scr_st[3]
 
#define xerr_status   phys.xerr_st
 
#define nego_status   phys.nego_st
 
#define CCB_PHYS(cp, lbl)   (cp->p_ccb + offsetof(struct ccb, lbl))
 
#define NCB_SCRIPT_PHYS(np, lbl)   (np->p_script + offsetof (struct script, lbl))
 
#define NCB_SCRIPTH_PHYS(np, lbl)   (np->p_scripth + offsetof (struct scripth,lbl))
 
#define PREFETCH_FLUSH_CNT   0
 
#define PREFETCH_FLUSH
 
#define remove_from_waiting_list(np, cmd)   retrieve_from_waiting_list(1, (np), (cmd))
 
#define requeue_waiting_list(np)   process_waiting_list((np), DID_OK)
 
#define reset_waiting_list(np)   process_waiting_list((np), DID_RESET)
 
#define RELOC_SOFTC   0x40000000
 
#define RELOC_LABEL   0x50000000
 
#define RELOC_REGISTER   0x60000000
 
#define RELOC_LABELH   0x80000000
 
#define RELOC_MASK   0xf0000000
 
#define NADDR(label)   (RELOC_SOFTC | offsetof(struct ncb, label))
 
#define PADDR(label)   (RELOC_LABEL | offsetof(struct script, label))
 
#define PADDRH(label)   (RELOC_LABELH | offsetof(struct scripth, label))
 
#define RADDR(label)   (RELOC_REGISTER | REG(label))
 
#define FADDR(label, ofs)   (RELOC_REGISTER | ((REG(label))+(ofs)))
 
#define PRINT_ADDR(cmd, arg...)   dev_info(&cmd->device->sdev_gendev , ## arg)
 
#define _5M   5000000
 
#define burst_length(bc)   (!(bc))? 0 : 1 << (bc)
 
#define burst_code(dmode, ctest0)   (ctest0) & 0x80 ? 0 : (((dmode) & 0xc0) >> 6) + 1
 
#define ncr_reg_bus_addr(r)   (np->paddr + offsetof (struct ncr_reg, r))
 
#define next_wcmd   host_scribble
 

Typedefs

typedef u_long m_addr_t
 
typedef struct devicem_bush_t
 
typedef struct m_link m_link_s
 
typedef struct m_vtob m_vtob_s
 
typedef struct m_pool m_pool_s
 
typedef u32 tagmap_t
 

Functions

 __setup ("ncr53c8xx=", ncr53c8xx_setup)
 
struct Scsi_Host *__init ncr_attach (struct scsi_host_template *tpnt, int unit, struct ncr_device *device)
 
void ncr53c8xx_release (struct Scsi_Host *host)
 
int __init ncr53c8xx_init (void)
 
void ncr53c8xx_exit (void)
 

Macro Definition Documentation

#define _5M   5000000

Definition at line 3696 of file ncr53c8xx.c.

#define __data_mapped   SCp.phase

Definition at line 525 of file ncr53c8xx.c.

#define __data_mapping   SCp.have_data_in

Definition at line 526 of file ncr53c8xx.c.

#define __m_calloc (   mp,
  s,
  n 
)    __m_calloc2(mp, s, n, MEMO_WARN)

Definition at line 342 of file ncr53c8xx.c.

#define _m_calloc_dma (   np,
  s,
  n 
)    __m_calloc_dma(np->dev, s, n)

Definition at line 513 of file ncr53c8xx.c.

#define _m_free_dma (   np,
  p,
  s,
  n 
)    __m_free_dma(np->dev, p, s, n)

Definition at line 514 of file ncr53c8xx.c.

#define _vtobus (   np,
  p 
)    __vtobus(np->dev, p)

Definition at line 517 of file ncr53c8xx.c.

#define actualquirks   phys.header.status[0]

Definition at line 1445 of file ncr53c8xx.c.

#define ALL_LUNS   -2

Definition at line 796 of file ncr53c8xx.c.

#define ALL_TARGETS   -2

Definition at line 794 of file ncr53c8xx.c.

#define ARG_SEP   ','

Definition at line 625 of file ncr53c8xx.c.

#define ARG_SEP   ','

Definition at line 625 of file ncr53c8xx.c.

#define bootverbose   (np->verbose)

Definition at line 1016 of file ncr53c8xx.c.

#define bootverbose   (np->verbose)

Definition at line 1016 of file ncr53c8xx.c.

#define burst_code (   dmode,
  ctest0 
)    (ctest0) & 0x80 ? 0 : (((dmode) & 0xc0) >> 6) + 1

Definition at line 3722 of file ncr53c8xx.c.

#define burst_length (   bc)    (!(bc))? 0 : 1 << (bc)

Definition at line 3717 of file ncr53c8xx.c.

#define CCB_DONE_EMPTY   0xffffffffUL

Definition at line 865 of file ncr53c8xx.c.

#define CCB_DONE_VALID (   cp)
Value:
((((u_long) cp) & 0xffffffff00000000ul) && \
(((u_long) cp) & 0xfffffffful) != CCB_DONE_EMPTY)

Definition at line 873 of file ncr53c8xx.c.

#define CCB_MAGIC   (0xf2691ad2)

Definition at line 1115 of file ncr53c8xx.c.

#define CCB_PHYS (   cp,
  lbl 
)    (cp->p_ccb + offsetof(struct ccb, lbl))

Definition at line 1588 of file ncr53c8xx.c.

#define DEBUG_ALLOC   (0x0001)

Definition at line 138 of file ncr53c8xx.c.

#define DEBUG_FLAGS   ncr_debug

Definition at line 158 of file ncr53c8xx.c.

#define DEBUG_IC   (0x1000)

Definition at line 149 of file ncr53c8xx.c.

#define DEBUG_NEGO   (0x0200)

Definition at line 146 of file ncr53c8xx.c.

#define DEBUG_PHASE   (0x0002)

Definition at line 139 of file ncr53c8xx.c.

#define DEBUG_POINTER   (0x0020)

Definition at line 142 of file ncr53c8xx.c.

#define DEBUG_QUEUE   (0x0008)

Definition at line 140 of file ncr53c8xx.c.

#define DEBUG_RESULT   (0x0010)

Definition at line 141 of file ncr53c8xx.c.

#define DEBUG_SCATTER   (0x0800)

Definition at line 148 of file ncr53c8xx.c.

#define DEBUG_SCRIPT   (0x0040)

Definition at line 143 of file ncr53c8xx.c.

#define DEBUG_TAGS   (0x0400)

Definition at line 147 of file ncr53c8xx.c.

#define DEBUG_TIMING   (0x0100)

Definition at line 145 of file ncr53c8xx.c.

#define DEBUG_TINY   (0x0080)

Definition at line 144 of file ncr53c8xx.c.

#define DEF_DEPTH   (driver_setup.default_tags)

Definition at line 793 of file ncr53c8xx.c.

#define FADDR (   label,
  ofs 
)    (RELOC_REGISTER | ((REG(label))+(ofs)))

Definition at line 2002 of file ncr53c8xx.c.

#define host_status   phys.header.status[1]

Definition at line 1446 of file ncr53c8xx.c.

#define HS_ABORTED   (7|HS_DONEMASK) /* Transfer aborted */

Definition at line 1034 of file ncr53c8xx.c.

#define HS_BUSY   (1)

Definition at line 1026 of file ncr53c8xx.c.

#define HS_COMPLETE   (4|HS_DONEMASK)

Definition at line 1031 of file ncr53c8xx.c.

#define HS_DISCONNECT   (3) /* Disconnected by target */

Definition at line 1028 of file ncr53c8xx.c.

#define HS_DONEMASK   (0x80)

Definition at line 1030 of file ncr53c8xx.c.

#define HS_FAIL   (9|HS_DONEMASK) /* SCSI or PCI bus errors */

Definition at line 1036 of file ncr53c8xx.c.

#define HS_IDLE   (0)

Definition at line 1025 of file ncr53c8xx.c.

#define HS_IN_RESELECT   (1|HS_INVALMASK)

Definition at line 1047 of file ncr53c8xx.c.

#define HS_INVALMASK   (0x40)

Definition at line 1045 of file ncr53c8xx.c.

#define HS_NEGOTIATE   (2) /* sync/wide data transfer*/

Definition at line 1027 of file ncr53c8xx.c.

#define HS_PRT   nc_scr1

Definition at line 1431 of file ncr53c8xx.c.

#define HS_REG   scr1

Definition at line 1430 of file ncr53c8xx.c.

#define HS_RESET   (6|HS_DONEMASK) /* SCSI reset */

Definition at line 1033 of file ncr53c8xx.c.

#define HS_SEL_TIMEOUT   (5|HS_DONEMASK) /* Selection timeout */

Definition at line 1032 of file ncr53c8xx.c.

#define HS_SELECTING   (0|HS_INVALMASK)

Definition at line 1046 of file ncr53c8xx.c.

#define HS_SKIPMASK   (0x20)

Definition at line 1054 of file ncr53c8xx.c.

#define HS_STARTING   (2|HS_INVALMASK)

Definition at line 1048 of file ncr53c8xx.c.

#define HS_TIMEOUT   (8|HS_DONEMASK) /* Software timeout */

Definition at line 1035 of file ncr53c8xx.c.

#define HS_UNEXPECTED   (10|HS_DONEMASK)/* Unexpected disconnect */

Definition at line 1037 of file ncr53c8xx.c.

#define initverbose   (driver_setup.verbose)

Definition at line 1015 of file ncr53c8xx.c.

#define initverbose   (driver_setup.verbose)

Definition at line 1015 of file ncr53c8xx.c.

#define m_calloc_dma (   s,
  n 
)    _m_calloc_dma(np, s, n)

Definition at line 515 of file ncr53c8xx.c.

#define m_free_dma (   p,
  s,
  n 
)    _m_free_dma(np, p, s, n)

Definition at line 516 of file ncr53c8xx.c.

#define map_scsi_sg_data (   np,
  cmd 
)    __map_scsi_sg_data(np->dev, cmd)

Definition at line 553 of file ncr53c8xx.c.

#define MAX_DONE   24

Definition at line 864 of file ncr53c8xx.c.

#define MAX_LUN   SCSI_NCR_MAX_LUN

Definition at line 948 of file ncr53c8xx.c.

#define MAX_SCATTER   (SCSI_NCR_MAX_SCATTER)

Definition at line 993 of file ncr53c8xx.c.

#define MAX_SCATTERH   (MAX_SCATTER - MAX_SCATTERL)

Definition at line 997 of file ncr53c8xx.c.

#define MAX_SCATTERL   80

Definition at line 996 of file ncr53c8xx.c.

#define MAX_START   (SCSI_NCR_CAN_QUEUE + 4)

Definition at line 969 of file ncr53c8xx.c.

#define MAX_TAGS   SCSI_NCR_MAX_TAGS

Definition at line 913 of file ncr53c8xx.c.

#define MAX_TARGET   (SCSI_NCR_MAX_TARGET)

Definition at line 935 of file ncr53c8xx.c.

#define MEMO_CLUSTER_MASK   (MEMO_CLUSTER_SIZE-1)

Definition at line 204 of file ncr53c8xx.c.

#define MEMO_CLUSTER_SHIFT   (PAGE_SHIFT+MEMO_PAGE_ORDER)

Definition at line 202 of file ncr53c8xx.c.

#define MEMO_CLUSTER_SIZE   (1UL << MEMO_CLUSTER_SHIFT)

Definition at line 203 of file ncr53c8xx.c.

#define MEMO_FREE_UNUSED   /* Free unused pages immediately */

Definition at line 199 of file ncr53c8xx.c.

#define MEMO_GFP_FLAGS   GFP_ATOMIC

Definition at line 201 of file ncr53c8xx.c.

#define MEMO_PAGE_ORDER   1 /* 2 PAGES maximum */

Definition at line 197 of file ncr53c8xx.c.

#define MEMO_SHIFT   4 /* 16 bytes minimum memory chunk */

Definition at line 193 of file ncr53c8xx.c.

#define MEMO_WARN   1

Definition at line 200 of file ncr53c8xx.c.

#define NADDR (   label)    (RELOC_SOFTC | offsetof(struct ncb, label))

Definition at line 1998 of file ncr53c8xx.c.

#define NAME53C8XX   "ncr53c8xx"

Definition at line 129 of file ncr53c8xx.c.

#define NCB_SCRIPT_PHYS (   np,
  lbl 
)    (np->p_script + offsetof (struct script, lbl))

Definition at line 1761 of file ncr53c8xx.c.

#define NCB_SCRIPTH_PHYS (   np,
  lbl 
)    (np->p_scripth + offsetof (struct scripth,lbl))

Definition at line 1762 of file ncr53c8xx.c.

#define ncr_reg_bus_addr (   r)    (np->paddr + offsetof (struct ncr_reg, r))

Definition at line 7309 of file ncr53c8xx.c.

#define NCR_SNOOP_TIMEOUT   (1000000)

Definition at line 1007 of file ncr53c8xx.c.

#define nego_st   header.scr_st[2]

Definition at line 1456 of file ncr53c8xx.c.

#define nego_status   phys.nego_st

Definition at line 1463 of file ncr53c8xx.c.

#define next_wcmd   host_scribble

Definition at line 8179 of file ncr53c8xx.c.

#define NO_LUN   -1

Definition at line 797 of file ncr53c8xx.c.

#define NO_TAG   (255)

Definition at line 916 of file ncr53c8xx.c.

#define NO_TARGET   -1

Definition at line 795 of file ncr53c8xx.c.

#define NS_NOCHANGE   (0)

Definition at line 1103 of file ncr53c8xx.c.

#define NS_PPR   (4)

Definition at line 1106 of file ncr53c8xx.c.

#define NS_SYNC   (1)

Definition at line 1104 of file ncr53c8xx.c.

#define NS_WIDE   (2)

Definition at line 1105 of file ncr53c8xx.c.

#define OPT_BURST_MAX   12

Definition at line 603 of file ncr53c8xx.c.

#define OPT_BUS_CHECK   19

Definition at line 610 of file ncr53c8xx.c.

#define OPT_DEBUG   11

Definition at line 602 of file ncr53c8xx.c.

#define OPT_DEFAULT_SYNC   9

Definition at line 600 of file ncr53c8xx.c.

#define OPT_DIFF_SUPPORT   16

Definition at line 607 of file ncr53c8xx.c.

#define OPT_DISCONNECTION   4

Definition at line 595 of file ncr53c8xx.c.

#define OPT_EXCLUDE   24

Definition at line 615 of file ncr53c8xx.c.

#define OPT_FORCE_SYNC_NEGO   7

Definition at line 598 of file ncr53c8xx.c.

#define OPT_HOST_ID   25

Definition at line 616 of file ncr53c8xx.c.

#define OPT_IRQM   17

Definition at line 608 of file ncr53c8xx.c.

#define OPT_LED_PIN   13

Definition at line 604 of file ncr53c8xx.c.

#define OPT_MASTER_PARITY   2

Definition at line 593 of file ncr53c8xx.c.

#define OPT_MAX_WIDE   14

Definition at line 605 of file ncr53c8xx.c.

#define OPT_OPTIMIZE   20

Definition at line 611 of file ncr53c8xx.c.

#define OPT_PCI_FIX_UP   18

Definition at line 609 of file ncr53c8xx.c.

#define OPT_RECOVERY   21

Definition at line 612 of file ncr53c8xx.c.

#define OPT_REVERSE_PROBE   8

Definition at line 599 of file ncr53c8xx.c.

#define OPT_SAFE_SETUP   22

Definition at line 613 of file ncr53c8xx.c.

#define OPT_SCSI_PARITY   3

Definition at line 594 of file ncr53c8xx.c.

#define OPT_SETTLE_DELAY   15

Definition at line 606 of file ncr53c8xx.c.

#define OPT_SPECIAL_FEATURES   5

Definition at line 596 of file ncr53c8xx.c.

#define OPT_TAGS   1

Definition at line 592 of file ncr53c8xx.c.

#define OPT_UNUSED_1   6

Definition at line 597 of file ncr53c8xx.c.

#define OPT_USE_NVRAM   23

Definition at line 614 of file ncr53c8xx.c.

#define OPT_VERBOSE   10

Definition at line 601 of file ncr53c8xx.c.

#define PADDR (   label)    (RELOC_LABEL | offsetof(struct script, label))

Definition at line 1999 of file ncr53c8xx.c.

#define PADDRH (   label)    (RELOC_LABELH | offsetof(struct scripth, label))

Definition at line 2000 of file ncr53c8xx.c.

#define parity_status   phys.header.status[3]

Definition at line 1448 of file ncr53c8xx.c.

#define PREFETCH_FLUSH

Definition at line 1799 of file ncr53c8xx.c.

#define PREFETCH_FLUSH_CNT   0

Definition at line 1798 of file ncr53c8xx.c.

#define PRINT_ADDR (   cmd,
  arg... 
)    dev_info(&cmd->device->sdev_gendev , ## arg)

Definition at line 3677 of file ncr53c8xx.c.

#define PS_REG   scr3

Definition at line 1434 of file ncr53c8xx.c.

#define QU_REG   scr0

Definition at line 1429 of file ncr53c8xx.c.

#define RADDR (   label)    (RELOC_REGISTER | REG(label))

Definition at line 2001 of file ncr53c8xx.c.

#define RELOC_LABEL   0x50000000

Definition at line 1990 of file ncr53c8xx.c.

#define RELOC_LABELH   0x80000000

Definition at line 1995 of file ncr53c8xx.c.

#define RELOC_MASK   0xf0000000

Definition at line 1996 of file ncr53c8xx.c.

#define RELOC_REGISTER   0x60000000

Definition at line 1991 of file ncr53c8xx.c.

#define RELOC_SOFTC   0x40000000

Definition at line 1989 of file ncr53c8xx.c.

#define remove_from_waiting_list (   np,
  cmd 
)    retrieve_from_waiting_list(1, (np), (cmd))

Definition at line 1959 of file ncr53c8xx.c.

#define requeue_waiting_list (   np)    process_waiting_list((np), DID_OK)

Definition at line 1961 of file ncr53c8xx.c.

#define reset_waiting_list (   np)    process_waiting_list((np), DID_RESET)

Definition at line 1962 of file ncr53c8xx.c.

#define SCSI_NCR_CCB_DONE_SUPPORT

Definition at line 861 of file ncr53c8xx.c.

#define SCSI_NCR_DEBUG_FLAGS   (0)

Definition at line 95 of file ncr53c8xx.c.

#define SCSI_NCR_DRIVER_NAME   "ncr53c8xx-3.4.3g"

Definition at line 93 of file ncr53c8xx.c.

#define SCSI_NCR_MIN_ASYNC   (40)

Definition at line 958 of file ncr53c8xx.c.

#define SCSI_NCR_MYADDR   (7)

Definition at line 894 of file ncr53c8xx.c.

u8 scsi_status   phys.header.status[2]

Definition at line 1447 of file ncr53c8xx.c.

#define ScsiResult (   host_code,
  scsi_code 
)    (((host_code) << 16) + ((scsi_code) & 0x7f))

Definition at line 1013 of file ncr53c8xx.c.

#define SIR_BAD_STATUS   (1)

Definition at line 1063 of file ncr53c8xx.c.

#define SIR_DONE_OVERFLOW   (17)

Definition at line 1079 of file ncr53c8xx.c.

#define SIR_IGN_RESIDUE   (9)

Definition at line 1071 of file ncr53c8xx.c.

#define SIR_INTFLY   (18)

Definition at line 1080 of file ncr53c8xx.c.

#define SIR_MAX   (18)

Definition at line 1081 of file ncr53c8xx.c.

#define SIR_MISSING_SAVE   (10)

Definition at line 1072 of file ncr53c8xx.c.

#define SIR_NEGO_FAILED   (5)

Definition at line 1067 of file ncr53c8xx.c.

#define SIR_NEGO_PROTO   (6)

Definition at line 1068 of file ncr53c8xx.c.

#define SIR_NEGO_SYNC   (3)

Definition at line 1065 of file ncr53c8xx.c.

#define SIR_NEGO_WIDE   (4)

Definition at line 1066 of file ncr53c8xx.c.

#define SIR_REJECT_RECEIVED   (7)

Definition at line 1069 of file ncr53c8xx.c.

#define SIR_REJECT_SENT   (8)

Definition at line 1070 of file ncr53c8xx.c.

#define SIR_RESEL_BAD_I_T_L   (15)

Definition at line 1077 of file ncr53c8xx.c.

#define SIR_RESEL_BAD_I_T_L_Q   (16)

Definition at line 1078 of file ncr53c8xx.c.

#define SIR_RESEL_BAD_LUN   (13)

Definition at line 1075 of file ncr53c8xx.c.

#define SIR_RESEL_BAD_TARGET   (14)

Definition at line 1076 of file ncr53c8xx.c.

#define SIR_RESEL_NO_IDENTIFY   (12)

Definition at line 1074 of file ncr53c8xx.c.

#define SIR_RESEL_NO_MSG_IN   (11)

Definition at line 1073 of file ncr53c8xx.c.

#define SIR_XXXXXXXXXX   (2)

Definition at line 1064 of file ncr53c8xx.c.

#define SS_PRT   nc_scr2

Definition at line 1433 of file ncr53c8xx.c.

#define SS_REG   scr2

Definition at line 1432 of file ncr53c8xx.c.

#define sync_st   header.scr_st[1]

Definition at line 1455 of file ncr53c8xx.c.

#define UC_SETDEBUG   12

Definition at line 1146 of file ncr53c8xx.c.

#define UC_SETFLAG   15

Definition at line 1149 of file ncr53c8xx.c.

#define UC_SETORDER   13

Definition at line 1147 of file ncr53c8xx.c.

#define UC_SETSYNC   10

Definition at line 1144 of file ncr53c8xx.c.

#define UC_SETTAGS   11

Definition at line 1145 of file ncr53c8xx.c.

#define UC_SETVERBOSE   17

Definition at line 1150 of file ncr53c8xx.c.

#define UC_SETWIDE   14

Definition at line 1148 of file ncr53c8xx.c.

#define UF_NODISC   (0x02)

Definition at line 1153 of file ncr53c8xx.c.

#define UF_NOSCAN   (0x04)

Definition at line 1154 of file ncr53c8xx.c.

#define UF_TRACE   (0x01)

Definition at line 1152 of file ncr53c8xx.c.

#define unmap_scsi_data (   np,
  cmd 
)    __unmap_scsi_data(np->dev, cmd)

Definition at line 552 of file ncr53c8xx.c.

#define VTOB_HASH_CODE (   m)    ((((m_addr_t) (m)) >> MEMO_CLUSTER_SHIFT) & VTOB_HASH_MASK)

Definition at line 221 of file ncr53c8xx.c.

#define VTOB_HASH_MASK   (VTOB_HASH_SIZE-1)

Definition at line 220 of file ncr53c8xx.c.

#define VTOB_HASH_SHIFT   5

Definition at line 218 of file ncr53c8xx.c.

#define VTOB_HASH_SIZE   (1UL << VTOB_HASH_SHIFT)

Definition at line 219 of file ncr53c8xx.c.

#define vtobus (   p)    _vtobus(np, p)

Definition at line 518 of file ncr53c8xx.c.

#define wide_st   header.scr_st[3]

Definition at line 1457 of file ncr53c8xx.c.

#define XE_BAD_PHASE   (2) /* illegal phase (4/5) */

Definition at line 1093 of file ncr53c8xx.c.

#define XE_EXTRA_DATA   (1) /* unexpected data phase */

Definition at line 1092 of file ncr53c8xx.c.

#define XE_OK   (0)

Definition at line 1091 of file ncr53c8xx.c.

#define xerr_st   header.scr_st[0]

Definition at line 1454 of file ncr53c8xx.c.

#define xerr_status   phys.xerr_st

Definition at line 1462 of file ncr53c8xx.c.

Typedef Documentation

typedef u_long m_addr_t

Definition at line 206 of file ncr53c8xx.c.

Definition at line 207 of file ncr53c8xx.c.

typedef u32 tagmap_t

Definition at line 924 of file ncr53c8xx.c.

Function Documentation

__setup ( )
void ncr53c8xx_exit ( void  )

Definition at line 8626 of file ncr53c8xx.c.

int __init ncr53c8xx_init ( void  )

Definition at line 8618 of file ncr53c8xx.c.

void ncr53c8xx_release ( struct Scsi_Host host)

Definition at line 8530 of file ncr53c8xx.c.

struct Scsi_Host* __init ncr_attach ( struct scsi_host_template tpnt,
int  unit,
struct ncr_device device 
)
read

Definition at line 8297 of file ncr53c8xx.c.