linux/drivers/pcmcia/db1xxx_ss.c
<<
="v3.14/spa> .14/form .14a ="v3.1 href="../linux+v39 7/drivers/pcmcia/db1xxx_ss.c">="v3.14img src="../.static/gfx/right.png" alt=">>">="4/spa> ="4spa> class="lxr_search">="v3="+search" method="post" onsubmit="return do_search(this);">="v3.14input typ hidden" nam navtarget" ion> ">="v3.14input typ text" nam search" id search">="v3.14buttopttyp submit">Search ="4spa> class="lxr_prefs" .14a href="+prefs?return=drivers/pcmcia/db1xxx_ss.c"="v3.1 onclick="return ajax_prefs();">="v3.1Prefs .14/a>="4/spa> v3.1 14/div v3.1 14form ac >="ajax+*" method="post" onsubmit="return false;">="4input typ hidden" nam ajax_lookup" id ajax_lookup" ion> ">=v3.1 14/form =v3.1 14div class="headingbottom">
4div id file_contents"
1 114/a>4spa> class="comment">/*4/spa>
 1 124/a>4spa> class="comment"> * PCMCIA socket code for the Alchemy Db1xxx/Pb1xxx boards.4/spa>
 1 134/a>4spa> class="comment"> *4/spa>
 1 144/a>4spa> class="comment"> * Copyright (c) 2009 Manuel Lauss <manuel.lauss@gmail.com>4/spa>
 1 154/a>4spa> class="comment"> *4/spa>
 1 164/a>4spa> class="comment"> */4/spa>
 1 174/a>=1 184/a>4spa> class="comment">/* This is a fairly generic PCMCIA socket driver suitable for the4/spa>
 1 194/a>4spa> class="comment"> * following Alchemy Development boards:4/spa>
 1 ="v3a>4spa> class="comment"> *  Db1000, Db/Pb1500, Db/Pb1100, Db/Pb1550, Db/Pb1200, Db13004/spa>
 1 114/a>4spa> class="comment"> *4/spa>
 1 124/a>4spa> class="comment"> * The Db1000 is used as a reference:.1Per-socket card-, carddetect- and4/spa>
 1 134/a>4spa> class="comment"> *  statuschange IRQs connected to SoC GPIOs, control and status register4/spa>
 1 144/a>4spa> class="comment"> *  bits arranged in per-socket groups in a> external PLD.  All boards4/spa>
 1 154/a>4spa> class="comment"> *  listed here use this layout, including bit posi	  >s and meanings.4/spa>
 1 164/a>4spa> class="comment"> *  Of course there are excep	  >s in later boards:4/spa>
 1 174/a>4spa> class="comment"> *4/spa>
 1 184/a>4spa> class="comment"> *      - Pb1100/Pb1500:.1single socket only; voltage key bits VS are4/spa>
 1 194/a>4spa> class="comment"> *                        at STATUS[5:4] (instead of STATUS[1:0]).4/spa>
 1 2"v3a>4spa> class="comment"> *      - Au1200-based:   addi	  >al card-eject irqs, irqs not gpios!4/spa>
 1 214/a>4spa> class="comment"> *      - Db1300:         Db1200-like, no pwr ctrl,1single socket (#1).4/spa>
 1 224/a>4spa> class="comment"> */4/spa>
 1 234/a>=1 244/a>#include <linux/delay.h4/a>>=1 254/a>#include <linux/gpio.h4/a>>=1 264/a>#include <linux/interrupt.h4/a>>=1 274/a>#include <linux/pm.h4/a>>=1 284/a>#include <linux/module.h4/a>>=1 294/a>#include <linux/platform_device.h4/a>>=1 304/a>#include <linux/resource.h4/a>>=1 314/a>#include <linux/slab.h4/a>>=1 324/a>#include <linux/spinlock.h4/a>>=1 334/a>=1 344/a>#include <pcmcia/ss.h4/a>>=1 354/a>=1 364/a>#include <asm/mach-au1x00/au1000.h4/a>>=1 374/a>#include <asm/mach-db1x00/bcsr.h4/a>>=1 384/a>=1 394/a>#define14a href="+code=MEM_MAP_SIZE" class="sref">MEM_MAP_SIZE4/a>    0x400000 1 404/a>#define14a href="+code=IO_MAP_SIZE" class="sref">IO_MAP_SIZE4/a>     0x1000 1 414/a>=1 424/a>struct14a href="+code=db1x_pcmcia_sock" class="sref">db1x_pcmcia_sock4/a> {=1 434/a>        struct14a href="+code=pcmcia_socket" class="sref">pcmcia_socket4/a>    4a href="+code=socket" class="sref">socket4/a>;=1 444/a>        int             4a href="+code=nr" class="sref">nr4/a>;             4spa> class="comment">/* socket number */4/spa>
 1 454/a>        void            *4a href="+code=virt_io" class="sref">virt_io4/a>;=1 464/a>=1 474/a>        4a href="+code=phys_addr_t" class="sref">phys_addr_t4/a>     4a href="+code=phys_io" class="sref">phys_io4/a>;=1 484/a>        4a href="+code=phys_addr_t" class="sref">phys_addr_t4/a>     4a href="+code=phys_attr" class="sref">phys_attr4/a>;=1 494/a>        4a href="+code=phys_addr_t" class="sref">phys_addr_t4/a>     4a href="+code=phys_mem" class="sref">phys_mem4/a>;=1 504/a>=1 514/a>        4spa> class="comment">/* previous flags for set_socket() */4/spa>
 1 524/a>        unsigned int14a href="+code=old_flags" class="sref">old_flags4/a>;=1 534/a>=1 544/a>        4spa> class="comment">/* interrupt sources: linux irq numbers! */4/spa>
 1 554/a>        int     4a href="+code=insert_irq" class="sref">insert_irq4/a>;     4spa> class="comment">/* default carddetect irq */4/spa>
 1 564/a>        int     4a href="+code=stschg_irq" class="sref">stschg_irq4/a>;     4spa> class="comment">/* card-status-change irq */4/spa>
 1 574/a>        int     4a href="+code=card_irq" class="sref">card_irq4/a>;       4spa> class="comment">/* card irq */4/spa>
 1 584/a>        int     4a href="+code=eject_irq" class="sref">eject_irq4/a>;      4spa> class="comment">/* db1200/pb1200 have these */4/spa>
 1 594/a>=1 604/a>#define14a href="+code=BOARD_TYPE_DEFAULT" class="sref">BOARD_TYPE_DEFAULT4/a>      0       4spa> class="comment">/* most boards */4/spa>
 1 614/a>#define14a href="+code=BOARD_TYPE_DB1200" class="sref">BOARD_TYPE_DB12004/a>       1       4spa> class="comment">/* IRQs aren't gpios */4/spa>
 1 624/a>#define14a href="+code=BOARD_TYPE_PB1100" class="sref">BOARD_TYPE_PB11004/a>       2       4spa> class="comment">/* VS bits slightly different */4/spa>
 1 634/a>#define14a href="+code=BOARD_TYPE_DB1300" class="sref">BOARD_TYPE_DB13004/a>       3       4spa> class="comment">/* no power control */4/spa>
 1 644/a>        int     4a href="+code=board_typ
