linux/drivers/pcmcia/cs.c
<<
2 /spaon> /formn> a 2 href="../linux+v3 v39/drivers/pcmcia/cs.c"> 2 img src="../.static/gfx/right.png" alt=">>"> /spaon> spao class="lxr_search"> 2 2 input typ2alhidden" nam2alnavtarget" 2132al"> 2 input typ2altext" nam2alsearch" idalsearch"> 2 butt." typ2alsubmit">Search /formn> /spaon> spao class="lxr_prefs"n> a href="+prefs?return=drivers/pcmcia/cs.c" 2 onclick="return ajax_prefs();"> 2 Prefs> /a> /spaon>2 /divn>2 form acptio="ajax+*" method="post" onsubmit="return false;"> input typ2alhidden" nam2alajax_lookup" idalajax_lookup" 2132al"> 2 /formn> 2 div class="headingbott.m">2 2 div idalsearch_results" class="search_results"> n>2 /divn> div idalcontent">> div idalfile_contents"n
   1 /a> spao class="comment">/* /spaon>   2 /a> spao class="comment"> * cs.c -- Kernel Card Services - core services /spaon>   3 /a> spao class="comment"> * /spaon>   4 /a> spao class="comment"> * This program is free software; you cao redistribute it and/or modify /spaon>   5 /a> spao class="comment"> * it under the terms of the GNU General Public License vers2."
2 as /spaon>   6 /a> spao class="comment"> * published by the Free Software Foundaptio. /spaon>   7 /a> spao class="comment"> * /spaon>   8 /a> spao class="comment"> * The initial developer of the original code is David A. Hinds /spaon>   9 /a> spao class="comment"> * <dahinds@users.sourceforge.net>.
 Porptios created by David A. Hinds /spaon>  /opta> spao class="comment"> * are Copyright (C) 1999 David A. Hinds.
 All Rights Reserved. /spaon>  11 /a> spao class="comment"> * /spaon>  12 /a> spao class="comment"> * (C) 1999             David A. Hinds /spaon>  13 /a> spao class="comment"> */ /spaon>  14 /a>>  15 /a>#include <linux/module.h /a>>>  16 /a>#include <linux/moduleparam.h /a>>>  17 /a>#include <linux/init.h /a>>>  18 /a>#include <linux/kernel.h /a>>>  19 /a>#include <linux/string.h /a>>>  20 /a>#include <linux/major.h /a>>>  21 /a>#include <linux/errno.h /a>>>  22 /a>#include <linux/slab.h /a>>>  23 /a>#include <linux/mm.h /a>>>  24 /a>#include <linux/interrupt.h /a>>>  25 /a>#include <linux/timer.h /a>>>  26 /a>#include <linux/ioporp.h /a>>>  27 /a>#include <linux/delay.h /a>>>  28 /a>#include <linux/pm.h /a>>>  29 /a>#include <linux/device.h /a>>>  30 /a>#include <linux/kthread.h /a>>>  31 /a>#include <linux/freezer.h /a>>>  32 /a>#include <asm/irq.h /a>>>  33 /a>>  34 /a>#include <pcmcia/ss.h /a>>>  35 /a>#include <pcmcia/cistpl.h /a>>>  36 /a>#include <pcmcia/cisreg.h /a>>>  37 /a>#include <pcmcia/ds.h /a>>>  38 /a>#include "cs_internal.h /a>">  39 /a>>  40 /a>>  41 /a> spao class="comment">/* Module parameters */ /spaon>  42 /a>>  43 /a> a href="+code=MODULE_AUTHOR" class="sref">MODULE_AUTHOR /a>( spao class="string">"David Hinds <dahinds@users.sourceforge.net>"  44 /a> a href="+code=MODULE_DESCRIPTION" class="sref">MODULE_DESCRIPTION /a>( spao class="string">"Linux Kernel Card Services"  45 /a> a href="+code=MODULE_LICENSE" class="sref">MODULE_LICENSE /a>( spao class="string">"GPL"  46 /a>>  47 /a>#define  a href="+code=INT_MODULE_PARM" class="sref">INT_MODULE_PARM /a>( a href="+code=n" class="sref">n /a>,  a href="+code=v" class="sref">v /a>) static int  a href="+code=n" class="sref">n /a> =  a href="+code=v" class="sref">v /a>;  a href="+code=module_param" class="sref">module_param /a>( a href="+code=n" class="sref">n /a>, int, 0444)>  48 /a>>  49 /a> a href="+code=INT_MODULE_PARM" class="sref">INT_MODULE_PARM /a>( a href="+code=setup_delay" class="sref">setup_delay /a>,    10);             spao class="comment">/* centiseconds */ /spaon>  50 /a> a href="+code=INT_MODULE_PARM" class="sref">INT_MODULE_PARM /a>( a href="+code=resume_delay" class="sref">resume_delay /a>,   20);             spao class="comment">/* centiseconds */ /spaon>  51 /a> a href="+code=INT_MODULE_PARM" class="sref">INT_MODULE_PARM /a>( a href="+code=shutdown_delay" class="sref">shutdown_delay /a>, 3);              spao class="comment">/* centiseconds */ /spaon>  52 /a> a href="+code=INT_MODULE_PARM" class="sref">INT_MODULE_PARM /a>( a href="+code=vcc_settle" class="sref">vcc_settle /a>,     40);             spao class="comment">/* centiseconds */ /spaon>  53 /a> a href="+code=INT_MODULE_PARM" class="sref">INT_MODULE_PARM /a>( a href="+code=reset_time" class="sref">reset_time /a>,     10);             spao class="comment">/* usecs */ /spaon>  54 /a> a href="+code=INT_MODULE_PARM" class="sref">INT_MODULE_PARM /a>( a href="+code=unreset_delay" class="sref">unreset_delay /a>,  10);             spao class="comment">/* centiseconds */ /spaon>  55 /a> a href="+code=INT_MODULE_PARM" class="sref">INT_MODULE_PARM /a>( a href="+code=unreset_check" class="sref">unreset_check /a>,  10);             spao class="comment">/* centiseconds */ /spaon>  56 /a> a href="+code=INT_MODULE_PARM" class="sref">INT_MODULE_PARM /a>( a href="+code=unreset_limit" class="sref">unreset_limit /a>,  30);             spao class="comment">/* unreset_check's */ /spaon>  57 /a>>  58 /a> spao class="comment">/* Access speed for attribute memory windows */ /spaon>  59 /a> a href="+code=INT_MODULE_PARM" class="sref">INT_MODULE_PARM /a>( a href="+code=cis_speed" class="sref">cis_speed /a>,      300);            spao class="comment">/* ns */ /spaon>  60 /a>>  61 /a>>  62 /a> a href="+code=socket_state_t" class="sref">socket_state_t /a>  a href="+code=dead_socket" class="sref">dead_socket /a> = {>  63 /a>        . a href="+code=csc_mask" class="sref">csc_mask /a>       =  a href="+code=SS_DETECT" class="sref">SS_DETECT /a>,>  64 /a>};>  65 /a> a href="+code=EXPORT_SYMBOL" class="sref">EXPORT_SYMBOL /a>( a href="+code=dead_socket" class="sref">dead_socket /a>);>  66 /a>>  67 /a>>  68 /a> spao class="comment">/* List of all sockets, protected by a rwsem */ /spaon>  69 /a> a href="+code=LIST_HEAD" class="sref">LIST_HEAD /a>( a href="+code=pcmcia_socket_list" class="sref">pcmcia_socket_list /a>);>  70 /a> a href="+code=EXPORT_SYMBOL" class="sref">EXPORT_SYMBOL /a>( a href="+code=pcmcia_socket_list" class="sref">pcmcia_socket_list /a>);>  71 /a>>  72 /a> a href="+code=DECLARE_RWSEM" class="sref">DECLARE_RWSEM /a>( a href="+code=pcmcia_socket_list_rwsem" class="sref">pcmcia_socket_list_rwsem /a>);>  73 /a> a href="+code=EXPORT_SYMBOL" class="sref">EXPORT_SYMBOL /a>( a href="+code=pcmcia_socket_list_rwsem" class="sref">pcmcia_socket_list_rwsem /a>);>  74 /a>>  75 /a>>  76 /a>struct  a href="+code=pcmcia_socket" class="sref">pcmcia_socket /a> * a href="+code=pcmcia_get_socket" class="sref">pcmcia_get_socket /a>(struct  a href="+code=pcmcia_socket" class="sref">pcmcia_socket /a> * a href="+code=skt" class="sref">skt /a>)>  77 /a>{>  78 /a>        struct  a href="+code=device" class="sref">device /a> * a href="+code=dev" class="sref">dev /a> =  a href="+code=get_device" class="sref">get_device /a>(& a href="+code=skt" class="sref">skt /a>-> a href="+code=dev" class="sref">dev /a>);>  79 /a>        if (! a href="+code=dev" class="sref">dev /a>)>  80 /a>                return  a href="+code=NULL" class="sref">NULL /a>;>  81 /a>        return  a href="+code=dev_get_drvdata" class="sref">dev_get_drvdata /a>( a href="+code=dev" class="sref">dev /a>);>  82 /a>}>  83 /a> a href="+code=EXPORT_SYMBOL" class="sref">EXPORT_SYMBOL /a>( a href="+code=pcmcia_get_socket" class="sref">pcmcia_get_socket /a>);>  84 /a>>  85 /a>>  86 /a>void  a href="+code=pcmcia_put_socket" class="sref">pcmcia_put_socket /a>(struct  a href="+code=pcmcia_socket" class="sref">pcmcia_socket /a> * a href="+code=skt" class="sref">skt /a>)>  87 /a>{>  88 /a>         a href="+code=put_device" class="sref">put_device /a>(& a href="+code=skt" class="sref">skt /a>-> a href="+code=dev" class="sref">dev /a>);>  89 /a>}>  90 /a> a href="+code=EXPORT_SYMBOL" class="sref">EXPORT_SYMBOL /a>( a href="+code=pcmcia_put_socket" class="sref">pcmcia_put_socket /a>);>  91 /a>>  92 /a>>  93 /a>static void  a href="+code=pcmcia_release_socket" class="sref">pcmcia_release_socket /a>(struct  a href="+code=device" class="sref">device /a> * a href="+code=dev" class="sref">dev /a>)>  94 /a>{>  95 /a>        struct  a href="+code=pcmcia_socket" class="sref">pcmcia_socket /a> * a href="+code=socket" class="sref">socket /a> =  a href="+code=dev_get_drvdata" class="sref">dev_get_drvdata /a>( a href="+code=dev" class="sref">dev /a>);>  96 /a>>  97 /a>         a href="+code=complete" class="sref">complete /a>(& a href="+code=socket" class="sref">socket /a>-> a href="+code=socket_released" class="sref">socket_released /a>);>  98 /a>}>  99 /a>> 100 /a>static int  a href="+code=pccardd" class="sref">pccardd /a>(void * a href="+code=__skt" class="sref">__skt /a>);> 101 /a>> 102 /a> spao class="comment">/** /spaon> 103 /a> spao class="comment"> * pcmcia_register_socket - add a new pcmcia socket device /spaon> 104 /a> spao class="comment"> * @socket: the &socket to register /spaon> 105 /a> spao class="comment"> */ /spaon> 106 /a>int  a href="+code=pcmcia_register_socket" class="sref">pcmcia_register_socket /a>(struct  a href="+code=pcmcia_socket" class="sref">pcmcia_socket /a> * a href="+code=socket" class="sref">socket /a>)> 107 /a>{> 108 /a>        struct  a href="+code=task_struct" class="sref">task_struct /a> * a href="+code=tsk" class="sref">tsk /a>;> 109 /a>        int  a href="+code=ret" class="sref">ret /a>;> 110 /a>> 111 /a>        if (! a href="+code=socket" class="sref">socket /a> || ! a href="+code=socket" class="sref">socket /a>-> a href="+code=ops" class="sref">ops /a> || ! a href="+code=socket" class="sref">socket /a>-> a href="+code=dev" class="sref">dev /a>. a href="+code=parent" class="sref">parent /a> || ! a href="+code=socket" class="sref">socket /a>-> a href="+code=resource_ops" class="sref">resource_ops /a>)> 112 /a>                return - a href="+code=EINVAL" class="sref">EINVAL /a>;> 113 /a>> 114 /a>         a href="+code=dev_dbg" class="sref">dev_dbg /a>(& a href="+code=socket" class="sref">socket /a>-> a href="+code=dev" class="sref">dev /a>,  spao class="string">"pcmcia_register_socket(0x%p)\n"socket /a>-> a href="+code=ops" class="sref">ops /a>);> 115 /a>> 116 /a>         spao class="comment">/* try to obtain a socket number [yes, it gets ugly if we /spaon> 117 /a> spao class="comment">         * register more thao 2^sizeof(unsigned int) pcmcia /spaon> 118 /a> spao class="comment">         * sockets... but the socket number is deprecated /spaon> 119 /a> spao class="comment">         * anyways, so I don't care] */ /spaon> 120 /a>         a href="+code=down_write" class="sref">down_write /a>(& a href="+code=pcmcia_socket_list_rwsem" class="sref">pcmcia_socket_list_rwsem /a>);> 121 /a>        if ( a href="+code=list_empty" class="sref">list_empty /a>(& a href="+code=pcmcia_socket_list" class="sref">pcmcia_socket_list /a>))> 122 /a>                 a href="+code=socket" class="sref">socket /a>-> a href="+code=sock" class="sref">sock /a> = 0;> 123 /a>        else {> 124 /a>                unsigned int  a href="+code=found" class="sref">found /a>,  a href="+code=i" class="sref">i /a> = 1;> 125 /a>                struct  a href="+code=pcmcia_socket" class="sref">pcmcia_socket /a> * a href="+code=tmp" class="sref">tmp /a>;> 126 /a>                do {> 127 /a>                         a href="+code=found" class="sref">found /a> = 1;> 128 /a>                         a href="+code=list_for_each_entry" class="sref">list_for_each_entry /a>( a href="+code=tmp" class="sref">tmp /a>, & a href="+code=pcmcia_socket_list" class="sref">pcmcia_socket_list /a>,  a href="+code=socket_list" class="sref">socket_list /a>) {> 129 /a>                                if ( a href="+code=tmp" class="sref">tmp /a>-> a href="+code=sock" class="sref">sock /a> ==  a href="+code=i" class="sref">i /a>)> 130 /a>                                         a href="+code=found" class="sref">found /a> = 0;> 131 /a>                        }> 132 /a>                         a href="+code=i" class="sref">i /a>++;> 133 /a>                } while (! a href="+code=found" class="sref">found /a>);> 134 /a>                 a href="+code=socket" class="sref">socket /a>-> a href="+code=sock" class="sref">sock /a> =  a href="+code=i" class="sref">i /a> - 1;> 135 /a>        }> 136 /a>         a href="+code=list_add_tail" class="sref">list_add_tail /a>(& a href="+code=socket" class="sref">socket /a>-> a href="+code=socket_list" class="sref">socket_list /a>, & a href="+code=pcmcia_socket_list" class="sref">pcmcia_socket_list /a>);> 137 /a>         a href="+code=up_write" class="sref">up_write /a>(& a href="+code=pcmcia_socket_list_rwsem" class="sref">pcmcia_socket_list_rwsem /a>);> 138 /a>> 139 /a>#ifndef  a href="+code=CONFIG_CARDBUS" class="sref">CONFIG_CARDBUS /a>> 140 /a>         spao class="comment">/* /spaon> 141 /a> spao class="comment">         * If we do not supporp Cardbus, ensure that /spaon> 142 /a> spao class="comment">         * the Cardbus socket capability is disabled. /spaon> 143 /a> spao class="comment">         */ /spaon> 144 /a>         a href="+code=socket" class="sref">socket /a>-> a href="+code=features" class="sref">features /a> &= ~ a href="+code=SS_CAP_CARDBUS" class="sref">SS_CAP_CARDBUS /a>;> 145 /a>#endif> 146 /a>> 147 /a>         spao class="comment">/* set proper 	2132s in socket->dev */ /spaon> 148 /a>         a href="+code=dev_set_drvdata" class="sref">dev_set_drvdata /a>(& a href="+code=socket" class="sref">socket /a>-> a href="+code=dev" class="sref">dev /a>,  a href="+code=socket" class="sref">socket /a>);> 149 /a>         a href="+code=socket" class="sref">socket /a>-> a href="+code=dev" class="sref">dev /a>. a href="+code=class" class="sref">class /a> = & a href="+code=pcmcia_socket_class" class="sref">pcmcia_socket_class /a>;> 150 /a>         a href="+code=dev_set_nam2" class="sref">dev_set_nam2 /a>(& a href="+code=socket" class="sref">socket /a>-> a href="+code=dev" class="sref">dev /a>,  spao class="string">"pcmcia_socket%u"socket /a>-> a href="+code=sock" class="sref">sock /a>);> 151 /a>> 152 /a>         spao class="comment">/* base address = 0, map = 0 */ /spaon> 153 /a>         a href="+code=socket" class="sref">socket /a>-> a href="+code=cis_mem" class="sref">cis_mem /a>. a href="+code=flags" class="sref">flags /a> = 0;> 154 /a>         a href="+code=socket" class="sref">socket /a>-> a href="+code=cis_mem" class="sref">cis_mem /a>. a href="+code=speed" class="sref">speed /a> =  a href="+code=cis_speed" class="sref">cis_speed /a>;> 155 /a>> 156 /a>         a href="+code=INIT_LIST_HEAD" class="sref">INIT_LIST_HEAD /a>(& a href="+code=socket" class="sref">socket /a>-> a href="+code=cis_cache" class="sref">cis_cache /a>);> 157 /a>> 158 /a>         a href="+code=init_completion" class="sref">init_completion /a>(& a href="+code=socket" class="sref">socket /a>-> a href="+code=socket_released" class="sref">socket_released /a>);> 159 /a>         a href="+code=init_completion" class="sref">init_completion /a>(& a href="+code=socket" class="sref">socket /a>-> a href="+code=thread_done" class="sref">thread_done /a>);> 160 /a>         a href="+code=mutex_init" class="sref">mutex_init /a>(& a href="+code=socket" class="sref">socket /a>-> a href="+code=skt_mutex" class="sref">skt_mutex /a>);> 161 /a>         a href="+code=mutex_init" class="sref">mutex_init /a>(& a href="+code=socket" class="sref">socket /a>-> a href="+code=ops_mutex" class="sref">ops_mutex /a>);> 162 /a>         a href="+code=spin_lock_init" class="sref">spin_lock_init /a>(& a href="+code=socket" class="sref">socket /a>-> a href="+code=thread_lock" class="sref">thread_lock /a>);> 163 /a>> 164 /a>        if ( a href="+code=socket" class="sref">socket /a>-> a href="+code=resource_ops" class="sref">resource_ops /a>-> a href="+code=init" class="sref">init /a>) {> 165 /a>                 a href="+code=mutex_lock" class="sref">mutex_lock /a>(& a href="+code=socket" class="sref">socket /a>-> a href="+code=ops_mutex" class="sref">ops_mutex /a>);> 166 /a>                 a href="+code=ret" class="sref">ret /a> =  a href="+code=socket" class="sref">socket /a>-> a href="+code=resource_ops" class="sref">resource_ops /a>-> a href="+code=init" class="sref">init /a>( a href="+code=socket" class="sref">socket /a>);> 167 /a>                 a href="+code=mutex_unlock" class="sref">mutex_unlock /a>(& a href="+code=socket" class="sref">socket /a>-> a href="+code=ops_mutex" class="sref">ops_mutex /a>);> 168 /a>                if ( a href="+code=ret" class="sref">ret /a>)> 169 /a>                        goto  a href="+code=err" class="sref">err /a>;> 170 /a>        }> 171 /a>> 172 /a>         a href="+code=tsk" class="sref">tsk /a> =  a href="+code=kthread_run" class="sref">kthread_run /a>( a href="+code=pccardd" class="sref">pccardd /a>,  a href="+code=socket" class="sref">socket /a>,  spao class="string">"pccardd" 173 /a>        if ( a href="+code=IS_ERR" class="sref">IS_ERR /a>( a href="+code=tsk" class="sref">tsk /a>)) {> 174 /a>                 a href="+code=ret" class="sref">ret /a> =  a href="+code=PTR_ERR" class="sref">PTR_ERR /a>( a href="+code=tsk" class="sref">tsk /a>);> 175 /a>                goto  a href="+code=err" class="sref">err /a>;> 176 /a>        }> 177 /a>> 178 /a>         a href="+code=wait_for_completion" class="sref">wait_for_completion /a>(& a href="+code=socket" class="sref">socket /a>-> a href="+code=thread_done" class="sref">thread_done /a>);> 179 /a>        if (! a href="+code=socket" class="sref">socket /a>-> a href="+code=thread" class="sref">thread /a>) {> 180 /a>                 a href="+code=dev_printk" class="sref">dev_printk /a>( a href="+code=KERN_WARNING" class="sref">KERN_WARNING /a>, & a href="+code=socket" class="sref">socket /a>-> a href="+code=dev" class="sref">dev /a>,> 181 /a>                            spao class="string">"PCMCIA: warning: socket thread did not start\n" 182 /a>                return - a href="+code=EIO" class="sref">EIO /a>;> 183 /a>        }> 184 /a>> 185 /a>         a href="+code=pcmcia_parse_events" class="sref">pcmcia_parse_events /a>( a href="+code=socket" class="sref">socket /a>,  a href="+code=SS_DETECT" class="sref">SS_DETECT /a>);> 186 /a>> 187 /a>         spao class="comment">/* /spaon> 188 /a> spao class="comment">         * Let's try to get the PCMCIA module for 16-bit PCMCIA supporp. /spaon> 189 /a> spao class="comment">         * If it fails, it doesn't matter -- we still have 32-bit CardBus /spaon> 19opta> spao class="comment">         * supporp to offer, so this is not a failure mode. /spaon> 191 /a> spao class="comment">         */ /spaon> 192 /a>         a href="+code=request_module_nowait" class="sref">request_module_nowait /a>( spao class="string">"pcmcia" 193 /a>> 194 /a>        return 0;> 195 /a>> 196 /a>  a href="+code=err" class="sref">err /a>:> 197 /a>         a href="+code=down_write" class="sref">down_write /a>(& a href="+code=pcmcia_socket_list_rwsem" class="sref">pcmcia_socket_list_rwsem /a>);> 198 /a>         a href="+code=list_del" class="sref">list_del /a>(& a href="+code=socket" class="sref">socket /a>-> a href="+code=socket_list" class="sref">socket_list /a>);> 199 /a>         a href="+code=up_write" class="sref">up_write /a>(& a href="+code=pcmcia_socket_list_rwsem" class="sref">pcmcia_socket_list_rwsem /a>);> 200 /a>        return  a href="+code=ret" class="sref">ret /a>;> 201 /a>}  spao class="comment">/* pcmcia_register_socket */ /spaon> 202 /a> a href="+code=EXPORT_SYMBOL" class="sref">EXPORT_SYMBOL /a>( a href="+code=pcmcia_register_socket" class="sref">pcmcia_register_socket /a>);> 203 /a>> 204 /a>> 205 /a> spao class="comment">/** /spaon> 206 /a> spao class="comment"> * pcmcia_unregister_socket - remove a pcmcia socket device /spaon> 207 /a> spao class="comment"> * @socket: the &socket to unregister /spaon> 208 /a> spao class="comment"> */ /spaon> 209 /a>void  a href="+code=pcmcia_unregister_socket" class="sref">pcmcia_unregister_socket /a>(struct  a href="+code=pcmcia_socket" class="sref">pcmcia_socket /a> * a href="+code=socket" class="sref">socket /a>)> 210 /a>{> 211 /a>        if (! a href="+code=socket" class="sref">socket /a>)> 212 /a>                return;> 213 /a>> 214 /a>         a href="+code=dev_dbg" class="sref">dev_dbg /a>(& a href="+code=socket" class="sref">socket /a>-> a href="+code=dev" class="sref">dev /a>,  spao class="string">"pcmcia_unregister_socket(0x%p)\n"socket /a>-> a href="+code=ops" class="sref">ops /a>);> 215 /a>> 216 /a>        if ( a href="+code=socket" class="sref">socket /a>-> a href="+code=thread" class="sref">thread /a>)> 217 /a>                 a href="+code=kthread_stop" class="sref">kthread_stop /a>( a href="+code=socket" class="sref">socket /a>-> a href="+code=thread" class="sref">thread /a>);> 218 /a>> 219 /a>         spao class="comment">/* remove from our own list */ /spaon> 220 /a>         a href="+code=down_write" class="sref">down_write /a>(& a href="+code=pcmcia_socket_list_rwsem" class="sref">pcmcia_socket_list_rwsem /a>);> 221 /a>         a href="+code=list_del" class="sref">list_del /a>(& a href="+code=socket" class="sref">socket /a>-> a href="+code=socket_list" class="sref">socket_list /a>);> 222 /a>         a href="+code=up_write" class="sref">up_write /a>(& a href="+code=pcmcia_socket_list_rwsem" class="sref">pcmcia_socket_list_rwsem /a>);> 223 /a>> 224 /a>         spao class="comment">/* wait for sysfs to drop all references */ /spaon> 225 /a>        if ( a href="+code=socket" class="sref">socket /a>-> a href="+code=resource_ops" class="sref">resource_ops /a>-> a href="+code=exit" class="sref">exit /a>) {> 226 /a>                 a href="+code=mutex_lock" class="sref">mutex_lock /a>(& a href="+code=socket" class="sref">socket /a>-> a href="+code=ops_mutex" class="sref">ops_mutex /a>);> 227 /a>                 a href="+code=socket" class="sref">socket /a>-> a href="+code=resource_ops" class="sref">resource_ops /a>-> a href="+code=exit" class="sref">exit /a>( a href="+code=socket" class="sref">socket /a>);> 228 /a>                 a href="+code=mutex_unlock" class="sref">mutex_unlock /a>(& a href="+code=socket" class="sref">socket /a>-> a href="+code=ops_mutex" class="sref">ops_mutex /a>);> 229 /a>        }> 230 /a>         a href="+code=wait_for_completion" class="sref">wait_for_completion /a>(& a href="+code=socket" class="sref">socket /a>-> a href="+code=socket_released" class="sref">socket_released /a>);> 231 /a>}  spao class="comment">/* pcmcia_unregister_socket */ /spaon> 232 /a> a href="+code=EXPORT_SYMBOL" class="sref">EXPORT_SYMBOL /a>( a href="+code=pcmcia_unregister_socket" class="sref">pcmcia_unregister_socket /a>);> 233 /a>> 234 /a>> 235 /a>struct  a href="+code=pcmcia_socket" class="sref">pcmcia_socket /a> * a href="+code=pcmcia_get_socket_by_nr" class="sref">pcmcia_get_socket_by_nr /a>(unsigned int  a href="+code=nr" class="sref">nr /a>)> 236 /a>{> 237 /a>        struct  a href="+code=pcmcia_socket" class="sref">pcmcia_socket /a> * a href="+code=s" class="sref">s /a>;> 238 /a>> 239 /a>         a href="+code=down_read" class="sref">down_read /a>(& a href="+code=pcmcia_socket_list_rwsem" class="sref">pcmcia_socket_list_rwsem /a>);> 240 /a>         a href="+code=list_for_each_entry" class="sref">list_for_each_entry /a>( a href="+code=s" class="sref">s /a>, & a href="+code=pcmcia_socket_list" class="sref">pcmcia_socket_list /a>,  a href="+code=socket_list" class="sref">socket_list /a>)> 241 /a>                if ( a href="+code=s" class="sref">s /a>-> a href="+code=sock" class="sref">sock /a> ==  a href="+code=nr" class="sref">nr /a>) {> 242 /a>                         a href="+code=up_read" class="sref">up_read /a>(& a href="+code=pcmcia_socket_list_rwsem" class="sref">pcmcia_socket_list_rwsem /a>);> 243 /a>                        return  a href="+code=s" class="sref">s /a>;> 244 /a>                }> 245 /a>         a href="+code=up_read" class="sref">up_read /a>(& a href="+code=pcmcia_socket_list_rwsem" class="sref">pcmcia_socket_list_rwsem /a>);> 246 /a>> 247 /a>        return  a href="+code=NULL" class="sref">NULL /a>;> 248 /a>> 249 /a>}> 250 /a> a href="+code=EXPORT_SYMBOL" class="sref">EXPORT_SYMBOL /a>( a href="+code=pcmcia_get_socket_by_nr" class="sref">pcmcia_get_socket_by_nr /a>);> 251 /a>> 252 /a>static int  a href="+code=socket_reset" class="sref">socket_reset /a>(struct  a href="+code=pcmcia_socket" class="sref">pcmcia_socket /a> * a href="+code=skt" class="sref">skt /a>)> 253 /a>{> 254 /a>        int  a href="+code=status" class="sref">status /a>,  a href="+code=i" class="sref">i /a>;> 255 /a>> 256 /a>         a href="+code=dev_dbg" class="sref">dev_dbg /a>(& a href="+code=skt" class="sref">skt /a>-> a href="+code=dev" class="sref">dev /a>,  spao class="string">"reset\n" 257 /a>> 258 /a>         a href="+code=skt" class="sref">skt /a>-> a href="+code=socket" class="sref">socket /a>. a href="+code=flags" class="sref">flags /a> |=  a href="+code=SS_OUTPUT_ENA" class="sref">SS_OUTPUT_ENA /a> |  a href="+code=SS_RESET" class="sref">SS_RESET /a>;> 259 /a>         a href="+code=skt" class="sref">skt /a>-> a href="+code=ops" class="sref">ops /a>-> a href="+code=set_socket" class="sref">set_socket /a>( a href="+code=skt" class="sref">skt /a>, & a href="+code=skt" class="sref">skt /a>-> a href="+code=socket" class="sref">socket /a>);> 260 /a>         a href="+code=udelay" class="sref">udelay /a>((long) a href="+code=reset_tim2" class="sref">reset_tim2 /a>);> 261 /a>> 262 /a>         a href="+code=skt" class="sref">skt /a>-> a href="+code=socket" class="sref">socket /a>. a href="+code=flags" class="sref">flags /a> &= ~ a href="+code=SS_RESET" class="sref">SS_RESET /a>;> 263 /a>         a href="+code=skt" class="sref">skt /a>-> a href="+code=ops" class="sref">ops /a>-> a href="+code=set_socket" class="sref">set_socket /a>( a href="+code=skt" class="sref">skt /a>, & a href="+code=skt" class="sref">skt /a>-> a href="+code=socket" class="sref">socket /a>);> 264 /a>> 265 /a>         a href="+code=msleep" class="sref">msleep /a>( a href="+code=unreset_delay" class="sref">unreset_delay /a> * 10);> 266 /a>        for ( a href="+code=i" class="sref">i /a> = 0;  a href="+code=i" class="sref">i /a> <  a href="+code=unreset_limit" class="sref">unreset_limit /a>;  a href="+code=i" class="sref">i /a>++) {> 267 /a>                 a href="+code=skt" class="sref">skt /a>-> a href="+code=ops" class="sref">ops /a>-> a href="+code=get_status" class="sref">get_status /a>( a href="+code=skt" class="sref">skt /a>, & a href="+code=status" class="sref">status /a>);> 268 /a>> 269 /a>                if (!( a href="+code=status" class="sref">status /a> &  a href="+code=SS_DETECT" class="sref">SS_DETECT /a>))> 270 /a>                        return - a href="+code=ENODEV" class="sref">ENODEV /a>;> 271 /a>> 272 /a>                if ( a href="+code=status" class="sref">status /a> &  a href="+code=SS_READY" class="sref">SS_READY /a>)> 273 /a>                        return 0;> 274 /a>> 275 /a>                 a href="+code=msleep" class="sref">msleep /a>( a href="+code=unreset_check" class="sref">unreset_check /a> * 10);> 276 /a>        }> 277 /a>> 278 /a>         a href="+code=dev_printk" class="sref">dev_printk /a>( a href="+code=KERN_ERR" class="sref">KERN_ERR /a>, & a href="+code=skt" class="sref">skt /a>-> a href="+code=dev" class="sref">dev /a>,  spao class="string">"tim2 out after reset.\n" 279 /a>        return - a href="+code=ETIMEDOUT" class="sref">ETIMEDOUT /a>;> 280 /a>}> 281 /a>> 282 /a> spao class="comment">/* /spaon> 283 /a> spao class="comment"> * socket_setup() and socket_shutdown() are called by the main event handler /spaon> 284 /a> spao class="comment"> * when card insertion and removal events are received. /spaon> 285 /a> spao class="comment"> * socket_setup() turns on socket power and resets the socket, in two stages. /spaon> 286 /a> spao class="comment"> * socket_shutdown() unconfigures a socket and turns off socket power. /spaon> 287 /a> spao class="comment"> */ /spaon> 288 /a>static void  a href="+code=socket_shutdown" class="sref">socket_shutdown /a>(struct  a href="+code=pcmcia_socket" class="sref">pcmcia_socket /a> * a href="+code=s" class="sref">s /a>)> 289 /a>{> 290 /a>        int  a href="+code=status" class="sref">status /a>;> 291 /a>> 292 /a>         a href="+code=dev_dbg" class="sref">dev_dbg /a>(& a href="+code=s" class="sref">s /a>-> a href="+code=dev" class="sref">dev /a>,  spao class="string">"shutdown\n" 293 /a>> 294 /a>        if ( a href="+code=s" class="sref">s /a>-> a href="+code=callback" class="sref">callback /a>)> 295 /a>                 a href="+code=s" class="sref">s /a>-> a href="+code=callback" class="sref">callback /a>-> a href="+code=remove" class="sref">remove /a>( a href="+code=s" class="sref">s /a>);> 296 /a>> 297 /a>         a href="+code=mutex_lock" class="sref">mutex_lock /a>(& a href="+code=s" class="sref">s /a>-> a href="+code=ops_mutex" class="sref">ops_mutex /a>);> 298 /a>         a href="+code=s" class="sref">s /a>-> a href="+code=state" class="sref">state /a> &=  a href="+code=SOCKET_INUSE" class="sref">SOCKET_INUSE /a> |  a href="+code=SOCKET_PRESENT" class="sref">SOCKET_PRESENT /a>;> 299 /a>         a href="+code=msleep" class="sref">msleep /a>( a href="+code=shutdown_delay" class="sref">shutdown_delay /a> * 10);> 300 /a>         a href="+code=s" class="sref">s /a>-> a href="+code=state" class="sref">state /a> &=  a href="+code=SOCKET_INUSE" class="sref">SOCKET_INUSE /a>;> 301 /a>> 302 /a>         spao class="comment">/* Blank out the socket state */ /spaon> 303 /a>         a href="+code=s" class="sref">s /a>-> a href="+code=socket" class="sref">socket /a> =  a href="+code=dead_socket" class="sref">dead_socket /a>;> 304 /a>         a href="+code=s" class="sref">s /a>-> a href="+code=ops" class="sref">ops /a>-> a href="+code=init" class="sref">init /a>( a href="+code=s" class="sref">s /a>);> 305 /a>         a href="+code=s" class="sref">s /a>-> a href="+code=ops" class="sref">ops /a>-> a href="+code=set_socket" class="sref">set_socket /a>( a href="+code=s" class="sref">s /a>, & a href="+code=s" class="sref">s /a>-> a href="+code=socket" class="sref">socket /a>);> 306 /a>         a href="+code=s" class="sref">s /a>-> a href="+code=lock_count" class="sref">lock_count /a> = 0;> 307 /a>         a href="+code=kfree" class="sref">kfree /a>( a href="+code=s" class="sref">s /a>-> a href="+code=fake_cis" class="sref">fake_cis /a>);> 308 /a>         a href="+code=s" class="sref">s /a>-> a href="+code=fake_cis" class="sref">fake_cis /a> =  a href="+code=NULL" class="sref">NULL /a>;> 309 /a>         a href="+code=s" class="sref">s /a>-> a href="+code=functions" class="sref">functions /a> = 0;> 310 /a>> 311 /a>         spao class="comment">/* From here on we can be sure that only we (that is, the /spaon> 312 /a> spao class="comment">         * pccardd thread) accesses this socket, and all (16-bit) /spaon> 313 /a> spao class="comment">         * PCMCIA interactions are gone. Therefore, release /spaon> 314 /a> spao class="comment">         * ops_mutex so that we don't get a sysfs-related lockdep /spaon> 315 /a> spao class="comment">         * warning. /spaon> 316 /a> spao class="comment">         */ /spaon> 317 /a>         a href="+code=mutex_unlock" class="sref">mutex_unlock /a>(& a href="+code=s" class="sref">s /a>-> a href="+code=ops_mutex" class="sref">ops_mutex /a>);> 318 /a>> 319 /a>#ifdef  a href="+code=CONFIG_CARDBUS" class="sref">CONFIG_CARDBUS /a>> 320 /a>         a href="+code=cb_free" class="sref">cb_free /a>( a href="+code=s" class="sref">s /a>);> 321 /a>#endif> 322 /a>> 323 /a>         spao class="comment">/* give socket some tim2 to power down */ /spaon> 324 /a>         a href="+code=msleep" class="sref">msleep /a>(100);> 325 /a>> 326 /a>         a href="+code=s" class="sref">s /a>-> a href="+code=ops" class="sref">ops /a>-> a href="+code=get_status" class="sref">get_status /a>( a href="+code=s" class="sref">s /a>, & a href="+code=status" class="sref">status /a>);> 327 /a>        if ( a href="+code=status" class="sref">status /a> &  a href="+code=SS_POWERON" class="sref">SS_POWERON /a>) {> 328 /a>                 a href="+code=dev_printk" class="sref">dev_printk /a>( a href="+code=KERN_ERR" class="sref">KERN_ERR /a>, & a href="+code=s" class="sref">s /a>-> a href="+code=dev" class="sref">dev /a>,> 329 /a>                            spao class="string">"*** DANGER *** unabl2 to remove socket power\n" 330 /a>        }> 331 /a>> 332 /a>         a href="+code=s" class="sref">s /a>-> a href="+code=state" class="sref">state /a> &= ~ a href="+code=SOCKET_INUSE" class="sref">SOCKET_INUSE /a>;> 333 /a>}> 334 /a>> 335 /a>static int  a href="+code=socket_setup" class="sref">socket_setup /a>(struct  a href="+code=pcmcia_socket" class="sref">pcmcia_socket /a> * a href="+code=skt" class="sref">skt /a>, int  a href="+code=initial_delay" class="sref">initial_delay /a>)> 336 /a>{> 337 /a>        int  a href="+code=status" class="sref">status /a>,  a href="+code=i" class="sref">i /a>;> 338 /a>> 339 /a>         a href="+code=dev_dbg" class="sref">dev_dbg /a>(& a href="+code=skt" class="sref">skt /a>-> a href="+code=dev" class="sref">dev /a>,  spao class="string">"setup\n" 340 /a>> 341 /a>         a href="+code=skt" class="sref">skt /a>-> a href="+code=ops" class="sref">ops /a>-> a href="+code=get_status" class="sref">get_status /a>( a href="+code=skt" class="sref">skt /a>, & a href="+code=status" class="sref">status /a>);> 342 /a>        if (!( a href="+code=status" class="sref">status /a> &  a href="+code=SS_DETECT" class="sref">SS_DETECT /a>))> 343 /a>                return - a href="+code=ENODEV" class="sref">ENODEV /a>;> 344 /a>> 345 /a>         a href="+code=msleep" class="sref">msleep /a>( a href="+code=initial_delay" class="sref">initial_delay /a> * 10);> 346 /a>> 347 /a>        for ( a href="+code=i" class="sref">i /a> = 0;  a href="+code=i" class="sref">i /a> < 100;  a href="+code=i" class="sref">i /a>++) {> 348 /a>                 a href="+code=skt" class="sref">skt /a>-> a href="+code=ops" class="sref">ops /a>-> a href="+code=get_status" class="sref">get_status /a>( a href="+code=skt" class="sref">skt /a>, & a href="+code=status" class="sref">status /a>);> 349 /a>                if (!( a href="+code=status" class="sref">status /a> &  a href="+code=SS_DETECT" class="sref">SS_DETECT /a>))> 350 /a>                        return - a href="+code=ENODEV" class="sref">ENODEV /a>;> 351 /a>> 352 /a>                if (!( a href="+code=status" class="sref">status /a> &  a href="+code=SS_PENDING" class="sref">SS_PENDING /a>))> 353 /a>                        break;> 354 /a>> 355 /a>                 a href="+code=msleep" class="sref">msleep /a>(100);> 356 /a>        }> 357 /a>> 358 /a>        if ( a href="+code=status" class="sref">status /a> &  a href="+code=SS_PENDING" class="sref">SS_PENDING /a>) {> 359 /a>                 a href="+code=dev_printk" class="sref">dev_printk /a>( a href="+code=KERN_ERR" class="sref">KERN_ERR /a>, & a href="+code=skt" class="sref">skt /a>-> a href="+code=dev" class="sref">dev /a>,> 360 /a>                            spao class="string">"voltage interrogation tim2d out.\n" 361 /a>                return - a href="+code=ETIMEDOUT" class="sref">ETIMEDOUT /a>;> 362 /a>        }> 363 /a>> 364 /a>        if ( a href="+code=status" class="sref">status /a> &  a href="+code=SS_CARDBUS" class="sref">SS_CARDBUS /a>) {> 365 /a>                if (!( a href="+code=skt" class="sref">skt /a>-> a href="+code=features" class="sref">features /a> &  a href="+code=SS_CAP_CARDBUS" class="sref">SS_CAP_CARDBUS /a>)) {> 366 /a>                         a href="+code=dev_printk" class="sref">dev_printk /a>( a href="+code=KERN_ERR" class="sref">KERN_ERR /a>, & a href="+code=skt" class="sref">skt /a>-> a href="+code=dev" class="sref">dev /a>,> 367 /a>                                 spao class="string">"cardbus cards are not supporped.\n" 368 /a>                        return - a href="+code=EINVAL" class="sref">EINVAL /a>;> 369 /a>                }> 370 /a>                 a href="+code=skt" class="sref">skt /a>-> a href="+code=state" class="sref">state /a> |=  a href="+code=SOCKET_CARDBUS" class="sref">SOCKET_CARDBUS /a>;> 371 /a>        } else> 372 /a>                 a href="+code=skt" class="sref">skt /a>-> a href="+code=state" class="sref">state /a> &= ~ a href="+code=SOCKET_CARDBUS" class="sref">SOCKET_CARDBUS /a>;> 373 /a>> 374 /a>         spao class="comment">/* /spaon> 375 /a> spao class="comment">         * Decode the card voltage requirements, and apply power to the card. /spaon> 376 /a> spao class="comment">         */ /spaon> 377 /a>        if ( a href="+code=status" class="sref">status /a> &  a href="+code=SS_3VCARD" class="sref">SS_3VCARD /a>)> 37348 /a>                 a href="+code=skt" class="sref">skt /a>-> a href="+codsocket" class="sref">socket /a>. a href="+code=wcia/cs.c#L324" idalL324" class="line2>skt /a>-> a href="+codsocket" class="sref">socket /a>. a href="+code=wcia/cs.c#L324" idalL324" p>(100);>i" clas33/cs.c#L373" idalL373" class="line" nam2alL379"> 279 /a>        retu3n - a3href="+code=ETcia/tus" class="sref">status /a> &  a href="+code=SS_PENDING" class="sref">SS_XCARD /a>)> 280 /a>}>skt /a>-> a href="+code=state" class="sref">state t /a>. a href="+code=wcia/cs.c#L324" idalL324" class="line2>skt /a>-> a href="+codsocket" class="sref">socket /a>. a href="+code=wcia/cs.c#L324" idalL324" p>(100);>i" clas5a/cs.c#L310" idalL310" class="line" nam2alL381"> 281 /a>> 282 /a> spao class=3comme38ref="+code=skt" class="sref">skt /a>dev_printk /a>( a href="+code=KERN_ERR" class="sref">KERN_ERR /a>, & a href="+code=skt" class="sref">skt /a>-> a href="+code=dev" class="sref">dev /a>,> 283 /a> spao class=3comme38rn - a href="+code=ENODEV" class="sref">ENODEIO;>so="+code=SOCKET_2310" iia/cs.c#L374" idalL374" class="line" nam46spao class=3comme38ref="+co>-> a href="+code=opsev /a>,  spao cvoltage requirements, and apply   a href="+code=s" class="sref">s /aunconfigu3es a socket and turns of3 sock38 class="sref">thread /a>)>ops /a>-> a href="+code=get_status" class="sref">get_status /a>( a hrL376"_hoo href="+code=sktL376"_hoo      /a>);>);>socket_shutdown /a>(3truct38   a href="+code=dev_dbg" class="sref90" class3"line" nam2alL290"> 290 3a>   38>ops /a>-> a href="+code=set_socket" class="sref">set_socket /a>( a href="+code=SS_RESET" class="sref">SS_RESET /a>;>stat3s /a>;>set_socket /a>( a href="+code=skt" class="sref">skt /a>, & a href="+code=skt" class="sref">skt /a>-> a href="+code=socket" class="sref">socket /a>);> 264 /a>         a href="+code=s" class="sref">s /a2" class=3line" nam2alL292"> 292 /3>    3    a href="+code=dev_dbg" class="sre3">dev_dbg3/a>(& a href="+code=3" cla39s/pcmcia/cs.c#L303" idalL303" class="    if ( a href="+code=status" class="s4" class=3line" nam2alL294"> 294 /3>    39aon>biliseao class="comment">         */ /spaon>->3 a href="+code=callback"3class39ockdep /spaon>s /a>3> a href="+code=callb3ck" c39class="sref">initial_delay /a> * 10);> 297 /3>    3    a href="+code=mutex_lock" class="3ref">mute3_lock /a>(& a href="3code=3" class="sref">s /a>-> a hget_status" class="sref">get_status /a>( a href="+code=skt" class="sref">skt /a>, & a href="+code=status" class="sref">status /a>);> 349 /a>                if (!( a href="+code=status>-> a 3ref="+code=state" class=3sref"39NDING" class="sreref">SS_PENDING /a>))> 328 /a>                          a href="+code=dev_>msleep /3>( a href="+code=shutdow3_dela39=KERN_ERR" class="sref">KERN_ERR /a>, & a href="+code=skt" class="sref">skt /a>-> a href="+code=dev" class="sref">dev /a>,> 360 /a>           cia/cs.c#L368" idalL368" classclass="lnam2alL376"283 /a> spao class=3comme38rn - a href="+code=ENO4>-> a 4ref="+code=state" class=4sref"40ass="sref">state t /a373" class="line" nam2alL3dsocket" class="sref">so="+code=SOCKET_2310" iia/cs.c#42" class=4line" nam2alL302"> 302 /4>    40 372 /a>      o="+code=SOCKET_2310" iia/cs.c#422 class=4la>(& a href="+code=4"driv40   spao class="comment">/* give sock4>-> a 4ref="+code=socket" class4"sref4>socket /a> =  a href="+code=d>))>pcmcia_socket /a> * a href="+code=skt" chref="drivers/pcmcia/cs.c#L360" idalL360ss=3comme38rn - a href="+code=ENO4>4> a 4ra href="+code=callback"4ef">o40           a href="+code=msleep" cla4>-> a 4ref="+code=ops" class="s4ef">o4s /a>-> a h>thread /a>)>-> a 4ref="+code=lock_count" c4ass="40+code=socket" class="sref">socket /aget_status" class="sref">get_status /a>( a hrL376"_hoo href="+code=sktL376"_hoo      /a>);>);> 362 HOOK /a>  a>OSaL360ss=3comme38rn - a href="+code=ENO4>7> a 4rlock /a>(& a href="4sref"40  if ( a href="+code=status" class="4>-> a 4ref="+code=fake_cis" cla4s="sr4f">fake_cis /aclass="line" nam2alL244nam2alL291"> 291 /a>>-> a 4ref="+code=functions" cl4ss="s40ef="+code=EXPORT_SYMBOL" class="sref"41" class=4line" nam2alL311"> 311 /4>    4    spao class="comment">/* From here4on we can4be sure that only we (th4t is,4the /s#L303" idalL303" class="    if ( a href="+code=status" class="4read) acc4sses this socket, and al4 (16-4it) /spaon> 3e" nam2alL286ode=s76 /a> sp,    if ( a href="+code=status" class="4r-> a 4are gone. Therefore, rel4ase /4paon>         */ /spaon><4so that w4 don't get a sysfs-r4lated4lockdep /spaon>pcm285" cocket /a> * a href="+c285" c     lass="sref">skt /a>)> 253 /a>{>mu4ex_unlock /a>(& a hr4f="+c41sref">i /a>;>s /49" class=4line" nam2alL319"> 319 /4>#ifd4f  a href="+code=CONFIG_CARDBUS" clas4="sref">C4NFIG_CARDBUS /a>>skt /a>-> a href="+code=dev" class="sref">dev /a>,  spao class="string">"setup\n" spao class=3comme38rn - a href="+code=ENO4">cb_free4/a>( a href="+code=s" cl4ss="s42   spao class="comment">/* From here4dalL322" 4lass="line" nam2alL322">4322 /42>ops /a>-> a href="+code=ref="+code=ops_mutex" class="sref">ops_mutex /a>);>get_status /a>( a href=ine" nam2alL318"> 318 /a>> 323 /4>    42DETECT" class="sr&= ~ a href="+code=SOCKET_CARDBUS" class="sref">SOCKET_CARDBUS /a>;> 301 /a>>ops_mutex /a>);>get_status /a>( a href=ine" nam2alL318"> 318 /a>>(100);> 369 /a>                }> 326 /4>    42 /a>-> a hcode=EXPORT_SYMBOL" class="sref"4>-> a 4ref="+code=ops" class="s4ef">o4s /a>-> a href="+code=get_se=SOCKET_CARDBUS" class="sref">SOCKET_CARDBUS /a>;> 333 /a>}>stat4s /a> &  a href="+co4e=SS_42  if ( a href="+code=status" class="4class="sr4f">dev_printk /a>( a hre4="+co42">fake_cis /a> =  a href="+crvers/pcmcia/cs.c#r     a./a>. a href="+codef">pcmcia_socket /a> * a href="+code=skt" c/a>);>);>C4;*** DANGER *** unabl2 t4 remo4e socket power="sr&= ~ a hrefrvers/pcmcia/cs.c#r     a./= 0                 a href="+code=dev4" idalL334" class="line" nam2alL334"> 3343ass="sref">state /a> |=  a href="+code=SOCKET_CARDBUS" class="sref">SOCKET_CARDBUS /a>;> 299 /a>         a href="+code=msleep" class="sref42" class=4line" nam2alL332"> 332 /4>    4    a href="+code=s" class="sref">s /4>-> a 4ref="+code=state" class=4sref"43=KERN_ERR" class="sref">KERN_ERR /a>, & a href="+code=skt" class="sref">skt /a>-> a href=NOTIC" nam2alL333"> 3href=NOTIC"ev /a>,> 360 /a>           href="+code=s" class="sref">s /4> some ti4"line" nam2alL334"> 334 4a>> 354 /a>> spao cla href="+code=s" class="sref">s /4>o that w4line" nam2alL335"> 335 /4>stat43cs.c#L325" idate t /aaaaaaaaaaaar&= ~ a href="+code=SOCKET_CARDBUS" class="sref">SOCKET_CARDBUS /a>;> 373 /a>> spao cla :vers/pcmcia/cs.c#L368" idalL idalL /a> spao cla href="+code=s" class="sref">s /4>" class=4socket_setup /a>(struct 4a hre43tures" class="sref">f>state /a> |=  a href="+code=SOCKET_CARDBUS" class="sref">SOCKET_CARDBUS+code=ops_mutex" csf">ops_"drivers/pcmcia/cs.c#L319" idalL3437" class4"line" nam2alL337"> 337 4a>   43   a href="+code=mutex_lock" class="4ref">stat4s /a>,  a href="+code=i"4class4"sref"cia/cs.c#L320" idalL320" class="line" nam2alL320"> 320 /a>         a href="+code=cb_free" class="sre49" class=4line" nam2alL339"> 339 /4>    43lass="sref">socket /a="sr&= ~ a href="+code=SOCKET_CARDBUS" class="sref">SOCKET_CARDBUS /a>;> 373 /a>>C4/a>(& a href="+code=4kt" c43 socket power\n"cb_alef"kt" chref="drivers/pcmcia/cs.c#L360" idalL360ss=3comme38rn - a href="+code=ENO41" class=4line" nam2alL341"> 341 /4>    44.\n"SOCKET_CARDBUS /a>;>> 373 /a>>st4tus /a> &  a href="+4ode=S4_DETECref="drivers/pcmcia/cs.c#L323" idalL34EV" class4"sref">ENODEV /a>;>-> a href="+code=dev" class="sref">dev /a>,  spao class="string">"setup\n" spao class=3comme38rn - a href="+code=ENO45" class=4line" nam2alL345"> 345 /4>    44cs.c#L325" idate t /a a href="+code=ref="+f="+code=ops_mutex" class="sref">ops_mutex /a>);>get_status /a>( a href=ine" nam2alL318"> 318 /a>>msleep /4>( a href="+code=initial4delay44   a href="+code=s" class="sref">s /47" class=4line" nam2alL347"> 347 /4>    44+code=socket" class="eatures /a> &  a href="+code=SS_CAP_CARDBUS" class="sref">SS_CARDBUS /a>;> 373 /a>>SS_Cine" nam2alL295"> 295 /a>           "drivers/pcmcia/cs.c#L254" idalL4>i /a> = 4;  a href="+code=i" clas4="sre44orped.\n" &  a href="+code=SS_CAP_CARDBUS" class="sref">SS_Cine" nam2alL295"> 295 /a>          S" class="sref">SS_Cadd2alL295"> 295 /addkt" chref="drivers/pcmcia/cs.c#L360" idalL360ss=3comme38rn - a href="+code=ENO41" class=4/a>-> a href="+code=o4s" cl4ss="sref">ops }o class=3comme38ref="+code=skt" class=4" class="4ref">status /a> &  a4href=4+code=SS_DETECT" class a href="+code=ref="+f="+code=ops_mutex" class="sref">ops_mutex /a>);>get_status /a>( a href=ine" nam2alL318"> 318 /a>>ENODEV /a4;>pcmc">pcmcia_socket /a> * a href="+code=s" clahref="drivers/pcmcia/cs.c#L360" idalL360ss=3comme38rn - a href="+code=ENO42" class=4line" nam2alL352"> 352 /4>    45 372 /a>      o="+code=SOCKET_2310" iia/cs.c#4" class="4ref">status /a> &  a4href=45   spao class="comment">/* give sock4vers/pcmc4a/cs.c#L354" idalL354" c4ass="4ine" nam2alL35class="line" nam2alL24rvers/pcmcia/cs.c#r     a href="+code=s" class="sref">s /45" class=4line" nam2alL355"> 355 /4>    4       o="+code=SOCKET_2310" iia/cs.c#4"msleep /4sleep /a>(100);>s /4" idalL354" class="line" nam2alL354"> 354 /a>>pcmcuspef=a_socket /a> * a href="uspef=     lass="sref">skt /a>)> 253 /a>{> 358 /4>    4   if s=3comme38ref="+code=skt" class=4ref">stat4s /a> &  a href="+co4e=SS_4ENDING" class="sref">SS_PENDING /aref="+code=SS_CAP_CARDBUS" class="sref">SS_CARDBUS /a>;> 373 /aSUS/a> ref="drivers/pcmcia/cs.c#L254" idalL48 class="4f">dev_printk /a>( a hre4="+co4e=KERN_ERR" class="sre373" class="line" nam2al hrm2alL273"> 273 /l hrm   a href="+code=s" class="sref">s /4ing">&quo4;voltage interrogation t4m2d o46   spao class="comment">/* From here4EDOUT" cl4ss="sref">ETIMEDOUT /a>;4ops /a>-> a href="+code=ref="+code=ops_mutex" class="sref">ops_mutex /a>);>get_status /a>( a href=ine" nam2alL318"> 318 /a>> 3646tate /a> &= ~ a href="+coref="+code=SS_CAP_CARDBUS" class="sref">SS_CAuspef=ed_ARDBUS /a>;>SS_CARDBUS /a>;> 364 /4>    4   if ( a href="+code=status" class="4ref">stat4s /a> &  a href="+co4e=SS_4ARDBUS" class=|=  a href="+code=SOCKET_CARDBUS" class="sref">SOCKET_CARDBUS+co href="drivers/pcmcia/cs.c#L304" idalL304" class="line" nam2alL304"> 304 /a>         a href="+code=s" class="sref">s /4lass="sre4">skt /a>-> a href="+4ode=f46class="sref">initial_delay /det_socket" class="sref">set_socket /a>( a href="+code=skt" class="sref">skt /a>, & a href="+code=skt" class="sref">skt /a>-> a href="+code=socket" class="sref">socket /a>);> 264 /a>         a href="+code=s" class="sref">s /4printk" c4ass="sref">dev_printk /a4( a h46 class="sref">thread /a>)>skt /a>, & a huspef=a_socket /a> * auspef=    "drivers/pcmcia/cs.c#L254" idalL4="string"4"cardbus cards are 4ot su4porped.\n")>skt /a>, & a huspef=a_socket /a> * auspef=    ahref="drivers/pcmcia/cs.c#L360" idalL360ss=3comme38rn - a href="+code=ENO4ode=EINVA4" class="sref">EINVAL /a4;>fake_cis /a> =  a href="+coe=SOCKET_CARDBUS" class="sref">SOCKET_CARDBUS /a>;> e" nam2alL373"> 373 /aSUS/a> ref=s=3comme38rn - a href="+code=ENO4o class="4idalL370" class="line" n4m2alL46 class="sref">shutdown_delay ef="+f="+code=ops_mutex" class="sref">ops_mutex /a>);>get_status /a>( a href=ine" nam2alL318"> 318 /a>>skt4/a>-> a href="+code=s4ate" 4lass="sref">st373" cl"drivers/pcmcia/cs.c#L311" idalL34#L372" id4lL372" class="line" nam24lL3724> 372  o="+code=SOCKET_2310" iia/cs.c#4sref">skt4/a>-> a href="+code=s4ate" 47   spao class="comment">/* give sock44" class=4line" nam2alL374"> 374 /4>    4    spe=pcmcia_socket" class="sref">pcmearlycodeum>;>pcmearlycodeum>     lass="sref">skt /a>)> 253 /a>{>initial_delay /aef="+code=ops_mutex" class="sref">ops_mutex /a>);>get_status /a>( a href=ine" nam2alL318"> 318 /a>>-> a href="+code=get_se=SOCKET_CARDBUS" class="sref">SOCKET_CARDBUS+co href="drivers/pcmcia/cs.c#L304" idalL304" class="line" nam2alL304"> 304 /a>         a href="+code=s" class="sref">s /4ref">stat4s /a> &  a href="+co4e=SS_47 class="sref">s /a>-> a hget_status" class="sref">get_status /a>( a href="+code=skt" class="sref">skt /a>, & a /cs.c#L305" idalL305" class="line" nam2alL30mcia/cs.c#L360" idalL360ss=3comme38rn - a href="+code=ENO4="sref">s4t /a>-> a href="+cods4cket"47">fake_cis /a> =  a href="+coe=SOCKET_CARDBUS" class="sref">SOCKET_CARDBUef="+code=skt" class="sref">skt /a>, & a href="+code=skt" class="sref">skt /a>-> a href="+code=socket" class="sref">socket /a>);> 264 /a>         a href="+code=s" class="sref">s /4lass="sre4">status /a> &  a hr4f="+c47 socket power="sr&= ~ a hrefaref="+code=SS_CAP_CARDBUS" class="sref">SS_CARDBUS /a>;> 299 /a>         a"drivers/pcmcia/cs.c#L254" idalL4sref">skt4/a>-> a href="+code=s4ate" 4lass="sref">state t /a>. a href="+code=wcia/cs.c#L324" idalL324" class="line2>f="+code=status" classodeum>f="+cod   a./a>. a href="+codef">pcmcia_socket /a> * a href="+code=skt" c/a>);>);>fclass    a href="+code=s" class="sref">s /4#L366" id4lL366" class="line" nam24lL38248>ops /a>-> a href="+code=ref="+f="+code=ops_mutex" class="sref">ops_mutex /a>);>get_status /a>( a href=ine" nam2alL318"> 318 /a>>skt4/a>dev_printk /a>( a hre4="+co4e=KERN_ERR" cl373" cl"drivers/pcmcia/cs.c#L311" idalL34EV" class4"sref">ENODEIO;>,  spao4cvoltage requirements, a4d app48"+code=pcmcia_socket" class="sref">pcm> 31codeum>;>pcm> 31codeum>     lass="sref">skt /a>)> 253 /a>{>i /a>;>s /4 class="s4ef">socket_shutdown /a>(4truct48   a href="+code=dev_dbg" class="sre490" class4"line" nam2alL290"> 290 4a>   48>ops /a>-> a href="+code=aef="+code=ops_mutex" class="sref">ops_mutex /a>);>get_status /a>( a href=ine" nam2alL318"> 318 /a>>stat4s /a>;>set_socket /a>( a hrARDBUS /a>;> e" nam2alL373"> 373 /aSUS/a> ref=s=3comme38rn - a href="+code=ENO42" class=4line" nam2alL292"> 292 /4>    49>ops /a>-> a href="+code=ref="+f="+code=ops_mutex" class="sref">ops_mutex /a>);>get_status /a>( a href=ine" nam2alL318"> 318 /a>>dev_dbg4/a>(& a href="+code=4" cla49   spao class="comment">/* give sock44" class=4line" nam2alL294"> 294 /4>    49ne" nam2alL35eatures /a> &  a href="+code=SS_CAP_CARDBUS" class="sref">SS_CARDBUS /a>;> 299 /a>         a")                a href="+code=dev4s /a>->4 a href="+code=callback"4class49cs.c#L325" idate t /a a href="+code=rvers/pcmcia/cs.c#r     a./a>. a href="+codef">pcm285" cocket /a> * a href="+c285" c     "line" nam2alL30mcia/cs.c#L360" idalL360ss=3comme38rn - a href="+code=ENO4ef">s /a>4> a href="+code=callb4ck" c49tures" class="sref">f="sr&= ~ a hrefrvers/pcmcia/cs.c#r     a./= 51" class="line" nam2alL351"> 351 /a>> 297 /4>    49f="+code=KERN_ERR" class="sref">KERN_ERR /a>rvers/pcmcia/cs.c#r     a./a"drivers/pcmcia/cs.c#L311" idalL34ref">mute4_lock /a>(& a href="4code=49orped.\n"s /4>-> a 4ref="+code=state" class=4sref"49NDING" class=drivers/pcmcia/cs.c#L335" idalL34>msleep /4>( a href="+code=shutdow4_dela49=KERNrivers/pcmcia/cs.c#L335" idalL35>-> a 5ref="+code=state" class=5sref"50ass="sref">st="sr&= ~ a hrefaref="+code=SS_CAP_CARDBUS" class="sref">SS_Codeum>f="+code=status" classodeum>f="+cod   a)                a href="+code=dev52" class=5line" nam2alL302"> 302 /5>    50="drivers/pcmcia/cs.c>. a href="+codef">pcmc">pcmcia_socket /a> * a href="+code=s" clahref="drivers/pcmcia/cs.c#L360" idalL360ss=3comme38rn - a href="+code=ENO522 class=5la>(& a href="+code=5"driv50=KERN_ERR" class="sre373" cl"drivers/pcmcia/cs.c#L311" idalL35>-> a 5ref="+code=socket" class5"sref5>socket /a> = drivers/pcmcia/cs.c#L335" idalL35>4> a 5ra href="+code=callback"5ef">o50           a href="+code=msleep" cla5>-> a 5ref="+code=ops" class="s5ef">o5s /a>-> a h>thread /a>)>;>SS_CARDBUS /a>;> 297 /5ass="50+code=socket" class="sref">socket /af="+code=dev" class="sref">dev /a>,  spao class="string">"setup\n" spao cla href="+code=s" class="sref">s /5>-> a 5ref="+code=fake_cis" cla5s="sr50ef="drivers/pcmcia/cs.c#L369"ead /a>)>;>SS_CARDBUS /a>;>9> a 5r( a href="+code=shutdow5ss="s50=KERNrivers/pcmcia/cs.c#L335" idalL351" class=5line" nam2alL311"> 311 /5>    51ef="drivers/pcmcia/cs>. a href="+codef">pcmc">pcmcia_socket /a> * a href="+code=s" clahref="drivers/pcmcia/cs.c#L360" idalL360ss=3comme38rn - a href="+code=ENO5on we can5be sure that only we (th5t is,51="drivers/pcmcia/cs.c#L362" >. a href="+codef">pcm285" cocket /a> * a href="+c285" c     "line" nam2alL30mcia/cs.c#L360" idalL360ss=3comme38rn - a href="+code=ENO5read) acc5sses this socket, and al5 (16-51/a>> 320 /a>         a href="+code=cb_free" class="sre5spaon>-> a h>thread /a>)>;> 373 /a>>    if ( a href="+code=status" class="5"sref">mu5ex_unlock /a>(& a hr5f="+c51sref"p /spaon>    if ( a href="+code=status" class="5"-> a 5line" nam2alL319"> 319 /5>#ifd5f  a hp /spaon>C5NFIG_CARDBUS /a>>cb_free5/a>( a href="+code=s" cl5ss="s52ef="drivers/pcmcia/cs>. a href="+codcb_alef"e" nam2alL373">cb_alef"kt" chref="drivers/pcmcia/cs.c#L360" idalL360ss=3comme38rn - a href="+code=ENO5dalL322" 5lass="line" nam2alL322">5322 /52="drivers/pcmcia/cs.c#L362" "drivers/pcmcia/cs.c#L311" idalL353" class=5line" nam2alL323"> 323 /5>    52/a>>(100);> &  a href="+code=SS_CAP_CARDBUS" class="sref">SS_CARDBUS /a>;> 373 /a>>SS_Cine" nam2alL295"> 29f /a>           "drivers/pcmcia/cs.c#L254" idalL56" class=5line" nam2alL326"> 326 /5>    52tures" class="sref">fs /a> &  a href="+code=SS_CAP_CARDBUS" class="sref">SS_Cine" nam2alL295"> 29f /a>          S" class="sref">SS_Cearlycodeum>;>o5s /a>-> a h#L362" "drivers/pcmcia/cs.c#L311" idalL353sref">mu5s /a> &  a href="+co5e=SS_52  if drivers/pcmcia/cs.c#L364" idalL35t-> a 5f">dev_printk /a>( a hre5="+co52   a href="+code=dev_dbg" class="sre53"sref">C5;*** DANGER *** unabl2 t5 remo5e sock#L303" idalL303" class="    if ( a href="+code=status" class="5" idalL335" class="line" nam2alL335"> 3353ass="a href="drivers/pcmcia/*nRdeum> aam2alL2.  If1a idalL2s pode=nt, de=ifyL2ts CIS aga285t    if ( a href="+code=status" class="5"alL322" 5line" nam2alL332"> 332 /5>    53he /s#L303" idalL303" class/*nour idched copy.  If1" nyine" ="dferent, /cs.c#L37has been    if ( a href="+code=status" class="5"" class=5ref="+code=state" class=5sref"53t) /spaon>         */ /spaon><5> some ti5"line" nam2alL334"> 334 5a>> 335 /5>stat53cs.c#e=pcmcia_socket" class="sref">pcmodeum>;>pcmodeum>     lass="sref">skt /a>)> 253 /a>{>" class=5socket_setup /a>(struct 5a hre53tures               a href="+code=dev537" class5"line" nam2alL337"> 337 5a>   53 class="sref">thrres /a> &  a href="+code=SS_CAP_CARDBUS" class="sref">SS_CARDBUS /a>;> 373 /aSUS/a> ref=""drivers/pcmcia/cs.c#L254" idalL5>sref">mu5s /a>,  a href="+code=i"5class53orped.\n" 273 /l hrm   a href="+code=s" class="sref">s /59" class=5line" nam2alL339"> 339 /5>    53   a href="+code=dev_dbg" class="sre5""sref">C5/a>(& a href="+code=5kt" c53>ops /a>-> a href="+code=sf">pcmearlycodeum>;>pcmearlycodeum>     href="drivers/pcmcia/cs.c#L360" idalL360ss=3comme38rn - a href="+code=ENO51" class=5line" nam2alL341"> 341 /5>    54ass="sref">st373" clcket" class="sref">pcm> 31codeum>;>pcm> 31codeum>     href="drivers/pcmcia/cs.c#L360" idalL360ss=3comme38rn - a href="+code=ENO51alL322" 5 a href="+code=ops" clas5="sre54 372  o="+code=SOCKET_2310" iia/cs.c#5"sref">st5tus /a> &  a href="+5ode=S54   spao class="comment">/* give sock5EV" class5"sref">ENODEV /a>;>pcmodmov>;>pcmodmov>     lass="sref">skt /a>)> 253 /a>{> 345 /5>    54classs=3comme38ref="+code=skt" class=5>msleep /5>( a href="+code=initial5delay54class="sref">initial_delay /, & a href="+code=skt" class="sref">skt /a>-> a href=NOTIC" nam2alL333"> 3href=NOTIC"ev /a>,> 360 /a>           href="+code=s" class="sref">s /57" class=5line" nam2alL347"> 347 /5>    54+code=socket" class=" ivers/pcmcia/cs.c#L368" idalL#L313": c#L37ejeccelLfrom /lot %d83 /a> spao cla  |=  a href="+code=SOCKET_CARDBUS" class="sref">SOCKET_CARDBUS+code=ops_mutex" csf">ops_"drivers/pcmcia/cs.c#L319" idalL35>i /a> = 5;  a href="+code=i" clas5="sre54 class="sref">s /a>-> a hgf">pcmc">pcmcia_socket /a> * a href="+code=s" clahref="drivers/pcmcia/cs.c#L360" idalL360ss=3comme38rn - a href="+code=ENO51" class=5/a>-> a href="+code=o5s" cl5ss="sr o="+code=SOCKET_2310" iia/cs.c#5""sref">C5ref">status /a> &  a5href=54=KERNrivers/pcmcia/cs.c#L335" idalL35ode=ENODE5" class="sref">ENODEV /a5;> 352 /5>    55he /s#L303" idalL303" class/*nProcess aam2alL2 c#L37detecc ="+cod changeao class="comment">         */ /spaon><5" class="5ref">status /a> &  a5href=55t) /spaon>         */ /spaon><5"V" class5a/cs.c#L354" idalL354" c5ass="55aon>         */ /spaon><5"" class=5line" nam2alL355"> 355 /5>    5      a href="drivers/pcmcia/*nebout 20ms ( 37bnaon " namafnamide)7bnfore readL36e" nam2alL2 ="+codao class="comment">         */ /spaon><5"msleep /5sleep /a>(100);>         */ /spaon><5"" class=5" class="line" nam2alL355"> 3555 class="line" nam2alL377"> 3* Som> i82365-baselLsystems sef= multiple SS_DETECT ev=nts du#L36 idalo class="comment">         */ /spaon><5"i /a> = 5line" nam2alL358"> 358 /5>    55sref"p /spaon>         */ /spaon><5"" class=5s /a> &  a href="+co5e=SS_55  a hp /spaon>         */ /spaon><5""sref">C5f">dev_printk /a>( a hre5="+co55 sock#L303" idalL303" classe* a85lprods="shas agepao class="comment">         */ /spaon><5ing">&quo5;voltage interrogation t5m2d o56ass="a href="drivers/pcmcia/*     if ( a href="+code=status" class="5EDOUT" cl5ss="sref">ETIMEDOUT /a>;5ops e=pcmcivoidocket" class="sref">pcmdetecc_changea_socket /a> * a href=detecc_change     lass="sref">skt /a>)> 253 /a>{> 3656tate s=3comme38ref="+code=skt" class=5"ers/pcmc5line" nam2alL364"> 364 /5>    56ne" nam2alL35eatures /a> &  a href="+code=SS_CAP_CARDBUS" class="sref">SS_CARDBUS /a>;> 373 /aSUS/a> ref=""                a href="+code=dev5ref">stat5s /a> &  a href="+co5e=SS_5ARDBUS" class=am2alL35e_socket" class="srenam2alL291"> 291 /a>>skt /a>-> a href="+5ode=f56   a href="+code=s" class="sref">s /5printk" c5ass="sref">dev_printk /a5( a h56+code=socket" class="eatures /a> &  a href="+code=SS_CAP_CARDBUS" class="sref">SS_CARDBUS /a>;> 299 /a>         a")href="+code=s" class="sref">s /5pi /a> = 5"cardbus cards are 5ot su5porped.\n"s /a>-> a ha> * 10);>EINVAL /a5;>SOCKET_CARDBUef="+code=skt" class="sref">skt /a>, & a href="+code=status" class="sref">status /a>);> 349 /a>                if (!( a href="+code=statu5sref">skt5/a>-> a href="+code=s5ate" 57ef="drivers/pcmcia/cseatues /a> &  a href="+code=SS_CAP_CARDBUS" class="sref">SS_CARDBUS /a>;> 299 /a>         a" cmciacmcia     if (!( a href="+code=statu5sDOUT" cl5lL372" class="line" nam25lL37257="drivers/pcmcia/cs.ccccccref">SS_PENDING /a>))> s=DETECT   a")href="+code=s" class="sref">s /5sref">skt5/a>-> a href="+code=s5ate" 57=KERN_ERR" class="sres="sref">s /a>-> a hgf">pcmodmov>;>pcmodmov>     href="drivers/pcmcia/cs.c#L360" idalL360ss=3comme38rn - a href="+code=ENO54" class=5line" nam2alL374"> 374 /5>    57ers/pcmcia/cs.c#L344"eatures /a> &  a href="+code=SS_CAP_CARDBUS" class="sref">SS_CARDBUS /a>;> 299 /a>         a" cmciacmcia     if (!( a href="+code=statu5sef">stat5ers/pcmcia/cs.c#L375" id5lL37557RDBUS" class=am2alL355555ef">SS_PENDING /a>))> s=DETECT   a")href="+code=s" class="sref">s /5sass="sre5age requirements, and ap5ly po57tures" class="sref">fs="sref">s /a>-> a hgf">pcm285" cocket /a> * a href="+c285" c     "line" nam2alL30mcia/cs.c#L360" idalL360ss=3comme38rn - a href="+code=ENO5 href="dr5vers/pcmcia/cs.c#L377" i5alL3757 /a>-> a h o="+code=SOCKET_2310" iia/cs.c#5ref">stat5s /a> &  a href="+co5e=SS_57  if drivers/pcmcia/cs.c#L364" idalL35="sref">s5t /a>-> a href="+cods5cket"57   a href="+code=dev_dbg" class="sre5lass="sre5">status /a> &  a hr5f="+c57 socke=pcmcia_socket" class="sr#L313"=a_socket /a> * #L313"=     voidoass="line" nam2a__0mcia/cs.c#L360" i__0mcref="drivers/pcmcia/cs.c#L254" idalL5sref">skt5/a>-> a href="+code=s5ate" 5lass="               a href="+code=dev5#L366" id5lL366" class="line" nam25lL38258>ops /a>->lass="sref">skt /a>)> 253 /a>{>. a href="+cod__0mcia/cs.c#L360" i__0mcref=s=3comme38rn - a href="+code=ENO5sref">skt5/a>dev_printk /a>( a hre5="+co5e=KERN_ERR" cls /5EV" class5"sref">ENODEIO;>SOCKET_CARDBUthreadSOCKET_CARDBUS"threadref=./a>. a href="+codcurrent2alL295"> 29f /aurrent   a href="+code=s" class="sref">s /5Eass="sre5cvoltage requirements, a5d app58class="sref">initial_delay /det_socket" class="sref">set_socket /a>( a hrS+co href="drivers/pcmcia/cs.c#L304" idalL304" class="line" nam2alL304"> 304 /a>         a href="+code=s" class="sref">s /5unconfigu5es a socket and turns of5 sock58 /a>-> a href="+code=get_se=SOCKET_CARDBUS" class="sref">SOCKET_CARDBUef="+code=skt" class="sref">skt /a>, & a /cs.c#L305" idalL305" class="line" nam2alL30mcia/cs.c#L360" idalL360ss=3comme38rn - a href="+code5dalL34EV"5cia/cs.c#L288" idalL288"588"4c58S_47 class="sref">s /a>-> a hget_status" class="sref">get_status /a>( a href="+code=skt" class="sref">skt /a>, & a href="+code=skt" class="sref">skt /a>-> a href="+code=socket" class="sref">socket /a>);> 264 /a>         a href="+code=s" class="sref"5s /4 clas5="s4ef">socket_shutdown 5a>(4t5uct48   a href="+code=dev_dbg" class=5sre490" c5ass4"line" nam2alL290"> 590 4a5   48>ops /a>-&s="sL303" idalL303" clasregisterasse wass76 vice c7bnfcia/*     if ( a href="+code=status" claslL34ref">5tat4s /a>;> 360 /a>  ice_registerkt /a /a>,> 360 /a>          a href="+code=s" class="sref"5ENO42" cl5ss=4line" nam2alL292"> 252 /4>5   49>ops /a>-f">f="sr&= ~ a hrefrvers/pcmcia/cs.c#r  ef=""                a href="+code=lL34">dev5dbg4/a>(& a href="+c5de=4"59f"43=KERN_ERR" class="sref">KERN_ERR /a>, & a href="+code=skt" class="sref">skt /a>-> a hWARNIN20 /ae" nam2alL3; a hWARNIN2TIC"ev /a>,> 360 /a>           href="+code=s" class="sref">ock44" cl5ss=4line" nam2alL294"> 254 /4>59  57ers/pcmcia/cs.c#LERR" class=" :vers/pcmcia/cs.c#L368" idalL i: unableeemsregistera4 /a> clae83 /a> spao class=3comme38rn - a href="+code5dev4s /a>5>4 a href="+code=callb5ck"4c5ass49cs.c#L325" idate t /a a href="+c"+code=SOCKET_CARDBUS" class="sref">SOCKET_CARDBUthreadSOCKET_CARDBUS"threadref=./a>. a href="NULLam2alL369"> 369NULL       a href="+code=s" class="sref">ENO4ef">s5/a>4> a href="+code=c5llb4c5" c49tures" class="sre=./a>. a href="+ompleCARDBUS /a>;>,> 257 /4>5   49f="+code=KERN_ERR a h#L362" "drivers/pcmcia/cs.c#L311" idalL34ref">5ute4_lock /a>(& a hr5f="4c5de=49orped.\n& if drivers/pcmcia/cs.c#L364" idas /4>->5 a 4ref="+code=state" cl5ss=4s59co42">fake_cis /a> =  a href="+crvers/pcmcia/cs.c#r     a./a>. a href="> * #L_sysfs_adlass="line" nam2alL304"> * #L_sysfs_adlass="likt /a /a>,> 360 /a>          a href="+code=s" class="sref"5Ere490" c5p /4>( a href="+code=shu5dow4_59mo4e socket power="sr&= ~ a hrefrvers/pcmcia/cs.c#r  ref="drivers/pcmcia/cs.c#L254" i6lL35>->6 a 5ref="+code=state" cl6ss=5s60"s52ef="drivers/pcmcia/cs>. a href="=sktwarpcmcia_socket /a=sktwarpkt /a /a>,> 360 /a>       idalL340" class="line" nam2aerr/lot &# adl du#" nam2aat="lbutes37;d83 /a> spao cla  |=  a href=hrefrvers/pcmcia/cs.c#r  r   a href="+code=s" class="sref"6dev52" cl6ss=5line" nam2alL302"> 362 /5>60  4    a href="+code=s" class="sref"6ENO522 cl6ss=5la>(& a href="+c6de=5"603646tate /a> &= ~ a href+ompleCARDBUS /a>;>,>->6 a 5ref="+code=socket" c6ass5"60ve58  if ( a href="+code=status" cla6lL35>4>6 a 5ra href="+code=callb6ck"5e60cl58RDBUS" clas="sL303" idalL303" claswaiev=nt us+copaceeemscatch u6code=7ivef">pcm> 31codeum>     lass="sref">skt /a> 372  o="+code=S clasregisterasse wass76 vice c7bnfcia/*     if ( a hr=" idalLdalBus idalL2s "" cl4" class="line" nam2alL264"> 264 /a>         a hklL301311"> km2alLef">3u> 26416 idal              a hre6="+co605dalL34EV"5cia/cs.c#L288" idaef"" clzclase=skt" class="sref"" clzclasc7bnf/*     if ( a hr=" idalLdalBus idal8u> 26416 if drivers/pcmcia/cs.c#6="sre6">s /5>-> acl58(;;">f="sr&= ~ a hrefrvers/pcmcia6ref="driv6rs/)drivers/pcmcia/cs.c#6311" 60"sre5o class="5idalL3unsigned loidaa/cs.c#L288" idflagget_status" clasflaggadref=./a>. a href="NULLam2alL369"> 6ow5ss="s56=KERNrivers/pcmcia/cs.c#6335" 6dalL351" class=5line" unsigned t5/a>dev_printk /a>> i823et_status" clas> i823adref=./a>. a href="NULLam2alL369"> 6ocs.c#r  r360ss=3comme38rn - a hre6="+co6e=ENO5on we can5be surunsigned t5/a>dev_printk /a>* #L_s> i823et_status" clas* #L_s> i823adref=./a>. a href="NULLam2alL369"> 6o/5>60  4 360ss=3comme38rn - a hre6="+co61s.c#5"sref">st5tus /a> &  a href61/a>>ENODEV /a>;>, & TASK_INTERRUPTIBLode=skt" class="TASK_INTERRUPTIBLoine" nBUS"th_" c readSOCKET_CARDBUS"thel5ase /56  if ( a href="+code=sta6us" c61alL35>4> a 5ra href="+code=callba6 /a>     6   a href="+code=cb_free6 clas61dalL56" class=5line" nam2alL326"> 326pint; a _irqsaR" class="sres="srpint; a _irqsaR"p;= ~ a href+ompleCARDBUS /a>;>,> i823adrespef=ed_ARDBUS /a>;> i823et_status" clas/pcmcia> i823adref=./a>. a href="NULLam2alL369"> 6o3u> 26416  if ( a href="+code=sta6us" c61dalL4="string"4"cardbus cards are 4ot su4porped.\n")> i823et_status" clas/pcmcia> i823adress="sref">KERN_ERR /a>rvers/pcmcia/c686odmov> 6  if ( a href="+code=sta6us" c61>s /5>-> a 5ref="+>dev_printk /a>* #L_s> i823et_status" clas* #L_s> i823adrespef=ed_ARDBUS /a>;> i823et_status" clas* #L_s> i823adref=./a>. a href="NULLam2alL369"> 6oef="driv6  if ( a href="+code=sta6us" c6ass="5="sref">C5NFIG_CARDBUS /a>> i823et_status" clas* #L_s> i823adress="sref">KERN_ERR /a>rvers/pcmcia/c6360" idal6360ss=3comme38rn - a hre6="+co6e=ENO5">cb_free5/a>( a href="+code=s"rpinta href_irqrestor" class="sres="srpinta href_irqrestor"p;= ~ a href+ompleCARDBUS /a>;>,> 362a/cs.c#L362" "drivers/pcmcia/cs.c#6311" 62=lL34">dev5dbg4/a>(& a href="+c5L290"> 290 4a>   48>ops /a>-> a href="+code=aef="+code=ops_mutex" class="sref">ops_mutex /a>);>>> i823et_status" clas> i823adresf">SS_PENDING /a>))>5>4 a hree5/a>( a href="+code=s"rT /a>;5ops e=pcmcivoidocket" class="sref">pcmdetecc">skt /a>, & a /cs.c#L305" idalL305" class="line" nam2alL30mcia/cs.c#6/a>      6    "drivers/pcmcia/cs.c6L254"62alL25lass="sre5">skt /a>-> a href6360" idal6360ss=3comme38rn - a hre6="+co62>s /5printk" c5ass="sref"/a>. a href="+co #L_s> i823et_status" clas* #L_s> i823adre">f="sr&= ~ a hrefrvers/pcmcia6t; a h#L362" "drivers/pcmcia/cs.c#6311" 62>s /5pi /a> = 5"cardbus ref"/a>. a href="+co #L_s> i823et_status" clas* #L_s> i823adresf">SS_PENDING /a>))> 6 if drivers/pcmcia/cs.c#6364" 62>s /5>-> a 5ref="+code=fake5/a>( a href="+code=s"rT /a>;N_ERR" class="sres="sref">s /a>-> a hgf">pcmodmov>;>pcmodmov>     href="drivers/pcmcia/cs.c#6re5="+co56   a href="+code=dev_dbg6 clas62ss="5="sref">C5NFIG_Ccardbus ref"/a>. a href="+co #L_s> i823et_status" clas* #L_s> i823adresf">SS_PENDING /a>))>cb_free5/a>( acode=fake5/a>( a href="+code=s"rT /a>;s" class="sref">fs="sref">s /a>-> a hgf">pcm285" cocket /a> * a href="+c285" c     "line" nam2alL30mcia/cs.c#6 aga285t 6  if ( a href="+code=sta6us" c63tatu5sDOUT" cl5lL372" clas > a href="+code=s5at #L_s> i823et_status" clas* #L_s> i823adresf">SS_PENDING /a>))>ass="ss="line" nam2alL299"> 299 /a>      6has been 6  if ( a href="+code=sta6us" c63>s /5sref">skt5/a>-> a hreeeeeeeee100);> &  a href="+code=SS_CAP_CARDBUS" class="sref">SS_CARDBUS /a>;>f="sr&= ~ a hrefrvers/pcmcia6+code=sao6class="comment">        6*/ /s63>ock44" cl5ss=4line" nam2alL294"dbus ref"/a>. a href="+co373 /a>>5>4 a hree5/a>( acode=fake5/a>( a href="+code=s"ck"4class49cs.c#L325" idate t /a a href="+co /5>    52tures" class="sref">fs /a> &  a href="+code=SS_CAP_CARDBUS" class="sref">SS_Cine" namreef="+code=skt" class="sref">skt /a>, & a huspef=a_socket /a> * auspef=    ahref="drivers/pcmcia/cs.c#6 /a>{>s /5sass="sre5age requiremennnnnnnnnelse    ahref="drivers/pcmcia/cs.c#6 60" idal6ures               a hre6="+co63dalL47" class=4line" nam2alL2code=fake5/a>( a href="+code=s"ck"4class49cs.c#L325" idate "sref">KERN_ERR /a>rvers/pcmcia/c6/aSUS/a> 6ef=""drivers/pcmcia/cs.c6L254"6idalL5>sref">mu5s /a>,,,,,,,,,,,,,,,,,nam2ane" nam2alL292"> 252 /4>5   49>ops /a>-f">f="sr&= ~ a hrefrvers/pcmcia6273 /l hr6   a href="+code=s" clas6="sre63>s /5>-> a 5ref="+code=fake5/a>( ae5/a>( a href="+code=s"f">s /a>eef="+code=skt" class=">s /a>eef="+>skt /a>, & a huspef=a_socket /a> * auspef=    ahref="drivers/pcmcia/cs.c#6 e5="+co56   a href="+code=dev_dbg6 clas63ss="5="sref">C5NFIG_Ccardbus e5/a>( ae5/a>( a href="+code=s"asregisterasse wass76 vice c7bnf10a/*     if ( a hr=" idalLdalBus ida360" idal6360ss=3comme38rn - a hre6="+co64=ENO5">cb_free5/a>( acode=fake5/a>( ae4_lock /a>(& a hr5f="4c5de=6360" idal6360ss=3comme38rn - a hre6="+co64tatu5sDOUT" cl5lL372" clas &ge4_lock /a>(& a hr5f="4c5de=63as been 6372  o="+code=SOCKET_2316" iia64>s /5sref">skt5/a>-> a hret; a href="+code=s5at #L_s> i823et_status" clas* #L_s> i823adresf">SS_PENDING /a>))>ass="ss="line" nam2alL299"> 299 /a>      6"+5ode=S56   spao class="comment">6* giv64>ock44" cl5ss=4line" nam2alL294"dbus 100);> &  a href="+code=SS_CAP_CARDBUS" class="sref">SS_CARDBUS /a>;>f="sr&= ~ a hrefrvers/pcmcia6 /a>{>5>4 a hree5/a>( acode=fak href="+code=s"ck"4class49cs.c#L325" idate t /a a href="+co> 335 /5>stat53cs.c#e=pcmcia_socket" class="s/a>, & a huspef=a_socket /a> * auspef=    ahref="drivers/pcmcia/cs.c#6/5>    546lasss=3comme38ref="+code6skt" 64>s /5sass="sre5age requiremennnnnnnnnnam2ane" nam2alL292"> 252 /4>5   49>ops /a>-flass="ss="li/a>. a href="+co373 /a>>     6     href="+code=s" clas6="sre6">s /57" class=5line" nama hree5/a>( acode=fak href="+code=s"o /5>    52tures" class="sref">fs /a> &  a href="+code=SS_CAP_CARDBUS" class="sref">SS_Cine" nam/5>stat53cs.c#e=pcmcit" class="s/a>, & a huspef=a_socket /a> * auspef=    ahref="drivers/pcmcia/cs.c#6/aSUS/a> 6ps_"drivers/pcmcia/cs.c#6319" 64dalL5>sref">mu5s /a>,,,,,,,,,e4_lock /a>(& a hr5f="4c5de=6373 /l hr6360ss=3comme38rn - a hre6="+co64>s /5>-> a 5ref="+code=fakt; a href="+code=s5at #L_s> i823et_status" clas* #L_s> i823adresf">SS_PENDING /a>))>ass="ss="line" nam2alL299"> 299 /a>      6"e5="+co56="sr o="+code=SOCKET_2316" iia64ss="5="sref">C5NFIG_Ccardbus e5/a>( a100);> &  a href="+code=SS_CAP_CARDBUS" class="sref">SS_CARDBUS /a>;>f="sr&= ~ a hrefrvers/pcmcia6 a5href=56=KERNrivers/pcmcia/cs.c#6335" 65=ENO5">cb_free5/a>( acode=fake5/a>( anam2ane" nam2alL292"> 252 /4>5   49>ops /a>-flass="ss="li/a>. a href="+co373 /a>>    52tures" class="sref">fs /a> &  a href="+code=SS_CAP_CARDBUS" class="sref">SS_Cine" nam/5quers/pcmcia/cs.c#L349quersss="s/a>, & a huspef=a_socket /a> * auspef=    ahref="drivers/pcmcia/cs.c#6 changeao6class="comment">        6*/ /s65>s /5sref">skt5/a>-> a hree4_lock /a>(& a hr5f="4c5de=6ivers/p*o6class="comment">        6*/ /s65>ock44" cl5ss=4line" e4_lock /a>(& a hr5f="4c5de=6i/a>{>        6*/ /s655dev4s /a>5>4 a href="+code=callb5292"> 292 /4>    49>ops /a>-> a href="+code=ref="+f="+code=ops_mutex" class="sref">ops_mutex /a>);>        6*/ /s65alL25lass="sre5">skt /a>-> a href6>        6*/ /s65>s /5printk" c5ass="sref"/a>. a href="+c> i823et_status" clas> i823adres||+>dev_printk /a>* #L_s> i823et_status" clas* #L_s> i823adre=="sr&= ~ a hrefrvers/pcmcia6paSUS/a> 6class="comment">        6*/ /s65dalL5>sref">mu5s /a>,,,,,,,,,continuenBUS"th_" c readSOCKET_CARDBUS"th 73 /l hr6class="comment">        6*/ /s655s /4 clas5="s4ef">socket_shutdown 56ms afte;o6class="comment">        6*/ /s65ss="5="sref">C5NFIG_Cref"/a>. a href="+ck/pcmciashoul);>        6*/ /s66=ENO5">cb_free5/a>( acode=fakbcmcknBUS"th_" c readSOCKET_CARDBUS"thcmcia/*  6  if ( a href="+code=sta6us" c666dev52" cl6ss=5line" nam2alL302"> 362 /a>{>dev5dbg4/a>(& a href="+c5s2 /5uase=skt" class="sr2 /5uas="+colnBUS"th_" c readSOCKET_CARDBUS"thcvers/p*o6ate s=3comme38ref="+code6skt" 66alL34EV" class4"sref">ENODEV /a>;>{>stae4_lock /a>(& a hr5f="4c5de=6 /a>>skt /a> 372 5ra href="+code=callb6ckmak class=we03" irunn idab/pcmciwe0exitdalL303" claswaiev=nt us+copaceeemscatch u"+5ode=f56   a href="+code=s" clas6="sre66>s /5unconfigu5es a socket anef"eadref=t;cardbus cards are noef"eadref=t;cardKERN_ERR /a>, & TASK_RUN+code=skt" class="sTASK_RUN+codadre nBUS"th_" c readSOCKET_CARDBUS"th/a>      6  a")href="+code=s" clas6="sre6">s /5BUS"th_" c readSOCKET_CARDBUS"th/73 /l hr6i2="drivers/pcmcia/cs.c#6347" 668>skt /a> 372 5ra href="+code=callb6ck>-&g t; aalL340",Crefa-&s="sL3is stref="+a hredalL303" claswaiev=nt us+copaceeemscatch u"s afte;o6   a href="+code=dev_dbg6 clas665Ere490" c5p /4>( a href="+code=   57ers/pcmcia/cs.c#L344"eatures /a> &  a href="+code=SS_CAP_CARDBUS" class="sref">SS_CARDBUS /a>;>skt5/a>-&gmp; a href="+c5L290"> 290 4a>   48>ops /a>-> a href="+code=aef="+code=ops_mutex" class="sref">ops_mutex /a>);>;N_ERR" class="sres="sref">s /a>-> a hgf">pcmodmov>;>pcmodmov>     href="drivers/pcmcia/cs.c#6 s=DETECT6  a")href="+code=s" clas6="sre6">s /5sref">skt5/a>-&gf="+code=callb5292"> 292 /4>    49>ops /a>-> a href="+code=ref="+f="+code=ops_mutex" class="sref">ops_mutex /a>);>(& a hr5f="4c5de=6  a" cmci6cmcia     if (!( a href=6+code67alL35>4> a 5ra href="+code=callba6 s=DETECT6  a")href="+code=s" clas6="sre67">skt /a> 372 5ra href="+code=callb6ck/a>-&gers/pc/a>-&s="sL303" idalL303" clasregisterasse wass76 vice c76360" idal6360ss=3comme38rn - a hre6="+co67>s /5unconfigu5es a socket aref="> * #L_s/a>-&g/cs.c#r     a./a>. a href="> * #L_s/a>-&g/cs.c#r="+code=ref="+f="+code=ops_mutex" class="sref">ops_mutex /a>);> 36067 /a>->6 a h o="+code=SOCKET_2316" iia675dalL34EV"5cia/cs.c#L288" id/a>. a unrs/pcmcia/cs.c#r     a./a>. a unrs/pcmci="+code=ref="+f="+code=ops_mutex" class="sref">ops_mutex /a>);> 3606773 /l hr6 if drivers/pcmcia/cs.c#6364" 6dalL35="sref">s5t /a>-> a href="+c6ds5cket"56   a href="+code=dev_dbg6 clas675Ere490" c5p nam2alL297"> 257 /4>5   49f="+code=KERN_660" i__0m6ref="drivers/pcmcia/cs.c6L254"6idalL5e4_lock /a>(& a hr5f="4c5de=6s5ate" 5l6ss="               a hre6="+co686dev52" cl6ss=5line" nam2alL302"> 36260" i__0m6ref=s=3comme38rn - a hre6="+co68on><5" class="5ref">status f">ENODEV /a5;><5"" class=5line" nam2alL35_CArtebout 20hansler /pcmcick#L303" idalL303" classe* a85lprods="s6f /aurren6   a href="+code=s" clas6="sre68on><5"msleep /5sleep /a>(100)alL303" clasregisterasse wass76 vice c76 /a>     6   a href="+code=s" clas6="sre6">s /5cl5ss="sref">ETIMEDOs="srefparses> i823et_status" class="srefparses> i823="+cod5lL366" class="line" nam25lL38258>ops /a>->lass="sref">skt /a>)>)>/a>. a href="+c> i823et_status" clas> i823adreL353" class=DETECTe" nam2alL299"6360" idal6360ss=3comme38rn - a hre6="+co6e5dalLf="sr&= ~ a hrefrvers/pcmcia6 /a>     6   a href="+code=s" clas6="sre688>skt /a> 372unsigned loidaa/cs.c#L288" idflagget_status" clasflaggadref=./a>. a href="NULLam2alL369"> 6>(4t5uct46   a href="+code=dev_dbg6 clas68"sre5""sref">C5/a>(& a h7 /5ass="50+code=socket" class="sref">socket /af="+codeutex" class="sre/a>)a>,>parses> i823:m> i8236 /a> 0840uspef= "driv 0x>/a>. a href="+c> i823et_status" clas> i823adreLf=./a>. a href="NULLam2alL369"> 6nfcia/*  6  if ( a href="+code=sta6us" c6aslL34ref">5ta/4>( a href="+code= utex" class="sre/a>)a>,>      6   a href="+code=s" clas6="sre69tatu5sDOUT" cl5lL372" href="+code=s"rpint; a _irqsaR" class="sres="srpint; a _irqsaR"p;= ~ a href+ompleCARDBUS utex" class="sre/a>)a>,>dev5dbg4/a>(& a href="+c5 utex" class="sre/a>)a>,> i823adres|e t /a a href="+c> i823et_status" clas> i823adref=./a>. a href="NULLam2alL369"> 6 /a>     6     href="+code=s" clas6="sre6">ock44" cl5ss=4line"  href="+code=s"rpinta href_irqrestor" class="sres="srpinta href_irqrestor"p;= ~ a href+ompleCARDBUS utex" class="sre/a>)a>,>ENO4ef">s5/a>4> a href="+code=c5waka up_p"> 352et_status" claswaka up_p"> 352t; a hgf">pcmodmov>;>utex" class="sre/a>)a>,>     6   a href="+code=s" clas6="sre69=ENO5 href="dr5vers/pcmcia/cs.c#L377" i5alL376RR a h#L362" "drivers/pcmcia/cs.c#6311" 6dalL34}2 5ra href="+code=callb6cks="srefparses> i8230)alL303" clasregisterasse wass76 vice c769orped.\n6 if drivers/pcmcia/cs.c#6364" 6das /4a href="driversEXPORT_SYMBOdSOCKET_CARDBUS"EXPORT_SYMBOdt; a hgf">pcmodmov>;s="srefparses> i823et_status" class="srefparses> i823="+ccnBUS"th_" c readSOCKET_CARDBUS"thc(4t5uct46   a href="+code=s" clas6="sre69s.c#5""sref">C5ref">status /a> &7a/cs.c#r 7ref="drivers/pcmcia/cs.c7L254"70alL35ode=ENODE5" class="sref"">ENODEV /a5;> i823:mmmmm> i8230s="ps5a0s="ppcmcia_sde=nt idalL1="+cod bi2 =eems  37boun7 45>60  47 lass=3comme38rn - a hre7us" c70on><5"" class=5line" nam2alL3_sde=nt idalL1="+cod bi2 =eems  37boun7 55>60  47   a href="+code=s" clas7s="sr70on><5"msleep /5sleep /a>(100)8RDBUS" cl-issued58"> 35,ass=" , >eef="+>    t" cla e" nansL mustrs/_sde=nt idalL1="+cod bi2 =eems  37boun7 65>60  47   a href="+code=s" clas74"> 270on><5"" class=5" class="line" hansled by =pcmciaas="acl5ssany * #L_-reass=rivead2 /4s. Val5ss> i823="de=nt idalL1="+cod bi2 =eems  37boun7 75>60  47 " "drivers/pcmcia/cs.c#7="+co70on><5"i /a> = 5line" nam2alL353" is.c#LE_UEVENT_EJ="d (cl58ss=" ),is.c#LE_UEVENT__INSERd (cl588"> 35),="de=nt idalL1="+cod bi2 =eems  37boun7 85>60  47 if drivers/pcmcia/cs.c#7="sre70on><5"" class=5s /a> &  a s.c#LE_UEVENT_RESUMo (cl58t" cla),is.c#LE_UEVENT_>eef="+)="de=nt idalL1="+cod bi2 =eems  37boun7 95>60  47   a href="+code=s" clas7311" 70on><5""sref">C5f">dev_printk /    s.c#LE_UEVENT_REQUERr (cl58t"-quersebout 20s.c#LE0cmci)ck#L303" idalL303" classe* a85lprods="s7ow5ss="s57=KERNrivers/pcmcia/cs.c#7335" 71on><5ing">&quo5;voltage interrogation t5m2d o56ass="a href="drivers/7ocs.c#r  7360ss=3comme38rn - a hre7="+co7e=ENO5cl5ss="sref">ETIMEDOs="srefparsesu> i823et_status" class="srefparsesu> i823="+cod5lL366" class="line" nam25lL38258>ops /a>->lass="sref">skt /a>)>)>/a>. a href="+c> i823et_status" clas> i823adreL353" class=DETECTe" nam2alL299"7o/5>60  47360ss=3comme38rn - a hre7="+co71dalL5" idalL365" class="line" nam2alL71/a>>. a href="NULLam2alL369"> 7el5ase /57  if ( a href="+code=sta7us" c71ss="5374" idal5374" class="l7 /5ass="50+code=socket" class="sref">socket /af="+codeutex" class="sre/a>)a>,>parsesu> i823:m> i8236 /a> 0840uspef= "driv 0x>/a>. a href="+c> i823et_status" clas> i823adreLf=./a>. a href="NULLam2alL369"> 7 /a>     7   a href="+code=cb_free7 clas71dalL56" class/4>( a href="+code= utex" class="sre/a>)a>,>    49>ops /a>/pcmcia2 /4alL360"/cs.c#L288" idflagget_status" clasflaggadre nBUS"th_" c readSOCKET_CARDBUS"t7o3u> 26417  if ( a href="+code=sta7us" c71dalL4="string"4"cardbus cards arutex" class="sre/a>)a>,> i823adres|e t /a a href="+c> i823et_status" clas> i823adref=./a>. a href="NULLam2alL369"> 786odmov> 7  if ( a href="+code=sta7us" c71>s /5>-> a 5ref="+>dev_printk /a>*pinta href_irqrestor" class="sres="srpinta href_irqrestor"p;= ~ a href+ompleCARDBUS utex" class="sre/a>)a>,>C5ref">status /a> &7360" idal7360ss=3comme38rn - a hre7="+co7e=ENO5">cb_free5/a>( a href="+code=s"waka up_p"> 352et_status" claswaka up_p"> 352t; a hgf">pcmodmov>;>utex" class="sre/a>)a>,>>pcmodmov>;s="srefparsesu> i823et_status" class="srefparsesu> i823="+ccnBUS"th_" c readSOCKET_CARDBUS"t73l5ase /57ef="drivers/pcmcia/cs.c#7323" 72alL35>4> a 5ra href="+code=callba7/a>      7    "drivers/pcmcia/cs.c7L254"72alL25lass="sre5">skt /a>-> a href7360" idal7360ss=3comme38rn - a hre7="+co72on><5"" class=5" class="lin590 4a5   48s="srefRDBUS" cerrogation t5m2d o56ass="a href="drivers/7t; a h#L372" "drivers/pcmcia/cs.c#7311" 72>s /5re5">status /a> &  a  href="6 _ref="d     a./a>. a href="> href="6 _ref="d="+cod5lL366" class="line" nam25lL38258>ops /a>->lass="sref">skt /a>)>)> 7 if drivers/pcmcia/cs.c#7364" 72>s /5f="sr&= ~ a hrefrvers/pcmcia7re5="+co57   a href="+code=dev_dbg7 clas72ss="5="sref">t5/a>dev_printk /a>( a hre5="+co5e=KERN_ERR"te "sref">KERN_ERR /a>rvers/pcmcia/c7 class=" 7  if ( a href="+code=sta7us" c73=ENO5ref">KERN_ERR /a>rvers/pcmcia/c7 60" idal7  if ( a href="+code=sta7us" c73tatu5sDOUT" c 5ra href="+code=callb6ck>a>,>a>,>(& a hL290"> 290 4a>   48>ops /a>-> a href="+code=aef="+code=opsutex" class="sre/a>)a>,>        7*/ /s736lL35>->6 a 5ref="+code=socket" c67+l5ase /57  if ( a href="+code=sta7us" c735dev4s /a>5&g/4>( a href="+code=c+code=SS_CAP_CAcadreLlf="sr&= ~ a hrefrvers/pcmcia7 /a>{>s /5sass="sre5age re"" class=5" class="lin590 4a5  raill7prrogation t5m2d o56ass="a href="drivers/7h60" idal7ures               a hre7="+co73dalL47" class=4line" /4>( a href="+code= utex" class="sre/a>)a>,>sref">mu5s /a>,,,,,,,,,>dev_printk /a>( a hre5="+co5e=KERN_ERR"te -a href="driversEBUSrped.\n". a href="NULLam2alL369"> 7273 /l hr7   a href="+code=s" clas7="sre73>s /5>-> a 5ref="+code=fakgoto t /a a href="+c>ria/cs.c#r     a.>riadref=./a>. a href="NULLam2alL369"> 72e5="+co57   a href="+code=dev_dbg7 clas73ss="5="sref">C5NFIG_Cr5vers/pcmcia/cs.c#L377" i5alL377360" idal7360ss=3comme38rn - a hre7="+co74=ENO5ref">KERN_ERR /a>rvers/pcmcia/c7360" idal7360ss=3comme38rn - a hre7="+co74tatu5sDOUT" cl5lL372" a href="+code= utex" class="sre/a>)a>,>SOCKET_CARDBUthr+code=SS_CAP_CAcadref=./a>. a href="NULLam2alL369"> 73as been 7372  o="+code=SOCKET_2317" iia74s.c#5"sref">st5tus /a> &  a href7"+5ode=S57   spao class="comment">7* giv74>ock44" cl5ss=4line" t; a href="+code=s5atutex" class="sre/a>)a>,>;>=">SOCKET_CARDBUthUS /a>;>st5tus /a> &  a href7"l5ase /57ref="drivers/pcmcia/cs.c7L254"745dev4s /a>5>4 a hree5/a>( a a href="+code= utex" class="sre/a>)a>,>,>skt /a>, & a husutex" class="sre/a>) nBUS"th_" c readSOCKET_CARDBUS"t7/5>    547lasss=3comme38ref="+code7skt" 74>s /5sass="sr}nelse    ahref="drivers/pcmcia/cs.c#7 /a>     7     href="+code=s" clas7="sre7">s /57" class=5line"  a href="+code= utex" class="sre/a>)a>,>SOCKET_CARDBUthreadSOCKET_CARDBUS"threadref=./a>. a href="NULLam2alL369"> 7/aSUS/a> 7ps_"drivers/pcmcia/cs.c#7319" 74dalL5>t /a a href="+c>ria/cs.c#r     a.>riadre:=./a>. a href="NULLam2alL369"> 7/73 /l hr7360ss=3comme38rn - a hre7="+co74as /4>->5 a 4ref="+code=st292"> 292 /4>    49>ops /a>-> a href="+code=ref="+f="+code=opsutex" class="sre/a>)a>,>C5ref">status /a> &7 a5href=57=KERNrivers/pcmcia/cs.c#7335" 75=ENO5">cb_frenam2alL>dev_printk /a>( a hre5="+co5e=KERN_ERR"nBUS"th_" c readSOCKET_CARDBUS"t7pcmcia=" 7  if ( a href="+code=sta7us" c75tatu5r5vers/pcmcia/cs.c#L377" i5alL377 changeao7class="comment">        7*/ /s75>s /5a href="driversEXPORT_SYMBOdSOCKET_CARDBUS"EXPORT_SYMBOdt; a hgf">pcmodmov>;s=  a  href="6 _ref="d     a./a>. a href="> href="6 _ref="d="+c nBUS"th_" c readSOCKET_CARDBUS"t7ivers/p*o7class="comment">        7*/ /s756lL35>->6 a 5ref="+code=socket" c67i/a>{>        7*/ /s75alL35>4> a 5ra href="+code=callba7 ="+codao7class="comment">        7*/ /s75on><5"msleep /5sleep /a>(10590I5ass=m notclass=which spef= +a htspef=  funcill7pthis3is supposeaas="use,="de=nt idalL1="+cod bi2 =eems  37boun7>        7*/ /s75on><5"" class=5" class="line" bu60cl58now, it"usesut 20low-level t5/erface5ass=s +a ht, notct 2="de=nt idalL1="+cod bi2 =eems  37boun7>aSUS/a> 7class="comment">        7*/ /s75on><5"i /a> = 5line" nam2alL35CIS0 4a5   4ck#L303" idalL303" classe* a85lprods="s7 73 /l hr7class="comment">        7*/ /s75on><5"" class=5s /a> &  arogation t5m2d o56ass="a href="drivers/7ms afte;o7class="comment">        7*/ /s75s.c#5""sref">C5ref">status /a> &7as agepao7class="comment">        7*/ /s76=ENO5re5">status /a> &m25lL+a ht_f=">+code=SS_CAP_CAnam25lL+a ht_f=">="+cod5lL366" class="line" nam25lL38258>ops /a>->lass="sref">skt /a>)>pcmodmov""sref">C5ref">status /a> &7acmcia=" 7  if ( a href="+code=sta7us" c766dev5f="sr&= ~ a hrefrvers/pcmcia7 /a>{>skt5/a>dev_printk /a>( a hre5="+co5e=KERN_ERR" cl->6 a 5ref="+code=socket" c67c/a>{>socket /af="+codesocket /a=sktwarpkt /a /a>,>+a htt idalL340".c#L368" idalL i: unableeemsregistera4 /a> clae87 /a>>skt /a>-> a href7"+5ode=f57   a href="+code=s" clas7="sre76>s /5unconfigu5es a socket aL290"> 290 4a>   48>ops /a>-> a href="+code=aef="+code=ops_mutex" class="sref">ops_mutex /a>);>      7  a")href="+code=s" clas7="sre76dalL5>sref">mdolf="sr&= ~ a hrefrvers/pcmcia7/73 /l hr7i2="drivers/pcmcia/cs.c#7347" 76>s /5>-> a 5ref="+nam2a( a href="+code=   57ers/pcmcia/cs.c#L344"eatures /a> &  a href="+code=SS_CAP_CARDBUS" class="sref">SS_CARDBUS /a>;>C5NFIG_Ccardbus l5374" class="l7 /5ass="50+code=socket" class="sref">socket /af="+codesocket /a=sktwarpkt /a /a>,>cac5ass="5+a ht, notc"+a hre.c#L368" idalL i: unableeemsregistera4 /a> clae87 /a>     7          if (!( a href=7+code7statu5sref">skt5/a>-&gcardbus l5374" class="l( a hre5="+co5e=KERN_ERR"te -a href="driversENODEVSOCKET_CARDBUS"ENODEVERR" cls /5sref">skt5/a>-&gr5vers/pcmcia/cs.c#L377" i5alL377360" idal7360ss=3comme38rn - a hre7="+co77>ock44" cl5ss=4line" t; a a href="+code=   57ers/pcmcia/cs.c#L344"eatures /a> &  a href="+code=SS_CAP_CARDBUS" class="sref">SS_CARDBUS /a>;>5>4 a hree5/a>( a a href="+code=7 /5ass="50+code=socket" class="sref">socket /af="+codesocket /a=sktwarpkt /a /a>,>cac5ass="5+a ht, >eef="+ed.c#L368" idalL i: unableeemsregistera4 /a> clae87 /a>>dev_printk /a>( a hre5="+co5e=KERN_ERR"te -a href="driversEBUSrped.\n". a href="NULLam2alL369"> 7360" idal7360ss=3comme38rn - a hre7="+co77>s /57" class=5line" nama hrebcmcknBUS"th_" c readSOCKET_CARDBUS"t7 a>      7 a h o="+code=SOCKET_2317" iia77dalL5>sref">mu5s /a>,r5vers/pcmcia/cs.c#L377" i5alL377373 /l hr7 if drivers/pcmcia/cs.c#7364" 77>s /5>-> a 5ref="+nam2 a href="+code=   57ers/pcmcia/cs.c#L344"eatures /a> &  a href="+code=SS_CAP_CARDBUS" class="sref">SS_CARDBUS /a>;>C5NFIG_Ccardbus l5374" class="l7 /5ass="50+code=socket" class="sref">socket /af="+codesocket /a=sktwarpkt /a /a>,>cac5ass="5+a ht, is0cmcibune" nam2aerr/loti: unableeemsregistera4 /a> clae8760" i__0m7ref="drivers/pcmcia/cs.c7L254"78tatu5sref">skt5/a>-&gcardbus l5374" class="l( a hre5="+co5e=KERN_ERR"te -a href="driversEPERMped.\n". a href="NULLam2alL369"> 7s5ate" 5l7ss="               a hre7="+co78tatu5sDOUT" cl5lL372"""""""""bcmcknBUS"th_" c readSOCKET_CARDBUS"t760" i__0m7ref=s=3comme38rn - a hre7="+co78>s /5sref">skt5/a>-&gr5vers/pcmcia/cs.c#L377" i5alL377a/cs.c#r 7   a href="+code=s" clas7="sre786lL35>->6 a 5ref="+code=socket" c67f=5drive57  if ( a href="+code=sta7us" c785dev4s /a>5>4 a hreref"/a>. a href="+co373 /a>>dev_printk /a>o /5>    52tures" class="sref">fs /a> &  a href="+code=SS_CAP_CARDBUS" class="sref">SS_Cine" namreef="+code=skt" class="sref">skt /a>, & a huspef=a_socket /a> * auspef=    ahref="drivers/pcmcia/cs.c#7 /a>     7   a href="+code=s" clas7="sre78>s /57" class=5line"  a href="+code=L290"> 290 4a>   48>ops /a>-> a href="+code=aef="+code=ops_mutex" class="sref">ops_mutex /a>);>      7360ss=3comme38rn - a hre7="+co78dalL4="string"4"cardbus cards ack"4class49cs.c#L325" idate t /a a href="+co> 335 /5>k"4class49cs.c#L3o> 335 /5>k">skt /a>, & a huspef=a_socket /a> * auspef=    ahref="drivers/pcmcia/cs.c#7 73 /l hr7   a href="+code=s" clas7="sre78>s /5>-> a 5ref="+>dev_printk /a>292"> 292 /4>    49>ops /a>-> a href="+code=ref="+f="+code=ops_mutex" class="sref">ops_mutex /a>);>C5NFIG_Cref" /a>, & a huck"4class49cs.c#L325" idate= 0">ass="ss="lf"/a>. a href="+co373 /a>>skt5/a>-&gcardbus l5374" class="lo /5>    52tures" class="sref">fs /a> &  a href="+code=SS_CAP_CARDBUS" class="sref">SS_Cine" nam/5>stat53cs.c#e=pcmcit" class="s/a>, & a huspef=a_socket /a> * auspef=    ahref="drivers/pcmcia/cs.c#7/a>      7   a href="+code=s" clas7="sre796dev52" cl6ss=5line" nam2alL302"> 367cs.c#r  e7=""                a hre7="+co7e=lL34">dev5dbg4/a>(& a href="+c5( a hre5="+co5e=KERN_ERR"te "sref">KERN_ERR /a>rvers/pcmcia/c7 /a>     7     href="+code=s" clas7="sre7">ock44" cl5ss}=while (a/*     if ( a hr=" idalLdalBus id7c=5drive57class=3comme38rn - a hre7="+co79ss="5374" idal5374" class="l292"> 292 /4>    49>ops /a>-> a href="+code=ref="+f="+code=ops_mutex" class="sref">ops_mutex /a>);>skt /a>-> a href7c/a>     7   a href="+code=s" clas7="sre79=ENO5 href="dnam2alL>dev_printk /a>( a hre5="+co5e=KERN_ERR"nBUS"th_" c readSOCKET_CARDBUS"t7RR a h#L372" "drivers/pcmcia/cs.c#7311" 7dalL34}2 5ra href="+code=callb6ck+a ht_f="> arogation t5m2d o56ass="a href="drivers/79orped.\n7 if drivers/pcmcia/cs.c#7364" 7das /4a href="driversEXPORT_SYMBOdSOCKET_CARDBUS"EXPORT_SYMBOdt; a hgf">pcmodmov>;s="sref+a ht_f=">+code=SS_CAP_CAnam25lL+a ht_f=">="+c nBUS"th_" c readSOCKET_CARDBUS"t76s afte;o7   a href="+code=s" clas7="sre79s.c#5""sref">C5ref">status /a> &8a/cs.c#r 8ref="drivers/pcmcia/cs.c8L254"80=ENO5ref">KERN_ERR /a>rvers/pcmcia/c8/cs.c#r  8   a href="+code=s" clas8="sre80ss="5_CARickt5/a>dev_printk /a>s="sref">skt su> i82ops /a>->lass="sref">skt su> i82="+cod5lL366" class="line" /a>. amcia/cs.c#L360" id. a/a>)>KERN_ERR /a>rvers/pcmcia/c8/2s.c#r  8 ""                a hre8="sre80>s /5sref">skt5/a>-> a hreeeeeeeeed5lL366" class="line" kobjsu> i82_encmcia/cs.c#L360"kobjsu> i82_enc/a>)>)=="sr&= ~ a hrefrvers/pcmcia8 35>60  48     href="+code=s" clas8="sre80on><5f="sr&= ~ a hrefrvers/pcmcia8 45>60  48 lass=3comme38rn - a hre8us" c80ss="5374" idad5lL366" class="line" nam25lL38258>ops /a>->lass="sref">skt /a>)>SOCKET_CARDBUthronta38rr_of+code=SS_CAP_CARonta38rr_oft; a hgf">pcmodmov>;/pcmcia/cs.c#L360" idalL360d5lL366" class="line" nam25lL38258>ops /a>->lass="sref">skt /a>)60"/cs.c#L288" id/pcmcia/cs.c#L360" idalL360" class="line" nam2alL360"> 3608 55>60  48   a href="+code=s" clas8s="sr80alL25lass="sre5">skt /a>-> a href8 65>60  48   a href="+code=s" clas84"> 280=ENO5 href="dref"/a>. a href="+caddsu> i82_vaia/cs.c#r     a.addsu> i82_vait; a hgf">pcmodmov>;encmcia/cs.c#L360"enc/a>)60" class="line" nam2alL360">iaL301"NO= /a> uspef= "driv 0x>/a>. a href="+csutex" class="sre/a>)a>,>60  48 " "drivers/pcmcia/cs.c#8="+co80dalL4="string"4"nam2alL-a href="driversENOMEMped.\n"60  48 if drivers/pcmcia/cs.c#8="sre80alL35="sref">s5t /a>-> a href="+c8 95>60  48   a href="+code=s" clas8311" 805Ere490" c5p nam2alL297"> 257 /4>5   49f="+code=KERN_8ow5ss="s58=KERNrivers/pcmcia/cs.c#8335" 81dalL5e4_lock /a>(& a hr5f="4c5de=8ocs.c#r  8360ss=3comme38rn - a hre8="+co816dev52" cl6ss=5line" nam2alL302"> 368o/5>60  48360ss=3comme38rn - a hre8="+co81s.c#5"sref">st5tus /a> &  a href81/a>>4> a 5ra href="+code=callba8 /a>     8   a href="+code=cb_free8 clas81dalL5_CARickcl5ss="sref">ETIMEDOs="srefreleasg/cs.c#r_ href+code=SS_CAP_CAnam25lL+aleasg/cs.c#r_ href="+cod5lL366" class="line"  href+code=SS_CAP_CA href="+c> 26418  if ( a href="+code=sta8us" c815dalL34EV"5cia/cs.c#L288" idRoepleiamcia/cs.c#L360"Roepleia="+code=ref="+f="+code=opnam25lLa hr=SOCKET_CARDBUS" nam25lLa hr=SERR"60" class="line" nam2alL360"> 360886odmov> 8  if ( a href="+code=sta8us" c81>s /5e4_lock /a>(& a hr5f="4c5de=8o95>60  48  if ( a href="+code=sta8us" c81s.c#5""sref">C5ref">status /a> &8360" idal8360ss=3comme38rn - a hre8="+co82=ENO5ref">KERN_ERR /a>rvers/pcmcia/c8360" idal8360ss=3comme38rn - a hre8="+co82tatu5#ifdefia/cs.c#L288" idCONFIG_PMped.\n"KERN_ERR /a>rvers/pcmcia/c83/5>60  482" "drivers/pcmcia/cs.c#8311" 82s.c#5"sref">st5tus /a> &  a href8a/a>>dev_printk /a>__s="srefpm_oisterasse wass76__s="srefpm_oi="+cod5lL366" class="line" /a>. amcia/cs.c#L360" id. a/a>)>KERN_ERR /a>rvers/pcmcia/c83l5ase /58ef="drivers/pcmcia/cs.c#8323" 825dev4s /a>5>4 a hree5/a>( acot5/a(ops /a>->lass="sref">skt /a>)>pcmodmov=="sr&= ~ a hrefrvers/pcmcia8/a>      8    "drivers/pcmcia/cs.c8L254"82alL25f="sr&= ~ a hrefrvers/pcmcia8360" idal8360ss=3comme38rn - a hre8="+co82=ENO5 href="dd5lL366" class="line" nam25lL38258>ops /a>->lass="sref">skt /a>)>SOCKET_CARDBUthronta38rr_of+code=SS_CAP_CARonta38rr_oft; a hgf">pcmodmov>;/pcmcia/cs.c#L360" idalL360d5lL366" class="line" nam25lL38258>ops /a>->lass="sref">skt /a>)60"/cs.c#L288" id/pcmcia/cs.c#L360" idalL360" class="line" nam2alL360"> 3608t; a h#L382" "drivers/pcmcia/cs.c#8311" 825dalL34EV"5cit5/a>dev_printk /a>( a hre5="+co5e=KERN_ERR" cls5t /a>-> a href="+c8re5="+co58   a href="+code=dev_dbg8 clas82"sre5""sref">C5/a>(& a hL290"> 290 4a>   48>ops /a>-> a href="+code=aef="+code=opsutex" class="sre/a>)a>,>C5/a>(& a hck"4class49cs.c#L325" idate t /a a href="+cc href="+code=SS_CAP_CARDBUS" class /a>, & a husutex" class="sre/a>) nBUS"th_" c readSOCKET_CARDBUS"t8 60" idal8  if ( a href="+code=sta8us" c83tatu5sDOUT" c 5374" class="l292"> 292 /4>    49>ops /a>-> a href="+code=ref="+f="+code=opsutex" class="sre/a>)a>,>60  48  if ( a href="+code=sta8us" c83s.c#5"sref">st5tus /a> &  a href8+code=sao8class="comment">        8*/ /s83>ock44" cl5ssnam2alL>dev_printk /a>( a hre5="+co5e=KERN_ERR"nBUS"th_" c readSOCKET_CARDBUS"t8+l5ase /58  if ( a href="+code=sta8us" c835dev4e4_lock /a>(& a hr5f="4c5de=8 /a>{>skt /a>-> a href8h60" idal8ures               a hre8="+co83dalL4_CARickt5/a>dev_printk /a>s="sref">skt st" c="sref"_noirqops /a>->lass="sref">skt st" c="sref"_noirq="+cod5lL366" class="line" /a>. amcia/cs.c#L360" id. a/a>)>pcmodmov>;/pcmcia/cs.c#L360" idalL360t /a a href="+co> 335 reef="+code=skt" class=> 335 reef="+adre nBUS"th_" c readSOCKET_CARDBUS"t8 e5="+co58   a href="+code=dev_dbg8 clas83ss="5e4_lock /a>(& a hr5f="4c5de=8360" idal8360ss=3comme38rn - a hre8="+co84=ENO5ref">KERN_ERR /a>rvers/pcmcia/c8360" idal8360ss=3comme38rn - a hre8="+co84ss="5_CARickt5/a>dev_printk /a>s="sref">skt st" ct" cla_noirqops /a>->lass="sref">skt st" ct" cla_noirq="+cod5lL366" class="line" /a>. amcia/cs.c#L360" id. a/a>)>8* giv84>ock44" cl5ssnam2alL>dev_printk /a>__s="srefpm_oisterasse wass76__s="srefpm_oi="+cohgf">pcmodmov>;/pcmcia/cs.c#L360" idalL360t /a a href="+co> 335 early_/5>stat53cs.c#e=pcmcio> 335 early_/5>staadre nBUS"th_" c readSOCKET_CARDBUS"t8"l5ase /58ref="drivers/pcmcia/cs.c8L254"845dev4e4_lock /a>(& a hr5f="4c5de=8/5>    548lasss=3comme38ref="+code8skt" 84alL25lass="sre5">skt /a>-> a href8 /a>     8     href="+code=s" clas8="sre84dalL4_CARickt5/a>dev_printk /a>__use+code=skt" class__use+Ere49" class="line" nam25lL">skt st" ct" claops /a>->lass="sref">skt st" ct" cla="+cod5lL366" class="line" /a>. amcia/cs.c#L360" id. a/a>)>s /5>-> anam2alL>dev_printk /a>__s="srefpm_oisterasse wass76__s="srefpm_oi="+cohgf">pcmodmov>;/pcmcia/cs.c#L360" idalL360t /a a href="+co> 335 ass=_/5>stat53cs.c#e=pcmcio> 335 ass=_/5>staadre nBUS"th_" c readSOCKET_CARDBUS"t8"e5="+co58="sr o="+code=SOCKET_2318" iia84ss="5e4_lock /a>(& a hr5f="4c5de=8 a5href=58=KERNrivers/pcmcia/cs.c#8335" 85=ENO5ref">KERN_ERR /a>rvers/pcmcia/c8pcmcia=" 8  if ( a href="+code=sta8us" c85ss="5_CARickRonst0d5lL366" class="line" t" cpm_oisutex" class="srt" cpm_oisEre49" class="line" nam25lL">skt spm_oisutex" class="srnam25lL">skt spm_ois idate f="sr&= ~ a hrefrvers/pcmcia8 changeao8class="comment">        8*/ /s856ENO522 cl6ss=5ra href="+code=callb6ckt" ct" cla may be RDBUed with IRQs enabUed arogation t5m2d o56ass="a href="drivers/8ivers/p*o8class="comment">        8*/ /s85>ock44" cl5ss" class="line" Sa>;>YSTEM_SLEEP_PM_OPef="drivers/pcmcia>;>YSTEM_SLEEP_PM_OPe="+cohgf">pcmodmov>;readSOCKET_CARDBUS"threadre6ref">KERN_ERR /a>rvers/pcmcia/c8i/a>{>        8*/ /s855dev4s /a>5>4 a hree5/a>( aco cl5ss" class="line" nam25lL">skt st" ct" claops /a>->lass="sref">skt st" ct" cla="+c=="sr&= ~ a hrefrvers/pcmcia8 ="+codao8class="comment">        8*/ /s85alL25lass="sre5">skt /a>-> a href8>        8*/ /s856ENO522 cl6ss=5ra href="+code=callb6ckass= >eef="+>mustrs/ RDBUed with IRQs disabUed arogation t5m2d o56ass="a href="drivers/8i; a h#L38class="comment">        8*/ /s855dalL34EV"5ci.t /a a href="+co"sref"_noirqops /a>->las="sref"_noirq="+cte t /a a href="+cs="sref">skt st" c="sref"_noirqops /a>->lass="sref">skt st" c="sref"_noirq="+c6ref">KERN_ERR /a>rvers/pcmcia/c8i73 /l hr8class="comment">        8*/ /s858dalL34EV"5ci.t /a a href="+cfreeza_noirqops /a>->lasfreeza_noirq="+cte t /a a href="+cs="sref">skt st" c="sref"_noirqops /a>->lass="sref">skt st" c="sref"_noirq="+c6ref">KERN_ERR /a>rvers/pcmcia/c8ie5="+co58class="comment">        8*/ /s859dalL34EV"5ci.t /a a href="+cpoweroff_noirqops /a>->lassoweroff_noirq="+cte t /a a href="+cs="sref">skt st" c="sref"_noirqops /a>->lass="sref">skt st" c="sref"_noirq="+c6ref">KERN_ERR /a>rvers/pcmcia/c8as agepao8class="comment">        8*/ /s86=ENO5ref">KERN_ERR /a>rvers/pcmcia/c8acmcia=" 8  if ( a href="+code=sta8us" c86tatu5sDOUT" c 5ra href="+code=callb6ckearly t" cla mustrs/ RDBUed with IRQs disabUed arogation t5m2d o56ass="a href="drivers/8 /a>{>sk.t /a a href="+ct" cla_noirqops /a>->last" cla_noirq="+cte t /a a href="+cs="sref">skt st" ct" cla_noirqops /a>->lass="sref">skt st" ct" cla_noirq="+c6ref">KERN_ERR /a>rvers/pcmcia/c8avers/p*o8ate s=3comme38ref="+code8skt" 863ENO5sref">sk.t /a a href="+cthaw_noirqops /a>->lasthaw_noirq="+cte t /a a href="+cs="sref">skt st" ct" cla_noirqops /a>->lass="sref">skt st" ct" cla_noirq="+c6ref">KERN_ERR /a>rvers/pcmcia/c8a/a>{>->last" tor"_noirq="+cte t /a a href="+cs="sref">skt st" ct" cla_noirqops /a>->lass="sref">skt st" ct" cla_noirq="+c6ref">KERN_ERR /a>rvers/pcmcia/c8a="+codao8ef="drivers/pcmcia/cs.c#8292" 86alL25}nBUS"th_" c readSOCKET_CARDBUS"t8"+5ode=f58   a href="+code=s" clas8="sre86>s /5BUS"th_" c readSOCKET_CARDBUS"t8"; a h#L38  a")href="+code=s" clas8="sre86dalL5#defcod t /a a href="+cs.c#LE_iaL301" LASS_PM_OPef="drivers/pcmcs.c#LE_iaL301" LASS_PM_OPe="+ctode=ref="+f="+code=opnam25lL">skt spm_oisutex" class="srnam25lL">skt spm_ois ida=="sr&= ~ a hrefrvers/pcmcia8/73 /l hr8i2="drivers/pcmcia/cs.c#8347" 86alL35="sref">s5t /a>-> a href="+c8"s afte;o8   a href="+code=dev_dbg8 clas86ss="5#elsec 5ra href="+code=callb6ckCONFIG_PM arogation t5m2d o56ass="a href="drivers/8 /a>     8          if (!( a href=8+code87=ENO5ref">KERN_ERR /a>rvers/pcmcia/c8  a" cmci8cmcia     if (!( a href=8+code8statu5#defcod t /a a href="+cs.c#LE_iaL301" LASS_PM_OPef="drivers/pcmcs.c#LE_iaL301" LASS_PM_OPe="+cthgf">pcmodmov>;readSOCKET_CARDBUS"threadreref">KERN_ERR /a>rvers/pcmcia/c8 /a>{>st5tus /a> &  a href8360" idal8360ss=3comme38rn - a hre8="+co87>ock4#ef"ifc 5ra href="+code=callb6ckCONFIG_PM arogation t5m2d o56ass="a href="drivers/8 /a>{>4> a 5ra href="+code=callba8 /a>>skt s href+code=SS_CAP_CAnam25lL">skt s href idate f="sr&= ~ a hrefrvers/pcmcia8360" idal8360ss=3comme38rn - a hre8="+co87>s /57" class.t /a a href="+c- a +code=SS_CAP_CA- a ="+cte t class="line" nam2alL360">pam25lL">skt spef= "driv 0x="sr&= ~ a hrefrvers/pcmcia83; a h#L38 a h o="+code=SOCKET_2318" iia875dalL34EV"5ci.t /a a href="+ct" cu> i82ops /a>->last" cu> i82="+cte t /a a href="+cs="sref">skt su> i82ops /a>->lass="sref">skt su> i82="+cx="sr&= ~ a hrefrvers/pcmcia8373 /l hr8 if drivers/pcmcia/cs.c#8364" 878dalL34EV"5ci.t /a a href="+ct" ct"leasgops /a>->last" ct"leasg="+cte t /a a href="+cs="sref+aleasg/cs.c#rops /a>->lass="sref+aleasg/cs.c#r="+cx="sr&= ~ a hrefrvers/pcmcia83s afte;o8   a href="+code=dev_dbg8 clas879dalL34EV"5ci.t /a a href="+c hrefct"leasgops /a>->las hrefct"leasg="+cte t /a a href="+cs="sref+aleasg/cs.c#r_ href+code=SS_CAP_CAnam25lL+aleasg/cs.c#r_ href="+cx="sr&= ~ a hrefrvers/pcmcia860" i__0m8ref="drivers/pcmcia/cs.c8L254"88tatu5sref">sk.t /a a href="+cpm+code=SS_CAP_CAnm="+cte t /a a href="+cs.c#LE_iaL301" LASS_PM_OPef="drivers/pcmcs.c#LE_iaL301" LASS_PM_OPe="+cx="sr&= ~ a hrefrvers/pcmcia86 a" cmci8ss="               a hre8="+co88tatu5}nBUS"th_" c readSOCKET_CARDBUS"t860" i__0m8ref=s=3comme38rn - a hre8="+co88>s /5a href="driversEXPORT_SYMBOdSOCKET_CARDBUS"EXPORT_SYMBOdt; a hgf">pcmodmov>;s=m25lL">skt s href+code=SS_CAP_CAnam25lL">skt s href ida nBUS"th_" c readSOCKET_CARDBUS"t8a/cs.c#r 8   a href="+code=s" clas8="sre886lL35>->6 a 5ref="+code=socket" c68f=5drive58  if ( a href="+code=sta8us" c88alL35>4> a 5ra href="+code=callba8f /aurren8   a href="+code=s" clas8="sre88dalL5_CARickt5/a>dev_printk /a>__inirops /a>->las__inir="+c>f="+f="+code=opinir_s="srefcf+code=SS_CAP_CAinir_s="srefcft; a cl5s=="sr&= ~ a hrefrvers/pcmcia8 /a>     8   a href="+code=s" clas8="sre88=dev5f="sr&= ~ a hrefrvers/pcmcia8 a>      8360ss=3comme38rn - a hre8="+co885dalL34EV"5cia/cs.c#L288" idinir_odepleill7+code=SS_CAP_CAinir_odepleill7="+code=ref="+f="+code=opnam25lLa hr=SOCKET_CARDBUS" nam25lLa hr=SERR"60" class="line" nam2alL360"> 3608 73 /l hr8   a href="+code=s" clas8="sre88>s /5>-> anam2alL>dev_printk /a> hrefct"a5   4ops /a>->las hrefct"a5   4="+code=ref="+f="+code=opnam25lL">skt s href+code=SS_CAP_CAnam25lL">skt s href ida nBUS"th_" c readSOCKET_CARDBUS"t8as afte;o8   a href="+code=dev_dbg8 clas88ss="5e4_lock /a>(& a hr5f="4c5de=8nfcia/*  8  if ( a href="+code=sta8us" c89=ENO5ref">KERN_ERR /a>rvers/pcmcia/c8/a>      8   a href="+code=s" clas8="sre89ss="5_CARickcl5ss="sref">ETIMEDOs=__8xde=SOCKET_2318" iiaV6v5T_2318" iiaV6v5dbov>;sdBsEXPORT_S0a a href="+c- a +code=SS_CAP_CA- a ="+5m8l6ss=89~ a hrefrvers/pcmcia83as been 8372  o=5( a hre58"+co5e=KERN_ERR"te "sref8>KERN89ss="a href="drivers/8ivers/ps /5>-un"+code=s" clas8="sre88>s /5>-un"+code=sm2alL>dev_printk /a> hrefct"a5   4ops /a>->las hrefct"a5   4="+code=ref="+f="+code=opnam25lL">skt s href+code=SS_"sre7">oc844" cl5ss}=while (a/*   8 if (8a hr=" idalLdalBus id7c=5drivwa_23for60ss=3comme38rn - a hre8="wa_23for60ss=3comme5cia/cs.c#L288" idinir_odepleill7+code=SS_CAP_CAinir_odepleill7="+code=ref="+f="+code=opnam25lLa hr=SOCKatus" cla8s="sreef"et_staadre nBUS8th_" 8 readSOCKET_CARDBUS"t8as afte;o8   a hreCAP_CAini=s" clas7="sre79alL25las8="sre89readSOCKET_CARDBUS"t8"+5ode=f58   a hk /a>( a 8re5="+co5e=KERN_ERR"nBUS8th_" 8 readSivers/8i; a h#L38bsysas8=" c86ent">        8*/ bsysas8=" c8688>s /5a href="drivea>dev_printk /a>__inirops /a>->las__inir="+c=ref="+f="+code=opnam25lLa hr=SOCKaT_CARDBUSk+a ht_f="> arogation t582d o58ass="a href="drivers/module a href="+code=s" clmodule a hr88>s /5a href="drives="sref">ETIMEDOs=__8xde=SOCKET_2318" iiaV6v5T_=ref="+f="+code=opnam25lLa hr=SOCKaAP_CAnam2m25lL+a ht_f=">="+c nBUS8th_" 8 readSOCKET_CARDBUS"t76s afte;o7   a 9ref="+cod9=s" clas7="sre79s.c#5""s9ef">C9ref">s


The original LXR softw7 " by CKET_CARDhttp://sourceforge.net/proo70os/lxs">LXR idau>ye wasseep /experial83al "t76/5slby CKET_CARDmailto:lxs@sreux.no">lxs@sreux.noe wa.
lxs.sreux.no kindly hoslassby CKET_CARDhttp://www.redpill-srepro.no">Redpill Lrepro A#LE_ia" c7vider of Lreux/pcmculvers/7 oper.c7L2s sert sts since 1995.