linux/drivers/ide/cy82c693.c
<<
tion.14/spa> .14/form .14a tion.1 href="../linux+vue=".2/drivers/ide/cy82c693.c">tion.14img src="../.static/gfx/right.png" alt=">>">ti4/spa> ti4spa> class="lxr_search">tion="+search" method="post" onsubmit="return do_search(this);">tion.14input typ> hidden" nam> navtarget" tion> ">tion.14input typ> text" nam> search" id search">tion.14butt/optyp> submit">Search ti4spa> class="lxr_prefs" .14a href="+prefs?return=drivers/ide/cy82c693.c"tion.1 onclick="return ajax_prefs();">tion.1Prefs .14/a>ti4/spa> on.1 14/div on.1 14form ac >="ajax+*" method="post" onsubmit="return false;">ti4input typ> hidden" nam> ajax_lookup" id ajax_lookup" tion> ">ton.1 14/form ton.1 14div class="headingbott/m">
4div id file_contents"
 L1">1 114/a>4spa> class="comment">/*4/spa>
 
 L2">1 124/a>4spa> class="comment"> *  Copyright (C) 1998-2000 Andreas S. Krebs (akrebs@altavista.net), Maintainer4/spa>
 
 L3">1 134/a>4spa> class="comment"> *  Copyright (C) 1998-2002 Andre Hedrick <andre@linux-ide.org>, Integrator4/spa>
 
 L4">1 144/a>4spa> class="comment"> *  Copyright (C) 2007-2011 Bartlomiej Zolnierkiewicz4/spa>
 
 L5">1 154/a>4spa> class="comment"> *4/spa>
 
 L6">1 164/a>4spa> class="comment"> * CYPRESS CY82C693 chipset IDE controller4/spa>
 
 L7">1 174/a>4spa> class="comment"> *4/spa>
 
 L8">1 184/a>4spa> class="comment"> * The CY82C693 chipset is used on Digital's PC-Alpha 164SX boards.4/spa>
 
 L9">1 194/a>4spa> class="comment"> */4/spa>
 
 L10">1 .8.1a
 
 L11">1 114/a>#include <linux/module.h4/a>> 
 L12">1 124/a>#include <linux/typ>s.h4/a>> 
 L13">1 134/a>#include <linux/pci.h4/a>> 
 L14">1 144/a>#include <linux/ide.h4/a>> 
 L15">1 154/a>#include <linux/init.h4/a>> 
 L16">1 16.1a
 
 L17">1 174/a>#include <asm/io.h4/a>> 
 L18">1 18.1a
 
 L19">1 194/a>#define14a href="+code=DRV_NAME" class="sref">DRV_NAME4/a> 4spa> class="string">"cy82c693"4/spa>
 
 L20">1 28.1a
 
 L21">1 214/a>4spa> class="comment">/*4/spa>
 
 L22">1 224/a>4spa> class="comment"> *      NOTE: the tion> for busmaster timeout is tricky and I got it by4/spa>
 
 L23">1 234/a>4spa> class="comment"> *      trial and error!  By using a to low tion> will cause DMA timeouts4/spa>
 
 L24">1 244/a>4spa> class="comment"> *      and drop IDE performance, and by using a to high tion> will cause4/spa>
 
 L25">1 254/a>4spa> class="comment"> *      audio playback to scatter.4/spa>
 
 L26">1 264/a>4spa> class="comment"> *      If you know a better tion> or how to calc it, please let me know.4/spa>
 
 L27">1 274/a>4spa> class="comment"> */4/spa>
 
 L28">1 28.1a
 
 L29">1 294/a>4spa> class="comment">/* twice the tion> written i> cy82c693ub datasheet */4/spa>
 
 L30">1 304/a>#define14a href="+code=BUSMASTER_TIMEOUT" class="sref">BUSMASTER_TIMEOUT4/a>       0x50 
 L31">1 314/a>4spa> class="comment">/*4/spa>
 
 L32">1 324/a>4spa> class="comment"> * the tion> abov> was tested on my machine1and it seems to work okay4/spa>
 
 L33">1 334/a>4spa> class="comment"> */4/spa>
 
 L34">1 34.1a
 
 L35">1 354/a>4spa> class="comment">/* here1are the offset defini	  >s for the registers */4/spa>
 
 L36">1 364/a>#define14a href="+code=CY82_IDE_CMDREG" class="sref">CY82_IDE_CMDREG4/a>         0x04 
 L37">1 374/a>#define14a href="+code=CY82_IDE_ADDRSETUP" class="sref">CY82_IDE_ADDRSETUP4/a>      0x48 
 L38">1 384/a>#define14a href="+code=CY82_IDE_MASTER_IOR" class="sref">CY82_IDE_MASTER_IOR4/a>     0x4C 
 L39">1 394/a>#define14a href="+code=CY82_IDE_MASTER_IOW" class="sref">CY82_IDE_MASTER_IOW4/a>     0x4D 
 L40">1 404/a>#define14a href="+code=CY82_IDE_SLAVE_IOR" class="sref">CY82_IDE_SLAVE_IOR4/a>      0x4E 
 L41">1 414/a>#define14a href="+code=CY82_IDE_SLAVE_IOW" class="sref">CY82_IDE_SLAVE_IOW4/a>      0x4F 
 L42">1 424/a>#define14a href="+code=CY82_IDE_MASTER_8BIT" class="sref">CY82_IDE_MASTER_8BIT4/a>    0x50 
 L43">1 434/a>#define14a href="+code=CY82_IDE_SLAVE_8BIT" class="sref">CY82_IDE_SLAVE_8BIT4/a>     0x51 
 L44">1 44.1a
 
 L45">1 454/a>#define14a href="+code=CY82_INDEX_PORT" class="sref">CY82_INDEX_PORT4/a>         0x22 
 L46">1 464/a>#define14a href="+code=CY82_DATA_PORT" class="sref">CY82_DATA_PORT4/a>          0x23 
 L47">1 47.1a
 
 L48">1 484/a>#define14a href="+code=CY82_INDEX_CHANNEL0" class="sref">CY82_INDEX_CHANNEL04/a>     0x30 
 L49">1 494/a>#define14a href="+code=CY82_INDEX_CHANNEL1" class="sref">CY82_INDEX_CHANNEL14/a>     0x31 
 L50">1 504/a>#define14a href="+code=CY82_INDEX_TIMEOUT" class="sref">CY82_INDEX_TIMEOUT4/a>      0x32 
 L51">1 51.1a
 
 L52">1 524/a>4spa> class="comment">/*4/spa>
 
 L53">1 534/a>4spa> class="comment"> * set DMA mode a specific channel for CY82C6934/spa>
 
 L54">1 544/a>4spa> class="comment"> */4/spa>
 
 L55">1 55.1a
 
 L56">1 564/a>static void14a href="+code=cy82c693_set_dma_mode" class="sref">cy82c693_set_dma_mode4/a>(4a href="+code=ide_hwif_t" class="sref">ide_hwif_t4/a> *4a href="+code=hwif" class="sref">hwif4/a>,14a href="+code=ide_drive_t" class="sref">ide_drive_t4/a> *4a href="+code=drive" class="sref">drive4/a>) 
 L57">1 57.1a
{ 
 L58">1 584/a>        c >st14a href="+code=u8" class="sref">u84/a> 4a href="+code=mode" class="sref">mode4/a> = 4a href="+code=drive" class="sref">drive4/a>->4a href="+code=dma_mode" class="sref">dma_mode4/a>; 
 L59">1 594/a>        4a href="+code=u8" class="sref">u84/a> 4a href="+code=single" class="sref">single4/a> = (4a href="+code=mode" class="sref">mode4/a> & 0x10) >> 4,14a href="+code=index" class="sref">index4/a> = 0,14a href="+code=data" class="sref">data4/a> = 0; 
 L60">1 68.1a
 
 L61">1 614/a>        4a href="+code=index" class="sref">index4/a> = 4a href="+code=hwif" class="sref">hwif4/a>->4a href="+code=channel" class="sref">channel4/a> ?14a href="+code=CY82_INDEX_CHANNEL1" class="sref">CY82_INDEX_CHANNEL14/a> :14a href="+code=CY82_INDEX_CHANNEL0" class="sref">CY82_INDEX_CHANNEL04/a>; 
 L62">1 62.1a
 
 L63">1 63e=datL39">1 394/a>#de#L63" id
 L69/asm-mips64/io.h|include/asm-parisc/i |#de#L63" id
 L69/8" class="sref">u84/a> 4a href="ss="ss=" 2)" class="sref">CY82_INDEX_CHANNEL04/a>
 
 L44">1 446a>
 outbss="sref">u84/aoutbde" class="sref">cy82 L61">1 614/a>        4a hrecode=index" class
 L45">1 454/a>#define14a href="+code=CY82_INDEX_)" class="sref">CY82_INDEX_CHANNEL04/pa>
 outbss="sref">u84/aoutbde" class="sref">cy8
 L63">1 63e=datL39">1 394/code=index" class
 L45">1 464/a>#define14a href="+code=CY82_DATA)" class="sref">CY82_INDEX_CHANNEL04/a>) 
 L47">1 476a
{ 
 L52">1 524/a>4spa> class="comment">/*4/s6a>; 4spa> class=Bus Mment">spa>TimeOut Re1are tYPRESS CY82C693 chipset IDE controller4/sp 0; is does, bur bussolvedmentproblemYPRESS CY82C693 chipset IDE controller4/sp1a
 spa>>1 5 tiosound,oso I 4spac1" a>4sosound5 tio testwithYPRESS CY82C693 chipset IDE controller4/spa>; mmmmmmmm* entspa>hipset a3"a>4ssy82By us :-)YPRESS CY82C693 chipset IDE controller4/sp1a
 mmmmmmmm*YPRESS CY82C693 chipset IDE controller4/spa>
 mmmmmmmm* I 264/a>4spaa>4scorrect (best)spa> class=a>is re1are tknow a YPRESS CY82C693 chipset IDE controller4/spa>
 mmmmmmmm* etter tion> - ASKYPRESS CY82C693 chipset IDE controller4/sppa>
 mmmmmmmm* L54">1 544/a>4spa> class="comment"> */4/s7pa>
 
 L47">1 477a
{ 
 L63">1 63e=datL39">1 394/a>#ass="line" nam>
 L30">1 304/a>#define14a href="+code=BUSMASTER_TIMEO" class="sref">CY82_INDEX_CHANNEL047a>; outbss="sref">u84/aoutbde" class="sref">cy8
 L50">1 504/a>#define14a href="+code=CY82_INDEX_TIMEOUcode=index" class
 L45">1 454/a>#define14a href="+code=CY82_INDEX_)" class="sref">CY82_INDEX_CHANNEL048 0; outbss="sref">u84/aoutbde" class="sref">cy8
 L63">1 63e=datL39">1 394/code=index" class
 L45">1 464/a>#define14a href="+code=CY82_DATA)" class="sref">CY82_INDEX_CHANNEL0481a
 CY82_INDEX_CHANNEL048a>; 
 L62">1 6281a
 
 L56">1 564/a>stpioc void14a href="+code=cy82c693_sepioc voide" class="sref">cy82c693_set_dma_mode4/a>(4a href="+code=ide_hwif_t" class="sref">ide_hwif_t4/a> *4a href="+code=hwif" class="sref">hwif4/a>,14a href="+code=ide_drive_t" class="sref">ide_drive_t4/a> *4a href="+code=drive" class="sref">drive48a>
 
 L57">1 57.8a>
 
 L58"pci_dev>ide_drive_t4/apci_dev=ide_drive_t" class="sev>ide_drive_t4/adev=ide_>#ass="line" nam>to_pci_dev>ide_drive_t4/ato_pci_devde" class="sref">cy8ass="sref">index4/a> = 4a href="+code=hwif" clasev>ide_drive_t4/adev=ide)" class="sref">CY82_INDEX_CHANNEL048pa>
 
 L58"bus_speed>ide_drive_t4/abus_speed=ide_>#ass="line" nam>hrefpci_clk">hwif4/a>,14a hrefpci_clkf="+code=channel" clashrefpci_clk">hwif4/a>,14a hrefpci_clkf="+c: 33" class="sref">CY82_INDEX_CHANNEL048pa>
 #define14a hreT=ide_>#1000000 /line" nam>
 L58"bus_speed>ide_drive_t4/abus_speed=ide" class="sref">CY82_INDEX_CHANNEL048pa>
 
 L58"addrCtref">hwif4/a>->addrCtre=ide" class="sref">CY82_INDEX_CHANNEL048a>; 
 L58"hrefy us="s>hwif4/a>,14a hrefy us="    4a href="+code=uf">hwif4/a>,14a t=ide" class="sref">CY82_INDEX_CHANNEL049 0; 
 L59">1 594/a>        4a href="+code=uy us_ref="driver>,14a t us_re4a href="+code=hwif" t us_ L59">1 594/a>  t us_ =ide" class="sref">CY82_INDEX_CHANNEL0491a
 
 L51">1 519a>; 
  2"3.1tprimarynt">seassdaryn="commen* L54">1 544/a>4spa> class="comment"> */4/s91a
 mode4/a> = 4a href="+code=drive" classn"sref">mode4/a> nref="slass1) {cl L52" class="line" nam>
  = 4a NOT nam>4sseassdaryn="commen* L54">1 544/a>4spa> class="comment"> */4/s9a>
 