" class="sref">board_typ
4/a>;=1 654/a>};=1 664/a>=1 674/a>#define14a href="+code=to_db1x_socket" class="sref">to_db1x_socket4/a>(4a href="+code=x" class="sref">x4/a>) 4a href="+code=container_of" class="sref">container_of4/a>(4a href="+code=x" class="sref">x4/a>, struct14a href="+code=db1x_pcmcia_sock" class="sref">db1x_pcmcia_sock4/a>, 4a href="+code=socket" class="sref">socket4/a>)=1 684/a>=1 694/a>static int14a href="+code=db1300_card_inserted" class="sref">db1300_card_inserted4/a>(struct14a href="+code=db1x_pcmcia_sock" class="sref">db1x_pcmcia_sock4/a> *4a href="+code=sock" class="sref">sock4/a>)=1 704/a>{=1 714/a>        return 4a href="+code=bcsr_read" class="sref">bcsr_read4/a>(4a href="+code=BCSR_SIGSTAT" class="sref">BCSR_SIGSTAT4/a>) & (1 << 8);=1 724/a>}=1 734/a>=1 744/a>4spa> class="comment">/* DB/PB1200: check CPLD SIGSTATUS register bit 10/12 */4/spa>
 1 754/a>static int14a href="+code=db1200_card_inserted" class="sref">db1200_card_inserted4/a>(struct14a href="+code=db1x_pcmcia_sock" class="sref">db1x_pcmcia_sock4/a> *4a href="+code=sock" class="sref">sock4/a>)=1 764/a>{=1 774/a>        unsigned short14a href="+code=sigstat" class="sref">sigstat4/a>;=1 784/a>=1 794/a>        4a href="+code=sigstat" class="sref">sigstat4/a> = 4a href="+code=bcsr_read" class="sref">bcsr_read4/a>(4a href="+code=BCSR_SIGSTAT" class="sref">BCSR_SIGSTAT4/a>);=1 804/a>        return 4a href="+code=sigstat" class="sref">sigstat4/a> & 1 << (8 + 2 * 4a href="+code=sock" class="sref">sock4/a>->4a href="+code=nr" class="sref">nr4/a>);=1 814/a>}=1 824/a>=1 834/a>4spa> class="comment">/* carddetect gpio: low-ac	 ve */4/spa>
 1 844/a>static int14a href="+code=db1000_card_inserted" class="sref">db1000_card_inserted4/a>(struct14a href="+code=db1x_pcmcia_sock" class="sref">db1x_pcmcia_sock4/a> *4a href="+code=sock" class="sref">sock4/a>)=1 854/a>{=1 864/a>        return !4a href="+code=gpio_get_ion>
" class="sref">gpio_get_ion>
4/a>(4a href="+code=irq_to_gpio" class="sref">irq_to_gpio4/a>(4a href="+code=sock" class="sref">sock4/a>->4a href="+code=insert_irq" class="sref">insert_irq4/a>));=1 874/a>}=1 884/a>=1 894/a>static int14a href="+code=db1x_card_inserted" class="sref">db1x_card_inserted4/a>(struct14a href="+code=db1x_pcmcia_sock" class="sref">db1x_pcmcia_sock4/a> *4a href="+code=sock" class="sref">sock4/a>)=1 904/a>{=1 914/a>        switch (4a href="+code=sock" class="sref">sock4/a>->4a href="+code=board_typ
" class="sref">board_typ
4/a>) {=1 924/a>        case14a href="+code=BOARD_TYPE_DB1200" class="sref">BOARD_TYPE_DB12004/a>:=1 934/a>                return 4a href="+code=db1200_card_inserted" class="sref">db1200_card_inserted4/a>(4a href="+code=sock" class="sref">sock4/a>);=1 944/a>        case14a href="+code=BOARD_TYPE_DB1300" class="sref">BOARD_TYPE_DB13004/a>:=1 954/a>                return 4a href="+code=db1300_card_inserted" class="sref">db1300_card_inserted4/a>(4a href="+code=sock" class="sref">sock4/a>);=1 964/a>        default:=1 974/a>                return 4a href="+code=db1000_card_inserted" class="sref">db1000_card_inserted4/a>(4a href="+code=sock" class="sref">sock4/a>);=1 984/a>        }=1 994/a>}=11004/a>=11014/a>4spa> class="comment">/* STSCHG tends to bounce heavily when cards are inserted/ejected.4/spa>
 11024/a>4spa> class="comment"> * To avoid this, the interrupt is normally disabled and only enabled4/spa>
 11034/a>4spa> class="comment"> * after reset to a card has been de-asserted.4/spa>
 11044/a>4spa> class="comment"> */4/spa>
 11054/a>static 4a href="+code=inline" class="sref">inline4/a> void 4a href="+code=set_stschg" class="sref">set_stschg4/a>(struct14a href="+code=db1x_pcmcia_sock" class="sref">db1x_pcmcia_sock4/a> *4a href="+code=sock" class="sref">sock4/a>, int14a href="+code=en" class="sref">en4/a>)=11064/a>{=11074/a>        if (4a href="+code=sock" class="sref">sock4/a>->4a href="+code=stschg_irq" class="sref">stschg_irq4/a> != -1) {=11084/a>                if (4a href="+code=en" class="sref">en4/a>)=11094/a>                        4a href="+code=enable_irq" class="sref">enable_irq4/a>(4a href="+code=sock" class="sref">sock4/a>->4a href="+code=stschg_irq" class="sref">stschg_irq4/a>);=11104/a>                else=11114/a>                        4a href="+code=disable_irq" class="sref">disable_irq4/a>(4a href="+code=sock" class="sref">sock4/a>->4a href="+code=stschg_irq" class="sref">stschg_irq4/a>);=11124/a>        }=11134/a>}=11144/a>=11154/a>static 4a href="+code=irqreturn_t" class="sref">irqreturn_t4/a> 4a href="+code=db1000_pcmcia_cdirq" class="sref">db1000_pcmcia_cdirq4/a>(int14a href="+code=irq" class="sref">irq4/a>, void *4a href="+code=data" class="sref">data4/a>)=11164/a>{=11174/a>        struct14a href="+code=db1x_pcmcia_sock" class="sref">db1x_pcmcia_sock4/a> *4a href="+code=sock" class="sref">sock4/a> = 4a href="+code=data" class="sref">data4/a>;=11184/a>=11194/a>        4a href="+code=pcmcia_parse_events" class="sref">pcmcia_parse_events4/a>(&4a href="+code=sock" class="sref">sock4/a>->4a href="+code=socket" class="sref">socket4/a>, 4a href="+code=SS_DETECT" class="sref">SS_DETECT4/a>);=11204/a>=11214/a>        return 4a href="+code=IRQ_HANDLED" class="sref">IRQ_HANDLED4/a>;=11224/a>}=11234/a>=11244/a>static 4a href="+code=irqreturn_t" class="sref">irqreturn_t4/a> 4a href="+code=db1000_pcmcia_stschgirq" class="sref">db1000_pcmcia_stschgirq4/a>(int14a href="+code=irq" class="sref">irq4/a>, void *4a href="+code=data" class="sref">data4/a>)=11254/a>{=11264/a>        struct14a href="+code=db1x_pcmcia_sock" class="sref">db1x_pcmcia_sock4/a> *4a href="+code=sock" class="sref">sock4/a> = 4a href="+code=data" class="sref">data4/a>;=11274/a>=11284/a>        4a href="+code=pcmcia_parse_events" class="sref">pcmcia_parse_events4/a>(&4a href="+code=sock" class="sref">sock4/a>->4a href="+code=socket" class="sref">socket4/a>, 4a href="+code=SS_STSCHG" class="sref">SS_STSCHG4/a>);=11294/a>=11304/a>        return 4a href="+code=IRQ_HANDLED" class="sref">IRQ_HANDLED4/a>;=11314/a>}=11324/a>=11334/a>static 4a href="+code=irqreturn_t" class="sref">irqreturn_t4/a> 4a href="+code=db1200_pcmcia_cdirq" class="sref">db1200_pcmcia_cdirq4/a>(int14a href="+code=irq" class="sref">irq4/a>, void *4a href="+code=data" class="sref">data4/a>)=11344/a>{=11354/a>        struct14a href="+code=db1x_pcmcia_sock" class="sref">db1x_pcmcia_sock4/a> *4a href="+code=sock" class="sref">sock4/a> = 4a href="+code=data" class="sref">data4/a>;=11364/a>=11374/a>        4spa> class="comment">/* Db/Pb1200 have separate per-socket insert/optand eject/op4/spa>
 11384/a>4spa> class="comment">         * interrupts which stay asserted as long as the card is4/spa>
 11394/a>4spa> class="comment">         * inserted/missing.  The one which caused us to be called4/spa>
 114"v3a>4spa> class="comment">         * needs to be disabled and the other one enabled.4/spa>
 11414/a>4spa> class="comment">         */4/spa>
 11424/a>        if (4a href="+code=irq" class="sref">irq4/a> == 4a href="+code=sock" class="sref">sock4/a>->4a href="+code=insert_irq" class="sref">insert_irq4/a>) {=11434/a>                4a href="+code=disable_irq_nosync" class="sref">disable_irq_nosync4/a>(4a href="+code=sock" class="sref">sock4/a>->4a href="+code=insert_irq" class="sref">insert_irq4/a>);=11444/a>                4a href="+code=enable_irq" class="sref">enable_irq4/a>(4a href="+code=sock" class="sref">sock4/a>->4a href="+code=eject_irq" class="sref">eject_irq4/a>);=11454/a>        } else {=11464/a>                4a href="+code=disable_irq_nosync" class="sref">disable_irq_nosync4/a>(4a href="+code=sock" class="sref">sock4/a>->4a href="+code=eject_irq" class="sref">eject_irq4/a>);=11474/a>                4a href="+code=enable_irq" class="sref">enable_irq4/a>(4a href="+code=sock" class="sref">sock4/a>->4a href="+code=insert_irq" class="sref">insert_irq4/a>);=11484/a>        }=11494/a>=11504/a>        4a href="+code=pcmcia_parse_events" class="sref">pcmcia_parse_events4/a>(&4a href="+code=sock" class="sref">sock4/a>->4a href="+code=socket" class="sref">socket4/a>, 4a href="+code=SS_DETECT" class="sref">SS_DETECT4/a>);=11514/a>=11524/a>        return 4a href="+code=IRQ_HANDLED" class="sref">IRQ_HANDLED4/a>;=11534/a>}=11544/a>=11554/a>static int14a href="+code=db1x_pcmcia_setup_irqs" class="sref">db1x_pcmcia_setup_irqs4/a>(struct14a href="+code=db1x_pcmcia_sock" class="sref">db1x_pcmcia_sock4/a> *4a href="+code=sock" class="sref">sock4/a>)=11564/a>{=11574/a>        int 4a href="+code=ret" class="sref">ret4/a>;=11584/a>=11594/a>        if (4a href="+code=sock" class="sref">sock4/a>->4a href="+code=stschg_irq" class="sref">stschg_irq4/a> != -1) {=11604/a>                4a href="+code=ret" class="sref">ret4/a> = 4a href="+code=request_irq" class="sref">request_irq4/a>(4a href="+code=sock" class="sref">sock4/a>->4a href="+code=stschg_irq" class="sref">stschg_irq4/a>, 4a href="+code=db1000_pcmcia_stschgirq" class="sref">db1000_pcmcia_stschgirq4/a>,=11614/a>                                  0, 4spa> class="string">"pcmcia_stschg"4/spa>
, 4a href="+code=sock" class="sref">sock4/a>);=11624/a>                if (4a href="+code=ret" class="sref">ret4/a>)=11634/a>                        return 4a href="+code=ret" class="sref">ret4/a>;=11644/a>        }=11654/a>=11664/a>        4spa> class="comment">/* Db/Pb1200 have separate per-socket insert/optand eject/op4/spa>
 11674/a>4spa> class="comment">         * interrupts, which should show edge behaviour but don't.4/spa>
 11684/a>4spa> class="comment">         * So interrupts are disabled until both insert/optand4/spa>
 11694/a>4spa> class="comment">         * eject/op handler have been registered and the currently4/spa>
 117"v3a>4spa> class="comment">         * ac	 ve one disabled.4/spa>
 11714/a>4spa> class="comment">         */4/spa>
 11724/a>        if ((4a href="+code=sock" class="sref">sock4/a>->4a href="+code=board_typ
" class="sref">board_typ
4/a> == 4a href="+code=BOARD_TYPE_DB1200" class="sref">BOARD_TYPE_DB12004/a>) || 11734/a>            (4a href="+code=sock" class="sref">sock4/a>->4a href="+code=board_typ
" class="sref">board_typ
4/a> == 4a href="+code=BOARD_TYPE_DB1300" class="sref">BOARD_TYPE_DB13004/a>)) {=11744/a>                4a href="+code=ret" class="sref">ret4/a> = 4a href="+code=request_irq" class="sref">request_irq4/a>(4a href="+code=sock" class="sref">sock4/a>->4a href="+code=insert_irq" class="sref">insert_irq4/a>, 4a href="+code=db1200_pcmcia_cdirq" class="sref">db1200_pcmcia_cdirq4/a>,=11754/a>                                  0, 4spa> class="string">"pcmcia_insert"4/spa>
, 4a href="+code=sock" class="sref">sock4/a>);=11764/a>                if (4a href="+code=ret" class="sref">ret4/a>)=11774/a>                        goto14a href="+code=out1" class="sref">out14/a>;=11784/a>=11794/a>                4a href="+code=ret" class="sref">ret4/a> = 4a href="+code=request_irq" class="sref">request_irq4/a>(4a href="+code=sock" class="sref">sock4/a>->4a href="+code=eject_irq" class="sref">eject_irq4/a>, 4a href="+code=db1200_pcmcia_cdirq" class="sref">db1200_pcmcia_cdirq4/a>,=11804/a>                                  0, 4spa> class="string">"pcmcia_eject"4/spa>
, 4a href="+code=sock" class="sref">sock4/a>);=11814/a>                if (4a href="+code=ret" class="sref">ret4/a>) {=11824/a>                        4a href="+code=free_irq" class="sref">free_irq4/a>(4a href="+code=sock" class="sref">sock4/a>->4a href="+code=insert_irq" class="sref">insert_irq4/a>, 4a href="+code=sock" class="sref">sock4/a>);=11834/a>                        goto14a href="+code=out1" class="sref">out14/a>;=11844/a>                }=11854/a>=11864/a>                4spa> class="comment">/* enable the currently silent one */4/spa>
 11874/a>                if (4a href="+code=db1x_card_inserted" class="sref">db1x_card_inserted4/a>(4a href="+code=sock" class="sref">sock4/a>))=11884/a>                        4a href="+code=enable_irq" class="sref">enable_irq4/a>(4a href="+code=sock" class="sref">sock4/a>->4a href="+code=eject_irq" class="sref">eject_irq4/a>);=11894/a>                else=11904/a>                        4a href="+code=enable_irq" class="sref">enable_irq4/a>(4a href="+code=sock" class="sref">sock4/a>->4a href="+code=insert_irq" class="sref">insert_irq4/a>);=11914/a>        } else {=11924/a>                4spa> class="comment">/* all other (older) Db1x00 boards use a GPIO to show4/spa>
 11934/a>4spa> class="comment">                 * card detect/op status:  use both-edge triggers.4/spa>
 11944/a>4spa> class="comment">                 */4/spa>
 11954/a>                4a href="+code=irq_set_irq_typ
" class="sref">irq_set_irq_typ
4/a>(4a href="+code=sock" class="sref">sock4/a>->4a href="+code=insert_irq" class="sref">insert_irq4/a>, 4a href="+code=IRQ_TYPE_EDGE_BOTH" class="sref">IRQ_TYPE_EDGE_BOTH4/a>);=11964/a>                4a href="+code=ret" class="sref">ret4/a> = 4a href="+code=request_irq" class="sref">request_irq4/a>(4a href="+code=sock" class="sref">sock4/a>->4a href="+code=insert_irq" class="sref">insert_irq4/a>, 4a href="+code=db1000_pcmcia_cdirq" class="sref">db1000_pcmcia_cdirq4/a>,=11974/a>                                  0, 4spa> class="string">"pcmcia_carddetect"4/spa>
, 4a href="+code=sock" class="sref">sock4/a>);=11984/a>=11994/a>                if (4a href="+code=ret" class="sref">ret4/a>)=12004/a>                        goto14a href="+code=out1" class="sref">out14/a>;=12014/a>        }=12024/a>=12034/a>        return 0;       4spa> class="comment">/* all done */4/spa>
 12044/a>=12054/a>4a href="+code=out1" class="sref">out14/a>:=12064/a>        if (4a href="+code=sock" class="sref">sock4/a>->4a href="+code=stschg_irq" class="sref">stschg_irq4/a> != -1)=12074/a>                4a href="+code=free_irq" class="sref">free_irq4/a>(4a href="+code=sock" class="sref">sock4/a>->4a href="+code=stschg_irq" class="sref">stschg_irq4/a>, 4a href="+code=sock" class="sref">sock4/a>);=12084/a>=12094/a>        return 4a href="+code=ret" class="sref">ret4/a>;=12104/a>}=12114/a>=12124/a>static void 4a href="+code=db1x_pcmcia_free_irqs" class="sref">db1x_pcmcia_free_irqs4/a>(struct14a href="+code=db1x_pcmcia_sock" class="sref">db1x_pcmcia_sock4/a> *4a href="+code=sock" class="sref">sock4/a>)=12134/a>{=12144/a>        if (4a href="+code=sock" class="sref">sock4/a>->4a href="+code=stschg_irq" class="sref">stschg_irq4/a> != -1)=12154/a>                4a href="+code=free_irq" class="sref">free_irq4/a>(4a href="+code=sock" class="sref">sock4/a>->4a href="+code=stschg_irq" class="sref">stschg_irq4/a>, 4a href="+code=sock" class="sref">sock4/a>);=12164/a>=12174/a>        4a href="+code=free_irq" class="sref">free_irq4/a>(4a href="+code=sock" class="sref">sock4/a>->4a href="+code=insert_irq" class="sref">insert_irq4/a>, 4a href="+code=sock" class="sref">sock4/a>);=12184/a>        if (4a href="+code=sock" class="sref">sock4/a>->4a href="+code=eject_irq" class="sref">eject_irq4/a> != -1)=12194/a>                4a href="+code=free_irq" class="sref">free_irq4/a>(4a href="+code=sock" class="sref">sock4/a>->4a href="+code=eject_irq" class="sref">eject_irq4/a>, 4a href="+code=sock" class="sref">sock4/a>);=12204/a>}=12214/a>=12224/a>4spa> class="comment">/*4/spa>
 12234/a>4spa> class="comment"> * configure a PCMCIA socket on the Db1x00 series of boards (and4/spa>
 12244/a>4spa> class="comment"> * compatibles).4/spa>
 12254/a>4spa> class="comment"> *4/spa>
 12264/a>4spa> class="comment"> * 2 external registers are involved:4/spa>
 12274/a>4spa> class="comment"> *   pcmcia_status (offset 0x04): bits [0:1/2:3]: read card voltage id4/spa>
 12284/a>4spa> class="comment"> *   pcmcia_control(offset 0x10):4/spa>
 12294/a>4spa> class="comment"> *      bits[0:1] set vcc for card4/spa>
 123"v3a>4spa> class="comment"> *      bits[2:3] set vpp for card4/spa>
 12314/a>4spa> class="comment"> *      bit 4:  enable data buffers4/spa>
 12324/a>4spa> class="comment"> *      bit 7:  reset# for card4/spa>
 12334/a>4spa> class="comment"> *      add 8 for second socket.4/spa>
 12344/a>4spa> class="comment"> */4/spa>
 12354/a>static int14a href="+code=db1x_pcmcia_configure" class="sref">db1x_pcmcia_configure4/a>(struct14a href="+code=pcmcia_socket" class="sref">pcmcia_socket4/a> *4a href="+code=skt" class="sref">skt4/a>,=12364/a>                                 struct14a href="+code=socket_state_t" class="sref">socket_state_t4/a> *4a href="+code=state" class="sref">state4/a>)=12374/a>{=12384/a>        struct14a href="+code=db1x_pcmcia_sock" class="sref">db1x_pcmcia_sock4/a> *4a href="+code=sock" class="sref">sock4/a> = 4a href="+code=to_db1x_socket" class="sref">to_db1x_socket4/a>(4a href="+code=skt" class="sref">skt4/a>);=12394/a>        unsigned short14a href="+code=cr_clr" class="sref">cr_clr4/a>, 4a href="+code=cr_set" class="sref">cr_set4/a>;=12404/a>        unsigned int14a href="+code=changed" class="sref">changed4/a>;=12414/a>        int14a href="+code=v" class="sref">v4/a>, 4a href="+code=p" class="sref">p4/a>, 4a href="+code=ret" class="sref">ret4/a>;=12424/a>=12434/a>        4spa> class="comment">/* card voltage setup */4/spa>
 12444/a>        4a href="+code=cr_clr" class="sref">cr_clr4/a> = (0xf << (4a href="+code=sock" class="sref">sock4/a>->4a href="+code=nr" class="sref">nr4/a> * 8)); 4spa> class="comment">/* clear voltage settings */4/spa>
 12454/a>        4a href="+code=cr_set" class="sref">cr_set4/a> = 0;=12464/a>        4a href="+code=v" class="sref">v4/a> = 4a href="+code=p" class="sref">p4/a> = 4a href="+code=ret" class="sref">ret4/a> = 0;=12474/a>=12484/a>        switch (4a href="+code=state" class="sref">state4/a>->4a href="+code=Vcc" class="sref">Vcc4/a>) {=12494/a>        case150:=12504/a>                ++4a href="+code=v" class="sref">v4/a>;=12514/a>        case133:=12524/a>                ++4a href="+code=v" class="sref">v4/a>;=12534/a>        case10:=12544/a>                break;=12554/a>        default:=12564/a>                4a href="+code=printk" class="sref">printk4/a>(4a href="+code=KERN_INFO" class="sref">KERN_INFO4/a> 4spa> class="string">"pcmcia%d unsupported Vcc %d\n"4/spa>
,=12574/a>                        4a href="+code=sock" class="sref">sock4/a>->4a href="+code=nr" class="sref">nr4/a>, 4a href="+code=state" class="sref">state4/a>->4a href="+code=Vcc" class="sref">Vcc4/a>);=12584/a>        }=12594/a>=12604/a>        switch (4a href="+code=state" class="sref">state4/a>->4a href="+code=Vpp" class="sref">Vpp4/a>) {=12614/a>        case112:=12624/a>                ++4a href="+code=p" class="sref">p4/a>;=12634/a>        case133:=12644/a>        case150:=12654/a>                ++4a href="+code=p" class="sref">p4/a>;=12664/a>        case10:=12674/a>                break;=12684/a>        default:=12694/a>                4a href="+code=printk" class="sref">printk4/a>(4a href="+code=KERN_INFO" class="sref">KERN_INFO4/a> 4spa> class="string">"pcmcia%d unsupported Vpp %d\n"4/spa>
,=12704/a>                        4a href="+code=sock" class="sref">sock4/a>->4a href="+code=nr" class="sref">nr4/a>, 4a href="+code=state" class="sref">state4/a>->4a href="+code=Vpp" class="sref">Vpp4/a>);=12714/a>        }=12724/a>=12734/a>        4spa> class="comment">/* sanity check: Vpp must be 0,112, or Vcc */4/spa>
 12744/a>        if (((4a href="+code=state" class="sref">state4/a>->4a href="+code=Vcc" class="sref">Vcc4/a> == 33) && (4a href="+code=state" class="sref">state4/a>->4a href="+code=Vpp" class="sref">Vpp4/a> == 50)) || 12754/a>            ((4a href="+code=state" class="sref">state4/a>->4a href="+code=Vcc" class="sref">Vcc4/a> == 50) && (4a href="+code=state" class="sref">state4/a>->4a href="+code=Vpp" class="sref">Vpp4/a> == 33))) {=12764/a>                4a href="+code=printk" class="sref">printk4/a>(4a href="+code=KERN_INFO" class="sref">KERN_INFO4/a> 4spa> class="string">"pcmcia%d bad Vcc/Vpp combo (%d %d)\n"4/spa>
,=12774/a>                        4a href="+code=sock" class="sref">sock4/a>->4a href="+code=nr" class="sref">nr4/a>, 4a href="+code=state" class="sref">state4/a>->4a href="+code=Vcc" class="sref">Vcc4/a>, 4a href="+code=state" class="sref">state4/a>->4a href="+code=Vpp" class="sref">Vpp4/a>);=12784/a>                4a href="+code=v" class="sref">v4/a> = 4a href="+code=p" class="sref">p4/a> = 0;=12794/a>                4a href="+code=ret" class="sref">ret4/a> = -4a href="+code=EINVAL" class="sref">EINVAL4/a>;=12804/a>        }=12814/a>=12824/a>        4spa> class="comment">/* create new voltage code */4/spa>
 12834/a>        if (4a href="+code=sock" class="sref">sock4/a>->4a href="+code=board_typ
" class="sref">board_typ
4/a> != 4a href="+code=BOARD_TYPE_DB1300" class="sref">BOARD_TYPE_DB13004/a>) 12844/a>                4a href="+code=cr_set" class="sref">cr_set4/a> |= ((4a href="+code=v" class="sref">v4/a> << 2) | 4a href="+code=p" class="sref">p4/a>) << (4a href="+code=sock" class="sref">sock4/a>->4a href="+code=nr" class="sref">nr4/a> * 8);=12854/a>=12864/a>        4a href="+code=changed" class="sref">changed4/a> = 4a href="+code=state" class="sref">state4/a>->4a href="+code=flags" class="sref">flags4/a> ^ 4a href="+code=sock" class="sref">sock4/a>->4a href="+code=old_flags" class="sref">old_flags4/a>;=128ss.c#L275" id  L275" class="line" nam
  L275"sref">insert_irivers/pcmcia/db1xxx_ss.c#L279" id  L27932/pcmcia/db1xxx_>state4/a>->4a href="+code=Vpp" clas1d  L27932/pcmcia/db1xxx_>state4/a>->/pcs0225pp" clas1d  L27SS_RESEvers/pcmcia/db1xxx_RESEvL261" id  L261" class="line" nam
  L261">12614/a>      2         else=flags4/a> ^ 4a href="+code=sock" class="sref">sock4/a>cs0225pp" clas1d  L27SS_RESEvers/pcmcia/db1xxx_RESEvL261" id  L261" class="line" nam
  L261">12614/a>      2                 4a href2"+cod2=enable_irq" class="sref">enable_irq4/a>(4a hmcia_sock"flags" class="srcia_sock">);=, 0 id  L285" class="line" nam
  L285">12854/a>      2 } else {=enabla href="drivers/pcmcia/dbf="drcia/db,1xxx_ss. ioxx_ss.c#.c#L283" id  L283" class="line" nam
  L283">12834/a>      2         4spa> class="co2ment"2/* all other (older) Dcr_set4/a> |= ((4a href="+ (4a href="+code=sock" class=t;&l1>sock4/a>-&7 +->4a href="+code=nr" class="sref">nr4/a> * 8)); 4spa> class="comment">/* clear voltage set id  L285" class="line" nam
  L285">12854/a>       lass="comment">         2     29code=out1" class="sref">out14a> |= ((4a href="+ (4a href="+code=sock" class=t;&l1>sock4/a>-&4 +->4a href="+code=nr" class="sref">nr4/a> * 8)); 4spa> class="comment">/* clear voltage set id  L285" class="line" nam
  L285">12854/a>       lass="comment">         2     29ia/db1xxx_ss.c#L185" iL192" id  L192" class="line" nam
  L192">11922/a>      2         4a href="+code=2rq_se2_irq_typ
" class="srefef">enabla href="drivers/pcmcia/dde-bf="drcia/db,1pcmcia/ioxx_ss.c#.c#L283" id  L283" class="line" nam
  L283">12834/a>                4a href="+code=2et" c2ass="sref">ret4/a> = 4f">out14a> |= ((4a href="+code=v" class="sref">v4/a> <&1>sock4/a>-&7 +->4a href="+code=nr" class="sref">nr4/a> * 8)); 4spa> class="comment">/* clear voltage setid  L285" class="line" nam
  L285">12854/c#L275" i                        2  0, 2spa> class="string">"pcmca> |= ((4a href="+code=v" class="sref">v4/a> <&1>sock4/a>-&4 +->4a href="+code=nr" class="sref">nr4/a> * 8)); 4spa> class="comment">/* clear voltage setid  L285" class="line" nam
  L285">12854/" id  L27f="drivers/pcmcia/db1xxx2ss.c#29="sref">v4/a> = 4a hrid  L281" class="line" nam
  L281">12814/a>      2         if (4a href="+c2de=re2" class="sref"id  L281" class="line" nam
  L281">12813/a>      3                 goto14a3href=#L284" d  L281" class="line" nam
  L281">12813/1>      3 } else {=12833/a>=cr_set4/a>;=12853/a>      3 return 0;       4spa> c3ass="3024" id  L124" class="line" nam
  L124">11243/a>=cr_clr4/a> = (0xf <&de=old_flags" class="sref">old_flags4/a>;=->4a href="+code=flags" class="sref">flags4/a> ^ 4a href="+code=sock" class="sref">sock4/aid  L285" class="line" nam
  L285">12853/5>=out3086" id  L286" class="line" nam
  L286">12863/a>      3 if (4a href="+code=sock3 clas30200 have separate per-socket insert/opia/db wa/dbaken away: gss=rs/pcmtimexx_sinitialize properlyhc#L283" id  L283" class="line" nam
  L283">12833/7>      3                        3ree_i3q" class="sref/a>->4a href="+co932/pcmcia/db1xxx_>state4/a>->/pcs0225pp" clas1d  L27SS_RESEvers/pcmcia/db1xxx_RESEvL261" f">state4/a!>4a href="+codode=flags" class="sref">flags4/a> ^ 4a href="+code=sock" class="sref">sock4/a>cs0225pp" clas1d  L27SS_RESEvers/pcmcia/db1xxx_RESEvL261"" id  L261" class="line" nam
  L261">12613/a>=v4/a> = 4a href="+code=p" clmsleeode=sock" class=msleeo>);=<500 id  L285" class="line" nam
  L285">12853/a>      3 return 4a href="+code=r3t" cl30ss="sref">ret4/a> = -4a href="+code=mcia_sock"flags" class="srcia_sock">);=, 1 id  L285" class="line" nam
  L285">12853/a>}=12813/a>=12123/a>static3void 4a href="+code=db1x3pcmci31ED" class="sref">IRQ_HANDLED4/a>;=12423/a>{=11543/a>      3 if (4a href="+code=sock3 clas3105" id  L205" class="line" nam
  L205">12053/a>      3         4a href="+code=3ree_i31="drivers/pcmcia/db1xxx_ss./opVCC 12833/a>=;=);=/* clearc"srcoL261"             \d  L283" class="line" nam
  L283">12833/7>      3 4a href="+code=free_irq3 clas3="sref">free_i(/a>->4a href="+cr_set" class="srefte4/" f/a>f/a><f/a>f/a>&->4a href="+code=bcomment">/* clearc"srcoL261" e set>cs02253id  L284" class="line" nam
  L284">12843/a>      3 if (4a href="+code=sock3 clas3109" id  L209" class="line" nam
  L209">12093/a>      3         4a href="+code=3ree_i31 set vcc for card4/spa>
 12833/a>}=;=);=/* clearcfte4/a>->4a href="+c"srcomment">/* clearc"srcoL261"              \d  L283" class="line" nam
  L283">12833/a>=free_i(/aa href="drivers/omment">/* clearcfte4/t;f/a>f/a>&-2 e >4a href="+code=bcomment">/* clearc"srcoL261"et>cs02253id  L284" class="line" nam
  L284">12843/a>4spa> 3lass="comment">/*4/spa>
312733/a>4spa> 3lass="comment"> * config3re a 3CMCIA socket on the Db1x00 s/opia/db 12833/a>      3lass="comment"> * compat3bles)34/spa>#defcmcQ_HANDLED4/a>;=);=/* clearc"srcoL261"           \d  L283" class="line" nam
  L283">12833/a>      3lass="comment"> *4/spa>
3free_i(/->4a href="+cr_set" class="srefte4/" fte4/a>1>sock4/a>-&7 +-&8 e >4a href="+code=bcomment">/* clearc"srcoL261"et id  L188" class="line" nam
  L188">11883/a>4spa> 3lass="comment"> * 2 exte3nal r3217" id  L217" class="line" nam
  L217">12173/a>4spa> 3lass="comment"> *   pcmc3a_sta3us (ofure" class="sref">db1x_pcmcia_configurg"sref">uruct14a href="+code=db1x_pcmg"sref">ur>);=pcmcia_socket4/a> *4a href="+code=skt" class="sref">skt4/a>,=12363/a>4spa> 3lass="comment"> *   pcmc3a_con32enable_irq" class="sref">enabbbbbbbbbbbsref">changeda href="drivers/valu=flags" class="svalu=84" id  L284" class="line" nam
  L284">12843/a>4spa> 3lass="comment"> *      b3ts[0:3] set id  L261" class="line" nam
  L261">126133a>4spa> 3lass="comment"> *      b3ts[2:33lass="sref">st="sref">db1x_pcmcia_sock4/a> *4a href="+code=sock" class="sref">sock4/a> = 4a href="+code=to_db1x_socket" class="sref">to_db1x_socket4/a>(4a href="+code=skt" class="sref">skt4/a>);=126133a>= *      b3t 4: 331sref">free_i"sref">cr_clr4/a>, 4a href="+cod_set" class="srefte4/a>->4a href="+comment">/* clearcfte4/id  L239" class="line" nam
  L239">126133a>4spa> 3lass="comment"> *      b3t 7: 332sref">free_i"sref">crass="sref">db1x_pcmef">uruct14a href="+cef">ur>);=id  L239" class="line" nam
  L239">126133a>4spa> 3lass="comment"> *      a3d 8 f3324" id  L124" class="line" nam
  L124">11243/a>4spa> 3lass="comment"> */4/spa>3 cr_clr4/a> = (0xf <&df">uruct14a href="+cef">ur>);=f">to_db1x_socket4ref">ed4/a>(4a href="+code=sock" class="sref">sock4/a>))=);=12793/a>static3int14a href="+code=db1x_3cmcia3386" id  L286" class="line" nam
  L286">12863/a>      3                        3 stru33sref">changed4/a> = 4a href="d_set" class="srefte4/f">to_db1x_socket4acsr_/pcmcia/db1xxx_>staacsr_/pcm>);=126133a>4spa> 3ef="drivers/pcmcia/db1xx3_ss.c33"sref">free_irq4/a>(4a href=comment">/* clearcfte4/f">to_db1x_socket4acsr_/pcmcia/db1xxx_>staacsr_/pcm>);=126133a>4spa> 3 struct14a href="+code=d31x_pc3309" id  L209" class="line" nam
  L209">12093/a>      3 unsigned short14a href=3+code3cr_clr" class=socket on the Db1x00 s/opPB1100/PB1500:cia/db1xxkey 12833/a>      3 unsigned int14a href="+3ode=c3anged" class="a>->4a href="+code=board_typ
" class="sref">board_typ
4/a> != 4a href="+code=BOARD_TYPE_DB1300" class="sref">BOARD_TYPE_DB13004/a>))PB1100cia/db1xxx_ss.cB13004/a>))PB110084" id  L284" class="line" nam
  L284">12843/a>      3 int14a href="+code=v" c3ass="34a/db1xxx_ss.class="srrq4/a>(4a href=comment">/* clearcfte4/ff/a>f/a>= 4id  L239" class="line" nam
  L239">12613/a>=12433/a>      3 4spa> class="comment">/3 card3voltage setup */4/spa>
 12833/a>4spa> 3 4a href="+code=cr_clr" 3lass=3sref">cr_clr4/tate4/a>->4a href="+GET_VScia/db1xxx_ss.cGET_VS>);=/* clearcfte4/a>->4a href="+c"srr" class="sref">nr4/a> * 8)); 4spa> class="comment">/* clear volta"" id  L261" class="line" nam
  L261">12613/a>      3 4a href="+code=cr_set" 3lass=3sref">cr_set4/L267" id  L267" class="line" nam
  L267">12673/a>      3 4a href="+code=v" class3"sref34/db1xxx_ss.c#L267" id  L262" class="line" nam
  L262">12623/a>=free_irq4/a>(4a href=df">uruct14a href="+cef">ur>);=f|ref">BOARD_TYPE_Dxx_3VC300ers/pcmcia/db1xxx_3VC300>);=itup */4/spa>
 12833/a>4spa> 3 switch (4a href="+code=3tate"3class="sref">s#L264"id  L262" class="line" nam
  L262">12623/a>      3 case150:=ret4/a> = -268" iref">ret4/a> = -p */4/spa>
 12833/a>      3         ++4a href="+cod3=v" c3ass="sref">v4/#L269" id  L269" class="line" nam
  L269">12693/a>      3 case133:=(4a href=cf">uruct14a href="+cef">ur>);=f|ref">BOARD_TYPE_Dxx_XVC300ers/pcmcia/db1xxx_XVC300>);=itup */4/spa>
 12833/a>      3         ++4a href="+cod3=v" c3ass="sref">v4/id  L154" class="line" nam
  L154">11543/a>      3 case10:=11243/a>      3         break;=
 12833/a>      3 default:=cr_set4/a> = 0;=uruct14a href="+cef">ur>);=f|ref">BOARD_TYPE_DGET_VCCcia/db1xxx_ss.cGET_VCC>);=nr4/a> * 8)); 4spa> class="comment">/* clear volta" ?ETECT4/a>);=12793/a>      3         4a href="+code=3rintk3517" id  L217" class="line" nam
  L217">12173/a>      3                 4a href3"+cod3=sock" class="*/4/spa>
 12833/a>4spa> 3 }=board_typ
