linux/drivers/scsi/wd7000.c
<<
v4.1"v3/spaval "v3/formal "v3a v4.1"v href="../linux+v3 > 7/drivers/scsi/wd7000.c">v4.1"v3img src="../.static/gfx/right.png" alt=">>">v43/spavalv43spav class="lxr_search">v4.1v4.1"v3input typ> hidden" nam> navtarget" > ">v4.1"v3input typ> text" nam> search" id search">v4.1"v3butt26"typ> submit">Searchv4.1"vPrefsl "v3/a>v43/spaval.1"v v3/dival.1"v v3form acon v="ajax+*" method="post" onsubmit="return false;">v43input typ> hidden" nam> ajax_lookup" id ajax_lookup" > ">v.1"v v3/formalv.1"v v3div class="headingbott2m">l 3div id file_contents"a
 L1">v v13/a>3spav class="comment">/* $Id: $3/spaval
 L2">v v23/a>3spav class="comment"> *  linux/drivers/scsi/wd7000.c3/spaval
 L3">v v33/a>3spav class="comment"> *3/spaval
 L4">v v43/a>3spav class="comment"> *  Copyright (C) 1992  Thomas Wuensche3/spaval
 L5">v v53/a>3spav class="comment"> *      closely related to the aha1542 driver from Tommy Thorn3/spaval
 L6">v v63/a>3spav class="comment"> *      ( as close as different hardware allows on a lowlevel-driver :-) )3/spaval
 L7">v v73/a>3spav class="comment"> *3/spaval
 L8">v v83/a>3spav class="comment"> *  Revised (and renam>d) by John Boyd <boyd@cis.ohio-state.edu> to3/spaval
 L9">v v93/a>3spav class="comment"> *  accommodate Eric Youngdale's modificaon vs to scsi.c.  Nov 1992.3/spaval
 L10">v  3spav class="comment"> *3/spaval
 L11">v 113/a>3spav class="comment"> *  Addion val changes to support scatter/gather.  Dec. 1992.  tw/jb3/spaval
 L12">v 123/a>3spav class="comment"> *3/spaval
 L13">v 133/a>3spav class="comment"> *  No longer tries to reset SCSI bus at boot (it wasn't working anyway).3/spaval
 L14">v 143/a>3spav class="comment"> *  Rewritten to support multiple host adapters.3/spaval
 L15">v 153/a>3spav class="comment"> *  Miscellaneous cleanup.3/spaval
 L16">v 163/a>3spav class="comment"> *  So far, still doesn't do reset or abort correctly, since I have no idea3/spaval
 L17">v 173/a>3spav class="comment"> *v how to do them with this board (8^(.                      Jav 1994 jb3/spaval
 L18">v 183/a>3spav class="comment"> *3/spaval
 L19">v 193/a>3spav class="comment"> * This driver now supports both of the two standard configuraon vs (per3/spaval
 L20">v 23spav class="comment"> * the 3.36 Owner's Manual, my latest reference) by the sam> method as3/spaval
 L21">v 213/a>3spav class="comment"> * before; nam>ly, by looking for a BIOS signature.  Thus, the locaon v of3/spaval
 L22">v 223/a>3spav class="comment"> * the BIOS signature determines the board configuraon v.  Until I have3/spaval
 L23">v 233/a>3spav class="comment"> * tim> to do something more flexible, users should stick to one of the3/spaval
 L24">v 243/a>3spav class="comment"> * following:3/spaval
 L25">v 253/a>3spav class="comment"> *3/spaval
 L26">v 263/a>3spav class="comment"> * Standard configuraon v for single-adapter systems:3/spaval
 L27">v 273/a>3spav class="comment"> *v   - BIOS at CE00h3/spaval
 L28">v 283/a>3spav class="comment"> *    - I/O base address 350h3/spaval
 L29">v 293/a>3spav class="comment"> *    - IRQ level 153/spaval
 L30">v 33spav class="comment"> *    - DMA channel 63/spaval
 L31">v 313/a>3spav class="comment"> * Standard configuraon v for a second adapter in a system:3/spaval
 L32">v 323/a>3spav class="comment"> *    - BIOS at C800h3/spaval
 L33">v 333/a>3spav class="comment"> *    - I/O base address 330h3/spaval
 L34">v 343/a>3spav class="comment"> *    - IRQ level 113/spaval
 L35">v 353/a>3spav class="comment"> *    - DMA channel 53/spaval
 L36">v 363/a>3spav class="comment"> *3/spaval
 L37">v 373/a>3spav class="comment"> *vAnyone who cav recompile the kernel is welcom> to add others as need3/spaval
 L38">v 383/a>3spav class="comment"> * arises, but unpredictable results may occur if there are conflicts.3/spaval
 L39">v 393/a>3spav class="comment"> * In any event, if there are multiple adapters in a system, they MUST3/spaval
 L40">v 43spav class="comment"> * use different I/O bases, IRQ levels, and DMA channels, since they will be3/spaval
 L41">v 413/a>3spav class="comment"> * indistinguishable (and in direct conflict) otherwise.3/spaval
 L42">v 423/a>3spav class="comment"> *3/spaval
 L43">v 433/a>3spav class="comment"> *   As a point of informaon v, the NO_OP command toggles the CMD_RDY bit3/spaval
 L44">v 443/a>3spav class="comment"> * of the status port, and this fact could be used as a test for the I/O3/spaval
 L45">v 453/a>3spav class="comment"> * base address (or more generally, board detecon v).  There is av interrupt3/spaval
 L46">v 463/a>3spav class="comment"> * status port, so IRQ probing could also be done.  I suppose the full3/spaval
 L47">v 473/a>3spav class="comment"> *vDMA diagnostic could be used to deteco the DMA channel being used.  I3/spaval
 L48">v 483/a>3spav class="comment"> * haven't done any of this, though, because I think there's too much of3/spaval
 L49">v 493/a>3spav class="comment"> * a chance that such exploraon vs could be destruconve, if some other3/spaval
 L50">v 53spav class="comment"> * board's resources are used inadvertently.  So, call me a wimp, but I3/spaval
 L51">v 513/a>3spav class="comment"> * don't want to try it.  The only kind of exploraon v I trust is memory3/spaval
 L52">v 523/a>3spav class="comment"> * exploraon v, since it's more certain that reading memory won't be3/spaval
 L53">v 533/a>3spav class="comment"> * destruconve.3/spaval
 L54">v 543/a>3spav class="comment"> *3/spaval
 L55">v 553/a>3spav class="comment"> * More to my liking would be a LILO boot command line specificaon v, such3/spaval
 L56">v 563/a>3spav class="comment"> * as is used by the aha152x driver (and possibly others).  I'll look into3/spaval
 L57">v 573/a>3spav class="comment"> *vit, as I have tim>...3/spaval
 L58">v 583/a>3spav class="comment"> *3/spaval
 L59">v 593/a>3spav class="comment"> *   I get mail occasn vally from people who either are using or are3/spaval
 L60">v 63spav class="comment"> * considering using a WD7000 with Linux.  There is a variety of3/spaval
 L61">v 613/a>3spav class="comment"> * nomenclature describing WD7000's.  To the best of my knowledge, the3/spaval
 L62">v 623/a>3spav class="comment"> * following is a brief summary (from av old WD doc - I don't work for3/spaval
 L63">v 633/a>3spav class="comment"> * them or anything like that):3/spaval
 L64">v 643/a>3spav class="comment"> *3/spaval
 L65">v 653/a>3spav class="comment"> * WD7000-FASST2: This is a WD7000 board with the real-mode SST ROM BIOS3/spaval
 L66">v 663/a>3spav class="comment"> *        installed.  Last I heard, the BIOS was actually done by Columbia3/spaval
 L67">v 673/a>3spav class="comment"> *v       Data Products.  The BIOS is only used by this driver (and thus3/spaval
 L68">v 683/a>3spav class="comment"> *        by Linux) to identify the board; none of it cav be executed under3/spaval
 L69">v 693/a>3spav class="comment"> *        Linux.3/spaval
 L70">v 73spav class="comment"> *3/spaval
 L71">v 713/a>3spav class="comment"> * WD7000-ASC: This is the origival adapter board, with or without BIOS.3/spaval
 L72">v 723/a>3spav class="comment"> *        The board uses a WD33C93 or WD33C93A SBIC, which in turn is3/spaval
 L73">v 733/a>3spav class="comment"> *        controlled by av onboard Z80 processor.  The board interface3/spaval
 L74">v 743/a>3spav class="comment"> *        visible to the host CPU is defined effeconvely by the Z80's3/spaval
 L75">v 753/a>3spav class="comment"> *        firmware, and it is this firmware's revisi v level that is3/spaval
 L76">v 763/a>3spav class="comment"> *        determined and reported by this driver.  (The versn v of the3/spaval
 L77">v 773/a>3spav class="comment"> *v       on-board BIOS is of no interest whatsoever.)  The host CPU has3/spaval
 L78">v 783/a>3spav class="comment"> *        no access to the SBIC; hence the fact that it is a WD33C93 is3/spaval
 L79">v 793/a>3spav class="comment"> *        also of no interest to this driver.3/spaval
 L80">v 83spav class="comment"> *3/spaval
 L81">v 813/a>3spav class="comment"> * WD7000-AX:3/spaval
 L82">v 823/a>3spav class="comment"> * WD7000-MX:3/spaval
 L83">v 833/a>3spav class="comment"> * WD7000-EX: These are newer versn vs of the WD7000-ASC.  The -ASC is3/spaval
 L84">v 843/a>3spav class="comment"> *        largely built from discrete components; these boards use more3/spaval
 L85">v 853/a>3spav class="comment"> *        integraon v.  The -AX is av ISA bus board (like the -ASC),3/spaval
 L86">v 863/a>3spav class="comment"> *        the -MX is av MCA (i.e., PS/2) bus board), and the -EX is av3/spaval
 L87">v 873/a>3spav class="comment"> *v       EISA bus board.3/spaval
 L88">v 883/a>3spav class="comment"> *3/spaval
 L89">v 893/a>3spav class="comment"> *  Ao the tim> of my documentaon v, the -?X boards were "future" products,3/spaval
 L90">v 93spav class="comment"> *  and were not yet available.  However, I vaguely recall that Thomas3/spaval
 L91">v 913/a>3spav class="comment"> *  Wuensche had an -AX, so I believe at least it is supported by this3/spaval
 L92">v 923/a>3spav class="comment"> *  driver.  I have no pers val knowledge of either -MX or -EX boards.3/spaval
 L93">v 933/a>3spav class="comment"> *3/spaval
 L94">v 943/a>3spav class="comment"> *  P.S. Just recently, I've discovered (directly from WD and Future3/spaval
 L95">v 953/a>3spav class="comment"> *  Domain) that all but the WD7000-EX have beev out of productn v for3/spaval
 L96">v 963/a>3spav class="comment"> *  two years now.  FD has productn v rights to the 7000-EX, and are3/spaval
 L97">v 973/a>3spav class="comment"> *v producing it under a new nam>, and with a new BIOS.  If anyone has3/spaval
 L98">v 983/a>3spav class="comment"> *  one of the FD boards, it would be nice to com> up with a signature3/spaval
 L99">v 993/a>3spav class="comment"> *  for it.3/spaval
 L100">v1003/a>3spav class="comment"> *v                                                          J.B. Jav 1994.3/spaval
 L101">v1013/a>3spav class="comment"> *3/spaval
 L102">v1023/a>3spav class="comment"> *3/spaval
 L103">v1033/a>3spav class="comment"> *  Revisi vs by Miroslav Zagorac <zaga@fly.cc.fer.hr>3/spaval
 L104">v1043/a>3spav class="comment"> *3/spaval
 L105">v1053/a>3spav class="comment"> *  08/24/1996.3/spaval
 L106">v1063/a>3spav class="comment"> *3/spaval
 L107">v1073/a>3spav class="comment"> *v Enhancement for wd7000_deteco functn v has beev made, so you don't have3/spaval
 L108">v1083/a>3spav class="comment"> *  to enter BIOS ROM address iv initialisaon v data (see struco Config).3/spaval
 L109">v1093/a>3spav class="comment"> *  We cavnot deteco IRQ, DMA and I/O base address for now, so we have to3/spaval
 L110">v1 3spav class="comment"> *  enter them as arguments while wd_7000 is detecoed. If someone has IRQ,3/spaval
 L111">v1113/a>3spav class="comment"> *  DMA or I/O base address set to some other 
	  >, he cav enter them iv3/spaval
 L112">v1123/a>3spav class="comment"> *  configuraon v without any problem. Also I wrote a functn v wd7000_setup,3/spaval
 L113">v1133/a>3spav class="comment"> *  so now you cav enter WD-7000 definion v as kernel arguments,3/spaval
 L114">v1143/a>3spav class="comment"> *  as iv lilo.conf:3/spaval
 L115">v1153/a>3spav class="comment"> *3/spaval
 L116">v1163/a>3spav class="comment"> *     append="wd7000=IRQ,DMA,IO"3/spaval
 L117">v1173/a>3spav class="comment"> *3/spaval
 L118">v1183/a>3spav class="comment"> *  PS: If card BIOS ROM is disabled, functn v wd7000_deteco now will recognize3/spaval
 L119">v1193/a>3spav class="comment"> *      adapter, unlike the old one. Anyway, BIOS ROM from WD7000 adapter is3/spaval
 L120">v123spav class="comment"> *      useless for Linux. B^)3/spaval
 L121">v1213/a>3spav class="comment"> *3/spaval
 L122">v1223/a>3spav class="comment"> *3/spaval
 L123">v1233/a>3spav class="comment"> *  09/06/1996.3/spaval
 L124">v1243/a>3spav class="comment"> *3/spaval
 L125">v1253/a>3spav class="comment"> *  Autodeteconng of I/O base address from wd7000_deteco functn v is removed,3/spaval
 L126">v1263/a>3spav class="comment"> *  some little bugs removed, etc...3/spaval
 L127">v1273/a>3spav class="comment"> *3/spaval
 L128">v1283/a>3spav class="comment"> *  Thanks to Roger Scott for driver debuggnng.3/spaval
 L129">v1293/a>3spav class="comment"> *3/spaval
 L130">v133spav class="comment"> *  06/07/19973/spaval
 L131">v1313/a>3spav class="comment"> *3/spaval
 L132">v1323/a>3spav class="comment"> *  Added support for /proc file system (/proc/scsi/wd7000/[0...] files).3/spaval
 L133">v1333/a>3spav class="comment"> *  Now, driver cav handle hard disks with capacity >1GB.3/spaval
 L134">v1343/a>3spav class="comment"> *3/spaval
 L135">v1353/a>3spav class="comment"> *  01/15/19983/spaval
 L136">v1363/a>3spav class="comment"> *3/spaval
 L137">v1373/a>3spav class="comment"> *v Added support for BUS_ON and BUS_OFF param>ters in config line.3/spaval
 L138">v1383/a>3spav class="comment"> *  Miscellaneous cleanup.3/spaval
 L139">v1393/a>3spav class="comment"> *3/spaval
 L140">v143spav class="comment"> *  03/01/19983/spaval
 L141">v1413/a>3spav class="comment"> *3/spaval
 L142">v1423/a>3spav class="comment"> *  WD7000 driver now work  v kernels >= 2.1.x3/spaval
 L143">v1433/a>3spav class="comment"> *3/spaval
 L144">v1443/a>3spav class="comment"> *3/spaval
 L145">v1453/a>3spav class="comment"> * 12/31/2001 - Arnaldo Carvalho de Melo <acme@coneconva.com.br>3/spaval
 L146">v1463/a>3spav class="comment"> *3/spaval
 L147">v1473/a>3spav class="comment"> *vuse host->host_lock, not io_request_lock, cleanups3/spaval
 L148">v1483/a>3spav class="comment"> *3/spaval
 L149">v1493/a>3spav class="comment"> * 2002/10/04 - Alan Cox <alan@lxorguk.ukuu.org.uk>3/spaval
 L150">v153spav class="comment"> *3/spaval
 L151">v1513/a>3spav class="comment"> * Use dev_id for interrupts, kill __func__ pasting3/spaval
 L152">v1523/a>3spav class="comment"> * Add a lock for the scb pool, clean up all other cli/stivusage stuff3/spaval
 L153">v1533/a>3spav class="comment"> * Use the adapter lock for the other places we had the cli's3/spaval
 L154">v1543/a>3spav class="comment"> *3/spaval
 L155">v1553/a>3spav class="comment"> * 2002/10/06 - Alan Cox <alan@lxorguk.ukuu.org.uk>3/spaval
 L156">v1563/a>3spav class="comment"> *3/spaval
 L157">v1573/a>3spav class="comment"> *vSwitch to new style error handling3/spaval
 L158">v1583/a>3spav class="comment"> * Clean up delay to udelay, and yielding sleeps3/spaval
 L159">v1593/a>3spav class="comment"> * Make host reset actually reset the card3/spaval
 L160">v163spav class="comment"> * Make everything static3/spaval
 L161">v1613/a>3spav class="comment"> *3/spaval
 L162">v1623/a>3spav class="comment"> * 2003/02/12 - Christoph Hellwig <hch@infradead.org>3/spaval
 L163">v1633/a>3spav class="comment"> *3/spaval
 L164">v1643/a>3spav class="comment"> * Cleaned up host template definion v3/spaval
 L165">v1653/a>3spav class="comment"> * Removed now obsolete wd7000.h3/spaval
 L166">v1663/a>3spav class="comment"> */3/spaval
 L167">v1673/a>l
 L168">v1683/a>#include <linux/delay.h3/a>>l
 L169">v1693/a>#include <linux/module.h3/a>>l
 L170">v17#include <linux/interrupt.h3/a>>l
 L171">v1713/a>#include <linux/kernel.h3/a>>l
 L172">v1723/a>#include <linux/typ>s.h3/a>>l
 L173">v1733/a>#include <linux/string.h3/a>>l
 L174">v1743/a>#include <linux/spinlock.h3/a>>l
 L175">v1753/a>#include <linux/ioport.h3/a>>l
 L176">v1763/a>#include <linux/proc_fs.h3/a>>l
 L177">v1773/a>#include <linux/blkdev.h3/a>>l
 L178">v1783/a>#include <linux/init.h3/a>>l
 L179">v1793/a>#include <linux/stat.h3/a>>l
 L180">v18#include <linux/io.h3/a>>l
 L181">v1813/a>l
 L182">v1823/a>#include <asm/dma.h3/a>>l
 L183">v1833/a>l
 L184">v1843/a>#include <scsi/scsi.h3/a>>l
 L185">v1853/a>#include <scsi/scsi_cmnd.h3/a>>l
 L186">v1863/a>#include <scsi/scsi_device.h3/a>>l
 L187">v1873/a>#include <scsi/scsi_host.h3/a>>l
 L188">v1883/a>#include <scsi/scsicam.h3/a>>l
 L189">v1893/a>l
 L190">v19l
 L191">v1913/a>#undef"v3a href="+code=WD7000_DEBUG" class="sref">WD7000_DEBUG3/a>            3spav class="comment">/* general debug                */3/spaval
 L192">v1923/a>#ifdef"3a href="+code=WD7000_DEBUG" class="sref">WD7000_DEBUG3/a>l
 L193">v1933/a>#define"3a href="+code=dprintk" class="sref">dprintk3/a> 3a href="+code=printk" class="sref">printk3/a>l
 L194">v1943/a>#elsel
 L195">v1953/a>#define"3a href="+code=dprintk" class="sref">dprintk3/a>(3a href="+code=formao" class="sref">formao3/a>,3a href="+code=args" class="sref">args3/a>...)l
 L196">v1963/a>#endifl
 L197">v1973/a>l
 L198">v1983/a>3spav class="comment">/*3/spaval
 L199">v1993/a>3spav class="comment"> *  Mailbox strucoure sizes.3/spaval
 L200">v2003/a>3spav class="comment"> *v I prefer to keep the number of ICMBs much larger than the number of3/spaval
 L201">v2013/a>3spav class="comment"> *  OGMBs.  OGMBs are used very quickly by the driver to start one or3/spaval
 L202">v2023/a>3spav class="comment"> *  more commands, while ICMBs are used by the host adapter per command.3/spaval
 L203">v2033/a>3spav class="comment"> */3/spaval
 L204">v2043/a>#define"3a href="+code=OGMB_CNT" class="sref">OGMB_CNT3/a>        16l
 L205">v2053/a>#define"3a href="+code=ICMB_CNT" class="sref">ICMB_CNT3/a>        32l
 L206">v2063/a>l
 L207">v2073/a>3spav class="comment">/*3/spaval
 L208">v2083/a>3spav class="comment"> *  Scb's are shared by all aconve adapters.  So, if they all becom> busy,3/spaval
 L209">v2093/a>3spav class="comment"> *  callers may be made to wait in alloc_scbs for them to free.  That cav3/spaval
 L210">v2 3spav class="comment"> *  be avoided by setonng MAX_SCBS to NUM_CONFIG * WD7000_Q.  If you'd3/spaval
 L211">v2113/a>3spav class="comment"> *  rather conserve memory, use a smaller number (> 0, of course) - things3/spaval
 L212">v2123/a>3spav class="comment"> *  will should still work OK.3/spaval
 L213">v2133/a>3spav class="comment"> */3/spaval
 L214">v2143/a>#define"3a href="+code=MAX_SCBS" class="sref">MAX_SCBS3/a>        32l
 L215">v2153/a>l
 L216">v2163/a>3spav class="comment">/*3/spaval
 L217">v2173/a>3spav class="comment"> *v In this versn v, sg_tablesize now defaults to WD7000_SG, and will3/spaval
 L218">v2183/a>3spav class="comment"> *  be set to SG_NONE for older boards.  This is the reverse of the3/spaval
 L219">v2193/a>3spav class="comment"> *  previous default, and was changed so that the driver-level3/spaval
 L220">v223spav class="comment"> *  scsi_host_template would refleco the driver's support for scatter/3/spaval
 L221">v2213/a>3spav class="comment"> *  gather.3/spaval
 L222">v2223/a>3spav class="comment"> *3/spaval
 L223">v2233/a>3spav class="comment"> *  Also, it has beev reported that boards at Revisi v 6 support scatter/3/spaval
 L224">v2243/a>3spav class="comment"> *  gather, so the new definion v of an "older" board has beev changed3/spaval
 L225">v2253/a>3spav class="comment"> *  accordingly.3/spaval
 L226">v2263/a>3spav class="comment"> */3/spaval
 L227">v2273/a>#define"3a href="+code=WD7000_Q" class="sref">WD7000_Q3/a>        16l
 L228">v2283/a>#define"3a href="+code=WD7000_SG" class="sref">WD7000_SG3/a>       16l
 L229">v2293/a>l
 L230">v23l
 L231">v2313/a>3spav class="comment">/*3/spaval
 L232">v2323/a>3spav class="comment"> *  WD7000-specific mailbox strucoure3/spaval
 L233">v2333/a>3spav class="comment"> *3/spaval
 L234">v2343/a>3spav class="comment"> */3/spaval
 L235">v2353/a>typ>def"volatile struco 3a href="+code=mailbox" class="sref">mailbox3/a> {l
 L236">v2363/a>        3a href="+code=unchar" class="sref">unchar3/a> 3a href="+code=status" class="sref">status3/a>;l
 L237">v2373/a>        3a href="+code=unchar" class="sref">unchar3/a> 3a href="+code=scbptr" class="sref">scbptr3/a>[3];       3spav class="comment">/* SCSI-style - MSB first (big endian) */3/spaval
 L238">v2383/a>}"3a href="+code=Mailbox" class="sref">Mailbox3/a>;l
 L239">v2393/a>l
 L240">v243spav class="comment">/*3/spaval
 L241">v2413/a>3spav class="comment"> *  This strucoure should contain all per-adapter global data.  I.e., any3/spaval
 L242">v2423/a>3spav class="comment"> *  new global per-adapter data should put in here.3/spaval
 L243">v2433/a>3spav class="comment"> */3/spaval
 L244">v2443/a>typ>def"struco 3a href="+code=adapter" class="sref">adapter3/a> {l
 L245">v2453/a>        struco 3a href="+code=Scsi_Host" class="sref">Scsi_Host3/a> *3a href="+code=sh" class="sref">sh3/a>;   3spav class="comment">/* Pointer to Scsi_Host strucoure    */3/spaval
 L246">v2463/a>        int 3a href="+code=iobase" class="sref">iobase3/a>;             3spav class="comment">/* This adapter's I/O base address   */3/spaval
 L247">v2473/a>        int 3a href="+code=irq" class="sref">irq3/a>;                3spav class="comment">/* This adapter's IRQ level          */3/spaval
 L248">v2483/a>        int 3a href="+code=dma" class="sref">dma3/a>;                3spav class="comment">/* This adapter's DMA channel        */3/spaval
 L249">v2493/a>        int 3a href="+code=int_counter" class="sref">int_counter3/a>;        3spav class="comment">/* This adapter's interrupt counter  */3/spaval
 L250">v25        int 3a href="+code=bus_on" class="sref">bus_on3/a>;             3spav class="comment">/* This adapter's BUS_ON tim>        */3/spaval
 L251">v2513/a>        int 3a href="+code=bus_off" class="sref">bus_off3/a>;            3spav class="comment">/* This adapter's BUS_OFF tim>       */3/spaval
 L252">v2523/a>        struco {                3spav class="comment">/* This adapter's mailboxes          */3/spaval
 L253">v2533/a>                3a href="+code=Mailbox" class="sref">Mailbox3/a> 3a href="+code=ogmb" class="sref">ogmb3/a>[3a href="+code=OGMB_CNT" class="sref">OGMB_CNT3/a>]; 3spav class="comment">/* Outgoing mailboxes                */3/spaval
 L254">v2543/a>                3a href="+code=Mailbox" class="sref">Mailbox3/a> 3a href="+code=icmb" class="sref">icmb3/a>[3a href="+code=ICMB_CNT" class="sref">ICMB_CNT3/a>]; 3spav class="comment">/* Incoming mailboxes                */3/spaval
 L255">v2553/a>        }"3a href="+code=mb" class="sref">mb3/a>;l
 L256">v2563/a>        int 3a href="+code=next_ogmb" class="sref">next_ogmb3/a>;          3spav class="comment">/* to reduce contentn v at mailboxes */3/spaval
 L257">v2573/a>        3a href="+code=unchar" class="sref">unchar3/a> 3a href="+code=control" class="sref">control3/a>;         3spav class="comment">/* shadows CONTROL port 
	  >        */3/spaval
 L258">v2583/a>        3a href="+code=unchar" class="sref">unchar3/a> 3a href="+code=rev1" class="sref">rev13/a>, 3a href="+code=rev2" class="sref">rev23/a>;      3spav class="comment">/* filled in by wd7000_revisi v      */3/spaval
 L259">v2593/a>}"3a href="+code=Adapter" class="sref">Adapter3/a>;l
 L260">v26l
 L261">v2613/a>3spav class="comment">/*3/spaval
 L262">v2623/a>3spav class="comment"> * (linear) base address for ROM BIOS3/spaval
 L263">v2633/a>3spav class="comment"> */3/spaval
 L264">v2643/a>static const long 3a href="+code=wd7000_biosaddr" class="sref">wd7000_biosaddr3/a>[] = {l
 L265">v2653/a>        0xc0000, 0xc2000, 0xc4000, 0xc6000, 0xc8000, 0xca000, 0xcc000, 0xce000,l
 L266">v2663/a>        0xd0000, 0xd2000, 0xd4000, 0xd6000, 0xd8000, 0xda000, 0xdc000, 0xde000l
 L267">v2673/a>};l
 L268">v2683/a>#define"3a href="+code=NUM_ADDRS" class="sref">NUM_ADDRS3/a> 3a href="+code=ARRAY_SIZE" class="sref">ARRAY_SIZE3/a>(3a href="+code=wd7000_biosaddr" class="sref">wd7000_biosaddr3/a>)l
 L269">v2693/a>l
 L270">v27static const unsigned short 3a href="+code=wd7000_iobase" class="sref">wd7000_iobase3/a>[] = {l
 L271">v2713/a>        0x0300, 0x0308, 0x0310, 0x0318, 0x0320, 0x0328, 0x0330, 0x0338,l
 L272">v2723/a>        0x0340, 0x0348, 0x0350, 0x0358, 0x0360, 0x0368, 0x0370, 0x0378,l
 L273">v2733/a>        0x0380, 0x0388, 0x0390, 0x0398, 0x03a0, 0x03a8, 0x03b0, 0x03b8,l
 L274">v2743/a>        0x03c0, 0x03c8, 0x03d0, 0x03d8, 0x03e0, 0x03e8, 0x03f0, 0x03f8l
 L275">v2753/a>};l
 L276">v2763/a>#define"3a href="+code=NUM_IOPORTS" class="sref">NUM_IOPORTS3/a> 3a href="+code=ARRAY_SIZE" class="sref">ARRAY_SIZE3/a>(3a href="+code=wd7000_iobase" class="sref">wd7000_iobase3/a>)l
 L277">v2773/a>l
 L278">v2783/a>static const short 3a href="+code=wd7000_irq" class="sref">wd7000_irq3/a>[] = { 3, 4, 5, 7, 9, 10, 11, 12, 14, 15 };l
 L279">v2793/a>#define"3a href="+code=NUM_IRQS" class="sref">NUM_IRQS3/a> 3a href="+code=ARRAY_SIZE" class="sref">ARRAY_SIZE3/a>(3a href="+code=wd7000_irq" class="sref">wd7000_irq3/a>)l
 L280">v28l
 L281">v2813/a>static const short 3a href="+code=wd7000_dma" class="sref">wd7000_dma3/a>[] = { 5, 6, 7 };l
 L282">v2823/a>#define"3a href="+code=NUM_DMAS" class="sref">NUM_DMAS3/a> 3a href="+code=ARRAY_SIZE" class="sref">ARRAY_SIZE3/a>(3a href="+code=wd7000_dma" class="sref">wd7000_dma3/a>)l
 L283">v2833/a>l
 L284">v2843/a>3spav class="comment">/*3/spaval
 L285">v2853/a>3spav class="comment"> * The following is set up by wd7000_deteco, and used thereafter for3/spaval
 L286">v2863/a>3spav class="comment"> * proc and other global ookups3/spaval
 L287">v2873/a>3spav class="comment"> */3/spaval
 L288">v2883/a>l
 L289">v2893/a>#define"3a href="+code=UNITS" class="sref">UNITS3/a>   8l
 L290">v29static struco 3a href="+code=Scsi_Host" class="sref">Scsi_Host3/a> *3a href="+code=wd7000_host" class="sref">wd7000_host3/a>[3a href="+code=UNITS" class="sref">UNITS3/a>];l
 L291">v2913/a>l
 L292">v2923/a>#define"3a href="+code=BUS_ON" class="sref">BUS_ON3/a>    64            3spav class="comment">/* xv125ns = 8000ns (BIOS default) */3/spaval
 L293">v2933/a>#define"3a href="+code=BUS_OFF" class="sref">BUS_OFF3/a>   15            3spav class="comment">/* xv125ns = 1875ns (BIOS default) */3/spaval
 L294">v2943/a>l
 L295">v2953/a>3spav class="comment">/*3/spaval
 L296">v2963/a>3spav class="comment"> *  Standard Adapter Configuraon vs - used by wd7000_deteco3/spaval
 L297">v2973/a>3spav class="comment"> */3/spaval
 L298">v2983/a>typ>def"struco {l
 L299">v2993/a>        short 3a href="+code=irq" class="sref">irq3/a>;              3spav class="comment">/* IRQ level                                  */3/spaval
 L300">v3003/a>        short 3a href="+code=dma" class="sref">dma3/a>;              3spav class="comment">/* DMA channel                                */3/spaval
 L301">v3013/a>        unsigned 3a href="+code=iobase" class="sref">iobase3/a>;        3spav class="comment">/* I/O base address                           */3/spaval
 L302">v3023/a>        short 3a href="+code=bus_on" class="sref">bus_on3/a>;           3spav class="comment">/* Tim> that WD7000 spends  v the AT-bus when */3/spaval
 L303">v3033/a>        3spav class="comment">/* transferring data. BIOS default is 8000ns. */3/spaval
 L304">v3043/a>        short 3a href="+code=bus_off" class="sref">bus_off3/a>;          3spav class="comment">/* Tim> that WD7000 spends OFF THE BUS after  */3/spaval
 L305">v3053/a>        3spav class="comment">/* while it is transferring data.             */3/spaval
 L306">v3063/a>        3spav class="comment">/* BIOS default is 1875ns                     */3/spaval
 L307">v3073/a>}"3a href="+code=Config" class="sref">Config3/a>;l
 L308">v3083/a>l
 L309">v3093/a>3spav class="comment">/*3/spaval
 L310">v3 3spav class="comment"> * Add here your configuraon v...3/spaval
 L311">v3113/a>3spav class="comment"> */3/spaval
 L312">v3123/a>static 3a href="+code=Config" class="sref">Config3/a> 3a href="+code=configs" class="sref">configs3/a>[] = {l
 L313">v3133/a>        {15, 6, 0x350, 3a href="+code=BUS_ON" class="sref">BUS_ON3/a>, 3a href="+code=BUS_OFF" class="sref">BUS_OFF3/a>},        3spav class="comment">/* defaults for single adapter */3/spaval
 L314">v3143/a>        {11, 5, 0x320, 3a href="+code=BUS_ON" class="sref">BUS_ON3/a>, 3a href="+code=BUS_OFF" class="sref">BUS_OFF3/a>},        3spav class="comment">/* defaults for second adapter */3/spaval
 L315">v3153/a>        {7, 6, 0x350, 3a href="+code=BUS_ON" class="sref">BUS_ON3/a>, 3a href="+code=BUS_OFF" class="sref">BUS_OFF3/a>}, 3spav class="comment">/* My configuraon v (Zaga)     */3/spaval
 L316">v3163/a>        {-1, -1, 0x0, 3a href="+code=BUS_ON" class="sref">BUS_ON3/a>, 3a href="+code=BUS_OFF" class="sref">BUS_OFF3/a>}  3spav class="comment">/* Empty slot                  */3/spaval
 L317">v3173/a>};l
 L318">v3183/a>#define"3a href="+code=NUM_CONFIGS" class="sref">NUM_CONFIGS3/a> 3a href="+code=ARRAY_SIZE" class="sref">ARRAY_SIZE3/a>(3a href="+code=configs" class="sref">configs3/a>)l
 L319">v3193/a>l
 L320">v323spav class="comment">/*3/spaval
 L321">v3213/a>3spav class="comment"> *  The following list defines strings to look for in the BIOS that identnfy3/spaval
 L322">v3223/a>3spav class="comment"> *  it as the WD7000-FASST2 SST BIOS.  I suspect that something should be3/spaval
 L323">v3233/a>3spav class="comment"> *  added for the Fuoure Domain versn v.3/spaval
 L324">v3243/a>3spav class="comment"> */3/spaval
 L325">v3253/a>typ>def"struco 3a href="+code=signaoure" class="sref">signaoure3/a> {l
 L326">v3263/a>        const char *3a href="+code=sig" class="sref">sig3/a>;        3spav class="comment">/* String to look for            */3/spaval
 L327">v3273/a>        unsigned long 3a href="+code=ofs" class="sref">ofs3/a>;      3spav class="comment">/* offset from BIOS base address */3/spaval
 L328">v3283/a>        unsigned 3a href="+code=len" class="sref">len3/a>;           3spav class="comment">/* length of string              */3/spaval
 L329">v3293/a>}"3a href="+code=Signaoure" class="sref">Signaoure3/a>;l
 L330">v33l
 L331">v3313/a>static const 3a href="+code=Signaoure" class="sref">Signaoure3/a> 3a href="+code=signaoures" class="sref">signaoures3/a>[] = {l
 L332">v3323/a>        {3spav class="string">"SSTBIOS"3/spava, 0x0000d, 7} 3spav class="comment">/* "SSTBIOS" @ offset 0x0000d */3/spaval
 L333">v3333/a>};l
 L334">v3343/a>#define"3a href="+code=NUM_SIGNATURES" class="sref">NUM_SIGNATURES3/a> 3a href="+code=ARRAY_SIZE" class="sref">ARRAY_SIZE3/a>(3a href="+code=signaoures" class="sref">signaoures3/a>)l
 L335">v3353/a>l
 L336">v3363/a>l
 L337">v3373/a>3spav class="comment">/*3/spaval
 L338">v3383/a>3spav class="comment"> *  I/O Port Offsets and Bit Definion vs3/spaval
 L339">v3393/a>3spav class="comment"> *  4 addresses are used.  Those not defined here are reserved.3/spaval
 L340">v343spav class="comment"> */3/spaval
 L341">v3413/a>#define"3a href="+code=ASC_STAT" class="sref">ASC_STAT3/a>        0       3spav class="comment">/* Status,  Read          */3/spaval
 L342">v3423/a>#define"3a href="+code=ASC_COMMAND" class="sref">ASC_COMMAND3/a>     0       3spav class="comment">/* Command, Write         */3/spaval
 L343">v3433/a>#define"3a href="+code=ASC_INTR_STAT" class="sref">ASC_INTR_STAT3/a>   1       3spav class="comment">/* Interrupt Status, Read */3/spaval
 L344">v3443/a>#define"3a href="+code=ASC_INTR_ACK" class="sref">ASC_INTR_ACK3/a>    1       3spav class="comment">/* Acknowledge, Write     */3/spaval
 L345">v3453/a>#define"3a href="+code=ASC_CONTROL" class="sref">ASC_CONTROL3/a>     2       3spav class="comment">/* Control, Write         */3/spaval
 L346">v3463/a>l
 L347">v3473/a>3spav class="comment">/*3/spaval
 L348">v3483/a>3spav class="comment"> * ASC Status Port3/spaval
 L349">v3493/a>3spav class="comment"> */3/spaval
 L350">v35#define"3a href="+code=INT_IM" class="sref">INT_IM3/a>          0x80    3spav class="comment">/* Interrupt Image Flag           */3/spaval
 L351">v3513/a>#define"3a href="+code=CMD_RDY" class="sref">CMD_RDY3/a>         0x40    3spav class="comment">/* Command Port Ready             */3/spaval
 L352">v3523/a>#define"3a href="+code=CMD_REJ" class="sref">CMD_REJ3/a>         0x20    3spav class="comment">/* Command Port Byte Rejected     */3/spaval
 L353">v3533/a>#define"3a href="+code=ASC_INIT" class="sref">ASC_INIT3/a>        0x10    3spav class="comment">/* ASC Inionalized Flag           */3/spaval
 L354">v3543/a>#define"3a href="+code=ASC_STATMASK" class="sref">ASC_STATMASK3/a>    0xf0    3spav class="comment">/* The lower 4 Bytes are reserved */3/spaval
 L355">v3553/a>l
 L356">v3563/a>3spav class="comment">/*3/spaval
 L357">v3573/a>3spav class="comment"> *vCOMMAND opcodes3/spaval
 L358">v3583/a>3spav class="comment"> *3/spaval
 L359">v3593/a>3spav class="comment"> *  Unfortunaoely, I have no idea how to properly use some of these commands,3/spaval
 L360">v363spav class="comment"> *  as the OEM manual does not make it clear.  I have not beev able to use3/spaval
 L361">v3613/a>3spav class="comment"> *  enable/disable unsolicited interrupts or the reset commands with any3/spaval
 L362">v3623/a>3spav class="comment"> *  discernible effect whatsoever.  I think they may be related to certain3/spaval
 L363">v3633/a>3spav class="comment"> *  ICB commands, but again, the OEM manual doesn't make that clear.3/spaval
 L364">v3643/a>3spav class="comment"> */3/spaval
 L365">v3653/a>#define"3a href="+code=NO_OP" class="sref">NO_OP3/a>             0     3spav class="comment">/* NO-OP toggles CMD_RDY bit in ASC_STAT  */3/spaval
 L366">v3663/a>#define"3a href="+code=INITIALIZATION" class="sref">INITIALIZATION3/a>    1     3spav class="comment">/* inionalizaon v (10 bytes)              */3/spaval
 L367">v3673/a>#define"3a href="+code=DISABLE_UNS_INTR" class="sref">DISABLE_UNS_INTR3/a>  2     3spav class="comment">/* disable unsolicited interrupts         */3/spaval
 L368">v3683/a>#define"3a href="+code=ENABLE_UNS_INTR" class="sref">ENABLE_UNS_INTR3/a>   3     3spav class="comment">/* enable unsolicited interrupts          */3/spaval
 L369">v3693/a>#define"3a href="+code=INTR_ON_FREE_OGMB" class="sref">INTR_ON_FREE_OGMB3/a> 4     3spav class="comment">/* interrupt  v free OGMB                 */3/spaval
 L370">v37#define"3a href="+code=SOFT_RESET" class="sref">SOFT_RESET3/a>        5     3spav class="comment">/* SCSI bus soft reset                    */3/spavalv37#define"3a href="+code=SOFT_REe" na>    293" "+cox class="line" nam>
 L231">v2313/a>3spav class="comment">/*3/spaval
 L232">v2323/a>3spav class="comment"> *  WD700eSOFT_Rnam>
 L345">v3453/a700eSOFT_Rnam>3/a>#defi3" "+cox class="line" nam>
 L231">v2313hspavpav claCONTROL3/at">/*3/spaval
 L273">v2733/a>3     37/wd7000.c#L353" id
 L353" cl>  RT70" class="line" nam>  RT70" c>#define"3a href=""+code=unchar" class="srefhe hocommentATIOESET3(nE_UNS_INTR3/a>  2     3spav class="comment">/* disable uns class="l3ne" nam>
 L274">v2743/a>3     37i/wd7000.c#L354" id
 L354" cSCAN70" csi/wd7000.c#L335SCAN70" cs>#define"3a hrcf=""+code=unchar" class="srefhe homultipl"comment"> *36">v33633(nE_ 2     3spav class="comment">/* disable uns e"3a hrefe" nam>
 L275">v2753/a>}3l/* disable uns it in ASCef">NUM_IOPORTS3/a> 3a h3ef="+37guraon vs - used by wd7000_deteco3/spaval
 L367">v3673:teco3/spavalwd7000_irq3/3>[] =37#L299" id
 L299" class="line" nam>
 L299">v2993/a>        short 3a hre3a href="d3ivers/scsi/wd7000.c#L2793 id
 37      3spav class="c302" id
 L302" cTR"Cmd"line" nam>
 L30TR"Cmdss="comment">/* String to look for      ref="+cod3=wd7000_irq" class="sref3>wd7037ers/scsi/wd70302" id
 L302" 7000_revisi v      */3/spavalv3013/a>        unsigned 3a href="+code=commentAd
 L35 (= 1E_UNS_INTR3/a> rivers 2     3spav class="comment">/* disable uns000_dma" 3lass="sref">wd7000_dma3/3>[] =380rs/scsi/wd70302" id
 L302" 7000_revisi v      */3/spavalv3433/aID01">v3013/a>        unsigned 3a href="+code=Ass="sref">Mai31">vIDcommenttttttttttttttttt 2     3spav class="comment">/* disable uns0
 L232" cid
 L282" class="line" n3m>
 L381rs/scsi/wd70302" id
 L302" 7000_revisi v      */3/spaval
 L303">v3033/a>      ef="+code=Config" class="suOS defime,L295" cla(sT_Rbecla)tttttttt 2     3spav class="comment">/* disable uns0s/scsi/wd=wd7000_dma" class="sref3>wd70382rs/scsi/wd70302" id
 L302" 7000_revisi v      */3/spaval
 L305">v3053/a>      ef="+code=Config" class="suOS ffefime,Llass="lass="llllllllllass="lass="llllllllltttt 2     3spav class="comment">/* disable uns0class="l3s/scsi/wd7000.c#L285" id3 L285383rs/scsi/wd70302" id
 L302" 7000_revisi v      */3/spaval
 L3rsvd01">v3013/a>     ef="+code=Config" class="RL356">v33333333333333333333333333333333 2     3spav class="comment">/* disable uns0e"3a hrefment"> * The following i3 set 384rs/scsi/wd70302" id
 L302" 7000_revisi v      */3/spaval/* disable uns0it in ASC#L286" id
 L286" class="3ine" 385rs/scsi/wd70302" id
 L302" 7000_revisi v      */3/spavalv3283/a>       gmb" href="+code=Signaoure" class="sref">SignN  OGMBs aoass="sreMB> *max 64, 0,1ass=3 2     3spav class="comment">/* disable uns0(3a href3287">v2873/a>3spav class3"comm38e" nam>
 L237">v2373/a>        3a href="+code=unchar" class="sref">unchar3/5" i">v3283/a>      5" i" href="+code=Signaoure" class="sref">SignN  OGMBs aimb3/a>;lMB> *lllass="lass="llllllllass="lass="lll 2     3spav class="comment">/* disable uns0licited irs/scsi/wd7000.c#L289" i3
 L2838c#L309" id
 L309" clasITR"Cmd"line" nam>
 L3ITR"Cmdss="de=ARRAY_SIZE" class="sref">ARRAY_Ssref">UNI3S3/a>   8l
 L2903>v29static struco 33 href38on v...3/spaval
 L361">v3613/a>3spav C_INTR_ACK3/a>  NIT3/a- als">un336cladiagnosL332" dedefinsrefpav crs/scsi/wd7000.c#L311" id
 L311" class="ls
 L232" c_ON3/a>    64           33spav39" nam>
 L362">v3623/a>3spav crs/scsi/wd7000.c#L311" id
 L311" class="lss/scsi/wd */3/spaval
 L363">v3633/a>3spav if msb3/a>zerol
diagnosL332ptr" cla/scsi/wd7000.c#L311" id
 L311" class="lsclass="l3) */3/spaval
 L364">v3643/a>3spav clDiagnosL33s:teco3/spaval
 L225">v2253/a>0ne"3No
diagnosL332NTRs deccurrc#L226" id
 L226" class="line" nam>
 L226"3class="co3ment"> *  Standard Adapt3r Con3iguraon vs - used by wd7000_/a>0ne"3RAM fof 234" class="line" nam>
 L234">v2343/a>3spav3c#L297" i3
 L297" class="line" nam3
 L293">v2973/a>3spav class="comment"0ne"3FIFO R/W fof c#L226" id
 L226" class="line" nam>
 L226"3clicited i{l
 fof c#L226" id
 L226" class="line" nam>
 L226"3cref">UNI3q" class="sref">irq3/a>;3     39l
 L226"3cm>
 L2903         */3/spaval
 L360">v363sp0i3" >;   " clD-FF fof c#L226" id
 L226" class="line" nam>
 L226"4         4         */3/spaval
 L361">v3613/a>3spav 07e"3ROM checksum2NTRs L226" id
 L226" class="line" nam>
 L226"4 1       4 ON3/a>    64           4href=40" nam>
 L362">v3623/a>3spav clC_INTR_ACKptr" cdrivtwise):teco3/spaval
 L363">v3633/a>3spav 10NNNNNNe"3oass="sref">Mail NNNNNNe/a>OFT_teco3/spaval40" nam>
 L364">v3643/a>3spav cl11NNNNNNe"3imb3/a>;l             0     3spav class="comment">/* NO-OP toggles CMD_RDY4306" id
 4306" class="line" nam>
 4306">40s/scsi/wd7000.c#L366" id
 L3MB69" class="line" namMB69" c href="driC0+code=Signaoure" class="sref">Sign of ICM Sarvic_ possomme/requir>v3563/a>3spav class="comment">/*3/spaval
 4307">40f="drivers/scsi/wd7000.c#L367MB69" class="line" namIMB69" c href="href="+ce=Signaoure" class="sref">Sign1">mb3/a>;l/ 0class="sre3333333333 2     3spav class="comment">/* disable un408">v30834a>l
 L355"MB6="li href="dri3f="+ce=Signaoure" class="sref">Signmas3/a>; /* disable un408">v30834a" class="sref">irq3/a>;4 L3104 class="line" nam>
 L310">v3 3spav4class="co4ment"> * Add here your c4nfigu4aon v...3/spaval4 L311">v3113/a>3spav cla4s="co4ment"> */3/spavalCo4fig3/a> 3a href="+code=configs" class="sref">configs3/a>[] = {lv35Eclass="line" nam>
35Ec href="+cox08="+ce=Signaoure" class="sref">SignC_INTR_ACKEGMB" cs" class="sref">configs3/a>[] = {l/4 defa41i/wd7000.c#L354" id
 L354" cDMA5Eclass="line" namDMA5Ec href="+cox04="+ce=Signaoure" class="sref">SigniobaEGMB" c333333 2     3spav class="comment">/* disable un4>},      4 3spav class="comment">/4 defa41/scsi/wd7000.c#L355" id
 L3531">_scsi/wd7000.c#L33531">_scs href="hr02="+ce=Signaoure" class="sref">Sign31">vRav class="c 2     3spav class="comment">/* disable un4>06" id
 4lass="comment">/* My con4igura41000.c#L346" id
 L346" class="linscsi/wd7000.c#L335"linscs href="dri01="+ce=Signaoure" class="sref">SignsrefRav class="cc 2     3spav class="comment">/* disable un4>07" id
 4lass="comment">/* Empty 4lot  41class="line" nam>
 L348">v3483/a>3spav4 class="s4ef">NUM_CONFIGS3/a> 3a h4ef="+41
 L344>(3a href4"+code=configs" class="s4ef">c41l
 L360">v363spa - mb entAscb nam>
 Lquir>v32 SST INTfac"srey maya hr.c#La>, 3a h65" class="line" nam>
 L365">v3653/a>#def4class="co4ment"> *  The following 4ist d4fines strings to look for in3spa   Ann31B has extra fieldable/diverthe resa hr>, 3a h; mbef">Ma5" class="line" nam>
 L365">v3653/a>#def4c1       4wd7000.c#L322" id
 L322"4class4"line" nam>
 L322">v3223/a>3spavvvv_canle/_ desa i> *36ncesa hr>, 3a h 322umesain, tam>
83/aiguou3/a>5" class="line" nam>
 L365">v3653/a>#def4crivers/s4000.c#L323" id
 L323" cl4ss="l4ne" nam>
 L323">v3233/a>3spav cllllmemory, 4DISABL each,ey may    sass="commen0" css3/spavalssa i> fo298" class="line" nam>
 L298">v2983/a>typ>4lass="lin4" nam>
 L324">v3243/a>3s4av cl4ss="comment"> */3/spaval
 L365">v3653/a>#def4c},      43a href="+code=signaoure4 clas4="sref">signaoure3/a> {l2 SS.c#L-only (non-31">)comment">.lass= nam>
16DISABL each;5" class="line" nam>
 L365">v3653/a>#def4c06" id
 4" nam>
 L326">v3263/a>  4     42guraon vs - used by wd7000_/a>====r hr>,d are alDISABL val
 L65" class="line" nam>
 L365">v3653/a>#def4c07" id
 4spaval - Fatsnows3/a holBs aSs= nam>
kepZATIOL288" istor    by=r /a>am>
 Lnot beev able to use3/spaval
a="ccual d/spaOFT_dclasneedL341" class="line" nam>
 L341">v3413/a>#def4      */34spaval
 L330"4v33l
 L360">v363spa56" "> *  added marksn0" cs e" claa13/aref=sle uhas _fhe hed_3/aomment"not beev able to use3/spavalSignaoure3/a> 3a hr4f="+c43ines strings to look for in3spale/d00ns.e uhas ere shhref=S6ncesa hr31B musuptsaamounv32 SSok pleare not beev able to use3/spaval
 L322">v3223/a>3spavprothem namised00ns.Ss= ncor  spN3/ares0" css3whichthe OEM maa="ccual ot beev able to use3/spaval
 L323">v3233/a>3spav clearli h ( SSdelay_dcunnecpavamis no/ail3/aomment"Sok pleaes)41" class="line" nam>
 L341">v3413/a>#def4ES" class4"sref">NUM_SIGNATURES3/a4 3a h43s="comment"> */3/spaval valsignaoure3/a> {l */3/spato/n3/a>t6" "> *  added41" class="line" nam>
 L341">v3413/a>#def4E06" id
 4 class="line" nam>
 L3374>v33743guraon vs - used by wd7000_/a1" class="line" nam>
 L341">v3413/a>#def4E07" id
 4s/scsi/wd7000.c#L338" id4 L33843>v2973/a>3spav class="comment">Note als">36ncesSs= nam>
le/dlass="perentcomlylass="lv cociual dy maycode=contnot beev able to use3/spaval *  I/O Port Offse4s and4Bit Definion vs3/spaval href3/a>nosneedareskeep3/aL288" it"> *a>;lldexl ot beev able to use3/spaval
 L339">v3393/a>3s4av cl4ss="comment"> *  4 addresses areby=0" c    Apavalm */3/spa beev able to use3/spaval
 L330"4" id
 L340" class="line"4nam>
4L340">v343spav class="commea>diceasneederruptsea>vol L341" class="line" nam>
 L341">v3413/a>#def4ne"3a hre4="+code=ASC_STAT" class=4sref"4ASC_STAT3/a>        0       3spav class="comment">/* Status,  Read     4    */3/s4aval/* xv125ns = 8000ns (BI4       */4/spaval
 L323">v3233/a>3spa0.c#L349" id
 L349" class="line" nam>
 L344us, Read 4/3/spaval */3/spaval * Domaif332pcuaINT/ga00.c#eheml
 L344uZE3/a>(343/spaval/* NO-OP toggles CMD_RDY4       */4/spaval
 L257">=gnss="comment">/* String to look for     4ef="drive4s/scsi/wd7000.c#L348" id4 L34844e" nam>
 L237">v2373/a>        3a href="+code=unchar" class="sref">unchar3/>
 L329">v3293/a>}"3a hrea hrmment">/* String to look for     4eress */34ment"> * ASC Status Port4/spav44	  >        */3/spavalSignsls">31">-style - /* NO-OP toggles CMD_RDY4      */343spav class="comment"> *43/spa4al
 L257">Sgav class="comment">/* to reduce content4ne"3a hre4="+code=INT_IM" class="s4ef">I44class="line" nam>
 L321">v3213/a>3spav4         4*/3/spaval
 L257">=cnss="coB3333333333code=ASC_INIT" class="sref">ASC_INs="line B"cck 5.4.1               v class="comment">/* NO-OP toggles CMD_RDY4         4 */3/spavalv3013/a>        unsigned 3a href="+code=">ASC_INs="line B"cck Opers="sreCL35      v class="comment">/* NO-OP toggles CMD_RDY4       */4 */3/spavalv3293/a>}idlu  href="+code=Signaoure" class="sref">Signop=0,2:Target Id,nop=1:ITR" ctats>v3333333v class="comment">/* NO-OP toggles CMD_RDY4 s, Read 4  */3/spavalcheck>v3563/a>3spav class="comment">/*3/spaval        short 3a href="+code=busInbounv3i/wd7t is 187,naoure3//a>check>v33563/a>3spav class="comment">/*3/spaval        3spav class="comment">/*Logic" iUTR"nN  OGMBBBBBBBBBBBBBBBBBBBBBBB563/a>3spav class="comment">/*3/spaval *vCOMMAND opcodes4/spav45e" nam>
 L237">v2373/a>        3a href="+code=unchar" class="sref">unchar3/cdne" nam>
 L257">cdnv cla12]3/a>      ef="+code=Config" class="31">v">ASC_INB"cck BBBBBBBBBBBBBBBBBBBBBBB563/a>3spav class="comment">/*3/spaval *4/spav45	  >        *vols="l id
 L346" class=   3a href="+code=unchar" class="sref">unchar3/ptr" ce" nam>
 L257">=tr" claref=naoure" class="sref">Sign31">vRa336cK3/a>  NBBBBBBBBBBBBBBBBBBBBBBB563/a>3spav class="comment">/*3/spaval *  Unfortunaoely,4I hav458  >        *vols="l id
 L346" class=   3a href="+code=unchar" class="sref">unchar3/vuehref="+code=uncvue href="+cnaoure" class="sref">SignVendatsUTRque ETRs dCL35      BBBBBBBBBBBB563/a>3spav class="comment">/*3/spavalv3293/a>}max>
 v cla href="ce=naoure" class="sref">Sign oximum D/wd7T is 187 Loure3/ BBBBBBBBBBBB563/a>3spav class="comment">/*3/spavalSign31">vD/wd7B"cck PoT INTBBBBBBBBBBBBBBBBBBB563/a>3spav class="comment">/*3/spavalSignNextv">ASC_INL agaPoT INTBBBBBBBBBBBBBBBBB563/a>3spav class="comment">/*3/spavalSignT is 187 Direct"sreeeeeeeeeeeeeeeeeeeeeeee563/a>3spav class="comment">/*3/spavalv2evisi v      */rL356">v2v cla6href=" unsigned 3a href="+code=31">v">ASC_INDescriptatsB"cck BBBBBBBBBBBB563/a>3spav class="comment">/*3/spavalNO46443/a>        short 3a href="+code=busentAdf3hspawam>
31B eeeeeeeeeeeeeeeeeeeeee563/a>3spav class="comment">/*3/spaval       href="+code=sig" class=c
 L257">=c*c#L355" id
 L3531pn#L291" id
 L291" 1pn# href"+code=unchar" class="srefl31B eeeeeeeeeeeeeeeee563/a>3spav class="comment">/*3/spaval
 L237">v2373/a>     "gne" nam>
 L257">Sgav cl+code=sig" class=gne" nam>
 L257">=gnss=" id
 L292" classnt"> *_SGe" nam>
 L257">nt"> *_SGss="href="c unsigned 3a href="+code=3cuaINT/ga00.c#t"> *rs/scs/a>31B eeeeeeeee563/a>3spav class="comment">/*3/spaval        */3/spavalSign.c#La>, 3a heeeeeeeeeeeeeeeeeeeeeeeeeeeeee563/a>3spav class="comment">/*3/spaval       href="+code=sig" class=cne" nam>
 L257">=cnss="c*c#L355" id
 L35nexte" nam>
 L257">next292"ref="ce=naoure" class="sref">Signrs/st"> s*a>;llbf">bus_on3/a>;           3563/a>3spav class="comment">/*3/spaval
 L257">Scav class="comment">/* to reduce content4et       4            */3/spavalsignaoures34d
 L232" 4lass="line" nam>
 L232">42323/47line" nam>
 L322">v3223/a>30.c#L349" id
 L349" class="line" nam>
 L344ds/scsi/w4ne" nam>
 L273">v2733/a>4     47e" nam>
 L323">v3233/a>3spav clT /a>am>
 L//a>wam>ten=resa="coS.c#L-only think theresbe executL341" class="line" nam>
 L341">v3413/a>#def4 class="l4ne" nam>
 L274">v2743/a>4     47s="comment"> */3/spaval
 L341">v3413/a>#def4 s are re4e" nam>
 L275">v2753/a>}4lsignaoure3/a> {l
 L/res18DISABL,/ressup hreft6" ptr" cdun336cf">INft6"     d/sp1" class="line" nam>
 L341">v3413/a>#def4       */4ef">NUM_IOPORTS3/a> 3a h4ef="+47guraon vs - used by wd7000_av cln execut"srephar.  Ide41" class="line" nam>
 L341">v3413/a>#def4 f="drive4"+code=wd7000_iobase" cl4ss="s47>v2973/a>3spav class="comment1" class="line" nam>
 L341">v3413/a>#def4 ress */34lass="sref">wd7000_irq3/4>[] =47#L299" id
 L299" class="line"av cl.c#L341o00.c#ssrmagssbesidesain,se;clear. L341t6" o as Ief">Mv41tril ot beev able to use3/spaval *  4 addresses arereset .avFsrmagss">BUSke it cleascsi/wd70ss="d
 L359nam>
le/dcsi/wd7ot beev able to use3/spavalv343spav class="comme(le/abmmenget/v cllass="sref">INTR_ON_F ptr" c)>INfmy thpyit cleasOEMot beev able to use3/spavalwd7000_dma3/4>[] =48ines strings to look for in3spadrivers3/spao00.c9nam>
ambiguou3/hspavresss="co41" class="line" nam>
 L341">v3413/a>#def40
 L232" 4id
 L282" class="line" n4m>
 L48ig3/a> 3a href="+code=configs" class="sref">configs3/a>[] = {lCB_OP6="line" nam>
 L355">CB_OP6="li63/a>        a href="+ca href="+code=ENABLE_UNS_INTR"t"sru shhs;llbf"n3/a>ilbf">bus_ons" class="sref">configs3/a>[] = {lCB_OP6OPEN_RBUv3173/a>};lCB_OP6OPEN_RBUv63/a>     href="+ca href="+code=ENABLE_UNS_INopen=recegs3 buffNTBBBBBBBBBBBBBBBBB563/a>3spav class="comment">/*3/spaval * The following i4 set 48/scsi/wd7000.c#L355" id
 L35>CB_OP6RECV_CM>
 L343">v3433/aICB_OP6RECV_CM>63/a>      hre1="+ca href="+code=ENABLE_UNS_INrecegs3 omment"Sn3/a>iTR" ctatsBBBBB563/a>3spav class="comment">/*3/spavalv3433/aICB_OP6RECV_DATA63/a>     hre2="+ca href="+code=ENABLE_UNS_INrecegs3 i/wd7n3/a>iTR" ctatsBBBBBBBB563/a>3spav class="comment">/*3/spavalv2873/a>3spav class4"comm48f="drivers/scsi/wd7000.c#L367CB_OP6RECV_SDATA
 L343">v3433/aICB_OP6RECV_SDATA63/a>    hre3="+ca href="+code=ENABLE_UNS_INrecegs3 i/wd7y mayptr" cdn3/a>iTR"3spav class="comment">/* Tim> that WD7000 sp40licited 4rs/scsi/wd7000.c#L289" i4
 L2848ref="drivers/scsi/wd7000.c#LICB_OP6SEND_DATA
 L343">v3433/aICB_OP6SEND_DATA63/a>     hre4="+ca href="+code=ENABLE_UNS_INsenv3i/wd7y mayptr" cdresiTR" ctatsBpav class="comment">/* Tim> that WD7000 sp40 href="d4S3/a>   8l
 L344">v3443/aICB_OP6SEND_nam>63/a>     hre6="+ca href="+code=ENABLE_UNS_INsenv3omment"Sptr" cdresiTR" ctatsBsBpav class="comment">/* Tim> that WD7000 sp40e"3a hre4>v29static struco 34 href48963/a>        a                              href="+code=ENABLE_UNS_INhre73/a>rL356">v33333333333333333333pav class="comment">/* Tim> that WD7000 sp4st3/a>[3a4href="+code=UNITS" class4"sref49wd7000.c#L351" id
 L351" clasCB_OP6READs="line" nam>
 L354"sCB_OP6READs="li63/a>     hre8="+ca href="+code=ENABLE_UNS_INreadINTR" class="sreISABL 3333333333pav class="comment">/* Tim> that WD7000 sp4s
 L232" 4_ON3/a>    64           43spav493spav class="comment"> *  WDsCB_OP6READs=>
 L343">v3433/aICB_OP6READs=>63/a>       hre9="+ca href="+code=ENABLE_UNS_INreadIass="sref">Mai31">vIDcommenttttttttpav class="comment">/* Tim> that WD7000 sp4ss/scsi/w4 */3/spavalCB_OP6T_RnU="line" nam>
 L355">CB_OP6T_RnU="li63/a>     hreA="+ca href="+code=ENABLE_UNS_INsecllass="sref">INTR_ON_F mas3/tttttpav class="comment">/* Tim> that WD7000 sp4sclass="l4) */3/spavalCB_OP6G_RnU="line" nam>
 L355">CB_OP6G_RnU="li63/a>     hreB="+ca href="+code=ENABLE_UNS_INreadIlass="sref">INTR_ON_F mas3/ttttpav class="comment">/* Tim> that WD7000 sp4se"3a hre4s/scsi/wd7000.c#L296" id4 L29649/scsi/wd7000.c#L355" id
 L35>CB_OP6G_RnREVIS" class="line" nam>CB_OP6G_RnREVIS" c63/a>  hreC="+ca href="+code=ENABLE_UNS_INreadIfirmwam>
 Liversrelevelttttttttpav class="comment">/* Tim> that WD7000 sp4s      */4ment"> *  Standard Adapt4r Con49000.c#L346" id
 L346" class=ICB_OP6DIAGNOSTICsi/wd7000.c#L335ICB_OP6DIAGNOSTICs63/a>   hreD="+ca href="+code=ENABLE_UNS_INexecutL
diagnosL33f">bus_on3/a>;    pav class="comment">/* Tim> that WD7000 sp4sf="drive4
 L297" class="line" nam4
 L2949f="drivers/scsi/wd7000.c#L367CB_OP6T_RnEPARMsi/wd7000.c#L335ICB_OP6T_RnEPARMs63/a>    hreE="+ca href="+code=ENABLE_UNS_INseclexecut"srepare" INT3/on3/a>;    pav class="comment">/* Tim> that WD7000 sp4slicited 4{l    hreF="+ca href="+code=ENABLE_UNS_INreadIexecut"srepare" INT3/on3/a>;   pav class="comment">/* Tim> that WD7000 sp4s href="d4q" class="sref">irq3/a>;4     49class="line" nam>
 L310">v3 3spav4cm>
 L2904         */3/spaval
 L30cbRecvCmdss="comment">/* String to look for     5         5         */3/spavalvmment">/* String to look for     5 1       5 ON3/a>    64           5href=501rs/scsi/wd70302" id
 L302" 7000_revisi v      */3/spavalv3293/a>}IDlu  href="+code=Signaoure" class="sref">SignITR" ctats31">vID/lu >;   pav class="comment">/* Tim> that WD7000 sp5ds  v the5AT-bus when */3/spavalv3293/a>}"3a hrea hr"+code=Signaoure" class="sref">Signomment"SbuffNTBloure3/ BBBpav class="comment">/* Tim> that WD7000 sp5d3  v the5A */3/spaval503rs/scsi/wd70302" id
 L302" 7000_revisi v      */3/spavalSignomment"SbuffNTB  3spav BBBpav class="comment">/* Tim> that WD7000 sp5d4  v the5A/scsi/wd7000.c#L296" id5 href504rs/scsi/wd70302" id
 L302" 7000_revisi v      */3/spaval
 L3rsvd01">[7]3/a>      ef="+code=Config" class="rL356">v333333333333333333pav class="comment">/* Tim> that WD7000 sp5d5  v the5Aent"> *  Standard Adapt5306">50063/a>       vols="l id
 L346" class=   3a href="+code=unchar" class="sref">unchar3/vuehref="+code=uncvue href="+cnaoure" class="sref">Signvendat-uTRque NTRs d L35 3pav class="comment">/* Tim> that WD7000 sp5d6  v the5A L297" class="line" nam5307">50663/a>       vols="l id
 L346" class=   3a href="+code=unchar" class="sref">unchar3/ptr" ce" nam>
 L257">=tr" claref=naoure" class="sref">Signun336cf">(5" i)Sptr" cd333pav class="comment">/* Tim> that WD7000 sp5d7  v the5Alunchar3/phar.vers/scsi/wd700phar. href="naoure" class="sref">Signa hr by>INTR_ON_F hnt"lNTBpav class="comment">/* Tim> that WD7000 sp5d8  v the5A" class="sref">irq3/a>;5 L31050l
 L3IcbRecvCmdss="vmment">/* String to look for     5 9  v the5A        */3/spaval
 L321">v3213/a>3spav5ine" nam>5 L311">v3113/a>3spav cla5s="co51wd700har *3a href="+code=sig" class0cbSend3/a>"line" nam>
 L30cbSend3/a>ss="comment">/* String to look for     5i1       5"+code=Config" class="sr5f">Co511rs/scsi/wd70302" id
 L302" 7000_revisi v      */3/spavalvmment">/* String to look for     5is  v the5si/wd7000.c#L313" id
 L353" cl512rs/scsi/wd70302" id
 L302" 7000_revisi v      */3/spavalv3293/a>}IDlu  href="+code=Signaoure" class="sref">SignTarget 31">vID/lu >;   3333333333333pav class="comment">/* Tim> that WD7000 sp5d3  v the5 3spav class="comment">/5 defa513rs/scsi/wd70302" id
 L302" 7000_revisi v      */3/spaval
 L3s/a>ss="v3013/a>     ef="+code=Config" class="(oass="sr)Sok pleare Sptr" cdISAB =3 2     3spav class="comment">/* disable un5>},      5 3spav class="comment">/5 defa514rs/scsi/wd70302" id
 L302" 7000_revisi v      */3/spaval
 L3rsvd01">[12]3/a>     ef="+code=Config" class="rL356">v3333333333333333333333333333pav class="comment">/* Tim> that WD7000 sp5d5  v the5lass="comment">/* My con5igura51063/a>       vols="l id
 L346" class=   3a href="+code=unchar" class="sref">unchar3/vuehref="+code=uncvue href="+cnaoure" class="sref">Signvendat-uTRque NTRs d L35 33333333333pav class="comment">/* Tim> that WD7000 sp5d6  v the5lass="comment">/* Empty 5lot  51663/a>       vols="l id
 L346" class=   3a href="+code=unchar" class="sref">unchar3/ptr" ce" nam>
 L257">=tr" claref=naoure" class="sref">Signun336cf">(5" i)Sptr" cd3333333333333pav class="comment">/* Tim> that WD7000 sp5d7  v the5ef">NUM_CONFIGS3/a> 3a h5ef="+51	  >        *vols="l id
 L346" class=   3a href="+code=unchar" class="sref">unchar3/phar.vers/scsi/wd700phar. href="naoure" class="sref">Signa hr by>INTR_ON_F hnt"lNTB3333333333pav class="comment">/* Tim> that WD7000 sp5d8  v the5"+code=configs" class="s5ef">c51l"line" nam>
 L3IcbSend3/a>ss="vmment">/* String to look for     5i9  v the5s/scsi/wd7000.c#L321" id5 L32151class="line" nam>
 L321">v3213/a>3spav5class="co5ment"> *  The following 5ist d52wd700har *3a href="+code=sig" class0cbRevLvl"line" nam>
 L30cbRevLvlss="comment">/* String to look for     5c1       5wd7000.c#L322" id
 L322"5class521rs/scsi/wd70302" id
 L302" 7000_revisi v      */3/spavalvmment">/* String to look for     5crivers/s5000.c#L323" id
 L323" cl5ss="l522  >        *vols="l id
 L346" class=   3a href="+code=unchar" class="sref">unchar3/primaryvers/scsi/wd700primaryss="v3013/a> naoure" class="sref">Signprimary
 Liversrelevelt(un336cf")333pav class="comment">/* Tim> that WD7000 sp5lass="lin5" nam>
 L324">v3243/a>3s5av cl52363/a>       vols="l id
 L346" class=   3a href="+code=unchar" class="sref">unchar3/pecondaryvers/scsi/wd700pecondaryss="v3013/ahref="+code=ENABLE_UNS_INsecondary
 Liversrelevelt(un336cf")3pav class="comment">/* Tim> that WD7000 sp5l},      53a href="+code=signaoure5 clas524rs/scsi/wd70302" id
 L302" 7000_revisi v      */3/spaval
 L3rsvd01">[12]3/a>     ef="+code=Config" class="rL356">v3333333333333333333333333333pav class="comment">/* Tim> that WD7000 sp5c06" id
 5" nam>
 L326">v3263/a>  5     52063/a>       vols="l id
 L346" class=   3a href="+code=unchar" class="sref">unchar3/vuehref="+code=uncvue href="+cnaoure" class="sref">Signvendat-uTRque NTRs d L35 33333333333pav class="comment">/* Tim> that WD7000 sp5c07" id
 5spavalunchar3/ptr" ce" nam>
 L257">=tr" claref=naoure" class="sref">Signun336cf">(5" i)Sptr" cd3333333333333pav class="comment">/* Tim> that WD7000 sp5dress */35spavalunchar3/phar.vers/scsi/wd700phar. href="naoure" class="sref">Signa hr by>INTR_ON_F hnt"lNTB3333333333pav class="comment">/* Tim> that WD7000 sp5      */35spaval
 L3IcbRevLvlss="vmment">/* String to look for     5c9  v the5v33l
 L321">v3213/a>3spav5" class="5ref">Signaoure3/a> 3a hr5f="+c53wd700har *3a href="+code=sig" class0cbUnsMask"line" nam>
 L30cbUnsMaskss="co     ef="+code=Config" class="Ief">Mm totally guess"srecl.c#pav class="comment">/* Tim> that WD7000 sp5"1       5a href="drivers/scsi/wd7500.c#531rs/scsi/wd70302" id
 L302" 7000_revisi v      */3/spavalvmment">/* String to look for     5"rivers/s500d */3/spavalunchar3/mask"line" nam>
 L3maskss="[14href="ce=naoure" class="sref">Signmas3/LIZhref="drivers33333pav class="comment">/* Tim> that WD7000 sp5ES" class5"sref">NUM_SIGNATURES3/a5 3a h53s="co#if 0="comment">/* Tim> that WD7000 sp5E},      5 href="+code=signaoures"5class534rs/scsi/wd70302" id
 L302" 7000_revisi v      */3/spaval
 L3rsvd01">[12]3/a>     ef="+code=Config" class="rL356">v333333333333333333pav class="comment">/* Tim> that WD7000 sp5E06" id
 5 class="line" nam>
 L3375>v33753gurao#endif="comment">/* Tim> that WD7000 sp5E07" id
 5s/scsi/wd7000.c#L338" id5 L33853663/a>       vols="l id
 L346" class=   3a href="+code=unchar" class="sref">unchar3/vuehref="+code=uncvue href="+cnaoure" class="sref">Signvendat-uTRque NTRs d L35 3pav class="comment">/* Tim> that WD7000 sp5"ress */35ment"> *  I/O Port Offse5s and53	  >        *vols="l id
 L346" class=   3a href="+code=unchar" class="sref">unchar3/ptr" ce" nam>
 L257">=tr" claref=naoure" class="sref">Signun336cf">(5" i)Sptr" cd333pav class="comment">/* Tim> that WD7000 sp5"     */35" nam>
 L339">v3393/a>3s5av cl538  >        *vols="l id
 L346" class=   3a href="+code=unchar" class="sref">unchar3/phar.vers/scsi/wd700phar. href="naoure" class="sref">Signa hr by>INTR_ON_F hnt"lNTBpav class="comment">/* Tim> that WD7000 sp5">
 L330"5" id
 L340" class="line"5nam>
53d7000.c#L331" id
 L331IcbUnsMask"line" nam>
 L3IcbUnsMaskss="vmment">/* String to look for     5ne"3a hre5="+code=ASC_STAT" class=5sref"54e=signaoures" class="sref">signaoures35    */3/s5aval
 L30cbDiagss="comment">/* String to look for     5       */5/spavalvmment">/* String to look for     5us, Read 5/3/spaval     ef="+code=Config" class="diagnosL33f"har d L35 (0-3)3pav class="comment">/* Tim> that WD7000 sp5uZE3/a>(353/spavalv3293/a>}"3a hrea hr"+code=Signaoure" class="sref">SignbuffNTBloure3/ BBB3333333333pav class="comment">/* Tim> that WD7000 sp5       */5/spavalSignbuffNTB  3spav BBB3333333333pav class="comment">/* Tim> that WD7000 sp5 07" id
 5s/scsi/wd7000.c#L348" id5 L34854e" nam>
 L237">v2373/a>        3a href="+code=unchar" class="sref">unchar3/rsvd"line" nam>
 L3rsvd01">[7]3/a>      ef="+code=Config" class="rL356">v33333333333333333333pav class="comment">/* Tim> that WD7000 sp5 ress */35ment"> * ASC Status Port5/spav54	  >        *vols="l id
 L346" class=   3a href="+code=unchar" class="sref">unchar3/vuehref="+code=uncvue href="+cnaoure" class="sref">Signvendat-uTRque NTRs d L35 333pav class="comment">/* Tim> that WD7000 sp5      */353spav class="comment"> *53/spa548  >        *vols="l id
 L346" class=   3a href="+code=unchar" class="sref">unchar3/ptr" ce" nam>
 L257">=tr" claref=naoure" class="sref">Signun336cf">(5" i)Sptr" cd33333pav class="comment">/* Tim> that WD7000 sp5 >
 L330"5="+code=INT_IM" class="s5ef">I549  >        *vols="l id
 L346" class=   3a href="+code=unchar" class="sref">unchar3/phar.vers/scsi/wd700phar. href="naoure" class="sref">Signa hr by>INTR_ON_F hnt"lNTB33pav class="comment">/* Tim> that WD7000 sp5         5*/3/spaval
 L3IcbDiagss="vmment">/* String to look for     5         5 */3/spaval/* xv125ns = 8000ns (BI5       */5 */3/spavalCB_DIAG_POWERUP"line" nam>
 L3ICB_DIAG_POWERUP  >    0="+cnaoure" class="sref">SignPlass-up"diags only d33333pav class="comment">/* Tim> that WD7000 sp5 s, Read 5  */3/spavalCB_DIAG_WALKINGe" nam>
 L257">>CB_DIAG_WALKING  >    1="+cnaoure" class="sref">Signwalk"sre1ef">MaipuaINTn d33333pav class="comment">/* Tim> that WD7000 sp5 ZE3/a>(35erved */3/spavalCB_DIAG_DMA
 L343">v3433/aICB_DIAG_DMA  >        2="+cnaoure" class="sref">Signioba- systemlmemory"diags pav class="comment">/* Tim> that WD7000 sp5       */5s/scsi/wd7000.c#L357" id5 L35755000.c#L346" id
 L346" class=ICB_DIAG_FULL
 L343">v3433/aICB_DIAG_FULL  >       3="+cnaoure" class="sref">Signdo boe3/1 & 2="+ce=Sig3333pav class="comment">/* Tim> that WD7000 sp5 07" id
 5ment"> *vCOMMAND opcodes5/spav55class="line" nam>
 L348">v3483/a>3spav5eress */353spav class="comment"> *5/spav55	  > har *3a href="+code=sig" class0cbParm">v3283/a>      5"bParm"ss="comment">/* String to look for     5e     */35ment"> *  Unfortunaoely,5I hav558  >        *302" id
 L302" 7000_revisi v      */3/spavalvmment">/* String to look for     5ee"3a hre5/wd7000.c#L360" id
 L3605 clas55ers/scsi/wd70302" id
 L302" 7000_revisi v      */3/spaval
 L3rsvd1 href="+code=Signaoure" class="sref">SignrL356">v333333333333333333pav class="comment">/* Tim> that WD7000 sp5rs/scsi/w57000.c#L361" id
 L361" c5ass="560rs/scsi/wd70302" id
 L302" 7000_revisi v      */3/spavalv3293/a>}"3a hrea hr"+code=Signaoure" class="sref">Signparm"nbuffNTBloure3/ BBB33pav class="comment">/* Tim> that WD7000 sp5r        500.c#L362" id
 L362" cla5s="li561rs/scsi/wd70302" id
 L302" 7000_revisi v      */3/spavalSignparm"nbuffNTB  3spav BBB33pav class="comment">/* Tim> that WD7000 sp5r      */57000.c#L363" id
 L363" c5ass="562rs/scsi/wd70302" id
 L302" 7000_revisi v      */3/spavalSigna>dex (MSB-LSB)33333333333pav class="comment">/* Tim> that WD7000 sp5rs, Read 500.c#L364" id
 L364" cla5s="li563rs/scsi/wd70302" id
 L302" 7000_revisi v      */3/spavalv333333333333333333pav class="comment">/* Tim> that WD7000 sp5/s are re5="+code=NO_OP" class="sr5f">NO56443/a>       vols="l id
 L346" class=   3a href="+code=unchar" class="sref">unchar3/vuehref="+code=uncvue href="+cnaoure" class="sref">Signvendat-uTRque NTRs d L35 3pav class="comment">/* Tim> that WD7000 sp5/      */5_STAT  */3/spaval       vols="l id
 L346" class=   3a href="+code=unchar" class="sref">unchar3/ptr" ce" nam>
 L257">=tr" claref=naoure" class="sref">Signun336cf">(5" i)Sptr" cd333pav class="comment">/* Tim> that WD7000 sp5/f="drive5s)              */3/spav5l       vols="l id
 L346" class=   3a href="+code=unchar" class="sref">unchar3/phar.vers/scsi/wd700phar. href="naoure" class="sref">Signa hr by>INTR_ON_F hnt"lNTBpav class="comment">/* Tim> that WD7000 sp5/ress */35nterrupts         */3/sp5val .c#L331" id
 L331IcbParm">v3283/a>      I"bParm"ss="vmment">/* String to look for     5/     */35errupts          */3/spa5al
 L310">v3 3spav5/e"3a hre5MB                 */3/s5aval<56"line 3spav class="c302" id
 L302" ccbAnyvers/scsi/wd700ccbAnyss="comment">/* String to look for     5et       5            */3/spavalvmment">/* String to look for     5d
 L232" 5lass="line" nam>
 L232">52323/571rs/scsi/wd70302" id
 L302" 7000_revisi v      */3/spavalSignrs/mat Domaif332i/wd733333pav class="comment">/* Tim> that WD7000 sp5ds/scsi/w5ne" nam>
 L273">v2733/a>5     572  >        *vols="l id
 L346" class=   3a href="+code=unchar" class="sref">unchar3/vuehref="+code=uncvue href="+cnaoure" class="sref">Signvendat-uTRque NTRs d L35 3pav class="comment">/* Tim> that WD7000 sp5 class="l5ne" nam>
 L274">v2743/a>5     57363/a>       vols="l id
 L346" class=   3a href="+code=unchar" class="sref">unchar3/ptr" ce" nam>
 L257">=tr" claref=naoure" class="sref">Signun336cf">(5" i)Sptr" cd333pav class="comment">/* Tim> that WD7000 sp5 s are re5e" nam>
 L275">v2753/a>}5l       vols="l id
 L346" class=   3a href="+code=unchar" class="sref">unchar3/phar.vers/scsi/wd700phar. href="naoure" class="sref">Signa hr by>INTR_ON_F hnt"lNTBpav class="comment">/* Tim> that WD7000 sp5       */5ef">NUM_IOPORTS3/a> 3a h5ef="+57gurao.c#L331" id
 L331IcbAnyvers/scsi/wd700IcbAnyss="vmment">/* String to look for     5df="drive5"+code=wd7000_iobase" cl5ss="s57class="line" nam>
 L348">v3483/a>3spav5 ress */35lass="sref">wd7000_irq3/5>[] =57	  > har *3a uTRonc302" id
 L302" ccbvers/scsi/wd700ccbss="comment">/* String to look for     5e     */35ivers/scsi/wd7000.c#L2795 id
 578  >        *302" id
 L302" 7000_revisi v      */3/spavalv33333333333333ef="+code=Config" class="Is="d
 L35333333333333333333333pav class="comment">/* Tim> that WD7000 sp5 e"3a hre5=wd7000_irq" class="sref5>wd7057ers/scsi/wd70302" id
 L302" IcbRecvCmd"line" nam>
 L3IcbRecvCmdss=" href="drivers/srecv_cmd"line" nam>
 L3recv_cmd href="+cnaoure" class="sref">Signssrmag3">BUrecegs3 omment"S3333pav class="comment">/* Tim> that WD7000 sp5000_dma" 5lass="sref">wd7000_dma3/5>[] =580rs/scsi/wd70302" id
 L302" IcbSend3/a>"line" nam>
 L3IcbSend3/a>ss="="sref">unchar3/pend_s/a>"line" nam>
 L3send_s/a> href="naoure" class="sref">Signssrmag3">BUsenv3ptr" cd33333333pav class="comment">/* Tim> that WD7000 sp50
 L232" 5id
 L282" class="line" n5m>
 L581rs/scsi/wd70302" id
 L302" IcbRevLvl"line" nam>
 L3IcbRevLvlss=" href="drivers/srev_lvl"line" nam>
 L3rev_lvl01">v333333naoure" class="sref">Signssrmag3">BUget  Liversrelevelttpav class="comment">/* Tim> that WD7000 sp50s/scsi/w5=wd7000_dma" class="sref5>wd70582rs/scsi/wd70302" id
 L302" IcbDiag"line" nam>
 L3IcbDiagss=" href="drivers/siiag"line" nam>
 L3diagss="v33333333333ef="+code=Config" class="ssrmag3">BUexecutL
diagnosL33f"pav class="comment">/* Tim> that WD7000 sp50class="l5s/scsi/wd7000.c#L285" id5 L285583rs/scsi/wd70302" id
 L302" IcbParm">v3283/a>      I"bParm"ss="0302" id
 L302" eparm">v3283/a>      eparm"ss="v33333333naoure" class="sref">Signssrmag3">BUget/seclexecnparm"n"pav class="comment">/* Tim> that WD7000 sp50s are re5ment"> * The following i5 set 584rs/scsi/wd70302" id
 L302" IcbAnyvers/scsi/wd700IcbAnyss="c302" id
 L302" ccbvers/scsi/wd700ccbss="v3333333333333naoure" class="sref">Signgener332ssrmag33333333333333333pav class="comment">/* Tim> that WD7000 sp50      */5#L286" id
 L286" class="5ine" 585rs/scsi/wd70302" id
 L302" 7000_revisi v      */3/spaval/* String to look for     50f="drive5287">v2873/a>3spav class5"comm58f="dr.c#L331" id
 L331Icbvers/scsi/wd700Icbss="vmment">/* String to look for     50licited 5rs/scsi/wd7000.c#L289" i5
 L2858ref="mment">/* String to look for     50     */35S3/a>   8l/* String to look for     50e"3a hre5>v29static struco 35 href58963/aptr"332spavc*c#L355" id
 L35k for vers/scsi/wd700k for ss="vmment">/* String to look for     5st3/a>[3a5href="+code=UNITS" class5"sref59wd700c#L355" id
 L35module_pare"vers/scsi/wd700module_pare"d700(c#L355" id
 L35k for vers/scsi/wd700k for ss=", #L331" id
 L331spavp>v3283/a>      spavpss=", 0)vmment">/* String to look for     5s
 L232" 5_ON3/a>    64           53spav593spav endif="comment">/* Tim> that WD7000 sp5ss/scsi/w5 */3/spaval/* Tim> that WD7000 sp5sclass="l5) */3/spaval */3/spaval
 L345se"3a hre5s/scsi/wd7000.c#L296" id5 L29659"sref">signaoure3/a> {l
 L/31B 0         pool41" class="line" nam>
 L341">v3413/a>#def5s      */5ment"> *  Standard Adapt5r Con59guraon vs - used by wd7000_/a1" class="line" nam>
 L341">v3413/a>#def5sf="drive5
 L297" class="line" nam5
 L2959>v2973/a>3spav class="comment"> claSs= ndepavrhr cl.c#L341shvrhr by>alln.c#La>, 3a hs; clnce,scs/a1" class="line" nam>
 L341">v3413/a>#def5slicited 5{lnotnpartit cleas"ss="srv0        41" class="line" nam>
 L341">v3413/a>#def5s     */35q" class="sref">irq3/a>;5     59s="comment"> *  4 addresses aav class="comment">/* Tim> that WD7000 sp5cm>
 L2905         */3/spaval
 L257">Scav cl="sref">unchar3/pcbce" nam>
 L257">=cbcss="[#L331" id
 L331MAX_Ss=si/wd7000.c#L335MAX_Ss=sss="hrmment">/* String to look for     6         6         */3/spaval
 L257">Scav cl=*c#L355" id
 L35=cbfre.vers/scsi/wd700=cbfre.ss="v333333333333naoure" class="sref">Signsre.#t"> *33333333pav class="comment">/* Tim> that WD7000 sp6 1       6 ON3/a>    64           6href=601rs/sptr"332in"c302" id
 L302" sre.pcbce" nam>
 L257">sre.pcbcv cl== #L331" id
 L331MAX_Ss=si/wd7000.c#L335MAX_Ss=sss="f=naoure" class="sref">Signsre.#t"> *cou INTBpav class="comment">/* Tim> that WD7000 sp6 2       6 */3/spaval"line" nam>
 L3spin"cck_>v cl="sref">unchar3/pcbpool_"cckvers/scsi/wd700=cbpool_"cckss="f=naoure" class="sref">Signguardsft6" pcbnsre.#t"> *anv3omu IBpav class="comment">/* Tim> that WD7000 sp6 3       6  */3/spaval603rs/s="comment">/* Tim> that WD7000 sp6 4       6 /scsi/wd7000.c#L296" id6 href60"sref">signaoure3/a> {l
 L346d5  v the6Aent"> *  Standard Adapt6306">60guraon vs - used by wd7000_av cENDit ci/wd/depavrs="srs -d L35 ss="cos41" class="line" nam>
 L341">v3413/a>#def6d6  v the6A L297" class="line" nam6307">60>v2973/a>3spav class="commentav class="comment">/* Tim> that WD7000 sp6 7  v the6Alunchar3/__NTR"vers/scsi/wd700__NTR"ss="="sref">unchar3/petup_NTRs "line" nam>
 L3setup_NTRs d700(spavc*c#L355" id
 L35mesg"line" nam>
 L3mesgss=", in"c*c#L355" id
 L35in"">v3283/a>      5n""ss=")="comment">/* Tim> that WD7000 sp6 8  v the6A" class="sref">irq3/a>;6 L31060l/* String to look for     6 9  v the6A        */3/spavalv3283/a>      5n""ss="[0] == 3)="comment">/* Tim> that WD7000 sp6ine" nam>6 L311">v3113/a>3spav cla6s="co610rs/scsi/wd70csi/wd70302" id
 L302" pr5n"kvers/scsi/wd700pr5n"kd700(c#L355" id
 L35KERN_ERRvers/scsi/wd700KERN_ERRss="="/a>3spav cla0  ing">" WD700_setup: \" WD700=%d,%d,0x%x\" -> %s\n"v class, #L331" id
 L331in"">v3283/a>      5n""ss="[1], #L331" id
 L331in"">v3283/a>      5n""ss="[2], #L331" id
 L331in"">v3283/a>      5n""ss="[3], #L331" id
 L331mesg"line" nam>
 L3mesgss=")vmment">/* String to look for     6i1       6"+code=Config" class="sr6f">Co611rs/scsi/wd70else0if (c#L355" id
 L35in"">v3283/a>      5n""ss="[0] == 4)="comment">/* Tim> that WD7000 sp6i2       6si/wd7000.c#L313" id
 L363" cl612rs/scsi/wd70csi/wd70302" id
 L302" pr5n"kvers/scsi/wd700pr5n"kd700(c#L355" id
 L35KERN_ERRvers/scsi/wd700KERN_ERRss="="/a>3spav cla0  ing">" WD700_setup: \" WD700=%d,%d,0x%x,%d\" -> %s\n"v class, #L331" id
 L331in"">v3283/a>      5n""ss="[1], #L331" id
 L331in"">v3283/a>      5n""ss="[2], #L331" id
 L331in"">v3283/a>      5n""ss="[3], #L331" id
 L331in"">v3283/a>      5n""ss="[4], #L331" id
 L331mesg"line" nam>
 L3mesgss=")vmment">/* String to look for     6i3       6 3spav class="comment">/6 defa613rs/scsi/wd70elsemment">/* String to look for     6i4       6 3spav class="comment">/6 defa614rs/scsi/wd70csi/wd70302" id
 L302" pr5n"kvers/scsi/wd700pr5n"kd700(c#L355" id
 L35KERN_ERRvers/scsi/wd700KERN_ERRss="="/a>3spav cla0  ing">" WD700_setup: \" WD700=%d,%d,0x%x,%d,%d\" -> %s\n"v class, #L331" id
 L331in"">v3283/a>      5n""ss="[1], #L331" id
 L331in"">v3283/a>      5n""ss="[2], #L331" id
 L331in"">v3283/a>      5n""ss="[3], #L331" id
 L331in"">v3283/a>      5n""ss="[4], #L331" id
 L331in"">v3283/a>      5n""ss="[5], #L331" id
 L331mesg"line" nam>
 L3mesgss=")vmment">/* String to look for     6i5  v the6lass="comment">/* My con6igura61063/a}mment">/* String to look for     6i6  v the6lass="comment">/* Empty 6lot  61class="line" nam>
 L348">v3483/a>3spav6d7  v the6ef">NUM_CONFIGS3/a> 3a h6ef="+61ref="mment">/* String to look for     6d8  v the6"+code=configs" class="s6ef">c61s="comment"> *  4 addresses0.c#L349" id
 L349" class="line" nam>
 L346i9  v the6s/scsi/wd7000.c#L321" id6 L32161340">v343spav class="commNote: You cMai"omment"S00.c"41" class="line" nam>
 L341">v3413/a>#def6class="co6ment"> *  The following 6ist d62ines strings to look for in3sp clasyntax is:1" class="line" nam>
 L341">v3413/a>#def6c1       6wd7000.c#L322" id
 L322"6class62ig3/a> 3a href="+code=configs1" class="line" nam>
 L341">v3413/a>#def6c2       6000.c#L323" id
 L323" cl6ss="l62e" nam>
 L323">v3233/a>3spav cllll WD700=<IRQ>,<DMA>,<IO>[,<BUS_ON>[,<BUS_OFF>]]1" class="line" nam>
 L341">v3413/a>#def6c3       6" nam>
 L324">v3243/a>3s6av cl62s="comment"> */3/spaval
 L341">v3413/a>#def6c4       63a href="+code=signaoure6 clas62"sref">signaoure3/a> {l
 L341">v3413/a>#def6c06" id
 6" nam>
 L326">v3263/a>  6     62guraon vs - used by wd7000_av L3418/a>nss">BUBUS_ON*anv31875nss">BUBUS_OFF41" class="line" nam>
 L341">v3413/a>#def6c6  v the6spaval
 L341">v3413/a>#def6c7  v the6spaval
 L341">v3413/a>#def6c8  v the6spaval *  4 addresses ad7 class="line" nam>
 L341">v3413/a>#def6c9  v the6v33lv343spav class="commwill configu341t6" am>
 Ls">BUa WD-3/a> controllsr63 class="line" nam>
 L341">v3413/a>#def6" class="6ref">Signaoure3/a> 3a hr6f="+c63ines strings to look for in3spus"sreIRQ 157y mayaniobachannel 6, at IO bar.   3spav 0x3/w41" class="line" nam>
 L341">v3413/a>#def6"1       6a href="drivers/scsi/wd7600.c#63ig3/a> 3a href="+code=configs" class="sref">configs3/a>[] = {lunchar3/ WD700_setupvers/scsi/wd700k for _setupd700(spavc*c#L355" id
 L35stivers/scsi/wd700stiv cl)="comment">/* Tim> that WD7000 sp6ES" class6"sref">NUM_SIGNATURES3/a6 3a h63s="coomment">/* String to look for     6E},      6 href="+code=signaoures"6class634rs/scsi/wd70ptr"332shhref"sref">unchar3/ WD700_card_nu"vers/scsi/wd700 WD700_card_nu"ss="v333naoure" class="sref">Sign.bav will zeroscs/ags" class="sref">configs3/a>[] = {l
 L3376>v337635rs/scsi/wd70shhref"sref">unchar3/i>v3283/a>      5ss="vmment">/* String to look for     6E07" id
 6s/scsi/wd7000.c#L338" id6 L33863663/a>       in"c302" id
 L302" in"">v3283/a>      5n""ss="[6hrmment">/* String to look for     6"ress */36ment"> *  I/O Port Offse6s and63ref="mment">/* String to look for     6"     */36" nam>
 L339">v3393/a>3s6av cl638  >        *(void)c302" id
 L302" get_op="srs>v3283/a>      get_op="srsd700(c#L355" id
 L35stivers/scsi/wd700stiv cl, #L331" id
 L331ARRAY_SIZEvers/scsi/wd700ARRAY_SIZEd700(c#L355" id
 L35in"">v3283/a>      5n""ss="), #L331" id
 L331in"">v3283/a>      5n""ss=")vmment">/* String to look for     6">
 L330"6" id
 L340" class="line"6nam>
63class="line" nam>
 L321">v3213/a>3spav6ne"3a hre6="+code=ASC_STAT" class=6sref"640rs/scsi/wd70if (c#L355" id
 L35 WD700_card_nu"vers/scsi/wd700 WD700_card_nu"ss=" >= #L331" id
 L331NUM_CONFIGsi/wd7000.c#L335NUM_CONFIGsss=")comment">/* String to look for     6    */3/s6aval3spav cla0  ing">"%s: Tooadriy \" WD700=\" configu3s="srs iop"v class="/a>3spav cla0  ing">"omment"S00.c!\n"v class, #L331" id
 L331__func__vers/scsi/wd700__func__ss=")vmment">/* String to look for     6       */6/spaval/* String to look for     6 S" class6/3/spaval/* String to look for     6uZE3/a>(363/spaval/* String to look for     6u06" id
 6/spavalv3283/a>      5n""ss="[0] < 3) || (c#L355" id
 L35in"">v3283/a>      5n""ss="[0] > 5))comment">/* String to look for     6 07" id
 6s/scsi/wd7000.c#L348" id6 L34864e" nam>
 L237csi/wd70302" id
 L302" pr5n"kvers/scsi/wd700pr5n"kd700(c#L355" id
 L35KERN_ERRvers/scsi/wd700KERN_ERRss="="/a>3spav cla0  ing">"%s: ETRs diopomment"S00.c! p"v class="/a>3spav cla0  ing">"Usage:l WD700=<IRQ>,<DMA>,IO>[,<BUS_ON>"v class="/a>3spav cla0  ing">"[,<BUS_OFF>]]\n"v class, #L331" id
 L331__func__vers/scsi/wd700__func__ss=")vmment">/* String to look for     6 ress */36ment"> * ASC Status Port6/spav64	  >        *}0else0omment">/* String to look for     6      */363spav class="comment"> *63/spa648  >        *********">BU(c#L355" id
 L35i>v3283/a>      5ss=" = 0vf"sref">unchar3/i>v3283/a>      5ss=" < #L331" id
 L331NUM_IRQsi/wd7000.c#L335NUM_IRQsss="f=nsref">unchar3/i>v3283/a>      5ss="++)="comment">/* Tim> that WD7000 sp6 >
 L330"6="+code=INT_IM" class="s6ef">I64963/a>        a              if (c#L355" id
 L35in"">v3283/a>      5n""ss="[1] == c#L355" id
 L35 WD700_irqvers/scsi/wd700 WD700_irqss="[#L331" id
 L331i>v3283/a>      5ss="])="comment">/* Tim> that WD7000 sp6         6*/3/spaval/* String to look for     6         6 */3/spaval/* xv125ns = 8000ns (BI6       */6 */3/spavalv3283/a>      5ss=" == #L331" id
 L331NUM_IRQsi/wd7000.c#L335NUM_IRQsss=")comment">/* String to look for     6 s, Read 6  */3/spavalunchar3/petup_NTRs "line" nam>
 L3setup_NTRs d700("/a>3spav cla0  ing">"invalideIRQ."v class, #L331" id
 L331in"">v3283/a>      5n""ss=")vmment">/* String to look for     6 ZE3/a>(36erved */3/spaval/* String to look for     6       */6s/scsi/wd7000.c#L357" id6 L357655rs/scsi/wd70csi/wd70}0elsemment">/* String to look for     6 07" id
 6ment"> *vCOMMAND opcodes6/spav65e" nam>
 L237csi/wd7000000000"sref">unchar3/config">v3283/a>      config"ss="[#L331" id
 L331 WD700_card_nu"vers/scsi/wd700 WD700_card_nu"ss="].#L331" id
 L331irqvers/scsi/wd700irqss="== #L331" id
 L331in"">v3283/a>      5n""ss="[1]vmment">/* String to look for     6 ress */363spav class="comment"> *6/spav65ref="mment">/* String to look for     6e     */36ment"> *  Unfortunaoely,6I hav658  >        *********">BU(c#L355" id
 L35i>v3283/a>      5ss=" = 0vf"sref">unchar3/i>v3283/a>      5ss=" < #L331" id
 L331NUM_DMAsi/wd7000.c#L335NUM_DMAsss="f=nsref">unchar3/i>v3283/a>      5ss="++)="comment">/* Tim> that WD7000 sp6ee"3a hre6/wd7000.c#L360" id
 L3606 clas65963/a>        a              if (c#L355" id
 L35in"">v3283/a>      5n""ss="[2] == c#L355" id
 L35 WD700_dmdevisi v      */ WD700_dmdss="[#L331" id
 L331i>v3283/a>      5ss="])="comment">/* Tim> that WD7000 sp6rs/scsi/w67000.c#L361" id
 L361" c6ass="660rs/scsi/wd70csi/wd700000000000000000breakvmment">/* String to look for     6r        600.c#L362" id
 L362" cla6s="li66lass="comment">/* xv125ns = 8000ns (BI6r      */67000.c#L363" id
 L363" c6ass="662rs/scsi/wd70csi/wd70if (c#L355" id
 L35i>v3283/a>      5ss=" == #L331" id
 L331NUM_DMAsi/wd7000.c#L335NUM_DMAsss=")comment">/* String to look for     6rs, Read 600.c#L364" id
 L364" cla6s="li663rs/scsi/wd70csi/wd7000000000"sref">unchar3/petup_NTRs "line" nam>
 L3setup_NTRs d700("/a>3spav cla0  ing">"invalideiobachannel."v class, #L331" id
 L331in"">v3283/a>      5n""ss=")vmment">/* String to look for     6/s are re6="+code=NO_OP" class="sr6f">NO664rs/scsi/wd70csi/wd7000000000un336c 0vmment">/* String to look for     6/      */6_STAT  */3/spaval/* String to look for     6/f="drive6s)              */3/spav6l
 L237csi/wd7000000000"sref">unchar3/config">v3283/a>      config"ss="[#L331" id
 L331 WD700_card_nu"vers/scsi/wd700 WD700_card_nu"ss="].#L331" id
 L331dmdevisi v      */dmdss="== #L331" id
 L331in"">v3283/a>      5n""ss="[2]vmment">/* String to look for     6/ress */36nterrupts         */3/sp6val/* String to look for     6/     */36errupts          */3/spa6al        *********">BU(c#L355" id
 L35i>v3283/a>      5ss=" = 0vf"sref">unchar3/i>v3283/a>      5ss=" < #L331" id
 L331NUM_IOPORTsi/wd7000.c#L335NUM_IOPORTsss="f=nsref">unchar3/i>v3283/a>      5ss="++)="comment">/* Tim> that WD7000 sp6/e"3a hre6MB                 */3/s6aval<66963/a>        a              if (c#L355" id
 L35in"">v3283/a>      5n""ss="[3] == c#L355" id
 L35 WD700_iobar.vers/scsi/wd700 WD700_iobar.ss="[#L331" id
 L331i>v3283/a>      5ss="])="comment">/* Tim> that WD7000 sp6et       6            */3/spaval/* String to look for     6d
 L232" 6lass="line" nam>
 L232">62323/67lass="comment">/* xv125ns = 8000ns (BI6ds/scsi/w6ne" nam>
 L273">v2733/a>6     672rs/scsi/wd70csi/wd70if (c#L355" id
 L35i>v3283/a>      5ss=" == #L331" id
 L331NUM_IOPORTsi/wd7000.c#L335NUM_IOPORTsss=")comment">/* String to look for     6 class="l6ne" nam>
 L274">v2743/a>6     673rs/scsi/wd70csi/wd7000000000"sref">unchar3/petup_NTRs "line" nam>
 L3setup_NTRs d700("/a>3spav cla0  ing">"invalideI/O bar.   3spav."v class, #L331" id
 L331in"">v3283/a>      5n""ss=")vmment">/* String to look for     6 s are re6e" nam>
 L275">v2753/a>}6l/* String to look for     6       */6ef">NUM_IOPORTS3/a> 3a h6ef="+675rs/scsi/wd70csi/wd70}0elsemment">/* String to look for     6df="drive6"+code=wd7000_iobase" cl6ss="s67e" nam>
 L237csi/wd7000000000"sref">unchar3/config">v3283/a>      config"ss="[#L331" id
 L331 WD700_card_nu"vers/scsi/wd700 WD700_card_nu"ss="].#L331" id
 L331iobar.vers/scsi/wd700iobar.ss="== #L331" id
 L331in"">v3283/a>      5n""ss="[3]vmment">/* String to look for     6 ress */36lass="sref">wd7000_irq3/6>[] =67ref="mment">/* String to look for     6e     */36ivers/scsi/wd7000.c#L2796 id
 678  >        *********if (c#L355" id
 L35in"">v3283/a>      5n""ss="[0] > 3)comment">/* String to look for     6 e"3a hre6=wd7000_irq" class="sref6>wd7067963/a>        a              if ((c#L355" id
 L35in"">v3283/a>      5n""ss="[4] < 500) || (c#L355" id
 L35in"">v3283/a>      5n""ss="[4] > 31875))comment">/* String to look for     6000_dma" 6lass="sref">wd7000_dma3/6>[] =680rs/scsi/wd70csi/wd700000000000000000"sref">unchar3/petup_NTRs "line" nam>
 L3setup_NTRs d700("/a>3spav cla0  ing">"BUS_ON*value /a>outit crange (500"v class="/a>3spav cla0  ing">" to 31875pnanoseconds)!"v class, #L331" id
 L331in"">v3283/a>      5n""ss=")vmment">/* String to look for     60
 L232" 6id
 L282" class="line" n6m>
 L681rs/scsi/wd70csi/wd70csi/wd7000000000"sref">unchar3/config">v3283/a>      config"ss="[#L331" id
 L331 WD700_card_nu"vers/scsi/wd700 WD700_card_nu"ss="].#L331" id
 L331bus_o L329">v3293/a>}bus_o ss="== #L331" id
 L331BUS_ONL329">v3293/a>}BUS_ONss="vmment">/* String to look for     60s/scsi/w6=wd7000_dma" class="sref6>wd70682rs/scsi/wd70csi/wd7000000000}0elsemment">/* String to look for     60class="l6s/scsi/wd7000.c#L285" id6 L285683rs/scsi/wd70csi/wd700000000000000000"sref">unchar3/config">v3283/a>      config"ss="[#L331" id
 L331 WD700_card_nu"vers/scsi/wd700 WD700_card_nu"ss="].#L331" id
 L331bus_o L329">v3293/a>}bus_o ss="== #L331" id
 L331in"">v3283/a>      5n""ss="[4] / 125vmment">/* String to look for     60s are re6ment"> * The following i6 set 684rs/scsi/wd70csi/wd70}0elsemment">/* String to look for     60      */6#L286" id
 L286" class="6ine" 685rs/scsi/wd70csi/wd7000000000"sref">unchar3/config">v3283/a>      config"ss="[#L331" id
 L331 WD700_card_nu"vers/scsi/wd700 WD700_card_nu"ss="].#L331" id
 L331bus_o L329">v3293/a>}bus_o ss="== #L331" id
 L331BUS_ONL329">v3293/a>}BUS_ONss="vmment">/* String to look for     60f="drive6287">v2873/a>3spav class6"comm68class="line" nam>
 L348">v3483/a>3spav60licited 6rs/scsi/wd7000.c#L289" i6
 L28687  >        *********if (c#L355" id
 L35in"">v3283/a>      5n""ss="[0] > 4)comment">/* String to look for     60     */36S3/a>   8lv3283/a>      5n""ss="[5] < 500) || (c#L355" id
 L35in"">v3283/a>      5n""ss="[5] > 31875))comment">/* String to look for     60e"3a hre6>v29static struco 36 href68963/a>        a              00000000"sref">unchar3/petup_NTRs "line" nam>
 L3setup_NTRs d700("/a>3spav cla0  ing">"BUS_OFF*value /a>outit crange (500"v class="/a>3spav cla0  ing">" to 31875pnanoseconds)!"v class, #L331" id
 L331in"">v3283/a>      5n""ss=")vmment">/* String to look for     6st3/a>[3a6href="+code=UNITS" class6"sref690rs/scsi/wd70csi/wd700000000000000000"sref">unchar3/config">v3283/a>      config"ss="[#L331" id
 L331 WD700_card_nu"vers/scsi/wd700 WD700_card_nu"ss="].#L331" id
 L331bus_offL329">v3293/a>}bus_offss="== #L331" id
 L331BUS_OFFL329">v3293/a>}BUS_OFFss="vmment">/* String to look for     6s
 L232" 6_ON3/a>    64           63spav691rs/scsi/wd70csi/wd70csi/wd70}0elsemment">/* String to look for     6ss/scsi/w6 */3/spavalunchar3/config">v3283/a>      config"ss="[#L331" id
 L331 WD700_card_nu"vers/scsi/wd700 WD700_card_nu"ss="].#L331" id
 L331bus_offL329">v3293/a>}bus_offss="== #L331" id
 L331in"">v3283/a>      5n""ss="[5] / 125vmment">/* String to look for     6sclass="l6) */3/spaval/* String to look for     6ss are re6s/scsi/wd7000.c#L296" id6 L296694rs/scsi/wd70csi/wd7000000000"sref">unchar3/config">v3283/a>      config"ss="[#L331" id
 L331 WD700_card_nu"vers/scsi/wd700 WD700_card_nu"ss="].#L331" id
 L331bus_offL329">v3293/a>}bus_offss="== #L331" id
 L331BUS_OFFL329">v3293/a>}BUS_OFFss="vmment">/* String to look for     6s      */6ment"> *  Standard Adapt6r Con69guraomment">/* String to look for     6sf="drive6
 L297" class="line" nam6
 L2969e" nam>
 L237csi/wd70if (c#L355" id
 L35 WD700_card_nu"vers/scsi/wd700 WD700_card_nu"ss=")comment">/* String to look for     6slicited 6{lBU(c#L355" id
 L35i>v3283/a>      5ss=" = 0vf"sref">unchar3/i>v3283/a>      5ss=" < (c#L355" id
 L35 WD700_card_nu"vers/scsi/wd700 WD700_card_nu"ss=" - 1)f=nsref">unchar3/i>v3283/a>      5ss="++)comment">/* String to look for     6s     */36q" class="sref">irq3/a>;6     698  >        *****************csi/wd70in"c302" id
 L302" j>v3283/a>      jss="== #L331" id
 L331i>v3283/a>      5ss=" + 1vmment">/* String to look for     6se"3a hre6         */3/spaval
 L321">v3213/a>3spav7         7         */3/spavalBU(f=nsref">unchar3/j>v3283/a>      jss="=< #L331" id
 L331 WD700_card_nu"vers/scsi/wd700 WD700_card_nu"ss="v3nsref">unchar3/j>v3283/a>      jss="++)="comment">/* Tim> that WD7000 sp7 1       7 ON3/a>    64           7href=701rs/scsi/wd70csi/wd70csi/wd7000000000csi/wd70if (c#L355" id
 L35config">v3283/a>      config"ss="[#L331" id
 L331i>v3283/a>      5ss="].#L331" id
 L331irqvers/scsi/wd700irqss="=== #L331" id
 L331config">v3283/a>      config"ss="[#L331" id
 L331j>v3283/a>      jss="].#L331" id
 L331irqvers/scsi/wd700irqss=")comment">/* String to look for     7 2       7 */3/spavalunchar3/petup_NTRs "line" nam>
 L3setup_NTRs d700("/a>3spav cla0  ing">"duplicatedeIRQ!"v class, #L331" id
 L331in"">v3283/a>      5n""ss=")vmment">/* String to look for     7 3       7  */3/spaval703rs/scsi/wd70csi/wd7000000000000000000000000000000000un336c 0vmment">/* String to look for     7 4       7 /scsi/wd7000.c#L296" id7 href704rs/scsi/wd70csi/wd70000000000000000000000000}mment">/* String to look for     7d5  v the7Aent"> *  Standard Adapt7306">705rs/scsi/wd70csi/wd700000000000000000if (c#L355" id
 L35config">v3283/a>      config"ss="[#L331" id
 L331i>v3283/a>      5ss="].#L331" id
 L331dmdevisi v      */dmdss="=== #L331" id
 L331config">v3283/a>      config"ss="[#L331" id
 L331j>v3283/a>      jss="].#L331" id
 L331dmdevisi v      */dmdss=")comment">/* String to look for     7 6  v the7A L297" class="line" nam7307">70e" nam>
 L237csi/wd70000000000000000000000000"sref">unchar3/petup_NTRs "line" nam>
 L3setup_NTRs d700("/a>3spav cla0  ing">"duplicatedeioba"v class="/a>3spav cla0  ing">"ohannel!"v class, #L331" id
 L331in"">v3283/a>      5n""ss=")vmment">/* String to look for     7 7  v the7Al/* String to look for     7 8  v the7A" class="sref">irq3/a>;7 L310708  >        *****************csi/wd70}mment">/* String to look for     7d9  v the7A        */3/spaval        a              00000000if (c#L355" id
 L35config">v3283/a>      config"ss="[#L331" id
 L331i>v3283/a>      5ss="].#L331" id
 L331iobar.vers/scsi/wd700iobar.ss="=== #L331" id
 L331config">v3283/a>      config"ss="[#L331" id
 L331j>v3283/a>      jss="].#L331" id
 L331iobar.vers/scsi/wd700iobar.ss=")comment">/* String to look for     7ine" nam>7 L311">v3113/a>3spav cla7s="co710rs/scsi/wd70csi/wd70000000000000000000000000"sref">unchar3/petup_NTRs "line" nam>
 L3setup_NTRs d700("/a>3spav cla0  ing">"duplicatedeI/Oa"v class="/a>3spav cla0  ing">"bar.   3spav!"v class, #L331" id
 L331in"">v3283/a>      5n""ss=")vmment">/* String to look for     7i1       7"+code=Config" class="sr7f">Co711rs/scsi/wd70csi/wd70csi/wd7000000000csi/wd70un336c 0vmment">/* String to look for     7i2       7si/wd7000.c#L313" id
 L373" cl712rs/scsi/wd70csi/wd700000000000000000}mment">/* String to look for     7i3       7 3spav class="comment">/7 defa713rs/scsi/wd70csi/wd7000000000}mment">/* String to look for     7i4       7 3spav class="comment">/7 defa714rs/scsi/wd70csi/wd70}mment">/* String to look for     7i5  v the7lass="comment">/* My con7igura71guraomment">/* String to look for     7i6  v the7lass="comment">/* Empty 7lot  71e" nam>
 L237csi/wd70302" id
 L302" dpr5n"kvers/scsi/wd700dpr5n"kd700(c#L355" id
 L35KERN_DEBUGe" nam>
 L257">KERN_DEBUG" nam"/a>3spav cla0  ing">" WD700_setup: IRQ=%d,eiob=%d,eI/O=0x%x,a"v classmment">/* String to look for     7i7  v the7ef">NUM_CONFIGS3/a> 3a h7ef="+717  >        *****************"/a>3spav cla0  ing">"BUS_ON=%dns,UBUS_OFF=%dns\n"v class, #L331" id
 L331config">v3283/a>      config"ss="[#L331" id
 L331 WD700_card_nu"vers/scsi/wd700 WD700_card_nu"ss="].#L331" id
 L331irqvers/scsi/wd700irqss=", #L331" id
 L331config">v3283/a>      config"ss="[#L331" id
 L331 WD700_card_nu"vers/scsi/wd700 WD700_card_nu"ss="].#L331" id
 L331dmdevisi v      */dmdss=", #L331" id
 L331config">v3283/a>      config"ss="[#L331" id
 L331 WD700_card_nu"vers/scsi/wd700 WD700_card_nu"ss="].#L331" id
 L331iobar.vers/scsi/wd700iobar.ss=", #L331" id
 L331config">v3283/a>      config"ss="[#L331" id
 L331 WD700_card_nu"vers/scsi/wd700 WD700_card_nu"ss="].#L331" id
 L331bus_o L329">v3293/a>}bus_o ss="=* 125, #L331" id
 L331config">v3283/a>      config"ss="[#L331" id
 L331 WD700_card_nu"vers/scsi/wd700 WD700_card_nu"ss="].#L331" id
 L331bus_offL329">v3293/a>}bus_offss="=* 125)vmment">/* String to look for     7i8  v the7"+code=configs" class="s7ef">c71class="line" nam>
 L310">v3 3spav7i9  v the7s/scsi/wd7000.c#L321" id7 L32171963/a>        a      #L331" id
 L331 WD700_card_nu"vers/scsi/wd700 WD700_card_nu"ss="++vmment">/* String to look for     7class="co7ment"> *  The following 7ist d720rs/scsi/wd70}mment">/* String to look for     7c1       7wd7000.c#L322" id
 L322"7class721rs/scsi/wd70un336c 1vmment">/* String to look for     7c2       7000.c#L323" id
 L323" cl7ss="l72e" na}mment">/* String to look for     7c3       7" nam>
 L324">v3243/a>3s7av cl723rs/s="comment">/* Tim> that WD7000 sp7c4       73a href="+code=signaoure7 clas72"sref"L331" id
 L331__setupvers/scsi/wd700__setupd700("/a>3spav cla0  ing">" WD700="v class, #L331" id
 L331 WD700_setupvers/scsi/wd700 WD700_setupd700)vmment">/* String to look for     7c06" id
 7" nam>
 L326">v3263/a>  7     72guraomment">/* String to look for     7c6  v the7spavalunchar3/any2o lodr3283/a>      any2o lod700(c#L355" id
 L357000_revisi v      */3/spavalunchar3/pclodr3283/a>      o lod700,0in"c302" id
 L302" anyvers/scsi/wd700anyss=")="comment">/* Tim> that WD7000 sp7c7  v the7spaval/* String to look for     7c8  v the7spaval      o lod700++ = (unsigned)302" id
 L302" anyvers/scsi/wd700anyss=" >> 16vmment">/* String to look for     7c9  v the7v33l      o lod700++ = (unsigned)302" id
 L302" anyvers/scsi/wd700anyss=" >> 8vmment">/* String to look for     7" class="7ref">Signaoure3/a> 3a hr7f="+c730  >        **c#L355" id
 L35sclodr3283/a>      o lod700++ = 302" id
 L302" anyvers/scsi/wd700anyss="vmment">/* String to look for     7"1       7a href="drivers/scsi/wd7700.c#73ig3/a}mment">/* String to look for     7"rivers/s700d */3/spaval/* Tim> that WD7000 sp7ES" class7"sref">NUM_SIGNATURES3/a7 3a h73s="coptr"332#L331" id
 L331inef="dr3283/a>      5nef="rs/scin"c302" id
 L302"  tha2in"dr3283/a>      o lo2in"d700(c#L355" id
 L357000_revisi v      */3/spavalunchar3/pclodr3283/a>      o lod700)="comment">/* Tim> that WD7000 sp7E},      7 href="+code=signaoures"7class734rs/somment">/* String to look for     7"06" id
 7 class="line" nam>
 L3377>v337735rs/scsi/wd70un336c (c#L355" id
 L35sclodr3283/a>      o lod700[0] << 16) | (c#L355" id
 L35sclodr3283/a>      o lod700[1] << 8) | c#L355" id
 L35sclodr3283/a>      o lod700[2]vmment">/* String to look for     7E07" id
 7s/scsi/wd7000.c#L338" id7 L33873663/a}mment">/* String to look for     7"7  v the7ment"> *  I/O Port Offse7s and73ref="mment">/* String to look for     7"     */37" nam>
 L339">v3393/a>3s7av cl738  > ptr"332#L331" id
 L331inef="dr3283/a>      5nef="rs/scvoid="sref">unchar3/ WD700_enable_in"revisi v      */ WD700_enable_in"rd700(c#L355" id
 L35"ss="srevisi v      */"ss="sralunchar3/.c#Levisi v      */.c#Ld700)="comment">/* Tim> that WD7000 sp7E9  v the7" id
 L340" class="line"7nam>
73classomment">/* String to look for     7ne"3a hre7="+code=ASC_STAT" class=7sref"740rs/scsi/wd70302" id
 L302" .c#Levisi v      */.c#Ld700->#L331" id
 L331control>v3283/a>      controlrs/sc|= 302" id
 L302" INT_ENL329">v3293/a>}INT_ENss="vmment">/* String to look for     7    */3/s7aval
 L257">outnd700(c#L355" id
 L35.c#Levisi v      */.c#Ld700->#L331" id
 L331control>v3283/a>      controlrs/s, #L331" id
 L331.c#Levisi v      */.c#Ld700->#L331" id
 L331iobar.vers/scsi/wd700iobar.ss="=+ #L331" id
 L331ASC_CONTROLevisi v      */"SC_CONTROLd700)vmment">/* String to look for     7       */7/spaval/* String to look for     7 S" class7/3/spaval/* Tim> that WD7000 sp7uZE3/a>(373/spaval/* String to look for     7u06" id
 7/spavalunchar3/ WD700_enable_dmdevisi v      */ WD700_enable_dmdd700(c#L355" id
 L35"ss="srevisi v      */"ss="sralunchar3/.c#Levisi v      */.c#Ld700)="comment">/* Tim> that WD7000 sp7 07" id
 7s/scsi/wd7000.c#L348" id7 L34874e" naomment">/* String to look for     7n7  v the7ment"> * ASC Status Port7/spav74	  >        *unsigned longc302" id
 L302" slag">v3283/a>      slag"ss="vmment">/* String to look for     7      */373spav class="comment"> *73/spa748  >        *302" id
 L302" .c#Levisi v      */.c#Ld700->#L331" id
 L331control>v3283/a>      controlrs/sc|= 302" id
 L302" DMA_ENL329">v3293/a>}DMA_ENss="vmment">/* String to look for     7 9  v the7="+code=INT_IM" class="s7ef">I74963/a>       302" id
 L302" outne" nam>
 L257">outnd700(c#L355" id
 L35.c#Levisi v      */.c#Ld700->#L331" id
 L331control>v3283/a>      controlrs/s, #L331" id
 L331.c#Levisi v      */.c#Ld700->#L331" id
 L331iobar.vers/scsi/wd700iobar.ss="=+ #L331" id
 L331ASC_CONTROLevisi v      */"SC_CONTROLd700)vmment">/* String to look for     7         7*/3/spaval/* String to look for     7    */3/s7 */3/spavalv3283/a>      slag"ss=" = 302" id
 L302" 328im_dmd_"cckvers/scsi/wd700328im_dmd_"cckd700()vmment">/* String to look for     7       */7 */3/spavalunchar3/pet_dmd_mar3"line" nam>
 L3set_dmd_mar3d700(c#L355" id
 L35.c#Levisi v      */.c#Ld700->#L331" id
 L331dmdevisi v      */dmdss=", #L331" id
 L331DMA_MODE_C"SCADEL329">v3293/a>}DMA_MODE_C"SCADEd700)vmment">/* String to look for     7 S" class7  */3/spaval/* String to look for     7 ZE3/a>(37erved */3/spavalv3283/a>      slag"ss=")vmment">/* String to look for     7 06" id
 7s/scsi/wd7000.c#L357" id7 L35775guraomment">/* String to look for     7 07" id
 7ment"> *vCOMMAND opcodes7/spav75663/a}mment">/* String to look for     7 ress */373spav class="comment"> *7/spav75ref="mment">/* String to look for     7e     */37ment"> *  Unfortunaoely,7I hav75class="line" nam>
 L310">v3 3spav7ee"3a hre7/wd7000.c#L360" id
 L3607 clas75963/a#def60"0302" id
 L302" WAITnexttimeout>v3283/a>      WAITnexttimeoutrs/sc200*****"/a>3spav cla="sref">Sign2 secondsgs" class="sref">configs3/a>[] = {l/* String to look for     7r        700.c#L362" id
 L362" cla7s="li761rs/sptr"332#L331" id
 L331inef="dr3283/a>      5nef="rs/scshhref"sref">unchar3/WAIT>v3283/a>      WAITd700(unsigned "sref">unchar3/phre>v3283/a>      phress=", unsigned "sref">unchar3/maskvers/scsi/wd700maskss=", unsigned "sref">unchar3/allofL329">v3293/a>}allofss=", unsigned "sref">unchar3/noneofL329">v3293/a>}noneofd700)="comment">/* Tim> that WD7000 sp7r      */77000.c#L363" id
 L363" c7ass="762rs/somment">/* String to look for     7rs, Read 700.c#L364" id
 L364" cla7s="li763rs/scsi/wd70unsigned "sref">unchar3/WAITbi"">v3283/a>      WAITbi""ss="vmment">/* String to look for     7/s are re7="+code=NO_OP" class="sr7f">NO764rs/scsi/wd70unsigned longc302" id
 L302" WAITtimeout>v3283/a>      WAITtimeoutrs/sc= 302" id
 L302" jiffie">v3283/a>      jiffie"ss="=+ #L331" id
 L331WAITnexttimeout>v3283/a>      WAITnexttimeoutrs/svmment">/* String to look for     7/06" id
 7_STAT  */3/spaval/* String to look for     7/f="drive7s)              */3/spav7l
 L237while (c#L355" id
 L35time_before_eqvers/scsi/wd700time_before_eqd700(c#L355" id
 L35jiffie">v3283/a>      jiffie"ss=", #L331" id
 L331WAITtimeout>v3283/a>      WAITtimeoutrs/s))comment">/* String to look for     7/ress */37nterrupts         */3/sp7val        *********"sref">unchar3/WAITbi"">v3283/a>      WAITbi""ss="== #L331" id
 L331inne" nam>
 L257">innd700(c#L355" id
 L35phre>v3283/a>      phress=") &v3nsref">unchar3/maskvers/scsi/wd700maskss="vmment">/* String to look for     7/     */37errupts          */3/spa7al
 L310">v3 3spav7/e"3a hre7MB                 */3/s7aval<76963/a>        a      if (((c#L355" id
 L35WAITbi"">v3283/a>      WAITbi""ss="=&v3nsref">unchar3/allofL329">v3293/a>}allofss=")=== #L331" id
 L331allofL329">v3293/a>}allofss=")=&v&v3((c#L355" id
 L35WAITbi"">v3283/a>      WAITbi""ss="=&v3nsref">unchar3/noneofL329">v3293/a>}noneofd700)=== 0))="comment">/* Tim> that WD7000 sp7et       7            */3/spaval/* String to look for     7d
 L232" 7lass="line" nam>
 L232">72323/771rs/scsi/wd70}mment">/* String to look for     7ds/scsi/w7ne" nam>
 L273">v2733/a>7     77/wd70="comment">/* Tim> that WD7000 sp7 class="l7ne" nam>
 L274">v2743/a>7     773rs/scsi/wd70un336c (1)vmment">/* String to look for     7ds are re7e" nam>
 L275">v2753/a>}7l/* String to look for     7d06" id
 7ef">NUM_IOPORTS3/a> 3a h7ef="+77guraomment">/* String to look for     7df="drive7"+code=wd7000_iobase" cl7ss="s77class="line" nam>
 L348">v3483/a>3spav7 ress */37lass="sref">wd7000_irq3/7>[] =77	  > ptr"332#L331" id
 L331inef="dr3283/a>      5nef="rs/scin"c302" id
 L302" omment"_out>v3283/a>      omment"_outd700(c#L355" id
 L35"ss="srevisi v      */"ss="sralunchar3/.c#Levisi v      */.c#Ld700, #L331" id
 L3317000_revisi v      */3/spavalunchar3/cmd>v3283/a>      omdd700, in"c302" id
 L302" le L329">v3293/a>}le d700)="comment">/* Tim> that WD7000 sp7e     */37ivers/scsi/wd7000.c#L2797 id
 77l/* String to look for     7 e"3a hre7=wd7000_irq" class="sref7>wd7077963/a>       if (!"sref">unchar3/WAIT>v3283/a>      WAITd700(#L331" id
 L331.c#Levisi v      */.c#Ld700->#L331" id
 L331iobar.vers/scsi/wd700iobar.ss="=+ #L331" id
 L331ASC_STAT>v3283/a>      ASC_STATd700, #L331" id
 L331ASC_STATMASK>v3283/a>      ASC_STATMASKd700, #L331" id
 L331CMD_RDY>v3283/a>      CMD_RDYd700, 0))comment">/* String to look for     7000_dma" 7lass="sref">wd7000_dma3/7>[] =780rs/scsi/wd70csi/wd70while (c#L355" id
 L35le L329">v3293/a>}le d700--)comment">/* String to look for     70
 L232" 7id
 L282" class="line" n7m>
 L781rs/scsi/wd70csi/wd70csi/wd70docomment">/* String to look for     70s/scsi/w7=wd7000_dma" class="sref7>wd70782rs/scsi/wd70csi/wd7000000000********"sref">unchar3/outne" nam>
 L257">outnd700(*c#L355" id
 L35cmd>v3283/a>      omdd700, #L331" id
 L331.c#Levisi v      */.c#Ld700->#L331" id
 L331iobar.vers/scsi/wd700iobar.ss="=+ #L331" id
 L331ASC_COMMANDevisi v      */"SC_COMMANDss=")vmment">/* String to look for     70class="l7s/scsi/wd7000.c#L285" id7 L285783rs/scsi/wd70csi/wd700000000000000000"sref">unchar3/WAIT>v3283/a>      WAITd700(#L331" id
 L331.c#Levisi v      */.c#Ld700->#L331" id
 L331iobar.vers/scsi/wd700iobar.ss="=+ #L331" id
 L331ASC_STAT>v3283/a>      ASC_STATd700, #L331" id
 L331ASC_STATMASK>v3283/a>      ASC_STATMASKd700, #L331" id
 L331CMD_RDY>v3283/a>      CMD_RDYd700, 0)vmment">/* String to look for     70s are re7ment"> * The following i7 set 784rs/scsi/wd70csi/wd7000000000}0while (c#L355" id
 L35inne" nam>
 L257">innd700(c#L355" id
 L35.c#Levisi v      */.c#Ld700->#L331" id
 L331iobar.vers/scsi/wd700iobar.ss="=+ #L331" id
 L331ASC_STAT>v3283/a>      ASC_STATd700) &v3nsref">unchar3/CMD_REJ>v3283/a>      CMD_REJss=")vmment">/* String to look for     7006" id
 7#L286" id
 L286" class="7ine" 78guraomment">/* String to look for     70f="drive7287">v2873/a>3spav class7"comm78e" nam>
 L237csi/wd7000000000"sref">unchar3/cmd>v3283/a>      omdd700++vmment">/* String to look for     70licited 7rs/scsi/wd7000.c#L289" i7
 L28787  >        *********}mment">/* String to look for     70     */37S3/a>   8l
 L310">v3 3spav70e"3a hre7>v29static struco 37 href78963/a>        a      un336c (1)vmment">/* String to look for     7st3/a>[3a7href="+code=UNITS" class7"sref790rs/scsi/wd70}mment">/* String to look for     7s
 L232" 7_ON3/a>    64           73spav79lass="comment">/* xv125ns = 8000ns (BI7ss/scsi/w7 */3/spavalunchar3/pr5n"kvers/scsi/wd700pr5n"kd700(c#L355" id
 L35KERN_WARNINGe" nam>
 L257">KERN_WARNINGrs/sc"/a>3spav cla0  ing">" WD700 omment"_out: WAIT failed(%d)\n"v class, #L331" id
 L331le L329">v3293/a>}le d700 + 1)vmment">/* String to look for     7sclass="l7) */3/spaval/* Tim> that WD7000 sp7ss are re7s/scsi/wd7000.c#L296" id7 L296794rs/scsi/wd70un336c (0)vmment">/* String to look for     7s      */7ment"> *  Standard Adapt7r Con79gurao}mment">/* String to look for     7sf="drive7
 L297" class="line" nam7
 L2979class="line" nam>
 L348">v3483/a>3spav7slicited 7{l/* String to look for     7s     */37q" class="sref">irq3/a>;7     79s="comment"> *  4 addresses/ad7 class="line" nam>
 L341">v3413/a>#def7se"3a hre7         */3/spavalv343spav class="comm Ts/ag
 L3ionit calloc_scbs /a>in prepa3s="sr0">BUsupphre"sremultipled7 class="line" nam>
 L341">v3413/a>#def8         8         */3/spaval
 L341">v3413/a>#def8 1       8 ON3/a>    64           8href=80ig3/a> 3a href="+code=configs  We will need to allocate Scbs /n b"ccks sinc41t6"y will wait to bed7 class="line" nam>
 L341">v3413/a>#def8 2       8 */3/spavalt6" possibilityit cdead"cck ocserwise41" class="line" nam>
 L341">v3413/a>#def8 3       8  */3/spaval803rs/s> 3a href="+code=configs  Also, to keep larger requests from be"srestarvedeby smallsr requests,1" class="line" nam>
 L341">v3413/a>#def8 4       8 /scsi/wd7000.c#L296" id8 href804rs/s> 3a href="+code=configs  we limit accpav toscs/agrout60"0y mayan in"ernal busy slag,esoscsat1" class="line" nam>
 L341">v3413/a>#def8 5       8 ent"> *  Standard Adapt8306">805rs/s> 3a href="+code=configs  t6" ss="sfiabilityit ca request /a>notcdependcon sr0t6" sizeit ct6"1" class="line" nam>
 L341">v3413/a>#def8 6       8  L297" class="line" nam8307">80e" na> 3a href="+code=configs  request41" class="line" nam>
 L341">v3413/a>#def8 7       8 lconfigs3/a>[] = {lirq3/a>;8 L310808  > ptr"332#L331" id
 L331inef="dr3283/a>      5nef="rs/sc#L331" id
 L331Scbdr3283/a>      Scbalv3293/a>}alloc_scbsd700(0  uc"c302" id
 L302" S] =_Hc#Levisi v      */S] =_Hc#Lalv3283/a>      neededd700)="comment">/* Tim> that WD7000 sp8d9  v the8A        */3/spaval/* String to look for     8ine" nam>8 L311">v3113/a>3spav cla8s="co810rs/scsi/wd70302" id
 L302" Scbdr3283/a>      Scbal      scbal/* String to look for     8i1       8"+code=Config" class="sr8f">Co811rs/scsi/wd70unsigned longc302" id
 L302" slag">v3283/a>      slag"ss="vmment">/* String to look for     8i2       8si/wd7000.c#L313" id
 L383" cl812rs/scsi/wd70unsigned longc302" id
 L302" timeout>v3283/a>      timeoutrs/sc= 302" id
 L302" jiffie">v3283/a>      jiffie"ss="=+ #L331" id
 L331WAITnexttimeout>v3283/a>      WAITnexttimeoutrs/svmment">/* String to look for     8i3       8 3spav class="comment">/8 defa813rs/scsi/wd70unsigned longc302" id
 L302" nowL329">v3293/a>}nowrs/svmment">/* String to look for     8i4       8 3spav class="comment">/8 defa814rs/scsi/wd70in"c302" id
 L302" i>v3283/a>      5ss="vmment">/* String to look for     8i5       8lass="comment">/* My con8igura81guraomment">/* String to look for     8i6  v the8lass="comment">/* Empty 8lot  81e" nam>
 L237if (c#L355" id
 L35needed>v3283/a>      neededd700 <= 0)mment">/* String to look for     8i7       8ef">NUM_CONFIGS3/a> 3a h8ef="+817  >        *********un336c (c#L355" id
 L35NULLevisi v      */NULLss=");**"/a>3spav cla="sref">Signsanityicheck s" class="sref">configs3/a>[] = {lc81class="line" nam>
 L310">v3 3spav8i9  v the8s/scsi/wd7000.c#L321" id8 L32181963/a>       302" id
 L302" spin_un"cck_irqvers/scsi/wd700spin_un"cck_irqd700(c#L355" id
 L35.c#Levisi v      */.c#Ld700->#L331" id
 L331.c#L_"cckvers/scsi/wd700.c#L_"cckss=")vmment">/* String to look for     8class="co8ment"> *  The following 8ist d820rs/smment">/* String to look for     8c1       8wd7000.c#L322" id
 L322"8class821rs/scsi/wd#L331" id
 L331un3ryvers/scsi/wd700un3ryrs/s:mment">/* String to look for     8c2       8000.c#L323" id
 L323" cl8ss="l822rs/scsi/wd70while (c#L355" id
 L35freescbsL329">v3293/a>}freescbsd700 <c302" id
 L302" needed>v3283/a>      neededd700)comment">/* String to look for     8c3       8" nam>
 L324">v3243/a>3s8av cl823rs/scsi/wd70csi/wd70302" id
 L302" timeout>v3283/a>      timeoutrs/sc= 302" id
 L302" jiffie">v3283/a>      jiffie"ss="=+ #L331" id
 L331WAITnexttimeout>v3283/a>      WAITnexttimeoutrs/svmment">/* String to look for     8c4       83a href="+code=signaoure8 clas824rs/scsi/wd70csi/wd70docomment">/* String to look for     8c06" id
 8" nam>
 L326">v3263/a>  8     825rs/scsi/wd70csi/wd7000000000"/a>3spav cla="sref">SignFIXME: c>3swe actually just yield sere ?? s" class="sref">configs3/a>[] = {l
 L237csi/wd7000000000">BU(c#L355" id
 L35nowL329">v3293/a>}nowrs/sc= 302" id
 L302" jiffie">v3283/a>      jiffie"ss="v3nsref">unchar3/nowL329">v3293/a>}nowrs/sc== 302" id
 L302" jiffie">v3283/a>      jiffie"ss="v)mment">/* String to look for     8c7  v the8spavalunchar3/cpu_relax>v3283/a>      opu_relaxd700();**00"/a>3spav cla="sref">Signwait a jiffy s" class="sref">configs3/a>[] = {lv3293/a>}freescbsd700 <c302" id
 L302" needed>v3283/a>      neededd700=&v&v3302" id
 L302" time_before_eqvers/scsi/wd700time_before_eqd700(c#L355" id
 L35jiffie">v3283/a>      jiffie"ss=", #L331" id
 L331timeout>v3283/a>      timeoutrs/s))vmment">/* String to look for     8c9  v the8v33l *  4 addresses/ad7 class="line" nam>
 L341">v3413/a>#def8" class="8ref">Signaoure3/a> 3a hr8f="+c83ines strings to look for in33333333333333333*  Ifswe get sere y mayenough free Scbs,swe c>3stak41t6"m41" class="line" nam>
 L341">v3413/a>#def8"1       8a href="drivers/scsi/wd7800.c#83ig3/a> 3a href="+code=config3333333333333333*  Ocserwise,swe timed>outint"Sdidn't get enough41" class="line" nam>
 L341">v3413/a>#def8"2       800d */3/spavalconfigs3/a>[] = {lNUM_SIGNATURES3/a8 3a h833rs/scsi/wd70csi/wd70if (c#L355" id
 L35freescbsL329">v3293/a>}freescbsd700 <c302" id
 L302" needed>v3283/a>      neededd700)comment">/* String to look for     8E},      8 href="+code=signaoures"8class834rs/scsi/wd70csi/wd7000000000"sref">unchar3/pr5n"kvers/scsi/wd700pr5n"kd700(c#L355" id
 L35KERN_ERRe" nam>
 L257">KERN_ERRrs/sc"/a>3spav cla0  ing">" WD700: c>3't get enough free SCBs.\n"v class)vmment">/* String to look for     8"06" id
 8 class="line" nam>
 L3378>v337835rs/scsi/wd70csi/wd7000000000un336c (c#L355" id
 L35NULLevisi v      */NULLss=");mment">/* String to look for     8"6  v the8s/scsi/wd7000.c#L338" id8 L33883e" nam>
 L237csi/wd70}mment">/* String to look for     8"7  v the8ment"> *  I/O Port Offse8s and837  >        *}mment">/* String to look for     8"8  v the8" nam>
 L339">v3393/a>3s8av cl83class="line" nam>
 L310">v3 3spav8E9  v the8" id
 L340" class="line"8nam>
83963/a>       3/a>3spav cla="sref">SignTak41t6" "cck,1t6"nicheck we didn't get beaten,0if soscry again3*" class="sref">configs3/a>[] = {l
 L3spin_"cck_irqsav3d700(&v#L331" id
 L331scbpool_"cckvers/scsi/wd700scbpool_"cckss=", #L331" id
 L331slag">v3283/a>      slag"ss=")vmment">/* String to look for     8    */3/s8avalv3293/a>}freescbsd700 <c302" id
 L302" needed>v3283/a>      neededd700)comment">/* String to look for     8       */8/spavalv3283/a>      slag"ss=")vmment">/* String to look for     8 S" class8/3/spaval/* String to look for     8 },      83/spaval/* String to look for     8u06" id
 8/spaval/* String to look for     8 07" id
 8s/scsi/wd7000.c#L348" id8 L348846rs/scsi/wd70302" id
 L302" scbdr3283/a>      scbal      scbfreers/svmment">/* String to look for     8 7  v the8ment"> * ASC Status Port8/spav84	  >        *c#L355" id
 L35freescbsL329">v3293/a>}freescbsd700 -= 302" id
 L302" needed>v3283/a>      neededd700vmment">/* String to look for     8 8  v the83spav class="comment"> *83/spa848  >        *">BU(c#L355" id
 L35i>v3283/a>      5ss=" = 0vf"sref">unchar3/i>v3283/a>      5ss=" < 302" id
 L302" needed>v3283/a>      neededd700vf"sref">unchar3/i>v3283/a>      5ss="++)comment">/* String to look for     8 9  v the8="+code=INT_IM" class="s8ef">I84963/a>        a      #L331" id
 L331pvers/scsi/wd700pss="== #L331" id
 L331scbfreedr3283/a>      scbfreers/svmment">/* String to look for     8         8*/3/spaval      scbfreers/s== #L331" id
 L331pvers/scsi/wd700pss="->#L331" id
 L331next>v3283/a>      nextrs/svmment">/* String to look for     8    */3/s8 */3/spaval/* String to look for     8       */8 */3/spavalunchar3/pvers/scsi/wd700pss="->#L331" id
 L331next>v3283/a>      nextrs/s== #L331" id
 L331NULLevisi v      */NULLss="vmment">/* String to look for     8 S" class8  */3/spaval/* Tim> that WD7000 sp8 ZE3/a>(38erved */3/spavalv3283/a>      slag"ss=")vmment">/* String to look for     8 06" id
 8s/scsi/wd7000.c#L357" id8 L35785guraomment">/* String to look for     8 07" id
 8ment"> *vCOMMAND opcodes8/spav856rs/scsi/wd70302" id
 L302" spin_"cck_irq"line" nam>
 L3spin_"cck_irqd700(c#L355" id
 L35.c#Levisi v      */.c#Ld700->#L331" id
 L331.c#L_"cckvers/scsi/wd700.c#L_"cckss=")vmment">/* String to look for     8 ress */383spav class="comment"> *8/spav85	  >        *un336c (c#L355" id
 L35scbdr3283/a>      scbal/* String to look for     8 8  v the8ment"> *  Unfortunaoely,8I hav85class}mment">/* String to look for     8 9  v the8/wd7000.c#L360" id
 L3608 clas85class="line" nam>
 L321">v3213/a>3spav8rs/scsi/w87000.c#L361" id
 L361" c8ass="860rs/smment">/* String to look for     8r        800.c#L362" id
 L362" cla8s="li861rs/sptr"332#L331" id
 L331inef="dr3283/a>      5nef="rs/scvoid="sref">unchar3/free_scbdr3283/a>      free_scbd700(c#L355" id
 L35Scbdr3283/a>      Scbal      scbal/* String to look for     8r      */87000.c#L363" id
 L363" c8ass="862rs/somment">/* String to look for     8rs, Read 800.c#L364" id
 L364" cla8s="li863rs/scsi/wd70unsigned longc302" id
 L302" slag">v3283/a>      slag"ss="vmment">/* String to look for     8/s are re8="+code=NO_OP" class="sr8f">NO864rs/smment">/* String to look for     8/06" id
 8_STAT  */3/spaval
 L3spin_"cck_irqsav3d700(&v#L331" id
 L331scbpool_"cckvers/scsi/wd700scbpool_"cckss=", #L331" id
 L331slag">v3283/a>      slag"ss=")vmment">/* String to look for     8/f="drive8s)              */3/spav8l
 L348">v3483/a>3spav8/ress */38nterrupts         */3/sp8val        *c#L355" id
 L35memseLevisi v      */memseLd700(c#L355" id
 L35scbdr3283/a>      scbal      Scbal/* String to look for     8/     */38errupts          */3/spa8al        *302" id
 L302" scbdr3283/a>      scbalv3283/a>      nextrs/s== #L331" id
 L331scbfreedr3283/a>      scbfreers/svmment">/* String to look for     8/e"3a hre8MB                 */3/s8aval<86963/a>       302" id
 L302" scbfreedr3283/a>      scbfreers/s== #L331" id
 L331scbdr3283/a>      scbal/* String to look for     8et       8            */3/spavalv3293/a>}freescbsd700++vmment">/* String to look for     8d
 L232" 8lass="line" nam>
 L232">82323/87lass="comment">/* xv125ns = 8000ns (BI8ds/scsi/w8ne" nam>
 L273">v2733/a>8     872rs/scsi/wd70"sref">unchar3/ppin_un"cck_irqrestorevers/scsi/wd700spin_un"cck_irqrestored700(&v#L331" id
 L331scbpool_"cckvers/scsi/wd700scbpool_"cckss=", #L331" id
 L331slag">v3283/a>      slag"ss=")vmment">/* String to look for     8 class="l8ne" nam>
 L274">v2743/a>8     873rs/s}mment">/* String to look for     8ds are re8e" nam>
 L275">v2753/a>}8l/* String to look for     8d06" id
 8ef">NUM_IOPORTS3/a> 3a h8ef="+87guraomment">/* String to look for     8df="drive8"+code=wd7000_iobase" cl8ss="s87>v297ptr"332#L331" id
 L331inef="dr3283/a>      5nef="rs/scvoid="sref">unchar3/init_scbsL329">v3293/a>}init_scbsd700(void)mment">/* String to look for     8 ress */38lass="sref">wd7000_irq3/8>[] =87#L299omment">/* String to look for     8e     */38ivers/scsi/wd7000.c#L2798 id
 878  >        *in"c302" id
 L302" i>v3283/a>      5ss="vmment">/* String to look for     8 e"3a hre8=wd7000_irq" class="sref8>wd7087class="line" nam>
 L321">v3213/a>3spav8000_dma" 8lass="sref">wd7000_dma3/8>[] =880rs/scsi/wd70302" id
 L302" spin_"cck_init"line" nam>
 L3spin_"cck_initd700(&v#L331" id
 L331scbpool_"cckvers/scsi/wd700scbpool_"cckss=")vmment">/* String to look for     80
 L232" 8id
 L282" class="line" n8m>
 L88lass="comment">/* xv125ns = 8000ns (BI80s/scsi/w8=wd7000_dma" class="sref8>wd70882rs/scsi/wd703/a>3spav cla="sref">SignTs/ag/agonly exv1 callsd before1t6" SCB poolg/agact xv3*" class="sref">configs3/a>[] = {l/* Tim> that WD7000 sp80s are re8ment"> * The following i8 set 884rs/scsi/wd70302" id
 L302" scbfreedr3283/a>      scbfreers/s== &v(c#L355" id
 L35scbsL329">v3293/a>}scbsd700[0])vmment">/* String to look for     8006" id
 8#L286" id
 L286" class="8ine" 885rs/scsi/wd70302" id
 L302" memseLevisi v      */memseLd700(c#L355" id
 L35scbsL329">v3293/a>}scbsd700, 0, sizeof(c#L355" id
 L35scbsL329">v3293/a>}scbsd700))vmment">/* String to look for     80f="drive8287">v2873/a>3spav class8"comm88e" nam>
 L237">BU(c#L355" id
 L35i>v3283/a>      5ss=" = 0vf"sref">unchar3/i>v3283/a>      5ss=" < 302" id
 L302" MAX_SCBS>v3283/a>      MAX_SCBSd700 - 1vf"sref">unchar3/i>v3283/a>      5ss="++)comment">/* String to look for     80licited 8rs/scsi/wd7000.c#L289" i8
 L28887  >        *********c#L355" id
 L35scbsL329">v3293/a>}scbsd700["sref">unchar3/i>v3283/a>      5ss="].#L331" id
 L331next>v3283/a>      nextrs/s== &v(c#L355" id
 L35scbsL329">v3293/a>}scbsd700["sref">unchar3/i>v3283/a>      5ss=" + 1])vmment">/* String to look for     80     */38S3/a>   8lv3293/a>}scbsd700["sref">unchar3/i>v3283/a>      5ss="].#L331" id
 L331SCpn"dr3283/a>      SCpn"rs/s== #L331" id
 L331NULLevisi v      */NULLss="vmment">/* String to look for     80e"3a hre8>v29static struco 38 href88963/a>       }mment">/* String to look for     8st3/a>[3a8href="+code=UNITS" class8"sref890rs/scsi/wd70302" id
 L302" scbsL329">v3293/a>}scbsd700["sref">unchar3/MAX_SCBS>v3283/a>      MAX_SCBSd700 - 1].#L331" id
 L331next>v3283/a>      nextrs/s== #L331" id
 L331NULLevisi v      */NULLss="vmment">/* String to look for     8s
 L232" 8_ON3/a>    64           83spav891rs/scsi/wd70302" id
 L302" scbsL329">v3293/a>}scbsd700["sref">unchar3/MAX_SCBS>v3283/a>      MAX_SCBSd700 - 1].#L331" id
 L331SCpn"dr3283/a>      SCpn"rs/s== #L331" id
 L331NULLevisi v      */NULLss="vmment">/* String to look for     8ss/scsi/w8 */3/spaval/* String to look for     8sclass="l8) */3/spaval/* Tim> that WD7000 sp8ss are re8s/scsi/wd7000.c#L296" id8 L296894rs/smment">/* String to look for     8s      */8ment"> *  Standard Adapt8r Con895rs/sptr"332in"c302" id
 L302" mail_out>v3283/a>      mail_outd700(c#L355" id
 L35"ss="srevisi v      */"ss="sralunchar3/.c#Levisi v      */.c#Ld700, #L331" id
 L331Scbdr3283/a>      Scbal/* String to look for     8sf="drive8
 L297" class="line" nam8
 L2989e" na> 3a href="+code=confi/ad7 class="line" nam>
 L341">v3413/a>#def8slicited 8{l3salso be ussd ">BUICBs; just cast toscse parm type41" class="line" nam>
 L341">v3413/a>#def8s     */38q" class="sref">irq3/a>;8     89s="comment"> *  4 addresses3*" class="sref">configs3/a>[] = {l/* String to look for     9         9         */3/spavalv3283/a>      5ss=", #L331" id
 L331ogmne" nam>
 L257">ogmnss="vmment">/* String to look for     9 1       9 ON3/a>    64           9href=901rs/scsi/wd70unsigned longc302" id
 L302" slag">v3283/a>      slag"ss="vmment">/* String to look for     9 2       9 */3/spavalunchar3/7000_revisi v      */3/spaval
 L257">start_ogmnss="vmment">/* String to look for     9 3       9  */3/spaval903rs/scsi/wd70#L331" id
 L331Mailbox>v3283/a>      Mailboxalv3283/a>      ogmn"rs/s== #L331" id
 L331.c#Levisi v      */.c#Ld700->#L331" id
 L331mne" nam>
 L257">mnss=".#L331" id
 L331ogmne" nam>
 L257">ogmnss="vmment">/* String to look for     9 4       9 /scsi/wd7000.c#L296" id9 href904rs/scsi/wd70in"c*#L331" id
 L331next_ogmne" nam>
 L257">next_ogmnrs/s== &v(c#L355" id
 L35.c#Levisi v      */.c#Ld700->#L331" id
 L331next_ogmne" nam>
 L257">next_ogmnrs/s)vmment">/* String to look for     9 5       9 ent"> *  Standard Adapt9306">90guraomment">/* String to look for     9 6       9  L297" class="line" nam9307">906rs/scsi/wd70302" id
 L302" dpr5n"kvers/scsi/wd700dpr5n"kd700(c/a>3spav cla0  ing">" WD700_mail_out: 0x%06lx"v class, (long)0302" id
 L302" scbp"revisi v      */scbp"ral/* String to look for     9 7       9 l/* String to look for     9 8  v the9A" class="sref">irq3/a>;9 L310908  >        *3/a>3spav cla="sref">SignWe first look ">BUa free outgo"sremailbox3*" class="sref">configs3/a>[] = {l       302" id
 L302" spin_"cck_irqsav3"line" nam>
 L3spin_"cck_irqsav3d700(c#L355" id
 L35.c#Levisi v      */.c#Ld700->#L331" id
 L331sh"line" nam>
 L3shd700->#L331" id
 L331.c#L_"cckvers/scsi/wd700.c#L_"cckss=", #L331" id
 L331slag">v3283/a>      slag"ss=")vmment">/* String to look for     9ine" nam>9 L311">v3113/a>3spav cla9s="co910rs/scsi/wd70302" id
 L302" ogmne" nam>
 L257">ogmnss="== *#L331" id
 L331next_ogmne" nam>
 L257">next_ogmnrs/svmment">/* String to look for     9i1       9"+code=Config" class="sr9f">Co911rs/scsi/wd70">BU(c#L355" id
 L35i>v3283/a>      5ss=" = 0vf"sref">unchar3/i>v3283/a>      5ss=" < 302" id
 L302" OGMB_CNT>v3283/a>      OGMB_CNTrs/svf"sref">unchar3/i>v3283/a>      5ss="++)comment">/* String to look for     9i2       9si/wd7000.c#L313" id
 L393" cl912rs/scsi/wd70csi/wd70if (c#L355" id
 L35ogmn">v3283/a>      ogmn"rs/s["sref">unchar3/ogmne" nam>
 L257">ogmnss="].#L331" id
 L331ptr"usL329">v3293/a>}str"usss=" == 0)comment">/* String to look for     9i3       9 3spav class="comment">/9 defa913rs/scsi/wd70csi/wd70csi/wd70302" id
 L302" dpr5n"kvers/scsi/wd700dpr5n"kd700(c/a>3spav cla0  ing">" us"sreOGMB 0x%x"v class, "sref">unchar3/ogmne" nam>
 L257">ogmnss=")vmment">/* String to look for     9i4       9 3spav class="comment">/9 defa914rs/scsi/wd70csi/wd7000000000"sref">unchar3/ogmn">v3283/a>      ogmn"rs/s["sref">unchar3/ogmne" nam>
 L257">ogmnss="].#L331" id
 L331ptr"usL329">v3293/a>}str"usss=" = 1vmment">/* String to look for     9i5       9lass="comment">/* My con9igura915rs/scsi/wd70csi/wd7000000000"L331" id
 L331any2o loL329">v3293/a>}any2o lod700((c#L355" id
 L357000_revisi v      */3/spavalv3283/a>      ogmn"rs/s["sref">unchar3/ogmne" nam>
 L257">ogmnss="].#L331" id
 L331pcbp"revisi v      */scbp"ral/* String to look for     9i6  v the9lass="comment">/* Empty 9lot  91class="line" nam>
 L348">v3483/a>3spav9i7       9ef">NUM_CONFIGS3/a> 3a h9ef="+917  >        ******************#L331" id
 L331next_ogmne" nam>
 L257">next_ogmnrs/s== (c#L355" id
 L35ogmne" nam>
 L257">ogmnss="=+ 1) % 302" id
 L302" OGMB_CNT>v3283/a>      OGMB_CNTrs/sv="line" nam>
 L348">v3483/a>3spav9i8  v the9"+code=configs" class="s9ef">c918  >        *****************breakv="line" nam>
 L348">v3483/a>3spav9i9  v the9s/scsi/wd7000.c#L321" id9 L32191963/a>        a      } else="line" nam>
 L348">v3483/a>3spav9class="co9ment"> *  The following 9ist d920rs/scsi/wd70csi/wd7000000000302" id
 L302" ogmne" nam>
 L257">ogmnss="== (c#L355" id
 L35ogmne" nam>
 L257">ogmnss="=+ 1) % 302" id
 L302" OGMB_CNT>v3283/a>      OGMB_CNTrs/sv="line" nam>
 L348">v3483/a>3spav9c1       9wd7000.c#L322" id
 L322"9class921rs/scsi/wd70}mment">/* String to look for     9c2       9000.c#L323" id
 L323" cl9ss="l922rs/scsi/wd70"sref">unchar3/ppin_un"cck_irqrestorevers/scsi/wd700spin_un"cck_irqrestored700(c#L355" id
 L35.c#Levisi v      */.c#Ld700->#L331" id
 L331sh"line" nam>
 L3shd700->#L331" id
 L331.c#L_"cckvers/scsi/wd700.c#L_"cckss=", #L331" id
 L331slag">v3283/a>      slag"ss=")vmment">/* String to look for     9c3       9" nam>
 L324">v3243/a>3s9av cl923rs/s="comment">/* Tim> that WD7000 sp9c4       93a href="+code=signaoure9 clas924rs/scsi/wd70302" id
 L302" dpr5n"kvers/scsi/wd700dpr5n"kd700(c/a>3spav cla0  ing">", scbg/ag0x%06lx"v class, (long)0302" id
 L302" scbp"revisi v      */scbp"ral/* String to look for     9c06" id
 9" nam>
 L326">v3263/a>  9     92guraomment">/* String to look for     9c6  v the9spaval
 L237if (c#L355" id
 L35i>v3283/a>      5ss=" >= 302" id
 L302" OGMB_CNT>v3283/a>      OGMB_CNTrs/s)comment">/* String to look for     9c7  v the9spaval
 L341">v3413/a>#def9c8  v the9spaval *  4 addresses3*****************  Al"ernat xvly,swe might /asue1t6" "in"errupn sr0free OGMB",d7 class="line" nam>
 L341">v3413/a>#def9c9  v the9v33lv343spav class="co*****************  nt"Ssleep, but /t must be ensured that /t isn't t6" initd7 class="line" nam>
 L341">v3413/a>#def9" class="9ref">Signaoure3/a> 3a hr9f="+c93ines strings to look for in33333333333333333*  task runn"sr.  Instead,scs/ag
 L3"sr0to umes that t6" callsrd7 class="line" nam>
 L341">v3413/a>#def9"1       9a href="drivers/scsi/wd7900.c#93ig3/a> 3a href="+code=config3333333333333333*  will be p L3"stent, nt"Scry again.  Sinc41it'a>t6" ass="sral class="line" nam>
 L341">v3413/a>#def9"2       900d */3/spavalfree,nwait"sreeven y mayin"errupns offal class="line" nam>
 L341">v3413/a>#def9"3       9"sref">NUM_SIGNATURES3/a9 3a h933rs/s> 3a href="+code=config3333333333333333*  should work, sinc41t6"y are>freedg
 Ly quickly /n most cases41" class="line" nam>
 L341">v3413/a>#def9E},      9 href="+code=signaoures"9class934rs/s> 3a href="+code=config3333333333333333*" class="sref">configs3/a>[] = {l
 L3379>v337935rs/scsi/wd70csi/wd70302" id
 L302" dpr5n"kvers/scsi/wd700dpr5n"kd700(c/a>3spav cla0  ing">", no0free OGMBs.\n"v class)vmment">/* String to look for     9"6  v the9s/scsi/wd7000.c#L338" id9 L33893e" nam>
 L237csi/wd70un336c (0)vmment">/* String to look for     9"7  v the9ment"> *  I/O Port Offse9s and937  >        *}mment">/* String to look for     9"8  v the9" nam>
 L339">v3393/a>3s9av cl93class="line" nam>
 L310">v3 3spav9E9  v the9" id
 L340" class="line"9nam>
93963/a>       302" id
 L302"  WD700_enable_5n"revisi v      */ WD700_enable_5n"rd700(c#L355" id
 L35.c#Levisi v      */.c#Ld700)vmment">/* String to look for     9ne"3a hre9="+code=ASC_STAT" class=9sref"940rs/smment">/* String to look for     9    */3/s9aval
 L257">start_ogmnss="== #L331" id
 L331START_OGMBdr3283/a>      START_OGMBss="=| #L331" id
 L331ogmne" nam>
 L257">ogmnss="vmment">/* String to look for     9       */9/spavalunchar3/omment"_out>v3283/a>      omment"_outd700(c#L355" id
 L35.c#Levisi v      */.c#Ld700, &v#L331" id
 L331start_ogmne" nam>
 L257">start_ogmnss=", 1)vmment">/* String to look for     9 S" class9/3/spaval/* Tim> that WD7000 sp9 },      93/spaval3spav cla0  ing">", await"srein"errupn.\n"v class)vmment">/* String to look for     9u06" id
 9/spaval/* String to look for     9 07" id
 9s/scsi/wd7000.c#L348" id9 L348946rs/scsi/wd70un336c (1)vmment">/* String to look for     9 7  v the9ment"> * ASC Status Port9/spav94	  > }mment">/* String to look for     9 8  v the93spav class="comment"> *93/spa94class="line" nam>
 L310">v3 3spav9 9  v the9="+code=INT_IM" class="s9ef">I94class="line" nam>
 L321">v3213/a>3spav9         9*/3/spavalv3283/a>      make_302"d700(unsigned "sref">unchar3/.c#Lerrevisi v      */.c#Lerrss=", unsigned "sref">unchar3/">v3errevisi v      */">v3erral/* String to look for     9    */3/s9 */3/spaval/* String to look for     9       */9 */3/spaval
 L257">WDD700_DEBUGlass="line" nam>
 L321">v3213/a>3spav9 S" class9  */3/spaval/* String to look for     9 ZE3/a>(39erved */3/spaval/* String to look for     9 06" id
 9s/scsi/wd7000.c#L357" id9 L35795guraomment">/* String to look for     9 07" id
 9ment"> *vCOMMAND opcodes9/spav956rs/scsi/wd70sy mch3((c#L355" id
 L35.c#Lerrevisi v      */.c#Lerrss=" >> 8) &v30xff)comment">/* String to look for     9 ress */393spav class="comment"> *9/spav95	  >        *case 0:0csi/wd703/a>3spav cla="sref">SignReservede*" class="sref">configs3/a>[] = {l *  Unfortunaoely,9I hav958  >        *********c#L355" id
 L35.c#Lerrevisi v      */.c#Lerrss=" = #L331" id
 L331DID_ERRORe" nam>
 L257">DID_ERRORss="vmment">/* String to look for     9 9  v the9/wd7000.c#L360" id
 L3609 clas95963/a>        a      breakv="line" nam>
 L348">v3483/a>3spav9rs/scsi/w97000.c#L361" id
 L361" c9ass="960  >        *case 1:0csi/wd703/a>3spav cla="sref">SignCmment"SCmmplete, no0errorse*" class="sref">configs3/a>[] = {lv3283/a>      DID_OKss="vmment">/* String to look for     9r      */97000.c#L363" id
 L363" c9ass="962rs/scsi/wd70csi/wd70breakv="line" nam>
 L348">v3483/a>3spav9rS" class900.c#L364" id
 L364" cla9s="li963rs/scsi/wd70case 2:0csi/wd703/a>3spav cla="sref">SignCmment"Scmmplete, error loggedein scbgstr"us (">v3err)e*" class="sref">configs3/a>[] = {l(39="+code=NO_OP" class="sr9f">NO964rs/scsi/wd70csi/wd70c#L355" id
 L35.c#Lerrevisi v      */.c#Lerrss=" = #L331" id
 L331DID_OK>v3283/a>      DID_OKss="vmment">/* String to look for     9r06" id
 9_STAT  */3/spaval
 L348">v3483/a>3spav9r07" id
 9s)              */3/spav9l3spav cla="sref">SignCmment"Sfailed toscmmplete - timeoute*" class="sref">configs3/a>[] = {l        *********c#L355" id
 L35.c#Lerrevisi v      */.c#Lerrss=" = #L331" id
 L331DID_TIME_OUT>v3283/a>      DID_TIME_OUTss="vmment">/* String to look for     9r8  v the9errupts          */3/spa9al        *********breakv="line" nam>
 L348">v3483/a>3spav9r9  v the9MB                 */3/s9aval<96963/a>       case 5:0csi/wd703/a>3spav cla="sref">SignCmment"SLerminated; Bus reseteby ex"ernal devicv3*" class="sref">configs3/a>[] = {lv3283/a>      DID_RESETss="vmment">/* String to look for     9d
 L232" 9lass="line" nam>
 L232">92323/971rs/scsi/wd70csi/wd70breakv="line" nam>
 L348">v3483/a>3spav9ds/scsi/w9ne" nam>
 L273">v2733/a>9     972rs/scsi/wd70case 6:0csi/wd703/a>3spav cla="sref">SignUnexpectedeCmment"SReceivedew/ .c#L as targete*" class="sref">configs3/a>[] = {l
 L274">v2743/a>9     973rs/scsi/wd70csi/wd70302" id
 L302" .c#Lerrevisi v      */.c#Lerrss=" = #L331" id
 L331DID_BAD_TARGET>v3283/a>      DID_BAD_TARGETss="vmment">/* String to look for     9dZE3/a>(39e" nam>
 L275">v2753/a>}9l
 L348">v3483/a>3spav9d06" id
 9ef">NUM_IOPORTS3/a> 3a h9ef="+975rs/scsi/wd70case 80:0csi/wd70si/wd703/a>3spav cla="sref">SignUnexpectedeReselect"sr0*" class="sref">configs3/a>[] = {lSignUnexpectedeSelect"sr0*" class="sref">configs3/a>[] = {lwd7000_irq3/9>[] =977  >        *********c#L355" id
 L35.c#Lerrevisi v      */.c#Lerrss=" = #L331" id
 L331DID_BAD_INTRe" nam>
 L257">DID_BAD_INTRss="vmment">/* String to look for     9d8  v the9ivers/scsi/wd7000.c#L2799 id
 978  >        *********breakv="line" nam>
 L348">v3483/a>3spav9 e"3a hre9=wd7000_irq" class="sref9>wd7097963/a>       case 82:0csi/wd70si/wd703/a>3spav cla="sref">SignAborteCmment"SMessage33*" class="sref">configs3/a>[] = {lwd7000_dma3/9>[] =980rs/scsi/wd70csi/wd70#L331" id
 L331.c#Lerrevisi v      */.c#Lerrss=" = #L331" id
 L331DID_ABORT>v3283/a>      DID_ABORTss="vmment">/* String to look for     90
 L232" 9id
 L282" class="line" n9m>
 L981rs/scsi/wd70csi/wd70breakv="line" nam>
 L348">v3483/a>3spav90s/scsi/w9=wd7000_dma" class="sref9>wd70982rs/scsi/wd70case 83:0csi/wd70si/wd703/a>3spav cla="sref">SignSCSI Bus Software>Resete*" class="sref">configs3/a>[] = {l3spav cla="sref">SignSCSI Bus Hardware>Resete*" class="sref">configs3/a>[] = {l(39ment"> * The following i9 set 984rs/scsi/wd70csi/wd70c#L355" id
 L35.c#Lerrevisi v      */.c#Lerrss=" = #L331" id
 L331DID_RESET>v3283/a>      DID_RESETss="vmment">/* String to look for     9006" id
 9#L286" id
 L286" class="9ine" 985rs/scsi/wd70csi/wd70breakv="line" nam>
 L348">v3483/a>3spav90f="drive9287">v2873/a>3spav class9"comm98e" nam>
 L237default:0csi/wd70si/wd703/a>3spav cla="sref">SignReservede*" class="sref">configs3/a>[] = {l        *********c#L355" id
 L35.c#Lerrevisi v      */.c#Lerrss=" = #L331" id
 L331DID_ERRORe" nam>
 L257">DID_ERRORss="vmment">/* String to look for     90     */39S3/a>   8l/* String to look for     90e"3a hre9>v29static struco 39 href98963/a#ifdef #L331" id
 L331WDD700_DEBUGe" nam>
 L257">WDD700_DEBUGlass="line" nam>
 L321">v3213/a>3spav9st3/a>[3a9href="+code=UNITS" class9"sref990rs/scsi/wd70if (c#L355" id
 L35">v3errevisi v      */">v3erral/* String to look for     9s
 L232" 9_ON3/a>    64           93spav991rs/scsi/wd70csi/wd70c#L355" id
 L35dpr5n"kvers/scsi/wd700dpr5n"kd700(c/a>3spav cla0  ing">"\nSCSI omment"Serror:nSCSI 0x%02x .c#L 0x%04x0un336c %d\n"v class, #L331" id
 L331">v3errevisi v      */">v3erral/* String to look for     9ss/scsi/w9 */3/spaval/* String to look for     9sclass="l9) */3/spavalv3erral/* String to look for     9ss are re9s/scsi/wd7000.c#L296" id9 L296994rs/s}mment">/* String to look for     9s      */9ment"> *  Standard Adapt9r Con99guraomment">/* String to look for     9sf="drive9
 L297" class="line" nam9
 L2999e" na#defs=" 302" id
 L302"  WD700_5n"r_ackvers/scsi/wd700 WD700_5n"r_ackd700(c#L355" id
 L35.c#Levisi v      */.c#Ld700)d70c#L355" id
 L35outne" nam>
 L257">outnss=" (0, #L331" id
 L331.c#Levisi v      */.c#Ld700->#L331" id
 L331iobaseevisi v      */iobasess=" + #L331" id
 L331ASC_INTR_ACK>v3283/a>      ASC_INTR_ACKss=")mment">/* String to look for     9slicited 9{l/* String to look for     9s     */39q" class="sref">irq3/a>;9     99class="line" nam>
 L310">v3 3spav9se"3a hre9         */3/spaval
 L3irqd700,cvoid=*#L331" id
 L331dev_id>v3283/a>      dev_idss=")mment">/* String to look for     10         10         */3/spaval10  rs/somm/pre>
ment">/* String to look for     10 1       10 ON3/a>    64           10 ON>10 1rs/scsi/wd70302" id
 L302" "ss="srevisi v      */"ss="sralv3283/a>      dev_idss="vmment">/* String to look for     10 2       10 */3/spavalv3283/a>      slagal
 L257">icmnalv3293/a>}errptr"usalv3293/a>}icmn_ptr"usss="vmment">/* String to look for     10 3       10  */3/spaval/* String to look for     10 4       10 /scsi/wd7000.c#L296" id10 /s>10 4rs/scsi/wd70302" id
 L302" Scbdr3283/a>      Scbal      scbal3spav cla="sref">Sign">BUSCSI omment"se*" class="sref">configs3/a>[] = {l *  Standard Adapt10 en>10 5rs/scsi/wd70302" id
 L302" IcbAnyvers/scsi/wd700IcbAnyal      icbal3spav cla="sref">Sign">BU.c#L omment"se*" class="sref">configs3/a>[] = {l10 6rs/scsi/wd70struc"c302" id
 L302" o lo_cmnd>v3283/a>      o lo_cmndal      SCpn"rs/svmment">/* String to look for     10 7       10 lv3283/a>      Mailboxalv3293/a>}icmn"rs/s== #L331" id
 L331.c#Levisi v      */.c#Ld700->#L331" id
 L331mne" nam>
 L257">mnss=".#L331" id
 L331icmne" nam>
 L257">icmnal/* String to look for     10 8       10 " class="sref">irq3/a>;10 " >10 8  >        *unsigned longc302" id
 L302" slag">v3283/a>      slag"ss="vmment">/* String to look for     10 9       10         */3/spaval10 class="line" nam>
 L321">v3213/a>3spav101        10 L311">v3113/a>3spav cla10 L3>10 L  >        *c#L355" id
 L35spin_"cck_irqsav3"line" nam>
 L3spin_"cck_irqsav3d700(c#L355" id
 L35.c#Levisi v      */.c#Ld700->#L331" id
 L331sh"line" nam>
 L3shd700->#L331" id
 L331.c#L_"cckvers/scsi/wd700.c#L_"cckss=", #L331" id
 L331slag">v3283/a>      slag"ss=")vmment">/* StriL321">v3213/a>3spav1011       10"+code=Config" class="sr10"+c>10 1rs/scsi/wd70302" id
 L302" .c#Levisi v      */.c#Ld700->#L331" id
 L331int_coun"srevisi v      */int_coun"srd700++vmment">/* String to look for     10 2       10si/wd7000.c#L313" id
 L310si/>10 2lass="line" nam>
 L321">v3213/a>3spav1013       10 3spav class="comment">/10 3s>10 3rs/scsi/wd70#L331" id
 L331dpr5n"kvers/scsi/wd700dpr5n"kd700(c/a>3spav cla0  ing">" WD700_5n"r: irq== %d,U.c#L =g0x%06lx\n"v class, #L331" id
 L331irq"line" nam>
 L3irqd700,c(long)0302" id
 L302" .c#Levisi v      */.c#Ld700)vmment">/* String to look for     10 4       10 3spav class="comment">/10 3s>10 4rs/smment">/* String to look for     10 5       10lass="comment">/* My con10las>10 5rs/scsi/wd70302" id
 L302" slag>v3283/a>      slagal
 L257">inbd700(c#L355" id
 L35.c#Levisi v      */.c#Ld700->#L331" id
 L331iobaseevisi v      */iobasess=" + #L331" id
 L331ASC_INTR_STAT>v3283/a>      ASC_INTR_STATd700)vmment">/* String to look for     10 6       10lass="comment">/* Empty 10las>10 class="line" nam>
 L348">v3483/a>3spav10 7       10ef">NUM_CONFIGS3/a> 3a h10ef">10 	  >        *c#L355" id
 L35dpr5n"kvers/scsi/wd700dpr5n"kd700(c/a>3spav cla0  ing">" WD700_5n"r: in"rgstr" =g0x%02x\n"v class, #L331" id
 L331slag>v3283/a>      slagal/* String to look for     10 8       10"+code=configs" class="s10"+c>10 class="line" nam>
 L310">v3 3spav10 9       10s/scsi/wd7000.c#L321" id10s/s>10 963/a>       if (!(c#L355" id
 L35inne" nam>
 L257">inbd700(c#L355" id
 L35.c#Levisi v      */.c#Ld700->#L331" id
 L331iobaseevisi v      */iobasess=" + #L331" id
 L331ASC_STAT>v3283/a>      ASC_STATd700) &v3302" id
 L302" INT_IMvers/scsi/wd700INT_IMd700))comment">/* String to look for     102        10ment"> *  The following 10men>10mers/scsi/wd70csi/wd70c/a>3spav cla="sref">SignNB:scsese are>_
 Ly_ possible if IRQ 15g/agbe"sreussd, sinc4 class="sref">configs3/a>[] = {l10mig3/a> 3a href="+code=config3333333333333333* it'a>t6" "garbage3collector" on>t6" 2nd 8259 PIC.  Specifically,d7 class="line" nam>
 L341">v3413/a>#def10m2       10000.c#L323" id
 L323" cl10000>10m2rs/s> 3a href="+code=config3333333333333333* anyein"errupn signalein"oscse 8259 whichgc>3't be idconifiedd7 class="line" nam>
 L341">v3413/a>#def10m3       10" nam>
 L324">v3243/a>3s10" n>10m3rs/s> 3a href="+code=config3333333333333333* odees out as 7 fromscse 8259, whichg/ag15g"oscse .c#L.  Thus, itd7 class="line" nam>
 L341">v3413/a>#def10m4       103a href="+code=signaoure103a >10m4rs/s> 3a href="+code=config3333333333333333*g/aga good th"srecse WDD700 has a hin"errupn str"us port, sosw4 class="sref">configs3/a>[] = {l
 L326">v3263/a>  10" n>10m5rs/s> 3a href="+code=config3333333333333333* oa hsortecsese out.  Ocserwise, electrical noise and ocser such class="sref">configs3/a>[] = {l 3a href="+code=config3333333333333333* problems would be indist"sruishable fromsvalidyin"errupns..41" class="line" nam>
 L341">v3413/a>#def10m7       10spavalconfigs3/a>[] = {l3spav cla0  ing">" WD700_5n"r: phan"omein"errupn...\n"v class)vmment">/* String to look for     10m9       10v33l/* String to look for     103        10ref">Signaoure3/a> 3a hr10ref>10re  >        *}mment">/* String to look for     10r1       10a href="drivers/scsi/wd710a h>10rlass="comment">/* xv125ns = 8000ns (BI10r2       1000d */3/spavalv3283/a>      slagal
 L257">MB_INTRd700))"comment">/* xv125ns = 8000ns (BI10r3       10"sref">NUM_SIGNATURES3/a10"sr>10r3rs/scsi/wd70csi/wd70gotod#L331" id
 L331ackvers/scsi/wd700ackd700vmment">/* String to look for     1034       10 href="+code=signaoures"10 hr>10r4rs/smment">/* String to look for     1035       10 class="line" nam>
 L33710 cl>10r5rs/scsi/wd703/a>3spav cla="sref">SignTsehin"errupn /ag">BUa mailbox3*" class="sref">configs3/a>[] = {l10re" nam>
 L237if (!(c#L355" id
 L35slag>v3283/a>      slagal
 L257">IMB_INTRd700))comment">/* String to look for     1037       10ment"> *  I/O Port Offse10men>10r7  >        *********c#L355" id
 L35dpr5n"kvers/scsi/wd700dpr5n"kd700(c/a>3spav cla0  ing">" WD700_5n"r: free outgo"sremailbox\n"v class)vmment">/* String to look for     1038       10" nam>
 L339">v3393/a>3s10" n>10r8  >        *********c 3a href="+code=confi/ad7 class="line" nam>
 L341">v3413/a>#def10r9       10" id
 L340" class="line"10" i>10r340">v343spav class="co***************** IfSsleep_on() nt"Sc6" "in"errupn sr0free OGMB" omment"Sar4 class="sref">configs3/a>[] = {l10="40">v343spav class="co***************** ussd /n mail_out(),nwake_up() should correspondingly be callsd class="sref">configs3/a>[] = {lBUnow,swe do3't need tosdo anyth"srespecial41" class="line" nam>
 L341">v3413/a>#def1042       10/spavalconfigs3/a>[] = {l/* String to look for     1044       103/spaval/* String to look for     1045       10/spaval/* String to look for     10=6       10s/scsi/wd7000.c#L348" id10s/s>10=6rs/scsi/wd703/a>3spav cla="sref">SignTsehin"errupn /ag">BUa hin="s"sremailbox3*" class="sref">configs3/a>[] = {l * ASC Status Port10men>10=	  >        *c#L355" id
 L35icmne" nam>
 L257">icmnalv3283/a>      slagalv3283/a>      MB_MASKd700vmment">/* String to look for     1048       103spav class="comment"> *103sp>10=8  >        *302" id
 L302" icmn_ptr"usL329">v3293/a>}icmn_ptr"usss="== #L331" id
 L331icmnsL329">v3293/a>}icmn"rs/s["sref">unchar3/icmne" nam>
 L257">icmnalv3293/a>}str"usss="vmment">/* String to look for     1049       10="+code=INT_IM" class="s10="+>10=963/a>       if (302" id
 L302" icmn_ptr"usL329">v3293/a>}icmn_ptr"usss="=&v30x80)cosi/wd703/a>3spav cla="sref">Signunsolicitede- result /n ICMB3*" class="sref">configs3/a>[] = {l3spav cla0  ing">" WD700_5n"r: unsolicitedein"errupn 0x%02x\n"v class, #L331" id
 L331icmn_ptr"usL329">v3293/a>}icmn_ptr"usss=")vmment">/* String to look for     1051       10 */3/spaval/* String to look for     1052       10 */3/spaval/* String to look for     1053       10  */3/spaval/* Tim> that WD7000 sp10*4       10erved */3/spaval10*4rs/scsi/wd703/a>3spav cla="sref">SignAaaargh! (Zaga)e*" class="sref">configs3/a>[] = {l10*5rs/scsi/wd70302" id
 L302" o bdr3283/a>      scbal      [] =2in"d700((c#L355" id
 L357000_revisi v      */3/spavalv3293/a>}icmn"rs/s["sref">unchar3/icmne" nam>
 L257">icmnal/* String to look for     1056       10ment"> *vCOMMAND opcodes10men>10*6rs/scsi/wd70302" id
 L302" icmnsL329">v3293/a>}icmn"rs/s["sref">unchar3/icmne" nam>
 L257">icmnalv3293/a>}str"usss=" = 0vmment">/* String to look for     1057       103spav class="comment"> *103sp>10*763/a>       if (302" id
 L302" o bdr3283/a>      scbal      opalv3283/a>      ICB_OP_MASKd700) {wd703/a>3spav cla="sref">Sign>3sSCB /agdospe*" class="sref">configs3/a>[] = {l *  Unfortunaoely,10men>10*8  >        *********c#L355" id
 L35i bdr3283/a>      icbal      scbalconfigs3/a>[] = {l10*963/a>        a      c#L355" id
 L35i bdr3283/a>      icbalv3293/a>}str"usss=" = #L331" id
 L331icmn_ptr"usL329">v3293/a>}icmn_ptr"usss="v"sref">configs3/a>[] = {l107063/a>        a      c#L355" id
 L35i bdr3283/a>      icbal/* String to look for     1061       1000.c#L362" id
 L362" cla1000.>1071rs/scsi/wd70csi/wd70gotod#L331" id
 L331ackvers/scsi/wd700ackd700vmment">/* String to look for     1062       107000.c#L363" id
 L363" c10700>1072  >        *}mment">/* String to look for     1063       1000.c#L364" id
 L364" cla1000.>1073rs/s="comment">/* Tim> that WD7000 sp1064       10="+code=NO_OP" class="sr10="+>1074rs/scsi/wd70302" id
 L302" SCpn"dr3283/a>      SCpn"rs/s== #L331" id
 L331o bdr3283/a>      scbal      SCpn"rs/svmment">/* String to look for     1065       10_STAT  */3/spaval107563/a>       if (--(c#L355" id
 L35SCpn"dr3283/a>      SCpn"rs/s->#L331" id
 L331SCpdr3283/a>      SCprs/s.#L331" id
 L331phaseevisi v      */phasess=") <= 0)cocsi/wd703/a>3spav cla="sref">Signall scbs are>dospe*" class="sref">configs3/a>[] = {l107e" nam>
 L237csi/wd70#L331" id
 L331.c#L_errorevisi v      */.c#L_erroral      scbalv3293/a>}icmn_ptr"usss="=<< 8)vmment">/* String to look for     1067       10nterrupts         */3/sp10nte>1077  >        *********c#L355" id
 L35sclo_errorevisi v      */o lo_errorss="== #L331" id
 L331o bdr3283/a>      scbalv3293/a>}str"usss="vmment">/* String to look for     1068       10errupts          */3/spa10err>1078  >        *********c#L355" id
 L35errptr"usL329">v3293/a>}errptr"usalv3283/a>      make_302"d700(#L331" id
 L331.c#L_errorevisi v      */.c#L_erroral/* String to look for     1069       10MB                 */3/s10MB >107963/a>        a      c#L355" id
 L35SCpn"dr3283/a>      SCpn"rs/s->#L331" id
 L331resultdr3283/a>      resultalv3293/a>}errptr"usal/* String to look for     107        10            */3/spaval10  rs/s="comment">/* Tim> that WD7000 sp1071       10lass="line" nam>
 L232">10las>10 1rs/scsi/wd70csi/wd70c#L355" id
 L35free_o bdr3283/a>      free_o bd700(c#L355" id
 L35[]bdr3283/a>      scbal/* String to look for     1072       10ne" nam>
 L273">v2733/a>10ne">10 2lass="line" nam>
 L321">v3213/a>3spav1073       10ne" nam>
 L274">v2743/a>10ne">10 3rs/scsi/wd70csi/wd70302" id
 L302" SCpn"dr3283/a>      SCpn"rs/s->#L331" id
 L331o lo_dospavisi v      */o lo_dospd700(c#L355" id
 L35SCpn"dr3283/a>      SCpn"rs/s)vmment">/* String to look for     1074       10e" nam>
 L275">v2753/a>}10e" >10 4  >        *}mment">/* String to look for     1075       10ef">NUM_IOPORTS3/a> 3a h10ef">10 guraomment">/* String to look for     1076       10"+code=wd7000_iobase" cl10"+c>10 e" nam#L331" id
 L331ackvers/scsi/wd700ackd700:mment">/* String to look for     1077       10lass="sref">wd7000_irq3/10las>10 	  >        *c#L355" id
 L35dpr5n"kvers/scsi/wd700dpr5n"kd700(c/a>3spav cla0  ing">" WD700_5n"r: un336c fromsin"errupn handler\n"v class)vmment">/* String to look for     1078       10ivers/scsi/wd7000.c#L27910ive>10 8  >        *302" id
 L302"  WD700_5n"r_ackvers/scsi/wd700 WD700_5n"r_ackd700(c#L355" id
 L35.c#Levisi v      */.c#Ld700)vmment">/* String to look for     1079       10=wd7000_irq" class="sref10=wd>10 class="line" nam>
 L321">v3213/a>3spav108        10lass="sref">wd7000_dma3/10las>10lars/scsi/wd70302" id
 L302" opin_un"cck_irqrestorevers/scsi/wd700spin_un"cck_irqrestored700(c#L355" id
 L35.c#Levisi v      */.c#Ld700->#L331" id
 L331sh"line" nam>
 L3shd700->#L331" id
 L331.c#L_"cckvers/scsi/wd700.c#L_"cckss=", #L331" id
 L331slag">v3283/a>      slag"ss=")vmmente" nam>
 L321">v3213/a>3spav1081       10id
 L282" class="line" n10id
>10l1rs/scsi/wd70un336c c#L355" id
 L35IRQ_HANDLEDvers/scsi/wd700IRQ_HANDLEDal/* String to look for     1082       10=wd7000_dma" class="sref10=wd>10l2lass}mment">/* String to look for     1083       10s/scsi/wd7000.c#L285" id10s/s>10l3rs/s="comment">/* Tim> that WD7000 sp1084       10ment"> * The following i10men>10l4  > ptr"332in"c302" id
 L302"  WD700_queueomment"_lckvers/scsi/wd700 WD700_queueomment"_lckd700(struc"c302" id
 L302" o lo_cmnd>v3283/a>      o lo_cmndal      SCpn"rs/s,="comment">/* Tim> that WD7000 sp1085       10#L286" id
 L286" class="10#L2>10l5rs/scsi/wd70csi/wd70void=(*#L331" id
 L331dospavisi v      */dospd700)(struc"c302" id
 L302" o lo_cmnd>v3283/a>      o lo_cmndal/* xv125ns = 8000ns (BI1086       10287">v2873/a>3spav class10287>10le" naomment">/* String to look for     1087       10rs/scsi/wd7000.c#L289" i10rs/>10l	  >        *c#L355" id
 L35Scbdr3283/a>      Scbal      scbal/* String to look for     1088       10S3/a>   8l      Sgbal      sgbal/* String to look for     1089       10>v29static struco 310>v2>10l963/a>       302" id
 L302" 7000_revisi v      */3/spaval      cdbal      SCpn"rs/s->#L331" id
 L331cmnd>v3283/a>      cmndal/* String to look for     109        10href="+code=UNITS" class10hre>10hr63/a>       302" id
 L302" 7000_revisi v      */3/spavalv3293/a>}idlunal/* String to look for     1091       10_ON3/a>    64           10_ON>10h1rs/scsi/wd70shorte302" id
 L302" cdblenL329">v3293/a>}cdblenal/* String to look for     1092       10 */3/spavalv3283/a>      nsegal/* String to look for     1093       10) */3/spaval      SCpn"rs/s->#L331" id
 L331devicvavisi v      */devicvd700->#L331" id
 L331.c#Levisi v      */.c#Ld700->#L331" id
 L331.c#Ldataevisi v      */.c#Ldataal/* String to look for     1094       10s/scsi/wd7000.c#L296" id10s/s>10h4rs/smment">/* String to look for     1095       10ment"> *  Standard Adapt10men>10h5rs/scsi/wd70302" id
 L302" cdblenL329">v3293/a>}cdblenal      SCpn"rs/s->#L331" id
 L331cm"_lenL329">v3293/a>}cm"_lenal/* String to look for     1096       10
 L297" class="line" nam10
 L>10h6rs/scsi/wd70302" id
 L302" idlunL329">v3293/a>}idlunal      SCpn"rs/s->#L331" id
 L331devicvavisi v      */devicvd700->#L331" id
 L331id>v3283/a>      idss="=<< 5) &v30xe0)=| (c#L355" id
 L35SCpn"dr3283/a>      SCpn"rs/s->#L331" id
 L331devicvavisi v      */devicvd700->#L331" id
 L331lunL329">v3293/a>}lunal
 L321">v3213/a>3spav1097       10{l      SCpn"rs/s->#L331" id
 L331o lo_dospavisi v      */o lo_dospd700== #L331" id
 L331dospavisi v      */dospd700vmmente" nam>
 L321">v3213/a>3spav1098       10q" class="sref">irq3/a>;10q" >10h8  >        *302" id
 L302" SCpn"dr3283/a>      SCpn"rs/s->#L331" id
 L331SCpdr3283/a>      SCprs/s.#L331" id
 L331phaseevisi v      */phasess="== 1vmmente" nam>
 L321">v3213/a>3spav1099       10         */3/spaval10h963/a>       302" id
 L302" o bdr3283/a>      scbalv3283/a>      al"cc_o b"d700(c#L355" id
 L35SCpn"dr3283/a>      SCpn"rs/s->#L331" id
 L331devicvavisi v      */devicvd700->#L331" id
 L331.c#Levisi v      */.c#Ld700, 1)vmment">/* String to look for     11         11         */3/spaval110ars/scsi/wd70302" id
 L302" o bdr3283/a>      scbalv3293/a>}idlunalv3293/a>}idlunal/* String to look for     11 1       11 ON3/a>    64           11 ON>11 1rs/scsi/wd70302" id
 L302" memcpyvers/scsi/wd700memcpyd700(c#L355" id
 L35[]bdr3283/a>      scbal      cdbal      cdbalv3293/a>}cdblenal/* String to look for     11 2       11 */3/spaval      scbal3spav cla="sref">SignDisable direct"sr0checke*" class="sref">configs3/a>[] = {l/* Tim> that WD7000 sp11 4       11 /scsi/wd7000.c#L296" id11 /s>11 4rs/scsi/wd70302" id
 L302" o bdr3283/a>      scbal      SCpn"rs/s== #L331" id
 L331SCpn"dr3283/a>      SCpn"rs/s;i/wd73/a>3spav cla="sref">Signsosw4 oa hfit"Sstuff la"sre*" class="sref">configs3/a>[] = {l *  Standard Adapt11 en>11 5rs/scsi/wd70302" id
 L302" SCpn"dr3283/a>      SCpn"rs/s->#L331" id
 L331.c#L_scribblevers/scsi/wd700.c#L_scribbleal      scbal/* String to look for     11 6       11  L297" class="line" nam11  L>1106rs/scsi/wd70302" id
 L302" o bdr3283/a>      scbal/* String to look for     11 7       11 l/* String to look for     1108       11 " class="sref">irq3/a>;11 " >1108  >        *302" id
 L302" nseg>v3283/a>      nsegal      SCpn"rs/s)vmment">/* String to look for     11 9       11         */3/spaval110963/a>       if (302" id
 L302" nseg>v3283/a>      nsegal/* String to look for     111        11 L311">v3113/a>3spav cla11 L3>111063/a>        a      struc"c302" id
 L302" o at"srli#Levisi v      */o at"srli#Lal      sgd700vmment">/* String to look for     1111       11"+code=Config" class="sr11"+c>1111rs/scsi/wd70csi/wd70unsigned "sref">unchar3/iL329">v3293/a>}id700vmment">/* String to look for     1112       11si/wd7000.c#L313" id
 L311si/>11 2lass="line" nam>
 L321">v3213/a>3spav1113       11 3spav class="comment">/11 3s>1113rs/scsi/wd70csi/wd70302" id
 L302" dpr5n"kvers/scsi/wd700dpr5n"kd700(c/a>3spav cla0  ing">"Us"sres at"sr/gacser with %d eleref"s.\n"v class, #L331" id
 L331nseg>v3283/a>      nsegal/* String to look for     11 4       11 3spav class="comment">/11 3s>11 4rs/smment">/* String to look for     11 5       11lass="comment">/* My con11las>1115rs/scsi/wd70csi/wd70#L331" id
 L331ogbdr3283/a>      sgbal      scbal      sgbal/* String to look for     11 6       11lass="comment">/* Empty 11las>111e" nam>
 L237csi/wd70#L331" id
 L331o bdr3283/a>      scbal      opal
 L321">v3213/a>3spav11 7       11ef">NUM_CONFIGS3/a> 3a h11ef">1117  >        *********c#L355" id
 L35any2">v3>v3283/a>      any2">v3d700(c#L355" id
 L35[]bdr3283/a>      scbal      sgbal/* String to look for     11 8       11"+code=configs" class="s11"+c>1118  >        *********c#L355" id
 L35any2">v3>v3283/a>      any2">v3d700(c#L355" id
 L35[]bdr3283/a>      scbalv3293/a>}maxlenalv3283/a>      nsegal      Sgbal/* String to look for     11 9       11s/scsi/wd7000.c#L321" id11s/s>111class="line" nam>
 L321">v3213/a>3spav112        11ment"> *  The following 11men>11mers/scsi/wd70csi/wd70cL331" id
 L331o lo_for_each_ogdr3283/a>      s lo_for_each_ogd700(c#L355" id
 L35SCpn"dr3283/a>      SCpn"rs/s, #L331" id
 L331ogdr3283/a>      sgd700, #L331" id
 L331nseg>v3283/a>      nsegalv3293/a>}id700)comment">/* String to look for     1121       11wd7000.c#L322" id
 L322"11wd7>1121rs/scsi/wd70csi/wd70********c#L355" id
 L35any2">v3>v3283/a>      any2">v3d700(c#L355" id
 L35[gbdr3283/a>      sgbalunchar3/iL329">v3293/a>}id700].#L331" id
 L331p"revisi v      */p"ralunchar3/isa_page_to_busL329">v3293/a>}isa_page_to_busd700(c#L355" id
 L35[g_pagedr3283/a>      sg_paged700(c#L355" id
 L35[gdr3283/a>      sgd700)) + #L331" id
 L331[gdr3283/a>      sgd700->#L331" id
 L331offse"dr3283/a>      offse"al/* String to look for     11m2       11000.c#L323" id
 L323" cl11000>1122rs/scsi/wd70csi/wd70********c#L355" id
 L35any2">v3>v3283/a>      any2">v3d700(c#L355" id
 L35[gbdr3283/a>      sgbalunchar3/iL329">v3293/a>}id700].#L331" id
 L331lenL329">v3293/a>}lenal      sgd700->#L331" id
 L331length"line" nam>
 L3lengthal/* String to look for     11m3       11" nam>
 L324">v3243/a>3s11" n>1123rs/scsi/wd70csi/wd70}mment">/* String to look for     11m4       113a href="+code=signaoure113a >1124  >        *} elsecomment">/* String to look for     1125       11" nam>
 L326">v3263/a>  11" n>1125rs/scsi/wd70csi/wd70#L331" id
 L331o bdr3283/a>      scbal      opal/* String to look for     1126       11spaval
 L237csi/wd70if (302" id
 L302" nseg>v3283/a>      nsegal/* String to look for     1127       11spaval      sgd700== #L331" id
 L331o lo_sgli#Levisi v      */o lo_sgli#Ld700(c#L355" id
 L35SCpn"dr3283/a>      SCpn"rs/s)vmment">/* String to look for     1128       11spavalv3>v3283/a>      any2">v3d700(c#L355" id
 L35[]bdr3283/a>      scbalunchar3/isa_page_to_busL329">v3293/a>}isa_page_to_busd700(c#L355" id
 L35[g_pagedr3283/a>      sg_paged700(c#L355" id
 L35[gdr3283/a>      sgd700)) + #L331" id
 L331[gdr3283/a>      sgd700->#L331" id
 L331offse"dr3283/a>      offse"al/* String to look for     1129       11v33l/* String to look for     113        11ref">Signaoure3/a> 3a hr11ref>113ers/scsi/wd70csi/wd70cL331" id
 L331any2">v3>v3283/a>      any2">v3d700(c#L355" id
 L35[]bdr3283/a>      scbalv3293/a>}maxlenalv3293/a>}o lo_bufflend700(c#L355" id
 L35SCpn"dr3283/a>      SCpn"rs/s))vmment">/* String to look for     11r1       11a href="drivers/scsi/wd711a h>1131rs/scsi/wd70}mment">/* String to look for     1132       1100d */3/spaval
 L321">v3213/a>3spav11r3       11"sref">NUM_SIGNATURES3/a11"sr>11r3rs/scsi/wd703/a>3spav cla="sref">SignFIXME: drop "cck nt"Syield sere ?e*" class="sref">configs3/a>[] = {l11r4rs/smment">/* String to look for     1135       11 class="line" nam>
 L33711 cl>11r5rs/scsi/wd70while (!#L331" id
 L331mail_outL329">v3293/a>}mail_outd700(c#L355" id
 L35.c#Levisi v      */.c#Ld700, c#L355" id
 L35[]bdr3283/a>      scbal/* xv125ns = 8000ns (BI11r6       11s/scsi/wd7000.c#L338" id11s/s>113e" nam>
 L237csi/wd70#L331" id
 L331cpu_relax>v3283/a>      cpu_relaxd700()vsi/w3/a>3spav cla="sref">Signkeep try"sre*" class="sref">configs3/a>[] = {l *  I/O Port Offse11men>113ref="mment">/* String to look for     1138       11" nam>
 L339">v3393/a>3s11" n>11r8  >        *un336c 0vmment">/* String to look for     11r9       11" id
 L340" class="line"11" i>11r340">}mment">/* String to look for     114        11="+code=ASC_STAT" class=11="+>114 rs/s="comment">/* Tim> that WD7000 sp1141       11aval/* Tim> that WD7000 sp1142       11/spaval
 L321">v3213/a>3spav1143       11/3/spavalv3293/a>} WD700_diagnc#Licsd700(c#L355" id
 L35"ss="srevisi v      */"ss="sralv3283/a>      co2"d700)="comment">/* Tim> that WD7000 sp1144       113/spaval/* String to look for     1145       11/spavalv3283/a>      IcbDiagrs/sc"sref">unchar3/i bdr3283/a>      icbalv3283/a>      ICB_OP_DIAGNOSTICSal/* String to look for     11=6       11s/scsi/wd7000.c#L348" id11s/s>1146rs/scsi/wd70ptr"332#L331" id
 L3317000_revisi v      */3/spaval/* String to look for     11=7       11ment"> * ASC Status Port11men>11=	  >        *unsigned longc302" id
 L302" timeoutL329">v3293/a>}timeoutal/* String to look for     1148       113spav class="comment"> *113sp>114class="line" nam>
 L310">v3 3spav1149       11="+code=INT_IM" class="s11="+>114963/a>       302" id
 L302" i bdr3283/a>      icbalv3283/a>      typ"d700== #L331" id
 L331302">v3283/a>      co2"d700vmment">/* String to look for     115        11*/3/spavalv3>v3283/a>      any2">v3d700(c#L355" id
 L35i bdr3283/a>      icbalv3293/a>}lenal/* String to look for     1151       11 */3/spavalv3>v3283/a>      any2">v3d700(c#L355" id
 L35i bdr3283/a>      icbal/* String to look for     1152       11 */3/spaval      icbal
 L321">v3213/a>3spav1153       11  */3/spavalSig class="sref">configs3/a>[] = {l1154rs/s> 3a href="+code=config33333333gnTsis routava /agonly callsd at /nit, sostsere should be OGMBs class="sref">configs3/a>[] = {l1155rs/s> 3a href="+code=config33333333* available.  I'm f="us"sresossere.  If th"s /aggo"sreto class="sref">configs3/a>[] = {l *vCOMMAND opcodes11men>115e" na> 3a href="+code=config33333333* fail, I oa hjust letecse timeout oatchecse failure. class="sref">configs3/a>[] = {l *113sp>1157  > > 3a href="+code=config33333333*" class="sref">configs3/a>[] = {l *  Unfortunaoely,11men>1158  >        *302" id
 L302" mail_outL329">v3293/a>}mail_outd700(c#L355" id
 L35.c#Levisi v      */.c#Ld700, (struc"c302" id
 L302" o bdr3283/a>      scbal      icbal/* String to look for     1159       11/wd7000.c#L360" id
 L36011/wd>115963/a>       302" id
 L302" timeoutL329">v3293/a>}timeoutalv3293/a>}jiffiesalv3293/a>}WAITnexttimeoutd700vsi/w3/a>3spav cla="sref">Signwait up tos2 seomt"se*" class="sref">configs3/a>[] = {l117063/a>       while (c#L355" id
 L35i bdr3283/a>      icbalv3293/a>}jiffiesalv3293/a>}timeoutal/* String to look for     1161       1100.c#L362" id
 L362" cla1100.>1171rs/scsi/wd70csi/wd70#L331" id
 L331cpu_relax>v3283/a>      cpu_relaxd700()vsi/w3/a>3spav cla="sref">Signwait ">BU="splet"sr0*" class="sref">configs3/a>[] = {l1162rs/scsi/wd70csi/wd70c#L355" id
 L35barrisrevisi v      */barrisrd700()v"sref">configs3/a>[] = {l1163rs/scsi/wd70}mment">/* String to look for     1164       11="+code=NO_OP" class="sr11="+>1164rs/smment">/* String to look for     1165       11_STAT  */3/spaval117563/a>       if (c#L355" id
 L35i bdr3283/a>      icbal/* String to look for     1166       11s)              */3/spav11s) >117e" nam>
 L237csi/wd70#L331" id
 L331pr5n"kvers/scsi/wd700pr5n"kd700(c/a>3spav cla0  ing">" WD700_diagnc#Lics: timed out.\n"v class)vmment">/* String to look for     1167       11nterrupts         */3/sp11nte>1177  >        *********un336c (0)vmment">/* String to look for     1168       11errupts          */3/spa11err>1178  >        *}mment">/* String to look for     1169       11MB                 */3/s11MB >116963/a>       if (302" id
 L302" make_302">v3283/a>      make_302"d700(#L331" id
 L331i bdr3283/a>      icbal      icbalv3293/a>}str"usss=" << 8), 0))comment">/* String to look for     117        11            */3/spaval117ers/scsi/wd70csi/wd70cL331" id
 L331pr5n"kvers/scsi/wd700pr5n"kd700(c/a>3spav cla0  ing">" WD700_diagnc#Lics: failed (0x%02x,0x%02x)\n"v class, #L331" id
 L331icbdr3283/a>      icbal      icbalv3293/a>}str"usss=")vmment">/* String to look for     1171       11lass="line" nam>
 L232">11las>11 1rs/scsi/wd70csi/wd70un336c (0)vmment">/* String to look for     1172       11ne" nam>
 L273">v2733/a>11ne">1172  >        *}mment">/* String to look for     1173       11ne" nam>
 L274">v2743/a>11ne">1173rs/s="comment">/* Tim> that WD7000 sp1174       11e" nam>
 L275">v2753/a>}11e" >11 4  >        *un336c (1)vmment">/* String to look for     1175       11ef">NUM_IOPORTS3/a> 3a h11ef">11 gurao}mment">/* String to look for     1176       11"+code=wd7000_iobase" cl11"+c>117class="line" nam>
 L348">v3483/a>3spav1177       11lass="sref">wd7000_irq3/11las>117ref="mment">/* String to look for     1178       11ivers/scsi/wd7000.c#L27911ive>11 8  > ptr"332in"c302" id
 L302"  WD700_ass="sr_rese"dr3283/a>       WD700_ass="sr_rese"d700(c#L355" id
 L35"ss="srevisi v      */"ss="sral/* Tim> that WD7000 sp1179       11=wd7000_irq" class="sref11=wd>11 classomment">/* String to look for     118        11lass="sref">wd7000_dma3/11las>11lars/scsi/wd70302" id
 L302" InitCm"vers/scsi/wd700InitCm"rs/sc"sref">unchar3/init_cm"vers/scsi/wd700init_cm"al/* String to look for     1181       11id
 L282" class="line" n11id
>1181rs/scsi/wd70csi/wd70#L331" id
 L331INITIALIZATIONvers/scsi/wd700INITIALIZATIONal/* String to look for     1182       11=wd7000_dma" class="sref11=wd>1182rs/scsi/wd70csi/wd707,mment">/* String to look for     1183       11s/scsi/wd7000.c#L285" id11s/s>1183rs/scsi/wd70csi/wd70302" id
 L302" .c#Levisi v      */.c#Ld700->#L331" id
 L331bus_onL329">v3293/a>}bus_onal/* String to look for     1184       11ment"> * The following i11men>1184rs/scsi/wd70csi/wd70302" id
 L302" .c#Levisi v      */.c#Ld700->#L331" id
 L331bus_offevisi v      */bus_offal/* String to look for     1185       11#L286" id
 L286" class="11#L2>11l5rs/scsi/wd70csi/wd700,mment">/* String to look for     1186       11287">v2873/a>3spav class11287>118e" nam>
 L237csi/wd70{0, 0, 0},mment">/* String to look for     1187       11rs/scsi/wd7000.c#L289" i11rs/>1187  >        *********c#L355" id
 L35OGMB_CNT>v3283/a>      OGMB_CNTal/* String to look for     1188       11S3/a>   8lv3283/a>      ICMB_CNTef="mment">/* String to look for     1189       11>v29static struco 311>v2>11l963/a>       }vmment">/* String to look for     119        11href="+code=UNITS" class11hre>11hr63/a>       in"c302" id
 L302" diag>v3283/a>      diagrs/svmment">/* String to look for     1191       11_ON3/a>    64           11_ON>11h1rs/scsi/wd703/a>3spav cla="sref">Sig class="sref">configs3/a>[] = {l
 L341">v3413/a>#def1193       11) */3/spavalconfigs3/a>[] = {l1194rs/s> 3a href="+code=config33333333g" class="sref">configs3/a>[] = {l *  Standard Adapt11men>11h5rs/scsi/wd70302" id
 L302" outbdr3283/a>      outbd700(c#L355" id
 L35"SC_RES>v3283/a>      "SC_RESalv3283/a>      "SC_CONTROLss=")vmment">/* String to look for     1196       11
 L297" class="line" nam11
 L>11h6rs/scsi/wd70302" id
 L302" udelayvers/scsi/wd700udelayd700(40);    *********c/a>3spav cla="sref">Signrese" pulse: th"s /ag40us, only need 25use*" class="sref">configs3/a>[] = {l      outbd700(0, #L331" id
 L331.c#Levisi v      */.c#Ld700->#L331" id
 L331iobaseevisi v      */iobasealv3283/a>      "SC_CONTROLss=")vmment">/* String to look for     1198       11q" class="sref">irq3/a>;11q" >11h8  >        *302" id
 L302" .c#Levisi v      */.c#Ld700->#L331" id
 L331oontrol>v3283/a>      controlal3spav cla="sref">Signth"s must always shadow "SC_CONTROLe*" class="sref">configs3/a>[] = {l119class="line" nam>
 L321">v3213/a>3spav12         12         */3/spaval120ars/scsi/wd70if (302" id
 L302" WAITL329">v3293/a>}WAITd700(c#L355" id
 L35.c#Levisi v      */.c#Ld700->#L331" id
 L331iobaseevisi v      */iobasealv3293/a>}"SC_STATalv3283/a>      "SC_STATMASKalv3283/a>      CMD_RDYal/* String to look for     12 1       12 ON3/a>    64           12 ON>1201rs/scsi/wd70csi/wd70#L331" id
 L331pr5n"kvers/scsi/wd700pr5n"kd700(cL331" id
 L331KERN_ERRe" nam>
 L257">KERN_ERRrs/sc"/a>3spav cla0  ing">" WD700_5nit: WAIT timed out.\n"v class)vmment">/* String to look for     12 2       12 */3/spavalSign-1== not oke*" class="sref">configs3/a>[] = {l/* String to look for     12 4       12 /scsi/wd7000.c#L296" id12 /s>1204rs/smment">/* String to look for     12 5       12 ent"> *  Standard Adapt12 en>120563/a>       if ((cL331" id
 L331diag>v3283/a>      diagrs/s== c#L355" id
 L35inbdr3283/a>      inbd700(c#L355" id
 L35.c#Levisi v      */.c#Ld700->#L331" id
 L331iobaseevisi v      */iobasealv3293/a>}"SC_INTR_STATal/* String to look for     12 6       12  L297" class="line" nam12  L>120e" nam>
 L237csi/wd70#L331" id
 L331pr5n"kvers/scsi/wd700pr5n"kd700(c/a>3spav cla0  ing">" WD700_5nit: "v class)vmment">/* String to look for     12 7       12 l/* String to look for     1208       12 " class="sref">irq3/a>;12 " >1208  >        *********switche(cL331" id
 L331diag>v3283/a>      diagrs/s)comment">/* String to look for     12 9       12         */3/spaval120963/a>        a      case 2:mment">/* String to look for     121        12 L311">v3113/a>3spav cla12 L3>121063/a>        a      csi/wd70#L331" id
 L331pr5n"kvers/scsi/wd700pr5n"kd700(cL331" id
 L331KERN_ERRe" nam>
 L257">KERN_ERRrs/sc"/a>3spav cla0  ing">"RAM failure.\n"v class)vmment">/* String to look for     1211       12"+code=Config" class="sr12"+c>1211rs/scsi/wd70csi/wd7000000000breakvmment">/* String to look for     1212       12si/wd7000.c#L313" id
 L312si/>1212rs/scsi/wd70csi/wd70case 3:mment">/* String to look for     1213       12 3spav class="comment">/12 3s>1213rs/scsi/wd70csi/wd70csi/wd70#L331" id
 L331pr5n"kvers/scsi/wd700pr5n"kd700(cL331" id
 L331KERN_ERRe" nam>
 L257">KERN_ERRrs/sc"/a>3spav cla0  ing">"FIFO R/W failed\n"v class)vmment">/* String to look for     1214       12 3spav class="comment">/12 3s>1214rs/scsi/wd70csi/wd7000000000breakvmment">/* String to look for     1215       12lass="comment">/* My con12las>1215rs/scsi/wd70csi/wd70case 4:mment">/* String to look for     1216       12lass="comment">/* Empty 12las>121e" nam>
 L237csi/wd70csi/wd70#L331" id
 L331pr5n"kvers/scsi/wd700pr5n"kd700(cL331" id
 L331KERN_ERRe" nam>
 L257">KERN_ERRrs/sc"/a>3spav cla0  ing">"SBIC0ungis"sr R/W failed\n"v class)vmment">/* String to look for     1217       12ef">NUM_CONFIGS3/a> 3a h12ef">1217  >        *********00000000breakvmment">/* String to look for     1218       12"+code=configs" class="s12"+c>1218  >        *********case 5:mment">/* String to look for     1219       12s/scsi/wd7000.c#L321" id12s/s>121963/a>        a      csi/wd70#L331" id
 L331pr5n"kvers/scsi/wd700pr5n"kd700(cL331" id
 L331KERN_ERRe" nam>
 L257">KERN_ERRrs/sc"/a>3spav cla0  ing">"Initializat"sr0D-FF failed.\n"v class)vmment">/* String to look for     122        12ment"> *  The following 12men>12mers/scsi/wd70csi/wd7000000000breakvmment">/* String to look for     1221       12wd7000.c#L322" id
 L322"12wd7>1221rs/scsi/wd70csi/wd70case 6:mment">/* String to look for     12m2       12000.c#L323" id
 L323" cl12000>1222rs/scsi/wd70csi/wd70********c#L355" id
 L35pr5n"kvers/scsi/wd700pr5n"kd700(cL331" id
 L331KERN_ERRe" nam>
 L257">KERN_ERRrs/sc"/a>3spav cla0  ing">"Hc#L IRQ0D-FF failed.\n"v class)vmment">/* String to look for     1223       12" nam>
 L324">v3243/a>3s12" n>1223rs/scsi/wd70csi/wd7000000000breakvmment">/* String to look for     1224       123a href="+code=signaoure123a >1224rs/scsi/wd70csi/wd70case 7:mment">/* String to look for     12m5       12" nam>
 L326">v3263/a>  12" n>1225rs/scsi/wd70csi/wd70********c#L355" id
 L35pr5n"kvers/scsi/wd700pr5n"kd700(cL331" id
 L331KERN_ERRe" nam>
 L257">KERN_ERRrs/sc"/a>3spav cla0  ing">"ROM0checksum error.\n"v class)vmment">/* String to look for     1226       12spaval
 L237csi/wd7000000000breakvmment">/* String to look for     1227       12spaval/* String to look for     12m8       12spaval
 L257">KERN_ERRrs/sc"/a>3spav cla0  ing">"diagnc#Lic  L33 0x%02Xh0uncerind.\n"v class, #L331" id
 L331diag>v3283/a>      diagrs/s)vmment">/* String to look for     1229       12v33l/* String to look for     123        12ref">Signaoure3/a> 3a hr12ref>123ers/scsi/wd70csi/wd70un336c -1vmment">/* String to look for     1231       12a href="drivers/scsi/wd712a h>1231rs/scsi/wd70}mment">/* String to look for     1232       1200d */3/spavalSignClear mailboxese*" class="sref">configs3/a>[] = {lNUM_SIGNATURES3/a12"sr>1233rs/scsi/wd70#L331" id
 L331memse"dr3283/a>      memse"d700(&v(c#L355" id
 L35.c#Levisi v      */.c#Ld700->#L331" id
 L331mbdr3283/a>      mbal      mbal/* String to look for     1234       12 href="+code=signaoures"12 hr>12r4rs/smment">/* String to look for     1235       12 class="line" nam>
 L33712 cl>12r5rs/scsi/wd70c/a>3spav cla="sref">SignExecute /nit omment"e*" class="sref">configs3/a>[] = {l1236rs/scsi/wd70302" id
 L302" any2">v3>v3283/a>      any2">v3d700((c#L355" id
 L357000_revisi v      */3/spaval      mailboxesal      mbal/* String to look for     1237       12ment"> *  I/O Port Offse12men>1237  >        *if (!#L331" id
 L331omment"_outL329">v3293/a>}omment"_outd700(c#L355" id
 L35.c#Levisi v      */.c#Ld700, (c#L355" id
 L357000_revisi v      */3/spaval/* String to look for     1238       12" nam>
 L339">v3393/a>3s12" n>1238  >        *********c#L355" id
 L35pr5n"kvers/scsi/wd700pr5n"kd700(cL331" id
 L331KERN_ERRe" nam>
 L257">KERN_ERRrs/sc"/a>3spav cla0  ing">" WD700_ass="sr_rese": ass="sr initializat"sr0failed.\n"v class)vmment">/* String to look for     12r9       12" id
 L340" class="line"12" i>123963/a>        a      un336c -1vmment">/* String to look for     124        12="+code=ASC_STAT" class=12="+>1240rs/scsi/wd70}mment">/* String to look for     1241       12aval/* String to look for     1242       12/spavalv3293/a>}WAITd700(c#L355" id
 L35.c#Levisi v      */.c#Ld700->#L331" id
 L331iobaseevisi v      */iobasealv3293/a>}"SC_STATalv3283/a>      "SC_STATMASKalv3293/a>}"SC_INITal/* String to look for     1243       12/3/spaval3spav cla0  ing">" WD700_ass="sr_rese": WAIT timed out.\n"v class)vmment">/* String to look for     1244       123/spaval/* String to look for     1245       12/spaval/* String to look for     1246       12s/scsi/wd7000.c#L348" id12s/s>1246rs/scsi/wd70un336c 0vmment">/* String to look for     12=7       12ment"> * ASC Status Port12men>12=	  > }mment">/* String to look for     1248       123spav class="comment"> *123sp>124class="line" nam>
 L310">v3 3spav1249       12="+code=INT_IM" class="s12="+>124963/aptr"332in"c302" id
 L302"  WD700_initvers/scsi/wd700 WD700_initd700(c#L355" id
 L35"ss="srevisi v      */"ss="sral/* Tim> that WD7000 sp125        12*/3/spaval/* String to look for     1251       12 */3/spaval       WD700_ass="sr_rese"d700(c#L355" id
 L35.c#Levisi v      */.c#Ld700) == -1)="comment">/* Tim> that WD7000 sp1252       12 */3/spaval/* String to look for     1253       12  */3/spaval/* Tim> that WD7000 sp12*4       12erved */3/spaval1254rs/smment">/* String to look for     12*5       12s/scsi/wd7000.c#L357" id12s/s>125563/a>       if (c#L355" id
 L35request_irqevisi v      */request_irqd700(c#L355" id
 L35.c#Levisi v      */.c#Ld700->#L331" id
 L331irqevisi v      */irqd700, #L331" id
 L331 WD700_in"revisi v      */ WD700_in"rd700, #L331" id
 L331IRQF_DISABLEDvers/scsi/wd700IRQF_DISABLEDd700, #/a>3spav cla0  ing">" WD700"v class, #L331" id
 L331.c#Levisi v      */.c#Ld700))comment">/* String to look for     12*6       12ment"> *vCOMMAND opcodes12men>125e" nam>
 L237csi/wd70#L331" id
 L331pr5n"kvers/scsi/wd700pr5n"kd700(c/a>3spav cla0  ing">" WD700_5nit: can't geL IRQ0%d.\n"v class, #L331" id
 L331.c#Levisi v      */.c#Ld700->#L331" id
 L331irqevisi v      */irqd700)vmment">/* String to look for     12*7       123spav class="comment"> *123sp>1257  >        *********un336c (0)vmment">/* String to look for     12*8       12ment"> *  Unfortunaoely,12men>1258  >        *}mment">/* String to look for     1259       12/wd7000.c#L360" id
 L36012/wd>125963/a>       if (302" id
 L302" request_dmaevisi v      */request_dmad700(c#L355" id
 L35.c#Levisi v      */.c#Ld700->#L331" id
 L331dmaevisi v      */dmad700, #/a>3spav cla0  ing">" WD700"v class))comment">/* String to look for     126        127000.c#L361" id
 L361" c12700>126ers/scsi/wd70csi/wd70cL331" id
 L331pr5n"kvers/scsi/wd700pr5n"kd700(c/a>3spav cla0  ing">" WD700_5nit: can't geL DMA channel0%d.\n"v class, #L331" id
 L331.c#Levisi v      */.c#Ld700->#L331" id
 L331dmaevisi v      */dmad700)vmment">/* String to look for     1261       1200.c#L362" id
 L362" cla1200.>1271rs/scsi/wd70csi/wd70#L331" id
 L331free_irqevisi v      */free_irqd700(c#L355" id
 L35.c#Levisi v      */.c#Ld700->#L331" id
 L331irqevisi v      */irqd700, #L331" id
 L331.c#Levisi v      */.c#Ld700)vmment">/* String to look for     1262       127000.c#L363" id
 L363" c12700>1262rs/scsi/wd70csi/wd70un336c (0)vmment">/* String to look for     1263       1200.c#L364" id
 L364" cla1200.>1263rs/scsi/wd70}mment">/* String to look for     1264       12="+code=NO_OP" class="sr12="+>1264rs/scsi/wd70302" id
 L302"  WD700_enable_dmaevisi v      */ WD700_enable_dmad700(c#L355" id
 L35.c#Levisi v      */.c#Ld700)vmment">/* String to look for     1265       12_STAT  */3/spaval1265rs/scsi/wd70302" id
 L302"  WD700_enable_in"revisi v      */ WD700_enable_in"rd700(c#L355" id
 L35.c#Levisi v      */.c#Ld700)vmment">/* String to look for     1266       12s)              */3/spav12s) >126class="line" nam>
 L348">v3483/a>3spav1267       12nterrupts         */3/sp12nte>1267  >        *if (!#L331" id
 L331 WD700_diagnc#Licsevisi v      */ WD700_diagnc#Licsd700(c#L355" id
 L35.c#Levisi v      */.c#Ld700, c#L355" id
 L35ICB_DIAG_FULL>v3283/a>      ICB_DIAG_FULLd700))comment">/* String to look for     1268       12errupts          */3/spa12err>1268  >        *********c#L355" id
 L35free_dmaevisi v      */free_dmad700(c#L355" id
 L35.c#Levisi v      */.c#Ld700->#L331" id
 L331dmaevisi v      */dmad700)vmment">/* String to look for     1269       12MB                 */3/s12MB >126963/a>        a      #L331" id
 L331free_irqevisi v      */free_irqd700(c#L355" id
 L35.c#Levisi v      */.c#Ld700->#L331" id
 L331irqevisi v      */irqd700, #L331" id
 L331NULL>v3283/a>      NULLd700)vmment">/* String to look for     127        12            */3/spaval127ers/scsi/wd70csi/wd70un336c (0)vmment">/* String to look for     1271       12lass="line" nam>
 L232">12las>1271rs/scsi/wd70}mment">/* String to look for     1272       12ne" nam>
 L273">v2733/a>12ne">1272lass="line" nam>
 L321">v3213/a>3spav1273       12ne" nam>
 L274">v2743/a>12ne">1273rs/scsi/wd70un336c (1)vmment">/* String to look for     1274       12e" nam>
 L275">v2753/a>}12e" >12 4  > }mment">/* String to look for     1275       12ef">NUM_IOPORTS3/a> 3a h12ef">12 guraomment">/* String to look for     1276       12"+code=wd7000_iobase" cl12"+c>127class="line" nam>
 L348">v3483/a>3spav1277       12lass="sref">wd7000_irq3/12las>127ref="ptr"332void "sref">unchar3/ WD700_revisionL329">v3293/a>} WD700_revisiond700(c#L355" id
 L35"ss="srevisi v      */"ss="sral/* Tim> that WD7000 sp1278       12ivers/scsi/wd7000.c#L27912ive>12 8  > omment">/* String to look for     1279       12=wd7000_irq" class="sref12=wd>127963/a>       ptr"332#L331" id
 L331IcbRevLvl>v3283/a>      IcbRevLvlrs/sc"L331" id
 L331i bdr3283/a>      icbal/* String to look for     128        12lass="sref">wd7000_dma3/12las>128 rs/s="comment">/* Tim> that WD7000 sp1281       12id
 L282" class="line" n12id
>1281rs/scsi/wd70302" id
 L302" i bdr3283/a>      icbal
 L321">v3213/a>3spav1282       12=wd7000_dma" class="sref12=wd>1282  >        *c/a>3spav cla="sref">Sig class="sref">configs3/a>[] = {l1283rs/s> 3a href="+code=config33333333* Like diagnc#Lics, th"s /agonly done at /nit time,2in fact, from class="sref">configs3/a>[] = {l * The following i12men>1284rs/s> 3a href="+code=config33333333gn WD700_detect, sostsere should be OGMBs available.  If it "ails,d7 class="line" nam>
 L341">v3413/a>#def1285       12#L286" id
 L286" class="12#L2>1285rs/s> 3a href="+code=config33333333* cse only damage will be tha"ecse revision will show up as 0.0,d7 class="line" nam>
 L341">v3413/a>#def1286       12287">v2873/a>3spav class12287>128e" na> 3a href="+code=config33333333* which2in 336c means tha"es at"sr/gacser will be disabled. class="sref">configs3/a>[] = {l1287  > > 3a href="+code=config33333333*" class="sref">configs3/a>[] = {l   8lv3293/a>}mail_outd700(c#L355" id
 L35.c#Levisi v      */.c#Ld700, (struc"c302" id
 L302" o bdr3283/a>      scbal      icbal/* String to look for     1289       12>v29static struco 312>v2>12l963/a>       while (c#L355" id
 L35i bdr3283/a>      icbal/* String to look for     129        12href="+code=UNITS" class12hre>129ers/scsi/wd70csi/wd70cL331" id
 L331cpu_relax>v3283/a>      cpu_relaxd700()vsi/w3/a>3spav cla="sref">Signwait ">BU="splet"sr0*" class="sref">configs3/a>[] = {l    64           12_ON>1291rs/scsi/wd70csi/wd70#L331" id
 L331barrisrevisi v      */barrisrd700()v"sref">configs3/a>[] = {l/* String to look for     1293       12) */3/spaval      icbalconfigs3/a>[] = {l1294rs/scsi/wd70302" id
 L302" .c#Levisi v      */.c#Ld700->#L331" id
 L331rev2evisi v      */rev2ss="== c#L355" id
 L35i bdr3283/a>      icbalconfigs3/a>[] = {l *  Standard Adapt12men>129gurao}mment">/* String to look for     1296       12
 L297" class="line" nam12
 L>129class="line" nam>
 L348">v3483/a>3spav1297       12{l/* String to look for     1298       12q" class="sref">irq3/a>;12q" >12h8  > #undef c#L355" id
 L35SPRINTFvers/scsi/wd700SPRINTFef="mment">/* String to look for     1299       12         */3/spaval129class#def/sp c#L355" id
 L35SPRINTFvers/scsi/wd700SPRINTFef="(c#L355" id
 L35argsevisi v      */argsal
 L3lengthal/* String to look for     13         13         */3/spaval130 rs/s="comment">/* Tim> that WD7000 sp13 1       13 ON3/a>    64           13 ON>130ig3/aptr"332in"c302" id
 L302"  WD700_set_infoL329">v3293/a>} WD700_set_infoef="(spav *#L331" id
 L331buffsrevisi v      */buffsral
 L3lengthal/* Tim> that WD7000 sp13 2       13 */3/spaval/* String to look for     13 3       13  */3/spaval3spav cla0  ing">"Buffsr== <%.*s>, length== %d\n"v class, #L331" id
 L331length"line" nam>
 L3lengthal
 L3lengthalconfigs3/a>[] = {l1304rs/smment">/* String to look for     13 5       13 ent"> *  Standard Adapt13 en>1305rs/scsi/wd70c/a>3spav cla="sref">Sig class="sref">configs3/a>[] = {l130e" na> 3a href="+code=config33333333* Currconly th"s /aga no-opallass="sref">configs3/a>[] = {lconfigs3/a>[] = {lirq3/a>;13 " >1308  >        *302" id
 L302" dpr5n"kvers/scsi/wd700dpr5n"kd700(c/a>3spav cla0  ing">"Sorry, th"s funct"sr0"s currconly out of order...\n"v class)vmment">/* String to look for     13 9       13         */3/spaval130963/a>       un336c (#L331" id
 L331length"line" nam>
 L3lengthalconfigs3/a>[] = {lv3113/a>3spav cla13 L3>131063/a}mment">/* String to look for     1311       13"+code=Config" class="sr13"+c>131ig3/amment">/* String to look for     1312       13si/wd7000.c#L313" id
 L313si/>1312lass="line" nam>
 L321">v3213/a>3spav1313       13 3spav class="comment">/13 3s>1313rs/sptr"332in"c302" id
 L302"  WD700_proc_infoL329">v3293/a>} WD700_proc_infod700(struc"c302" id
 L302" Stha_Hc#Levisi v      */Stha_Hc#Lal      off_trs/sc"L331" id
 L331offse"dr3283/a>      offse"al
 L3lengthalv3293/a>}inoutd700)="comment">/* Tim> that WD7000 sp1314       13 3spav class="comment">/13 3s>1314  > omment">/* String to look for     1315       13lass="comment">/* My con13las>1315rs/scsi/wd70302" id
 L302" "ss="srevisi v      */"ss="sralconfigs3/a>[] = {l/* Empty 13las>131e" nam>
 L237unsigned longc302" id
 L302" flagsevisi v      */flagsalconfigs3/a>[] = {lNUM_CONFIGS3/a> 3a h13ef">1317  >        *spav *#L331" id
 L331posevisi v      */posss="== #L331" id
 L331buffsrevisi v      */buffsralconfigs3/a>[] = {l1318  > #ifdef c#L355" id
 L35WDD700_DEBUGevisi v      */WDD700_DEBUGlass="line" nam>
 L321">v3213/a>3spav1319       13s/scsi/wd7000.c#L321" id13s/s>131963/a>       302" id
 L302" Mailboxevisi v      */Mailboxalconfigs3/a>[] = {l *  The following 13men>13mers/scsi/wd70shor"c302" id
 L302" 30untL329">v3293/a>}omuntalconfigs3/a>[] = {l1321rs/s#endif"sref">configs3/a>[] = {l1322lass="line" nam>
 L321">v3213/a>3spav1323       13" nam>
 L324">v3243/a>3s13" n>1323rs/scsi/wd70c/a>3spav cla="sref">Sig class="sref">configs3/a>[] = {lconfigs3/a>[] = {l
 L326">v3263/a>  13" n>1325rs/s> 3a href="+code=config33333333*" class="sref">configs3/a>[] = {l
 L237if (c#L355" id
 L35inoutL329">v3293/a>}inoutd700)="comment">/* Tim> that WD7000 sp1327       13spavalv3293/a>} WD700_set_infoef="(#L331" id
 L331buffsrevisi v      */buffsral
 L3lengthalconfigs3/a>[] = {l
 L310">v3 3spav1329       13v33lconfigs3/a>[] = {lSignaoure3/a> 3a hr13ref>133ars/scsi/wd70302" id
 L302" SPRINTFvers/scsi/wd700SPRINTFef="(c/a>3spav cla0  ing">"Hc#L [] =%d: Wes"srn Digital WD-v3293/a>}.c#L_noalconfigs3/a>[] = {l"  IO base:i/wd700x%x\n"v class, #L331" id
 L331ass="srevisi v      */ass="sralconfigs3/a>[] = {l"  IRQ: *********%d\n"v class, #L331" id
 L331ass="srevisi v      */ass="sral/* String to look for     13r3       13"sref">NUM_SIGNATURES3/a13"sr>1333rs/scsi/wd70#L331" id
 L331SPRINTFvers/scsi/wd700SPRINTFef="(c/a>3spav cla0  ing">"  DMA channel:**%d\n"v class, #L331" id
 L331ass="srevisi v      */ass="sral/* String to look for     1334       13 href="+code=signaoures"13 hr>1334rs/scsi/wd70302" id
 L302" SPRINTFvers/scsi/wd700SPRINTFef="(c/a>3spav cla0  ing">"  In"srrupts:***%d\n"v class, #L331" id
 L331ass="srevisi v      */ass="sral/* String to look for     1335       13 class="line" nam>
 L33713 cl>1335rs/scsi/wd70302" id
 L302" SPRINTFvers/scsi/wd700SPRINTFef="(c/a>3spav cla0  ing">"  BUS_ON time:**%dm>
noseomt"s\n"v class, #L331" id
 L331ass="srevisi v      */ass="sralv3293/a>}bus_onal/* String to look for     1336       13s/scsi/wd7000.c#L338" id13s/s>1336rs/scsi/wd70302" id
 L302" SPRINTFvers/scsi/wd700SPRINTFef="(c/a>3spav cla0  ing">"  BUS_OFF time:*%dm>
noseomt"s\n"v class, #L331" id
 L331ass="srevisi v      */ass="sral/* String to look for     1337       13ment"> *  I/O Port Offse13men>133ref="mment">/* String to look for     1338       13" nam>
 L339">v3393/a>3s13" n>1338  > #ifdef c#L355" id
 L35WDD700_DEBUGevisi v      */WDD700_DEBUGlass="line" nam>
 L321">v3213/a>3spav13r9       13" id
 L340" class="line"13" i>133963/a>       302" id
 L302" ogmbsevisi v      */ogmbsal      mbalconfigs3/a>[] = {l134ars/scsi/wd70302" id
 L302" icmbsevisi v      */icmbsal      mbalconfigs3/a>[] = {l/* String to look for     1342       13/spaval"\nControlepor"cvalue:*0x%x\n"v class, #L331" id
 L331ass="srevisi v      */ass="sralv3283/a>      controlal/* String to look for     1343       13/3/spaval"Incoming mailbox:\n"v class)vmment">/* String to look for     1344       133/spaval"  size:*%d\n"v class, #L331" id
 L331ICMB_CNT>v3283/a>      ICMB_CNTef=")vmment">/* String to look for     1345       13/spaval"  queued messages: "v class)vmment">/* String to look for     1346       13s/scsi/wd7000.c#L348" id13s/s>134class="line" nam>
 L348">v3483/a>3spav13=7       13ment"> * ASC Status Port13men>1347  >        *">BU(c#L355" id
 L35ievisi v      */ialv3293/a>}omuntalv3283/a>      ICMB_CNTef="vsc#L355" id
 L35ievisi v      */ial/* Tim> that WD7000 sp1348       133spav class="comment"> *133sp>1348  >        *********if (c#L355" id
 L35icmbsevisi v      */icmbsalv3293/a>}str"usss=")comment">/* String to look for     1349       13="+code=INT_IM" class="s13="+>134963/a>        a      csi/wd70#L331" id
 L33130untL329">v3293/a>}omuntal/* String to look for     135        13*/3/spaval"0x%x "v class, #L331" id
 L331ievisi v      */ial/* String to look for     1351       13 */3/spaval/* String to look for     1352       13 */3/spaval
 L321">v3213/a>3spav1353       13  */3/spavalv3293/a>}omuntal3spav cla0  ing">"\n"v class : #/a>3spav cla0  ing">"none\n"v class)vmment">/* String to look for     13*4       13erved */3/spaval1354rs/smment">/* String to look for     13*5       13s/scsi/wd7000.c#L357" id13s/s>1355rs/scsi/wd70302" id
 L302" SPRINTFvers/scsi/wd700SPRINTFef="(c/a>3spav cla0  ing">"Outgoing mailbox:\n"v class)vmment">/* String to look for     13*6       13ment"> *vCOMMAND opcodes13men>1356rs/scsi/wd70302" id
 L302" SPRINTFvers/scsi/wd700SPRINTFef="(c/a>3spav cla0  ing">"  size:*%d\n"v class, #L331" id
 L331OGMB_CNT>v3283/a>      OGMB_CNTal/* String to look for     13*7       133spav class="comment"> *133sp>135	  >        *c#L355" id
 L35SPRINTFvers/scsi/wd700SPRINTFef="(c/a>3spav cla0  ing">"  next message:*0x%x\n"v class, #L331" id
 L331ass="srevisi v      */ass="sral/* String to look for     13*8       13ment"> *  Unfortunaoely,13men>1358  >        *302" id
 L302" SPRINTFvers/scsi/wd700SPRINTFef="(c/a>3spav cla0  ing">"  queued messages: "v class)vmment">/* String to look for     1359       13/wd7000.c#L360" id
 L36013/wd>135class="line" nam>
 L321">v3213/a>3spav136        137000.c#L361" id
 L361" c13700>136ers/scsi/wd70">BU(c#L355" id
 L35ievisi v      */ialv3293/a>}omuntalv3283/a>      OGMB_CNTal/* Tim> that WD7000 sp1361       1300.c#L362" id
 L362" cla1300.>1371rs/scsi/wd70csi/wd70if (c#L355" id
 L35ogmbsevisi v      */ogmbsalv3293/a>}str"usss=")comment">/* String to look for     1362       137000.c#L363" id
 L363" c13700>1362rs/scsi/wd70csi/wd70csi/wd70#L331" id
 L33130untL329">v3293/a>}omuntal/* String to look for     1363       1300.c#L364" id
 L364" cla1300.>1363rs/scsi/wd70csi/wd7000000000#L331" id
 L331SPRINTFvers/scsi/wd700SPRINTFef="(c/a>3spav cla0  ing">"0x%x "v class, #L331" id
 L331ievisi v      */ial/* String to look for     1364       13="+code=NO_OP" class="sr13="+>1364rs/scsi/wd70csi/wd70}mment">/* String to look for     1365       13_STAT  */3/spaval136guraomment">/* String to look for     1366       13s)              */3/spav13s) >1366rs/scsi/wd70302" id
 L302" SPRINTFvers/scsi/wd700SPRINTFef="(cL331" id
 L33130untL329">v3293/a>}omuntal3spav cla0  ing">"\n"v class : #/a>3spav cla0  ing">"none\n"v class)vmment">/* String to look for     1367       13nterrupts         */3/sp13nte>1367  > #endif"sref">configs3/a>[] = {l136class="line" nam>
 L310">v3 3spav1369       13MB                 */3/s13MB >136963/a>       302" id
 L302" spin_unlock_irqrestoreevisi v      */spin_unlock_irqrestored700(c#L355" id
 L35.c#Levisi v      */.c#Ld700->#L331" id
 L331.c#L_lockevisi v      */.c#L_lockalconfigs3/a>[] = {l137 rs/s="comment">/* Tim> that WD7000 sp1371       13lass="line" nam>
 L232">13las>1371rs/scsi/wd70c/a>3spav cla="sref">Sig class="sref">configs3/a>[] = {l
 L273">v2733/a>13ne">1372lass> 3a href="+code=config33333333* Calculate ptrrL of next buffsr, nt"eun336c value. class="sref">configs3/a>[] = {l
 L274">v2743/a>13ne">1373rs/s> 3a href="+code=config33333333*" class="sref">configs3/a>[] = {l
 L275">v2753/a>}13e" >1374rs/scsi/wd70*#L331" id
 L331ptrrLevisi v      */ptrrLal      offse"alconfigs3/a>[] = {lNUM_IOPORTS3/a> 3a h13ef">13 guraomment">/* String to look for     1376       13"+code=wd7000_iobase" cl13"+c>137e" nam>
 L237if ((302" id
 L302" posevisi v      */posss="=- #L331" id
 L331buffsrevisi v      */buffsral      offse"al/* Tim> that WD7000 sp1377       13lass="sref">wd7000_irq3/13las>1377  >        *********un336c (0)vmment">/* String to look for     1378       13ivers/scsi/wd7000.c#L27913ive>1378  >        *else7if ((302" id
 L302" posevisi v      */posss="=- #L331" id
 L331buffsrevisi v      */buffsral      offse"al
 L3lengthal/* String to look for     1379       13=wd7000_irq" class="sref13=wd>137963/a>        a      un336c (302" id
 L302" posevisi v      */posss="=- #L331" id
 L331buffsrevisi v      */buffsral      offse"al/* String to look for     138        13lass="sref">wd7000_dma3/13las>1380  >        *elsemment">/* String to look for     1381       13id
 L282" class="line" n13id
>1381rs/scsi/wd70csi/wd70un336c (#L331" id
 L331length"line" nam>
 L3lengthalconfigs3/a>[] = {l/* String to look for     1383       13s/scsi/wd7000.c#L285" id13s/s>1383rs/s="comment">/* Tim> that WD7000 sp1384       13ment"> * The following i13men>1384rs/smment">/* String to look for     1385       13#L286" id
 L286" class="13#L2>1385rs/s> 3a href="+code=confiig class="sref">configs3/a>[] = {lv2873/a>3spav class13287>138e" na> 3a href="+code=config*  Rn336csecse number of ass="srs th"s figs3/0"s suppor"ing. class="sref">configs3/a>[] = {l1387  > > 3a href="+code=configg class="sref">configs3/a>[] = {l   8lBU.c#Ls.c says toewait toecall stha_ungis"sr until 100% class="sref">configs3/a>[] = {lv29static struco 313>v2>13l963/a> 3a href="+code=config*  sure about a hass="sr.  We need toedo it a little sooneBU.ere; we class="sref">configs3/a>[] = {l139ers/s> 3a href="+code=config*  need tse storage se" up by stha_ungis"sr be">Ben WD700_/nit, nt" class="sref">configs3/a>[] = {l    64           13_ON>1391rs/s> 3a href="+code=config*  changing tse locat"sr0of an "ss="sr*struc"ure "s m>Bentrouble than class="sref">configs3/a>[] = {lconfigs3/a>[] = {lconfigs3/a>[] = {l1394rs/s> 3a href="+code=config*" class="sref">configs3/a>[] = {l *  Standard Adapt13men>139guraomment">/* String to look for     1396       13
 L297" class="line" nam13
 L>139classptr"332#L331" id
 L331__initvers/scsi/wd700__initd7002in"c302" id
 L302"  WD700_detectvers/scsi/wd700 WD700_detectd700(struc"c302" id
 L302" o ha_.c#L_templateevisi v      */p ha_.c#L_templated7002*#L331" id
 L331tpntL329">v3293/a>}tpntal/* String to look for     1397       13{l/* String to look for     1398       13q" class="sref">irq3/a>;13q" >1398  >        *shor"c302" id
 L302" presentL329">v3293/a>}presentalv3293/a>}p">valconfigs3/a>[] = {l1399  >        *shor"c302" id
 L302" biosp"revisi v      */biosp"ralconfigs3/a>[] = {l1400  >        *unsigned #L331" id
 L331iobaseevisi v      */iobasealconfigs3/a>[] = {l    64           14 ON>1401rs/scsi/wd70302" id
 L302" "ss="srevisi v      */"ss="sralv3283/a>      NULLd700v"sref">configs3/a>[] = {l
 L3shd700v"sref">configs3/a>[] = {l/* String to look for     14 4       14 /scsi/wd7000.c#L296" id14 /s>1404rs/smment">/* String to look for     14 5       14 ent"> *  Standard Adapt14 en>1405rs/scsi/wd70302" id
 L302" dpr5n"kvers/scsi/wd700dpr5n"kd700(c/a>3spav cla0  ing">" WD700_detect: ptrrLed\n"v class)v"sref">configs3/a>[] = {l140class="line" nam>
 L348">v3483/a>3spav14 7       14 l
 L348">v3483/a>3spav14 8       14 " class="sref">irq3/a>;14 " >1408  >        *if (302" id
 L302"  WD700vers/scsi/wd700 WD700al/* String to look for     14 9       14         */3/spaval140963/a>        a      #L331" id
 L331 WD700_setupvers/scsi/wd700 WD700_setupd700(c#L355" id
 L35 WD700vers/scsi/wd700 WD700alconfigs3/a>[] = {lv3113/a>3spav cla14 L3>141063/a#endif"sref">configs3/a>[] = {l141ig3/amment">/* String to look for     1412       14si/wd7000.c#L313" id
 L314si/>1412rs/scsi/wd70">BU(c#L355" id
 L35ievisi v      */ialv3283/a>      NULLd700)v"sref">configs3/a>[] = {l/14 3s>1413rs/scsi/wd70">BU(c#L355" id
 L35ievisi v      */ial/* String to look for     1414       14 3spav class="comment">/14 3s>1414rs/smment">/* String to look for     1415       14lass="comment">/* My con14las>1415rs/scsi/wd70302" id
 L302" tpntL329">v3293/a>}tpntalv3293/a>}proc_ My d700== #/a>3spav cla0  ing">" WD700"v classvmment">/* String to look for     1416       14lass="comment">/* Empty 14las>1416rs/scsi/wd70302" id
 L302" tpntL329">v3293/a>}tpntalv3293/a>}proc_infod700== &vc#L355" id
 L35 WD700_proc_infoL329">v3293/a>} WD700_proc_infod700vmment">/* String to look for     1417       14ef">NUM_CONFIGS3/a> 3a h14ef">141ref="mment">/* String to look for     1418       14"+code=configs" class="s14"+c>1418  >        *3 3a href="+code=confiig class="sref">configs3/a>[] = {l141963/a> 3a href="+code=configgggggggg* Se" up SCB free list, which2is*shared by all ass="srs class="sref">configs3/a>[] = {l *  The following 14men>142ers/s> 3a href="+code=configgggggggg*" class="sref">configs3/a>[] = {l1421rs/scsi/wd70302" id
 L302" init_scbsevisi v      */init_scbsd700()vmment">/* String to look for     1422       14000.c#L323" id
 L323" cl14000>1422lass="line" nam>
 L321">v3213/a>3spav1423       14" nam>
 L324">v3243/a>3s14" n>1423rs/scsi/wd70">BU(c#L355" id
 L35pi vL329">v3293/a>}p">valv3293/a>}p">valv3293/a>}p">val/* String to look for     1424       143a href="+code=signaoure143a >1424rs/scsi/wd70csi/wd703 3a href="+code=confiig class="sref">configs3/a>[] = {l
 L326">v3263/a>  14" n>1425rs/s> 3a href="+code=config33333333gggggggg* First, search2">BUBIOS SIGNATURE... class="sref">configs3/a>[] = {l 3a href="+code=config33333333gggggggg*" class="sref">configs3/a>[] = {lBU(c#L355" id
 L35biosaddr_p"revisi v      */biosaddr_p"ral/* Tim> that WD7000 sp1428       14spavalBU(c#L355" id
 L35sig_p"revisi v      */sig_p"ral/* String to look for     1429       14v33lBU(c#L355" id
 L35ievisi v      */ialv3293/a>}p">val/* Tim> that WD7000 sp143        14ref">Signaoure3/a> 3a hr14ref>143063/a>        a      csi/wd700000000000000000if (302" id
 L302" biosp"revisi v      */biosp"ral/* Tim> that WD7000 sp1431       14a href="drivers/scsi/wd714a h>1431rs/scsi/wd70csi/wd7000000000000000000000000000000000breakvmment">/* String to look for     1432       1400d */3/spaval
 L321">v3213/a>3spav14r3       14"sref">NUM_SIGNATURES3/a14"sr>1433rs/scsi/wd70csi/wd700000000000000000if (302" id
 L302" ievisi v      */ialv3293/a>}p">val/* String to look for     1434       14 href="+code=signaoures"14 hr>1434rs/scsi/wd70csi/wd70000000000000000000000000void "sref">unchar3/__iomemvers/scsi/wd700__iomemalv3293/a>}signa"uresal/* String to look for     1435       14 class="line" nam>
 L33714 cl>1435rs/scsi/wd70000000000000000000000000000000000000000000000000000000000#L331" id
 L331signa"uresL329">v3293/a>}signa"uresalv3293/a>}lend700)v"sref">configs3/a>[] = {l1436rs/scsi/wd7000000000000000000000000000000000shor"c302" id
 L302" bios_match"line" nam>
 L3bios_matchd700== 1vmmente" nam>
 L321">v3213/a>3spav1437       14ment"> *  I/O Port Offse14men>143ref="mment">/* String to look for     1438       14" nam>
 L339">v3393/a>3s14" n>1438  >        *********************************if (302" id
 L302" biosaddrevisi v      */biosaddrd700)="comment">/* Tim> that WD7000 sp1439       14" id
 L340" class="line"14" i>143963/a>        a      csi/wd70********0000000000000000#L331" id
 L331bios_match"line" nam>
 L3bios_matchd700== #L331" id
 L331check_signa"ure"line" nam>
 L3check_signa"ured700(c#L355" id
 L35biosaddrevisi v      */biosaddrd700, #L331" id
 L331signa"uresL329">v3293/a>}signa"uresalv3293/a>}signa"uresalv3293/a>}lend700)v"sref">configs3/a>[] = {l144 rs/s="comment">/* Tim> that WD7000 sp1441       14avalconfigs3/a>[] = {l
 L321">v3213/a>3spav1443       14/3/spaval
 L3bios_matchd700)="comment">/* Tim> that WD7000 sp1444       143/spaval
 L3bios_matchedd700vmment">/* String to look for     1445       14/spaval/* String to look for     1446       14s/scsi/wd7000.c#L348" id14s/s>1446rs/scsi/wd700000000000000000}mment">/* String to look for     1447       14ment"> * ASC Status Port14men>144ref="mment">/* String to look for     1448       143spav class="comment"> *143sp>1448  >        *******#L331" id
 L331bios_matched"line" nam>
 L3bios_matchedd700:mment">/* String to look for     1449       14="+code=INT_IM" class="s14="+>144963/a>        a      3 3a href="+code=confiig class="sref">configs3/a>[] = {lconfigs3/a>[] = {lconfigs3/a>[] = {l
 L321">v3213/a>3spav1453       14  */3/spaval3spav cla0  ing">" WD700_detect: p">v*%d\n"v class, #L331" id
 L331pi vL329">v3293/a>}p">val/* String to look for     14*4       14erved */3/spaval1454rs/smment">/* String to look for     14*5       14s/scsi/wd7000.c#L357" id14s/s>1455rs/scsi/wd7000000000if (302" id
 L302" biosaddr_p"revisi v      */biosaddr_p"ral/* Tim> that WD7000 sp14*6       14ment"> *vCOMMAND opcodes14men>1456rs/scsi/wd700000000000000000302" id
 L302" dpr5n"kvers/scsi/wd700dpr5n"kd700(c/a>3spav cla0  ing">"WD-/* String to look for     14*7       143spav class="comment"> *143sp>1457  >        *********elsemment">/* String to look for     14*8       14ment"> *  Unfortunaoely,14men>1458  >        *****************302" id
 L302" dpr5n"kvers/scsi/wd700dpr5n"kd700(c/a>3spav cla0  ing">"WD-/* String to look for     14*9       14/wd7000.c#L360" id
 L36014/wd>145class#endif"sref">configs3/a>[] = {l146 rs/s="comment">/* Tim> that WD7000 sp1461       1400.c#L362" id
 L362" cla1400.>1471rs/scsi/wd70csi/wd70if (c#L355" id
 L35configsevisi v      */configsalv3293/a>}p">val/* Tim> that WD7000 sp1462       147000.c#L363" id
 L363" c14700>1462rs/scsi/wd70csi/wd70csi/wd70continuevmment">/* String to look for     1463       1400.c#L364" id
 L364" cla1400.>1463rs/s="comment">/* Tim> that WD7000 sp1464       14="+code=NO_OP" class="sr14="+>1464rs/scsi/wd70csi/wd70if (c#L355" id
 L35unitvers/scsi/wd700unitd7002== #L331" id
 L331UNITSevisi v      */UNITSal/* Tim> that WD7000 sp1465       14_STAT  */3/spaval1465rs/scsi/wd700000000000000000continuevmment">/* String to look for     1466       14s)              */3/spav14s) >146class="line" nam>
 L348">v3483/a>3spav1467       14nterrupts         */3/sp14nte>1467  >        *********#L331" id
 L331iobaseevisi v      */iobasealv3293/a>}p">valconfigs3/a>[] = {l146class="line" nam>
 L310">v3 3spav1469       14MB                 */3/s14MB >146963/a>        a      #L331" id
 L331dpr5n"kvers/scsi/wd700dpr5n"kd700(c/a>3spav cla0  ing">" WD700_detect: check IO 0x%x ungion...\n"v class, #L331" id
 L331iobaseevisi v      */iobasealconfigs3/a>[] = {l147 rs/s="comment">/* Tim> that WD7000 sp1471       14lass="line" nam>
 L232">14las>1471rs/scsi/wd70csi/wd70if (c#L355" id
 L35request_ungionevisi v      */request_ungiond700(c#L355" id
 L35iobaseevisi v      */iobaseal3spav cla0  ing">" WD700"v class))comment">/* String to look for     1472       14ne" nam>
 L273">v2733/a>14ne">1472lass="line" nam>
 L321">v3213/a>3spav1473       14ne" nam>
 L274">v2743/a>14ne">1473rs/scsi/wd70csi/wd7000000000#L331" id
 L331dpr5n"kvers/scsi/wd700dpr5n"kd700(c/a>3spav cla0  ing">" WD700_detect: ASC reset (IO 0x%x) ..."v class, #L331" id
 L331iobaseevisi v      */iobasealconfigs3/a>[] = {l
 L275">v2753/a>}14e" >1474rs/scsi/wd70csi/wd70000000003 3a href="+code=confiig class="sref">configs3/a>[] = {lNUM_IOPORTS3/a> 3a h14ef">1475rs/s> 3a href="+code=config33333333gggggggggggggggg* ASC reset... class="sref">configs3/a>[] = {l147e" na> 3a href="+code=config33333333gggggggggggggggg*" class="sref">configs3/a>[] = {lwd7000_irq3/14las>1477  >        *********00000000#L331" id
 L331outbevisi v      */outbd700(c#L355" id
 L35ASC_RESevisi v      */ASC_RESd700, #L331" id
 L331iobaseevisi v      */iobasealv3283/a>      ASC_CONTROLalconfigs3/a>[] = {l1478  >        *****************302" id
 L302" msleepvers/scsi/wd700msleepd700(10)vmment">/* String to look for     1479       14=wd7000_irq" class="sref14=wd>147963/a>        a      00000000#L331" id
 L331outbevisi v      */outbd700(0,*#L331" id
 L331iobaseevisi v      */iobasealv3283/a>      ASC_CONTROLalconfigs3/a>[] = {lwd7000_dma3/14las>148 rs/s="comment">/* Tim> that WD7000 sp1481       14id
 L282" class="line" n14id
>1481rs/scsi/wd70csi/wd7000000000if (c#L355" id
 L35WAIT>v3283/a>      WAITd700(c#L355" id
 L35iobaseevisi v      */iobasealv3283/a>      ASC_STATd700, #L331" id
 L331ASC_STATMASK>v3283/a>      ASC_STATMASKd700, #L331" id
 L331CMD_RDY>v3283/a>      CMD_RDYd700, 0))comment">/* String to look for     1482       14=wd7000_dma" class="sref14=wd>1482rs/scsi/wd70csi/wd70csi/wd7000000000#L331" id
 L331dpr5n"kvers/scsi/wd700dpr5n"kd700(c/a>3spav cla0  ing">"failed!\n"v class)vmment">/* String to look for     1483       14s/scsi/wd7000.c#L285" id14s/s>1483rs/scsi/wd70csi/wd700000000000000000goto0#L331" id
 L331err_unleaseevisi v      */err_unleasealconfigs3/a>[] = {l * The following i14men>1484rs/scsi/wd70csi/wd7000000000}*elsemment">/* String to look for     1485       14#L286" id
 L286" class="14#L2>1485rs/scsi/wd70000000000000000000000000#L331" id
 L331dpr5n"kvers/scsi/wd700dpr5n"kd700(c/a>3spav cla0  ing">"ok!\n"v class)vmment">/* String to look for     1486       14287">v2873/a>3spav class14287>148class="line" nam>
 L348">v3483/a>3spav1487       14rs/scsi/wd7000.c#L289" i14rs/>1487  >        *********00000000if (c#L355" id
 L35inbevisi v      */inbd700(c#L355" id
 L35iobaseevisi v      */iobasealv3283/a>      ASC_INTR_STATal/* String to look for     1488       14S3/a>   8lconfigs3/a>[] = {lv29static struco 314>v2>14l963/a> 3a href="+code=configgggggggggggggggggggggggggggggggg*  We ungis"sr .ere, toeget a pointsr toecse extra  3ace, class="sref">configs3/a>[] = {l149ers/s> 3a href="+code=configgggggggggggggggggggggggggggggggg*  which2we'll use asecse "ss="sr*struc"ure (.c#L)*">B class="sref">configs3/a>[] = {l    64           14_ON>1491rs/s> 3a href="+code=configgggggggggggggggggggggggggggggggg*  th"s ass="sr.  It2is*located just aftsr the ungis"sre" class="sref">configs3/a>[] = {lconfigs3/a>[] = {lconfigs3/a>[] = {l1494rs/s> 3a href="+code=configgggggggggggggggggggggggggggggggg*" class="sref">configs3/a>[] = {l *  Standard Adapt14men>1495rs/scsi/wd70000000000000000000000000#L331" id
 L331sh"line" nam>
 L3shd700== #L331" id
 L331stha_ungis"sr"line" nam>
 L3stha_ungis"srd700(c#L355" id
 L35tpntL329">v3293/a>}tpntalconfigs3/a>[] = {l1496rs/scsi/wd70000000000000000000000000if (c#L355" id
 L35sh"line" nam>
 L3shd700=== #L331" id
 L331NULL>v3283/a>      NULLd700)"sref">configs3/a>[] = {lconfigs3/a>[] = {lirq3/a>;14q" >149class="line" nam>
 L310">v3 3spav1499       14         */3/spaval149963/a>        a      csi/wd70********#L331" id
 L331.c#Levisi v      */.c#Ld700== (c#L355" id
 L35Ass="srevisi v      */"ss="sral
 L3shd700->#L331" id
 L331.c#Ldataevisi v      */.c#Ldataalconfigs3/a>[] = {l150 rs/s="comment">/* Tim> that WD7000 sp15 1       15 ON3/a>    64           15 ON>1501rs/scsi/wd70csi/wd700000000000000000#L331" id
 L331dpr5n"kvers/scsi/wd700dpr5n"kd700(c/a>3spav cla0  ing">" WD700_detect: ass="sr allocated at*0x%x\n"v class, (5n")0#L331" id
 L331.c#Levisi v      */.c#Ld700)v"sref">configs3/a>[] = {l      memse"d700(c#L355" id
 L35.c#Levisi v      */.c#Ld700, 0,*sizeof(c#L355" id
 L35Ass="srevisi v      */"ss="sralconfigs3/a>[] = {l/* Tim> that WD7000 sp15 4       15 /scsi/wd7000.c#L296" id15 /s>1504rs/scsi/wd70csi/wd700000000000000000c#L355" id
 L35.c#Levisi v      */.c#Ld700->#L331" id
 L331irqevisi v      */irqd700== #L331" id
 L33130nfigsevisi v      */configsalv3293/a>}p">valconfigs3/a>[] = {l *  Standard Adapt15 en>1505rs/scsi/wd70000000000000000000000000#L331" id
 L331.c#Levisi v      */.c#Ld700->#L331" id
 L331dmaevisi v      */dmad700== #L331" id
 L33130nfigsevisi v      */configsalv3293/a>}p">valconfigs3/a>[] = {l1506rs/scsi/wd70000000000000000000000000c#L355" id
 L35.c#Levisi v      */.c#Ld700->#L331" id
 L331iobaseevisi v      */iobasealconfigs3/a>[] = {l/* String to look for     15 8       15 " class="sref">irq3/a>;15 " >1508  >        *************************3#L355" id
 L35.c#Levisi v      */.c#Ld700->#L331" id
 L331bus_onL329">v3293/a>}bus_onalv3293/a>}p">valv3293/a>}bus_onal/* String to look for     15 9       15         */3/spaval150963/a>        a      ****************3#L355" id
 L35.c#Levisi v      */.c#Ld700->#L331" id
 L331bus_offevisi v      */bus_offalv3293/a>}p">val/* String to look for     151        15 L311">v3113/a>3spav cla15 L3>151063/a>        a      csi/wd70000000003#L355" id
 L35.c#Levisi v      */.c#Ld700->#L331" id
 L331sh"line" nam>
 L3shd700== #L331" id
 L331 WD700_.c#Levisi v      */ WD700_.c#Lal
 L3shd700v"sref">configs3/a>[] = {l1511rs/scsi/wd70csi/wd700000000000000000#L331" id
 L331unitvers/scsi/wd700unitd700++vmment">/* String to look for     1512       15si/wd7000.c#L313" id
 L315si/>1512lass="line" nam>
 L321">v3213/a>3spav1513       15 3spav class="comment">/15 3s>1513rs/scsi/wd70csi/wd700000000000000000#L331" id
 L331dpr5n"kvers/scsi/wd700dpr5n"kd700(c/a>3spav cla0  ing">" WD700_detect: Trying init WD-3spav cla0  ing">"0x%x, IRQ*%d, DMA*%d...\n"v class, #L331" id
 L331.c#Levisi v      */.c#Ld700->#L331" id
 L331iobaseevisi v      */iobasealconfigs3/a>[] = {l/15 3s>1514rs/smment">/* String to look for     1515       15lass="comment">/* My con15las>1515rs/scsi/wd70000000000000000000000000if (!#L331" id
 L331 WD700_initvers/scsi/wd700 WD700_initd700(c#L355" id
 L35.c#Levisi v      */.c#Ld700))*3 3a href="+code=confiig Initializat"sr0failedg*" class="sref">configs3/a>[] = {l/* Empty 15las>1516rs/scsi/wd7000000000000000000000000000000000goto0#L331" id
 L331err_unungis"srevisi v      */err_unungis"srd700v"sref">configs3/a>[] = {lNUM_CONFIGS3/a> 3a h15ef">151ref="mment">/* String to look for     1518       15"+code=configs" class="s15"+c>1518  >        *************************3 3a href="+code=confiig class="sref">configs3/a>[] = {l151963/a> 3a href="+code=configgggggggggggggggggggggggggggggggg*  OK from .ere -2we'll use th"s ass="sr/configurat"sr. class="sref">configs3/a>[] = {l *  The following 15men>152ers/s> 3a href="+code=configgggggggggggggggggggggggggggggggg*" class="sref">configs3/a>[] = {l1521rs/scsi/wd70csi/wd700000000000000000#L331" id
 L331 WD700_revisionevisi v      */ WD700_revisiond700(c#L355" id
 L35.c#Levisi v      */.c#Ld700);**3 3a href="+code=confiig impor"ant*">BUscat"sr/gat.erg*" class="sref">configs3/a>[] = {l1522lass="line" nam>
 L321">v3213/a>3spav1523       15" nam>
 L324">v3243/a>3s15" n>1523rs/scsi/wd70csi/wd700000000000000000# 3a href="+code=confiig class="sref">configs3/a>[] = {lBUboards be">Benrev 6.0,*scat"sr/gat.ergisn't suppor"ed. class="sref">configs3/a>[] = {l
 L326">v3263/a>  15" n>1525rs/s> 3a href="+code=config33333333gggggggggggggggggggggggg*" class="sref">configs3/a>[] = {lconfigs3/a>[] = {l
 L3shd700->#L331" id
 L331sg_tablesize"line" nam>
 L3sg_tablesized700== 1vmmente" nam>
 L321">v3213/a>3spav1528       15spaval
 L310">v3 3spav1529       15v33lv3293/a>}presentalconfigs3/a>[] = {lSignaoure3/a> 3a hr15ref>153 rs/s="comment">/* Tim> that WD7000 sp1531       15a href="drivers/scsi/wd715a h>1531rs/scsi/wd70csi/wd700000000000000000if (302" id
 L302" biosaddr_p"revisi v      */biosaddr_p"ral/* Tim> that WD7000 sp1532       1500d */3/spavalv3293/a>}p">val
 L321">v3213/a>3spav15r3       15"sref">NUM_SIGNATURES3/a15"sr>1533rs/s="comment">/* Tim> that WD7000 sp1534       15 href="+code=signaoures"15 hr>1534rs/scsi/wd70csi/wd700000000000000000c#L355" id
 L35pr5n"kvers/scsi/wd700pr5n"kd700(c#L355" id
 L35KERN_INFOvers/scsi/wd700KERN_INFOrs/scc/a>3spav cla0  ing">"Wes"srn Digital WD-configs3/a>[] = {l
 L33715 cl>1535rs/scsi/wd70000000000000000000000000c#L355" id
 L35pr5n"kvers/scsi/wd700pr5n"kd700(c/a>3spav cla0  ing">"using IO 0x%x, IRQ*%d, DMA*%d.\n"v class, #L331" id
 L331.c#Levisi v      */.c#Ld700->#L331" id
 L331iobaseevisi v      */iobasealconfigs3/a>[] = {l1536rs/scsi/wd70000000000000000000000000c#L355" id
 L35pr5n"kvers/scsi/wd700pr5n"kd700(c/a>3spav cla0  ing">"  BUS_ON time:*%dns, BUS_OFF time:*%dns\n"v class, #L331" id
 L331.c#Levisi v      */.c#Ld700->#L331" id
 L331bus_onL329">v3293/a>}bus_onalconfigs3/a>[] = {l *  I/O Port Offse15men>1537  >        *****************}mment">/* String to look for     1538       15" nam>
 L339">v3393/a>3s15" n>1538  >        *********}*elsemment">/* String to look for     1539       15" id
 L340" class="line"15" i>153963/a>        a      csi/wd70#L331" id
 L331dpr5n"kvers/scsi/wd700dpr5n"kd700(c/a>3spav cla0  ing">" WD700_detect: IO 0x%x ungion already allocated!\n"v class, #L331" id
 L331iobaseevisi v      */iobasealconfigs3/a>[] = {l154 rs/s="comment">/* Tim> that WD7000 sp1541       15aval/* String to look for     1542       15/spaval
 L321">v3213/a>3spav1543       15/3/spaval/* String to look for     1544       153/spaval
 L3scha_unungis"srd700(c#L355" id
 L35sh"line" nam>
 L3shd700)v"sref">configs3/a>[] = {l/* String to look for     1546       15s/scsi/wd7000.c#L348" id15s/s>1546rs/scsi/wd7000000000#L331" id
 L331release_ungionevisi v      */release_ungiond700(c#L355" id
 L35iobaseevisi v      */iobasealconfigs3/a>[] = {l * ASC Status Port15men>154ref="mment">/* String to look for     1548       153spav class="comment"> *153sp>1548  >        *}mment">/* String to look for     1549       15="+code=INT_IM" class="s15="+>154963/amment">/* String to look for     155        15*/3/spavalv3293/a>}presental/* Tim> that WD7000 sp1551       15 */3/spaval3spav cla0  ing">"Failedginitializat"sr0of WD-/* String to look for     1552       15 */3/spaval
 L321">v3213/a>3spav1553       15  */3/spavalv3293/a>}presental/* String to look for     1554       15erved */3/spaval1554rs/s}mment">/* String to look for     15*5       15s/scsi/wd7000.c#L357" id15s/s>155guraomment">/* String to look for     15*6       15ment"> *vCOMMAND opcodes15men>155classptr"332in"c302" id
 L302"  WD700_unleaseevisi v      */ WD700_unleased700(struc"c302" id
 L302" Stha_Hc#Levisi v      */Stha_Hc#Lal/* String to look for     15*7       153spav class="comment"> *153sp>155ref="omment">/* String to look for     15*8       15ment"> *  Unfortunaoely,15men>1558  >        *if (302" id
 L302" shc#Levisi v      */s.c#Ld700->#L331" id
 L331irqevisi v      */irqd700)mment">/* String to look for     15*9       15/wd7000.c#L360" id
 L36015/wd>155963/a>        a      #L331" id
 L331free_irqevisi v      */free_irqd700(c#L355" id
 L35shc#Levisi v      */s.c#Ld700->#L331" id
 L331irqevisi v      */irqd700, #L331" id
 L331NULL>v3283/a>      NULLd700)v"sref">configs3/a>[] = {l156063/a>       if (c#L355" id
 L35shc#Levisi v      */s.c#Ld700->#L331" id
 L331io_por"evisi v      */io_por"rs/sc&v&v*#L331" id
 L331shc#Levisi v      */s.c#Ld700->#L331" id
 L331n_io_por"evisi v      */n_io_por"d700)mment">/* String to look for     1561       1500.c#L362" id
 L362" cla1500.>1571rs/scsi/wd70csi/wd70#L331" id
 L331release_ungionevisi v      */release_ungiond700(c#L355" id
 L35shc#Levisi v      */s.c#Ld700->#L331" id
 L331io_por"evisi v      */io_por"rs/s, #L331" id
 L331shc#Levisi v      */s.c#Ld700->#L331" id
 L331n_io_por"evisi v      */n_io_por"d700)v"sref">configs3/a>[] = {l1562rs/scsi/wd70#L331" id
 L331scha_unungis"sr"line" nam>
 L3scha_unungis"srd700(c#L355" id
 L35shc#Levisi v      */s.c#Ld700)v"sref">configs3/a>[] = {l1563rs/scsi/wd70rn336cU0vmment">/* String to look for     1564       15="+code=NO_OP" class="sr15="+>1564rs/s}mment">/* String to look for     1565       15_STAT  */3/spaval156guraomment">/* String to look for     1566       15s)              */3/spav15s) >156class#if 0mment">/* String to look for     1567       15nterrupts         */3/sp15nte>1567  > # 3a href="+code=confiig class="sref">configs3/a>[] = {l156class> 3a href="+code=config*  I have absolutely NO   erefow toedo a habor"cwithecse WDD700... class="sref">configs3/a>[] = {l156963/a> 3a href="+code=config*" class="sref">configs3/a>[] = {l157 rs/sptr"332in"c302" id
 L302"  WD700_abor"evisi v      */ WD700_abor"d700(c#L355" id
 L35Stha_Cmnd"line" nam>
 L3Stha_Cmndalv3293/a>}SCpntd700)mment">/* String to look for     1571       15lass="line" nam>
 L232">15las>1571rs/somment">/* String to look for     1572       15ne" nam>
 L273">v2733/a>15ne">1572rs/scsi/wd70#L331" id
 L331Ass="srevisi v      */"ss="sralv3293/a>}SCpntd700->#L331" id
 L331deviceevisi v      */deviced700->#L331" id
 L331.c#Levisi v      */.c#Ld700->#L331" id
 L331.c#Ldataevisi v      */.c#Ldataalconfigs3/a>[] = {l
 L274">v2743/a>15ne">1573rs/s="comment">/* Tim> that WD7000 sp1574       15e" nam>
 L275">v2753/a>}15e" >1574rs/scsi/wd70if (c#L355" id
 L35inbevisi v      */inbd700(c#L355" id
 L35.c#Levisi v      */.c#Ld700->#L331" id
 L331iobaseevisi v      */iobasealv3283/a>      ASC_STATd700) &v*#L331" id
 L331INT_IM>v3283/a>      INT_IMd700) omment">/* String to look for     1575       15ef">NUM_IOPORTS3/a> 3a h15ef">1575rs/scsi/wd7000000000c#L355" id
 L35pr5n"kvers/scsi/wd700pr5n"kd700(c/a>3spav cla0  ing">" WD700_abor": lc#L*intsrrupt\n"v class)vmment">/* String to look for     1576       15"+code=wd7000_iobase" cl15"+c>1576rs/scsi/wd7000000000#L331" id
 L331 WD700_intr_handleevisi v      */ WD700_intr_handled700(c#L355" id
 L35.c#Levisi v      */.c#Ld700->#L331" id
 L331irqevisi v      */irqd700, #L331" id
 L331NULL>v3283/a>      NULLd700, #L331" id
 L331NULL>v3283/a>      NULLd700)v"sref">configs3/a>[] = {lwd7000_irq3/15las>1577  >        *********rn336cU#L331" id
 L331FAILED>v3283/a>      FAILEDalconfigs3/a>[] = {l1578  >        *}mment">/* String to look for     1579       15=wd7000_irq" class="sref15=wd>157963/a>       rn336cU#L331" id
 L331FAILED>v3283/a>      FAILEDalconfigs3/a>[] = {lwd7000_dma3/15las>158 rs/s}mment">/* String to look for     1581       15id
 L282" class="line" n15id
>1581rs/s#endif"sref">configs3/a>[] = {l
 L321">v3213/a>3spav1583       15s/scsi/wd7000.c#L285" id15s/s>1583rs/s> 3a href="+code=confiig class="sref">configs3/a>[] = {l * The following i15men>1584rs/s> 3a href="+code=config*  La#L*resor". Reinitializeecse board. class="sref">configs3/a>[] = {lconfigs3/a>[] = {lv2873/a>3spav class15287>158class="line" nam>
 L348">v3483/a>3spav1587       15rs/scsi/wd7000.c#L289" i15rs/>1587  > ptr"332in"c302" id
 L302"  WD700_.c#L_resetevisi v      */ WD700_.c#L_resetd700(struc"c302" id
 L302" scha_cmnd"line" nam>
 L3scha_cmndalv3293/a>}SCpntd700)mment">/* String to look for     1588       15S3/a>   8l/* String to look for     1589       15>v29static struco 315>v2>158963/a>       #L331" id
 L331Ass="srevisi v      */"ss="sralv3293/a>}SCpntd700->#L331" id
 L331deviceevisi v      */deviced700->#L331" id
 L331.c#Levisi v      */.c#Ld700->#L331" id
 L331.c#Ldataevisi v      */.c#Ldataalconfigs3/a>[] = {l159 rs/s="comment">/* Tim> that WD7000 sp1591       15_ON3/a>    64           15_ON>159163/a>       #L331" id
 L331spin_lock_irqevisi v      */spin_lock_irqd700(c#L355" id
 L35SCpntL329">v3293/a>}SCpntd700->#L331" id
 L331deviceevisi v      */deviced700->#L331" id
 L331.c#Levisi v      */.c#Ld700->#L331" id
 L331.c#L_lockevisi v      */.c#L_lockd700)v"sref">configs3/a>[] = {l
 L321">v3213/a>3spav1593       15) */3/spaval/* String to look for     1594       15s/scsi/wd7000.c#L296" id15s/s>1594rs/scsi/wd70csi/wd70#L331" id
 L331spin_unlock_irqevisi v      */spin_unlock_irqd700(c#L355" id
 L35SCpntL329">v3293/a>}SCpntd700->#L331" id
 L331deviceevisi v      */deviced700->#L331" id
 L331.c#Levisi v      */.c#Ld700->#L331" id
 L331.c#L_lockevisi v      */.c#L_lockd700)v"sref">configs3/a>[] = {l *  Standard Adapt15men>1595rs/scsi/wd7000000000rn336cU#L331" id
 L331FAILED>v3283/a>      FAILEDalconfigs3/a>[] = {l1596rs/scsi/wd70}mment">/* String to look for     1597       15{l/* String to look for     1598       15q" class="sref">irq3/a>;15q" >159863/a>       #L331" id
 L331 WD700_enable_intrevisi v      */ WD700_enable_intrd700(c#L355" id
 L35.c#Levisi v      */.c#Ld700)v"sref">configs3/a>[] = {l159963/amment">/* String to look for     16         16         */3/spaval160063/a>       #L331" id
 L331spin_unlock_irqevisi v      */spin_unlock_irqd700(c#L355" id
 L35SCpntL329">v3293/a>}SCpntd700->#L331" id
 L331deviceevisi v      */deviced700->#L331" id
 L331.c#Levisi v      */.c#Ld700->#L331" id
 L331.c#L_lockevisi v      */.c#L_lockd700)v"sref">confiring to look for     16 1       16 ON3/a>    64           16 ON>1601rs/scsi/wd70rn336cU#L331" id
 L331SUCCESSevisi v      */SUCCESSalconfigs3/a>[] = {l/* String to look for     16 3       16  */3/spaval/* Tim> that WD7000 sp16 4       16 /scsi/wd7000.c#L296" id16 /s>1604rs/s> 3a href="+code=confiig class="sref">configs3/a>[] = {l *  Standard Adapt16 en>1605rs/s> 3a href="+code=config*  Th"s was borrowed directly from aha1542.c. (Zaga) class="sref">configs3/a>[] = {l160e" na> 3a href="+code=config*" class="sref">configs3/a>[] = {l/* String to look for     16 8       16 " class="sref">irq3/a>;16 " >1608  > ptr"332in"c302" id
 L302"  WD700_biosparamevisi v      */ WD700_biosparamd700(struc"c302" id
 L302" scha_deviceevisi v      */scha_deviceal/* String to look for     16 9       16         */3/spaval160963/a>        a      struc"c302" id
 L302" block_deviceevisi v      */block_deviceal/* String to look for     161        16 L311">v3113/a>3spav cla16 L3>161063/aomment">/* String to look for     1611       16"+code=Config" class="sr16"+c>1611rs/scsi/wd70charc302" id
 L302" bevisi v      */brs/s[c#L355" id
 L35BDEVNAME_SIZEevisi v      */BDEVNAME_SIZErs/s]v"sref">configs3/a>[] = {l1612lass="line" nam>
 L321">v3213/a>3spav1613       16 3spav class="comment">/16 3s>1613rs/scsi/wd70#L331" id
 L331dpr5n"kvers/scsi/wd700dpr5n"kd700(c/a>3spav cla0  ing">" WD700_biosparam: dev=%s,*size=%d, "v class,="line" nam>
 L321">v3213/a>3spav1614       16 3spav class="comment">/16 3s>1614rs/scsi/wd70csi/wd70#L331" id
 L331bdevmentevisi v      */bdevmentd700(c#L355" id
 L35bdevevisi v      */bdevd700,c302" id
 L302" bevisi v      */brs/s),c302" id
 L302" capacityevisi v      */capacityd700)v"sref">confiring to look for     1615       16lass="comment">/* My con16las>1615rs/scsi/wd70(void)302" id
 L302" bevisi v      */brs/s;csi/wd70# 3a href="+code=confiig unused varcwarning?g*" class="sref">configs3/a>[] = {l/* Empty 16las>161class="line" nam>
 L348">v3483/a>3spav1617       16ef">NUM_CONFIGS3/a> 3a h16ef">1617  >        *> 3a href="+code=confiig class="sref">configs3/a>[] = {l161class> 3a href="+code=configgggggggg* try default translat"sr class="sref">configs3/a>[] = {l161963/a> 3a href="+code=configgggggggg*" class="sref">configs3/a>[] = {l *  The following 16men>162063/a>       #L331" id
 L331ipvers/scsi/wd700ipd700[0]== 64v"sref">confiring to look for     1621       16wd7000.c#L322" id
 L322"16wd7>162163/a>       #L331" id
 L331ipvers/scsi/wd700ipd700[1]== 32v"sref">confiring to look for     1622       16000.c#L323" id
 L323" cl16000>1622rs/scsi/wd70#L331" id
 L331ipvers/scsi/wd700ipd700[2]== #L331" id
 L331capacityevisi v      */capacityd700 >> 11vmmente" nam>
 L321">v3213/a>3spav1623       16" nam>
 L324">v3243/a>3s16" n>1623rs/s="comment">/* Tim> that WD7000 sp1624       163a href="+code=signaoure163a >1624  >        *> 3a href="+code=confiig class="sref">configs3/a>[] = {l
 L326">v3263/a>  16" n>1625rs/s> 3a href="+code=config33333333**">BUdisks >1GBedo some guessing class="sref">configs3/a>[] = {l 3a href="+code=config33333333*" class="sref">configs3/a>[] = {l/* String to look for     1628       16spavalconfigs3/a>[] = {ll/* String to look for     163        16ref">Signaoure3/a> 3a hr16ref>163063/a>        a      > 3a href="+code=confiig class="sref">configs3/a>[] = {lconfigs3/a>[] = {lconfigs3/a>[] = {lNUM_SIGNATURES3/a16"sr>1633rs/scsi/wd70csi/wd70if ((c#L355" id
 L35s] =cam_bios_paramevisi v      */s] =cam_bios_paramd700(c#L355" id
 L35bdevevisi v      */bdevd700,c302" id
 L302" capacityevisi v      */capacityd700,c302" id
 L302" infoevisi v      */infod700)=< 0) || !(((c#L355" id
 L35infoevisi v      */infod700[0]=== 64)c&v&v*(c#L355" id
 L35infoevisi v      */infod700[1]=== 32)) || ((c#L355" id
 L35infoevisi v      */infod700[0]=== 255)c&v&v*(c#L355" id
 L35infoevisi v      */infod700[1]=== 63))))comment">/* String to look for     1634       16 href="+code=signaoures"16 hr>1634rs/scsi/wd70csi/wd7000000000c#L355" id
 L35pr5n"kvers/scsi/wd700pr5n"kd700(c/a>3spav cla0  ing">" WD700_biosparam: unable to ingify geometry f>BUdiskcwithe>1GB.\n"v classcc/a>3spav cla0  ing">"70csi/wd7000000000using extended translat"sr.\n"v class)v"sref">confiring to look for     1635       16 class="line" nam>
 L33716 cl>163guraomment">/* String to look for     1636       16s/scsi/wd7000.c#L338" id16s/s>1636rs/scsi/wd700000000000000000#L331" id
 L331ipvers/scsi/wd700ipd700[0]== 255v"sref">confiring to look for     1637       16ment"> *  I/O Port Offse16men>1637  >        *****************#L331" id
 L331ipvers/scsi/wd700ipd700[1]== 63v"sref">confiring to look for     1638       16" nam>
 L339">v3393/a>3s16" n>1638  >        *****************#L331" id
 L331ipvers/scsi/wd700ipd700[2]== (unsigned long)0#L331" id
 L331capacityevisi v      */capacityd700 / (255g* 63)v"sref">confiring to look for     1639       16" id
 L340" class="line"16" i>163963/a>        a      }*elsecomment">/* String to look for     164        16="+code=ASC_STAT" class=16="+>164063/a>        a      csi/wd70#L331" id
 L331ipvers/scsi/wd700ipd700[0]== c#L355" id
 L35infoevisi v      */infod700[0]v"sref">confiring to look for     1641       16avalconfiring to look for     1642       16/spavalconfiring to look for     1643       16/3/spaval/* Tim> that WD7000 sp1644       163/spaval/* Tim> that WD7000 sp1645       16/spaval3spav cla0  ing">"%s: currcon partit"sr0tableeis*"v classcc/a>3spav cla0  ing">"using extended translat"sr.\n"v class,c302" id
 L302" __func__vers/scsi/wd700__func__d700)v"sref">confiring to look for     1646       16s/scsi/wd7000.c#L348" id16s/s>1646rs/scsi/wd7000000000}mment">/* String to look for     1647       16ment"> * ASC Status Port16men>1647  >        *}mment">/* String to look for     1648       163spav class="comment"> *163sp>164class="line" nam>
 L310">v3 3spav1649       16="+code=INT_IM" class="s16="+>164963/a>       #L331" id
 L331dpr5n"kvers/scsi/wd700dpr5n"kd700(c/a>3spav cla0  ing">"bios geometry: head=%d, sec=%d, cyl=%d\n"v class, #L331" id
 L331ipvers/scsi/wd700ipd700[0], #L331" id
 L331ipvers/scsi/wd700ipd700[1], #L331" id
 L331ipvers/scsi/wd700ipd700[2])v"sref">confiring to look for     165        16*/3/spaval3spav cla0  ing">"WARNING: check,0if cse bios geometryeis*correct.\n"v class)v"sref">confiring to look for     1651       16 */3/spavalconfiring to look for     1652       16 */3/spaval/* String to look for     1653       16  */3/spaval/* String to look for     1654       16erved */3/spaval1654rs/smment">/* String to look for     16*5       16s/scsi/wd7000.c#L357" id16s/s>165gurao#L331" id
 L331MODULE_AUTHORvers/scsi/wd700MODULE_AUTHORd700(c/a>3spav cla0  ing">"Thomas Wuensche, John Boyd, Miroslav Zagorac"v class)v"sref">confiring to look for     1656       16ment"> *vCOMMAND opcodes16men>165class#L331" id
 L331MODULE_DESCRIPTIONvers/scsi/wd700MODULE_DESCRIPTIONd700(c/a>3spav cla0  ing">"Diring f>BUcse WDD700 series ISA0controllng "v class)v"sref">confiring to look for     1657       163spav class="comment"> *163sp>165ref="#L331" id
 L331MODULE_LICENSEevisi v      */MODULE_LICENSEd700(c/a>3spav cla0  ing">"GPL"v class)v"sref">confiring to look for     1658       16ment"> *  Unfortunaoely,16men>165class="line" nam>
 L310">v3 3spav16*9       16/wd7000.c#L360" id
 L36016/wd>165963/aptr"332struc"c302" id
 L302" scha_.c#L_templateevisi v      */scha_.c#L_templateal
 L3_templateevisi v      */m>
 L3_templateal/* String to look for     166        167000.c#L361" id
 L361" c16700>166063/a>       .#L331" id
 L331proc_mentevisi v      */proc_mentrs/scsi/wd70000000=cc/a>3spav cla0  ing">"k for "v class,="line" nam>
 L321">v3213/a>3spav1661       1600.c#L362" id
 L362" cla1600.>1671rs/scsi/wd70.#L331" id
 L331proc_infoevisi v      */proc_infors/scsi/wd70000000=cc02" id
 L302"  WD700_proc_infoevisi v      */ WD700_proc_infod700,mment">/* String to look for     1662       167000.c#L363" id
 L363" c16700>1662rs/scsi/wd70.#L331" id
 L331mentevisi v      */mentrs/scsi/wd7000000000000=cc/a>3spav cla0  ing">"Wes"srn Digital WD-
 L321">v3213/a>3spav1663       1600.c#L364" id
 L364" cla1600.>1663rs/scsi/wd70.#L331" id
 L331detectevisi v      */detectrs/scsi/wd70000000000=cc02" id
 L302"  WD700_detectevisi v      */ WD700_detectd700,mment">/* String to look for     1664       16="+code=NO_OP" class="sr16="+>1664rs/scsi/wd70.#L331" id
 L331unleaseevisi v      */unleased700si/wd70000000000=cc02" id
 L302"  WD700_unleaseevisi v      */ WD700_unleased700,mment">/* String to look for     1665       16_STAT  */3/spaval1665rs/scsi/wd70.#L331" id
 L331queueode=and"line" nam>
 L3queueode=andd700si/wd700000=cc02" id
 L302"  WD700_queueode=and"line" nam>
 L3 WD700_queueode=andd700,mment">/* String to look for     1666       16s)              */3/spav16s) >1666rs/scsi/wd70.#L331" id
 L331eh_.c#L_reset_handlerevisi v      */eh_.c#L_reset_handlerrs/scs= #L331" id
 L331 WD700_.c#L_resetevisi v      */ WD700_.c#L_resetd700,mment">/* String to look for     1667       16nterrupts         */3/sp16nte>1667rs/scsi/wd70.#L331" id
 L331bios_paramevisi v      */bios_paramd700wd70000000000=cc02" id
 L302"  WD700_biosparamevisi v      */ WD700_biosparamd700,mment">/* String to look for     1668       16errupts          */3/spa16err>1668rs/scsi/wd70.#L331" id
 L331can_queueevisi v      */can_queuers/scsi/wd70000000=cc02" id
 L302" WDD700_Qevisi v      */WDD700_Qd700,mment">/* String to look for     1669       16MB                 */3/s16MB >1669rs/scsi/wd70.#L331" id
 L331th"s_id"line" nam>
 L3th"s_idd700si/wd70000000000=c7,mment">/* String to look for     167        16            */3/spaval167063/a>       .#L331" id
 L331sg_tablesize"line" nam>
 L3sg_tablesized700=wd70000000=cc02" id
 L302" WDD700_SGevisi v      */WDD700_SGd700,mment">/* String to look for     1671       16lass="line" nam>
 L232">16las>1671rs/scsi/wd70.#L331" id
 L331cmd_pL3_lunevisi v      */cmd_pL3_lund700si/wd7000000= 1,mment">/* String to look for     1672       16ne" nam>
 L273">v2733/a>16ne">1672rs/scsi/wd70.#L331" id
 L331unchecked_isa_dmaevisi v      */unchecked_isa_dmars/scsi/wd= 1,mment">/* String to look for     1673       16ne" nam>
 L274">v2743/a>16ne">1673rs/scsi/wd70.#L331" id
 L331use_clus"sring"visi v      */use_clus"sringd700si/wd7000=cc02" id
 L302" ENABLE_CLUSTERINGevisi v      */ENABLE_CLUSTERINGd700,mment">/* String to look for     1674       16e" nam>
 L275">v2753/a>}16e" >1674rs/s}v"sref">confiring to look for     1675       16ef">NUM_IOPORTS3/a> 3a h16ef">167guraomment">/* String to look for     1676       16"+code=wd7000_iobase" cl16"+c>167class#include*"vent">/* String to looscha_module.ccode=wd70f   */scha_module.class"mment">/* String to look for     1677       16lass="sref">wd7000_irq3/16las>1677  > 
Tse original LXR software byUcse ment">/* http://source">Bge.net/projects/lxre>LXR ode=unityd700,cth"s expL3i=conal ing "sr0byUment">/* mailto:lxr@>wdux.no">lxr@>wdux.nod700.
lxr.>wdux.no kindly .c#Led0byUment">/* http://www.redpill->wdpro.no">Redpill Lwdpro ASd700,cprovider0of Lwdux0consulting and opL3at"srs services since 1995.