linux/drivers/watchdog/sc520_wdt.c
<<
>>
Prefs
   1/*
   2 *      AMD Elan SC520 processor Watchdog Timer driver
   3 *
   4 *      Based on acquirewdt.c by Alan Cox,
   5 *           and sbc60xxwdt.c by Jakob Oestergaard <jakob@unthought.net>
   6 *
   7 *      This program is free software; you can redistribute it and/or
   8 *      modify it under the terms of the GNU General Public License
   9 *      as published by the Free Software Foundation; either version
  10 *      2 of the License, or (at your option) any later version.
  11 *
  12 *      The authors do NOT admit liability nor provide warranty for
  13 *      any of this software. This material is provided "AS-IS" in
  14 *      the hope that it may be useful for others.
  15 *
  16 *      (c) Copyright 2001    Scott Jennings <linuxdrivers@oro.net>
  17 *           9/27 - 2001      [Initial release]
  18 *
  19 *      Additional fixes Alan Cox
  20 *      -       Fixed formatting
  21 *      -       Removed debug printks
  22 *      -       Fixed SMP built kernel deadlock
  23 *      -       Switched to private locks not lock_kernel
  24 *      -       Used ioremap/writew/readw
  25 *      -       Added NOWAYOUT support
  26 *      4/12 - 2002 Changes by Rob Radez <rob@osinvestor.com>
  27 *      -       Change comments
  28 *      -       Eliminate fop_llseek
  29 *      -       Change CONFIG_WATCHDOG_NOWAYOUT semantics
  30 *      -       Add KERN_* tags to printks
  31 *      -       fix possible wdt_is_open race
  32 *      -       Report proper capabilities in watchdog_info
  33 *      -       Add WDIOC_{GETSTATUS, GETBOOTSTATUS, SETTIMEOUT,
  34 *              GETTIMEOUT, SETOPTIONS} ioctls
  35 *      09/8 - 2003 Changes by Wim Van Sebroeck <wim@iguana.be>
  36 *      -       cleanup of trailing spaces
  37 *      -       added extra printk's for startup problems
  38 *      -       use module_param
  39 *      -       made timeout (the emulated heartbeat) a module_param
  40 *      -       made the keepalive ping an internal subroutine
  41 *      3/27 - 2004 Changes by Sean Young <sean@mess.org>
  42 *      -       set MMCR_BASE to 0xfffef000
  43 *      -       CBAR does not need to be read
  44 *      -       removed debugging printks
  45 *
  46 *  This WDT driver is different from most other Linux WDT
  47 *  drivers in that the driver will ping the watchdog by itself,
 *      -       added ex4 *      -becaodulsoftw 439 *      -seconds)sbc60it wouldead
 540 *      -dad duirlways ge
 541 *
 542 *      -WDT dr will odus md dty mappad IO,sbc60xthekernan>
 543 *     /n>
 544   45pr_fmtspan(ef="+prefscode=fmtss="search+pr">fmtspan)ref="+prefscode=KBUILD_MODNAMEss="search+pr">KBUILD_MODNAMEspan  class="commeute ng">; in
fmtspanref="drivers/watchdog/sc520_wdt.c#L15" i5="L46" c5ass="line" name="L46"> 546 547+v3.7/e_para.hspan/sparef="drivers/watchdog/sc520_wdt.c#L15" i5ivevalue5" 6"> *      -       ad5ed ex58span#inclue kean@ef="driveinclue x+v3.7/e_para+v3.7/e_para 539+v3.7/"hids.hspan/sparef="drivers/watchdog/sc520_wdt.c#L15" i6="L40" c6ass="line" name="L40"> 640+v3.7/"driv.hspan/sparef="drivers/watchdog/sc520_wdt.c#L15" i6="L41" c6ass="line" name="L41"> 641+v3.7/eiscdevica.hspan/sparef="drivers/watchdog/sc520_wdt.c#L15" i6="L42" c6ass="line" name="L42"> 642+v3.7/dog/sc52.hspan/sparef="drivers/watchdog/sc520_wdt.c#L15" i6="L43" c6ass="line" name="L43"> 643+v3.7/fs.hspan/sparef="drivers/watchdog/sc520_wdt.c#L15" i6="L44" c6ass="line" name="L44"> 644+v3.7/ioprop.hspan/sparef="drivers/watchdog/sc520_wdt.c#L15" i6="L5" cl6ass="line" name="L5">  645+v3.7/eedifiiv.hspan/sparef="drivers/watchdog/sc520_wdt.c#L15" i6="L6" claass="line" name="L6">   46+v3.7/reboop.hspan/sparef="drivers/watchdog/sc520_wdt.c#L15" i6="L47" c6ass="line" name="L47"> 647+v3.7/inip.hspan/sparef="drivers/watchdog/sc520_wdt.c#L15" i6ivevalue6" 6"> *      -       ad6ed ex68span#inclue kean@ef="driveinclue x+v3.7/jentids.hss="line"f+pr">+v3.7/jentids.hspan/sparef="drivers/watchdog/sc520_wdt.c#L15" i6="L39" c6ass="line" name="L39"> 639+v3.7/io.hspan/sparef="drivers/watchdog/sc520_wdt.c#L15" i7="L40" c7ass="line" name="L40"> 740+v3.7/uacr Wa.hspan/sparef="drivers/watchdog/sc520_wdt.c#L15" i7="L41" c7ass="line" name="L41"> 741 742 743 *   pan>
 744 *      utholan SC520 proceut (the ="">
iffe492useut (sdulpowll of 2 (0-7)n>
  745 *
  746 *      - 0:e492useeee2: 1.01seeee4:e4.03seee6: 1/optan>
   47 *      - 1: 503mseeee3: 2.01seeee5: 8.05seee7: 32.21an>
 *      -       ad7ed ex7 *
 739 *      We ping tm is fratch procedog by ittartaeut (the of 2.01san>
 840 *      If wd
 841 *
 842 843WDT_INTERVALspan (ef="+prefscode=HZss="search+pr">HZspan/4+1)ref="drivers/watchdog/sc520_wdt.c#L15" i8="L44" c8ass="line" name="L44"> 844  845 *
  846 *      We mustneed rewdt.c too good
  847 *      He.c wd
   ed ex8 *      chare re/dev/dog by itewaty 30-secondsan>
 839 *     /n>
 940 941WOG_NOWAYUT, SETspan 30------------- class="comment"> *
 942 *   pa in-seconds, ping be multipli the FHZe regCR_secondse rewaitttartaethe w /n>
 943ut (thespan =ref="+prefscode=WOG_NOWAYUT, SETss="search+pr">WOG_NOWAYUT, SETspanaref="drivers/watchdog/sc520_wdt.c#L15" i9="L44" c9ass="line" name="L44"> 944e_paraman(ef="+prefscode=ut (thess="search+pr">ut (thespan,rnal, 0)aref="drivers/watchdog/sc520_wdt.c#L15" i9="L5" cl9ass="line" name="L5">  945MODULE_PARM_DESCn>an(ef="+prefscode=ut (thess="search+pr">ut (thespan,ref="drivers/watchdog/sc520_wdt.c#L15" i9="L6" cl9ass="line" name="L6">  946; in
  947__MODULE_STRINGn>an(ef="+prefscode=WOG_NOWAYUT, SETss="search+pr">WOG_NOWAYUT, SETspan)- class="commeute ng">; in
  9ed ex98spanref="drivers/watchdog/sc520_wdt.c#L15" i9="L9" claass="line" name="L9">   39boolspan  f="+prefscode=nowaythess="search+pr">nowaythespan =ref="+prefscode=WOG_NOWAYOUT semass="search+pr">WOG_NOWAYOUT semaspanaref="drivers/watchdog/sc520_wdt.c#L15" i10="L10" claass="line" name="L10">  140e_paraman(ef="+prefscode=nowaythess="search+pr">nowaythespan,ref="+prefscode=boolss="search+pr">boolspan, 0)aref="drivers/watchdog/sc520_wdt.c#L15" i10="L11" cl0ass="line" name="L11">  010MODULE_PARM_DESCn>an(ef="+prefscode=nowaythess="search+pr">nowaythespan,ref="drivers/watchdog/sc520_wdt.c#L15" i10="L12" cl0ass="line" name="L12">  020; in
  030__MODULE_STRINGn>an(ef="+prefscode=WOG_NOWAYOUT semass="search+pr">WOG_NOWAYOUT semaspan)- class="commeute ng">; in
  040  050 *
  060 *      lan SC520 proce-hdog Timer driveRegiaardan>
  070 *     /n>
  080MASE to 0span-------ef000 *
  090OFFS_WDTMRCTLspan---0xCB0--- class="comment"> *
   10  110 *
   12WDT_EXP_SEL_0aspan--0x0    [ class="comment"> *   13WDT_EXP_SEL_02span--0x0  2 [ class="comment"> *   14WDT_EXP_SEL_03span--0x0  4 [ class="comment"> *   15WDT_EXP_SEL_04span--0x0  8 [ class="comment"> *   16WDT_EXP_SEL_05span--0x0 10 [ class="comment"> *   17WDT_EXP_SEL_06span--0x0 20 [ class="comment"> *   18WDT_EXP_SEL_07span--0x0 40 [ class="comment"> *   19WDT_EXP_SEL_08span--0x0 80 [ class="comment"> * 1 20WDT_IRQ_FLGspan-----0x1spa-- class="comment"> *
 1 21WDT_WRST_ENBspan----0x4spa-- class="comment"> *
  112WDT_ENBspan---------0x8spa-- class="comment"> *
 1 23 1 24__u16span  f="+prefscode=__iomeass="search+pr">__iomeaspan * f="+prefscode=#L1mrctlss="search+pr">#L1mrctlspanaref="drivers/watchdog/sc520_wdt.c#L15" i1d="L25" c1lass="line" name="L25"> 1 25    iv.hs_CR_s * f="+prefscode=# iv.hs_CR_searchunsigned long ng">; in
 1 24MODULE_PARM_DESran(ef="+prefscode=urhess="search+pr">nowa    iv.hs_CR_s * f="+prefscode=# iv.hs_CR_searc, 0olss="search+pr">boolspan, 0)aref="drivers/wattchdog/sc1520_wdt.c#L28" id="L28" 1class1"line"name="Lunsigned longolss="search+pr">ext_#L1mrctlspanaref="drivers/watchdog/sc52520_wdt.c#L29" id="L29" 1class129ine"name="Lunsigned longolss="search+pr"       fix  * f="+prefscode=#    fix tlss="search+pr">#L1mrctlspanaref="drivers/wattchdog/sc1520_wdt.c#L30" id="L30" 1class1"line"name="L claslss="search+pr"    expect_close * f="+prefscode=# expect_closetlss="search+pr">#L1mrctlspanaref="drivers/watthdog/sc52520_wdt.c#L31" id="L31" 1class1"line"name="L24"> 1 24MODULE_PARMe=# us md dt * f="+prefscode=# us md dtrch+p="search+pr">#L1mrctlspanaref="drivers/watthdog/sc52520_wdt.c#L32" id="L32" 1class13line" name="L42"> 842  33 *
  34  35
 546    iv.hs_CR_s * f="+prefscode=# iv.hs_CR_searchunsigned long6ss="line"h+pr">data * f="+prefscoddatarch+p name="L46"> 546 546  40
  41
WDT_INTEiv.h_before * f="+prefscodiv.h_beforearch+pr">MODULE_PARMds.hss= * f="+prefscodds.hss=hess="search+pr">nowa>ext_ 546  030, SETspan 30-------------Pat the dom p*]rdog Timer driveEnadt_i /n>
  030,earch+pr">nowaus m_d dt * f="+prefscodus m_d dtarch+&pr">MODULE_PARMe=# us md dt * f="+prefscode=# us md dtrch+p="search+pr">#L1mrctlspanaref="drivers/wattchdog/sc1520_wdt.c#L45" id="L45" 1class145ne" name="L13">  030,earch+pr">nowa       * f="+prefscode     arch+0xAAAA="search+pr">nowa   aspan * f="+prefscode=#L1mrctlssp="search+pr">#L1mrctlspanaref="drivers/wattchdog/sc1520_wdt.c#L46" id="L46" 1class146ne" name="L13">  030,earch+pr">nowa       * f="+prefscode     arch+0x5555="search+pr">nowa   aspan * f="+prefscode=#L1mrctlssp="search+pr">#L1mrctlspanaref="drivers/wattchdog/sc1520_wdt.c#L47" id="L47" 1class14line" name="L7">  947,earch+pr">nowaus m_umd dt * f="+prefscodus m_umd dtarch+&pr">MODULE_PARMe=# us md dt * f="+prefscode=# us md dtrch+p="search+pr">#L1mrctlspanaref="drivers/wattchdog/sc1520_wdt.c#L4f="drivevalu1e=" 614line" name="L8">  9ed ex98spanref="drivers/wa1tchdog/sc1520_wdt.c#L4f="dr="L39" 1c4ass149ne" name="L13">  030, SETspan 30-------------Re-comment"iv.hshe keevalp*]rdog Timer driveEnadt_i /n>
  947,earch+pr">nowamod__DESran(ef="+prefscomod__DESrarch+&pr">MODULE_PARM_DESran(ef="+prefscode=urhess="search+pr">nowads.hss= * f="+prefscodds.hss=hess +L43"> 843#L1mrctlspanaref="drivers/wattchdog/sc1520_wdt.c#L15" i5="L41" 1c5ass151ine" name="L} else"search+pr">#L1mrctlspanaref="drivers/wattchdog/sc1520_wdt.c#L12" i5="L42" 1c5ass15ine" name="L12">  020<3"> 843te nhat the driver wi\nass="commeute ng">; in
; in
 544  050 *
  36
  070 *     /n>
  9ed ex98spanref="drivers/wa1tchdog/sc1520_wdt.c#L15" i5="L39" 1c5ass159ine"name="Lvoid6ss="line"h+pr">    confis * f="+prefscode=# confisarch+L43"> 943 546 546 1 24dummy * f="+prefscoddummytlss="search+pr">#L1mrctlspanaref="drivers/wattchdog/sc1520_wdt.c#L15" i6="L42" 1c6ass16ine" name="L1unsigned long6ss="line"h+pr">flag= * f="+prefscodflag=tlss="search+pr">#L1mrctlspanaref="drivers/wattchdog/sc1520_wdt.c#L15" i6="L43" 1c6ass16ine" name="L23"> 1 23 *     /n>
 1 24MODULE_PARMe=# us md dt * f="+prefscode=# us md dtrch+="search+pr">nowaflag= * f="+prefscodflag=tlss ng">; in
 1 24nowayUsed  * f="+prefscodUsed ioch+pr">MODULE_PARMe=#aspan * f="+prefscode=#L1mrctlssp=name="L1, SETspan 30-------------ensulass     synchroniz Freepan class="comment"> *     /n>
 1 24nowa   aspan * f="+prefscode=#L1mrctlssp="search+pr">#L1mrctlspanaref="drivers/wattchdog/sc1520_wdt.c#L15" i6ivevalu1e6" 6168ine" name="L24"> 1 24nowa   aspan * f="+prefscode=#L1mrctlssp="search+pr">#L1mrctlspanaref="drivers/wattchdog/sc1520_wdt.c#L15" i6="L39" 1c6ass16line"_NOWAYUT, SETspan 30-------------umd dtdom p= mak dom pconfisur Freeprnt"> * *     /n>
 1 24nowa   aspan * f="+prefscode=#L1mrctlssp="search+pr">#L1mrctlspanaref="drivers/wattchdog/sc1520_wdt.c#L15" i7="L41" 1c7ass171ine" name="L24"> 1 24nowa   aspan * f="+prefscode=#L1mrctlssp="search+pr">#L1mrctlspanaref="drivers/wattchdog/sc1520_wdt.c#L15" i7="L42" 1c7ass172ine"_NOWAYUT, SETspan 30-------------s     om pconfisur Freeprnt"> * *     /n>
 1 24nowa   aspan * f="+prefscode=#L1mrctlssp="search+pr">#L1mrctlspanaref="drivers/wattchdog/sc1520_wdt.c#L2" id7="L44" 1c7ass174ine" name="L24"> 1 24MODULE_PARMe=# us md dt * f="+prefscode=# us md dtrch+="search+pr">nowaflag= * f="+prefscodflag=tlss ng">; in
; in
 546 943 546 546 1 24ext_nowayds.hss= * f="+prefscodds.hss=hess +L+pr">MODULE_PARM_DESCn>an(ef="+prefscode=ut (thespanpr">MODULE_PARMRVALspan (ef="+prefscod ng">; in
   10 *     /n>
 1 24MODULE_PARM_DESran(ef="+prefscode=urhess="search+pr">nowads.hss= * f="+prefscodds.hss=hess +L43"> 843#L1mrctlspanaref="drivers/wattchdog/sc1520_wdt.c#L15" i8="L43" 1c8ass18ine" name="L23"> 1 23 *   an class="comment"> *     /n>
 1 24 843 1 21 1 21#L1mrctlspanaref="drivers/wattchdog/sc1520_wdt.c#L2" id8="L6" c1l8ass18line" name="L46"> 546 1 24; in
; in
; in
 940 943 546 546 *     /n>
 1 24MODULE_PARM_DESran(ef="+prefscode=urhess ng">; in
 1 25  946 *   an class="comment"> *     /n>
 1 24boolspan, 0)aref="drivers/wattchdog/sc1520_wdt.c#L15" i9="L8" c1l9ass1"line" name="L8">  9ed ex98spanref="drivers/wa1tchdog/sc1520_wdt.c#L15" i9="L9" c1laass199ine" name="L24"> 1 24; in
; in
; in
 842 943 546 546  946
 1 24ext_nowayds.hss= * f="+prefscodds.hss=hess +L+pr">MODULE_PARM_DESCn>an(ef="+prefscode=ut (thespanpr">MODULE_PARMRVALspan (ef="+prefscod ng">; in
; in
; in
; in
 943 943an(ef="+prefscodrch+p name="L46"> 546 546MODULE_PARM_an(ef="+prefscodrch+secon 1) ||L+pr">MODULE_PARM_an(ef="+prefscodrch+segon . (1))ame="L6">  946 spa 30-sec defaulpeut (the  /n>
  030od="pos-pr">MODULE_PARMEINref="+prefscode=WDEINreftlss="search+pr">#L1mrctlspanaref="drivers/wa2chdog/sc520_wdt.c#L15" i1d="L14" c2lass=21line" name="L44"> 544 1 24ut (_an(ef="+prefscodrch+="search+pr">#L1mrctlspanaref="drivers/wa2chdog/sc520_wdt.c#L15" i1d="L16" c2lass=216ine" name="Lod="pos0ng">; in
; in
  9ed ex98spanref="drivers/wa2chdog/sc520_wdt.c#L15" i1d="L19" c2lass=21line" name="L39"> 839 *
  40 *   hl olR_seaclass="comment"> *
 841 *
 842 1 24  - e     * f="+prefscodf - e    arch+T suc3"> 943 842  0300000000000000000000000000000000024"> 1 24c60itan(ef="+prefscoc60ithess="search+pr">nowaloff__an(ef="+prefscoloff__hesspa> 943 546 546  946 *     /n>
c60itan(ef="+prefscoc60ithess) { name="L46"> 546  030ifar!24"> 1 24oESCn>an(ef="+prefscode=nowaythess) { name="L46"> 546  0300000000024"> 1 24of= * f="+prefscodof=rch+="search+pr">#L1mrctlspanaref="drivers/wa2tchdog/sc2520_wdt.c#L30" id="L30" 2class23line" name="L40"> 940  030000000002">  946somtont"wroteuent"mag="L claac *< class="comment"> *     /n>
 542  030 943; in
 544  030000000002">  946 *     /n>
  03000000000Ze rrss="line"h+pr">of= * f="+prefscodof=rch+s="0n6ss="line"h+pr">of= * f="+prefscodof=rch+ !="search+pr">ut (c60itan(ef="+prefscoc60ithessn6ss="line"h+pr">of= * f="+prefscodof=rch+++) { name="L46"> 546  947#L1mrctlspanaref="drivers/wa2tchdog/sc2520_wdt.c#L38" id="L38" 2class238ne" name="L13">  0300000000000000000ifarss="line"h+pr">get_    gfx/ref="+prefsget_    arch+43"> 843nowayuf * f="+prefscodbufthes +L43"> 843 546  030000000000000000000000000od="pos-pr">MODULE_PARMEFAULrefscode=WOG_NOWEFAULrrch+="search+pr">#L1mrctlspanaref="drivers/wa2tchdog/sc2520_wdt.c#L40" id="L40" 2class24line" name="L7">  9470000000000000000ifarss="line"h+pr">can(ef="+prefscocrch+ ==r">WOG_NOWAYOUT semaspa addV  addommeute "search+pr">#L1mrctlspanaref="drivers/wa2thdog/sc52520_wdt.c#L41" id="L41" 2class241ne" name="L13">  030000000000000000000000000> 943#L1mrctlspanaref="drivers/wa2thdog/sc52520_wdt.c#L42" id="L42" 2class24ine" name="L12">  02000000000}g">; in
  030}g">; in
 544  030,ame="L11">  110 *     /n>
  36 *     /n>
  947,earch+pr">nowae=#    -      * f="+prefscode=#    -     arch+ ng">; in
; in
ut (c60itan(ef="+prefscoc60ithessng">; in
; in
 741 943 943 943#L1mrctlspanaref="drivers/wa2tchdog/sc2520_wdt.c#L15" i5="L43" 2c5ass2"line"{ name="L46"> 546we  addre alUsedy talkat tho somtont.. 32.54dt(piso 33 Mhzs="k).  /n>
WDT_INTEiest_and set_bi_an(ef="+prefscodest_and set_bi_arch+s, &pr">MODULE_PARMe=#    fix  * f="+prefscode=#    fix tlss)p name="L46"> 546  030od="pos-pr">MODULE_PARMEBUSYefscode=WOG_NOWEBUSYhessng">; in
>oESCn>an(ef="+prefscode=nowaythess)g">; in
  030lss="search+pr"__param 843; in
; in
 1 24; in
ut (need ekpa [ fix  * f="+prefscodneed ekpa [ fix arch+43"> 843; in
; in
 544 943 943 943#L1mrctlspanaref="drivers/wa2tchdog/sc2520_wdt.c#L15" i6="L6" c2laass266ine"{ name="L46"> 546e=# expect_close * f="+prefscode=# expect_closetlsss=="42 "search+pr">#L1mrctlspanaref="drivers/wa2tchdog/sc2520_wdt.c#L15" i6ivevalu2e6" 6268ne" name="L13">  030lss="search+pr"e=# ="pooff * f="+prefscode=# i"pooffarch+ ng">; in
 546  947,earch+pr">nowapr_cri_an(ef="+prefscopr_cri_arch+4>WOG_NOWAYOUT semaspan)- cUnexpected close,>te n; in; in
  030,earch+pr">nowae=#    -      * f="+prefscode=#    -     arch+ ng">; in
; in
 1 24MODULE_PARMe=#    fix  * f="+prefscode=#    fix tlss)ng">; in
 1 24; in
; in
; in
; in
f - iopan * f="+prefscodf - iopanarch+T suc3"> 943 943ars * f="+prefscodarsthes "search+pr">#L1mrctlspanaref="drivers/wa2tchdog/sc2520_wdt.c#L19" i7="L39" 2c7ass279ine"{ name="L46"> 546__    gfx/ref="+prefscodsurhesspa> 943__    gfx/ref="+prefscodsurhesspa)ss="line"h+pr">ars * f="+prefscodarsthesng">; in
 943; in
 943ideitan(ef="+prefscoideittlsss="{ name="L46"> 546  030.43"> 843 943 1 21; in
  0300000000000000000000000000000000000000000|21"> 1 21; in
  030.43"> 843; in
  030.43"> 843>WOG_NOWAYOUT semaspan)- commenass="commeute,g">; in
; in
  9ed ex98spanref="drivers/wa2tchdog/sc2520_wdt.c#L15" i8="L39" 2c8ass28line"_NOWAYUTswi8sparss="line"h+pr">cmdan(ef="+prefscocmdthes) { name="L46"> 5461"> 1 21 546  030od="possearch+pr">ut (c6py_to_    gfx/ref="+prefsc6py_to_    arch+43"> 843MODULE_PARMideitan(ef="+prefscoideittlss, uizeof+43"> 843MODULE_PARMEFAULrefscode=WOG_NOWEFAULrrch+ :s0ng">; in
1"> 1 21 5461"> 1 21 546  030od="possearch+pr">ut (put_    gfx/ref="+prefsput_    arch+s, > 943; in
1"> 1 21 546 546  947L43"> 943MODULE_PARMEINref="+prefscode=WDEINreftlss="search+pr">#L1mrctlspanaref="drivers/wa2tchdog/sc2520_wdt.c#L15" i9="L8" c2l9ass2"line" name="L8">  9ed ex98spanref="drivers/wa2tchdog/sc2520_wdt.c#L15" i9="L9" c2laass299ne" name="L13">  030ifarss="line"h+pr">get_    gfx/ref="+prefsget_    arch+43"> 843#L1mrctlspanaref="drivers/wa3chdog/sc530_wdt.c#L15" i10="L10" c3aass=30line" name="L7">  94700000000od="pos-pr">MODULE_PARMEFAULrefscode=WOG_NOWEFAULrrch+="search+pr">#L1mrctlspanaref="drivers/wa3chdog/sc530_wdt.c#L15" i10="L11" c30ass=30line" name="L41"> 741  020ifarss="line"h+pr">>ew_opntrol * f="+prefscodnew_opntrolhess &>1"> 1 21 546  030 943; in
  03000000000> 943; in
  030}g">; in
 546  947Lfarss="line"h+pr">>ew_opntrol * f="+prefscodnew_opntrolhess &>1"> 1 21 546  0300000000024"> 1 24; in
  0300000000024"> 1 24; in
  947}g">; in
 741  020od="possearch+pr">ut (od=val * f="+prefscodod=valtlssng">; in
; in
1"> 1 21 546  030,earch+pr">nowae=#    -      * f="+prefscode=#    -     arch+ ng">; in
  030od="pos0ng">; in
1"> 1 21 546 546  030i43"> 943; in
 940  030ifarss="line"h+pr">get_    gfx/ref="+prefsget_    arch+43"> 843#L1mrctlspanaref="drivers/wa3chdog/sc530_wdt.c#L15" i1d="L12" c3aass=32ine" name="L12">  02000000000od="pos-pr">MODULE_PARMEFAULrefscode=WOG_NOWEFAULrrch+="search+pr">#L1mrctlspanaref="drivers/wa3chdog/sc530_wdt.c#L15" i1d="L13" c3lass=32ine" name="L23"> 1 23  030ifarss="line"h+pr">e=# set_ 843#L1mrctlspanaref="drivers/wa3chdog/sc530_wdt.c#L15" i1d="L25" c3lass=325ne" name="L13">  03000000000od="pos-pr">MODULE_PARMEINref="+prefscode=WDEINreftlss="search+pr">#L1mrctlspanaref="drivers/wa3T_IRQ_sea3520_wdt.c#L26" id="L26" 3class32line" name="L46"> 546  947,earch+pr">nowae=#    -      * f="+prefscode=#    -     arch+ ng">; in
  030, SETspan 30-------------Fall through 2.54dt(piso 33 Mhzs="k).  /n>
; in
1"> 1 21 546  030od="possearch+pr">ut (put_    gfx/ref="+prefsput_    arch+search+pr">ut (/gfx/rnalref="+prefscode=ut (thes, > 943; in
 546  030od="pos-pr">MODULE_PARMENOTTYefscode=WOG_NOWENOTTYtlss="search+pr">#L1mrctlspanaref="drivers/wa3tchdog/sc3520_wdt.c#L34" id="L34" 3class334ne" name="L1}g">; in
; in
 546 943e=# fop= * f="+prefscode=# fop=tlsss="{ name="L46"> 546 843 943; in
 843 943; in
 843; in
 843; in
 843 943; in
 843 943; in
; in
 1 25 943e=# miscdev * f="+prefscode=# miscdevtlsss="{ name="L46"> 546 843; in
 843; in
 843MODULE_PARMe=# fop= * f="+prefscode=# fop=tlss,g">; in
; in
 741 542 *
  40 *
 841 *
 1 25 943 943cpan * f="+prefscodcpanhess,name="L25"> 1 25 943 1 25 546c6an * f="+prefscodcpanhess ==r"s="line"h+pr">SYS_DOWN * f="+prefscodSYS_DOWNhess ||21"> 1 21SYS_HALrefscode=WOG_NOWSYS_HALrtlss)name="L25"> 1 25  947,earch+pr">nowae=# ="pooff * f="+prefscode=# i"pooffarch+ ng">; in
ut (NOTIFY_DONIgfx/ref="+prefsNOTIFY_DONItlss="search+pr">#L1mrctlspanaref="drivers/wa3tchdog/sc3520_wdt.c#L15" i6="L42" 3c6ass36ine" }g">; in
 1 23 841 *
  40 *
  36 * *
 841 *
  9ed ex98spanref="drivers/wa3tchdog/sc3520_wdt.c#L15" i6="L39" 3c6ass36line"name="LT suc3"> 943 546 843 943 1 25; in
 842__exi_an(ef="+prefsco__exi_tlsss> 943 546 546 1 24oESCn>an(ef="+prefscode=nowaythess) name="L46"> 546  030,earch+pr">nowae=# ="pooff * f="+prefscode=# i"pooffarch+ ng">; in
; in
 * *
 1 24 *< * f="+prefscodmisc_dernt"> *MODULE_PARMe=# miscdev * f="+prefscode=# miscdevtlss ng">; in
 *<_rhboo# notifi  gfx/ref="+prefsunrnt"> *<_rhboo# notifi  arch+&pr">MODULE_PARMe=# notifi  gfx/ref="+prefse=# notifi  tlss ng">; in
 1 24ut (vermrpan * f="+prefscodvermrpantlss ng">; in
; in
 1 23 943 943 546 546 943MODULE_PARMEBUSYefscode=WOG_NOWEBUSYhessng">; in
; in
 *
 839  030ifate nresettho tht"defaultpan class="comment"> *
e=# set_ 843 546  030ss="line"h+pr">e=# set_ 843; in
  020> 943 1 25  030 943; in
; in
 1 25 1 24 943 843 843; in
 1 24 546  030lss="search+pr"pr_er gfx/ref="+prefspr_er iech+p>WOG_NOWAYOUT semaspan)- cUnpa [tho reman memory\nass="commeute ng">; in
  030> 943MODULE_PARMENOMEMefscode=WOG_NOWENOMEMhessng">; in
  947goho pr">MODULE_PARMer _out_rnt"on2efscode=WOG_NOWer _out_rnt"on2hessng">; in
; in
 842 1 24 843 *<_rhboo# notifi  gfx/ref="+prefsrnt"> *<_rhboo# notifi  arch+&pr">MODULE_PARMe=# notifi  gfx/ref="+prefse=# notifi  tlss ng">; in
rcan(ef="+prefscorcrch+  { name="L46"> 546  030lss="search+pr"pr_er gfx/ref="+prefspr_er iech+p>WOG_NOWAYOUT semaspan)- ccante nret"> * 1 24; in
  030goho pr">MODULE_PARMer _out_ioreman * f="+prefscoder _out_ioremanhessng">; in
; in
  9ed ex98spanref="drivers/wa4cchdog/sc40_wdt.c#L15" i10="L19" c40ass=409ine" name="L24"> 1 24 843 *< * f="+prefscodmisc_rnt"> *MODULE_PARMe=# miscdev * f="+prefscode=# miscdevtlss ng">; in
rcan(ef="+prefscorcrch+  { name="L46"> 546  030ss="line"h+pr">pr_er gfx/ref="+prefspr_er iech+p>WOG_NOWAYOUT semaspan)- ccante nret"> * 546  020">  030ss="line"h+pr">WATCHDOG_MINORrefscode=WOG_NOWATCHDOG_MINORarch,L24"> 1 24; in
  030goho pr">MODULE_PARMer _out_notifi  gfx/ref="+prefser _out_notifi  hessng">; in
; in
 1 25 1 24 546  947,earch+pr">nowa/gfx/rnalref="+prefscode=ut (thes, > 943oESCn>an(ef="+prefscode=nowaythess)ng">; in
  9ed ex98spanref="drivers/wa4chdog/sc540_wdt.c#L15" i1d="L19" c4lass=419ne" name="L1od="pos0ng">; in
 940MODULE_PARMer _out_notifi  gfx/ref="+prefser _out_notifi  hess: name="L46"> 546 *<_rhboo# notifi  gfx/ref="+prefsunrnt"> *<_rhboo# notifi  arch+&pr">MODULE_PARMe=# notifi  gfx/ref="+prefse=# notifi  tlss ng">; in
MODULE_PARMer _out_ioreman * f="+prefscoder _out_ioremanhess: name="L46"> 546 1 24ut (vermrpan * f="+prefscodvermrpantlss ng">; in
MODULE_PARMer _out_rnt"on2efscode=WOG_NOWer _out_rnt"on2hess: name="L46"> 546 1 24; in
; in
  9ed ex98spanref="drivers/wa40" 3class4520_wdt.c#L29" id="L29" 43" c4lass=42ine" pr">" id="L29" 43" cT1 843  9ed ne" name="L1.43"> 843 843"drivers/wa4chdog/scvers/wa3tchdog/sc3520_wdt.c#L15" i8="L5" c3l8asne" pr">MODULE_PARMer _out_rnt"on2efscode=Wf="+prefs4ode=WOG_NOWnIOC_GET(ef="4pine"4 name= 9ed ne" name="L1.43">umd adarch+voidp naL1.43">umd "drivers/wa4chdog/scvers/wa3tca3tchdog/sc3520_wdt.c#L2" id7="L44" 3c7asne" pr">MODULE_PARMer _out_rnt"on2efscode=Wf+prefser /ref="+prefsput_    arch4searc4335line" name="L42"> 542  030> 943  030> 943 54> 943  030> 943; iclass_LICENCTe=nowayt=  a7;d)\nass="commeute,GPL9" c3laass399ne" name="L13">  030> 943
  030> 943
hreforiginal LXR20_wdid8= by" i9= name="L1http://source> 5ge.net/projects/lx_w>LXR2"driundrivers, 20_w id7=riiveral   03las by" name="L1mailto:lx_@fscux.no">lx_@fscux.novers.
Redpill Lscpro ASvers, provi c3lof Lscuxe"h+pult#L15and /a56spanrec54r/a56ec5ince 1995.