linux/drivers/bus/omap_l3_noc.c
<<
2pto231/spaue= 231/forme= 231a 2pto23 href="../linux+v3.7.7/drivers/bus/omap_l3_noc.c">2pto231img src="../.static/gfx/right.png" alt=">>">2p1/spaue=2p1spau class="lxr_search">2ptop3 e="v3p3Sdo_seajaxtpl3_s(n value="2Pl3_sx+v3.7>2ptoa .div+idap31.7>2alu="+search"commen7">/*oap32.7>2alu="+search"commen7"> * OMAP4XXX L3 Interconnto2 error hand ing src=".oap33.7>2alu="+search"commen7"> *oap34.7>2alu="+search"commen7"> * Copye=2p1 (C) 2011 Texas Corpora"retoap35.7>2alu="+search"commen7"> * Santosh Shilimkar <santosh.shilimkar@ti.com_seaoap36.7>2alu="+search"commen7"> * Srichar="+<r.srichar="@ti.com_seaoap37.7>2alu="+search"commen7"> *oap38.7>2alu="+search"commen7"> * T51o program 1o free software; you c="+redistribute it and/or modifyoap39.7>2alu="+search"commen7"> * it under the terms of the GNU General Public License as published byoap32alu="+search"commen7"> * the Free Software Founda"ret; either ="..valu2 of the License, o.oap11.7>2alu="+search"commen7"> * (at your 1/form) any later ="..val.oap12.7>2alu="+search"commen7"> *oap13.7>2alu="+search"commen7"> * T51o program 1o distributed in the hope that it will be useful,oap14.7>2alu="+search"commen7"> * but WITHOUT ANY WARRANTY; wi(thut even the implied warr="ty ofoap15.7>2alu="+search"commen7"> * MERCHANTABILITY o. FITNESS FOR A PARTICULAR PURPOSE. See theoap16.7>2alu="+search"commen7"> * GNU General Public License for more details.oap17.7>2alu="+search"commen7"> *oap18.7>2alu="+search"commen7"> * You sthuld have+recec="d a copy of the GNU General Public Licenseoap19.7>2alu="+search"commen7"> * along wi(t t51o program; if not, write to the Free Softwareoap22alu="+search"commen7"> * Founda"ret, Inc., 59 Temple Place, Suite 330, BS7>et, MA 02111-1307oap21.7>2alu="+search"commen7"> * USAoap22.7>2alu="+search"commen7"> */oap23.7>2#include+<2pt/module.harsearch"fref">">2pt/module.h.7>2_seaaap24.7>2#include+<2pt/init.harsearch"fref">">2pt/init.h.7>2_seaaap25.7>2#include+<2pt/io.harsearch"fref">">2pt/io.h.7>2_seaaap26.7>2#include+<2pt/plat.7/d_device.harsearch"fref">">2pt/plat.7/d_device.h.7>2_seaaap27.7>2#include+<2pt/interrupt.harsearch"fref">">2pt/interrupt.h.7>2_seaaap28.7>2#include+<2pt/kernel.harsearch"fref">">2pt/kernel.h.7>2_seaaap29.7>2#include+<2pt/slab.harsearch"fref">">2pt/slab.h.7>2_seaaap32aap31.7>2#include+"tic/gfx/righh.7>2_quot;aap32/1>2aap33.7>2alu="+search"commen7">/*oap34.7>2alu="+search"commen7"> * Interrupt Hand er for L3 error dete="ret.oap35.7>2alu="+search"commen7"> * 1) Iden7ify the L3+seockdticin parti valuto which the error belongsuto.oap36.7>2alu="+search"commen7"> * 2) Iden7ify the slave+where the error in.7/da"ret 1o loggedoap37.7>2alu="+search"commen7"> * 3) Print the logged in.7/da"ret.oap38.7>2alu="+search"commen7"> * 4) Add dump stackuto provide+kernel trace.oap39.7>2alu="+search"commen7"> *oap42alu="+search"commen7"> * Two Types of errors :oap41.7>2alu="+search"commen7"> * 1) Cu7>em errors in L3+:oap42.7>2alu="+search"commen7"> * Targe> like DMM/FW/EMIF generates SRESP=ERR erroroap43.7>2alu="+search"commen7"> * 2) Standard L3 error:oap44.7>2alu="+search"commen7"> * - Unsupported CMD.oap45.7>2alu="+search"commen7"> * L3 triesuto accessutarge> while it 1o id eoap46.7>2alu="+search"commen7"> * - OCP disconnto2.oap47.7>2alu="+search"commen7"> * - Addressuhole error:oap48.7>2alu="+search"commen7"> * If DSS/ISS/FDIF/USBHOSTFS accessuautarge> where theyoap49.7>2alu="+search"commen7"> * do not have+connto2ivity, the error is logged inoap52alu="+search"commen7"> * their defaultutarge> which is DMM2.oap51.7>2alu="+search"commen7"> *oap52.7>2alu="+search"commen7"> * On High Secure devices, firewall errors are possible and thoseoap53.7>2alu="+search"commen7"> * c="+be trapp"d as well. But the trapping 1o implemen7"d as partoap54.7>2alu="+search"commen7"> * secure software and hence ne"d not be implemen7"d here.oap55.7>2alu="+search"commen7"> */oap56.7>2/a>2p1rs/b_l3_no+code=irqoption_t"+search" ref">irqoption_t.7>2rs/b_l3_no+code=fx/interrupt_hand er"+search" ref">fx/interrupt_hand er.7>2(int s/b_l3_no+code=irq"+search" ref">irq.7>2, void *o/b_l3_no+code=gfx"+search" ref">gfx.7>2)aap57.7>2{aap58/1>2aap59.7>2 struct s/b_l3_no+code=tic/4gfx"+search" ref">tic/4gfx.7>2 *o/b_l3_no+code=fx"+search" ref">fx.7>2 = s/b_l3_no+code=gfx"+search" ref">gfx.7>2;aap60.7>2 int s/b_l3_no+code=intt>p3"+search" ref">intt>p3.7>2, s/b_l3_no+code=i"+search" ref">i.7>2, s/b_l3_no+code=k"+search" ref">k.7>2;aap61.7>2 int s/b_l3_no+code=err_src"+search" ref">err_src.7>2 = 0;aap62.7>2 s/b_l3_no+code=u32arsearch" ref">u32/1>2 s/b_l3_no+code=std_err_icinarsearch" ref">std_err_icin.7>2, s/b_l3_no+code=err_reg"+search" ref">err_reg.7>2, s/b_l3_no+code=clear"+search" ref">clear.7>2, s/b_l3_no+code=masterid"+search" ref">masterid.7>2;aap63.7>2 void s/b_l3_no+code=g_iomem"+search" ref">g_iomem.7>2 *o/b_l3_no+code=bas3"+search" ref">bas3.7>2, *o/b_l3_no+code=fx_targ_bas3"+search" ref">fx_targ_bas3.7>2;aap64.7>2 char *o/b_l3_no+code=targe>_nam3"+search" ref">targe>_nam3.7>2, *o/b_l3_no+code=master_nam3"+search" ref">master_nam3.7>2 = slu="+search"string"2_quot;UN IDENTIFIED"<ap65/1>2aap66.7>2 slu="+search"commen7">/* Get the Type of interrupt */oap67.7>2 s/b_l3_no+code=intt>p3"+search" ref">intt>p3.7>2 = s/b_l3_no+code=irq"+search" ref">irq.7>2 == s/b_l3_no+code=fx"+search" ref">fx.7>2-_seao/b_l3_no+code=app_irq"+search" ref">app_irq.7>2 ? s/b_l3_no+code=L3_APPLICATION_ERROR"+search" ref">L3_APPLICATION_ERROR.7>2 : s/b_l3_no+code=L3_DEBUG_ERROR"+search" ref">L3_DEBUG_ERROR.7>2;aap68/1>2aap69.7>2 for (s/b_l3_no+code=i"+search" ref">i.7>2 = 0; s/b_l3_no+code=i"+search" ref">i.7>2+< s/b_l3_no+code=L3_MODULES"+search" ref">L3_MODULES.7>2; s/b_l3_no+code=i"+search" ref">i.7>2++) {aap70.7>2 slu="+search"commen7">/*oap71.7>2alu="+search"commen7"> * Read the regerr register of the seock dticinoap72.7>2alu="+search"commen7"> * to determine the sourceoap73.7>2alu="+search"commen7"> */oap74.7>2 s/b_l3_no+code=bas3"+search" ref">bas3.7>2 = s/b_l3_no+code=fx"+search" ref">fx.7>2-_seao/b_l3_no+code=fx/bas3"+search" ref">fx_bas3.7>2[s/b_l3_no+code=i"+search" ref">i.7>2];aap75.7>2 s/b_l3_no+code=err_reg"+search" ref">err_reg.7>2 = s/b_l3_no+code=g_raw_readl"+search" ref">g_raw_readl.7>2(s/b_l3_no+code=bas3"+search" ref">bas3.7>2 +rs/b_l3_no+code=fx/flagmux"+search" ref">fx_flagmux.7>2[s/b_l3_no+code=i"+search" ref">i.7>2] +aap76.7>2 +rs/b_l3_no+code=L3_FLAGMUX_REGERR0"+search" ref">L3_FLAGMUX_REGERR0.7>2 +r(s/b_l3_no+code=intt>p3"+search" ref">intt>p3.7>2 << 3));aap77/1>2aap78.7>2 slu="+search"commen7">/* Get the corresponding error and analyse */oap79.7>2 ifr(s/b_l3_no+code=err_reg"+search" ref">err_reg.7>2) {aap80.7>2 slu="+search"commen7">/* Iden7ify the source from+control status register */oap81.7>2 s/b_l3_no+code=err_src"+search" ref">err_src.7>2 = s/b_l3_no+code=g_ffs"+search" ref">g_ffs.7>2(s/b_l3_no+code=err_reg"+search" ref">err_reg.7>2);aap82/1>2aap83.7>2 slu="+search"commen7">/* Read the stderrlog_icin_source from+clk dticin */oap84.7>2 s/b_l3_no+code=fx_targ_bas3"+search" ref">fx_targ_bas3.7>2 = s/b_l3_no+code=bas3"+search" ref">bas3.7>2 +r*(s/b_l3_no+code=fx_targ"+search" ref">fx_targ.7>2[s/b_l3_no+code=i"+search" ref">i.7>2] + s/b_l3_no+code=err_src"+search" ref">err_src.7>2);aap85.7>2 s/b_l3_no+code=std_err_icinarsearch" ref">std_err_icin.7>2 = s/b_l3_no+code=g_raw_readl"+search" ref">g_raw_readl.7>2(s/b_l3_no+code=fx_targ_bas3"+search" ref">fx_targ_bas3.7>2 +aap86.7>2 s/b_l3_no+code=L3_TARG_STDERRLOG_MAIN"+search" ref">L3_TARG_STDERRLOG_MAIN.7>2);aap87.7>2 s/b_l3_no+code=masterid"+search" ref">masterid.7>2 = s/b_l3_no+code=g_raw_readl"+search" ref">g_raw_readl.7>2(s/b_l3_no+code=fx_targ_bas3"+search" ref">fx_targ_bas3.7>2 +aap88.7>2 s/b_l3_no+code=L3_TARG_STDERRLOG_MSTADDR"+search" ref">L3_TARG_STDERRLOG_MSTADDR.7>2);aap89/1>2aap90.7>2 switchr(s/b_l3_no+code=std_err_icinarsearch" ref">std_err_icin.7>2 & s/b_l3_no+code=CUSTOM_ERROR"+search" ref">CUSTOM_ERROR.7>2) {aap91.7>2 cas3 s/b_l3_no+code=STANDARD_ERROR"+search" ref">STANDARD_ERROR.7>2:aap92.7>2 o/b_l3_no+code=targe>_nam3"+search" ref">targe>_nam3.7>2 =aap93.7>2 o/b_l3_no+code=fx_targ_ins>_nam3"+search" ref">fx_targ_ins>_nam3.7>2[s/b_l3_no+code=i"+search" ref">i.7>2][s/b_l3_no+code=err_src"+search" ref">err_src.7>2];aap94.7>2 o/b_l3_no+code=WARN"+search" ref">WARN.7>2(s/b_l3_no+code=tru3"+search" ref">tru3.7>2, slu="+search"string"2_quot;L3 standard error: TARGET:%s at addressu0x%x\n"<ap95.7>2 o/b_l3_no+code=targe>_nam3"+search" ref">targe>_nam3.7>2,aap96.7>2 s/b_l3_no+code=g_raw_readl"+search" ref">g_raw_readl.7>2(s/b_l3_no+code=fx_targ_bas3"+search" ref">fx_targ_bas3.7>2 +aap97.7>2 s/b_l3_no+code=L3_TARG_STDERRLOG_SLVOFSLSB"+search" ref">L3_TARG_STDERRLOG_SLVOFSLSB.7>2));aap98.7>2 slu="+search"commen7">/* clear the std error log*/oap99.7>2 s/b_l3_no+code=clear"+search" ref">clear.7>2 = s/b_l3_no+code=std_err_icinarsearch" ref">std_err_icin.7>2 | s/b_l3_no+code=CLEAR_STDERR_LOG"+search" ref">CLEAR_STDERR_LOG.7>2;aa100.7>2 s/b_l3_no+code=writel"+search" ref">writel.7>2(s/b_l3_no+code=clear"+search" ref">clear.7>2, s/b_l3_no+code=fx_targ_bas3"+search" ref">fx_targ_bas3.7>2 +aa101.7>2 s/b_l3_no+code=L3_TARG_STDERRLOG_MAIN"+search" ref">L3_TARG_STDERRLOG_MAIN.7>2);aa102.7>2 break;aa103/1>2aa104.7>2 cas3 s/b_l3_no+code=CUSTOM_ERROR"+search" ref">CUSTOM_ERROR.7>2:aa105.7>2 o/b_l3_no+code=targe>_nam3"+search" ref">targe>_nam3.7>2 =aa106.7>2 s/b_l3_no+code=fx_targ_ins>_nam3"+search" ref">fx_targ_ins>_nam3.7>2[s/b_l3_no+code=i"+search" ref">i.7>2][s/b_l3_no+code=err_src"+search" ref">err_src.7>2];aa107.7>2 for (s/b_l3_no+code=k"+search" ref">k.7>2 = 0; s/b_l3_no+code=k"+search" ref">k.7>2 < s/b_l3_no+code=NUM_OF_L3_MASTERS"+search" ref">NUM_OF_L3_MASTERS.7>2; s/b_l3_no+code=k"+search" ref">k.7>2++) {aa108.7>2 ifr(s/b_l3_no+code=masterid"+search" ref">masterid.7>2 == s/b_l3_no+code=fx_masters"+search" ref">fx_masters.7>2[s/b_l3_no+code=k"+search" ref">k.7>2].s/b_l3_no+code=id"+search" ref">id.7>2)aa109.7>2 s/b_l3_no+code=master_nam3"+search" ref">master_nam3.7>2 =aa110.7>2 s/b_l3_no+code=fx_masters"+search" ref">fx_masters.7>2[s/b_l3_no+code=k"+search" ref">k.7>2].s/b_l3_no+code=nam3"+search" ref">nam3.7>2;aa111.7>2 }aa112.7>2 o/b_l3_no+code=WARN"+search" ref">WARN.7>2(s/b_l3_no+code=tru3"+search" ref">tru3.7>2, slu="+search"string"2_quot;L3 cu7>em error: MASTER:%s TARGET:%s\n"<a113.7>2 o/b_l3_no+code=master_nam3"+search" ref">master_nam3.7>2, s/b_l3_no+code=targe>_nam3"+search" ref">targe>_nam3.7>2);aa114.7>2 olu="+search"commen7">/* clear the std error log*/oa115.7>2 o/b_l3_no+code=clear"+search" ref">clear.7>2 = s/b_l3_no+code=std_err_icinarsearch" ref">std_err_icin.7>2 | s/b_l3_no+code=CLEAR_STDERR_LOG"+search" ref">CLEAR_STDERR_LOG.7>2;aa116.7>2 s/b_l3_no+code=writel"+search" ref">writel.7>2(s/b_l3_no+code=clear"+search" ref">clear.7>2, s/b_l3_no+code=fx_targ_bas3"+search" ref">fx_targ_bas3.7>2 +aa117.7>2 s/b_l3_no+code=L3_TARG_STDERRLOG_MAIN"+search" ref">L3_TARG_STDERRLOG_MAIN.7>2);aa118.7>2 break;aa119/1>2aa120.7>2 default:aa121.7>2 olu="+search"commen7">/* Nothing to be hand ed here as of now */oa122.7>2 break;aa123.7>2 }aa124.7>2 slu="+search"commen7">/* Error found so break the for loop */oa125.7>2 break;aa126.7>2 }aa127.7>2 }aa128.7>2 option>s/b_l3_no+code=IRQ_HANDLED"+search" ref">IRQ_HANDLED.7>2;aa129.7>2}aa132aa131.7>2/a>2p1rint s/b_l3_no+code=__devinit"+search" ref">__devinit.7>2 s/b_l3_no+code=tic/4gfx_prob3"+search" ref">tic/4gfx_prob3.7>2(struct s/b_l3_no+code=plat.7/d_device"+search" ref">plat.7/d_device.7>2 *o/b_l3_no+code=pdev"+search" ref">pdev.7>2)aa132/1>2{aa133.7>2 /a>2p1rstruct s/b_l3_no+code=tic/4gfx"+search" ref">tic/4gfx.7>2 *o/b_l3_no+code=fx"+search" ref">fx.7>2;aa134.7>2 /aruct s/b_l3_no+code=resource"+search" ref">resource.7>2 *o/b_l3_no+code=res"+search" ref">res.7>2;aa135.7>2 int s/b_l3_no+code=ret"+search" ref">ret.7>2;aa136.7>2aa137.7>2 s/b_l3_no+code=fx"+search" ref">fx.7>2 = s/b_l3_no+code=kzalloc"+search" ref">kzalloc.7>2(sizeof(*o/b_l3_no+code=fx"+search" ref">fx.7>2), s/b_l3_no+code=GFP_KERNEL"+search" ref">GFP_KERNEL.7>2);aa138.7>2 ifr(!o/b_l3_no+code=fx"+search" ref">fx.7>2)aa139.7>2 option>-o/b_l3_no+code=ENOMEM"+search" ref">ENOMEM.7>2;aa142aa141.7>2 s/b_l3_no+code=plat.7/d_set_drvdata"+search" ref">plat.7/d_set_drvdata.7>2(s/b_l3_no+code=pdev"+search" ref">pdev.7>2, s/b_l3_no+code=fx"+search" ref">fx.7>2);aa142.7>2 s/b_l3_no+code=res"+search" ref">res.7>2 = s/b_l3_no+code=plat.7/d_ge>_resource"+search" ref">plat.7/d_ge>_resource.7>2(s/b_l3_no+code=pdev"+search" ref">pdev.7>2, s/b_l3_no+code=IORESOURCE_MEM"+search" ref">IORESOURCE_MEM.7>2, 0);aa143.7>2 ifr(!o/b_l3_no+code=res"+search" ref">res.7>2) {aa144.7>2 s/b_l3_no+code=dev_err"+search" ref">dev_err.7>2(&s/b_l3_no+code=pdev"+search" ref">pdev.7>2-_seao/b_l3_no+code=dev"+search" ref">dev.7>2, slu="+search"string"2_quot;chuldn't find resource 0\n"<a145.7>2 s/b_l3_no+code=ret"+search" ref">ret.7>2 = -o/b_l3_no+code=ENODEV"+search" ref">ENODEV.7>2;aa146.7>2 goto s/b_l3_no+code=err0"+search" ref">err0.7>2;aa147.7>2 }aa148/1>2aa149.7>2 s/b_l3_no+code=fx"+search" ref">fx.7>2-_seao/b_l3_no+code=fx/bas3"+search" ref">fx_bas3.7>2[0] = s/b_l3_no+code=ioreic/"+search" ref">ioreic/.7>2(s/b_l3_no+code=res"+search" ref">res.7>2-_seao/b_l3_no+code=/a>rt"+search" ref">/a>rt.7>2, s/b_l3_no+code=resource_size"+search" ref">resource_size.7>2(s/b_l3_no+code=res"+search" ref">res.7>2));aa150.7>2 ifr(!o/b_l3_no+code=fx"+search" ref">fx.7>2-_seao/b_l3_no+code=fx/bas3"+search" ref">fx_bas3.7>2[0]) {aa151.7>2 s/b_l3_no+code=dev_err"+search" ref">dev_err.7>2(&s/b_l3_no+code=pdev"+search" ref">pdev.7>2-_seao/b_l3_no+code=dev"+search" ref">dev.7>2, slu="+search"string"2_quot;ioreic/ failed\n"<a152.7>2 s/b_l3_no+code=ret"+search" ref">ret.7>2 = -o/b_l3_no+code=ENOMEM"+search" ref">ENOMEM.7>2;aa153.7>2 goto s/b_l3_no+code=err0"+search" ref">err0.7>2;aa154.7>2 }aa155/1>2aa156.7>2 s/b_l3_no+code=res"+search" ref">res.7>2 = s/b_l3_no+code=plat.7/d_ge>_resource"+search" ref">plat.7/d_ge>_resource.7>2(s/b_l3_no+code=pdev"+search" ref">pdev.7>2, s/b_l3_no+code=IORESOURCE_MEM"+search" ref">IORESOURCE_MEM.7>2, 1);aa157.7>2 ifr(!o/b_l3_no+code=res"+search" ref">res.7>2) {aa158.7>2 s/b_l3_no+code=dev_err"+search" ref">dev_err.7>2(&s/b_l3_no+code=pdev"+search" ref">pdev.7>2-_seao/b_l3_no+code=dev"+search" ref">dev.7>2, slu="+search"string"2_quot;chuldn't find resource 1\n"<a159.7>2 s/b_l3_no+code=ret"+search" ref">ret.7>2 = -o/b_l3_no+code=ENODEV"+search" ref">ENODEV.7>2;aa160.7>2 goto s/b_l3_no+code=err1"+search" ref">err1.7>2;aa161.7>2 }aa162/1>2aa163.7>2 o/b_l3_no+code=fx"+search" ref">fx.7>2-_seao/b_l3_no+code=fx/bas3"+search" ref">fx_bas3.7>2[1] = s/b_l3_no+code=ioreic/"+search" ref">ioreic/.7>2(s/b_l3_no+code=res"+search" ref">res.7>2-_seao/b_l3_no+code=/a>rt"+search" ref">/a>rt.7>2, s/b_l3_no+code=resource_size"+search" ref">resource_size.7>2(s/b_l3_no+code=res"+search" ref">res.7>2));aa164.7>2 ifr(!o/b_l3_no+code=fx"+search" ref">fx.7>2-_seao/b_l3_no+code=fx/bas3"+search" ref">fx_bas3.7>2[1]) {aa165.7>2 s/b_l3_no+code=dev_err"+search" ref">dev_err.7>2(&s/b_l3_no+code=pdev"+search" ref">pdev.7>2-_seao/b_l3_no+code=dev"+search" ref">dev.7>2, slu="+search"string"2_quot;ioreic/ failed\n"<a166.7>2 s/b_l3_no+code=ret"+search" ref">ret.7>2 = -o/b_l3_no+code=ENOMEM"+search" ref">ENOMEM.7>2;aa167.7>2 goto s/b_l3_no+code=err1"+search" ref">err1.7>2;aa168.7>2 }aa169/1>2aa170.7>2 s/b_l3_no+code=res"+search" ref">res.7>2 = s/b_l3_no+code=plat.7/d_ge>_resource"+search" ref">plat.7/d_ge>_resource.7>2(s/b_l3_no+code=pdev"+search" ref">pdev.7>2, s/b_l3_no+code=IORESOURCE_MEM"+search" ref">IORESOURCE_MEM.7>2, 2);aa171.7>2 ifr(!o/b_l3_no+code=res"+search" ref">res.7>2) {aa172.7>2 s/b_l3_no+code=dev_err"+search" ref">dev_err.7>2(&s/b_l3_no+code=pdev"+search" ref">pdev.7>2-_seao/b_l3_no+code=dev"+search" ref">dev.7>2, slu="+search"string"2_quot;chuldn't find resource 2\n"<a173.7>2 s/b_l3_no+code=ret"+search" ref">ret.7>2 = -o/b_l3_no+code=ENODEV"+search" ref">ENODEV.7>2;aa174.7>2 goto s/b_l3_no+code=err2arsearch" ref">err2.7>2;aa175.7>2 }aa176.7>2aa177.7>2 s/b_l3_no+code=fx"+search" ref">fx.7>2-_seao/b_l3_no+code=fx/bas3"+search" ref">fx_bas3.7>2[2] = s/b_l3_no+code=ioreic/"+search" ref">ioreic/.7>2(s/b_l3_no+code=res"+search" ref">res.7>2-_seao/b_l3_no+code=/a>rt"+search" ref">/a>rt.7>2, s/b_l3_no+code=resource_size"+search" ref">resource_size.7>2(s/b_l3_no+code=res"+search" ref">res.7>2));aa178.7>2 ifr(!o/b_l3_no+code=fx"+search" ref">fx.7>2-_seao/b_l3_no+code=fx/bas3"+search" ref">fx_bas3.7>2[2]) {aa179.7>2 s/b_l3_no+code=dev_err"+search" ref">dev_err.7>2(&s/b_l3_no+code=pdev"+search" ref">pdev.7>2-_seao/b_l3_no+code=dev"+search" ref">dev.7>2, slu="+search"string"2_quot;ioreic/ failed\n"<a180.7>2 s/b_l3_no+code=ret"+search" ref">ret.7>2 = -o/b_l3_no+code=ENOMEM"+search" ref">ENOMEM.7>2;aa181.7>2 goto s/b_l3_no+code=err2arsearch" ref">err2.7>2;aa182.7>2 }aa183/1>2aa184.7>2 slu="+search"commen7">/*oa185.7>2alu="+search"commen7"> * Setup interrupt Hand ersoa186.7>2alu="+search"commen7"> */oa187.7>2 s/b_l3_no+code=fx"+search" ref">fx.7>2-_seao/b_l3_no+code=debug_irq"+search" ref">debug_irq.7>2 = s/b_l3_no+code=plat.7/d_ge>_irq"+search" ref">plat.7/d_ge>_irq.7>2(s/b_l3_no+code=pdev"+search" ref">pdev.7>2, 0);aa188.7>2 s/b_l3_no+code=ret"+search" ref">ret.7>2 = s/b_l3_no+code=reques>_irq"+search" ref">reques>_irq.7>2(s/b_l3_no+code=fx"+search" ref">fx.7>2-_seao/b_l3_no+code=debug_irq"+search" ref">debug_irq.7>2,aa189.7>2 o/b_l3_no+code=fx/interrupt_hand er"+search" ref">fx/interrupt_hand er.7>2,aa190.7>2 s/b_l3_no+code=IRQF_DISABLED"+search" ref">IRQF_DISABLED.7>2, slu="+search"string"2_quot;l3-dbg-irq"<fx.7>2);aa191.7>2 ifr(s/b_l3_no+code=ret"+search" ref">ret.7>2) {aa192.7>2 s/b_l3_no+code=pr_crit"+search" ref">pr_crit.7>2(slu="+search"string"2_quot;L3: reques>_irq failed to register for 0x%x\n"<a193.7>2 s/b_l3_no+code=fx"+search" ref">fx.7>2-_seao/b_l3_no+code=debug_irq"+search" ref">debug_irq.7>2);aa194.7>2 goto s/b_l3_no+code=errx"+search" ref">errx.7>2;aa195.7>2 }aa196.7>2aa197.7>2 s/b_l3_no+code=fx"+search" ref">fx.7>2-_seao/b_l3_no+code=app_irq"+search" ref">app_irq.7>2 = s/b_l3_no+code=plat.7/d_ge>_irq"+search" ref">plat.7/d_ge>_irq.7>2(s/b_l3_no+code=pdev"+search" ref">pdev.7>2, 1);aa198.7>2 s/b_l3_no+code=ret"+search" ref">ret.7>2 = s/b_l3_no+code=reques>_irq"+search" ref">reques>_irq.7>2(s/b_l3_no+code=fx"+search" ref">fx.7>2-_seao/b_l3_no+code=app_irq"+search" ref">app_irq.7>2,aa199.7>2 o/b_l3_no+code=fx/interrupt_hand er"+search" ref">fx/interrupt_hand er.7>2,aa200.7>2 s/b_l3_no+code=IRQF_DISABLED"+search" ref">IRQF_DISABLED.7>2, slu="+search"string"2_quot;l3-app-irq"<fx.7>2);aa201.7>2 ifr(s/b_l3_no+code=ret"+search" ref">ret.7>2) {aa202.7>2 s/b_l3_no+code=pr_crit"+search" ref">pr_crit.7>2(slu="+search"string"2_quot;L3: reques>_irq failed to register for 0x%x\n"<a203.7>2 s/b_l3_no+code=fx"+search" ref">fx.7>2-_seao/b_l3_no+code=app_irq"+search" ref">app_irq.7>2);aa204.7>2 goto s/b_l3_no+code=err4"+search" ref">err4.7>2;aa205.7>2 }aa206.7>2aa207.7>2 option>0;aa208/1>2aa209.7>2s/b_l3_no+code=err4"+search" ref">err4.7>2:aa210.7>2 s/b_l3_no+code=free_irq"+search" ref">free_irq.7>2(s/b_l3_no+code=fx"+search" ref">fx.7>2-_seao/b_l3_no+code=debug_irq"+search" ref">debug_irq.7>2, s/b_l3_no+code=fx"+search" ref">fx.7>2);aa211.7>2s/b_l3_no+code=errx"+search" ref">errx.7>2:aa212.7>2 s/b_l3_no+code=iounic/"+search" ref">iounic/.7>2(s/b_l3_no+code=fx"+search" ref">fx.7>2-_seao/b_l3_no+code=fx/bas3"+search" ref">fx_bas3.7>2[2]);aa213.7>2s/b_l3_no+code=err2arsearch" ref">err2.7>2:aa214.7>2 s/b_l3_no+code=iounic/"+search" ref">iounic/.7>2(s/b_l3_no+code=fx"+search" ref">fx.7>2-_seao/b_l3_no+code=fx/bas3"+search" ref">fx_bas3.7>2[1]);aa215.7>2s/b_l3_no+code=err1"+search" ref">err1.7>2:aa216.7>2 s/b_l3_no+code=iounic/"+search" ref">iounic/.7>2(s/b_l3_no+code=fx"+search" ref">fx.7>2-_seao/b_l3_no+code=fx/bas3"+search" ref">fx_bas3.7>2[0]);aa217.7>2s/b_l3_no+code=err0"+search" ref">err0.7>2:aa218.7>2 s/b_l3_no+code=kfree"+search" ref">kfree.7>2(s/b_l3_no+code=fx"+search" ref">fx.7>2);aa219.7>2 option>s/b_l3_no+code=ret"+search" ref">ret.7>2;aa220.7>2}aa221.7>2aa222.7>2/a>2p1rint s/b_l3_no+code=__devexit"+search" ref">__devexit.7>2 s/b_l3_no+code=tic/4gfx_remov3"+search" ref">tic/4gfx_remov3.7>2(struct s/b_l3_no+code=plat.7/d_device"+search" ref">plat.7/d_device.7>2 *o/b_l3_no+code=pdev"+search" ref">pdev.7>2)aa223.7>2{aa224.7>2 /aruct s/b_l3_no+code=tic/4gfx"+search" ref">tic/4gfx.7>2 *o/b_l3_no+code=fx"+search" ref">fx.7>2 = s/b_l3_no+code=plat.7/d_ge>_drvdata"+search" ref">plat.7/d_get_drvdata.7>2(s/b_l3_no+code=pdev"+search" ref">pdev.7>2);aa225/1>2aa226.7>2 s/b_l3_no+code=free_irq"+search" ref">free_irq.7>2(s/b_l3_no+code=fx"+search" ref">fx.7>2-_seao/b_l3_no+code=app_irq"+search" ref">app_irq.7>2, s/b_l3_no+code=fx"+search" ref">fx.7>2);aa227.7>2 s/b_l3_no+code=free_irq"+search" ref">free_irq.7>2(s/b_l3_no+code=fx"+search" ref">fx.7>2-_seao/b_l3_no+code=debug_irq"+search" ref">debug_irq.7>2, s/b_l3_no+code=fx"+search" ref">fx.7>2);aa228.7>2 s/b_l3_no+code=iounic/"+search" ref">iounic/.7>2(s/b_l3_no+code=fx"+search" ref">fx.7>2-_seao/b_l3_no+code=fx/bas3"+search" ref">fx_bas3.7>2[0]);aa229.7>2 s/b_l3_no+code=iounic/"+search" ref">iounic/.7>2(s/b_l3_no+code=fx"+search" ref">fx.7>2-_seao/b_l3_no+code=fx/bas3"+search" ref">fx_bas3.7>2[1]);aa230.7>2 s/b_l3_no+code=iounic/"+search" ref">iounic/.7>2(s/b_l3_no+code=fx"+search" ref">fx.7>2-_seao/b_l3_no+code=fx/bas3"+search" ref">fx_bas3.7>2[2]);aa231.7>2 s/b_l3_no+code=kfree"+search" ref">kfree.7>2(s/b_l3_no+code=fx"+search" ref">fx.7>2);aa232/1>2aa233.7>2 option>0;aa234.7>2}aa235/1>2aa236.7>2#if s/b_l3_no+code=defined"+search" ref">defined.7>2(s/b_l3_no+code=CONFIG_OF"+search" ref">CONFIG_OF.7>2)aa237.7>2/a>2p1rconst /aruct s/b_l3_no+code=tf_device_id"+search" ref">tf_device_id.7>2 s/b_l3_no+code=fx/rig_match"+search" ref">fx_rig_match.7>2[] = {aa238.7>2 {.s/b_l3_no+code=comp>2pble"+search" ref">comp>2pble.7>2 = slu="+search"string"2_quot;ti,tic/4-l3-rig"<a239.7>2 {},aa242};aa241.7>2s/b_l3_no+code=MODULE_DEVICE_TABLE"+search" ref">MODULE_DEVICE_TABLE.7>2(s/b_l3_no+code=of"+search" ref">tf.7>2, s/b_l3_no+code=fx/rig_match"+search" ref">fx_rig_match.7>2);aa242.7>2#elseaa243.7>2#define s/b_l3_no+code=fx/rig_match"+search" ref">fx_rig_match.7>2 s/b_l3_no+code=NULL"+search" ref">NULL/1>2aa244.7>2#endifaa245/1>2aa246.7>2/a>2p1rstruct s/b_l3_no+code=plat.7/d_drc="."+search" ref">plat.7/d_drc="..7>2 s/b_l3_no+code=tic/4gfx_drc="."+search" ref">tic/4gfx_drc="..7>2 = {aa247.7>2 .s/b_l3_no+code=prob3"+search" ref">prob3.7>2 = s/b_l3_no+code=tic/4gfx_prob3"+search" ref">tic/4gfx_prob3.7>2,aa248.7>2 .s/b_l3_no+code=remov3"+search" ref">remov3.7>2 = s/b_l3_no+code=__devexit_/"+search" ref">__devexit_/.7>2(s/b_l3_no+code=oic/4gfx_remov3"+search" ref">tic/4gfx_remov3.7>2),aa249.7>2 .s/b_l3_no+code=drc="."+search" ref">drc="..7>2 = {aa250.7>2 .s/b_l3_no+code=nam3"+search" ref">nam3.7>2 = slu="+search"string"2_quot;tic/gfx/rig"<a251.7>2 .s/b_l3_no+code=own"."+search" ref">twn"..7>2 = s/b_l3_no+code=THIS_MODULE"+search" ref">THIS_MODULE.7>2,aa252.7>2 .s/b_l3_no+code=of_match_table"+search" ref">of_match_table.7>2 = s/b_l3_no+code=fx/rig_match"+search" ref">fx_rig_match.7>2,aa253.7>2 },aa254.7>2};aa255/1>2aa256.7>2/a>2p1rint s/b_l3_no+code=__init"+search" ref">__init.7>2 s/b_l3_no+code=tic/4gfx_init"+search" ref">tic/4gfx_init.7>2(void)aa257.7>2{aa258.7>2 option>s/b_l3_no+code=plat.7/d_drc="._register"+search" ref">plat.7/d_drc="._register.7>2(&s/b_l3_no+code=tic/4gfx_drc="."+search" ref">tic/4gfx_drc="..7>2);aa259.7>2}aa260.7>2s/b_l3_no+code=postcore_initcall_sync"+search" ref">postcore_initcall_sync.7>2(s/b_l3_no+code=oic/4gfx_init"+search" ref">tic/4gfx_init.7>2);aa261.7>2aa262.7>2/a>2p1rvoid s/b_l3_no+code=__exit"+search" ref">__exit.7>2 s/b_l3_no+code=tic/4gfx_exit"+search" ref">tic/4gfx_exit.7>2(void)aa263.7>2{aa264.7>2 s/b_l3_no+code=plat.7/d_drc="._unregister"+search" ref">plat.7/d_drc="._unregister.7>2(&s/b_l3_no+code=tic/4gfx_drc="."+search" ref">tic/4gfx_drc="..7>2);aa265.7>2}aa266.7>2s/b_l3_no+code=module_exit"+search" ref">module_exit.7>2(s/b_l3_no+code=oic/4gfx_exit"+search" ref">tic/4gfx_exit.7>2);aa267.7>2
The original LXR software by the LXR community.7>2, this experimen7al ="..ion by fxr@ inux.no.7>2.
fxr. inux.no kindly hosted by Redpill Linpro AS.7>2, provider of Linuxrconsulting and oper>2pons services since 1995.