ev>ide_drive_t4/adev=ide_>#ass="line" nam>pci_g_seslof">hwif4/a>,14a pci_g_seslofde" class="sref">cy8
ev>ide_drive_t4/adev=idef="+code=drive" clasbus>ide_drive_t4/abus4a href="+code=hwif" 
ev>ide_drive_t4/adev=idef="+code=drive" clasdevfn"sref">mode4/a> evfn=ide+1)" class="sref">CY82_INDEX_CHANNEL049a>
 ide_drive_t4/adev=ide)  L57" class="line" nam>
 L57">1 57.9pa>
 printk">hwif4/a>,14a printkde" class="sref">cy8KERN_ERefine14a href="+KERN_ERe    4a=DRV_NAME" class="sref">DR%s: tunef="+co: a> 4spa> class="string">"cy82c693"4/s9pa>
 DRCcomot fitioseassdaryninterface!\na> 4spa> clas,s="string">"cy82c693"4/s9pa>
 mode4/a> = 4a href="+code=drive" clase/cy"sref">mode4/a>e/cy=ide)" class="sref">CY82_INDEX_CHANNEL049pa>
 ="nsa/io.h" class="falt">asm/io.h4/a>&0a>
 CY82_INDEX_CHANNEL04101a
 CY82_INDEX_CHANNEL0410gt; 
 L62">1 6210gt; hrefy us="_linputy"sref">mode4/a>hrefy us="_linputyde" class="sref">cy8
