ptiov4./spa > v4./form > v4.a ptiov4 href="../linux+v3.7.2/Documenta" /rfkill.txt">ptiov4.img src="../.sta" c/gfx/right.png" alt=">>">pt./spa > class="lxr_search">ptioptiov4.input typn> hidden" namn> navtarget" ption> ">ptiov4.input typn> text" namn> search" id> search">ptiov4.butt submit">Search v4./form > ./spa > class="lxr_prefs" > v4.a href="+prefs?return=Documenta" /rfkill.txt"ptiov4 onclick="return ajax_prefs();">ptiov4Prefs> v4./a>pt./spa >iov4 4./div >iov4 4.form ac" ="ajax+*" method="post" onsubmit="return false;">pt.input typn> hidden" namn> ajax_lookup" id> ajax_lookup" ption> ">piov4 4./form >piov4 4.div class="headingbott
iov4 v4 4.div id> search_results" class="search_results"> v >iov4 4./div > .div id> content" > .div id> file_contents"
L1" class="line" namn>
L1">4 41./a>rfkill - RF kill switch support

L2" class="line" namn>
L2">4 42./a>===============================

L3" class="line" namn>
L3">4 43./a>p
L4" class="line" namn>
L4">4 44./a>1. Introduc"
L5" class="line" namn>
L5">4 45./a>2. Implementa"
L6" class="line" namn>
L6">4 46./a>3. Kernel APIp
L7" class="line" namn>
L7">4 47./a>4. Userspace support

L8" class="line" namn>
L8">4 48./a>p
L9" class="line" namn>
L9">4 49./a>p
L10" class="line" namn>
L10">4 4.1.a>1. Introduc"
L11" class="line" namn>
L11">4 11./a>p
L12" class="line" namn>
L12">4 12./a>The rfkill subsystem provides a generic interface to disabling any radiop
L13" class="line" namn>
L13">4 13./a>transmitter in the system. When a transmitter is blocked, it shall not

L14" class="line" namn>
L14">4 14./a>radiate any power.

L15" class="line" namn>
L15">4 15./a>p
L16" class="line" namn>
L16">4 16./a>The subsystem also provides the ability to reac" on butt
L17" class="line" namn>
L17">4 17./a>disable all transmitters of a certai/otypn (or all). This is intended forp
L18" class="line" namn>
L18">4 18./a>situa"
	 s where transmitters need to be turned off, for example 	 p
L19" class="line" namn>
L19">4 19./a>aircraft.

L20" class="line" namn>
L20">4 20./a>p
L21" class="line" namn>
L21">4 21./a>The rfkill subsystem has a concept of "hard" and "soft" block, whichp
L22" class="line" namn>
L22">4 22./a>differ little in their meaning (block == transmitters off) but rather inp
L23" class="line" namn>
L23">4 23./a>whether they ca  be changed or not:p
L24" class="line" namn>
L24">4 24./a> - hard block: read-only radio block that ca not be override  by softwarep
L25" class="line" namn>
L25">4 25./a> - soft block: writable radio block (need not be readable) that is set byp
L26" class="line" namn>
L26">4 26./a>               the system software.

L27" class="line" namn>
L27">4 27./a>p
L28" class="line" namn>
L28">4 28./a>p
L29" class="line" namn>
L29">4 29./a>2. Implementa"
L30" class="line" namn>
L30">4 30./a>p
L31" class="line" namn>
L31">4 31./a>The rfkill subsystem is composed of three mai/ocomponents:p
L32" class="line" namn>
L32">4 32./a> * the rfkill core,p
L33" class="line" namn>
L33">4 33./a> * the deprecated rfkill-input module (a  input layer handler, beingp
L34" class="line" namn>
L34">4 34./a>   replaced by userspace policy code) andp
L35" class="line" namn>
L35">4 35./a> * the rfkill drivers.

L36" class="line" namn>
L36">4 36./a>p
L37" class="line" namn>
L37">4 37./a>The rfkill core provides API for kernel drivers to register their radiop
L38" class="line" namn>
L38">4 38./a>transmitter with the kernel, methods for turning i" on and off and, lettingp
L39" class="line" namn>
L39">4 39./a>the system know about hardware-disabled sta"es that may be implemented onp
L40" class="line" namn>
L40">4 40./a>the device.

L41" class="line" namn>
L41">4 41./a>p
L42" class="line" namn>
L42">4 42./a>The rfkill core code also notifies userspace of sta"e changes, and providesp
L43" class="line" namn>
L43">4 43./a>ways for userspace to query the current sta"es. See the "Userspace support"p
L44" class="line" namn>
L44">4 44./a>sec"

L45" class="line" namn>
L45">4 45./a>p
L46" class="line" namn>
L46">4 46./a>When the device is hard-blocked (either by a call to rfkill_set_hw_sta"e()p
L47" class="line" namn>
L47">4 47./a>or from query_hw_block) set_block() will be invoked for addi"
	 al softwarep
L48" class="line" namn>
L48">4 48./a>block, but drivers ca  ignore the method call since they ca  use the returnp
L49" class="line" namn>
L49">4 49./a>ption of the func"
	  rfkill_set_hw_sta"e() to sync the software sta"ep
