linux/drivers/pcmcia/electra_cf.c
<<
tionv2./spa > v2./form > v2.a tionv2 href="../linux+v3="v1/drivers/pcmcia/electra_cf.c">tionv2.img src="../.static/gfx/right.png" alt=">>">ti./spa >ti.spa class="lxr_search">tiontionv2.input typionhidden" namionnavtarget" /option">tionv2.input typiontext" namionsearch" idonsearch">tionv2.butt.3Search v2./form > ./spa >ti.spa class="lxr_prefs" > v2.a href="+prefs?return=drivers/pcmcia/electra_cf.c"tionv2 onclick="return ajax_prefs();">tionv2Prefs> v2./a>ti./spa >onv2 2./div >onv2 2.form ac" ="ajax+*" method="post" onsubmit="return false;">ti.input typionhidden" namionajax_lookup" idonajax_lookup" /option">tonv2 2./form >tonv2 2.div class="headingbott.m">
onv2
onv2 v2 2.div idonsearch_results" class="search_results"> v >onv2 2./div > .div idoncontent">> .div idonfile_contents"
2 21./a>.spa  class="comment">/*./spa  >2 22./a>.spa  class="comment"> * Copyright (C) 2007 PA Semi, Inc./spa  >2 23./a>.spa  class="comment"> *./spa  >2 24./a>.spa  class="comment"> * Maintained by: Olof Johanss.3<<olof@lixom.net>./spa  >2 25./a>.spa  class="comment"> *./spa  >2 26./a>.spa  class="comment"> * Based .32 27./a>.spa  class="comment"> *./spa  >2 28./a>.spa  class="comment"> * This program is free software; you ca  redistribute it and/or modify./spa  >2 29./a>.spa  class="comment"> * it under the terms of the GNU General Public License as published by./spa  >2 .11"a>.spa  class="comment"> * the Free Software Founda"
	 ; either vers2.3<2 of the License, or./spa  >2 11./a>.spa  class="comment"> * (at your .2"
	 ) any later vers2.3../spa  >2 12./a>.spa  class="comment"> *./spa  >2 13./a>.spa  class="comment"> * This program is distributed in the hope that it will be useful,./spa  >2 14./a>.spa  class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of./spa  >2 15./a>.spa  class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the./spa  >2 16./a>.spa  class="comment"> * GNU General Public License for more details../spa  >2 17./a>.spa  class="comment"> *./spa  >2 18./a>.spa  class="comment"> * You should have received a copy of the GNU General Public License./spa  >2 19./a>.spa  class="comment"> * along with this program; if not, write to the Free Software./spa  >2 211"a>.spa  class="comment"> * Founda"
	 , Inc., 59 Temple Place, Suite 330, Bost	 , MA  02111-1307 USA./spa  >2 21./a>.spa  class="comment"> */./spa  >2 22./a>>2 23./a>#include<<linux/module.h./a>>>2 24./a>#include<<linux/kernel.h./a>>>2 25./a>#include<<linux/sched.h./a>>>2 26./a>#include<<linux/platform_device.h./a>>>2 27./a>#include<<linux/errno.h./a>>>2 28./a>#include<<linux/init.h./a>>>2 29./a>#include<<linux/delay.h./a>>>2 30./a>#include<<linux/interrupt.h./a>>>2 31./a>#include<<linux/mm.h./a>>>2 32./a>#include<<linux/vmalloc.h./a>>>2 33./a>#include<<linux/of_platform.h./a>>>2 34./a>#include<<linux/slab.h./a>>>2 35./a>>2 36./a>#include<<pcmcia/ss.h./a>>>2 37./a>>2 38./a>static const char2.a href="+code=driver_nami" class="sref">driver_nami./a>[] = .spa  class="string">"electra-cf"./spa  ;>2 39./a>>2 40./a>struct2.a href="+code=electra_cf_socket" class="sref">electra_cf_socket./a> {>2 41./a>        struct2.a href="+code=pcmcia_socket" class="sref">pcmcia_socket./a>    .a href="+code=socket" class="sref">socket./a>;>2 42./a>>2 43./a>        struct2.a href="+code=timer_list" class="sref">timer_list./a>       .a href="+code=timer" class="sref">timer./a>;>2 44./a>        unsigned                .a href="+code=present" class="sref">present./a>:1;>2 45./a>        unsigned                .a href="+code=ac"