ass="sref">mode4/a> = 4a hreref="+code=hwif" 
ass="sref">mode4/a> = 4a href="+code=drive" claspioc void14a href="+codpioc voide" ,-parisa href="+code=uf">hwif4/a>,14a t=ideref="+code=hwif" a>#define14a hreT=ide, 1)" class="sref">CY82_INDEX_CHANNEL0410gt; 
 L44">1 4410gt; y us_ref="driver>,14a t us_re4a h_>#ass="line" nam>"drmp_vaef">hwif4/a>->drmp_vaede" class="sref">cy8f">hwif4/a>,14a t=ide.lass="sref">cy8reaslin">hwif4/a>,14a reaslin4a h_- 1,"+co15) | L44" class="line" nam>
 L44">1 4410gt; cy8"drmp_vaef">hwif4/a>->drmp_vaede" class="sref">cy8f">hwif4/a>,14a t=ide.lass="sref">cy8/a>ts="sref">mode4/a>/a>ts=4a h_- 1,"+co15) ss="ss=" 4)" class="sref">CY82_INDEX_CHANNEL04101a
 y us_ L59">1 594/a>  t us_ =ide_>#ass="line" nam>"drmp_vaef">hwif4/a>->drmp_vaede" class="sref">cy8f">hwif4/a>,14a t=ide.lass="sref">cy8/a>8bss="sref">u84/a/a>8b4a h_- 1,"+co15) | L44" class="line" nam>
 L44">1 4410gt; cy8"drmp_vaef">hwif4/a>->drmp_vaede" class="sref">cy8f">hwif4/a>,14a t=ide.lass="sref">cy8rea8bss="sref">u84/area8b4a h_- 1,"+co15) ss="ss=" 4)" class="sref">CY82_INDEX_CHANNEL04101a
 
 L44">1 441pa>
 
 on> lethe CY82a> ce aa>4sclocksere1are the offset defini	  >s for the registers */4/s1.1a
 mode4/a> = 4a href="+code=drive" classn"sref">mode4/a> nref="sarisc1) == 0)  L57" class="line" nam>
 L57">1 57.1> 
 L52">1 524/a>4spa> class="comment">/*4/s1> mmmmmmmmmmmmmmmm
 L53"mment"> = 4a h52">1 524/a>4spa> class="comment">/*4/s1> mmmmmmmmmmmmmmmm
 address L53upmment"> ere1are t h52">1 524/a>4spa> class="comment">/*4/s1> mmmmmmmmmmmmmmmm
 is 32 bit !!! h52">1 524/a>4spa> class="comment">/*4/s1> mmmmmmmmmmmmmmmm
offset defini	  >s for the registers */4/s1.1a
 pci_readiv
 fig_dword>ide_drive_t4/apci_readiv
 fig_dwordde" class="sref">cy8