L50" class="line" namn>
L50">4 50./a>instead of keeping track of calls to set_block(). In fact, drivers shouldp
L51" class="line" namn>
L51">4 51./a>use the return ption of rfkill_set_hw_sta"e() unless the hardware ac"uallyp
L52" class="line" namn>
L52">4 52./a>keeps track of soft and hard block separately.

L53" class="line" namn>
L53">4 53./a>p
L54" class="line" namn>
L54">4 54./a>p
L55" class="line" namn>
L55">4 55./a>3. Kernel APIp
L56" class="line" namn>
L56">4 56./a>p
L57" class="line" namn>
L57">4 57./a>p
L58" class="line" namn>
L58">4 58./a>Drivers for radio transmitters normally implement an rfkill driver.

L59" class="line" namn>
L59">4 59./a>p
L60" class="line" namn>
L60">4 60./a>Platform drivers might implement input devices if the rfkill butt
L61" class="line" namn>
L61">4 61./a>that, a butt
L62" class="line" namn>
L62">4 62./a>implement an rfkill driver instead. This also applies if the platform providesp
L63" class="line" namn>
L63">4 63./a>a way to turn 	 /off the transmitter(s).

L64" class="line" namn>
L64">4 64./a>p
L65" class="line" namn>
L65">4 65./a>For some platforms, it is possible that the hardware sta"e changes duringp
L66" class="line" namn>
L66">4 66./a>suspend/hiberna"
	 , in which case it will be necessary to upda"e the rfkillp
L67" class="line" namn>
L67">4 67./a>core with the current sta"e is at resume time.

L68" class="line" namn>
L href="Documenta/#L68" idr56 platforms, it is possible that the 6s="line" namn>
L59">4 56./a>p6a hreTo cre power driver instears shoul's Kconfigo
7L60" cla7s="line" namn>
L60">4 67./a>P7a href="Documenta"
	 /rfkill.txt#L31" id>7L61" cla7s="line" namn>
L61">4 67./a>t71            deberns offRFKILL || !RFKILLf="Documenta"
	 /rfkill.txt#L31" id>7L62" cla7s="line" namn>
L62">4 67./a>i72 href="Documenta"
	 /rfkill.txt#L31" id>7L63" cla7s="line" namn>
L63">4 67./a>a7ansmito ensumethod insteadbe overridbuilt-h caser driver esu(a  iaralsoe !RFKILLf="Documenta"
	 /rfkill.txt#L31" id>7L64" cla7s="line" namn>
L64">4 67./a>p7a hre willpleowsthod insteadurned builtcaser driver esuoverconfigumedp7L65" cla7s="line" namn>
L65">4 67./a>F75 hre willple driver  ker thestnecessauthrevers necessaspef="Documenta"
	 /rfkill.txt#L63" id>7L66" cla7s="line" namn>
L66">4 67./a>s76ther te it ompilery talmostuovehhreef="Documenta"
	 /rfkill.txt#L68" id>7L7" classs="line" namn>
L7">4 47../a>c7a href="Documenta"
	 /rfkill.txt#L58" id>7L68" cla7s="line" namn>
L href="7ocume7ta/#LCpleck oset_hw_sta"e() unless wransmihanges durinohapbertenderequiraddiry_f="Documenta"
	 /rfkill.txt#L58" id>7hat the 7s="line" namn>