4/a> != 4a href="+code=BOARD_TYPE_DB1300" class="sref">BOARD_TYPE_DB13004/a>))state4/a>->4a href="+codeuruct14a href="+cef">ur>);=fcs0225pp" clas1d  L27SS_="drivers/pcmcia/db1xxx_ss.c#L151" id  L188" class="line" nam
  L188">11883/a>=ret4/a> = -4a href="+code=mf">uruct14a href="+cef">ur>);=f">to_db1x_socket4refPOWERONers/pcmcia/db1xxx_POWERON151" < (4a href="+cxx_3VC300ers/pcmcia/db1xxx_3VC300>);= < (4a href="+cxx_="drivers/pcmcia/db1xxx_ss.c#L151"id  L279" class="line" nam
  L279">12793/a>      3 switch (4a href="+code=3tate"36284" d  L281" class="line" nam
  L281">12813/a>      3 case112:=12833/a>      3         ++4a href="+cod3=p" c36 new voltage c_typ
4/a> != 4cf">uruct14a href="+cef">ur>);=f|re>->4a href="+GET_RESEvers/pcmcia/db1xGET_RESEv>);=nr4/a> * 8)); 4spa> class="comment">/* clear volta"" ?ETECT4/a>);=);=12793/a>      3 case133:=11243/a>      3 case150:=->4a href="+codeuruct14a href="+cef">ur>);=id  L239" class="line" nam
  L239">12613/a>      3         ++4a href="+cod3=p" c3686" id  L286" class="line" nam
  L286">12863/a>      3 case10:=12863/a>      3         break;=11543/a>      3 default:=12093/a>      3         4a href="+code=3rintk3 classure" class="sref">db1x_pcmcia_configur>nr4_init="+code=sock" class="sref">sock_init>);=pcmcia_socket4/a> *4a href="+code=skt" class="sref">skt4/a>,=11883/a>      3                 4a href3"+cod3=sock"id  L261" class="line" nam
  L261">12613/a>      3 }=12863/a>=11543/a>      3 4spa> class="comment">/3 sani3724" id  L124" class="line" nam
  L124">11243/a>      3 if (((4a href="+code=st3te" c3ass="sure" class="sref">db1x_pcmcia_configur>nr4_suspenef="+code=sock" classonfigur>nr4_suspene>);=pcmcia_socket4/a> *4a href="+code=skt" class="sref">skt4/a>,=11883/a>      3     ((4a href="+code=st3te" c3ass="sid  L261" class="line" nam
  L261">12613/a>      3         4a href="+code=3rintk37/db1xxx_ss.c# done */4d  L286" class="line" nam
  L286">12863/a>      3                 4a href3"+cod37/pcmcid  L154" class="line" nam
  L154">11543/a>      3         4a href="+code=3" cla3709" id  L209" class="line" nam
  L209">12093/a>      3         4a href="+code=3et" c37classure" class="sref">db1x_pcmaurivesonfigur>srefo_maode=sock" class=aurivesonfigur>srefo_mao>);=pcmcia_socket4/a> *4a href="+code=skt" class="sref">skt4/a>,=12363/a>      3 }=enabbbbbbbbbbbbbsref">pcmcia_socket4/a> ="srefo_maode=sock" class=> ="srefo_maoa>,=,=id  L188" class="line" nam
  L188">11883/a>=12613/a>      3 4spa> class="comment">/3 crea3e new voltage t="sref">db1x_pcmcia_sock4/a> *4a href="+code=sock" class="sref">sock4/a> = 4a href="+code=to_db1x_socket" class="sref">to_db1x_socket4/a>(4a href="+code=skt" class="sref">skt4/a>);=12613/a>      3 if (4a href="+code=sock3 clas3824" id  L124" class="line" nam
  L124">11243/a>      3         4a href="+code=3r_set38ref">cr_clr4/a> = (0xf <&maode=sock" class=maoa>,=>stschg_irq4/a>, 4a hrarcmcia/db1xxx_ss.crarc"sref">nr4/a> * 8)); 4spa> class="vi">sooflags" class="svi">soo>);=id  L239" class="line" nam
  L239">12613/a>=cr_set4/a> = 0;=,=>stschg_irq4/a>, 4a hroode=sock" class=hroo"sref">to_db1x_socket4maode=sock" class=maoa>,=>stschg_irq4/a>, 4a hrarcmcia/db1xxx_ss.crarc"sref+>to_db1x_socket4IO_MAP_SIZEmcia/db1xxx_ss.IO_MAP_SIZE>);=id  L239" class="line" nam
  L239">12613/a>      3 4a href="+code=changed"3class3817" id  L217" class="line" nam
  L217">12173.c#L275" 3d  L275" class="line" na3
  L2387db1xxx_ss.c# done */4d  L286" class="line" nam
  L286">128639" id  L23932/pcmcia/db1xxx_>state3/a>-&3t;4a hid  L154" class="line" nam
  L154">11543/a>      3         else=12603/a>      3                 4a href3"+cod3=enablure" class="sref">db1x_pcmaurivesonfigur>sremem_maode=sock" class=aurivesonfigur>sremem_mao>);=pcmcia_socket4/a> *4a href="+code=skt" class="sref">skt4/a>,=12363/a>      3 } else {=enabbbbbbbbbbbbbbsref">pcmcia_socket4/a> ="sremem_maode=sock" class=> ="sremem_maoa>,=,=id  L188" class="line" nam
  L188">11883/a>      3         4spa> class="co3ment"3/* allid  L261" class="line" nam
  L261">12613/a>      3lass="comment">         3     39code=out1" clt="sref">db1x_pcmcia_sock4/a> *4a href="+code=sock" class="sref">sock4/a> = 4a href="+code=to_db1x_socket" class="sref">to_db1x_socket4/a>(4a href="+code=skt" class="sref">skt4/a>);=12613/a>      3lass="comment">         3     3905" id  L205" class="line" nam
  L205">12053/a>      3         4a href="+code=3rq_se3_irq_typ
" claa>->4a href="+comaode=sock" class=maoa>,=>stschg_irq4/a>, 4a de=sock" class="sref">sock4/a>cs0225pp" clas1d  L27MAP_ATTRIBck" class="srefMAP_ATTRIBa>,=id  L188" class="line" nam
  L188">11883/a>      3         4a href="+code=3et" c3ass="sref">ret4/a> = 4to_db1x_socket4maode=sock" class=maoa>,=>stschg_irq4/a>, 4a hra" c_hrarcmcia/db1xxx_ss.cra" c_hrarc84" /a>->4a href="+c"srr" class="sref">nr4/a> * 8)); 4spa> class="phys_attomment">/* clearphys_atto"sref+>to_db1x_socket4maode=sock" class=maoa>,=>stschg_irq4/a>, 4a ="srehrarcmcia/db1xxx_ss.="srehrarc>);=id  L239" class="line" nam
  L239">12613/c#L275" 3                        3  0, 3spa> class="st192"d  L239" class="line" nam
  L239">12613/" id  L23f="drivers/pcmcia/db1xxx3ss.c#39="sref">v4/a> = 4a hrto_db1x_socket4maode=sock" class=maoa>,=>stschg_irq4/a>, 4a hra" c_hrarcmcia/db1xxx_ss.cra" c_hrarc84" /a>->4a href="+c"srr" class="sref">nr4/a> * 8)); 4spa> class="phys_memmment">/* clearphys_mem"sref+>to_db1x_socket4maode=sock" class=maoa>,=>stschg_irq4/a>, 4a ="srehrarcmcia/db1xxx_ss.="srehrarc>);=id  L239" class="line" nam
  L239">12613/a>      3         if (4a href="+c3de=re3960" id  L260" class="line" nam
  L260">12604/a>      4                 goto14a4href=40enable_irq" c done */4d  L286" class="line" nam
  L286">12864/1>      4 } else {=11544/a>=12434/a>      4 return 0;       4spa> c4ass="4024" iure" clsref">pcmcia_socket4/a> ="sreopera db1x_pcmcia_sock4/a> *4a opera id  L261" class="line" nam
  L261">12614/a>=cr_clr4/.">db1x_pcmcia_sinit="+code=sock" cinit>);=">enabbbbbbbbbbbbbb">to_db1x_socket4ref">onfigur>nr4_init="+code=sock" class="sref">sock_init>);=id  L236" class="line" nam
  L236">12364/5>=out405ef">cr_clr4/.">db1x_pcmcia_ssuspenef="+code=sock" suspene>);=nabbbbbbbbbbbbbb">to_db1x_socket4ref">onfigur>nr4_suspenef="+code=sock" classonfigur>nr4_suspene>);=id  L236" class="line" nam
  L236">12364/6>=db1x_pcmcia_sg"sref">uruct14a href="+cg"sref">ur>);=bbbbbbbbbbbbb">to_db1x_socket4ref">onfigurg"sref">uruct14a href="+code=db1x_pcmg"sref">ur>);=id  L236" class="line" nam
  L236">12364/7>=db1x_pcmcia_ss"sreef="+code=skt" classs"sreef="+>);=bbbbbbbbbbbbb">to_db1x_socket4ref">onfigure4/a>(struct14a href="+code=pcmcia_socket" class=id  L236" class="line" nam
  L236">12364/8>=v4/a>.">db1x_pcmcia_ss"srfo_maode=sock" class=>srefo_mao>);=bbbbbbbbbbbbb">to_db1x_socket4aurivesonfigur>srefo_maode=sock" class=aurivesonfigur>srefo_mao>);=id  L236" class="line" nam
  L236">12364/9>=ret.">db1x_pcmcia_ss"srmem_maode=sock" class=>sremem_mao>);=bbbbbbbbbbbb">to_db1x_socket4aurivesonfigur>sremem_maode=sock" class=aurivesonfigur>sremem_mao>);=id  L236" class="line" nam
  L236">12364/a>}=12864/a>=12124/a>static4void 4a href="+code=db1x4pcmci41ED" cure" class="sref">db1x_pcm__devinit="+code=sock" c__devinitnable">db1x_pcmcia_sock4/a> *4a ass="srprobruct14a href="+code=pcmcia_sass="srprobr>);=pcmcia_socket4/a>latform_devicruct14a href="+c>latform_devicr4/a> = 4a href="+codepdevuct14a href="+c>deva>,=id  L188" class="line" nam
  L188">11884/a>{=12614/a>      4 if (4a href="+code=sock4 clas41ref">cr_clr4/t="sref">db1x_pcmcia_sock4/a> *4a href="+code=sock" class="sref">sock4/a> = 4a href="+code=to_db1x_socket" class="sre4d  L286" class="line" nam
  L286">12864/5>=cr_clr4/t="sref">db1x_pcmcia_sresourcruct14a href="+cresourcr4/a> = 4a href="+codeomment">/* clearfte4/id  L239" class="line" nam
  L239">12614/a>=db1x_pcmpcmcia/db1xxx_ss.c#L242" a>->4a href="+bimcia/db1xxx_>staai241" id  L241" class="line" nam
  L241">12414/7>      4 4a href="+code=free_irq4 clas41"sref">insert_irivers/pcmcia/db1xxx_ss.c#L24/a>      4 if (4a href="+code=sock4 clas41="sref">v4/a> 4a href="+code=to_db1x_socket" class="sref">to_db1x_socket4kzalloe" class="sref">kzalloe>);=pcmcia_socket4/aock4/a> *4a href="+code=sock" class="sref">sock4/a>)a>->4a href="+GFP_cia&E/pcmcia/db1xxx_sGFP_cia&E/239" id  L239" class="line" nam
  L239">12614/a>      4         4a href="+code=4ree_i41ss="sref">reta>-&! 4a href="+code=to_db1x_socket" class="sreid  L188" class="line" nam
  L188">11884/a>}=12414/a>=12124/a>4spa> 4lass="comment">/*4/spa>
4 != 4ce=nr" class="sref">nr4/a> * 8)); 4spa> class="comment">/* clear voltagdeva>,=* 8)); 4spa> class="imcia/db1xxx_>stai241" id  L241" class="line" nam
  L241">12414/a>4spa> 4lass="comment"> * config4re a 4224" id  L124" class="line" nam
  L124">11244/a>      4lass="comment"> * compat4bles)42ref">cr_clr4/a> = (0xf <&bimcia/db1xxx_>staai241" gstaacsr_/pcm>);=12614/a>      4lass="comment"> *4/spa>
4free_itate4/a>->4a href="+bimcia/db1xxx_>staai241" " id  L261" class="line" nam
  L261">12614/a>4spa> 4lass="comment"> * 2 exte4nal r42/db1xxx_ss.c#L267" href="drivers/BCSR_WHOAMI_PB1500cia/db1xxx_>staBCSR_WHOAMI_PB1500db1xid  L269" class="line" nam
  L269">12694/a>4spa> 4lass="comment"> *   pcmc4a_sta427db1xxx_ss.c#L267" href="drivers/BCSR_WHOAMI_PB1500Rass="commexx_ss.BCSR_WHOAMI_PB1500Radb1xid  L269" class="line" nam
  L269">12694/a>      4lass="comment"> *   pcmc4a_con42lass="sref">s#L264 href="drivers/BCSR_WHOAMI_PB1100cia/db1xxx_ss.cBCSR_WHOAMI_PB1100db1xid  L269" class="line" nam
  L269">12694/a>      4lass="comment"> *      b4ts[0:42ss="sref">ret4/a> = -4a href="+code=me=board_typ
" class="sref">board_typ
4/a> != 4a href="+code=BOARD_TYPE_DB1300" class="sef">BOARD_TYPE_DB13004/a>))PB1100cia/db1xxx_ss.cB13004/a>))PB110084" id  L239" class="line" nam
  L239">126143a>4spa> 4lass="comment"> *      b4ts[2:43enable_irq" class="sr268" id  L268" class="line" nam
  L268">126843a>= *      b4t 4: 43a/db1xxx_ss.c#L262 href="drivers/BCSR_WHOAMI_DB1000cia/db1xxx_ss.cBCSR_WHOAMI_DB1000/db1x..." href="drivers/BCSR_WHOAMI_PB1550_SDRss="commexx_ss.BCSR_WHOAMI_PB1550_SDRdb1xid  L269" class="line" nam
  L269">126943a>4spa> 4lass="comment"> *      b4t 7: 432sref">free_i4/a> = -4a href="+code=me=board_typ
" class="sref">board_typ
4/a> != 4a href="+code=BOARD_TYPE_DB1300" class="sef">BOARD_TYPE_DB13004/a>))DEFAULvers/pcmcia/db1xB13004/a>))DEFAULv84" id  L239" class="line" nam
  L239">126143a>4spa> 4lass="comment"> *      a4d 8 f43code=out1" class="sre268" id  L268" class="line" nam
  L268">126843a>      4lass="comment"> */4/spa>4 cr_clr4/#L264 href="drivers/BCSR_WHOAMI_PB1200cia/db1xxx_ss.cBCSR_WHOAMI_PB1200/db1x..." href="drivers/BCSR_WHOAMI_DB1200cia/db1xxx_ss.cBCSR_WHOAMI_DB1200/db1id  L269" class="line" nam
  L269">126943a>      4int14a href="+code=db1x_4cmcia43irq_typ