ev>ide_drive_t4/adev=idecode=index" class
 L45">1 374/a>#define14a href="+code=CY82_IDE_ADDRSETU,-parisa href="+code=uaddrCtref">hwif4/a>->addrCtre=ide)" class="sref">CY82_INDEX_CHANNEL041> 
 L18">1 18..1a
 hwif4/a>->addrCtre=ide-paris= (~0xF)" class="sref">CY82_INDEX_CHANNEL041pa>
 hwif4/a>->addrCtre=ide-|>#ass="line" nam>"drmp_vaef">hwif4/a>->drmp_vaede" class="sref">cy8f">hwif4/a>,14a t=ide.lass="sref">cy8L53up">hwif4/a>,14a L53up4a h_- 1,"+co15)" class="sref">CY82_INDEX_CHANNEL041p1a
 pci_a> ceiv
 fig_dword>ide_drive_t4/apci_a> ceiv
 fig_dwordde" class="sref">cy8
ev>ide_drive_t4/adev=idecode=index" class
 L45">1 374/a>#define14a href="+code=CY82_IDE_ADDRSETU,-a href="+code=uaddrCtref">hwif4/a>->addrCtre=ide)" class="sref">CY82_INDEX_CHANNEL0412gt; 
 L62">1 621pa>
 
 on> lethe CY82L53"a>4sremain   are1are the offset defini	  >s for the registers */4/s1pa>
 pci_a> ceiv
 fig_byty"sref">mode4/a>pci_a> ceiv
 fig_bytyde" class="sref">cy8
ev>ide_drive_t4/adev=idecode=index" class
 L45">1 384/a>#define14a href="+code=CY82_IDE_MASTER_IORref="+code=hwif" t us_ref="driver>,14a t us_re4a h)" class="sref">CY82_INDEX_CHANNEL0412gt; pci_a> ceiv
 fig_byty"sref">mode4/a>pci_a> ceiv
 fig_bytyde" class="sref">cy8