vi" class="sref">ac"
vi./a>:1;>2 46./a>>2 47./a>        struct2.a href="+code=platform_device" class="sref">platform_device./a>  *.a href="+code=ofdev" class="sref">ofdev./a>;>2 48./a>        unsigned long           .a href="+code=mem_phys" class="sref">mem_phys./a>;>2 49./a>        void .a href="+code=__iomem" class="sref">__iomem./a> *          .a href="+code=mem_base" class="sref">mem_base./a>;>2 50./a>        unsigned long           .a href="+code=mem_size" class="sref">mem_size./a>;>2 51./a>        void .a href="+code=__iomem" class="sref">__iomem./a> *          .a href="+code=io_virt" class="sref">io_virt./a>;>2 52./a>        unsigned int            .a href="+code=io_base" class="sref">io_base./a>;>2 53./a>        unsigned int            .a href="+code=io_size" class="sref">io_size./a>;>2 54./a>        .a href="+code=u_int" class="sref">u_int./a>                   .a href="+code=irq" class="sref">irq./a>;>2 55./a>        struct2.a href="+code=resource" class="sref">resource./a>         .a href="+code=iomem" class="sref">iomem./a>;>2 56./a>        void .a href="+code=__iomem" class="sref">__iomem./a> *          .a href="+code=gpio_base" class="sref">gpio_base./a>;>2 57./a>        int                     .a href="+code=gpio_detect" class="sref">gpio_detect./a>;>2 58./a>        int                     .a href="+code=gpio_vsense" class="sref">gpio_vsense./a>;>2 59./a>        int                     .a href="+code=gpio_3v" class="sref">gpio_3v./a>;>2 60./a>        int                     .a href="+code=gpio_5v" class="sref">gpio_5v./a>;>2 61./a>};>2 62./a>>2 63./a>#define .a href="+code=POLL_INTERVAL" class="sref">POLL_INTERVAL./a>           (2 * .a href="+code=HZ" class="sref">HZ./a>)>2 64./a>>2 65./a>>2 66./a>static int .a href="+code=electra_cf_present" class="sref">electra_cf_present./a>(struct2.a href="+code=electra_cf_socket" class="sref">electra_cf_socket./a> *.a href="+code=cf" class="sref">cf./a>)>2 67./a>{>2 68./a>        unsigned int .a href="+code=gpio" class="sref">gpio./a>;>2 69./a>>2 70./a>        .a href="+code=gpio" class="sref">gpio./a> = .a href="+code=in_le32" class="sref">in_le32./a>(.a href="+code=cf" class="sref">cf./a>->.a href="+code=gpio_base" class="sref">gpio_base./a>+0x40);>2 71./a>        return !(.a href="+code=gpio" class="sref">gpio./a> & (1<<< .a href="+code=cf" class="sref">cf./a>->.a href="+code=gpio_detect" class="sref">gpio_detect./a>));>2 72./a>}>2 73./a>>2 74./a>static int .a href="+code=electra_cf_ss_init" class="sref">electra_cf_ss_init./a>(struct2.a href="+code=pcmcia_socket" class="sref">pcmcia_socket./a> *.a href="+code=s" class="sref">s./a>)>2 75./a>{>2 76./a>        return 0;>2 77./a>}>2 78./a>>2 79./a>.spa  class="comment">/* the timer is primarily to kick this socket's pccardd */./spa  >2 80./a>static void .a href="+code=electra_cf_timer" class="sref">electra_cf_timer./a>(unsigned long .a href="+code=_cf" class="sref">_cf./a>)>2 81./a>{>2 82./a>        struct2.a href="+code=electra_cf_socket" class="sref">electra_cf_socket./a> *.a href="+code=cf" class="sref">cf./a> = (void *) .a href="+code=_cf" class="sref">_cf./a>;>2 83./a>        int .a href="+code=present" class="sref">present./a> = .a href="+code=electra_cf_present" class="sref">electra_cf_present./a>(.a href="+code=cf" class="sref">cf./a>);>2 84./a>>2 85./a>        if (.a href="+code=present" class="sref">present./a> != .a href="+code=cf" class="sref">cf./a>->.a href="+code=present" class="sref">present./a>) {>2 86./a>                .a href="+code=cf" class="sref">cf./a>->.a href="+code=present" class="sref">present./a> = .a href="+code=present" class="sref">present./a>;>2 87./a>                .a href="+code=pcmcia_parse_events" class="sref">pcmcia_parse_events./a>(&.a href="+code=cf" class="sref">cf./a>->.a href="+code=socket" class="sref">socket./a>, .a href="+code=SS_DETECT" class="sref">SS_DETECT./a>);>2 88./a>        }>2 89./a>>2 90./a>        if (.a href="+code=cf" class="sref">cf./a>->.a href="+code=ac"
vi" class="sref">ac"
vi./a>)>2 91./a>                .a href="+code=mod_timer" class="sref">mod_timer./a>(&.a href="+code=cf" class="sref">cf./a>->.a href="+code=timer" class="sref">timer./a>, .a href="+code=jiffies" class="sref">jiffies./a> + .a href="+code=POLL_INTERVAL" class="sref">POLL_INTERVAL./a>);>2 92./a>}>2 93./a>>2 94./a>static .a href="+code=irqreturn_t" class="sref">irqreturn_t./a> .a href="+code=electra_cf_irq" class="sref">electra_cf_irq./a>(int .a href="+code=irq" class="sref">irq./a>, void *.a href="+code=_cf" class="sref">_cf./a>)>2 95./a>{>2 96./a>        .a href="+code=electra_cf_timer" class="sref">electra_cf_timer./a>((unsigned long).a href="+code=_cf" class="sref">_cf./a>);>2 97./a>        return .a href="+code=IRQ_HANDLED" class="sref">IRQ_HANDLED./a>;>2 98./a>}>2 99./a>>2100./a>static int .a href="+code=electra_cf_get_status" class="sref">electra_cf_get_status./a>(struct2.a href="+code=pcmcia_socket" class="sref">pcmcia_socket./a> *.a href="+code=s" class="sref">s./a>, .a href="+code=u_int" class="sref">u_int./a> *.a href="+code=sp" class="sref">sp./a>)>2101./a>{>2102./a>        struct2.a href="+code=electra_cf_socket" class="sref">electra_cf_socket./a> *.a href="+code=cf" class="sref">cf./a>;>2103./a>>2104./a>        if (!.a href="+code=sp" class="sref">sp./a>)>2105./a>                return -.a href="+code=EINVAL" class="sref">EINVAL./a>;>2106./a>>2107./a>        .a href="+code=cf" class="sref">cf./a> = .a href="+code=container_of" class="sref">container_of./a>(.a href="+code=s" class="sref">s./a>, struct2.a href="+code=electra_cf_socket" class="sref">electra_cf_socket./a>, .a href="+code=socket" class="sref">socket./a>);>2108./a>>2109./a>        .spa  class="comment">/* NOTE CF is always 3VCARD */./spa  >2110./a>        if (.a href="+code=electra_cf_present" class="sref">electra_cf_present./a>(.a href="+code=cf" class="sref">cf./a>)) {>2111./a>                *.a href="+code=sp" class="sref">sp./a> = .a href="+code=SS_READY" class="sref">SS_READY./a> | .a href="+code=SS_DETECT" class="sref">SS_DETECT./a> | .a href="+code=SS_POWERON" class="sref">SS_POWERON./a> | .a href="+code=SS_3VCARD" class="sref">SS_3VCARD./a>;>2112./a>>2113./a>                .a href="+code=s" class="sref">s./a>->.a href="+code=pci_irq" class="sref">pci_irq./a> = .a href="+code=cf" class="sref">cf./a>->.a href="+code=irq" class="sref">irq./a>;>2114./a>        } else>2115./a>                *.a href="+code=sp" class="sref">sp./a> = 0;>2116./a>        return 0;>2117./a>}>2118./a>>2119./a>static int .a href="+code=electra_cf_set_socket" class="sref">electra_cf_set_socket./a>(struct2.a href="+code=pcmcia_socket" class="sref">pcmcia_socket./a> *.a href="+code=sock" class="sref">sock./a>,>2120./a>                                 struct2.a href="+code=socket_state_t" class="sref">socket_state_t./a> *.a href="+code=s" class="sref">s./a>)>2121./a>{>2122./a>        unsigned int .a href="+code=gpio" class="sref">gpio./a>;>2123./a>        unsigned int .a href="+code=vcc" class="sref">vcc./a>;>2124./a>        struct2.a href="+code=electra_cf_socket" class="sref">electra_cf_socket./a> *.a href="+code=cf" class="sref">cf./a>;>2125./a>>2126./a>        .a href="+code=cf" class="sref">cf./a> = .a href="+code=container_of" class="sref">container_of./a>(.a href="+code=sock" class="sref">sock./a>, struct2.a href="+code=electra_cf_socket" class="sref">electra_cf_socket./a>, .a href="+code=socket" class="sref">socket./a>);>2127./a>>2128./a>        .spa  class="comment">/* "reset" means no power in our case */./spa  >2129./a>        .a href="+code=vcc" class="sref">vcc./a> = (.a href="+code=s" class="sref">s./a>->.a href="+code=flags" class="sref">flags./a> & .a href="+code=SS_RESET" class="sref">SS_RESET./a>) ? 0 : .a href="+code=s" class="sref">s./a>->.a href="+code=Vcc" class="sref">Vcc./a>;>2130./a>>2131./a>        switch (.a href="+code=vcc" class="sref">vcc./a>) {>2132./a>        case 0:>2133./a>                .a href="+code=gpio" class="sref">gpio./a> = 0;>2134./a>                break;>2135./a>        case 33:>2136./a>                .a href="+code=gpio" class="sref">gpio./a> = (1<<< .a href="+code=cf" class="sref">cf./a>->.a href="+code=gpio_3v" class="sref">gpio_3v./a>);>2137./a>                break;>2138./a>        case 5:>2139./a>                .a href="+code=gpio" class="sref">gpio./a> = (1<<< .a href="+code=cf" class="sref">cf./a>->.a href="+code=gpio_5v" class="sref">gpio_5v./a>);>2140./a>                break;>2141./a>        default:>2142./a>                return -.a href="+code=EINVAL" class="sref">EINVAL./a>;>2143./a>        }>2144./a>>2145./a>        .a href="+code=gpio" class="sref">gpio./a> |= 1<<< (.a href="+code=cf" class="sref">cf./a>->.a href="+code=gpio_3v" class="sref">gpio_3v./a> + 16); .spa  class="comment">/* enwr */./spa  >2146./a>        .a href="+code=gpio" class="sref">gpio./a> |= 1<<< (.a href="+code=cf" class="sref">cf./a>->.a href="+code=gpio_5v" class="sref">gpio_5v./a> + 16); .spa  class="comment">/* enwr */./spa  >2147./a>        .a href="+code=out_le32" class="sref">out_le32./a>(.a href="+code=cf" class="sref">cf./a>->.a href="+code=gpio_base" class="sref">gpio_base./a>+0x90, .a href="+code=gpio" class="sref">gpio./a>);>2148./a>>2149./a>        .a href="+code=pr_debug" class="sref">pr_debug./a>(.spa  class="string">"%s: Vcc %d, io_irq %d, flags %04x csc %04x\n"./spa  ,>2150./a>                .a href="+code=driver_nami" class="sref">driver_nami./a>, .a href="+code=s" class="sref">s./a>->.a href="+code=Vcc" class="sref">Vcc./a>, .a href="+code=s" class="sref">s./a>->.a href="+code=io_irq" class="sref">io_irq./a>, .a href="+code=s" class="sref">s./a>->.a href="+code=flags" class="sref">flags./a>, .a href="+code=s" class="sref">s./a>->.a href="+code=csc_mask" class="sref">csc_mask./a>);>2151./a>>2152./a>        return 0;>2153./a>}>2154./a>>2155./a>static int .a href="+code=electra_cf_set_io_map" class="sref">electra_cf_set_io_map./a>(struct2.a href="+code=pcmcia_socket" class="sref">pcmcia_socket./a> *.a href="+code=s" class="sref">s./a>,>2156./a>                                 struct2.a href="+code=pccard_io_map" class="sref">pccard_io_map./a> *.a href="+code=io" class="sref">io./a>)>2157./a>{>2158./a>        return 0;>2159./a>}>2160./a>>2161./a>static int .a href="+code=electra_cf_set_mem_map" class="sref">electra_cf_set_mem_map./a>(struct2.a href="+code=pcmcia_socket" class="sref">pcmcia_socket./a> *.a href="+code=s" class="sref">s./a>,>2162./a>                                  struct2.a href="+code=pccard_mem_map" class="sref">pccard_mem_map./a> *.a href="+code=map" class="sref">map./a>)>2163./a>{>2164./a>        struct2.a href="+code=electra_cf_socket" class="sref">electra_cf_socket./a> *.a href="+code=cf" class="sref">cf./a>;>2165./a>>2166./a>        if (.a href="+code=map" class="sref">map./a>->.a href="+code=card_start" class="sref">card_start./a>)>2167./a>                return -.a href="+code=EINVAL" class="sref">EINVAL./a>;>2168./a>        .a href="+code=cf" class="sref">cf./a> = .a href="+code=container_of" class="sref">container_of./a>(.a href="+code=s" class="sref">s./a>, struct2.a href="+code=electra_cf_socket" class="sref">electra_cf_socket./a>, .a href="+code=socket" class="sref">socket./a>);>2169./a>        .a href="+code=map" class="sref">map./a>->.a href="+code=static_start" class="sref">static_start./a> = .a href="+code=cf" class="sref">cf./a>->.a href="+code=mem_phys" class="sref">mem_phys./a>;>2170./a>        .a href="+code=map" class="sref">map./a>->.a href="+code=flags" class="sref">flags./a> &= .a href="+code=MAP_ACTIVE" class="sref">MAP_ACTIVE./a>|.a href="+code=MAP_ATTRIB" class="sref">MAP_ATTRIB./a>;>2171./a>        if (!(.a href="+code=map" class="sref">map./a>->.a href="+code=flags" class="sref">flags./a> & .a href="+code=MAP_ATTRIB" class="sref">MAP_ATTRIB./a>))>2172./a>                .a href="+code=map" class="sref">map./a>->.a href="+code=static_start" class="sref">static_start./a> += 0x800;>2173./a>        return 0;>2174./a>}>2175./a>>2176./a>static struct2.a href="+code=pccard_opera"
	 s" class="sref">pccard_opera"
	 s./a> .a href="+code=electra_cf_ops" class="sref">electra_cf_ops./a> = {>2177./a>        ..a href="+code=init" class="sref">init./a>                   = .a href="+code=electra_cf_ss_init" class="sref">electra_cf_ss_init./a>,>2178./a>        ..a href="+code=get_status" class="sref">get_status./a>             = .a href="+code=electra_cf_get_status" class="sref">electra_cf_get_status./a>,>2179./a>        ..a href="+code=set_socket" class="sref">set_socket./a>             = .a href="+code=electra_cf_set_socket" class="sref">electra_cf_set_socket./a>,>2180./a>        ..a href="+code=set_io_map" class="sref">set_io_map./a>             = .a href="+code=electra_cf_set_io_map" class="sref">electra_cf_set_io_map./a>,>2181./a>        ..a href="+code=set_mem_map" class="sref">set_mem_map./a>            = .a href="+code=electra_cf_set_mem_map" class="sref">electra_cf_set_mem_map./a>,>2182./a>};>2183./a>>2184./a>static int .a href="+code=__devinit" class="sref">__devinit./a> .a href="+code=electra_cf_probi" class="sref">electra_cf_probi./a>(struct2.a href="+code=platform_device" class="sref">platform_device./a> *.a href="+code=ofdev" class="sref">ofdev./a>)>2185./a>{>2186./a>        struct2.a href="+code=device" class="sref">device./a> *.a href="+code=device" class="sref">device./a> = &.a href="+code=ofdev" class="sref">ofdev./a>->.a href="+code=dev" class="sref">dev./a>;>2187./a>        struct2.a href="+code=device_node" class="sref">device_node./a> *.a href="+code=np" class="sref">np./a> = .a href="+code=ofdev" class="sref">ofdev./a>->.a href="+code=dev" class="sref">dev./a>..a href="+code=of_node" class="sref">of_node./a>;>2188./a>        struct2.a href="+code=electra_cf_socket" class="sref">electra_cf_socket./a>   *.a href="+code=cf" class="sref">cf./a>;>2189./a>        struct2.a href="+code=resource" class="sref">resource./a> .a href="+code=mem" class="sref">mem./a>, .a href="+code=io" class="sref">io./a>;>2190./a>        int .a href="+code=status" class="sref">status./a>;>2191./a>        const unsigned int *.a href="+code=prop" class="sref">prop./a>;>2192./a>        int .a href="+code=err" class="sref">err./a>;>2193./a>        struct2.a href="+code=vm_struct" class="sref">vm_struct./a> *.a href="+code=area" class="sref">area./a>;>2194./a>>2195./a>        .a href="+code=err" class="sref">err./a> = .a href="+code=of_address_to_resource" class="sref">of_address_to_resource./a>(.a href="+code=np" class="sref">np./a>, 0, &.a href="+code=mem" class="sref">mem./a>);>2196./a>        if (.a href="+code=err" class="sref">err./a>)>2197./a>                return -.a href="+code=EINVAL" class="sref">EINVAL./a>;>2198./a>>2199./a>        .a href="+code=err" class="sref">err./a> = .a href="+code=of_address_to_resource" class="sref">of_address_to_resource./a>(.a href="+code=np" class="sref">np./a>, 1, &.a href="+code=io" class="sref">io./a>);>2200./a>        if (.a href="+code=err" class="sref">err./a>)>2201./a>                return -.a href="+code=EINVAL" class="sref">EINVAL./a>;>2202./a>>2203./a>        .a href="+code=cf" class="sref">cf./a> = .a href="+code=kzalloc" class="sref">kzalloc./a>(sizeof *.a href="+code=cf" class="sref">cf./a>, .a href="+code=GFP_KERNEL" class="sref">GFP_KERNEL./a>);>2204./a>        if (!.a href="+code=cf" class="sref">cf./a>)>2205./a>                return -.a href="+code=ENOMEM" class="sref">ENOMEM./a>;>2206./a>>2207./a>        .a href="+code=setup_timer" class="sref">setup_timer./a>(&.a href="+code=cf" class="sref">cf./a>->.a href="+code=timer" class="sref">timer./a>, .a href="+code=electra_cf_timer" class="sref">electra_cf_timer./a>, (unsigned long).a href="+code=cf" class="sref">cf./a>);>2208./a>        .a href="+code=cf" class="sref">cf./a>->.a href="+code=irq" class="sref">irq./a> = .a href="+code=NO_IRQ" class="sref">NO_IRQ./a>;>2209./a>>2210./a>        .a href="+code=cf" class="sref">cf./a>->.a href="+code=ofdev" class="sref">ofdev./a> = .a href="+code=ofdev" class="sref">ofdev./a>;>2211./a>        .a href="+code=cf" class="sref">cf./a>->.a href="+code=mem_phys" class="sref">mem_phys./a> = .a href="+code=mem" class="sref">mem./a>..a href="+code=start" class="sref">start./a>;>2212./a>        .a href="+code=cf" class="sref">cf./a>->.a href="+code=mem_size" class="sref">mem_size./a> = .a href="+code=PAGE_ALIGN" class="sref">PAGE_ALIGN./a>(.a href="+code=resource_size" class="sref">resource_size./a>(&.a href="+code=mem" class="sref">mem./a>));>2213./a>        .a href="+code=cf" class="sref">cf./a>->.a href="+code=mem_base" class="sref">mem_base./a> = .a href="+code=ioremap" class="sref">ioremap./a>(.a href="+code=cf" class="sref">cf./a>->.a href="+code=mem_phys" class="sref">mem_phys./a>, .a href="+code=cf" class="sref">cf./a>->.a href="+code=mem_size" class="sref">mem_size./a>);>2214./a>        .a href="+code=cf" class="sref">cf./a>->.a href="+code=io_size" class="sref">io_size./a> = .a href="+code=PAGE_ALIGN" class="sref">PAGE_ALIGN./a>(.a href="+code=resource_size" class="sref">resource_size./a>(&.a href="+code=io" class="sref">io./a>));>2215./a>>2216./a>        .a href="+code=area" class="sref">area./a> = .a href="+code=__get_vm_area" class="sref">__get_vm_area./a>(.a href="+code=cf" class="sref">cf./a>->.a href="+code=io_size" class="sref">io_size./a>, 0, .a href="+code=PHB_IO_BASE" class="sref">PHB_IO_BASE./a>, .a href="+code=PHB_IO_END" class="sref">PHB_IO_END./a>);>2217./a>        if (.a href="+code=area" class="sref">area./a> == .a href="+code=NULL" class="sref">NULL./a>)>2218./a>                return -.a href="+code=ENOMEM" class="sref">ENOMEM./a>;>2219./a>>2220./a>        .a href="+code=cf" class="sref">cf./a>->.a href="+code=io_virt" class="sref">io_virt./a> = (void .a href="+code=__iomem" class="sref">__iomem./a> *)(.a href="+code=area" class="sref">area./a>->.a href="+code=addr" class="sref">addr./a>);>2221./a>>2222./a>        .a href="+code=cf" class="sref">cf./a>->.a href="+code=gpio_base" class="sref">gpio_base./a> = .a href="+code=ioremap" class="sref">ioremap./a>(0xfc103000, 0x1000);>2223./a>        .a href="+code=dev_set_drvdata" class="sref">dev_set_drvdata./a>(.a href="+code=device" class="sref">device./a>, .a href="+code=cf" class="sref">cf./a>);>2224./a>>2225./a>        if (!.a href="+code=cf" class="sref">cf./a>->.a href="+code=mem_base" class="sref">mem_base./a> || !.a href="+code=cf" class="sref">cf./a>->.a href="+code=io_virt" class="sref">io_virt./a> || !.a href="+code=cf" class="sref">cf./a>->.a href="+code=gpio_base" class="sref">gpio_base./a> ||>2226./a>            (.a href="+code=__ioremap_at" class="sref">__ioremap_at./a>(.a href="+code=io" class="sref">io./a>..a href="+code=start" class="sref">start./a>, .a href="+code=cf" class="sref">cf./a>->.a href="+code=io_virt" class="sref">io_virt./a>, .a href="+code=cf" class="sref">cf./a>->.a href="+code=io_size" class="sref">io_size./a>,>2227./a>                .a href="+code=_PAGE_NO_CACHE" class="sref">_PAGE_NO_CACHE./a> | .a href="+code=_PAGE_GUARDED" class="sref">_PAGE_GUARDED./a>) == .a href="+code=NULL" class="sref">NULL./a>)) {>2228./a>                .a href="+code=dev_err" class="sref">dev_err./a>(.a href="+code=device" class="sref">device./a>, .spa  class="string">"can't ioremap ranges\n"./spa  );>2229./a>                .a href="+code=status" class="sref">status./a> = -.a href="+code=ENOMEM" class="sref">ENOMEM./a>;>2230./a>                goto .a href="+code=fail1" class="sref">fail1./a>;>2231./a>        }>2232./a>>2233./a>>2234./a>        .a href="+code=cf" class="sref">cf./a>->.a href="+code=io_base" class="sref">io_base./a> = (unsigned long).a href="+code=cf" class="sref">cf./a>->.a href="+code=io_virt" class="sref">io_virt./a> - .a href="+code=VMALLOC_END" class="sref">VMALLOC_END./a>;>2235./a>>2236./a>        .a href="+code=cf" class="sref">cf./a>->.a href="+code=iomem" class="sref">iomem./a>..a href="+code=start" class="sref">start./a> = (unsigned long).a href="+code=cf" class="sref">cf./a>->.a href="+code=mem_base" class="sref">mem_base./a>;>2237./a>        .a href="+code=cf" class="sref">cf./a>->.a href="+code=iomem" class="sref">iomem./a>..a href="+code=end" class="sref">end./a> = (unsigned long).a href="+code=cf" class="sref">cf./a>->.a href="+code=mem_base" class="sref">mem_base./a> + (.a href="+code=mem" class="sref">mem./a>..a href="+code=end" class="sref">end./a> - .a href="+code=mem" class="sref">mem./a>..a href="+code=start" class="sref">start./a>);>2238./a>        .a href="+code=cf" class="sref">cf./a>->.a href="+code=iomem" class="sref">iomem./a>..a href="+code=flags" class="sref">flags./a> = .a href="+code=IORESOURCE_MEM" class="sref">IORESOURCE_MEM./a>;>2239./a>>2240./a>        .a href="+code=cf" class="sref">cf./a>->.a href="+code=irq" class="sref">irq./a> = .a href="+code=irq_of_parse_and_map" class="sref">irq_of_parse_and_map./a>(.a href="+code=np" class="sref">np./a>, 0);>2241./a>>2242./a>        .a href="+code=status" class="sref">status./a> = .a href="+code=request_irq" class="sref">request_irq./a>(.a href="+code=cf" class="sref">cf./a>->.a href="+code=irq" class="sref">irq./a>, .a href="+code=electra_cf_irq" class="sref">electra_cf_irq./a>, .a href="+code=IRQF_SHARED" class="sref">IRQF_SHARED./a>,>2243./a>                             .a href="+code=driver_nami" class="sref">driver_nami./a>, .a href="+code=cf" class="sref">cf./a>);>2244./a>        if (.a href="+code=status" class="sref">status./a> < 0) {>2245./a>                .a href="+code=dev_err" class="sref">dev_err./a>(.a href="+code=device" class="sref">device./a>, .spa  class="string">"request_irq failed\n"./spa  );>2246./a>                goto .a href="+code=fail1" class="sref">fail1./a>;>2247./a>        }>2270./a>de=irdonL24n2class="sref">el23L248">227gs &="line" namionL14iomem./a>s &="line" nami3_">__iL14iomem./a>s &#class="line" namionL245">2245./a>  mcia_socket" class="sref">pcmcia_socke13f="+code=amionL194">2194cmcia_socke13f="+code=amionL194">2194cmcia_sock248">227gs &="line" namionL14iomem.nL163" class="line" namionL163">2163./13)>;>cf./a>->.a href="+code=irq" class=amionL228">2228./a>          rd-det" c-hrefcode=pr_debug"   .a href="+code=_PAGE_NO_CACHE" class="sre3f="+code=amionL194">2194cmcia_socke13f="+ 0);>;>2217./a>        iivers/pcm2ia/electra_cf.c#L152" id2nL15225="+code=IRQF_SHARED" t_irq failed\n"./spa  );>2233./a>>cf./a>->.a href=det" ccia/ hr"sref">status./a>;>VMALLOC_END="+code=p2mcia_socket" class="sref2>pcmc25#L235" idonL235" class="line>;>cf./a>->.a href="+code=irq" class=amionL228">2228./a>          rd-vsense-hrefcode=pr_debug"   .a href="+code=_PAGE_NO_CACHE" class="sre3f="+code=amionL194">2194cmcia_socke13f="+ine" namird_io_map" class="sref">2ccard25f="+code=PHB_IO_Eclass="line" nam>;>2217./a>        iiref="drivef="drivers/pcmcia/elect2a_cf.25 == .a href="+code=NUt_irq failed\n"./spa  );>2270./a>de=irdonL24n2class="shref=vsense>cf./a>->.a href=vsensecia/ hr"sref">status./a>;>2152./a>}>;>cf./a>->.a href="+code=irq" class=amionL228">2228./a>          rd-3v-hrefcode=pr_debug"   .a href="+code=_PAGE_NO_CACHE" class="sre3f="+code=amionL194">2194cmcia_socke13f="="+code=p2mcia_socket" class="sref2>pcmc26#L151" idonL124" class="line" nam>;>2217./a>        ie=pccard_2em_map" class="sref">pcc2rd_me26="+code=IRQF_SHARED" t_irq failed\n"./spa  );>2233./a>>status./a>;>elec2ra_cf2socket./a> *.a href="+code=cf" class="sref">c2./a>;>cf./a>->.a href="+code=irq" class=amionL228">2228./a>          rd-5v-hrefcode=pr_debug"   .a href="+code=_PAGE_NO_CACHE" class="sre3f="+code=amionL194">2194cmcia_socke13f="=ine" nami" class="sref">map./a>-&2t;.a 26f="+code=PHB_IO_Eclass="line" nam>;>2217./a>        i namionL127">2167./a>             2  ret26 == .a href="+code=NUt_irq failed\n"./spa  );>electra_cf_so2ket./2>, .a href="+code=socket" clac#L146" idonL146" class="line" namionL146">2146./a>        .a href="+code=gpihr"sref">status./a>;>cf./2>->27L159" idonL159" class="line" namionL159">2152_ACTIVE" 2lass="sref">MAP_ACTIVE./2>|.a 27a> = .a href="+code=ofdev" class="sref">ofdev./a>;>el23L248">227gs &="line" namionL14iomem"+coffs>el23L248">227gs "+coffs>eL14iomem./a>s &#class="line" namionL245">2245./a>  mcia_socket" clia/electra_cf.c#L234" idonL234" electra_cf.c#L191" idonL191" class="line2 "+code=p2ss="sref">flags./a> &2 .a h27onL231" class="line" namionL231">2231./a>    lass="sre2">map./a>->.a href="+2ode=s2atic_start" cls="sref">gpio./a> |= 1<&l27./rve chip-s1">22l27gtra_t; (.a href="+code=cf" class="sref">cf./a>->.a2ivers/pcm2ia/electra_cf.c#L173" id2nL17327f="+code=GFP_KERNEL" class="sref"        ="+c27gtraL242" idonL242" class="="+c27gtrae" namionL242">2242./a>        .a href="+code=status" class="srss="sref">mem_base./a> = .a href="+code=ioremap" class="sref">ioremap./a>(.a href="+code=cf" class="sref">cf./a>->.a href="+codcode=ioremap" cla,>_PAGE_NO_CACHE./a> | .a href="+code=_PAGn 0;>statusquot;./spa  );>2135./a>  ./a> < 0) {>2245./a>        C       .a245im a horyl27gtracode=dev_err" class="sref">dev_err./a>(.a href="+code=devef">pccar2_opera"
	 s./a> .a href=2+code27;.a href="+code=io_sit_irq failed\n"./spa  );>fail1./a>;>IORESOURCE_MEM         2   = .a href="+code=elec2ra_cf28, 1, &.a hrefEL" class="sref"        27gtraL242" idonL242" class="27gtrae" namionL242">2242./a>        .a href="+code=status" class="srlia/electra_cf.c#L234" idonL234" ef="+code=start" class="sref">start./a>, .a href="+code=cf" class="sref">cf./a>->.a href="+ode=ioremap" cla,>_PAGE_NO_CACHE./a> | .a href="+code=_PAG         2   = .a href="+code=elec2ra_cf28     if (.a href="+cos="sref">statusquot;./spa  );>MAcode=MAP_ATTRIB" class="sref">MAcode=MAP_ATTRIB" class="sref">MAcode=MAP_ATTRIB" class="sref">MAcode=MAP_ATTRIB" class="sref"sc/Ohref="+code=_PAG         2   = .a href="+code=eoacode=_PAG         2   = .a href="+coode=_PAG       22namionL201">2201a/electra_cf.c#L4==_PAG       22namionL201">2201a/eleo./a>->.a href="+codcode=ioremap" clartya4) d2" idohref=284  = .a href="+cod2=elec2ra_cf_ss_init""+code=fail1" cstruct2.a2href="+code=platform_dev2ce" c28 class="sref">elec2ra_cf2socket./a> *.a href=ofdev" cl2ss="sref">ofdev./a>)>223./a>;>el23L248">227gs ownimer" class="srefownim>el23L248">227gs "+cofTHIS_MODUL" class="sref">iTHIS_MODUL"   22namionL201">2201a/eleo./a>->.a href="+rr./a>(.adevice./a> = &.a hre2="+co28 class="sref">cf./a>->.a href="+code=mem_base" class="sref">mem_base./a>;>el23L248">227gs ef="+code=device_node" class="sref">devicparstargpihr"sref">staarsta>el23L26" idonL186" class="line" namionL186">2186./a>        struct2.a href="+code=device" class="sref">device./a> *.a href="+code=device" cl2 class="s2ef">ofdev./a>->.a hre2="+co28ode=mem" class="sref">mem./a>..a href="+code=start" class="sref">start../a>;>el23L248">227gs o176" idonL176" clnamionL1766" idonL186" class="class="srefL176" idonL176" class="line" namionLf">device./a> *.a href="+code=device" cl2 ass="srefhref="+code=electra_cf_s2cket"28rivers/pcmcia/electra_cf.c#L248" idonL248" class="line" namionL248">2270./a>de=irdonL24n2class="sref">el23L248">227gs ./a>->L176" idonL176" cl./a>->L17ionL1766" idonL186" class="">2175._cf.c#LL176" idonL176" cl">2175._cf.c#LL17ionLf">device./a> *.a href="+code=device" cl2=resource2 class="sref">resource./2> .a 29rivers/pcmcia/electra_cf.c#L239" idonL239" class="line" namionL239">2230./a>de=irdonL24n2class="sref">el23L248">227gs fetus./ara_cf.c#L4==_PAGetus./a>el23L248">227gs "+cofSS_CAP_PCCARf" class="sref">SS_CAP_PCCARf>el23="drivers/pcmcia/SS_CAP_STATIC_MAP" class="sref">SS_CAP_STATIC_MAP>el23=">device./a> *.a href="+code=device" cl2=/a> | .a L190" idonL190" class="l2ne" n29a href="+code=elec2ra"+code=electr2_cf_s28f="+code=MSS_CAP_MEM14" class="line" namiSS_CAP_MEM14" clionLf">device./a> *.a href="+code=device" cl2=1" idonL191" class="line" namionL291">229rivers/pcmcia/electra_cf.c#L221" idonL221" class="line" namionL221">2220./a>de=irdonL24n2class="sref">el23L248">227gs ase.(.a href="+code=cf" se.(.a >el23L2" class="line" namionL172">2172./a>          2ia/electr2_cf.c#L192" idonL192" cl2ss="l29rivers/pcmcia/electra_cf.c#L232" idonL232" cl93./a>   2    struct2.a href="+cod2=vm_s29ivers/pcmcia/elect2a_cf.26#L241" idonL241" class="line" namionL241">2241./a>>f.c#L2gtraLst hrL161" class="line" namionL16traLst hrL161" e=MAP06./a>>container_of./a>(.a href="+code=s" class="sref">s./a>, struct2de=area" 2lass="sref">area./a>;>driver_nami./a>, .a href="+code=cf" class="sref">cf./a>);>2135./a>  ./a> < 0) {>                .a href="+code=dev_err" class="sref">dev_ia/electr2_cf.c#L196" idonL196" cl2ss="l2ne" namionL196">2196./22namionL201">2201a/elec3ra_cf.c#L4==_PAGlec3ionLf">device./a> *.a href="+code=device" cl2=class="s297" class="line" namionL297">229   = .a href="+cod2=elec2ra_cf_ss_init""+code=fail1" cINVAL" cl2ss="sref">EINVAL./a>;>of_add3ess_to_resource./a>(.a h3ef="+30rivers/pcmcia/electra_cf.c#La>  inf/pcmcia/electra_a>  inf/> < 0) {> 2" mionLlx io2" mionLllx i149" idon">2149./a>        .a href="+code=pr_debug" class="sref"3ia/electr3_cf.c#L200" idonL200" cl3ss="l3ne" namionL200">2200./"sref">ofdev./a> = .a href="+code=ofdev" class="sref">ofdev./a>;>2226./a>            (.a href="+code=__ioremap_at" class="sref">__i>2245./a>  mcia_socket"  .a href="+code=dev_err" class="sref">dev301" idonL301" class="line" namionL301">2301./a>                return -.a href="+code=3INVAL" cl3ss="sref">EINVAL./a>;>dev304VAL" cl3s   struct2.a href="+cod3e=cf"30ivers/pcmcia/elect2a_cf.26#L"+code=setup_timer" class="sref">setup_timer./a>(&a(;.a href="+code=cf" class="sref">cf./a>->.a href="+code=timer" class="sref">timer./a>, .a h3cia/elect3a_cf.c#L204" idonL204" c3ass="3ine" namionL20ef="+code=static_start" class="sref">static_star305" idonL305" class="line" namionL305">2305./a>                return -.a href="+code=3NOMEM" cl3ss="sref">ENOMEM./a>;>2201a/elec3ra_cf.c#L4==_PAGlec3ionL:                return -.a href="+code=3N8MEM" cl3s7" class="line" namionL3sref"3electra_cf_timer./a>, (unsignra haserefEL" class="sref"      haserefEL" 2" idonL242" class="27gtrae" namionL242">2242./a>        .a href="+code=status" class="srlia/electra_cf.c#L234" idonL234" ef="+code=start" class="sref">start./a>, .a href="+code=cf" class="+code=timer" class="sref">timer./a>, .a h3c9MEM" cl3ss="sref">EINVAL./a>;>2201a/electra_cf.c#L4==_PAG       2:                return -.a href="+code=3O_IRQ" cl3ss="sref">NO_IRQ./a>;>2242./a>        .a href="+code=status" class="srss="sref">mem_base./a> = .a href="+code=ioremap" class="sref">ioremap./a>(.a href="+code=cf" class="sref+code=timer" class="sref">timer./a>, .a h3" class="3ref">cf./a>->.a href=3+code3ofdev";.a href="+code=io_sit_irq failed\n"./s:                return -.a href="+code=3O1" idonL3"sref">mem_phys./a> = .a3href=31ocket" class="sre>            (.a href="+code=__ioremap_at" class="sref">__i>2245./a>  mcia_socket"  !cia/electra_cf.c#L208" idonL208" class="line" na;>(3a href="+code=resource_s3ze" c31f="+coode=_PAG       ;.a href="+code=ree&="line" namionL14i=ree&="l2" idonL242" class="27gtrae" namionL242">2242./a>        .a href="+code=status" class="sref">status./a> =f">cf./a>->.a href="+code=timer" class="sref">timer./a>, .a h3s="sref">3em_phys./a>, .a href="+c3de=cf31de=device" class="sref">device./a>, .a href=3_ALIGN./a3(.a href="+code=resource3size"31rivers/pcmciasref">driver_nami./line" namionL234">2234./a>        .a href="+code=cf" class="sref">cf./a>->>io./a>));>gpiouno_base2" idonL242" class="27gtrae" namionL242">2242./a>        .a href="emap_at./a>(.a href="+code=io" class="sref">io./a>..a href="+code=start" class="sref">start./a>, .a href="+code=cf" class="+code=timer" class="sref">timer./a>, .a h3sOMEM" cl3f="+code=PHB_IO_BASE" cl3ss="s3ef">PHB_IO_BASE./a>, .a href="+cohref="+code=cf" class="sref">cf./a>->.a href="+code=iomem" class="sref">iom;>        if (.a hr3f="+c3de=area" class="sref">ass="sref">start.uno_b.a href="+code=cfuno_bdonL242" class="="+c27gtrae" namionL242">2242./a>        .a href="+="+code=iomem" class="sref">iom;code=timer" class="sref">timer./a>, .a h3s9MEM" cl318" class="line" namionL318">2319">PHB_IO_BASE./a>, .a href="+cohref="+code=cf" class="sref">cf./a>->.a || !.a href="+code=cf" class="sref">c;>ENOMEM./a>;>statusass="sref">start.uno_b.a href="+code=cfuno_bdonL242" class="="+c27gtrae" namionL242">2242./a>        .a hre|| !.a href="+code=cf" class="sref">c;code=timer" class="sref">timer./a>, .a h3lass="sre3">__iomem./a> *)(.a href3"+cod32sref">MAP_ACTIVE./2>|.a 27a>"sref">onL1_wakeub.a href="+code="sref">onL1_wakeube=MAP06./a>>2186./a>        struct2.a href="+code=device" class="sret;.a href="+code=irq" class="sref">irq./a> =3e=addr" c3ass="sref">addr./a>);>22a href="+code=irq" class="sref">irq./a> =3eIGN./a>(3pio_base" class="sref">g3io_ba3e./a> = .a hreef="+co">driver_nami./a>, .a href="+code=cf" class="s href="+code=irq" class="sref">irq./a> =3e="sref">3dev_set_drvdata./a>(.a h3ef="+3ode=device" class="sref">device./a>, .a href=3+code=cf"3class="sref">cf./a>);>io_vi3t./a> || !.a href="+code3cf" c325./a>                return -.a href="+code=3class="sr3f">io_virt./a>, .a href=3+code3cf" cls/pcmcia/electra_cf.c#L183" idoex183" class="line" namiex18/a> =elect2a_cf.26#L"+code=seturemo  2" idonL202" cl"+code=seturemo  donL2sline" namionL184">2184./a>static int .a href="+code=__devinit" class="sref">__devinit./a> .a href="+code=electra_cf_probi" class="sref">electra_cf_probi./a>3./a> | .a3href="+code=_PAGE_GUARDE3" cla3s="srea>);>de32lass="sref">electra_cf_socket./a>  nL185" class="line" namionL185">2185./a>{>2186./a>        struct2.a href="+code=device" class="sref">device./a> *.a href="+code=device" cl39./a>    3           .a href="+cod3=stat3s" class="sreflectra_cf_socket./a>  "+code=setuode" class="sref">of_node./a>;>2188./a>       3.c#L230" 3donL230" class="line" na3ionL233="sref">irq_of_parse_and_map./a>(.a href="+c3lass="sre3">fail1./a>;>2241./a>>a>  gass="sref">ioremap./a>(0xfc10g000, 0x1000);>irq./a> =3" namionL331">2231./a>        }>2232./a>>223ect   2" idonL202" clect    namionde=static_start" class="sref">static_star3f./a>->3.a href="+code=io_virt" 3lass=33rivers/pcmcia/electra_cf.c#LmionL16untraLst hrL161" class="line" namionL16untraLst hrL161" e=MAP06./a>>container_of./a>(.a href="+code=s" class="sref">s./a>, struct3" class="3ref">VMALLOC_END./a>;>2242./a>        .a href="+code=status" class="sref">status./a> =f">cf./a>->.a href="+code=timer" class="sref">timer./a>, .a h3rt./a> = 3unsigned long).a href="+3ode=c3" class="sref">cf./a>->.a delmer./a_syn>>2207./a+code=timer" class="sref">timer./a>, .a h3r/a> | .a3ass="sref">end./a> - .a 3ref="33mcia/electra_cf.c#L247" idonL247" class="lin3mem./a>..3 href="+code=flags" clas3="sre33rivers/pcmcia/electra_cf.c#Lgpiouno_base" class="sref">gpiouno_base2" idonL242" class="27gtrae" namionL242">2242./a>        .a href="emap_at./a>(.a href="+code=io" class="sref">io./a>..a href="+code=start" class="sref">start./a>, .a href="+code=cf" class="+code=timer" class="sref">time class="lin3lass="sre3">IORESOURCE_MEM./a>;>2242./a>        .a href="+="+code=iomem" class="sref">iom;code=timer" class="sref">timer./a>, .a h3.a href="3code=irq_of_parse_and_ma3" cla34sref">MAP_ACTIVE./2>|.a 27a>t.uno_b.a href="+code=cfuno_bdonL242" class="="+c27gtrae" namionL242">2242./a>        .a hre|| !.a href="+code=cf" class="sref">c;code=timer" class="sref">timer./a>, .a h3de=np" cl3ss="sref">np./a>, 0);>2242./a>        .a href="+code=status" class="srss="sref">mem_base./a> = .a href="+code=ioremap" class="sref">ioremap./a>(.a href="+code=cf" class="sref+code=timer" class="sref">timer./a>, .a h3d namionL3e=electra_cf_irq" class=3sref"34rivers/pcmcia/electra_cf.c#Lra haserefEL" class="sref"      haserefEL" 2" idonL242" class="27gtrae" namionL242">2242./a>        .a href="+code=status" class="srlia/electra_cf.c#L234" idonL234" ef="+code=start" class="sref">start./a>, .a href="+code=cf" class="+code=timer" class="sref">timer./a>, .a h3dss="line3          .a href="+code3drive34de=device" class="sref">device./a>, .a href=3#L244" id3nL244" class="line" nami3nL24434rivers/pcmcia/electra_cf.c#Lk=reeode=device" clak=reedonL242" class="="+c27gtrae" namionL242">22a href="+code=irq" class="sref">irq./a> =3err./a>(.3 href="+code=device" cla3s="sr345./a>                return -.a href="+code=3.c#L246" 3donL246" class="line" na3ionL236">2246./a>   ef="+code=static_start" class="sref">static_star3lass="sre3">fail1./a>;>2247./a>        }>2193cmcia_socke13f="+code=am3onL193">2194s/pcmciconstflectra_cf_socket./a>  of_"sref">ong).a href="+codof_"sref">on/a> =elect2a_cf.26#L"+code=setumatchlass="sref">of_node./a>;> []iona>);>3163./13)>);>        .a href="+code=pr_debug" class="sref"3ionL217">3217./a>        iivers/pc32ia/e3ectra_cf.c#L15}   .a href="+code=pr_debug" class="sref"3iss="line3donL246" class="n 0;>static_star3" class="3ref">VMALLOC_END="+code=32mcia3socket26" idonL226" cMODUL"_DEVICE_TABL" class="sref">iMODUL"_DEVICE_TABL"donL242" class="="+co7gtrae" namionL2oamionL203">2203./a>   "+code=setumatchlass="sref">of_node./a>;> a href="+code=irq" class="sref">irq./a> =3L194">2193cmcia_socke13f="+ine" na3ird_i3_map" href="+code=irq" class="sref">irq./a> =3Lass="sre3217./a>        iiref="dr3vef="3riverss/pcmcisline" namionL184">2184./a>stati=irq" .a href="+code=__devinit=irq"/a> =elect2a_cf.26#L"+code=setui=irq" .a href="+code"+code=setui=irq" namiona>);>227gs e=irq" .a href="+codei=irq" namiona>);>statusel23L248">227gs ="+ode=ioremap" claef="driv" nachar *e=cf" class="sre.a href="+ode=ioremap" cla,>2152./a>}>2200./el23L248">227gs ownimer" class="srefownim>el23L248">227gs "+cofTHIS_MODUL" class="sref">iTHIS_MODUL"   2   .a href="+code=pr_debug" class="sref"3se=np" cl3cmcia_socke13f="="+code=32mcia36href="+code=electr2_c226" idonL226" co>el23L248">227gs "+cof"+code=setumatchlass="sref">of_node./a>;>    .a href="+code=pr_debug" class="sref"3sonL217">3217./a>        ie=pccard32em_m36ctra_cf.c#L15}   .a href="+code=pr_debug" class="sref"3.c#L246" 3donL246" class="/a>)>devicprobt .a href="+code=robtvers/pcmL248">227gs "+cof"+code=setuprobt .a href="+code"+code=setuprobt/a>    .a href="+code=pr_debug" class="sref"3sL244" id391" class="line2n/a>}>devicremo  2" idonL202" clremo  donLpcmL248">227gs "+cof"+code=seturemo  2" idonL202" cl"+code=seturemo  donL   .a href="+code=pr_debug" class="sref"3s class="3 class="sref">c2./a>;>static_star3L194">2193cmcia_socke13f="=ine" na3i" cl36map" href="+code=irq" class="sref">irq./a> =3ionL217">3217./a>        i namionL327">2367./a>="sref">ioremap.odule_4./a>stati=irq" .a href="+code.odule_4./a>stati=irq"donL242" class="="+c"+code=setui=irq" .a href="+code"+code=setui=irq" nama href="+code=irq" class="sref">irq./a> =3.c#L246" 3donL246" class="socket" 32ass=36a href="+code=elec2ra_cf27e=IORESOURCE_MEM" 391" idonL391" class="line2 href="+32de=c3" clas26" idonL226" cMODUL"_LICEN_area" class="sreMODUL"_LICEN_adonL24 idonL245" class="line" naGPL              .a href="+code=dev_err" class="sref">dev3ss="line"3namionL159">2152_ACTIVE"32lass37fdev";.a href="+codeMODUL"_AUTHORrea" class="sreMODUL"_AUTHORdonLp24 idonL245" class="line" naOlof Johanssonref">olof@lixom.net" cl              .a href="+code=dev_err" class="sref">dev3se=np" cl391" class="line2 "+code=32ss="3ref">f26" idonL226" cMODUL"_DESCRIPTIOlass="line" namiMODUL"_DESCRIPTIOldonL24 idonL245" class="line" naPA Semi Ess="sr CF ode=de              .a href="+code=dev_err" class="sref">dev3sonL217">331">2231./a>    lass="sr32">ma3./a>-&




2231./afootq" > The original LXR software by the href="+chttp://a>->>stge.net/projs="s/lx" >LXR tic_unihref=", this experi_staal =devionrby href="+cmailto:lx"@linux.no">lx"@linux.noef=".
2231./asubfootq" > lx".linux.no kindly hostedrby href="+chttp://www.redpill-linpro.no">Redpill Linpro ASef=", provider of Linuxiconsults=" and tya pcm&l27="srice27=ince 1995.