linux/drivers/irqchip/irq-vic.c
<<
>>Searchf .div idptfile_contents"xve.1./a6 hr class="comment">/* href<2.rs/irq ve.2./a6 hr class="comment"> * p/irq/arch/arm/common/v2.6. href<2.rs/irq ve.3./a6 hr class="comment"> * href<2.rs/irq ve.4./a6 hr class="comment"> * Copyright (C) 1999 - 2003 ARM Limited href<2.rs/irq ve.5./a6 hr class="comment"> * Copyright (C) 2000 Deep Bs Ltd href<2.rs/irq ve.6./a6 hr class="comment"> * href<2.rs/irq ve.7./a6 hr class="comment"> * This program is free software; you chr redistribute it and/or modify href<2.rs/irq ve.8./a6 hr class="comment"> * it under the terms of the GNU General Public License a < h1tion valu7.9 Fo/a6apyri; eimenr u.c"opti2"commenterms of, or Public License a < h1tion 10irq 0ve(at Thir 1 < h1tion 1/irq ve.6./a6 hr class="comment"> * href<2.rs1/irq 1 ve.7./a6 hr clasam is freed inmmenthop clhat .8.will be useful,e.6./a6 hr class="comment"> * href<2.rs1/irq 1 v fre WITHOUT ANY WARRANTY;.wifdrre evenmmentimplied t">ranty"coe.6./a6 hr class="comment"> * href<2.rs1/irq 1 veMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Se clhee.6./a6 hr class="comment"> * href<2.rs1/irq 1 ve"> * it under the terms of fe; yo> details. Public License a < h1tion 1/irq 1 ve.6./a6 hr class="comment"> * href<2.rs1/irq 1 veYhissdrrld haveogrce"cod a c./a"comment"> * it under the terms ofe.6./a6 hr class="comment"> * href<2.rs1/irq 1 vealong.wifd t7./a6 hr ; if not, wrpyr toementF="coSment"> e.6./a6 hr class="comment"> * href<2.rs1valu7.9<1/op1eptnavtarget" 11/* href<2.rs/0irq 20v/e.1./a6 hr class="comment">/* href<2.rs//irq 2 /* href<2.rs//irq ../li/export.hL21 /* href<2.rs//irq 2 ../li/init.hL21 /* href<2.rs//irq 2 ../li/U Gt.hL21 /* href<2.rs//irq 2 ../li/io.hL21 /* href<2.rs//irq 2 ../li/irq.hL21 /* href<2.rs//irq 2 ../li/irqdomain.hL21 /* href<2.rs//irq 2 ../li/of.hL21 /* href<2.rs/valu7.9<2/op1eptnavtarget" 11../li/of_address.hL21 /* href<2.rs30irq 30../li/of_irq.hL21 /* href<2.rs3/irq 3 _ops.h../li/sysco> _ops.hL21 /* href<2.rs3/irq 3 ../li/deef/* href<2.rs3/irq ../li/amba/bus.hL21 /* href<2.rs3/irq 3 /* armref<2h../li/irq>/* armref<2hL21 /* href<2.rs3/irq 3 /* href<2.rs3/irq 3 /* href<2.rs3/irq 3 /* href<2.rs3/irq 3 /* href<2.rs3valu7.9<3/op1eptnavtarget" 11/* h>/* 2h h>/* 2hL21 quot; hr class="comment"> * href<2.rs/0irq 40/* href<2.rs4/irq 4 VIC_IRQ_STATUSL21 0x00 hr class="comment">/* href<2.rs4/irq 4 VIC_FIQ_STATUSL21 0x04 hr class="comment">/* href<2.rs4/irq 4 VIC_INT_SELECTL21 0x0c" clalass="line1 namoptL11>v 1 = FIQ, 0 = IRQ>v/e.1./a6 hr class="comment">/* href<2.rs4/irq VIC_INT_SOFTL21 0x18 hr class="comment">/* href<2.rs4/irq 4 VIC_INT_SOFT_CLEARL21 0x1c hr class="comment">/* href<2.rs4/irq 4 VIC_PROTECTL21 0x20 hr class="comment">/* href<2.rs4/irq 4 VIC_PL190_VECT_ADDRL21 0x30" clalass="line1 namoptL11>v PL190 only>v/e.1./a6 hr class="comment">/* href<2.rs4/irq 4 VIC_PL190_DEF_VECT_ADDRL21 0x34" clalass="line1 namoptL11>v PL190 only>v/e.1./a6 hr class="comment">/* href<2.rs4valu7.9<4/op1eptnavtarget" 11/* href<2.rs50irq 50VIC_VECT_ADDR0L21 0x100 clalass="line1 namoptL11>v 0 toe15 (0..31 PL192)>v/e.1./a6 hr class="comment">/* href<2.rs5/irq 5 VIC_VECT_CNTL0L21 0x200 clalass="line1 namoptL11>v 0 toe15 (0..31 PL192)>v/e.1./a6 hr class="comment">/* href<2.rs5/irq 5 VIC_ITCRL21 0x300 clalass="line1 namoptL11>v VIC test v idrol registnr v/e.1./a6 hr class="comment">/* href<2.rs5/irq 5 /* href<2.rs5/irq 5 VIC_VECT_CNTL_ENABLEL21 (1 << 5) hr class="comment">/* href<2.rs5/irq /* href<2.rs5/irq 5 VIC_PL192_VECT_ADDRL21 0xF00 hr class="comment">/* href<2.rs5/irq 5 /* href<2.rs5/irq 5 * href<2.rs5valu7.9<5/op1eptnavtarget" 11 < h1tion 6/irq 6 v @base: The registnr base"fe; mentVIC. Public License a < h1tion 6/irq 6 ve@valid_sources: A bitmask"comvalid intnrrupts Public License a < h1tion 6/irq 6 v @tseame_sources: A bitmask"comintnrrupts"fe; tseame. Public License a < h1tion 6/irq 6 ve@tseame_ s: The IRQs enabled"fe; tseame. Public License a < h1tion 6/irq 6 ve@int_ < h1tion 6/irq ve@int_enable: Saveofe; VIC_INT_ENABLE. Public License a < h1tion 6/irq 6 ve@mmen_int: Saveofe; VIC_INT_SOFT. Public License a < h1tion 6/irq 6 ve@protsel: Saveofe; VIC_PROTECT. Public License a < h1tion 6valu7.9<6/op1eptnavtarget" 11 < h1tion 70irq 70v/e.1./a6 hr class="comment">/* href<2.rs7/irq 7 ef<_deef/* href<2.rs7/irq 7 __iomemL21 *f.3 hr ccode=baseriv ive..d="f">baseL21 ; hr class="comment"> * href<2.rs7/irq 7 hL21 ; hr class="comment"> * href<2.rs7/irq 7 u32L21 f.3 hr ccode=ealid_sourcesriv ive..d="f">ealid_sourcesL21 ; hr class="comment"> * href<2.rs7/irq 7 u32L21 f.3 hr ccode=tseame_sourcestseame_sourcesL21 ; hr class="comment"> * href<2.rs7/irq 7 u32L21 f.3 hr ccode=tseame_ stseame_ sL21 ; hr class="comment"> * href<2.rs7/irq u32L21 f.3 hr ccode=int_ nt_ * href<2.rs7/irq 7 u32L21 f.3 hr ccode=int_enableriv ive..d="f"> nt_enableL21 ; hr class="comment"> * href<2.rs7valu7.9<7/op1eptnavtarget" 11u32L21 f.3 hr ccode=mmen_intmmen_intL21 ; hr class="comment"> * href<2.rs80irq 80u32L21 f.3 hr ccode=protselprotselL21 ; hr class="comment"> * href<2.rs8/irq 8 h_domainL21 *f.3 hr ccode=domainriv ive..d="f">domainL21 ; hr class="comment"> * href<2.rs8/irq 8 * href<2.rs8/irq 8 /* href<2.rs8/irq 8 initially registnred"v/e.1./a6 hr class="comment">/* href<2.rs8/irq 8 ef<_deefef<_deefCONFIG_ARM_VIC_NRL21 ]; hr class="comment"> * href<2.rs8/irq 8 /* href<2.rs8/irq 8 ef<_idL21 ; hr class="comment"> * href<2.rs8/irq /* href<2.rs8valu7.9<8/op1eptnavtarget" 11ef<_handle_ L11 (struct f.3 hr ccode=pt_regsriv ive..d="f">pt_regsL21 *f.3 hr ccode=regsriv ive..d="f">regsL21 ); hr class="comment"> * href<2.rs90irq 90/* href<2.rs9/irq 9 vve.6./a6 hr class="comment"> * href<2.rs9/irq 9 veef<_init2 - s="com initialisapyri codee.6./a6 hr class="comment"> * href<2.rs9/irq 9 v @base: Base"commentVIC. Public License a < h1tion 9/irq 9 v Public License a < h1tion 9/irq 9 veC="com initialisapyri code"fe; tsgistrapyri Public License a < h1tion 9/irq 9 veand tseame. Public License a < h1tion 9/irq 9 /* href<2.rs9/irq 9 ef<_init2L11 (void f.3 hr ccode=__iomemriv ive..d="f">__iomemL21 *f.3 hr ccode=baseriv ive..d="f">baseL21 ) hr class="comment">/* href<2.rs9valu7.9/* href<2.rs100irq 00 L21 ; hr class="comment"> * href<2.rs10/irq 0 /* href<2.rs10/irq 10 L21 = 0; f.3 hr ccode= riv ive..d="f"> L21 < 16; f.3 hr ccode= riv ive..d="f"> L21 ++) { hr class="comment">/* href<2.rs10/irq 10 __iomemL21 *f.3 hr ccode=tsgriv ive..d="f">regL21 = f.3 hr ccode=baseriv ive..d="f">baseL21 +ef.3 hr ccode=VIC_VECT_CNTL0riv ive..d="f">VIC_VECT_CNTL0L21 + (f.3 hr ccode= riv ive..d="f"> L21 * 4); hr class="comment"> * href<2.rs10/irq 10 wrpyrlL11 (f.3 hr ccode=VIC_VECT_CNTL_ENABLEriv ive..d="f">VIC_VECT_CNTL_ENABLEL21 | f.3 hr ccode= riv ive..d="f"> L21 , f.3 hr ccode=tsgriv ive..d="f">regL21 ); hr class="comment"> * href<2.rs10/irq 10 * href<2.rs10/irq 10 /* href<2.rs10/irq 10 wrpyrlL11 (32, f.3 hr ccode=baseriv ive..d="f">baseL21 +ef.3 hr ccode=VIC_PL190_DEF_VECT_ADDRriv ive..d="f">VIC_PL190_DEF_VECT_ADDRL21 ); hr class="comment"> * href<2.rs10/irq 10 * href<2.rs10valu7.9<10/op1eptnavtarget" 11/* href<2.rs110irq 0CONFIG_PML11 hr class="comment">/* href<2.rs11/irq tseame_one_efef<_deefef/* href<2.rs11/irq 11 /* href<2.rs11/irq 11 __iomemL21 *f.3 hr ccode=baseriv ive..d="f">baseL21 = f.3 hr ccode=ef<efbaseL21 ; hr class="comment"> * href<2.rs11/irq 11 * href<2.rs11/irq 11 printkL11 (f.3 hr ccode=KERN_DEBUGKERN_DEBUGL21 flass="line1 is ng" quot;%s: tseam ngeef< at %p\n" .1./a6, f.3 hr ccode=__func__riv ive..d="f">__func__L21 , f.3 hr ccode=baseriv ive..d="f">baseL21 ); hr class="comment"> * href<2.rs11/irq 11 /* href<2.rs11/irq 11 /* href<2.rs11/irq 11 ef<_init2L11 (f.3 hr ccode=baseriv ive..d="f">baseL21 ); hr class="comment"> * href<2.rs11valu7.9<11/op1eptnavtarget" 11/* href<2.rs1/0irq 120wrpyrlL11 (f.3 hr ccode=ef<ef nt_ baseL21 +ef.3 hr ccode=VIC_INT_SELECTriv ive..d="f">VIC_INT_SELECTL21 ); hr class="comment"> * href<2.rs1//irq 12 wrpyrlL11 (f.3 hr ccode=ef<efprotselL21 , f.3 hr ccode=baseriv ive..d="f">baseL21 +ef.3 hr ccode=VIC_PROTECTriv ive..d="f">VIC_PROTECTL21 ); hr class="comment"> * href<2.rs1//irq 1 * href<2.rs1//irq 12 /* href<2.rs1//irq 12 wrpyrlL11 (f.3 hr ccode=ef<ef nt_enableL21 , f.3 hr ccode=baseriv ive..d="f">baseL21 +ef.3 hr ccode=VIC_INT_ENABLEriv ive..d="f">VIC_INT_ENABLEL21 ); hr class="comment"> * href<2.rs1//irq 12 wrpyrlL11 (~f.3 hr ccode=ef<ef nt_enableL21 , f.3 hr ccode=baseriv ive..d="f">baseL21 +ef.3 hr ccode=VIC_INT_ENABLE_CLEARriv ive..d="f">VIC_INT_ENABLE_CLEARL21 ); hr class="comment"> * href<2.rs1//irq 12 /* href<2.rs1//irq 12 /* href<2.rs1//irq 12 /* href<2.rs1/valu7.9<12/op1eptnavtarget" 11wrpyrlL11 (f.3 hr ccode=ef<efmmen_intL21 , f.3 hr ccode=baseriv ive..d="f">baseL21 +ef.3 hr ccode=VIC_INT_SOFTriv ive..d="f">VIC_INT_SOFTL21 ); hr class="comment"> * href<2.rs130irq 130wrpyrlL11 (~f.3 hr ccode=ef<efmmen_intL21 , f.3 hr ccode=baseriv ive..d="f">baseL21 +ef.3 hr ccode=VIC_INT_SOFT_CLEARriv ive..d="f">VIC_INT_SOFT_CLEARL21 ); hr class="comment"> * href<2.rs13/irq 13 * href<2.rs13/irq 13 * href<2.rs13/irq 1 ef<_tseameL11 (void) hr class="comment">/* href<2.rs13/irq 13 /* href<2.rs13/irq 13 idL21 ; hr class="comment"> * href<2.rs13/irq 13 /* href<2.rs13/irq 13 idL21 = f.3 hr ccode=ef<_idriv ive..d="f">ef<_idL21 - 1; f.3 hr ccode= driv ive..d="f">idL21 idL21 --) hr class="comment">/* href<2.rs13/irq 13 tseame_one_efef<_deefidL21 ); hr class="comment"> * href<2.rs13valu7.9<13/op1eptnavtarget" 11 * href<2.rs1/0irq 140/* href<2.rs14/irq 14 suspend_one_efef<_deefef/* href<2.rs14/irq 14 /* href<2.rs14/irq 14 __iomemL21 *f.3 hr ccode=baseriv ive..d="f">baseL21 = f.3 hr ccode=ef<efbaseL21 ; hr class="comment"> * href<2.rs14/irq 1 * href<2.rs14/irq 14 printkL11 (f.3 hr ccode=KERN_DEBUGKERN_DEBUGL21 flass="line1 is ng" quot;%s: suspend ngeef< at %p\n" .1./a6, f.3 hr ccode=__func__riv ive..d="f">__func__L21 , f.3 hr ccode=baseriv ive..d="f">baseL21 ); hr class="comment"> * href<2.rs14/irq 14 /* href<2.rs14/irq 14 ef nt_ readlL11 (f.3 hr ccode=baseriv ive..d="f">baseL21 +ef.3 hr ccode=VIC_INT_SELECTriv ive..d="f">VIC_INT_SELECTL21 ); hr class="comment"> * href<2.rs14/irq 14 ef nt_enableL21 = f.3 hr ccode=readlriv ive..d="f">readlL11 (f.3 hr ccode=baseriv ive..d="f">baseL21 +ef.3 hr ccode=VIC_INT_ENABLEriv ive..d="f">VIC_INT_ENABLEL21 ); hr class="comment"> * href<2.rs14valu7.9<14/op1eptnavtarget" 11efmmen_intL21 = f.3 hr ccode=readlriv ive..d="f">readlL11 (f.3 hr ccode=baseriv ive..d="f">baseL21 +ef.3 hr ccode=VIC_INT_SOFTriv ive..d="f">VIC_INT_SOFTL21 ); hr class="comment"> * href<2.rs150irq 150efprotselL21 = f.3 hr ccode=readlriv ive..d="f">readlL11 (f.3 hr ccode=baseriv ive..d="f">baseL21 +ef.3 hr ccode=VIC_PROTECTriv ive..d="f">VIC_PROTECTL21 ); hr class="comment"> * href<2.rs15/irq 15 /* href<2.rs15/irq 15 used"fe;e.6./a6 hr class="comment"> * href<2.rs1//irq 15 >>>>>>>>* tseam ngementmystem v/e.1./a6 hr class="comment">/* href<2.rs15/irq 15 * href<2.rs15/irq 1 wrpyrlL11 (f.3 hr ccode=ef<eftseame_ sL21 , f.3 hr ccode=baseriv ive..d="f">baseL21 +ef.3 hr ccode=VIC_INT_ENABLEriv ive..d="f">VIC_INT_ENABLEL21 ); hr class="comment"> * href<2.rs15/irq 15 wrpyrlL11 (~f.3 hr ccode=ef<eftseame_ sL21 , f.3 hr ccode=baseriv ive..d="f">baseL21 +ef.3 hr ccode=VIC_INT_ENABLE_CLEARriv ive..d="f">VIC_INT_ENABLE_CLEARL21 ); hr class="comment"> * href<2.rs15/irq 15 * href<2.rs15/irq 15 /* href<2.rs15valu7.9<15/op1eptnavtarget" 11ef<_suspendL11 (void) hr class="comment">/* href<2.rs1/0irq 160/* href<2.rs16/irq 16 idL21 ; hr class="comment"> * href<2.rs16/irq 16 * href<2.rs16/irq 16 idL21 = 0; f.3 hr ccode= driv ive..d="f">idL21 < f.3 hr ccode=ef<_idriv ive..d="f">ef<_idL21 ; f.3 hr ccode= driv ive..d="f">idL21 ++) hr class="comment">/* href<2.rs1//irq 16 suspend_one_efef<_deefidL21 ); hr class="comment"> * href<2.rs16/irq 16 /* href<2.rs16/irq 1 * href<2.rs16/irq 16 * href<2.rs16/irq 16 /* href<2.rs16valu7.9<16/op1eptnavtarget" 11 _opssysco> _opsL21 f.3 hr ccode=ef<_sysco> _opsef<_sysco> _opsL21 = { hr class="comment">/* href<2.rs170irq 170suspendL21 = f.3 hr ccode=ef<_suspendriv ive..d="f">ef<_suspendL11 , hr class="comment">/* href<2.rs17/irq 17 tseameL11 = f.3 hr ccode=ef<_tseameriv ive..d="f">ef<_tseameL11 , hr class="comment">/* href<2.rs17/irq 17 * href<2.rs17/irq 17 /* href<2.rs17/irq 17 * href<2.rs1//irq 17 veef<_pm_init - initicall toeregistnr VIC pme.6./a6 hr class="comment"> * href<2.rs1//irq 17 ve.6./a6 hr class="comment"> * href<2.rs1//irq 1 ve.7./a./acalled"via latn_initcall() toeregistnre.6./a6 hr class="comment"> * href<2.rs1//irq 17 vethe resources"fe; mentVICs dur toementearll Public License a < h1tion 17valu7.9<17/op1eptnavtarget" 11 < h1tion 180irq 180/* href<2.rs18/irq 18 __initL21 f.3 hr ccode=ef<_pm_initriv ive..d="f">ef<_pm_initL11 (void) hr class="comment">/* href<2.rs18/irq 18 /* href<2.rs18/irq 18 ef<_idL21 /* href<2.rs18/irq 18 registnr_sysco> _opsL11 (&pf.3 hr ccode=ef<_sysco> _opsef<_sysco> _opsL21 ); hr class="comment"> * href<2.rs18/irq 18 /* href<2.rs18/irq 18 * href<2.rs18/irq 18 * href<2.rs18/irq 1 latn_initcallL11 (f.3 hr ccode=ef<_pm_initriv ive..d="f">ef<_pm_initL11 ); hr class="comment"> * href<2.rs18valu7.9<18/op1eptnavtarget" 11/* href<2.rs190irq 190/* href<2.rs19/irq 19 i h_>/* L21 f.3 hr ccode=ef<_>/* riv ive..d="f">ef<_>/* L21 ; hr class="comment"> * href<2.rs19/irq 19 * href<2.rs19/irq 19 ef<_irqdomain_ma L11 (struct f.3 hr ccode=i h_domainriv ive..d="f"> h_domainL21 *f.3 hr ccode=driv ive..d="f">dL11 , unsigned" nt f.3 hr ccode= hriv ive..d="f"> hL21 , hr class="comment">/* href<2.rs19/irq 19 h_hw_numbnr_lL21 f.3 hr ccode=hw hriv ive..d="f">hw hL11 ) hr class="comment">/* href<2.rs19/irq 19 /* href<2.rs19/irq 19 ef<_deefeL21 = f.3 hr ccode=driv ive..d="f">dL11 - host_dataL21 ; hr class="comment"> * href<2.rs19/irq 19 /* href<2.rs19/irq 19 registnr handlers"fe; mentreal ones"v/e.1./a6 hr class="comment">/* href<2.rs19valu7.9<1//op1eptnavtarget" 11eL21 - ealid_sourcesL21 &p (1 << f.3 hr ccode=hw hriv ive..d="f">hw hL11 ))) hr class="comment">/* href<2.rs200irq 200EPERML21 ; hr class="comment"> * href<2.rs20/irq 20 h_set_>/* _and_handlerL11 (f.3 hr ccode= hriv ive..d="f"> hL21 , &pf.3 hr ccode=ef<_>/* riv ive..d="f">ef<_>/* L21 , f.3 hr ccode=handle_level_ hriv ive..d="f">handle_level_ hL11 ); hr class="comment"> * href<2.rs20/irq 20 h_set_>/* _dataL11 (f.3 hr ccode= hriv ive..d="f"> hL21 , f.3 hr ccode=eriv ive..d="f">eL21 - baseL21 ); hr class="comment"> * href<2.rs20/irq 20 set_ h_flagsL11 (f.3 hr ccode= hriv ive..d="f"> hL21 , f.3 hr ccode=IRQF_VALIDriv ive..d="f">IRQF_VALIDL21 | f.3 hr ccode=IRQF_PROBEriv ive..d="f">IRQF_PROBEL21 ); hr class="comment"> * href<2.rs20/irq 20 * href<2.rs20/irq 20 * href<2.rs20/irq 20 /* href<2.rs20/irq 20 * href<2.rs20/irq 20 veHandle eachtintnrrupttin a singlntVIC. Rax+*1stnon-zero if we'vee.6./a6 hr class="comment"> * href<2.rs20valu7.9<20/op1eptnavtarget" 11 * href<2.rs210irq 2 0vebefe;eehandl ngeeachtintnrrupt, whichtistnecessary g"conclhate.6./a6 hr class="comment"> * href<2.rs21/irq 2 v handle_IRQ>may briefly>re-enablemintnrrupts"fe; mmen IRQ>handl ng. Public License a < h1tion 21/irq 21 v/e.1./a6 hr class="comment">/* href<2.rs21/irq 21 handle_one_efef<_deefefpt_regsL21 *f.3 hr ccode=regsriv ive..d="f">regsL21 ) hr class="comment">/* href<2.rs21/irq 21 /* href<2.rs21/irq 21 u32L21 f.3 hr ccode=st riv ive..d="f">statL21 , f.3 hr ccode= hriv ive..d="f"> hL21 ; hr class="comment"> * href<2.rs21/irq 21 handledL21 = 0; hr class="comment"> * href<2.rs21/irq 21 /* href<2.rs21/irq 21 statL21 = f.3 hr ccode=readl_relaxedriv ive..d="f">readl_relaxedL11 (f.3 hr ccode=ef<efbaseL21 +ef.3 hr ccode=VIC_IRQ_STATUSriv ive..d="f">VIC_IRQ_STATUSL21 ))) { hr class="comment">/* href<2.rs21valu7.9<21/op1eptnavtarget" 11 hL21 = f.3 hr ccode=ffsriv ive..d="f">ffsL11 (f.3 hr ccode=st riv ive..d="f">statL21 ) - 1; hr class="comment">/* href<2.rs2/0irq 220handle_IRQL11 (f.3 hr ccode= h_find_mapp ng"iv ive..d="f"> h_find_mapp ngL11 (f.3 hr ccode=ef<efdomainL21 , f.3 hr ccode= hriv ive..d="f"> hL21 ), f.3 hr ccode=tsgsriv ive..d="f">regsL21 ); hr class="comment"> * href<2.rs2//irq 22 handledL21 = 1; hr class="comment">/* href<2.rs2//irq 2 * href<2.rs2//irq 22 /* href<2.rs2//irq 22 handledL21 ; hr class="comment">/* href<2.rs2//irq 22 * href<2.rs2//irq 22 /* href<2.rs2//irq 22 * href<2.rs2//irq 22 veKeep itnrat ng ocom all registnred"VIC's untilemen;ee"> no pend nge.6./a6 hr class="comment"> * href<2.rs2/valu7.9<22/op1eptnavtarget" 11 < h1tion 230irq 230v/e.1./a6 hr class="comment">/* href<2.rs23/irq 23 asm"..kageL21 void f.3 hr ccode=__exceppyri_ h_ptLryriv ive..d="f">__exceppyri_ h_ptLryL21 f.3 hr ccode=ef<_handle_ riv ive..d="f">ef<_handle_ L11 (struct f.3 hr ccode=pt_regsriv ive..d="f">pt_regsL21 *f.3 hr ccode=regsriv ive..d="f">regsL21 ) hr class="comment">/* href<2.rs23/irq 23 /* href<2.rs23/irq 2 L21 , f.3 hr ccode=handledriv ive..d="f">handledL21 ; hr class="comment">/* href<2.rs23/irq 23 * href<2.rs23/irq 23 /* href<2.rs23/irq 23 L21 = 0, f.3 hr ccode=handledriv ive..d="f">handledL21 = 0; f.3 hr ccode= riv ive..d="f"> L21 < f.3 hr ccode=ef<_idriv ive..d="f">ef<_idL21 ; ++f.3 hr ccode= riv ive..d="f"> L21 ) hr class="comment">/* href<2.rs23/irq 23 handledL21 |= f.3 hr ccode=handle_one_ef<handle_one_efef<_deef L21 ], f.3 hr ccode=tsgsriv ive..d="f">regsL21 ); hr class="comment"> * href<2.rs23/irq 23 handledL21 ); hr class="comment"> * href<2.rs23valu7.9<23/op1eptnavtarget" 11 * href<2.rs2/0irq 240/* href<2.rs24/irq 24 h_domain_opsL21 f.3 hr ccode=ef<_irqdomain_opsef<_irqdomain_opsL21 = { hr class="comment">/* href<2.rs24/irq 24 ma L11 = f.3 hr ccode=ef<_irqdomain_ma riv ive..d="f">ef<_irqdomain_ma L11 , hr class="comment">/* href<2.rs24/irq 24 xlatnL11 = f.3 hr ccode= h_domain_xlatn_onetwocell h_domain_xlatn_onetwocellL11 , hr class="comment">/* href<2.rs24/irq 2 * href<2.rs24/irq 24 /* href<2.rs24/irq 24 * href<2.rs24/irq 24 veef<_tsgistnr() - Registnr atVIC. Public License a < h1tion 24/irq 24 ve@base: The base"address"commentVIC. Public License a < h1tion 24valu7.9<24/op1eptnavtarget" 11fe; mentVIC. Public License a < h1tion 250irq 250ve@valid_sources: bitmask"comvalid intnrrupts Public License a < h1tion 25/irq 25 v @tseame_sources: bitmask"comintnrrupts"allowed"fe; tseame sources. Public License a < h1tion 25/irq 25 ve@node: The deef < h1tion 25/irq 25 ve.6./a6 hr class="comment"> * href<2.rs25/irq 25 v Registnr mentVIC with mentmystem deef * href<2.rs25/irq 2 vecomsuspendeand tseame tsquestseand ens+*e"lhat mentcorrect acpyris "> L26./a6 hr class="comment"> * href<2.rs25/irq 25 vetakonclo re-inst e mentmett ngs"on tseame. Public License a < h1tion 25/irq 25 v Public License a < h1tion 25/irq 25 ve.7./aalsocconfig+*esementIRQ>domain>fe; mentVIC. Public License a < h1tion 25valu7.9<25/op1eptnavtarget" 11/* href<2.rs2/0irq 260__initL21 f.3 hr ccode=ef<_tsgistnrriv ive..d="f">ef<_registnre.1 (void f.3 hr ccode=__iomemriv ive..d="f">__iomemL21 *f.3 hr ccode=baseriv ive..d="f">baseL21 , unsigned" nt f.3 hr ccode= hriv ive..d="f"> hL21 , hr class="comment">/* href<2.rs26/irq 26 u32L21 f.3 hr ccode=ealid_sourcesriv ive..d="f">ealid_sourcesL21 , f.3 hr ccode=u3 u32L21 f.3 hr ccode=tseame_sourcestseame_sourcesL21 , hr class="comment">/* href<2.rs26/irq 26 deefnodeL21 ) hr class="comment">/* href<2.rs26/irq 26 /* href<2.rs2//irq 26 ef<_deefeL21 ; hr class="comment"> * href<2.rs26/irq 26 L21 ; hr class="comment"> * href<2.rs26/irq 2 /* href<2.rs26/irq 26 ef<_idL21 ARRAY_SIZEL11 (f.3 hr ccode=ef<_deefef<_deef/* href<2.rs26/irq 26 printkL11 (f.3 hr ccode=KERN_ERRriv ive..d="f">KERN_ERRL21 flass="line1 is ng" quot;%s: too fewtVICs, increase"CONFIG_ARM_VIC_NR\n" .1./a6, f.3 hr ccode=__func__riv ive..d="f">__func__L21 ); hr class="comment"> * href<2.rs26valu7.9<26/op1eptnavtarget" 11 * href<2.rs270irq 270 * href<2.rs27/irq 27 /* href<2.rs27/irq 27 eL21 = &pf.3 hr ccode=ef<_deefef<_deefef<_idL21 ]; hr class="comment"> * href<2.rs27/irq 27 eL21 - baseL21 = f.3 hr ccode=baseriv ive..d="f">baseL21 ; hr class="comment"> * href<2.rs27/irq 27 eL21 - ealid_sourcesL21 = f.3 hr ccode=ealid_sourcesriv ive..d="f">ealid_sourcesL21 ; hr class="comment"> * href<2.rs27/irq 27 eL21 - tseame_sourcesL21 = f.3 hr ccode=reeame_sourcestseame_sourcesL21 ; hr class="comment"> * href<2.rs27/irq 27 eL21 - hL21 = f.3 hr ccode= hriv ive..d="f"> hL21 ; hr class="comment"> * href<2.rs27/irq 2 set_handle_ L11 (f.3 hr ccode=ef<_handle_ riv ive..d="f">ef<_handle_ L11 ); hr class="comment"> * href<2.rs2//irq 27 ef<_idL21 ++; hr class="comment"> * href<2.rs2/valu7.9<27/op1eptnavtarget" 11eL21 - domainL21 = f.3 hr ccode= h_domain_add_simpleriv ive..d="f"> h_domain_add_simpleL11 (f.3 hr ccode=noderiv ive..d="f">nodeL21 , f.3 hr ccode=flsriv ive..d="f">flsL11 (f.3 hr ccode=ealid_sourcesriv ive..d="f">ealid_sourcesL21 ), f.3 hr ccode= hriv ive..d="f"> hL21 , hr class="comment">/* href<2.rs280irq 280ef<_irqdomain_opsL21 , f.3 hr ccode=eriv ive..d="f">eL21 ); hr class="comment"> * href<2.rs28/irq 28 mapp ng>fe; eachtvalid IRQ>v/e.1./a6 hr class="comment">/* href<2.rs28/irq 28 L21 = 0; f.3 hr ccode= riv ive..d="f"> L21 < f.3 hr ccode=flsriv ive..d="f">flsL11 (f.3 hr ccode=ealid_sourcesriv ive..d="f">ealid_sourcesL21 ); f.3 hr ccode= riv ive..d="f"> L21 ++) hr class="comment">/* href<2.rs28/irq 28 ealid_sourcesL21 &p (1 << f.3 hr ccode= riv ive..d="f"> L21 )) hr class="comment">/* href<2.rs28/irq 28 h_create_mapp ngL11 (f.3 hr ccode=eriv ive..d="f">eL21 - domainL21 , f.3 hr ccode= riv ive..d="f"> L21 ); hr class="comment"> * href<2.rs28/irq 28 * href<2.rs28/irq 28 /* href<2.rs28/irq 28 ef<_ack_ L11 (struct f.3 hr ccode= h_datariv ive..d="f"> h_dataL11 *f.3 hr ccode=driv ive..d="f">dL11 ) hr class="comment">/* href<2.rs28/irq 2 /* href<2.rs28valu7.9<28/op1eptnavtarget" 11__iomemL21 *f.3 hr ccode=baseriv ive..d="f">baseL21 = f.3 hr ccode= h_data_get_ h_>/* _datariv ive..d="f"> h_data_get_ h_>/* _dataL11 (f.3 hr ccode=driv ive..d="f">dL11 ); hr class="comment"> * href<2.rs290irq 290 hL21 = f.3 hr ccode=driv ive..d="f">dL11 - hw hL11 ; hr class="comment"> * href<2.rs29/irq 29 wrpyrlL11 (1 << f.3 hr ccode= hriv ive..d="f"> hL21 , f.3 hr ccode=baseriv ive..d="f">baseL21 +ef.3 hr ccode=VIC_INT_ENABLE_CLEARriv ive..d="f">VIC_INT_ENABLE_CLEARL21 ); hr class="comment"> * href<2.rs29/irq 29 v/e.1./a6 hr class="comment">/* href<2.rs29/irq 29 wrpyrlL11 (1 << f.3 hr ccode= hriv ive..d="f"> hL21 , f.3 hr ccode=baseriv ive..d="f">baseL21 +ef.3 hr ccode=VIC_INT_SOFT_CLEARriv ive..d="f">VIC_INT_SOFT_CLEARL21 ); hr class="comment"> * href<2.rs29/irq 29 * href<2.rs29/irq 29 /* href<2.rs29/irq 29 ef<_mask_ L11 (struct f.3 hr ccode= h_datariv ive..d="f"> h_dataL11 *f.3 hr ccode=driv ive..d="f">dL11 ) hr class="comment">/* href<2.rs29/irq 29 /* href<2.rs29/irq 29 __iomemL21 *f.3 hr ccode=baseriv ive..d="f">baseL21 = f.3 hr ccode= h_data_get_ h_>/* _datariv ive..d="f"> h_data_get_ h_>/* _dataL11 (f.3 hr ccode=driv ive..d="f">dL11 ); hr class="comment"> * href<2.rs29valu7.9<2//op1eptnavtarget" 11 hL21 = f.3 hr ccode=driv ive..d="f">dL11 - hw hL11 ; hr class="comment"> * href<2.rs300irq 300wrpyrlL11 (1 << f.3 hr ccode= hriv ive..d="f"> hL21 , f.3 hr ccode=baseriv ive..d="f">baseL21 +ef.3 hr ccode=VIC_INT_ENABLE_CLEARriv ive..d="f">VIC_INT_ENABLE_CLEARL21 ); hr class="comment"> * href<2.rs30/irq 30 * href<2.rs30/irq 30 * href<2.rs30/irq 30 ef<_unmask_ L11 (struct f.3 hr ccode= h_datariv ive..d="f"> h_dataL11 *f.3 hr ccode=driv ive..d="f">dL11 ) hr class="comment">/* href<2.rs30/irq 30 /* href<2.rs30/irq 30 __iomemL21 *f.3 hr ccode=baseriv ive..d="f">baseL21 = f.3 hr ccode= h_data_get_ h_>/* _datariv ive..d="f"> h_data_get_ h_>/* _dataL11 (f.3 hr ccode=driv ive..d="f">dL11 ); hr class="comment">/* href<2.rs306irq 30 hL21 = f.3 hr ccode=driv ive..d="f">dL11 - hw hL11 ; hr class="comment"> * href<2.rs307irq 30 wrpyrlL11 (1 << f.3 hr ccode= hriv ive..d="f"> hL21 , f.3 hr ccode=baseriv ive..d="f">baseL21 +ef.3 hr ccode=VIC_INT_ENABLEriv ive..d="f">VIC_INT_ENABLEL11 ); hr class="comment">/* href<2.rs308irq 30 * href<2.rs309irq 30/op1eptnavtarget" 11 * href<2.rs310irq 3 0def../dL11 (f.3 hr ccode=CONFIG_PMriv ive..d="f">CONFIG_PML11 ) hr class="comment">/* href<2.rs31/irq 3 ef<_deefef<_from_ L11 (unsigned" nt f.3 hr ccode= hriv ive..d="f"> hL21 ) hr class="comment">/* href<2.rs31/irq 31 /* href<2.rs31/irq 31 ef<_deefeL21 = f.3 hr ccode=ef<_deefef<_deef/* href<2.rs31/irq 31 base_ L21 = f.3 hr ccode= hriv ive..d="f"> hL21 &p ~31; hr class="comment">/* href<2.rs31/irq 31 idL21 ; hr class="comment"> * href<2.rs31/irq 31 /* href<2.rs31/irq 31 idL21 = 0; f.3 hr ccode= driv ive..d="f">idL21 < f.3 hr ccode=ef<_idriv ive..d="f">ef<_idL21 ; f.3 hr ccode= driv ive..d="f">idL21 ++, f.3 hr ccode=eriv ive..d="f">eL21 ++) { hr class="comment">/* href<2.rs31/irq 31 eL21 - hL21 == f.3 hr ccode=base_ riv ive..d="f">base_ L21 ) hr class="comment">/* href<2.rs319irq 31/op1eptnavtarget" 11eL21 ; hr class="comment"> * href<2.rs3/0irq 320 * href<2.rs3//irq 32 /* href<2.rs3//irq 3 NULLL21 ; hr class="comment"> * href<2.rs3//irq 32 * href<2.rs3//irq 32 * href<2.rs3//irq 32 ef<_set_wakeL11 (struct f.3 hr ccode= h_datariv ive..d="f"> h_dataL11 *f.3 hr ccode=driv ive..d="f">dL11 , unsigned" nt f.3 hr ccode=onriv ive..d="f">onL21 ) hr class="comment">/* href<2.rs3//irq 32 /* href<2.rs3//irq 32 ef<_deefeL21 = f.3 hr ccode=ef<_from_ riv ive..d="f">ef<_from_ L11 (f.3 hr ccode=driv ive..d="f">dL11 - hL21 ); hr class="comment"> * href<2.rs3//irq 32 offL21 = f.3 hr ccode=driv ive..d="f">dL11 - hw hL11 ; hr class="comment"> * href<2.rs3/valu7.9<32/op1eptnavtarget" 11u32L21 f.3 hr ccode=bitriv ive..d="f">bitL21 = 1 << f.3 hr ccode=offriv ive..d="f">offL21 ; hr class="comment"> * href<2.rs330irq 330/* href<2.rs33/irq 33 eL21 ) hr class="comment">/* href<2.rs33/irq 33 EINVALL21 ; hr class="comment"> * href<2.rs33/irq 3 /* href<2.rs33/irq 33 bitL21 &p f.3 hr ccode=eriv ive..d="f">eL21 - tseame_sourcesL21 )) hr class="comment">/* href<2.rs33/irq 33 EINVALL21 ; hr class="comment"> * href<2.rs33/irq 33 /* href<2.rs33/irq 33 onL21 ) hr class="comment">/* href<2.rs33/irq 33 eL21 - tseame_ sL21 |= f.3 hr ccode=bitriv ive..d="f">bitL21 ; hr class="comment"> * href<2.rs33valu7.9<33/op1eptnavtarget" 11 * href<2.rs3/0irq 340eL21 - tseame_ sL21 &p= ~f.3 hr ccode=bitriv ive..d="f">bitL21 ; hr class="comment"> * href<2.rs34/irq 34 /* href<2.rs34/irq 34 * href<2.rs34/irq 34 * href<2.rs34/irq 3 * href<2.rs3//irq 34 ef<_set_wakeL11 f.3 hr ccode=NULLriv ive..d="f">NULLL21 hr class="comment"> * href<2.rs3//irq 34 /* href<2.rs34/irq 34 /* href<2.rs34/irq 34 i h_>/* L21 f.3 hr ccode=ef<_>/* riv ive..d="f">ef<_>/* L21 = { hr class="comment">/* href<2.rs34valu7.9<34/op1eptnavtarget" 11" 11L21 = flass="line1 is ng" quot;VIC" .1./a6, hr class="comment">/* href<2.rs350irq 350i h_ackL21 = f.3 hr ccode=ef<_ack_ riv ive..d="f">ef<_ack_ L11 , hr class="comment">/* href<2.rs35/irq 35 i h_maskL21 = f.3 hr ccode=ef<_mask_ riv ive..d="f">ef<_mask_ L11 , hr class="comment">/* href<2.rs35/irq 35 i h_unmaskL21 = f.3 hr ccode=ef<_unmask_ riv ive..d="f">ef<_unmask_ L11 , hr class="comment">/* href<2.rs35/irq 35 i h_set_wakeL21 = f.3 hr ccode=ef<_set_wakeriv ive..d="f">ef<_set_wakeL11 , hr class="comment">/* href<2.rs35/irq 35 * href<2.rs35/irq 3 /* href<2.rs35/irq 35 __initL21 f.3 hr ccode=ef<_disableriv ive..d="f">ef<_disableL11 (void f.3 hr ccode=__iomemriv ive..d="f">__iomemL21 *f.3 hr ccode=baseriv ive..d="f">baseL21 ) hr class="comment">/* href<2.rs35/irq 35 /* href<2.rs35/irq 35 wrpyrlL11 (0, f.3 hr ccode=baseriv ive..d="f">baseL21 +ef.3 hr ccode=VIC_INT_SELECTriv ive..d="f">VIC_INT_SELECTL21 ); hr class="comment"> * href<2.rs35valu7.9<35/op1eptnavtarget" 11wrpyrlL11 (0, f.3 hr ccode=baseriv ive..d="f">baseL21 +ef.3 hr ccode=VIC_INT_ENABLEriv ive..d="f">VIC_INT_ENABLEL11 ); hr class="comment">/* href<2.rs3/0irq 360wrpyrlL11 (~0, f.3 hr ccode=baseriv ive..d="f">baseL21 +ef.3 hr ccode=VIC_INT_ENABLE_CLEARriv ive..d="f">VIC_INT_ENABLE_CLEARL21 ); hr class="comment"> * href<2.rs36/irq 36 wrpyrlL11 (0, f.3 hr ccode=baseriv ive..d="f">baseL21 +ef.3 hr ccode=VIC_ITCRriv ive..d="f">VIC_ITCRL21 ); hr class="comment"> * href<2.rs36/irq 36 wrpyrlL11 (~0, f.3 hr ccode=baseriv ive..d="f">baseL21 +ef.3 hr ccode=VIC_INT_SOFT_CLEARriv ive..d="f">VIC_INT_SOFT_CLEARL21 ); hr class="comment"> * href<2.rs36/irq 36 * href<2.rs3//irq 36 * href<2.rs36/irq 36 __initL21 f.3 hr ccode=ef<_clea;_intnrruptsriv ive..d="f">ef<_>lea;_intnrruptsL11 (void f.3 hr ccode=__iomemriv ive..d="f">__iomemL21 *f.3 hr ccode=baseriv ive..d="f">baseL21 ) hr class="comment">/* href<2.rs36/irq 3 /* href<2.rs36/irq 36 iL21 ; hr class="comment"> * href<2.rs36/irq 36 * href<2.rs36valu7.9<36/op1eptnavtarget" 11wrpyrlL11 (0, f.3 hr ccode=baseriv ive..d="f">baseL21 +ef.3 hr ccode=VIC_PL190_VECT_ADDRriv ive..d="f">VIC_PL190_VECT_ADDRL21 ); hr class="comment"> * href<2.rs370irq 370 L21 = 0; f.3 hr ccode= riv ive..d="f"> L21 < 19; f.3 hr ccode= riv ive..d="f"> L21 ++) { hr class="comment">/* href<2.rs37/irq 37 ealueL21 ; hr class="comment"> * href<2.rs37/irq 37 * href<2.rs37/irq 37 ealueL21 = f.3 hr ccode=readltsadlL11 (f.3 hr ccode=baseriv ive..d="f">baseL21 +ef.3 hr ccode=VIC_PL190_VECT_ADDRriv ive..d="f">VIC_PL190_VECT_ADDRL21 ); hr class="comment"> * href<2.rs37/irq 37 wrpyrlL11 (f.3 hr ccode=valueriv ive..d="f">ealueL21 , f.3 hr ccode=baseriv ive..d="f">baseL21 +ef.3 hr ccode=VIC_PL190_VECT_ADDRriv ive..d="f">VIC_PL190_VECT_ADDRL21 ); hr class="comment"> * href<2.rs37/irq 37 * href<2.rs37/irq 37 * href<2.rs37/irq 3 /* href<2.rs3//irq 37 * href<2.rs3/valu7.9<37/op1eptnavtarget" 11 < h1tion 380irq 380veThe original cell has 32eintnrrupts, whilemmentmodified onethas 64, Public License a < h1tion 38/irq 38 v replocat ng two blocks 0x00..0x1omin 0x20..0x3f. Inclhat case Public License a < h1tion 38/irq 38 vementprobe funcpyritistcalled twice, with base"setclo offsetc000L2ublic License a < h1tion 38/irq 38 v eand 020 withinementpage. Wetcallemeist"second block". Public License a < h1tion 38/irq 38 v/e.1./a6 hr class="comment">/* href<2.rs38/irq 38 __initL21 f.3 hr ccode=ef<_init_striv ive..d="f">ef<_init_stL11 (void f.3 hr ccode=__iomemriv ive..d="f">__iomemL21 *f.3 hr ccode=baseriv ive..d="f">baseL21 , unsigned" nt f.3 hr ccode= h_startriv ive..d="f"> h_startL11 , hr class="comment">/* href<2.rs38/irq 38 u32L21 f.3 hr ccode=ef<_sourcesriv ive..d="f">ef<_sourcesL21 , struct f.3 hr ccode=deefdeefnodeL21 ) hr class="comment">/* href<2.rs38/irq 38 /* href<2.rs38/irq 3 iL21 ; hr class="comment"> * href<2.rs38valu7.9<38/op1eptnavtarget" 11ef<_2nd_blockL21 = ((unsigned"long)f.3 hr ccode=baseriv ive..d="f">baseL21 &p ~f.3 hr ccode=PAGE_MASKriv ive..d="f">PAGE_MASKL21 ) != 0; hr class="comment"> * href<2.rs390irq 390/* href<2.rs39/irq 39 v/e.1./a6 hr class="comment">/* href<2.rs39/irq 39 ef<_disableL11 (f.3 hr ccode=baseriv ive..d="f">baseL21 ); hr class="comment"> * href<2.rs39/irq 39 /* href<2.rs39/irq 39 /* href<2.rs39/irq 39 >>>>>>>>* Make"s+*e"wetclea; all exist ng intnrrupts.eThe vecte; tsgistnrs Public License a < h1tion 39/irq 39 >>>>>>>>* inemeistcell "> aftnr mentsecond blockecomgeneral registnrs, Public License a < h1tion 39/irq 39 >>>>>>>>* so"wetcss=address"menm us ng standard offsets, but only from Public License a < h1tion 39/irq 39 >>>>>>>>* mentsecond base"address, whichtist0x20 inementpage Public License a < h1tion 39valu7.9<3//op1eptnavtarget" 11/* href<2.rs400irq 400ef<_2nd_blockL21 ) { hr class="comment">/* href<2.rs40/irq 40 ef<_>lea;_intnrruptsL11 (f.3 hr ccode=baseriv ive..d="f">baseL21 ); hr class="comment"> * href<2.rs40/irq 40 * href<2.rs40/irq 40 */e.1./a6 hr class="comment">/* href<2.rs404irq 40 L21 = 0; f.3 hr ccode= riv ive..d="f"> L21 < 16; f.3 hr ccode= riv ive..d="f"> L21 ++) { hr class="comment">/* href<2.rs40/irq 40 __iomemL21 *f.3 hr ccode=regtsgL21 = f.3 hr ccode=baseriv ive..d="f">baseL21 +ef.3 hr ccode=VIC_VECT_CNTL0riv ive..d="f">VIC_VECT_CNTL0L21 +e(f.3 hr ccode= riv ive..d="f"> L21 * 4); hr class="comment"> * href<2.rs406irq 40 wrpyrlL11 (0, f.3 hr ccode=regtsgL21 ); hr class="comment"> * href<2.rs407irq 40 * href<2.rs408irq 40 * href<2.rs409irq 40/op1eptnavtarget" 11wrpyrlL11 (32, f.3 hr ccode=baseriv ive..d="f">baseL21 +ef.3 hr ccode=VIC_PL190_DEF_VECT_ADDRriv ive..d="f">VIC_PL190_DEF_VECT_ADDRL21 ); hr class="comment"> * href<2.rs410irq 4 0 * href<2.rs41/irq 4 /* href<2.rs41/irq 41 ef<_registnre.1 (f.3 hr ccode=baseriv ive..d="f">baseL21 , f.3 hr ccode= h_startriv ive..d="f"> h_startL11 , f.3 hr ccode=ef<_sourcesriv ive..d="f">ef<_sourcesL21 , 0, f.3 hr ccode=noderiv ive..d="f">nodeL21 ); hr class="comment"> * href<2.rs41/irq 41 * href<2.rs41/irq 41 * href<2.rs41/irq 41 __initL21 f.3 hr ccode=__ef<_initriv ive..d="f">__ef<_initL11 (void f.3 hr ccode=__iomemriv ive..d="f">__iomemL21 *f.3 hr ccode=baseriv ive..d="f">baseL21 , nt f.3 hr ccode= h_startriv ive..d="f"> h_startL11 , hr class="comment">/* href<2.rs41/irq 41 u32L21 f.3 hr ccode=ef<_sourcesriv ive..d="f">ef<_sourcesL21 , f.3 hr ccode=u3 u32L21 f.3 hr ccode=tseame_sourcestseame_sourcesL21 , hr class="comment">/* href<2.rs41/irq 41 deefnodeL21 ) hr class="comment">/* href<2.rs41/irq 41 /* href<2.rs419irq 41/op1eptnavtarget" 11iL21 ; hr class="comment"> * href<2.rs4/0irq 420u32L21 f.3 hr ccode=cell driv ive..d="f">cell dL21 = 0; hr class="comment"> * href<2.rs4//irq 42 amba_vendorL21 f.3 hr ccode=eendorriv ive..d="f">vendorL21 ; hr class="comment"> * href<2.rs4//irq 4 * href<2.rs4//irq 42 */e.1./a6 hr class="comment">/* href<2.rs4//irq 42 L21 = 0; f.3 hr ccode= riv ive..d="f"> L21 < 4; f.3 hr ccode= riv ive..d="f"> L21 ++) { hr class="comment">/* href<2.rs4//irq 42 __iomemL21 *f.3 hr ccode=addrriv ive..d="f">addrL21 ; hr class="comment"> * href<2.rs4//irq 42 addrL21 = (void f.3 hr ccode=__iomemriv ive..d="f">__iomemL21 *)((f.3 hr ccode=u3 u32L21 )f.3 hr ccode=baseriv ive..d="f">baseL21 &p f.3 hr ccode=PAGE_MASKriv ive..d="f">PAGE_MASKL21 ) + 0xfe0 +e(f.3 hr ccode= riv ive..d="f"> L21 * 4); hr class="comment"> * href<2.rs4//irq 42 cell dL21 |=e(f.3 hr ccode=readltsadlL11 (f.3 hr ccode=addrriv ive..d="f">addrL21 ) &p 0xff) << (8 * f.3 hr ccode= riv ive..d="f"> L21 ); hr class="comment"> * href<2.rs4//irq 42 * href<2.rs4/valu7.9<42/op1eptnavtarget" 11vendorL21 =e(f.3 hr ccode=cell driv ive..d="f">cell dL21 * href<2.rs430irq 430printkL11 (f.3 hr ccode=KERN_INFOKERN_INFOL21 flass="line1 is ng" quot;VIC @%p:rq 0x%08x, vendor 0x%02x\n" .1./a6, hr class="comment"> * href<2.rs43/irq 43 baseL21 , f.3 hr ccode=cell driv ive..d="f">cell dL21 , f.3 hr ccode=eendorriv ive..d="f">vendorL21 ); hr class="comment"> * href<2.rs43/irq 43 * href<2.rs43/irq 4 vendorL21 ) { hr class="comment">/* href<2.rs43/irq 43 AMBA_VENDOR_STL21 : hr class="comment">/* href<2.rs43/irq 43 ef<_init_stL11 (f.3 hr ccode=baseriv ive..d="f">baseL21 , f.3 hr ccode= h_startriv ive..d="f"> h_startL11 , f.3 hr ccode=ef<_sourcesriv ive..d="f">ef<_sourcesL21 , f.3 hr ccode=noderiv ive..d="f">nodeL21 ); hr class="comment"> * href<2.rs43/irq 43 * href<2.rs43/irq 43 /* href<2.rs43/irq 43 printkL11 (f.3 hr ccode=KERN_WARNINGKERN_WARNINGL21 flass="line1 is ng" quot;VIC: unknown vendor, cotLinu ng anyways\n" .1./a6); hr class="comment"> * href<2.rs43valu7.9<43/op1eptnavtarget" 11/* href<2.rs4/0irq 440AMBA_VENDOR_ARML21 : hr class="comment">/* href<2.rs44/irq 44 * href<2.rs44/irq 44 * href<2.rs44/irq 44 /* href<2.rs44/irq 4 v/e.1./a6 hr class="comment">/* href<2.rs4//irq 44 ef<_disableL11 (f.3 hr ccode=baseriv ive..d="f">baseL21 ); hr class="comment"> * href<2.rs4//irq 44 /* href<2.rs44/irq 44 v/e.1./a6 hr class="comment">/* href<2.rs4//irq 44 ef<_>lea;_intnrruptsL11 (f.3 hr ccode=baseriv ive..d="f">baseL21 ); hr class="comment"> * href<2.rs44valu7.9<44/op1eptnavtarget" 11 * href<2.rs450irq 450ef<_init L11 (f.3 hr ccode=baseriv ive..d="f">baseL21 ); hr class="comment"> * href<2.rs45/irq 45 /* href<2.rs45/irq 45 ef<_registnre.1 (f.3 hr ccode=baseriv ive..d="f">baseL21 , f.3 hr ccode= h_startriv ive..d="f"> h_startL11 , f.3 hr ccode=ef<_sourcesriv ive..d="f">ef<_sourcesL21 , f.3 hr ccode=tseame_sourcestseame_sourcesL21 , f.3 hr ccode=noderiv ive..d="f">nodeL21 ); hr class="comment"> * href<2.rs45/irq 45 * href<2.rs45/irq 45 * href<2.rs45/irq 4 /* href<2.rs45/irq 45 * ef<_init() -"initialise"a vecte;ed" ntnrrupt cotLrollnre.1./a6 hr class="comment">/* href<2.rs45/irq 45 * @base: iomem base"addresse.1./a6 hr class="comment">/* href<2.rs45/irq 45 * @ h_start: start ng intnrrupt numbom, must be muliple of 3tL21./a6 hr class="comment">/* href<2.rs45valu7.9<45/op1eptnavtarget" 11/* href<2.rs4/0irq 460ve@tseame_sources: bitmask of intnrrupt sourcesclo allow fe; tseameL21./a6 hr class="comment">/* href<2.rs4//irq 46 v/e.1./a6 hr class="comment">/* href<2.rs46/irq 46 __initL21 f.3 hr ccode=ef<_initef<_initL11 (void f.3 hr ccode=__iomemriv ive..d="f">__iomemL21 *f.3 hr ccode=baseriv ive..d="f">baseL21 , unsigned" nt f.3 hr ccode= h_startriv ive..d="f"> h_startL11 , hr class="comment">/* href<2.rs46/irq 46 u32L21 f.3 hr ccode=ef<_sourcesriv ive..d="f">ef<_sourcesL21 , f.3 hr ccode=u3 u32L21 f.3 hr ccode=tseame_sourcestseame_sourcesL21 ) hr class="comment">/* href<2.rs4//irq 46 /* href<2.rs46/irq 46 __ef<_initL11 (f.3 hr ccode=baseriv ive..d="f">baseL21 , f.3 hr ccode= h_startriv ive..d="f"> h_startL11 , f.3 hr ccode=ef<_sourcesriv ive..d="f">ef<_sourcesL21 , f.3 hr ccode=tseame_sourcestseame_sourcesL21 , f.3 hr ccode=NULLriv ive..d="f">NULLL21 ); hr class="comment"> * href<2.rs46/irq 4 * href<2.rs46/irq 46 /* href<2.rs46/irq 46 CONFIG_OFL11 hr class="comment">/* href<2.rs46valu7.9<46/op1eptnavtarget" 11__initL21 f.3 hr ccode=ef<_of_initef<_of_initL11 (struct f.3 hr ccode=deefdeefnodeL21 , struct f.3 hr ccode=deefdeefparptLL21 ) hr class="comment">/* href<2.rs470irq 470/* href<2.rs47/irq 47 __iomemL21 *f.3 hr ccode=regstsgsL21 ; hr class="comment">/* href<2.rs47/irq 47 * href<2.rs47/irq 47 WARNL11 (f.3 hr ccode=parptL1img y1c=d="f">parptLL21 , flass="line1 is ng" quot;non-roottVICs "> nottsupported" .1./a6)) hr class="comment">/* href<2.rs47/irq 47 EINVALL21 ; hr class="comment"> * href<2.rs47/irq 47 /* href<2.rs47/irq 47 tsgsL21 = f.3 hr ccode=of_ioma riv ive..d="f">of_ioma L11 (f.3 hr ccode=noderiv ive..d="f">nodeL21 , 0); hr class="comment"> * href<2.rs47/irq 4 WARN_ONL11 (!f.3 hr ccode=regstsgsL21 )) hr class="comment">/* href<2.rs47/irq 47 EIOL21 ; hr class="comment"> * href<2.rs47valu7.9<47/op1eptnavtarget" 11 * href<2.rs480irq 480/* href<2.rs48/irq 48 >>>>>>>>* Pine ng 0 as first IRQ makes mentsimple domain allocate descripte;se.1./a6 hr class="comment">/* href<2.rs48/irq 48 >>>>>>>>*/e.1./a6 hr class="comment">/* href<2.rs48/irq 48 __ef<_initL11 (f.3 hr ccode=regstsgsL21 , 0, ~0, ~0, f.3 hr ccode=noderiv ive..d="f">nodeL21 ); hr class="comment"> * href<2.rs48/irq 48 * href<2.rs48/irq 48 * href<2.rs48/irq 48 * href<2.rs48/irq 48 IRQCHIP_DECLAREL11 (f.3 hr ccode=arm_pl190_efarm_pl190_efef<_of_initL11 ); hr class="comment"> * href<2.rs48/irq 4 IRQCHIP_DECLAREL11 (f.3 hr ccode=arm_pl192_efarm_pl192_efef<_of_initL11 ); hr class="comment"> * href<2.rs48valu7.9<48/op1eptnavtarget" 11IRQCHIP_DECLAREL11 (f.3 hr ccode=arm_commatile_efarm_commatile_efef<_of_initL11 ); hr class="comment"> * href<2.rs490irq 490*/e.1./a6 hr class="comment">/* href<2.rs49/irq 49 The original LXR softw"> by ment hr clashttp://sourceforge.net/projects/lxr">LXR namounityL21 , meistexperioptLal commyritby hr clasmailto:lxr@"..ux.no">lxr@"..ux.noL21 .
lxr."..ux.no kindly hosted by hr clashttp://www.redpill-"..pro.no">Redpill L..pro ASL21 , provider of L..ux cotsult ng and operapyris seref