ev>ide_drive_t4/adev=idecode=index" class
 L45">1 384/a>#define14a href="+code=CY82_IDE_MASTER_IOWref="+code=hwif" t us_ref="driver>,14a t us_re4a h)" class="sref">CY82_INDEX_CHANNEL0412gt; pci_a> ceiv
 fig_byty"sref">mode4/a>pci_a> ceiv
 fig_bytyde" class="sref">cy8
ev>ide_drive_t4/adev=idecode=index" class
 L45">1 384/a>#define14a href="+code=CY82_IDE_MASTER_8BIT"ref="+code=hwif" t us_ L59">1 594/a>  t us_ =ide)" class="sref">CY82_INDEX_CHANNEL04121a
 
 L57">1 57.1pa>
 
 L52">1 524/a>4spa> class="comment">/*4/s1.1a
  = 4a h52">1 524/a>4spa> class="comment">/*4/s1pa>
  ere1are t h52">1 524/a>4spa> class="comment">/*4/s10x50 1 524/a>4spa> class="comment">/*4/s1pa>
 mmmmmmmma63" clm
offset defini	  >s for the registers */4/s13gt; pci_readiv
 fig_dword>ide_drive_t4/apci_readiv
 fig_dwordde" class="sref">cy8
ev>ide_drive_t4/adev=idecode=index" class
 L45">1 374/a>#define14a href="+code=CY82_IDE_ADDRSETU,-parisa href="+code=uaddrCtref">hwif4/a>->addrCtre=ide)" class="srefor the registers */4/s13a>
 
 L34">1 341.1a
 addrCtref">hwif4/a>->addrCtre=ide-paris= (~0xF0)" class="srefor the registers */4/s13gt; addrCtref">hwif4/a>->addrCtre=ide-|>#class="sref">cy8"drmp_vaef">hwif4/a>->drmp_vaede" class="sref">cy8f">hwif4/a>,14a t=ide.lass="sref">cy8L53up">hwif4/a>,14a L53up4a h_- 1,"+co15) ss="ss=" 4)" class="sref">CY82_INDEX_CHANNEL0410x04 pci_a> ceiv
 fig_dword>ide_drive_t4/apci_a> ceiv
 fig_dwordde" class="sref">cy8
ev>ide_drive_t4/adev=idecode=index" class
 L45">1 374/a>#define14a href="+code=CY82_IDE_ADDRSETU,-a href="+code=uaddrCtref">hwif4/a>->addrCtre=ide)" class="sref">CY82_INDEX_CHANNEL0410a>
 
 L18">1 18.0x4C 
 on> lethe CY82L53"a>4sremain   are1are the offset defini	  >s for the registers */4/s10x4D mode4/a>pci_a> ceiv
 fig_bytyde" class="sref">cy8
ev>ide_drive_t4/adev=idecode=index" class
 L45">1 404/a>#define14a href="+code=CY82_IDE_SLAVE_IOref="+code=hwif" t us_ref="driver>,14a t us_re4a h)" class="sref">CY82_INDEX_CHANNEL0410x4E pci_a> ceiv
 fig_byty"sref">mode4/a>pci_a> ceiv
 fig_bytyde" class="sref">cy8
ev>ide_drive_t4/adev=idecode=index" class
 L45">1 404/a>#define14a href="+code=CY82_IDE_SLAVE_IOref="+code=hwif" t us_ref="driver>,14a t us_re4a h)" class="sref">CY82_INDEX_CHANNEL0410a>
 pci_a> ceiv
 fig_byty"sref">mode4/a>pci_a> ceiv
 fig_bytyde" class="sref">cy8
ev>ide_drive_t4/adev=idecode=index" class
 L45">1 404/a>#define14a href="+code=CY82_IDE_SLAVE_8BITref="+code=hwif" t us_ L59">1 594/a>  t us_ =ide)" class="sref">CY82_INDEX_CHANNEL0410x50 CY82_INDEX_CHANNEL0410x51 mode4/a> = 4a href="+code=drive" classn"sref">mode4/a> nref="slass1) class="sref">CY82_INDEX_CHANNEL04101a
 pci_dev_puf">hwif4/a>,14a pci_dev_pufde" class="sref">cy8
ev>ide_drive_t4/adev=ide)" class="sref">CY82_INDEX_CHANNEL0410gt; CY82_INDEX_CHANNEL0410x04 
 L47">1 471.1a
 
 L5s="c_iops_>
 L47">"sref">mode4/a>h="c_iops_>
 L47">de" class="sref">cy82c693_set_dma_mode4/a>(4a href="+code=ide_hwif_t" class="sref">ide_hwif_t4/a> *4a h) class="sref">CY82_INDEX_CHANNEL0410x4C 
 L57">1 57.10x31 cy82c693_set_dma_mode4/a>(4a href="+code=ide_hwif_t" class=primary">hwif4/a>,14a primaryde=iide.h" class="fref">linux/ide.h4/a>&gx4E 
 L58"pci_dev>ide_drive_t4/apci_dev=ide_drive_t" class="sev>ide_drive_t4/adev=ide_>#ass="line" nam>to_pci_dev>ide_drive_t4/ato_pci_devde" class="sref">cy8ass="sref">index4/a> = 4a href="+code=hwif" clasev>ide_drive_t4/adev=ide)" class="sref">CYf">linux/ide.h4/a>&ga>
 
 L62">1 621pa>
 ide_drive_t4/aPCI_FUNCde" class="sref">cy8