" class="sref4a href="+code=me=board_typ
" class="sref">board_typ
4/a> != 4a href="+code=BOARD_TYPE_DB1300" class="sef">BOARD_TYPE_DB13004/a>))DB1200cia/db1xxx_ss.cB13004/a>))DB120084" id  L239" class="line" nam
  L239">126143a>4spa> 4                        4 stru43ss="sref">ret4/a> = 4268" id  L268" class="line" nam
  L268">126843a>4spa> 4ef="drivers/pcmcia/db1xx4_ss.c437db1xxx_ss.c#L267" href="drivers/BCSR_WHOAMI_126943a>      4 struct14a href="+code=d41x_pc43="sref">v4/a> = 4a hrto_db1x_socket4me=board_typ
" class="sref">board_typ
4/a> != 4a href="+code=BOARD_TYPE_DB1300" class="sef">BOARD_TYPE_DB13004/a>))DB1href="drivers/pcmcia/db1xxx_ss.c#L284" id  L268" class="line" nam
  L268">126843a>      4 unsigned short14a href=4+code43ss="sref">ret4/a> = -268" id  L268" class="line" nam
  L268">12684/a>      4 unsigned int14a href="+4ode=c4anged" class="#L269" id  L269" class="line" nam
  L269">12694/a>      4 int14a href="+code=v" c4ass="44a/db1xxx_ss.class="srrq4/a>(4a href=de=KERN_INFO" class="sref">KERN_INFO4/a> 4spa> class="string">"pcmcia%d bad Vcc/Vpp combo (%d %
  L26-ss: unknown DB130mcia/db!xxx_ss.c#L277" i/a> = (0xf <&bimcia/db1xxx_>staai241"  id  L239" class="line" nam
  L239">12614/a>=free_i4/a> = -4a href="+code=EINVAL" class="sref">EINVAL4/a>;=12684/a>      4 4spa> class="comment">/4 card44code=out1" class="sregoto-4a href="+code=outef="drivers/pcmcoute84" id  L268" class="line" nam
  L268">12684/a>      4 4a href="+code=cr_clr" 4lass=4sref">cr_clr4/}4d  L286" class="line" nam
  L286">12864/a>      4 4a href="+code=cr_set" 4lass=4486" id  L286" class="line" nam
  L286">12864/a>      4 4a href="+code=v" class4"sref44200 have separate per-socket insert/oL283" id  L283" class="line" nam
  L283">12834/a>=12834/a>      4 switch (4a href="+code=4tate"4class=rate per-socket insertlass="sre* opera e a ass="s:L283" id  L283" class="line" nam
  L283">12834/a>      4 case150:=12834/a>      4         ++4a href="+cod4=v" c4ass="svcc for card4/spa>
 ur te4/a> ass=c 12834/a>      4 case133:=12834/a>=12834/a>      4 case10:=12834/a>      4         break;=12834/a>      4 default:=12864/a>      4         4a href="+code=4rintk45200 have separate per-socket insert/ops/pc:mirqdbf=ef">crto-refQs/pc itself.e*#L283" id  L283" class="line" nam
  L283">12834/a>=free_irq4/a>(4a href=omment">/* clearfte4/g 4spa> pdevuct14a href="+c>deva>,=i/a> = (0xf <&IORESOURCE_IRQuct14a href="+cIORESOURCE_IRQa>,=i/acc/Vpp combo (%d %s/pcx_ss.c#L277"  id  L239" class="line" nam
  L239">12614/a>4spa> 4 }=v4/a> 4a href="+code=to_db1x_socket" class="sre>stschg_irq4/a>, 4a ="sreirqdb1x_socket" cl="sreirqte4/g/* clearfte4/g?ETECT4/a>);=/* clearfte4/>stschg_irq4/a>, 4a hrarcmcia/db1xxx_ss.crarc"sref:" id  L279" class="line" nam
  L279">12794/a>=12604/a>      4 switch (4a href="+code=4tate"46000 have separate per-socket insert/opf">soc:mirqdwhich (&#gg="l onQs/pc i">soc12834/a>      4 case112:=(4a href=omment">/* clearfte4/g 4spa> pdevuct14a href="+c>deva>,=i/a> = (0xf <&IORESOURCE_IRQuct14a href="+cIORESOURCE_IRQa>,=i/acc/Vpp combo (%dx_ss.ci">socx_ss.c#L277"  id  L239" class="line" nam
  L239">12614/a>      4         ++4a href="+cod4=p" c46 new voltage c_typ
4/a> != 4cto_db1x_socket" class="sre>stschg_irq4/a>, 4a i">soceirqdb1x_socket" cli">soceirqte4/g/* clearfte4/g?ETECT4/a>);=/* clearfte4/>stschg_irq4/a>, 4a hrarcmcia/db1xxx_ss.crarc"sref:"-1id  L239" class="line" nam
  L239">12614/a>      4 case133:=11244/a>      4 case150:=ur te4/a> (op 12834/a>      4         ++4a href="+cod4=p" c46ref">cr_set4/a> = 0;=/* clearfte4/g 4spa> pdevuct14a href="+c>deva>,=i/a> = (0xf <&IORESOURCE_IRQuct14a href="+cIORESOURCE_IRQa>,=i/acc/Vpp combo (%dx_ss.c_sock"x_ss.c#L277"  id  L239" class="line" nam
  L239">12614/a>      4 case10:=changed4/a> = 4a href=cto_db1x_socket" class="sre>stschg_irq4/a>, 4a _sock"eirqdb1x_socket" cl_sock"eirqte4/g/* clearfte4/g?ETECT4/a>);=/* clearfte4/>stschg_irq4/a>, 4a hrarcmcia/db1xxx_ss.crarc"sref:"-1id  L239" class="line" nam
  L239">12614/a>=insert_irivers/pcmcia/db1xxx_ss.c#L24/a>      4 default:=12834/a>=cr_set4/a> = 0;=/* clearfte4/g 4spa> pdevuct14a href="+c>deva>,=i/a> = (0xf <&IORESOURCE_IRQuct14a href="+cIORESOURCE_IRQa>,=i/acc/Vpp combo (%dx_ss.cej=c x_ss.c#L277"  id  L239" class="line" nam
  L239">12614/a>      4                 4a href4"+cod470ref">changed4/a> = 4a href=cto_db1x_socket" class="sre>stschg_irq4/a>, 4a ej=c eirqdb1x_socket" clej=c eirqte4/g/* clearfte4/g?ETECT4/a>);=/* clearfte4/>stschg_irq4/a>, 4a hrarcmcia/db1xxx_ss.crarc"sref:"-1id  L239" class="line" nam
  L239">12614/a>      4 }=12124/a>=EINVAL4/a>;=12684/a>      4 4spa> class="comment">/4 sani4724" id  L124" class="line" nam
  L124">11244/a>      4 if (((4a href="+code=st4te" c47a/db1xxx_ss.crate per-socket insert/op36bit  (and4/At(&#bu e area addresse*#L283" id  L283" class="line" nam
  L283">12834/a>      4     ((4a href="+code=st4te" c47ref">cr_set4/a> = 0;=/* clearfte4/g 4spa> pdevuct14a href="+c>deva>,=i/a> = (0xf <&IORESOURCE_MEMdb1x_socket" clIORESOURCE_MEMa>,=i/acc/Vpp combo (%dx_ss.cne" na-attox_ss.c#L277"  id  L239" class="line" nam
  L239">12614/a>      4         4a href="+code=4rintk47/db1xxx_ss.c#a>-&! 4a href="+codeomment">/* clearfte4/" id  L261" class="line" nam
  L261">12614/a>      4                 4a href4"+cod47" class="sref">free_irq4/a>(4a href=de=KERN_INFO" class="sref">KERN_INFO4/a> 4spa> classERRss="commexx_ss.classERR bad Vcc/Vpp combo (%d %ne" nacia/db has/no 'pseudo-attox#39; resourcr!xxx_ss.c#L277" id  L261" class="line" nam
  L261">12614/a>      4         4a href="+code=4" cla47enable_irq" class="sref">enab4/a> = 4a href=cto_db1x_socket" class="sre>stschg_irq4/a>, 4a comment">/* clear volta"id  L239" class="line" nam
  L239">12614/a>=ret4/a> = -goto-4a href="+code=outef="drivers/pcmcoute84" id  L268" class="line" nam
  L268">12684/a>      4 }=11544/a>=(4a href=c"srr" class="sref">nr4/a> * 8)); 4spa> class="phys_attomment">/* clearphys_atto"sref/* clearfte4/>stschg_irq4/a>, 4a hrarcmcia/db1xxx_ss.crarc"sreid  L268" class="line" nam
  L268">12684/a>= class="comment">/4 crea4843" id  L243" class="line" nam
  L243">12434/a>      4 if (4a href="+code=sock4 clas48oltage setup */4/spa>
 12834/a>      4         4a href="+code=4r_set48ref">cr_clr4/a> = (0xf <&omment">/* clearfte4/g 4spa> pdevuct14a href="+c>deva>,=i/a> = (0xf <&IORESOURCE_MEMdb1x_socket" clIORESOURCE_MEMa>,=i/acc/Vpp combo (%dx_ss.cne" na-memx_ss.c#L277"  id  L239" class="line" nam
  L239">12614/a>=-&! 4a href="+codeomment">/* clearfte4/" id  L261" class="line" nam
  L261">12614/a>      4 4a href="+code=changed"4class48ss="sref">ret4/a> = 4to_db1x_socket4de=KERN_INFO" class="sref">KERN_INFO4/a> 4spa> classERRss="commexx_ss.classERR bad Vcc/Vpp combo (%d %ne" nacia/db has/no 'pseudo-memx#39; resourcr!xxx_ss.c#L277" id  L261" class="line" nam
  L261">12614.c#L275" 4d  L275" class="line" na4
  L248" class="sref">free_ief">enab4/a> = 4a href=cto_db1x_socket" class="sre>stschg_irq4/a>, 4a comment">/* clear volta"id  L239" class="line" nam
  L239">126149" id  L24932/pcmcia/db1xxx_>state4/a>-&48enable_irq" class="srgoto-4a href="+code=outef="drivers/pcmcoute84" id  L268" class="line" nam
  L268">12684/a>=11544/a>      4                 4a href4"+cod490ref">changed4/a> = 4a href=cto_db1x_socket" class="sre>stschg_irq4/a>, 4a phys_memmment">/* clearphys_mem"sref/* clearfte4/>stschg_irq4/a>, 4a hrarcmcia/db1xxx_ss.crarc"sreid  L268" class="line" nam
  L268">12684/a>      4 } else {=12124/a>      4         4spa> class="co4ment"492ltage setup */4/spa>
 12834/a>      4lass="comment">         4     49code=out1" cla> = (0xf <&omment">/* clearfte4/g 4spa> pdevuct14a href="+c>deva>,=i/a> = (0xf <&IORESOURCE_MEMdb1x_socket" clIORESOURCE_MEMa>,=i/acc/Vpp combo (%dx_ss.cne" na-iox_ss.c#L277"  id  L239" class="line" nam
  L239">12614/a>      4lass="comment">         4     494rq_typ
" claa>-&! 4a href="+codeomment">/* clearfte4/" id  L261" class="line" nam
  L261">12614/a>      4         4a href="+code=4rq_se49irq_typ
" class="sref4a href="+code=de=KERN_INFO" class="sref">KERN_INFO4/a> 4spa> classERRss="commexx_ss.classERR bad Vcc/Vpp combo (%d %ne" nacia/db has/no 'pseudo-iox#39; resourcr!xxx_ss.c#L277" id  L261" class="line" nam
  L261">12614/a>      4         4a href="+code=4et" c4ass="sref">ret4/a> = 4ef">enab4/a> = 4a href=cto_db1x_socket" class="sre>stschg_irq4/a>, 4a comment">/* clear volta"id  L239" class="line" nam
  L239">12614/c#L275" 4                        4  0, 49" class="sref">free_igoto-4a href="+code=outef="drivers/pcmcoute84" id  L268" class="line" nam
  L268">12684/" id  L24f="drivers/pcmcia/db1xxx4ss.c#49="sref">v4/a>id  L154" class="line" nam
  L154">11544/a>=cr_set4/a> = 0;=/* clearfte4/>stschg_irq4/a>, 4a hrarcmcia/db1xxx_ss.crarc"sreid  L268" class="line" nam
  L268">12685/a>      5                 goto14a5href=500db1xd  L268" class="line" nam
  L268">12685/1>      5 } else {=12835/a>=
 12835/3>=         5ass="50MCIA socket on the Db1x00 slass="sre* refQIO regist="l.  Since mips_oo_rive_b267"is addecL283" id  L283" class="line" nam
  L283">12835/a>=12835/5>=out505ef">socket on the Db1x00 slass="sre*rinb/outb, we ne>crto-subtract it here becausehwe wantL283" id  L283" class="line" nam
  L283">12835/6>=12835/7>=12835/8>=12835/9>=cr_set4/a> = 0;=sooflags" class="svi">soo>);=f"> 4spa> ioremaode=sock" class=ioremaoKERN_INFO4/a> 4spa> cto_db1x_socket" class="sre>stschg_irq4/a>, 4a phys_ooflags" class="sphys_oo"srei/a> = (0xf <&IO_MAP_SIZEmcia/db1xxx_ss.IO_MAP_SIZE>);=) -d  L283" class="line" nam
  L283">12835/a>}=enabbbbbbbbbba> = (0xf <&mips_oo_rive_b267mcia/db1xxx_ss.mips_oo_rive_b267olta"id  L239" class="line" nam
  L239">12615/a>=12125/a>static5void 4a href="+code=db1x5pcmci512ltage setup a>-&! 4a href="+code=to_db1x_socket" class="sre>stschg_irq4/a>, 4a vi">sooflags" class="svi">soo>);=" id  L261" class="line" nam
  L261">12615/a>{=KERN_INFO4/a> 4spa> classERRss="commexx_ss.classERR bad Vcc/Vpp combo (%d %ne" nacia/db: cannot remao/IO a68"xxx_ss.c#L277" id  L261" class="line" nam
  L261">12615/a>      5 if (4a href="+code=sock5 clas51ref">cr_clr4/out1" class="sre4a href="+code=cto_db1x_socket" class="sre>stschg_irq4/a>, 4a comment">/* clear volta"id  L239" class="line" nam
  L239">12615/5>=EINVAL4/a>;=12415/a>=ret4/a> = 4goto-4a href="+code=outef="drivers/pcmcoute84" id  L268" class="line" nam
  L268">12685/7>      5 4a href="+code=free_irq5 clas51" class="srefid  L154" class="line" nam
  L154">11545/a>      5 if (4a href="+code=sock5 clas5109" id  L209" class="line" nam
  L209">12095/a>      5         4a href="+code=5ree_i519ef">cr_set4/a> = 0;=db1x_pcmcia_sopruct14a href="+copref">cr_set4/=>cs022">db1x_pcmcia_slass="sref">opera 12685/a>}=changed4/a> = 4a href=cto_db1x_socket" class="sre>stschg_irq4/a>, 4a eef="+code=skt" classsef="+>);=.">db1x_pcmcia_sowneomment">/* clearowneoref">chang12685/a>=(4a href=c"srr" class="sref">nr4/a> * 8)); 4spa> class="eef="+code=skt" classsef="+>);=.">db1x_pcmcia_spcieirqdb1x_socket" clpcieirq_ss.c#L2a>->4a href="+c"srr" class="sref">nr4/a> * 8)); 4spa> class="="sreirqdb1x_socket" cl="sreirqte4/id  L268" class="line" nam
  L268">12685/a>static5lass="comment">/*4/spa>
5 != 4ce=nr" class="sref">nr4/a> * 8)); 4spa> class="eef="+code=skt" classsef="+>);=.">db1x_pcmcia_sfeaturescode=skt" classfeaturesnew vol">to_db1x_socket4refCAP_STATIC_MAPcode=skt" classrefCAP_STATIC_MAPnew v< (4a href="+cxx_CAP_PCC300ers/pcmcia/db1xxx_CAP_PCC300te4/id  L268" class="line" nam
  L268">12685/a>{= * config5re a 52code=out1" cla> = (0xf <&ce=nr" class="sref">nr4/a> * 8)); 4spa> class="eef="+code=skt" classsef="+>);=.">db1x_pcmcia_smao_sizemcia/db1xxx_ss.mao_sizenew vol">to_db1x_socket4MEM_MAP_SIZEmcia/db1xxx_ss.MEM_MAP_SIZEte4/id  L268" class="line" nam
  L268">12685/a>      5lass="comment"> * compat5bles)52ref">cr_clr4/a> = (0xf <&ce=nr" class="sref">nr4/a> * 8)); 4spa> class="eef="+code=skt" classsef="+>);=.">db1x_pcmcia_soo_offs"+code=skt" classoo_offs"+ef">cr">crlong)->4a href="+c"srr" class="sref">nr4/a> * 8)); 4spa> class="vi">sooflags" class="svi">soo>);=id  L239" class="line" nam
  L239">12615/a>      5lass="comment"> *4/spa>
5cr_set4/a> = 0;=nr4/a> * 8)); 4spa> class="eef="+code=skt" classsef="+>);=.">db1x_pcmcia_sdevuct14a href="+cdeva>,=.">db1x_pcmcia_spa68n+code=skt" class=a68n+EINVAL4cs022">db1x_pcmcia_spdevuct14a href="+c>deva>,=* 8)); 4spa> class="devuct14a href="+cdeva>,=id  L239" class="line" nam
  L239">12615/a>= * 2 exte5nal r52sref">changed4/a> = 4a href=cto_db1x_socket" class="sre>stschg_irq4/a>, 4a _ef="+code=skt" classsef="+>);=.">db1x_pcmcia_sresourcr_opruct14a href="+cresourcr_oprEINVAL4cs022">db1x_pcmcia_spc="srehra" c_opruct14a href="+cpc="srehra" c_opra>,=id  L239" class="line" nam
  L239">12615/7>      5lass="comment"> *   pcmc5a_sta52"sref">insert_irivers/pcmcia/db1xxx_ss.c#L25/a>      5lass="comment"> *   pcmc5a_con52="sref">v4/a> 4a href="+code>latform_>sredrvdatauct14a href="+c>latform_>sredrvdataKERN_INFO4/a> 4spa> pdevuct14a href="+c>deva>,=i/a> = (0xf <&=to_db1x_socket" class="sreiid  L239" class="line" nam
  L239">12615/a>      5lass="comment"> *      b5ts[0:5260" id  L260" class="line" nam
  L260">126053a>4spa> 5lass="comment"> *      b5ts[2:530ref">changed4/a> = 4a href=EINVAL" class="sref">EINVAL4">db1x_pcmcia_slass="sref">>srupeirqock" class="srefock4/a> *4a >srupeirqoKERN_INFO4/a> 4spa> cto_db1x_socket" class="sreiid  L239" class="line" nam
  L239">126153a>= *      b5t 4: 53a/db1xxx_ss.ca>->4a href="+coEINVAL" class="sref">EINV" id  L261" class="line" nam
  L261">126153a>4spa> 5lass="comment"> *      b5t 7: 532sref">free_i4/a> = -4a href="+code=de=KERN_INFO" class="sref">KERN_INFO4/a> 4spa> classERRss="commexx_ss.classERR bad Vcc/Vpp combo (%d %ne" nacia/db cannot >srupaasserruptsxxx_ss.c#L277" id  L261" class="line" nam
  L261">126153a>4spa> 5lass="comment"> *      a5d 8 f53code=out1" class="sre>changed4/a> = 4a href=cto_db1x_socket" class="sre>stschg_irq4/a>, 4a comment">/* clear volta"id  L239" class="line" nam
  L239">126153a>      5lass="comment"> */4/spa>5 cr_clr4/out1" clgoto-4a href="+code=out1mment">/* clearout1a>,=id  L239" class="line" nam
  L239">126153a>      5int14a href="+code=db1x_5cmcia53irq_typ
" claid  L154" class="line" nam
  L154">115453a>4spa> 5                        5 stru5317" id  L217" class="line" nam
  L217">121753a>4spa> 5ef="drivers/pcmcia/db1xx5_ss.c53"sref">free_irq4/a>(4a href=s"sresock"db1x_socket" cla"sresock"KERN_INFO4/a> 4spa> cto_db1x_socket" class="sre, 0"id  L239" class="line" nam
  L239">126153a>      5 struct14a href="+code=d51x_pc5309" id  L209" class="line" nam
  L209">120953a>      5 unsigned short14a href=5+code539ef">cr_set4/a> = 0;=EINVAL4">db1x_pcmcia_sa> *4a regist="href="+code=skt" class="sref"regist="href="+KERN_cs022">db1x_pcmcia_scto_db1x_socket" class="sre>stschg_irq4/a>, 4a _ef="+code=skt" classsef="+>);="id  L239" class="line" nam
  L239">12615/a>      5 unsigned int14a href="+5ode=c5anged" class="a>->4a href="+coEINVAL" class="sref">EINV" id  L261" class="line" nam
  L261">12615/a>      5 int14a href="+code=v" c5ass="54a/db1xxx_ss.class="srrq4/a>(4a href=de=KERN_INFO" class="sref">KERN_INFO4/a> 4spa> classERRss="commexx_ss.classERR bad Vcc/Vpp combo (%d %ne" nacia/db fail>crto-regist="xxx_ss.c#L277" i/a> = (0xf <&cto_db1x_socket" class="sre>stschg_irq4/a>, 4a comment">/* clear volta"id  L239" class="line" nam
  L239">12615/a>=free_i4/a> = -goto-4a href="+code=outass="commexx_ss.outaa>,=id  L239" class="line" nam
  L239">12615/a>      5 4spa> class="comment">/5 card54code=out1" clid  L154" class="line" nam
  L154">11545/a>      5 4a href="+code=cr_clr" 5lass=5405" id  L205" class="line" nam
  L205">12055/a>      5 4a href="+code=cr_set" 5lass=54ref">cr_set4/a> = 0;=KERN_INFO4/a> 4spa> class="string">"pcmcia%d bad Vcc/Vpp combo (%d %Alchemy Db/P  L20 ne" nacia/db @ io/atto/memmcia/d09llxx_ss.c#L277" d  L205" class="line" nam
  L205">12055/a>4spa> 5 4a href="+code=v" class5"sref54ss="sref">ret4/a> = 4tcc/Vpp combo (%d %(cia/dp)mcia/d09llxmcia/d09llxmQs/pc/i">soc/esock"/ej=c mirqs @ cia/db x_ss.c#L277" d  L205" class="line" nam
  L205">12055/a>4spa> 5f="drivers/pcmcia/db1xxx5ss.c#54" class="sref">free_ircc/Vpp combo (%d %cia/db xia/db xia/dbxxx_ss.c#L277" i/a> = (0xf <&cto_db1x_socket" class="sre>stschg_irq4/a>, 4a comment">/* clear voltai/a> = (0xf <&cto_db1x_socket" class="sre>stschg_irq4/a>, 4a phys_ooflags" class="sphys_oo"srei/a> = (0xf <&c"srr" class="sref">nr4/a> * 8)); 4spa> class="vi">sooflags" class="svi">soo>);=id  L261" class="line" nam
  L261">12615/a>      5 switch (4a href="+code=5tate"54="sref">v4/a> = 4a hrto_db1x_socket4me=board_typ
" class="sref">board_typ
4/a> != 4phys_attomment">/* clearphys_atto"srei/a> = (0xf <&cto_db1x_socket" class="sre>stschg_irq4/a>, 4a phys_memmment">/* clearphys_mem"srei/a> = (0xf <&cto_db1x_socket" class="sre>stschg_irq4/a>, 4a ="sreirqdb1x_socket" cl="sreirqte4/id  L261" class="line" nam
  L261">12615/a>      5 case150:=ret4/a> = -4a href="+code=me=board_typ
" class="sref">board_typ
4/a> != 4i">soceirqdb1x_socket" cli">soceirqte4/i/a> = (0xf <&cto_db1x_socket" class="sre>stschg_irq4/a>, 4a _sock"eirqdb1x_socket" cl_sock"eirqte4/i/a> = (0xf <&cto_db1x_socket" class="sre>stschg_irq4/a>, 4a ej=c eirqdb1x_socket" clej=c eirqte4/"id  L239" class="line" nam
  L239">12615/a>      5         ++4a href="+cod5=v" c550db1xd  L268" class="line" nam
  L268">12685/a>      5 case133:=12865/a>=12435/a>      5 case10:=,=id  L269" class="line" nam
  L269">12695/a>      5         break;=cr_clr4/a> = (0xf <&ock4/a> *4a freeeirqock" class="srefock4/a> *4a freeeirqoKERN_INFO4/a> 4spa> cto_db1x_socket" class="sreiid  L239" class="line" nam
  L239">12615/a>      5 default:=/* clearout1a>,=id  L269" class="line" nam
  L269">12695/a>4spa> 5         4a href="+code=5rintk55sref">changed4/a> = 4a href=iounmaode=sock" class=iounmaoKERN_ 4spa> cto_db1x_socket" class="sre>stschg_irq4/a>, 4a vi">sooflags" class="svi">soo>);=f+->4a href="+cou3ass="commexx_ss.u32sref)->4a href="+mips_oo_rive_b267mcia/db1xxx_ss.mips_oo_rive_b267olta"iid  L239" class="line" nam
  L239">12615/a>4spa> 5                 4a href5"+cod55"sref4a href="+code=outef="drivers/pcmcoute84" id  L269" class="line" nam
  L269">12695/a>      5 }=v4/a> 4a href="+codekfreef="drivers/pcmckfreeKERN_INFO4/a> 4spa> cto_db1x_socket" class="sreiid  L239" class="line" nam
  L239">12615/a>      5f="drivers/pcmcia/db1xxx5ss.c#559/db1xxx_ss.c done *gt;4a href="+coEINVAL" class="sref">EINVid  L239" class="line" nam
  L239">12615/a>      5 switch (4a href="+code=5tate"56000 hid  L154" class="line" nam
  L154">11545/a>      5 case112:=12125/a>      5         ++4a href="+cod5=p" c56ED" cure" class="sref">db1x_pcm__devexit="+code=sock" c__devexit bad V>db1x_pcmcia_slass="sref">>ss="srremovef="drivers/pcmclass="sref">>ss="srremoveKERN_sref">pcmcia_socket4/a>latform_devicruct14a href="+c>latform_devicr4/a> = 4a href="+codepdevuct14a href="+c>deva>,=id  L188" class="line" nam
  L188">11885/a>      5 case133:=12615/a>      5 case150:=db1x_pcmcia_sock4/a> *4a href="+code=sock" class="sref">sock4/a> = 4a href="+code=to_db1x_socket" class="sregdeva>,=iid  L239" class="line" nam
  L239">12615/a>      5         ++4a href="+cod5=p" c5686" id  L286" class="line" nam
  L286">12865/a>      5 case10:=changed4/a> = 4a href=ock4/a> *4a freeeirqock" class="srefock4/a> *4a freeeirqoKERN_INFO4/a> 4spa> cto_db1x_socket" class="sreiid  L239" class="line" nam
  L239">12615/a>=free_irq4/a>(4a href=a> *4a unregist="href="+code=skt" class="sref"unregist="href="+KERN_cs022">db1x_pcmcia_scto_db1x_socket" class="sre>stschg_irq4/a>, 4a _ef="+code=skt" classsef="+>);="id  L239" class="line" nam
  L239">12615/a>      5 default:=v4/a> 4a href="+codeiounmaode=sock" class=iounmaoKERN_ 4spa> cto_db1x_socket" class="sre>stschg_irq4/a>, 4a vi">sooflags" class="svi">soo>);=f+->4a href="+cou3ass="commexx_ss.u32sref)->4a href="+mips_oo_rive_b267mcia/db1xxx_ss.mips_oo_rive_b267olta"iid  L239" class="line" nam
  L239">12615/a>      5         4a href="+code=5rintk569ef">cr_set4/a> = 0;=12615/a>      5                 4a href5"+cod570db1xd  L268" class="line" nam
  L268">12685/a>      5 }=12865/a>=11545/a>      5 4spa> class="comment">/5 sani5724" id  L124" class="line" nam
  L124">11245/a>      5 if (((4a href="+code=st5te" c57a/db1ure" clsref">pcmcia_socket4/a>latform_dass="uct14a href="+c>latform_dass=" bad V>db1x_pcmcia_slass="sref">>ss="srdass="uct14a href="+class="sref">>ss="srdass=""sreg12615/a>      5     ((4a href="+code=st5te" c57ref">cr_set4/.">db1x_pcmcia_sdass="uct14a href="+class=""sreg12615/a>      5         4a href="+code=5rintk57ss="sref">ret4/a> = 4.">db1x_pcmcia_s4a huct14a href="+c4a hKERN ol">tcc/Vpp combo (%d %
  L26="sref"x_ss.c#L277" id  L261" class="line" nam
  L261">12615/a>      5                 4a href5"+cod57" class="sref">free_i.">db1x_pcmcia_sowneomment">/* clearowneoref">c12615/a>      5         4a href="+code=5" cla57enable_irq" c}id  L261" class="line" nam
  L261">12615/a>      5         4a href="+code=5et" c57ss="sref">ret.">db1x_pcmcia_sprobruct14a href="+c>robr class="sref">L4">db1x_pcmcia_slass="sref">>ss="srprobruct14a href="+class="sref">>ss="srprobr84" id  L261" class="line" nam
  L261">12615/a>      5 }=db1x_pcmcia_sremovef="drivers/pcmcremoveKERNs="sref">L4">db1x_pcmcia_s__devexit_ode=sock" class=__devexit_oKERN_INFO4/a> 4spa> lass="sref">>ss="srremovef="drivers/pcmclass="sref">>ss="srremoveKERN)id  L261" class="line" nam
  L261">12615/a>      5f="drivers/pcmcia/db1xxx5ss.c#58x_ss.}4d  L286" class="line" nam
  L286">12865/a>= class="comment">/5 crea5843" id  L243" class="line" nam
  L243">12435/a>      5 if (4a href="+code=sock5 clas58MCIA sa href="+code=module_>latform_dass="uct14a href="+cmodule_>latform_dass="KERN_INFO4/a> 4spa> lass="sref">>ss="srdass="uct14a href="+class="sref">>ss="srdass=""sreiid  L239" class="line" nam
  L239">12615/a>      5         4a href="+code=5r_set5805" id  L205" class="line" nam
  L205">12055/a>=12615/a>      5 4a href="+code=changed"5class58ss="s4a href="+code=MODULE_DESCRIPTIONmcia/db1xxx_ss.MODULE_DESCRIPTIONKERN_Icc/Vpp combo (%d % (and4/Sss="s Servicrs for Alchemy Db/P  L00 DB130sx_ss.c#L277"  id  L239" class="line" nam
  L239">12615/a>      5d  L275" class="line" na5
  L258"sref4a href="+code=MODULE_AUTHORss="commexx_ss.MODULE_AUTHORKERN_Icc/Vpp combo (%d %Manuel Laussx_ss.c#L277"  id  L239" class="line" nam
  L239">12615/a>      5932/pcmcia/db1xxx_>state5/a>-&58enablp&58encode=5r_set5805" id>      59.s=cto_db1x_socket" class="sre>stscNFO4/a> 4spa> c    59xsef">BOhe origi83">LXR softwa6>=state5/http://="+cpcnamge.netclao    s/lxf">LXR 5/9>unity4a ej=s="liexperihr5f l &58e    state5/mailto:lxf@   ux.no">lxf@   ux.no4a e.scNFO4/a 4spa> c    sub59xsef">Blxf.   ux.no kindly hotscd state5/http://www.redpill-   lao.no">Redpill L  lao AS4a ej=laovi">12of L  ux 5/nsult  L2 nam
 "drivers s="line" s L2831995.scNFO4/a> /body/a /html>sts