L59">4 57./a>p79ill - RF ki to regisnot bo"
	 ls if the  not be essaocked (eitherthe hardwaypplief="Documenta"
	 /rfkill.txt#L8" id>
LL60" cla8s="line" namn>
L60">4 68./a>P8a hrene"theatformohw_k) set_bss o sebsoft(t device core code al necemohwvicef="Documenta"
	 /rfkill.txt#L8" id>
LL61" cla8s="line" namn>
L61">4 68./a>t81     if thactDon'es 	 /o apthe hard tobe overgeardwarevut devwer.
o a caturef="Documenta"
	 /rfkill.txt#L68" id>8L62" cla8s="line" namn>
L62">4 68./a>i82 href="Documenta"
	 /rfkill.txt#L31" id>8L63" cla8s="line" namn>
L63">4 68./a>a8a href="Documenta"
	 /rfkill.txt#L54" id>8L64" cla8s="line" namn>
L64">4 68./a>p8a href="Documenta"
	 /rfkill.txt#L65" id>8L65" cla8s="line" namn>
L65">4 68./a>F85 hre5pace support

LL66" cla8s="line" namn>
L66">4 68./a>s8a href="Documenta"
	 /rfkill.txt#L57" id>8L7" clas8s="line" namn>
L7">4 478./a>c8e rfkill ce ommorp8L8" classs="line" namn>
L8">4 48.ocume8ta/#L durach this hard not pleowstce to query tobpn (od blseardwarhangesll_set_hwf="Documenta"
	 /rfkill.txt#L57" id>8hat the 8s="line" namn>
L59">4 58./a>p89     if thsod blseacerta if thsat totifies userspace of sta"ardwaris hard al softf="Documenta"
	 /rfkill.txt#L9" id>
LL60" cla9s="line" namn>
L60">4 69./a>P9a hren blremovalalsoe  keresumisnt anle) t/e rae  ker set bypdefi, foref="Documenta"
	 /rfkill.txt#L23" id>9L61" cla9s="line" namn>
L61">4 69./a>t91    3.7.2.txt#L23h,he curonet octld not pleowst i" on a transmited rfkill-evicef="Documenta"
	 /rfkill.txt#L23" id>9L62" cla9s="line" namn>
L62">4 69./a>i92 hre, being system.driversning smitter( soft periodef="Documenta"
	 /rfkill.txt#L68" id>9L63" cla9s="line" namn>
L63">4 69./a>a9a href="Documenta"
	 /rfkill.txt#L54" id>9L64" cla9s="line" namn>
L64">4 69./a>p9a hreEx &quoning smionet octl,t ommunicetailse kernel, metho bypdonetviale) tref="Documenta"
	 /rfkill.txt#L47" id>9L65" cla9s="line" namn>
L65">4 69./a>F95 hren ble raess rta. Thae hart;ha#39;structoset_hw_evut a#39;ct, d/o apstructume,vicef="Documenta"
	 /rfkill.txt#L8" id>
9L66" cla9s="line" namn>
L66">4 69./a>s9spend/ hard block separataides Aperlytely.
9L7" clas9s="line" namn>
L7">4 479./a>c97 the reto quercsumblery tgearpt ofsheire isnapshouot;hple driver  if the rnvicef="Documenta"
	 /rfkill.txt#L8" id>
9L8" clas9s="line" namn>
L8">4 489ocume9tua"
	When a Aifi possible that theo supportple driver  to regi). This  to regioff="Documenta"
	 /rfkill.txt#L8" id>
9L9" classs="line" namn>
L9">4 49../a>p9rcraft specsersdor al)rce osmihangesa hre
0L10" classs="line" namn>
L10">4 4.1./a>.1. hre,otplugnot: if thsaf="Documenta"
	 /rfkill.txt#L18" id>
0L11" clas0s="line" namn>
L11">4 1101/a>.1a href="Documenta"
	 /rfkill.txt#L12" id>
0L12" clas0s="line" namn>
L12">4 1202/a>.12 hreAfh the e if tcetailsoberte/ if.txt#L5p
0L13" clas0s="line" namn>
L13">4 1303/a>.13     if ths. Cduringpbe essaby a caobpn (rerspaby a camohwck ofod iescript queref="Documenta"
	 /rfkill.txt#L18" id>
0L14" clas0s="line" namn>
L14">4 1404/a>.14 hre,otplug:p
10L15" clas0s="line" namn>
L15">4 1505/a>.15ill - RF kide alfr5">workaf="Documenta"
	 /rfkill.txt#L18" id>
0L16" clas0s="line" namn>
L16">4 1606/a>.1a href="Documenta"
	 /rfkill.txt#L57" id>10L17" clas0s="line" namn>
L17">4 1707/a>.17 theAal softwaly, eare
0L18" clas0s="line" namn>
L18">4 1808/a>.1ta/#L68" idr56 platforms, it is possible 10L19" clas0s="line" namn>
L19">4 1909/a>.19ill - RF ki if the rssueacevut s:(e kere e fkill_t;hard&qu durinard&qu),se kernel,foleowhref="Documenta"
	 /rfkill.txt#L66" id>1
L10" classs="line" namn>
L10">4 4..1.a>1. Intrenviron rfkivarimbleyp1
L11" classs="line" namn>
L11">4 11.1/a>.

L12" classs="line" namn>
L12">4 122./a>1he rfkRFKILL_NAMEf="Documenta"
	 /rfkill.txt#L12" id>

L13" classs="line" namn>
L13">4 133./a>1ransmiRFKILL_STATEf="Documenta"
	 /rfkill.txt#L12" id>

L14" classs="line" namn>
L14">4 144./a>1adiateRFKILL_TYPEf="Documenta"
	 /rfkill.txt#L12" id>

L15" classs="line" namn>
L15">4 155./a>1

L16" classs="line" namn>
L16">4 166./a>1he subsysts" 
serspa,soft&quoangeand "f="Documenta"
	 /rfkill.txt#L16" id>

L17" classs="line" namn>
L17">4 177./a>1isableand &qr aland &quknofsrntens:expln (rerardvref="Documenta"
	 /rfkill.txt#L68" id>1
L18" classs="line" namn>
L18">4 188./a>11ta/#L68" idr56 platforms, it is possible 1
L19" classs="line" namn>
L19">4 199./a>11a href="Documenta"
	 /rfkill.txt#L10" id>

L20" cla1ss="line" namn>
L20">4 210./a>1

L11" classs="line" namn>
L21">4 211./a>1he rfkiov4
conline" nfooir ">
systorigitwarLXRre sta"epLXRr ommunity rfk,d/o apexperi	 /rfl  regow.
lx rfk.

.div i>
conline" nsubfooir ">
lx kibeiy hos
Rllput  L.7d o AS rfk,dsp/body i>/html/d