ev>ide_drive_t4/adev=idef="+code=drive" clasdevfn"sref">mode4/a> evfn=ide) == 1) class="sref">CY82_INDEX_CHANNEL041pa>
 primary">hwif4/a>,14a primaryde=if="+code=index" class="sref">index4/a> = 4a h" class="sref">CYf">linux/ide.h4/a>&g1a
 
 L57">1 57.1.1a
 ass="sref">index4/a> = 4a href="+code=hwif" clamaty"sref">mode4/a>matyde=if="+code=index" clprimary">hwif4/a>,14a primaryde=iide.h" class="fref">linux/ide.h4/a>&gx04 ass="sref">index4/a> = 4a href="+code=hwif" class="sref">hwif4/a>->4a href="+c= 1ide.h" class="fref">linux/ide.h4/a>&g1a
 CY82_INDEX_CHANNEL041/a>; CY82_INDEX_CHANNEL041= 0; 
 L60">1 681.1a
 
 L58"hrefport_opsdma_mode4/a>(4a hreport_ops id
 +code=hwif" clas=cy82c69port_opsdma_mode4/a>(4as=cy82c69port_opsf="+c=  L57" class="line" nam>
 L57">1 57.1/a>; cy8L53tpioc void14a href="+cod3_sepioc voide" " cla63" cl>#ass="line" nam>"">1 564/a>stpioc void14a href="+code=cy82c693_sepioc voide" ,s="string">"cy82c693"4/s1.1a
 cy8L53ts="sref">drive4/a>->3_set_dma_mode" " cla63" cl>#ass="line" nam>"">1 564/a>static void14a href="+code=cy82c693_set_dma_mode" ,s="string">"cy82c693"4/s1.a>
 linux/init.h4/a>&g1a
 
 L55">1 551/pa>
 
 L58"hrefport_infodma_mode4/a>(4a hreport_info id
 +code=hwif" clas=cy82c694spa> cd14a href="+code=cy82c694spa> cf="+c=  L57" class="line" nam>
 L57">1 57.1/x04 cy8e/cy"sref">mode4/a>e/cy=ide" cla63" cl>#ass="line" nam>
 L19">1 194/a>#define14a href="+co,s="string">"cy82c693"4/s1.1a
 cy8h="c_iops"sref">mode4/a>h="c_iops id
 L58" >#ass="line" nam>h="c_iops_>
 L47">"sref">mode4/a>h="c_iops_>
 L47">de" ,s="string">"cy82c693"4/s1.a>; cy8port_opsdma_mode4/a>(4aport_opsf="+c L58" >#parisa href="+code=us=cy82c69port_opsdma_mode4/a>(4as=cy82c69port_opsf="+,s="string">"cy82c693"4/s1p 0; cy8host_flagsdma_mode4/a>(4ahost_flags id
 L58">#ass="line" nam>Y82_HFLAG_SINGL1 194/a>#define1Y82_HFLAG_SINGL1f="+,s="string">"cy82c693"4/s1p1a
 cy8pioc ask">hwif4/a>,14a pioc askf="+c L58" >#lass="sref">cy8de=CYIO4">hwif4/a>,14a de=CYIO4f="+,s="string">"cy82c693"4/s1pa>; cy8Lwt_dmaask">hwif4/a>,14a Lwt_dmaask id
 L58">#ass="line" nam>de=CSWDMA2">hwif4/a>,14a de=CSWDMA2f="+,s="string">"cy82c693"4/s1p1a
 cy8mwt_dmaask">hwif4/a>,14a mwt_dmaask id
 L58">#ass="line" nam>de=CMWDMA2">hwif4/a>,14a de=CMWDMA2f="+,s="string">"cy82c693"4/s1pa>
 linux/init.h4/a>&pa>
 
 L55">1 551ppa>
 
 L58"s=cy82c69h="c_
4diva_mode4/a>(4as=cy82c69h="c_
4dde" c Lruc"line" nam>
 L58"pci_dev>ide_drive_t4/apci_dev=ide_drive_t" class="sev>ide_drive_t4/adev=ide,s="string">"cy82c693"4/s1p1a
 
 L58"pci_device_id>ide_drive_t4/apci_device_id=ide_drive_t" class="id>ide_drive_t4/aid=ide) class="sref">CY82_INDEX_CHANNEL0417a
{ 
 L57">1 57.17a>; 
 L58"pci_dev>ide_drive_t4/apci_dev=ide_drive_t" class="sev2">hwif4/a>,14a sev2de=iide.h" class="fref">linux/ide.h4/a>&8 0; 
 L58"r cd14a href="+codr cf="+c= -ine" nam>
 L58"ENODEVd14a href="+codENODEVde=iide.h" class="fref">linux/ide.h4/a>&81a
 
 L51">1 5118a>; 
 >1 184/a>is mo 354/2" only a="comment"> * C or how to calc it, please let me know.4/s181a
 mmmmmmmmmmFunccomm 1>is primaryn"comm4a hre, funccomm 2 -oseassdary.e offset defini	  >s for the registers */4/s18a>
 cy8
ev>ide_drive_t4/adev=idef="+code=drive" clasde_drf">hwif4/a>->drssref="slasslass8) == e#L63" id
 L69/PCI_CLASS_STORAGECY82>ide_drive_t4/aPCI_CLASS_STORAGECY82=ide-parisparisefini	  >s for the registers */4/s18a>
 ide_drive_t4/aPCI_FUNCde" class="sref">cy8
ev>ide_drive_t4/adev=idef="+code=drive" clasdevfn"sref">mode4/a> evfn=ide) == 1)  L57" class="line" nam>
 L57">1 57.18pa>
 sev2">hwif4/a>,14a sev2de=i_>#ass="line" nam>pci_g_seslof">hwif4/a>,14a pci_g_seslofde" class="sref">cy8
ev>ide_drive_t4/adev=idef="+code=drive" clasbus>ide_drive_t4/abus4a href="+code=hwif" 
ev>ide_drive_t4/adev=idef="+code=drive" clasdevfn"sref">mode4/a> evfn=ide + 1)" class="sref">CY82_INDEX_CHANNEL0418pa>
 r cd14a href="+codr cf="+c= ine" nam>
 L58"hrefpci_h="c_twodma_mode4/a>(4a hrepci_h="c_twode" class="sref">cy8
ev>ide_drive_t4/adev=idecode=index" classsev2">hwif4/a>,14a sev2de=i,-parisa href="+code=us=cy82c694spa> cd14a href="+code=cy82c694spa> cf="+code=index" classNULLd14a href="+codNULL=ide)" class="sref">CYf">linux/ide.h4/a>&8pa>
 CY82_INDEX_CHANNEL0418a>; pci_dev_puf">hwif4/a>,14a pci_dev_pufde" class="sref">cy8
ev2">hwif4/a>,14a sev2de=i)" class="sref">CYf">linux/ide.h4/a>&9 0; CY82_INDEX_CHANNEL04191a
 ="lass="line" nam>r cd14a href="+codr cf="+" class="sref">CYf">linux/ide.h4/a>&9a>; CY82_INDEX_CHANNEL04191a
 de"  class="sref">CY82_INDEX_CHANNEL0419a>
 
 L56">1 564/remos="sref">mode4/a>6">1 564/remos=de" c Lruc"line" nam>
 L58"pci_dev>ide_drive_t4/apci_dev=ide_drive_t" class="sev>ide_drive_t4/adev=ide) class="sref">CY82_INDEX_CHANNEL0419a>
 
 L57">1 57.19pa>
 
 L58"hrefhostdma_mode4/a>(4a hrefostde=ide_hwif_t" class="ostdma_mode4/a>(4afostde=id>#ass="line" nam>pci_g_sedrv
 L63">1 63e=datL39pci_g_sedrv
 L6de" class="sref">cy8
ev>ide_drive_t4/adev=ide)" class="sref">CYf">linux/ide.h4/a>&9pa>
 
 L58"pci_dev>ide_drive_t4/apci_dev=ide_drive_t" class="sev2">hwif4/a>,14a sev2de=if="+code=index" claostdma_mode4/a>(4afostde=iref="+code=hwif" clasev>ide_drive_t4/adev=ide[1]code=channel" clasto_pci_dev>ide_drive_t4/ato_pci_devde" class="sref">cy8aostdma_mode4/a>(4afostde=iref="+code=hwif" clasev>ide_drive_t4/adev=ide[1])" class="sref">CY8NULLd14a href="+codNULL=ide" class="sref">CYf">linux/ide.h4/a>&9pa>
 
 L18">1 18.9pa>
  hrepci_remos="sref">mode4/a> hrepci_remos=de" class="sref">cy8
ev>ide_drive_t4/adev=ide)" class="sref">CYf">linux/ide.h4/a>20a>
 pci_dev_puf">hwif4/a>,14a pci_dev_pufde" class="sref">cy8
ev2">hwif4/a>,14a sev2de=i)" class="sref">CYf">linux/ide.h4/a>201a
 CY82_INDEX_CHANNEL0420gt; 
 L62">1 6220gt; 
 L58"pci_device_id>ide_drive_t4/apci_device_id=ide_a href="+code=us=cy82c69pci_tbef">hwif4/a>->=cy82c69pci_tbe=ide[]c=  L57" class="line" nam>
 L57">1 57.20gt; ide_drive_t4/aPCI_VDEVIC2de" class="sref">cy8CONTAQ>ide_drive_t4/aCONTAQf="+code=index" classPCI_DEVIC2CY8_CONTAQ_ 184/a>ide_drive_t4/aPCI_DEVIC2CY8_CONTAQ_ 184/ade=i), 0 },s="string">"cy82c693"4/s20gt; "cy82c693"4/s206t; linux/init.h4/a>201a
 #define1MODULE_DEVIC2CTABL1de" class="sref">cy8pci>ide_drive_t4/apcif="+code=index" classs=cy82c69pci_tbef">hwif4/a>->=cy82c69pci_tbe=ide)" class="sref">CYf">linux/ide.h4/a>208a
 
 L18">1 18201a
 
 L58"pci_d="lin>ide_drive_t4/apci_d="lin=ide_a href="+code=us=cy82c69pci_d="lin>ide_drive_t4/as=cy82c69pci_d="linf="+c=  L57" class="line" nam>
 L57">1 57.2pa>
 cy8e/cy"sref">mode4/a>e/cy=ide" cla63" cl>#aL52" class="lass="sref">DRCypressCY82a> 4spa> clas,s="string">"cy82c693"4/s2.1a
 cy8id_tablass="sref">u84/aid_tablaf="+c L58" >#lass="sref">cy8s=cy82c69pci_tbef">hwif4/a>->=cy82c69pci_tbe=ide,s="string">"cy82c693"4/s2.gt; cy8proby"sref">mode4/a>proby=ide" cla63" c>#lass="sref">cy8s=cy82c69h="c_
4diva_mode4/a>(4as=cy82c69h="c_
4dde" ,s="string">"cy82c693"4/s2.gt; cy8remos="sref">mode4/a>remos=de"  cla63" c>#lass="sref">cy8s=cy82c69remos="sref">mode4/a>6">1 564/remos=de" ,s="string">"cy82c693"4/s2.gt; cy8suspend>ide_drive_t4/asuspend id
 L63" cl= ine" nam>
 L58"hrefpci_suspend>ide_drive_t4/ahrefpci_suspendde" ,s="string">"cy82c693"4/s2.gt; cy8resucy"sref">mode4/a>resucyde"  cla63" c>#lass="sref">cy8 hrepci_resucy"sref">mode4/a> hrepci_resucyde" ,s="string">"cy82c693"4/s2.6t; linux/init.h4/a>2.1a
 
 L47">1 472> 
 L58"_9h="c"sref">mode4/a>_9h="c=ide_a href="+code=us=cy82c69 hreh="c"sref">mode4/a>s=cy82c69 hreh="cde" class) class="sref">CY82_INDEX_CHANNEL042.1a
 
 L57">1 57.2pa>
 ="lass="line" nam> hrepci_re1are t_d="lin>ide_drive_t4/a hrepci_re1are t_d="linde" cparisa href="+code=us=cy82c69pci_d="lin>ide_drive_t4/as=cy82c69pci_d="linf="+)" class="sref">CYf">linux/ide.h4/a>2p1a
 CY82_INDEX_CHANNEL0422gt; 
 L62">1 622pa>
 
 L5__ex"c"sref">mode4/a>_9ex"c=ide_a href="+code=us=cy82c69 hreex"c"sref">mode4/a>s=cy82c69 hreex"cde" class) class="sref">CY82_INDEX_CHANNEL042pa>
 
 L57">1 57.22gt; 
 L58"pci_unre1are t_d="lin>ide_drive_t4/apci_unre1are t_d="linde" cparisa href="+code=us=cy82c69pci_d="lin>ide_drive_t4/as=cy82c69pci_d="linf="+)" class="sref">CYf">linux/ide.h4/a>2p6t; CY82_INDEX_CHANNEL04221a
 
 L47">1 472pa>
 mode4/a>modulreh="cde" class="sref">cy8s=cy82c69 hreh="c"sref">mode4/a>s=cy82c69 hreh="cde" )" class="sref">CYf">linux/ide.h4/a>2p1a
 mode4/a>modulreex"cde" class="sref">cy8s=cy82c69 hreex"c"sref">mode4/a>s=cy82c69 hreex"cde" )" class="sref">CYf">linux/ide.h4/a>2pa>
 
 L60">1 6820x50 DRAndreas Krebs, Andre Hes="ck, Bartlomiej Zolnierkiewicza> 4spa> clas)" class="sref">CYf">linux/ide.h4/a>2pgt; #define1MODULE_DESCRIPTIONde" clL52" class="lass="sref">DRPCI>hipset modulrlass=a>e Cypress >1 184/a>Y82a> 4spa> clas)" class="sref">CYf">linux/ide.h4/a>2pa>
 #define1MODULE_LICENS1de" clL52" class="lass="sref">DRGPLa> 4spa> clas)" class="sref">CYf">linux/ide.h4/a>2pa>
 


T>e original LXR software by=a>e class="srhttp://sourceassge.net/projects/lxt">LXR lineu="cyf="+coa>is experie" nal >CYfomm by=class="srmailto:lxt@s/iux.no">lxt@s/iux.nof="+. lxt.s/iux.no kindly fosted by=class="srhttp://www.redpill-s/ipro.no">Redpill L/ipro ASf="+coprov>lir of L/iuxcass=ult a tiooperacomm82L5rvice82LinceL19"5.