linux/sound/sparc/amd7930.c
<<
> < href="../linux+v3.7.5/sound/sparc/amd7930.c"> > o/spa> ospa> class="lxr_search"> >="+search" method="post" onsubmit="return do_search(this);"> > > > Search ospa> class="lxr_prefs" < onclick="return ajax_prefs();"> > o/spa> > < < ="ajax+*" method="post" onsubmit="return false;"> oinput typ="vhidden" nam="vajax_lookup" id"vajax_lookup" alue="v"> > < <
<
< < < odiv id"vfile_contents"
< <1o/a>ospa> class="comment">/*o/spa>
 < <2o/a>ospa> class="comment"> * Driver for AMD7930 sound chips found n vSparcs.o/spa>
 < <3o/a>ospa> class="comment"> * Copyright (C) 2002, 2008 David S. Miller <davem@davemloft.net>o/spa>
 < <4o/a>ospa> class="comment"> *o/spa>
 < <5o/a>ospa> class="comment"> * Based entirely upn vdrivers/sbus/audio/amd7930.c which is:o/spa>
 < <6o/a>ospa> class="comment"> * Copyright (C) 1996,1997 Thomas K. Dyas (tdyas@eden.rutgers.edu)o/spa>
 < <7o/a>ospa> class="comment"> *o/spa>
 < <8o/a>ospa> class="comment"> * --- Notes from Thomas's originalvdriver ---o/spa>
 < <9o/a>ospa> class="comment"> * This is the lowlevelvdriver for the AMD7930 audio chip found n vallo/spa>
 < 0ospa> class="comment"> * sun4c machines and some sun4m machines.o/spa>
 < 11o/a>ospa> class="comment"> *o/spa>
 < 12o/a>ospa> class="comment"> * The amd7930 is aciually an ISDN chip which has a very simpleo/spa>
 < 13o/a>ospa> class="comment"> * integrated audio encoder/decoder. Whe vSu vdecided n vwhat chip too/spa>
 < 14o/a>ospa> class="comment"> * use for audio, they had the brilliant idea of using the amd7930 ando/spa>
 < 15o/a>ospa> class="comment"> * only connecting the audio encoder/decoder pins.o/spa>
 < 16o/a>ospa> class="comment"> *o/spa>
 < 17o/a>ospa> class="comment"> * Thanks to the AMD engineer who was able to get us the AMD79C<0/ospa>
 < 18o/a>ospa> class="comment"> * databook which has all the programming informaion vand gai vtables.o/spa>
 < 19o/a>ospa> class="comment"> *o/spa>
 < 2ospa> class="comment"> * Advanced Micro Devices' Am79C<0A is an ISDN/audio chip used i vtheo/spa>
 < 21o/a>ospa> class="comment"> *vSparcStaion v1+.  The chip provides microphone and speaker interfaceso/spa>
 < 22o/a>ospa> class="comment"> * which provide mono-channelvaudio at 8K samples per second via eithero/spa>
 < 23o/a>ospa> class="comment"> * 8-bit A-law or 8-bit mu-law encoding.  Also, the chip features ano/spa>
 < 24o/a>ospa> class="comment"> * ISDN BRI Line Interface Unit (LIU), I.430 S/T physicalvinterface,o/spa>
 < 25o/a>ospa> class="comment"> * which performs basic D channelvLAPD processing and provides rawo/spa>
 < 26o/a>ospa> class="comment"> * B channelvdata.  The digital audio channel, the two ISDN B channels,o/spa>
 < 27o/a>ospa> class="comment"> * and two 64 Kbps channels to the microprocessor are all interconnectedo/spa>
 < 28o/a>ospa> class="comment"> * via a multiplexer.o/spa>
 < 29o/a>ospa> class="comment"> * --- End nf notes from Thoamas's originalvdriver ---o/spa>
 < 3ospa> class="comment"> */o/spa>
 < 31o/a> < 32o/a>#include <linux/module.ho/a>> < 33o/a>#include <linux/kernel.ho/a>> < 34o/a>#include <linux/slab.ho/a>> < 35o/a>#include <linux/init.ho/a>> < 36o/a>#include <linux/interrupt.ho/a>> < 37o/a>#include <linux/moduleparam.ho/a>> < 38o/a>#include <linux/of.ho/a>> < 39o/a>#include <linux/of_device.ho/a>> < 40o/a> < 41o/a>#include <sound/core.ho/a>> < 42o/a>#include <sound/pcm.ho/a>> < 43o/a>#include <sound/info.ho/a>> < 44o/a>#include <sound/control.ho/a>> < 45o/a>#include <sound/initval.ho/a>> < 46o/a> < 47o/a>#include <asm/io.ho/a>> < 48o/a>#include <asm/irq.ho/a>> < 49o/a>#include <asm/prom.ho/a>> < 50o/a> < 51o/a>static intindexo/a>[oa href="+code=SNDRV_CARDS" class="sref">SNDRV_CARDSo/a>] =SNDRV_DEFAULT_IDXo/a>; > <  class="comment">/* Index 0-MAX */o/spa>
 < 52o/a>static char *oa href="+code=id" class="sref">ido/a>[oa href="+code=SNDRV_CARDS" class="sref">SNDRV_CARDSo/a>] =SNDRV_DEFAULT_STRo/a>; > < < class="comment">/* ID for this card */o/spa>
 < 53o/a>static oa href="+code=bool" class="sref">boolo/a> oa href="+code=enable" class="sref">enableo/a>[oa href="+code=SNDRV_CARDS" class="sref">SNDRV_CARDSo/a>] =SNDRV_DEFAULT_ENABLE_PNPo/a>; > < ospa> class="comment">/* Enable this card */o/spa>
 < 54o/a> < 55o/a>oa href="+code=module_param_array" class="sref">module_param_arrayo/a>(oa href="+code=index" class="sref">indexo/a>, int,NULLo/a>, 0444); < 56o/a>oa href="+code=MODULE_PARM_DESC" class="sref">MODULE_PARM_DESCo/a>(oa href="+code=index" class="sref">indexo/a>, ospa> class="string">"Index alue= for Su vAMD7930 soundcard."o/spa>
); < 57o/a>oa href="+code=module_param_array" class="sref">module_param_arrayo/a>(oa href="+code=id" class="sref">ido/a>,charpo/a>,NULLo/a>, 0444); < 58o/a>oa href="+code=MODULE_PARM_DESC" class="sref">MODULE_PARM_DESCo/a>(oa href="+code=id" class="sref">ido/a>, class="string">"ID string for Su vAMD7930 soundcard."o/spa>
); < 59o/a>oa href="+code=module_param_array" class="sref">module_param_arrayo/a>(oa href="+code=enable" class="sref">enableo/a>,boolo/a>,NULLo/a>, 0444); < 60o/a>oa href="+code=MODULE_PARM_DESC" class="sref">MODULE_PARM_DESCo/a>(oa href="+code=enable" class="sref">enableo/a>, class="string">"Enable Su vAMD7930 soundcard."o/spa>
); < 61o/a>oa href="+code=MODULE_AUTHOR" class="sref">MODULE_AUTHORo/a>(ospa> class="string">"Thomas K. Dyas and David S. Miller"o/spa>
); < 62o/a>oa href="+code=MODULE_DESCRIPTION" class="sref">MODULE_DESCRIPTIONo/a>(ospa> class="string">"Su vAMD7930"o/spa>
); < 63o/a>oa href="+code=MODULE_LICENSE" class="sref">MODULE_LICENSEo/a>(ospa> class="string">"GPL"o/spa>
); < 64o/a>oa href="+code=MODULE_SUPPORTED_DEVICE" class="sref">MODULE_SUPPORTED_DEVICEo/a>(ospa> class="string">"{{Su ,AMD7930}}"o/spa>
); < 65o/a> < 66o/a>ospa> class="comment">/* Device register layout.  */o/spa>
 < 67o/a> < 68o/a>ospa> class="comment">/* Register interface presented to the CPU by the amd7930. */o/spa>
 < 69o/a>#define oa href="+code=AMD7930_CR" class="sref">AMD7930_CRo/a>      0x00UL          ospa> class="comment">/* Command Register (W) */o/spa>
 < 70o/a>#define oa href="+code=AMD7930_IR" class="sref">AMD7930_IRo/a>      oa href="+code=AMD7930_CR" class="sref">AMD7930_CRo/a>      ospa> class="comment">/* Interrupt Register (R) */o/spa>
 < 71o/a>#define oa href="+code=AMD7930_DR" class="sref">AMD7930_DRo/a>      0x01UL          ospa> class="comment">/* Data Register (R/W) */o/spa>
 < 72o/a>#define oa href="+code=AMD7930_DSR1" class="sref">AMD7930_DSR1o/a>    0x02UL          ospa> class="comment">/* D-channelvStaius Register 1 (R) */o/spa>
 < 73o/a>#define oa href="+code=AMD7930_DER" class="sref">AMD7930_DERo/a>     0x03UL          ospa> class="comment">/* D-channelvError Register (R) */o/spa>
 < 74o/a>#define oa href="+code=AMD7930_DCTB" class="sref">AMD7930_DCTBo/a>    0x04UL          ospa> class="comment">/* D-channelvTransmit Buffer (W) */o/spa>
 < 75o/a>#define oa href="+code=AMD7930_DCRB" class="sref">AMD7930_DCRBo/a>    oa href="+code=AMD7930_DCTB" class="sref">AMD7930_DCTBo/a>    ospa> class="comment">/* D-channelvReceive Buffer (R) */o/spa>
 < 76o/a>#define oa href="+code=AMD7930_BBTB" class="sref">AMD7930_BBTBo/a>    0x05UL          ospa> class="comment">/* Bb-channelvTransmit Buffer (W) */o/spa>
 < 77o/a>#define oa href="+code=AMD7930_BBRB" class="sref">AMD7930_BBRBo/a>    oa href="+code=AMD7930_BBTB" class="sref">AMD7930_BBTBo/a>    ospa> class="comment">/* Bb-channelvReceive Buffer (R) */o/spa>
 < 78o/a>#define oa href="+code=AMD7930_BCTB" class="sref">AMD7930_BCTBo/a>    0x06UL          ospa> class="comment">/* Bc-channelvTransmit Buffer (W) */o/spa>
 < 79o/a>#define oa href="+code=AMD7930_BCRB" class="sref">AMD7930_BCRBo/a>    oa href="+code=AMD7930_BCTB" class="sref">AMD7930_BCTBo/a>    ospa> class="comment">/* Bc-channelvReceive Buffer (R) */o/spa>
 < 80o/a>#define oa href="+code=AMD7930_DSR2" class="sref">AMD7930_DSR2o/a>    0x07UL          ospa> class="comment">/* D-channelvStaius Register 2 (R) */o/spa>
 < 81o/a> < 82o/a>ospa> class="comment">/* Indirect registers i vthe Mai vAudio Processor. */o/spa>
 < 83o/a>structamd7930_mapo/a> { < 84o/a>        oa href="+code=__u16" class="sref">__u16o/a>   oa href="+code=x" class="sref">xo/a>[8]; < 85o/a>        oa href="+code=__u16" class="sref">__u16o/a>   oa href="+code=r" class="sref">ro/a>[8]; < 86o/a>        oa href="+code=__u16" class="sref">__u16o/a>   oa href="+code=gx" class="sref">gxo/a>; < 87o/a>        oa href="+code=__u16" class="sref">__u16o/a>   oa href="+code=gr" class="sref">gro/a>; < 88o/a>        oa href="+code=__u16" class="sref">__u16o/a>   oa href="+code=ger" class="sref">gero/a>; < 89o/a>        oa href="+code=__u16" class="sref">__u16o/a>   oa href="+code=stgr" class="sref">stgro/a>; < 90o/a>        oa href="+code=__u16" class="sref">__u16o/a>   oa href="+code=ftgr" class="sref">ftgro/a>; < 91o/a>        oa href="+code=__u16" class="sref">__u16o/a>   oa href="+code=atgr" class="sref">atgro/a>; < 92o/a>        oa href="+code=__u8" class="sref">__u8o/a>    oa href="+code=mmr1" class="sref">mmr1o/a>; < 93o/a>        oa href="+code=__u8" class="sref">__u8o/a>    oa href="+code=mmr2" class="sref">mmr2o/a>; < 94o/a>}; < 95o/a> < 96o/a>ospa> class="comment">/* After a> amd7930 interrupt, readingvthe Interrupt Register (ir)o/spa>
 < 97o/a>ospa> class="comment"> * clears the interrupt and returns a bitmask indicating whicho/spa>
 < 98o/a>ospa> class="comment"> * interrupt source(s) require service.o/spa>
 < 99o/a>ospa> class="comment"> */o/spa>
 <100o/a> <101o/a>#define oa href="+code=AMR_IR_DTTHRSH" class="sref">AMR_IR_DTTHRSHo/a>                  0x01 ospa> class="comment">/* D-channelvxmit threshold */o/spa>
 <102o/a>#define oa href="+code=AMR_IR_DRTHRSH" class="sref">AMR_IR_DRTHRSHo/a>                  0x02 ospa> class="comment">/* D-channelvrecv threshold */o/spa>
 <103o/a>#define oa href="+code=AMR_IR_DSRI" class="sref">AMR_IR_DSRIo/a>                     0x04 ospa> class="comment">/* D-channelvpacket staius */o/spa>
 <104o/a>#define oa href="+code=AMR_IR_DERI" class="sref">AMR_IR_DERIo/a>                     0x08 ospa> class="comment">/* D-channelverror */o/spa>
 <105o/a>#define oa href="+code=AMR_IR_BBUF" class="sref">AMR_IR_BBUFo/a>                     0x10 ospa> class="comment">/* B-channelvdata xfer */o/spa>
 <106o/a>#define oa href="+code=AMR_IR_LSRI" class="sref">AMR_IR_LSRIo/a>                     0x20 ospa> class="comment">/* LIU staius */o/spa>
 <107o/a>#define oa href="+code=AMR_IR_DSR2I" class="sref">AMR_IR_DSR2Io/a>                    0x40 ospa> class="comment">/* D-channelvbuffer staius */o/spa>
 <108o/a>#define oa href="+code=AMR_IR_MLTFRMI" class="sref">AMR_IR_MLTFRMIo/a>                  0x80 ospa> class="comment">/* multifram= or PP */o/spa>
 <109o/a> <10ospa> class="comment">/* The amd7930 has "indirect registers" which are accessed by writingo/spa>
 <111o/a>ospa> class="comment"> * the register number into the Command Register and the vreadingvoro/spa>
 <112o/a>ospa> class="comment"> * writing alue=s from the Data Register as appropriate. We define theo/spa>
 <113o/a>ospa> class="comment"> * AMR_* macros to be the indirect register numbers and AM_* macros too/spa>
 <114o/a>ospa> class="comment"> * be bits i vwhatever register is referred to.o/spa>
 <115o/a>ospa> class="comment"> */o/spa>
 <116o/a> <117o/a>ospa> class="comment">/* Initializaion v*/o/spa>
 <118o/a>#define oa href="+code=AMR_INIT" class="sref">AMR_INITo/a>                        0x21 <119o/a>#define         oa href="+code=AM_INIT_ACTIVE" class="sref">AM_INIT_ACTIVEo/a>                  0x01 <120o/a>#define         oa href="+code=AM_INIT_DATAONLY" class="sref">AM_INIT_DATAONLYo/a>                0x02 <121o/a>#define         oa href="+code=AM_INIT_POWERDOWN" class="sref">AM_INIT_POWERDOWNo/a>               0x03 <122o/a>#define         oa href="+code=AM_INIT_DISABLE_INTS" class="sref">AM_INIT_DISABLE_INTSo/a>            0x04 <123o/a>#define oa href="+code=AMR_INIT2" class="sref">AMR_INIT2o/a>                       0x20 <124o/a>#define         oa href="+code=AM_INIT2_ENABLE_POWERDOWN" class="sref">AM_INIT2_ENABLE_POWERDOWNo/a>       0x20 <125o/a>#define         oa href="+code=AM_INIT2_ENABLE_MULTIFRAME" class="sref">AM_INIT2_ENABLE_MULTIFRAMEo/a>      0x10 <126o/a> <127o/a>ospa> class="comment">/* Line Interface Unit */o/spa>
 <128o/a>#define oa href="+code=AMR_LIU_LSR" class="sref">AMR_LIU_LSRo/a>                     0xA1 <129o/a>#define         oa href="+code=AM_LIU_LSR_STATE" class="sref">AM_LIU_LSR_STATEo/a>                0x07 <130o/a>#define         oa href="+code=AM_LIU_LSR_F3" class="sref">AM_LIU_LSR_F3o/a>                   0x08 <131o/a>#define         oa href="+code=AM_LIU_LSR_F7" class="sref">AM_LIU_LSR_F7o/a>                   0x10 <132o/a>#define         oa href="+code=AM_LIU_LSR_F8" class="sref">AM_LIU_LSR_F8o/a>                   0x20 <133o/a>#define         oa href="+code=AM_LIU_LSR_HSW" class="sref">AM_LIU_LSR_HSWo/a>                  0x40 <134o/a>#define         oa href="+code=AM_LIU_LSR_HSW_CHG" class="sref">AM_LIU_LSR_HSW_CHGo/a>              0x80 <135o/a>#define oa href="+code=AMR_LIU_LPR" class="sref">AMR_LIU_LPRo/a>                     0xA2 <136o/a>#define oa href="+code=AMR_LIU_LMR1" class="sref">AMR_LIU_LMR1o/a>                    0xA3 <137o/a>#define         oa href="+code=AM_LIU_LMR1_B1_ENABL" class="sref">AM_LIU_LMR1_B1_ENABLo/a>            0x01 <138o/a>#define         oa href="+code=AM_LIU_LMR1_B2_ENABL" class="sref">AM_LIU_LMR1_B2_ENABLo/a>            0x02 <139o/a>#define         oa href="+code=AM_LIU_LMR1_F_DISABL" class="sref">AM_LIU_LMR1_F_DISABLo/a>            0x04 <140o/a>#define         oa href="+code=AM_LIU_LMR1_FA_DISABL" class="sref">AM_LIU_LMR1_FA_DISABLo/a>           0x08 <141o/a>#define         oa href="+code=AM_LIU_LMR1_REQ_ACTIV" class="sref">AM_LIU_LMR1_REQ_ACTIVo/a>           0x10 <142o/a>#define         oa href="+code=AM_LIU_LMR1_F8_F3" class="sref">AM_LIU_LMR1_F8_F3o/a>               0x20 <143o/a>#define         oa href="+code=AM_LIU_LMR1_LIU_ENABL" class="sref">AM_LIU_LMR1_LIU_ENABLo/a>           0x40 <144o/a>#define oa href="+code=AMR_LIU_LMR2" class="sref">AMR_LIU_LMR2o/a>                    0xA4 <145o/a>#define         oa href="+code=AM_LIU_LMR2_DECHO" class="sref">AM_LIU_LMR2_DECHOo/a>               0x01 <146o/a>#define         oa href="+code=AM_LIU_LMR2_DLOOP" class="sref">AM_LIU_LMR2_DLOOPo/a>               0x02 <147o/a>#define         oa href="+code=AM_LIU_LMR2_DBACKOFF" class="sref">AM_LIU_LMR2_DBACKOFFo/a>            0x04 <148o/a>#define         oa href="+code=AM_LIU_LMR2_EN_F3_INT" class="sref">AM_LIU_LMR2_EN_F3_INTo/a>           0x08 <149o/a>#define         oa href="+code=AM_LIU_LMR2_EN_F8_INT" class="sref">AM_LIU_LMR2_EN_F8_INTo/a>           0x10 <150o/a>#define         oa href="+code=AM_LIU_LMR2_EN_HSW_INT" class="sref">AM_LIU_LMR2_EN_HSW_INTo/a>          0x20 <151o/a>#define         oa href="+code=AM_LIU_LMR2_EN_F7_INT" class="sref">AM_LIU_LMR2_EN_F7_INTo/a>           0x40 <152o/a>#define oa href="+code=AMR_LIU_2_4" class="sref">AMR_LIU_2_4o/a>                     0xA5 <153o/a>#define oa href="+code=AMR_LIU_MF" class="sref">AMR_LIU_MFo/a>                      0xA6 <154o/a>#define oa href="+code=AMR_LIU_MFSB" class="sref">AMR_LIU_MFSBo/a>                    0xA7 <155o/a>#define oa href="+code=AMR_LIU_MFQB" class="sref">AMR_LIU_MFQBo/a>                    0xA8 <156o/a> <157o/a>ospa> class="comment">/* Multiplexor */o/spa>
 <158o/a>#define oa href="+code=AMR_MUX_MCR1" class="sref">AMR_MUX_MCR1o/a>                    0x41 <159o/a>#define oa href="+code=AMR_MUX_MCR2" class="sref">AMR_MUX_MCR2o/a>                    0x42 <160o/a>#define oa href="+code=AMR_MUX_MCR3" class="sref">AMR_MUX_MCR3o/a>                    0x43 <161o/a>#define         oa href="+code=AM_MUX_CHANNEL_B1" class="sref">AM_MUX_CHANNEL_B1o/a>               0x01 <162o/a>#define         oa href="+code=AM_MUX_CHANNEL_B2" class="sref">AM_MUX_CHANNEL_B2o/a>               0x02 <163o/a>#define         oa href="+code=AM_MUX_CHANNEL_Ba" class="sref">AM_MUX_CHANNEL_Bao/a>               0x03 <164o/a>#define         oa href="+code=AM_MUX_CHANNEL_Bb" class="sref">AM_MUX_CHANNEL_Bbo/a>               0x04 <165o/a>#define         oa href="+code=AM_MUX_CHANNEL_Bc" class="sref">AM_MUX_CHANNEL_Bco/a>               0x05 <166o/a>#define         oa href="+code=AM_MUX_CHANNEL_Bd" class="sref">AM_MUX_CHANNEL_Bdo/a>               0x06 <167o/a>#define         oa href="+code=AM_MUX_CHANNEL_Be" class="sref">AM_MUX_CHANNEL_Beo/a>               0x07 <168o/a>#define         oa href="+code=AM_MUX_CHANNEL_Bf" class="sref">AM_MUX_CHANNEL_Bfo/a>               0x08 <169o/a>#define oa href="+code=AMR_MUX_MCR4" class="sref">AMR_MUX_MCR4o/a>                    0x44 <170o/a>#define         oa href="+code=AM_MUX_MCR4_ENABLE_INTS" class="sref">AM_MUX_MCR4_ENABLE_INTSo/a>         0x08 <171o/a>#define         oa href="+code=AM_MUX_MCR4_REVERSE_Bb" class="sref">AM_MUX_MCR4_REVERSE_Bbo/a>          0x10 <172o/a>#define         oa href="+code=AM_MUX_MCR4_REVERSE_Bc" class="sref">AM_MUX_MCR4_REVERSE_Bco/a>          0x20 <173o/a>#define oa href="+code=AMR_MUX_1_4" class="sref">AMR_MUX_1_4o/a>                     0x45 <174o/a> <175o/a>ospa> class="comment">/* Mai vAudio Processor */o/spa>
 <176o/a>#define oa href="+code=AMR_MAP_X" class="sref">AMR_MAP_Xo/a>                       0x61 <177o/a>#define oa href="+code=AMR_MAP_R" class="sref">AMR_MAP_Ro/a>                       0x62 <178o/a>#define oa href="+code=AMR_MAP_GX" class="sref">AMR_MAP_GXo/a>                      0x63 <179o/a>#define oa href="+code=AMR_MAP_GR" class="sref">AMR_MAP_GRo/a>                      0x64 <180o/a>#define oa href="+code=AMR_MAP_GER" class="sref">AMR_MAP_GERo/a>                     0x65 <181o/a>#define oa href="+code=AMR_MAP_STGR" class="sref">AMR_MAP_STGRo/a>                    0x66 <182o/a>#define oa href="+code=AMR_MAP_FTGR_1_2" class="sref">AMR_MAP_FTGR_1_2o/a>                0x67 <183o/a>#define oa href="+code=AMR_MAP_ATGR_1_2" class="sref">AMR_MAP_ATGR_1_2o/a>                0x68 <184o/a>#define oa href="+code=AMR_MAP_MMR1" class="sref">AMR_MAP_MMR1o/a>                    0x69 <185o/a>#define         oa href="+code=AM_MAP_MMR1_ALAW" class="sref">AM_MAP_MMR1_ALAWo/a>                0x01 <186o/a>#define         oa href="+code=AM_MAP_MMR1_GX" class="sref">AM_MAP_MMR1_GXo/a>                  0x02 <187o/a>#define         oa href="+code=AM_MAP_MMR1_GR" class="sref">AM_MAP_MMR1_GRo/a>                  0x04 <188o/a>#define         oa href="+code=AM_MAP_MMR1_GER" class="sref">AM_MAP_MMR1_GERo/a>                 0x08 <189o/a>#define         oa href="+code=AM_MAP_MMR1_X" class="sref">AM_MAP_MMR1_Xo/a>                   0x10 <190o/a>#define         oa href="+code=AM_MAP_MMR1_R" class="sref">AM_MAP_MMR1_Ro/a>                   0x20 <191o/a>#define         oa href="+code=AM_MAP_MMR1_STG" class="sref">AM_MAP_MMR1_STGo/a>                 0x40 <192o/a>#define         oa href="+code=AM_MAP_MMR1_LOOPBACK" class="sref">AM_MAP_MMR1_LOOPBACKo/a>            0x80 <193o/a>#define oa href="+code=AMR_MAP_MMR2" class="sref">AMR_MAP_MMR2o/a>                    0x6A <194o/a>#define         oa href="+code=AM_MAP_MMR2_AINB" class="sref">AM_MAP_MMR2_AINBo/a>                0x01 <195o/a>#define         oa href="+code=AM_MAP_MMR2_LS" class="sref">AM_MAP_MMR2_LSo/a>                  0x02 <196o/a>#define         oa href="+code=AM_MAP_MMR2_ENABLE_DTMF" class="sref">AM_MAP_MMR2_ENABLE_DTMFo/a>         0x04 <197o/a>#define         oa href="+code=AM_MAP_MMR2_ENABLE_TONEGEN" class="sref">AM_MAP_MMR2_ENABLE_TONEGENo/a>      0x08 <198o/a>#define         oa href="+code=AM_MAP_MMR2_ENABLE_TONERING" class="sref">AM_MAP_MMR2_ENABLE_TONERINGo/a>     0x10 <199o/a>#define         oa href="+code=AM_MAP_MMR2_DISABLE_HIGHPASS" class="sref">AM_MAP_MMR2_DISABLE_HIGHPASSo/a>    0x20 <200o/a>#define         oa href="+code=AM_MAP_MMR2_DISABLE_AUTOZERO" class="sref">AM_MAP_MMR2_DISABLE_AUTOZEROo/a>    0x40 <201o/a>#define oa href="+code=AMR_MAP_1_10" class="sref">AMR_MAP_1_10o/a>                    0x6B <202o/a>#define oa href="+code=AMR_MAP_MMR3" class="sref">AMR_MAP_MMR3o/a>                    0x6C <203o/a>#define oa href="+code=AMR_MAP_STRA" class="sref">AMR_MAP_STRAo/a>                    0x6D <204o/a>#define oa href="+code=AMR_MAP_STRF" class="sref">AMR_MAP_STRFo/a>                    0x6E <205o/a>#define oa href="+code=AMR_MAP_PEAKX" class="sref">AMR_MAP_PEAKXo/a>                   0x70 <206o/a>#define oa href="+code=AMR_MAP_PEAKR" class="sref">AMR_MAP_PEAKRo/a>                   0x71 <207o/a>#define oa href="+code=AMR_MAP_15_16" class="sref">AMR_MAP_15_16o/a>                   0x72 <208o/a> <209o/a>ospa> class="comment">/* Data Link Controller */o/spa>
 <210o/a>#define oa href="+code=AMR_DLC_FRAR_1_2_3" class="sref">AMR_DLC_FRAR_1_2_3o/a>              0x81 <211o/a>#define oa href="+code=AMR_DLC_SRAR_1_2_3" class="sref">AMR_DLC_SRAR_1_2_3o/a>              0x82 <212o/a>#define oa href="+code=AMR_DLC_TAR" class="sref">AMR_DLC_TARo/a>                     0x83 <213o/a>#define oa href="+code=AMR_DLC_DRLR" class="sref">AMR_DLC_DRLRo/a>                    0x84 <214o/a>#define oa href="+code=AMR_DLC_DTCR" class="sref">AMR_DLC_DTCRo/a>                    0x85 <215o/a>#define oa href="+code=AMR_DLC_DMR1" class="sref">AMR_DLC_DMR1o/a>                    0x86 <216o/a>#define         oa href="+code=AMR_DLC_DMR1_DTTHRSH_INT" class="sref">AMR_DLC_DMR1_DTTHRSH_INTo/a>        0x01 <217o/a>#define         oa href="+code=AMR_DLC_DMR1_DRTHRSH_INT" class="sref">AMR_DLC_DMR1_DRTHRSH_INTo/a>        0x02 <218o/a>#define         oa href="+code=AMR_DLC_DMR1_TAR_ENABL" class="sref">AMR_DLC_DMR1_TAR_ENABLo/a>          0x04 <219o/a>#define         oa href="+code=AMR_DLC_DMR1_EORP_INT" class="sref">AMR_DLC_DMR1_EORP_INTo/a>           0x08 <220o/a>#define         oa href="+code=AMR_DLC_DMR1_EN_ADDR1" class="sref">AMR_DLC_DMR1_EN_ADDR1o/a>           0x10 <221o/a>#define         oa href="+code=AMR_DLC_DMR1_EN_ADDR2" class="sref">AMR_DLC_DMR1_EN_ADDR2o/a>           0x20 <222o/a>#define         oa href="+code=AMR_DLC_DMR1_EN_ADDR3" class="sref">AMR_DLC_DMR1_EN_ADDR3o/a>           0x40 <223o/a>#define         oa href="+code=AMR_DLC_DMR1_EN_ADDR4" class="sref">AMR_DLC_DMR1_EN_ADDR4o/a>           0x80 <224o/a>#define         oa href="+code=AMR_DLC_DMR1_EN_ADDRS" class="sref">AMR_DLC_DMR1_EN_ADDRSo/a>           0xf0 <225o/a>#define oa href="+code=AMR_DLC_DMR2" class="sref">AMR_DLC_DMR2o/a>                    0x87 <226o/a>#define         oa href="+code=AMR_DLC_DMR2_RABRT_INT" class="sref">AMR_DLC_DMR2_RABRT_INTo/a>          0x01 <227o/a>#define         oa href="+code=AMR_DLC_DMR2_RESID_INT" class="sref">AMR_DLC_DMR2_RESID_INTo/a>          0x02 <228o/a>#define         oa href="+code=AMR_DLC_DMR2_COLL_INT" class="sref">AMR_DLC_DMR2_COLL_INTo/a>           0x04 <229o/a>#define         oa href="+code=AMR_DLC_DMR2_FCS_INT" class="sref">AMR_DLC_DMR2_FCS_INTo/a>            0x08 <230o/a>#define         oa href="+code=AMR_DLC_DMR2_OVFL_INT" class="sref">AMR_DLC_DMR2_OVFL_INTo/a>           0x10 <231o/a>#define         oa href="+code=AMR_DLC_DMR2_UNFL_INT" class="sref">AMR_DLC_DMR2_UNFL_INTo/a>           0x20 <232o/a>#define         oa href="+code=AMR_DLC_DMR2_OVRN_INT" class="sref">AMR_DLC_DMR2_OVRN_INTo/a>           0x40 <233o/a>#define         oa href="+code=AMR_DLC_DMR2_UNRN_INT" class="sref">AMR_DLC_DMR2_UNRN_INTo/a>           0x80 <234o/a>#define oa href="+code=AMR_DLC_1_7" class="sref">AMR_DLC_1_7o/a>                     0x88 <235o/a>#define oa href="+code=AMR_DLC_DRCR" class="sref">AMR_DLC_DRCRo/a>                    0x89 <236o/a>#define oa href="+code=AMR_DLC_RNGR1" class="sref">AMR_DLC_RNGR1o/a>                   0x8A <237o/a>#define oa href="+code=AMR_DLC_RNGR2" class="sref">AMR_DLC_RNGR2o/a>                   0x8B <238o/a>#define oa href="+code=AMR_DLC_FRAR4" class="sref">AMR_DLC_FRAR4o/a>                   0x8C <239o/a>#define oa href="+code=AMR_DLC_SRAR4" class="sref">AMR_DLC_SRAR4o/a>                   0x8D <240o/a>#define oa href="+code=AMR_DLC_DMR3" class="sref">AMR_DLC_DMR3o/a>                    0x8E <241o/a>#define         oa href="+code=AMR_DLC_DMR3_VA_INT" class="sref">AMR_DLC_DMR3_VA_INTo/a>             0x01 <242o/a>#define         oa href="+code=AMR_DLC_DMR3_EOTP_INT" class="sref">AMR_DLC_DMR3_EOTP_INTo/a>           0x02 <243o/a>#define         oa href="+code=AMR_DLC_DMR3_LBRP_INT" class="sref">AMR_DLC_DMR3_LBRP_INTo/a>           0x04 <244o/a>#define         oa href="+code=AMR_DLC_DMR3_RBA_INT" class="sref">AMR_DLC_DMR3_RBA_INTo/a>            0x08 <245o/a>#define         oa href="+code=AMR_DLC_DMR3_LBT_INT" class="sref">AMR_DLC_DMR3_LBT_INTo/a>            0x10 <246o/a>#define         oa href="+code=AMR_DLC_DMR3_TBE_INT" class="sref">AMR_DLC_DMR3_TBE_INTo/a>            0x20 <247o/a>#define         oa href="+code=AMR_DLC_DMR3_RPLOST_INT" class="sref">AMR_DLC_DMR3_RPLOST_INTo/a>         0x40 <248o/a>#define         oa href="+code=AMR_DLC_DMR3_KEEP_FCS" class="sref">AMR_DLC_DMR3_KEEP_FCSo/a>           0x80 <249o/a>#define oa href="+code=AMR_DLC_DMR4" class="sref">AMR_DLC_DMR4o/a>                    0x8F <250o/a>#define         oa href="+code=AMR_DLC_DMR4_RCV_1" class="sref">AMR_DLC_DMR4_RCV_1o/a>              0x00 <251o/a>#define         oa href="+code=AMR_DLC_DMR4_RCV_2" class="sref">AMR_DLC_DMR4_RCV_2o/a>              0x01 <252o/a>#define         oa href="+code=AMR_DLC_DMR4_RCV_4" class="sref">AMR_DLC_DMR4_RCV_4o/a>              0x02 <253o/a>#define         oa href="+code=AMR_DLC_DMR4_RCV_8" class="sref">AMR_DLC_DMR4_RCV_8o/a>              0x03 <254o/a>#define         oa href="+code=AMR_DLC_DMR4_RCV_16" class="sref">AMR_DLC_DMR4_RCV_16o/a>             0x01 <255o/a>#define         oa href="+code=AMR_DLC_DMR4_RCV_24" class="sref">AMR_DLC_DMR4_RCV_24o/a>             0x02 <256o/a>#define         oa href="+code=AMR_DLC_DMR4_RCV_30" class="sref">AMR_DLC_DMR4_RCV_30o/a>             0x03 <257o/a>#define         oa href="+code=AMR_DLC_DMR4_XMT_1" class="sref">AMR_DLC_DMR4_XMT_1o/a>              0x00 <258o/a>#define         oa href="+code=AMR_DLC_DMR4_XMT_2" class="sref">AMR_DLC_DMR4_XMT_2o/a>              0x04 <259o/a>#define         oa href="+code=AMR_DLC_DMR4_XMT_4" class="sref">AMR_DLC_DMR4_XMT_4o/a>              0x08 <260o/a>#define         oa href="+code=AMR_DLC_DMR4_XMT_8" class="sref">AMR_DLC_DMR4_XMT_8o/a>              0x0c <261o/a>#define         oa href="+code=AMR_DLC_DMR4_XMT_10" class="sref">AMR_DLC_DMR4_XMT_10o/a>             0x08 <262o/a>#define         oa href="+code=AMR_DLC_DMR4_XMT_14" class="sref">AMR_DLC_DMR4_XMT_14o/a>             0x0c <263o/a>#define         oa href="+code=AMR_DLC_DMR4_IDLE_MARK" class="sref">AMR_DLC_DMR4_IDLE_MARKo/a>          0x00 <264o/a>#define         oa href="+code=AMR_DLC_DMR4_IDLE_FLAG" class="sref">AMR_DLC_DMR4_IDLE_FLAGo/a>          0x10 <265o/a>#define         oa href="+code=AMR_DLC_DMR4_ADDR_BOTH" class="sref">AMR_DLC_DMR4_ADDR_BOTHo/a>          0x00 <266o/a>#define         oa href="+code=AMR_DLC_DMR4_ADDR_1ST" class="sref">AMR_DLC_DMR4_ADDR_1STo/a>           0x20 <267o/a>#define         oa href="+code=AMR_DLC_DMR4_ADDR_2ND" class="sref">AMR_DLC_DMR4_ADDR_2NDo/a>           0xa0 <268o/a>#define         oa href="+code=AMR_DLC_DMR4_CR_ENABLE" class="sref">AMR_DLC_DMR4_CR_ENABLEo/a>          0x40 <269o/a>#define oa href="+code=AMR_DLC_12_15" class="sref">AMR_DLC_12_15o/a>                   0x90 <270o/a>#define oa href="+code=AMR_DLC_ASR" class="sref">AMR_DLC_ASRo/a>                     0x91 <271o/a>#define oa href="+code=AMR_DLC_EFCR" class="sref">AMR_DLC_EFCRo/a>                    0x92 <272o/a>#define         oa href="+code=AMR_DLC_EFCR_EXTEND_FIFO" class="sref">AMR_DLC_EFCR_EXTEND_FIFOo/a>        0x01 <273o/a>#define         oa href="+code=AMR_DLC_EFCR_SEC_PKT_INT" class="sref">AMR_DLC_EFCR_SEC_PKT_INTo/a>        0x02 <274o/a> <275o/a>#define oa href="+code=AMR_DSR1_VADDR" class="sref">AMR_DSR1_VADDRo/a>                  0x01 <276o/a>#define oa href="+code=AMR_DSR1_EORP" class="sref">AMR_DSR1_EORPo/a>                   0x02 <277o/a>#define oa href="+code=AMR_DSR1_PKT_IP" class="sref">AMR_DSR1_PKT_IPo/a>                 0x04 <278o/a>#define oa href="+code=AMR_DSR1_DECHO_ON" class="sref">AMR_DSR1_DECHO_ONo/a>               0x08 <279o/a>#define oa href="+code=AMR_DSR1_DLOOP_ON" class="sref">AMR_DSR1_DLOOP_ONo/a>               0x10 <280o/a>#define oa href="+code=AMR_DSR1_DBACK_OFF" class="sref">AMR_DSR1_DBACK_OFFo/a>              0x20 <281o/a>#define oa href="+code=AMR_DSR1_EOTP" class="sref">AMR_DSR1_EOTPo/a>                   0x40 <282o/a>#define oa href="+code=AMR_DSR1_CXMT_ABRT" class="sref">AMR_DSR1_CXMT_ABRTo/a>              0x80 <283o/a> <284o/a>#define oa href="+code=AMR_DSR2_LBRP" class="sref">AMR_DSR2_LBRPo/a>                   0x01 <285o/a>#define oa href="+code=AMR_DSR2_RBA" class="sref">AMR_DSR2_RBAo/a>                    0x02 <286o/a>#define oa href="+code=AMR_DSR2_RPLOST" class="sref">AMR_DSR2_RPLOSTo/a>                 0x04 <287o/a>#define oa href="+code=AMR_DSR2_LAST_BYTE" class="sref">AMR_DSR2_LAST_BYTEo/a>              0x08 <288o/a>#define oa href="+code=AMR_DSR2_TBE" class="sref">AMR_DSR2_TBEo/a>                    0x10 <289o/a>#define oa href="+code=AMR_DSR2_MARK_IDLE" class="sref">AMR_DSR2_MARK_IDLEo/a>              0x20 <290o/a>#define oa href="+code=AMR_DSR2_FLAG_IDLE" class="sref">AMR_DSR2_FLAG_IDLEo/a>              0x40 <291o/a>#define oa href="+code=AMR_DSR2_SECOND_PKT" class="sref">AMR_DSR2_SECOND_PKTo/a>             0x80 <292o/a> <293o/a>#define oa href="+code=AMR_DER_RABRT" class="sref">AMR_DER_RABRTo/a>                   0x01 <294o/a>#define oa href="+code=AMR_DER_RFRAME" class="sref">AMR_DER_RFRAMEo/a>                  0x02 <295o/a>#define oa href="+code=AMR_DER_COLLISION" class="sref">AMR_DER_COLLISIONo/a>               0x04 <296o/a>#define oa href="+code=AMR_DER_FCS" class="sref">AMR_DER_FCSo/a>                     0x08 <297o/a>#define oa href="+code=AMR_DER_OVFL" class="sref">AMR_DER_OVFLo/a>                    0x10 <298o/a>#define oa href="+code=AMR_DER_UNFL" class="sref">AMR_DER_UNFLo/a>                    0x20 <299o/a>#define oa href="+code=AMR_DER_OVRN" class="sref">AMR_DER_OVRNo/a>                    0x40 <300o/a>#define oa href="+code=AMR_DER_UNRN" class="sref">AMR_DER_UNRNo/a>                    0x80 <301o/a> <302o/a>ospa> class="comment">/* Peripheral Port */o/spa>
 <303o/a>#define oa href="+code=AMR_PP_PPCR1" class="sref">AMR_PP_PPCR1o/a>                    0xC0 <304o/a>#define oa href="+code=AMR_PP_PPSR" class="sref">AMR_PP_PPSRo/a>                     0xC1 <305o/a>#define oa href="+code=AMR_PP_PPIER" class="sref">AMR_PP_PPIERo/a>                    0xC2 <306o/a>#define oa href="+code=AMR_PP_MTDR" class="sref">AMR_PP_MTDRo/a>                     0xC3 <307o/a>#define oa href="+code=AMR_PP_MRDR" class="sref">AMR_PP_MRDRo/a>                     0xC3 <308o/a>#define oa href="+code=AMR_PP_CITDR0" class="sref">AMR_PP_CITDR0o/a>                   0xC4 <309o/a>#define oa href="+code=AMR_PP_CIRDR0" class="sref">AMR_PP_CIRDR0o/a>                   0xC4 <310o/a>#define oa href="+code=AMR_PP_CITDR1" class="sref">AMR_PP_CITDR1o/a>                   0xC5 <311o/a>#define oa href="+code=AMR_PP_CIRDR1" class="sref">AMR_PP_CIRDR1o/a>                   0xC5 <312o/a>#define oa href="+code=AMR_PP_PPCR2" class="sref">AMR_PP_PPCR2o/a>                    0xC8 <313o/a>#define oa href="+code=AMR_PP_PPCR3" class="sref">AMR_PP_PPCR3o/a>                    0xC9 <314o/a> <315o/a>struct oa href="+code=snd_amd7930" class="sref">snd_amd7930o/a> { <316o/a>        oa href="+code=spinlock_t" class="sref">spinlock_to/a>              oa href="+code=lock" class="sref">locko/a>; <317o/a>        void oa href="+code=__iomem" class="sref">__iomemo/a>            *oa href="+code=regs" class="sref">regso/a>; <318o/a>        oa href="+code=u32" class="sref">u32o/a>                     oa href="+code=flags" class="sref">flagso/a>; <319o/a>#define oa href="+code=AMD7930_FLAG_PLAYBACK" class="sref">AMD7930_FLAG_PLAYBACKo/a>   0x00000001 <320o/a>#define oa href="+code=AMD7930_FLAG_CAPTURE" class="sref">AMD7930_FLAG_CAPTUREo/a>    0x00000002 <321o/a> <322o/a>        struct oa href="+code=amd7930_map" class="sref">amd7930_mapo/a>      oa href="+code=map" class="sref">mapo/a>; <323o/a> <324o/a>        struct oa href="+code=snd_card" class="sref">snd_cardo/a>         *oa href="+code=card" class="sref">cardo/a>; <325o/a>        struct oa href="+code=snd_pcm" class="sref">snd_pcmo/a>          *oa href="+code=pcm" class="sref">pcmo/a>; <326o/a>        struct oa href="+code=snd_pcm_substream" class="sref">snd_pcm_substreamo/a>        *oa href="+code=playback_substream" class="sref">playback_substreamo/a>; <327o/a>        struct oa href="+code=snd_pcm_substream" class="sref">snd_pcm_substreamo/a>        *oa href="+code=capture_substream" class="sref">capture_substreamo/a>; <328o/a> <329o/a>        ospa> class="comment">/* Playback/Capture buffer state. */o/spa>
 <330o/a>        unsigned char           *oa href="+code=p_orig" class="sref">p_origo/a>, *oa href="+code=p_cur" class="sref">p_curo/a>; <331o/a>        int                     oa href="+code=p_left" class="sref">p_lefto/a>; <332o/a>        unsigned char           *oa href="+code=c_orig" class="sref">c_origo/a>, *oa href="+code=c_cur" class="sref">c_curo/a>; <333o/a>        int                     oa href="+code=c_left" class="sref">c_lefto/a>; <334o/a> <335o/a>        int                     oa href="+code=rgain" class="sref">rgaino/a>; <336o/a>        int                     oa href="+code=pgain" class="sref">pgaino/a>; <337o/a>        int                     oa href="+code=mgain" class="sref">mgaino/a>; <338o/a> <339o/a>        struct oa href="+code=platform_device" class="sref">platform_deviceo/a>  *oa href="+code=op" class="sref">opo/a>; <340o/a>        unsigned int            oa href="+code=irq" class="sref">irqo/a>; <341o/a>        struct oa href="+code=snd_amd7930" class="sref">snd_amd7930o/a>      *oa href="+code=next" class="sref">nexto/a>; <342o/a>}; <343o/a> <344o/a>static struct oa href="+code=snd_amd7930" class="sref">snd_amd7930o/a> *oa href="+code=amd7930_list" class="sref">amd7930_listo/a>; <345o/a> <346o/a>ospa> class="comment">/* Idle the AMD7930 chip.  The amd->lock is not held.  */o/spa>
 <347o/a>static oa href="+code=__inline__" class="sref">__inline__o/a> void oa href="+code=amd7930_idle" class="sref">amd7930_idleo/a>(struct oa href="+code=snd_amd7930" class="sref">snd_amd7930o/a> *oa href="+code=amd" class="sref">amdo/a>) <348o/a>{ <349o/a>        unsigned long oa href="+code=flags" class="sref">flagso/a>; <350o/a> <351o/a>        oa href="+code=spin_lock_irqsave" class="sref">spin_lock_irqsaveo/a>(&oa href="+code=amd" class="sref">amdo/a>->oa href="+code=lock" class="sref">locko/a>, oa href="+code=flags" class="sref">flagso/a>); <352o/a>        oa href="+code=sbus_writeb" class="sref">sbus_writebo/a>(oa href="+code=AMR_INIT" class="sref">AMR_INITo/a>, oa href="+code=amd" class="sref">amdo/a>->oa href="+code=regs" class="sref">regso/a> + oa href="+code=AMD7930_CR" class="sref">AMD7930_CRo/a>); <353o/a>        oa href="+code=sbus_writeb" class="sref">sbus_writebo/a>(0, oa href="+code=amd" class="sref">amdo/a>->oa href="+code=regs" class="sref">regso/a> + oa href="+code=AMD7930_DR" class="sref">AMD7930_DRo/a>); <354o/a>        oa href="+code=spin_unlock_irqrestore" class="sref">spin_unlock_irqrestoreo/a>(&oa href="+code=amd" class="sref">amdo/a>->oa href="+code=lock" class="sref">locko/a>, oa href="+code=flags" class="sref">flagso/a>); <355o/a>} <356o/a> <357o/a>ospa> class="comment">/* Enable chip interrupts.  The amd->lock is not held.  */o/spa>
 <358o/a>static oa href="+code=__inline__" class="sref">__inline__o/a> void oa href="+code=amd7930_enable_ints" class="sref">amd7930_enable_intso/a>(struct oa href="+code=snd_amd7930" class="sref">snd_amd7930o/a> *oa href="+code=amd" class="sref">amdo/a>) <359o/a>{ <360o/a>        unsigned long oa href="+code=flags" class="sref">flagso/a>; <361o/a> <362o/a>        oa href="+code=spin_lock_irqsave" class="sref">spin_lock_irqsaveo/a>(&oa href="+code=amd" class="sref">amdo/a>->oa href="+code=lock" class="sref">locko/a>, oa href="+code=flags" class="sref">flagso/a>); <363o/a>        oa href="+code=sbus_writeb" class="sref">sbus_writebo/a>(oa href="+code=AMR_INIT" class="sref">AMR_INITo/a>, oa href="+code=amd" class="sref">amdo/a>->oa href="+code=regs" class="sref">regso/a> + oa href="+code=AMD7930_CR" class="sref">AMD7930_CRo/a>); <364o/a>        oa href="+code=sbus_writeb" class="sref">sbus_writebo/a>(oa href="+code=AM_INIT_ACTIVE" class="sref">AM_INIT_ACTIVEo/a>, oa href="+code=amd" class="sref">amdo/a>->oa href="+code=regs" class="sref">regso/a> + oa href="+code=AMD7930_DR" class="sref">AMD7930_DRo/a>); <365o/a>        oa href="+code=spin_unlock_irqrestore" class="sref">spin_unlock_irqrestoreo/a>(&oa href="+code=amd" class="sref">amdo/a>->oa href="+code=lock" class="sref">locko/a>, oa href="+code=flags" class="sref">flagso/a>); <366o/a>} <367o/a> <368o/a>ospa> class="comment">/* Disable chip interrupts.  The amd->lock is not held.  */o/spa>
 <369o/a>static oa href="+code=__inline__" class="sref">__inline__o/a> void oa href="+code=amd7930_disable_ints" class="sref">amd7930_disable_intso/a>(struct oa href="+code=snd_amd7930" class="sref">snd_amd7930o/a> *oa href="+code=amd" class="sref">amdo/a>) <370o/a>{ <371o/a>        unsigned long oa href="+code=flags" class="sref">flagso/a>; <372o/a> <373o/a>        oa href="+code=spin_lock_irqsave" class="sref">spin_lock_irqsaveo/a>(&oa href="+code=amd" class="sref">amdo/a>->oa href="+code=lock" class="sref">locko/a>, oa href="+code=flags" class="sref">flagso/a>); <374o/a>        oa href="+code=sbus_writeb" class="sref">sbus_writebo/a>(oa href="+code=AMR_INIT" class="sref">AMR_INITo/a>, oa href="+code=amd" class="sref">amdo/a>->oa href="+code=regs" class="sref">regso/a> + oa href="+code=AMD7930_CR" class="sref">AMD7930_CRo/a>); <375o/a>        oa href="+code=sbus_writeb" class="sref">sbus_writebo/a>(oa href="+code=AM_INIT_ACTIVE" class="sref">AM_INIT_ACTIVEo/a> | oa href="+code=AM_INIT_DISABLE_INTS" class="sref">AM_INIT_DISABLE_INTSo/a>, oa href="+code=amd" class="sref">amdo/a>->oa href="+code=regs" class="sref">regso/a> + oa href="+code=AMD7930_DR" class="sref">AMD7930_DRo/a>); <376o/a>        oa href="+code=spin_unlock_irqrestore" class="sref">spin_unlock_irqrestoreo/a>(&oa href="+code=amd" class="sref">amdo/a>->oa href="+code=lock" class="sref">locko/a>, oa href="+code=flags" class="sref">flagso/a>); <377o/a>} <378o/a> <379o/a>ospa> class="comment">/* Commit amd7930_map settings to the hardware.o/spa>
 <380o/a>ospa> class="comment"> * The amd->lock is held and local interrupts are disabled.o/spa>
 <381o/a>ospa> class="comment"> */o/spa>
 <382o/a>static void oa href="+code=__amd7930_write_map" class="sref">__amd7930_write_mapo/a>(struct oa href="+code=snd_amd7930" class="sref">snd_amd7930o/a> *oa href="+code=amd" class="sref">amdo/a>) <383o/a>{ <384o/a>        struct oa href="+code=amd7930_map" class="sref">amd7930_mapo/a> *oa href="+code=map" class="sref">mapo/a> = &oa href="+code=amd" class="sref">amdo/a>->oa href="+code=map" class="sref">mapo/a>; <385o/a> <386o/a>        oa href="+code=sbus_writeb" class="sref">sbus_writebo/a>(oa href="+code=AMR_MAP_GX" class="sref">AMR_MAP_GXo/a>, oa href="+code=amd" class="sref">amdo/a>->oa href="+code=regs" class="sref">regso/a> + oa href="+code=AMD7930_CR" class="sref">AMD7930_CRo/a>); <387o/a>        oa href="+code=sbus_writeb" class="sref">sbus_writebo/a>(((oa href="+code=map" class="sref">mapo/a>->oa href="+code=gx" class="sref">gxo/a> >> 0) & 0xff), oa href="+code=amd" class="sref">amdo/a>->oa href="+code=regs" class="sref">regso/a> + oa href="+code=AMD7930_DR" class="sref">AMD7930_DRo/a>); <388o/a>        oa href="+code=sbus_writeb" class="sref">sbus_writebo/a>(((oa href="+code=map" class="sref">mapo/a>->oa href="+code=gx" class="sref">gxo/a> >> 8) & 0xff), oa href="+code=amd" class="sref">amdo/a>->oa href="+code=regs" class="sref">regso/a> + oa href="+code=AMD7930_DR" class="sref">AMD7930_DRo/a>); <389o/a> <390o/a>        oa href="+code=sbus_writeb" class="sref">sbus_writebo/a>(oa href="+code=AMR_MAP_GR" class="sref">AMR_MAP_GRo/a>, oa href="+code=amd" class="sref">amdo/a>->oa href="+code=regs" class="sref">regso/a> + oa href="+code=AMD7930_CR" class="sref">AMD7930_CRo/a>); <391o/a>        oa href="+code=sbus_writeb" class="sref">sbus_writebo/a>(((oa href="+code=map" class="sref">mapo/a>->oa href="+code=gr" class="sref">gro/a> >> 0) & 0xff), oa href="+code=amd" class="sref">amdo/a>->oa href="+code=regs" class="sref">regso/a> + oa href="+code=AMD7930_DR" class="sref">AMD7930_DRo/a>); <392o/a>        oa href="+code=sbus_writeb" class="sref">sbus_writebo/a>(((oa href="+code=map" class="sref">mapo/a>->oa href="+code=gr" class="sref">gro/a> >> 8) & 0xff), oa href="+code=amd" class="sref">amdo/a>->oa href="+code=regs" class="sref">regso/a> + oa href="+code=AMD7930_DR" class="sref">AMD7930_DRo/a>); <393o/a> <394o/a>        oa href="+code=sbus_writeb" class="sref">sbus_writebo/a>(oa href="+code=AMR_MAP_STGR" class="sref">AMR_MAP_STGRo/a>, oa href="+code=amd" class="sref">amdo/a>->oa href="+code=regs" class="sref">regso/a> + oa href="+code=AMD7930_CR" class="sref">AMD7930_CRo/a>); <395o/a>        oa href="+code=sbus_writeb" class="sref">sbus_writebo/a>(((oa href="+code=map" class="sref">mapo/a>->oa href="+code=stgr" class="sref">stgro/a> >> 0) & 0xff), oa href="+code=amd" class="sref">amdo/a>->oa href="+code=regs" class="sref">regso/a> + oa href="+code=AMD7930_DR" class="sref">AMD7930_DRo/a>); <396o/a>        oa href="+code=sbus_writeb" class="sref">sbus_writebo/a>(((oa href="+code=map" class="sref">mapo/a>->oa href="+code=stgr" class="sref">stgro/a> >> 8) & 0xff), oa href="+code=amd" class="sref">amdo/a>->oa href="+code=regs" class="sref">regso/a> + oa href="+code=AMD7930_DR" class="sref">AMD7930_DRo/a>); <397o/a> <398o/a>        oa href="+code=sbus_writeb" class="sref">sbus_writebo/a>(oa href="+code=AMR_MAP_GER" class="sref">AMR_MAP_GERo/a>, oa href="+code=amd" class="sref">amdo/a>->oa href="+code=regs" class="sref">regso/a> + oa href="+code=AMD7930_CR" class="sref">AMD7930_CRo/a>); <399o/a>        oa href="+code=sbus_writeb" class="sref">sbus_writebo/a>(((oa href="+code=map" class="sref">mapo/a>->oa href="+code=ger" class="sref">gero/a> >> 0) & 0xff), oa href="+code=amd" class="sref">amdo/a>->oa href="+code=regs" class="sref">regso/a> + oa href="+code=AMD7930_DR" class="sref">AMD7930_DRo/a>); <400o/a>        oa href="+code=sbus_writeb" class="sref">sbus_writebo/a>(((oa href="+code=map" class="sref">mapo/a>->oa href="+code=ger" class="sref">gero/a> >> 8) & 0xff), oa href="+code=amd" class="sref">amdo/a>->oa href="+code=regs" class="sref">regso/a> + oa href="+code=AMD7930_DR" class="sref">AMD7930_DRo/a>); <401o/a> <402o/a>        oa href="+code=sbus_writeb" class="sref">sbus_writebo/a>(oa href="+code=AMR_MAP_MMR1" class="sref">AMR_MAP_MMR1o/a>, oa href="+code=amd" class="sref">amdo/a>->oa href="+code=regs" class="sref">regso/a> + oa href="+code=AMD7930_CR" class="sref">AMD7930_CRo/a>); <403o/a>        oa href="+code=sbus_writeb" class="sref">sbus_writebo/a>(oa href="+code=map" class="sref">mapo/a>->oa href="+code=mmr1" class="sref">mmr1o/a>, oa href="+code=amd" class="sref">amdo/a>->oa href="+code=regs" class="sref">regso/a> + oa href="+code=AMD7930_DR" class="sref">AMD7930_DRo/a>); <404o/a> <405o/a>        oa href="+code=sbus_writeb" class="sref">sbus_writebo/a>(oa href="+code=AMR_MAP_MMR2" class="sref">AMR_MAP_MMR2o/a>, oa href="+code=amd" class="sref">amdo/a>->oa href="+code=regs" class="sref">regso/a> + oa href="+code=AMD7930_CR" class="sref">AMD7930_CRo/a>); <406o/a>        oa href="+code=sbus_writeb" class="sref">sbus_writebo/a>(oa href="+code=map" class="sref">mapo/a>->oa href="+code=mmr2" class="sref">mmr2o/a>, oa href="+code=amd" class="sref">amdo/a>->oa href="+code=regs" class="sref">regso/a> + oa href="+code=AMD7930_DR" class="sref">AMD7930_DRo/a>); <407o/a>} <408o/a> <409o/a>ospa> class="comment">/* gx, gr & stg gains.  this table must contain<256 elements witho/spa>
 <410o/a>ospa> class="comment"> * the 0th being "infinity" (the magic value 9008).  The remainingo/spa>
 <411o/a>ospa> class="comment"> * elements match sun's gain curve (but with higher resolution):o/spa>
 <412o/a>ospa> class="comment"> * -18 to 0dB in .16dB steps then 0 to 12dB in .08dB steps.o/spa>
 <413o/a>ospa> class="comment"> */o/spa>
 <414o/a>static oa href="+code=__const__" class="sref">__const__o/a> oa href="+code=__u16" class="sref">__u16o/a> oa href="+code=gx_coeff" class="sref">gx_coeffo/a>[256] = { <415o/a>        0x9008, 0x8b7c, 0x8b51, 0x8b45, 0x8b42, 0x8b3b, 0x8b36, 0x8b33, <416o/a>        0x8b32, 0x8b2a, 0x8b2b, 0x8b2c, 0x8b25, 0x8b23, 0x8b22, 0x8b22, <417o/a>        0x9122, 0x8b1a, 0x8aa3, 0x8aa3, 0x8b1c, 0x8aa6, 0x912d, 0x912b, <418o/a>        0x8aab, 0x8b12, 0x8aaa, 0x8ab2, 0x9132, 0x8ab4, 0x913c, 0x8abb, <419o/a>        0x9142, 0x9144, 0x9151, 0x8ad5, 0x8aeb, 0x8a79, 0x8a5a, 0x8a4a, <420o/a>        0x8b03, 0x91c2, 0x91bb, 0x8a3f, 0x8a33, 0x91b2, 0x9212, 0x9213, <421o/a>        0x8a2c, 0x921d, 0x8a23, 0x921a, 0x9222, 0x9223, 0x922d, 0x9231, <422o/a>        0x9234, 0x9242, 0x925b, 0x92dd, 0x92c1, 0x92b3, 0x92ab, 0x92a4, <423o/a>        0x92a2, 0x932b, 0x9341, 0x93d3, 0x93b2, 0x93a2, 0x943c, 0x94b2, <424o/a>        0x953a, 0x9653, 0x9782, 0x9e21, 0x9d23, 0x9cd2, 0x9c23, 0x9baa, <425o/a>        0x9bde, 0x9b33, 0x9b22, 0x9b1d, 0x9ab2, 0xa142, 0xa1e5, 0x9a3b, <426o/a>        0xa213, 0xa1a2, 0xa231, 0xa2eb, 0xa313, 0xa334, 0xa421, 0xa54b, <427o/a>        0xada4, 0xac23, 0xab3b, 0xaaab, 0xaa5c, 0xb1a3, 0xb2ca, 0xb3bd, <428o/a>        0xbe24, 0xbb2b, 0xba33, 0xc32b, 0xcb5a, 0xd2a2, 0xe31d, 0x0808, <429o/a>        0x72ba, 0x62c2, 0x5c32, 0x52db, 0x513e, 0x4cce, 0x43b2, 0x4243, <430o/a>        0x41b4, 0x3b12, 0x3bc3, 0x3df2, 0x34bd, 0x3334, 0x32c2, 0x3224, <431o/a>        0x31aa, 0x2a7b, 0x2aaa, 0x2b23, 0x2bba, 0x2c42, 0x2e23, 0x25bb, <432o/a>        0x242b, 0x240f, 0x231a, 0x22bb, 0x2241, 0x2223, 0x221f, 0x1a33, <433o/a>        0x1a4a, 0x1acd, 0x2132, 0x1b1b, 0x1b2c, 0x1b62, 0x1c12, 0x1c32, <434o/a>        0x1d1b, 0x1e71, 0x16b1, 0x1522, 0x1434, 0x1412, 0x1352, 0x1323, <435o/a>        0x1315, 0x12bc, 0x127a, 0x1235, 0x1226, 0x11a2, 0x1216, 0x0a2a, <436o/a>        0x11bc, 0x11d1, 0x1163, 0x0ac2, 0x0ab2, 0x0aab, 0x0b1b, 0x0b23, <437o/a>        0x0b33, 0x0c0f, 0x0bb3, 0x0c1b, 0x0c3e, 0x0cb1, 0x0d4c, 0x0ec1, <438o/a>        0x079a, 0x0614, 0x0521, 0x047c, 0x0422, 0x03b1, 0x03e3, 0x0333, <439o/a>        0x0322, 0x031c, 0x02aa, 0x02ba, 0x02f2, 0x0242, 0x0232, 0x0227, <440o/a>        0x0222, 0x021b, 0x01ad, 0x0212, 0x01b2, 0x01bb, 0x01cb, 0x01f6, <441o/a>        0x0152, 0x013a, 0x0133, 0x0131, 0x012c, 0x0123, 0x0122, 0x00a2, <442o/a>        0x011b, 0x011e, 0x0114, 0x00b1, 0x00aa, 0x00b3, 0x00bd, 0x00ba, <443o/a>        0x00c5, 0x00d3, 0x00f3, 0x0062, 0x0051, 0x0042, 0x003b, 0x0033, <444o/a>        0x0032, 0x002a, 0x002c, 0x0025, 0x0023, 0x0022, 0x001a, 0x0021, <445o/a>        0x001b, 0x001b, 0x001d, 0x0015, 0x0013, 0x0013, 0x0012, 0x0012, <446o/a>        0x000a, 0x000a, 0x0011, 0x0011, 0x000b, 0x000b, 0x000c, 0x000e, <447o/a>}; <448o/a> <449o/a>static oa href="+code=__const__" class="sref">__const__o/a> oa href="+code=__u16" class="sref">__u16o/a> oa href="+code=ger_coeff" class="sref">ger_coeffo/a>[] = { <450o/a>        0x431f, ospa> class="comment">/* 5. dB */o/spa>
 <451o/a>        0x331f, ospa> class="comment">/* 5.5 dB */o/spa>
 <452o/a>        0x40dd, ospa> class="comment">/* 6. dB */o/spa>
 <453o/a>        0x11dd, ospa> class="comment">/* 6.5 dB */o/spa>
 <454o/a>        0x440f, ospa> class="comment">/* 7. dB */o/spa>
 <455o/a>        0x411f, ospa> class="comment">/* 7.5 dB */o/spa>
 <456o/a>        0x311f, ospa> class="comment">/* 8. dB */o/spa>
 <457o/a>        0x5520, ospa> class="comment">/* 8.5 dB */o/spa>
 <458o/a>        0x10dd, ospa> class="comment">/* 9. dB */o/spa>
 <459o/a>        0x4211, ospa> class="comment">/* 9.5 dB */o/spa>
 <460o/a>        0x410f, ospa> class="comment">/* 10. dB */o/spa>
 <461o/a>        0x111f, ospa> class="comment">/* 10.5 dB */o/spa>
 <462o/a>        0x600b, ospa> class="comment">/* 11. dB */o/spa>
 <463o/a>        0x00dd, ospa> class="comment">/* 11.5 dB */o/spa>
 <464o/a>        0x4210, ospa> class="comment">/* 12. dB */o/spa>
 <465o/a>        0x110f, ospa> class="comment">/* 13. dB */o/spa>
 <466o/a>        0x7200, ospa> class="comment">/* 14. dB */o/spa>
 <467o/a>        0x2110, ospa> class="comment">/* 15. dB */o/spa>
 <468o/a>        0x2200, ospa> class="comment">/* 15.9 dB */o/spa>
 <469o/a>        0x000b, ospa> class="comment">/* 16.9 dB */o/spa>
 <470o/a>        0x000f  ospa> class="comment">/* 18. dB */o/spa>
 <471o/a>}; <472o/a> <473o/a>ospa> class="comment">/* Update amd7930_map settings and program them into the hardware.o/spa>
 <474o/a>ospa> class="comment"> * The amd->lock is held and local interrupts are disabled.o/spa>
 <475o/a>ospa> class="comment"> */o/spa>
 <476o/a>static void oa href="+code=__amd7930_update_map" class="sref">__amd7930_update_mapo/a>(struct oa href="+code=snd_amd7930" class="sref">snd_amd7930o/a> *oa href="+code=amd" class="sref">amdo/a>) <477o/a>{ <478o/a>        struct oa href="+code=amd7930_map" class="sref">amd7930_mapo/a> *oa href="+code=map" class="sref">mapo/a> = &oa href="+code=amd" class="sref">amdo/a>->oa href="+code=map" class="sref">mapo/a>; <479o/a>        int oa href="+code=level" class="sref">levelo/a>; <480o/a> <481o/a>        oa href="+code=map" class="sref">mapo/a>->oa href="+code=gx" class="sref">gxo/a> = oa href="+code=gx_coeff" class="sref">gx_coeffo/a>[oa href="+code=amd" class="sref">amdo/a>->oa href="+code=rgain" class="sref">rgaino/a>]; <482o/a>        oa href="+code=map" class="sref">mapo/a>->oa href="+code=stgr" class="sref">stgro/a> = oa href="+code=gx_coeff" class="sref">gx_coeffo/a>[oa href="+code=amd" class="sref">amdo/a>->oa href="+code=mgain" class="sref">mgaino/a>]; <483o/a>        oa href="+code=level" class="sref">levelo/a> = (oa href="+code=amd" class="sref">amdo/a>->oa href="+code=pgain" class="sref">pgaino/a> * (256 + oa href="+code=ARRAY_SIZE" class="sref">ARRAY_SIZEo/a>(oa href="+code=ger_coeff" class="sref">ger_coeffo/a>))) >> 8; <484o/a>        if (oa href="+code=level" class="sref">levelo/a> >=<256) { <485o/a>                oa href="+code=map" class="sref">mapo/a>->oa href="+code=ger" class="sref">gero/a> = oa href="+code=ger_coeff" class="sref">ger_coeffo/a>[oa href="+code=level" class="sref">levelo/a> -<256]; <486o/a>                oa href="+code=map" class="sref">mapo/a>->oa href="+code=gr" class="sref">gro/a> = oa href="+code=gx_coeff" class="sref">gx_coeffo/a>[255]; <487o/a>        } else { <488o/a>                oa href="+code=map" class="sref">mapo/a>->oa href="+code=ger" class="sref">gero/a> = oa href="+code=ger_coeff" class="sref">ger_coeffo/a>[0]; <489o/a>                oa href="+code=map" class="sref">mapo/a>->oa href="+code=gr" class="sref">gro/a> = oa href="+code=gx_coeff" class="sref">gx_coeffo/a>[oa href="+code=level" class="sref">levelo/a>]; <490o/a>        } <491o/a>        oa href="+code=__amd7930_write_map" class="sref">__amd7930_write_mapo/a>(oa href="+code=amd" class="sref">amdo/a>); <492o/a>} <493o/a> <494o/a>static oa href="+code=irqreturn_t" class="sref">irqreturn_to/a> oa href="+code=snd_amd7930_interrupt" class="sref">snd_amd7930_interrupto/a>(int oa href="+code=irq" class="sref">irqo/a>, void *oa href="+code=dev_id" class="sref">dev_ido/a>) <495o/a>{ <496o/a>        struct oa href="+code=snd_amd7930" class="sref">snd_amd7930o/a> *oa href="+code=amd" class="sref">amdo/a> = oa href="+code=dev_id" class="sref">dev_ido/a>; <497o/a>        unsigned int oa href="+code=elapsed" class="sref">elapsedo/a>; <498o/a>        oa href="+code=u8" class="sref">u8o/a> oa href="+code=ir" class="sref">iro/a>; <499o/a> <500o/a>        oa href="+code=spin_lock" class="sref">spin_locko/a>(&oa href="+code=amd" class="sref">amdo/a>->oa href="+code=lock" class="sref">locko/a>); <501o/a> <502o/a>        oa href="+code=elapsed" class="sref">elapsedo/a> = 0; <503o/a> <504o/a>        oa href="+code=ir" class="sref">iro/a> = oa href="+code=sbus_readb" class="sref">sbus_readbo/a>(oa href="+code=amd" class="sref">amdo/a>->oa href="+code=regs" class="sref">regso/a> + oa href="+code=AMD7930_IR" class="sref">AMD7930_IRo/a>); <505o/a>        if (oa href="+code=ir" class="sref">iro/a> & oa href="+code=AMR_IR_BBUF" class="sref">AMR_IR_BBUFo/a>) { <506o/a>                oa href="+code=u8" class="sref">u8o/a> oa href="+code=byte" class="sref">byteo/a>; <507o/a> <508o/a>                if (oa href="+code=amd" class="sref">amdo/a>->oa href="+code=flags" class="sref">flagso/a> & oa href="+code=AMD7930_FLAG_PLAYBACK" class="sref">AMD7930_FLAG_PLAYBACKo/a>) { <509o/a>                        if (oa href="+code=amd" class="sref">amdo/a>->oa href="+code=p_left" class="sref">p_lefto/a> > 0) { <510o/a>                                oa href="+code=byte" class="sref">byteo/a> = *(oa href="+code=amd" class="sref">amdo/a>->oa href="+code=p_cur" class="sref">p_curo/a>++); <511o/a>                                oa href="+code=amd" class="sref">amdo/a>->oa href="+code=p_left" class="sref">p_lefto/a>--; <512o/a>                                oa href="+code=sbus_writeb" class="sref">sbus_writebo/a>(oa href="+code=byte" class="sref">byteo/a>, oa href="+code=amd" class="sref">amdo/a>->oa href="+code=regs" class="sref">regso/a> + oa href="+code=AMD7930_BBTB" class="sref">AMD7930_BBTBo/a>); <513o/a>                                if (oa href="+code=amd" class="sref">amdo/a>->oa href="+code=p_left" class="sref">p_lefto/a> == 0) <514o/a>                                        oa href="+code=elapsed" class="sref">elapsedo/a> |= oa href="+code=AMD7930_FLAG_PLAYBACK" class="sref">AMD7930_FLAG_PLAYBACKo/a>; <515o/a>                        } else <516o/a>                                oa href="+code=sbus_writeb" class="sref">sbus_writebo/a>(0, oa href="+code=amd" class="sref">amdo/a>->oa href="+code=regs" class="sref">regso/a> + oa href="+code=AMD7930_BBTB" class="sref">AMD7930_BBTBo/a>); <517o/a>                } else if (oa href="+code=amd" class="sref">amdo/a>->oa href="+code=flags" class="sref">flagso/a> & oa href="+code=AMD7930_FLAG_CAPTURE" class="sref">AMD7930_FLAG_CAPTUREo/a>) { <518o/a>                        oa href="+code=byte" class="sref">byteo/a> = oa href="+code=sbus_readb" class="sref">sbus_readbo/a>(oa href="+code=amd" class="sref">amdo/a>->oa href="+code=regs" class="sref">regso/a> + oa href="+code=AMD7930_BBRB" class="sref">AMD7930_BBRBo/a>); <519o/a>                        if (oa href="+code=amd" class="sref">amdo/a>->oa href="+code=c_left" class="sref">c_lefto/a> > 0) { <520o/a>                                *(oa href="+code=amd" class="sref">amdo/a>->oa href="+code=c_cur" class="sref">c_curo/a>++) = oa href="+code=byte" class="sref">byteo/a>; <521o/a>                                oa href="+code=amd" class="sref">amdo/a>->oa href="+code=c_left" class="sref">c_lefto/a>--; <522o/a>                                if (oa href="+code=amd" class="sref">amdo/a>->oa href="+code=c_left" class="sref">c_lefto/a> == 0) <523o/a>                                        oa href="+code=elapsed" class="sref">elapsedo/a> |= oa href="+code=AMD7930_FLAG_CAPTURE" class="sref">AMD7930_FLAG_CAPTUREo/a>; <524o/a>                        } <525o/a>                } <526o/a>        } <527o/a>        oa href="+code=spin_unlock" class="sref">spin_unlocko/a>(&oa href="+code=amd" class="sref">amdo/a>->oa href="+code=lock" class="sref">locko/a>); <528o/a> <529o/a>        if (oa href="+code=elapsed" class="sref">elapsedo/a> & oa href="+code=AMD7930_FLAG_PLAYBACK" class="sref">AMD7930_FLAG_PLAYBACKo/a>) <530o/a>                oa href="+code=snd_pcm_period_elapsed" class="sref">snd_pcm_period_elapsedo/a>(oa href="+code=amd" class="sref">amdo/a>->oa href="+code=playback_substream" class="sref">playback_substreamo/a>); <531o/a>        else <532o/a>                oa href="+code=snd_pcm_period_elapsed" class="sref">snd_pcm_period_elapsedo/a>(oa href="+code=amd" class="sref">amdo/a>->oa href="+code=capture_substream" class="sref">capture_substreamo/a>); <533o/a> <534o/a>        return oa href="+code=IRQ_HANDLED" class="sref">IRQ_HANDLEDo/a>; <535o/a>} <536o/a>536o/a>536o/a>536o/a>536o/a>536o/a>2/ clas6o/a> oa href="+code=gx_coeff" cu02vL414" class="line" nam=1ha href="+code=regs" class="sref">regned int oa href="+coa href="+coa href="+coa href="migr_coeffo/a>[0]; amdo/a> = oa href="+code=dev_id" class="sref">dev_ido/a>; AMD7930/spa,esparc/amd7930.c#L49co/a>; <477o/a>{ <520o/a>                      , 0x02aa,50x02ba, 0x02f2, 0x0242, 5x02325 0x0227, <372o/a> <503o/a> <502o/a>        oa href="+code, 0x0114,50x00b1, 0x00aa, 0x00b3, 5x00bd54 href="sound/sparc/amd7930.ccode=amd" class="sref">amdo/a>->oa href="+code=lock" class="sref">locko/a>, oa href="+code=flags" class="sref">flagso/a>); <374o/a>        oa href="+cod5, 0x00f3,50x0062, 0x0051, 0x0042, 5x003b5 0x0033, ; am="vL518"><518o/a>                      , 0x002c,50x0025, 0x0023, 0x0022, 5x001a54d"vL525" class="line"code!lass="sref">flagso/a> & oa href="+code=AMD7930_FLAG_CAPTURE" class="sref">AMD7930_FLAG_CAPTUREo/a>) { AMD7930/spa)vL518"><518o/a>                      ,amd7930.c0x0015, 0x0013, 0x0013, 5x00125416" id"vL516" class="line" naass="sref">flagso/a> & oa href="+code=AMD7930_FLAG_CAPTURE" class="sref">AMD7930_FLAG_TUREo/a>; AMD7930/spa374"><374o/a>        oa href="+cod5,6o/a>536o0x0011, 0x000b, 0x000b, 5x000c54x_coeff" cu02vL414" class="line" nam=1hc/amd79305c#L448" id"vL448" class=5line"54/a>->oa href="+codline" naainto the hardware.o/spa>En30.c#B channe" id"vL475" . " nam="vL476"><476o/a>static void oa href="5amd7930.c5L449" id"vL449" class="l5ne" n54a> = oa href="+code=sbus_readb" class="sref"" class="sref">AMR_MAP_MMR2o/a>, oa href="+code=amd" class="srUX_MCR4ef">AMR_MAP_MMRs="srUX_MCR4s" class="sref">regso/a> + oa href="+code=AMD7930_BBTB" class="sref">AMD7930_BBTBo/a>); <406o/a>        oa href="+cod5__const__5 class="sref">__const__o5a> oa54o/a>->oa href="+code=c_lefb" class="sref"" class="sref">AMR_MAP_MMR2o/a>, oa href="+code=amd" class=srUX_MCR4_ENABLE_INTSid"vL406" class="srUX_MCR4_ENABLE_INTSs" class="sref">regso/a> + oa href="+code=AMD7930_BBTB" class="sref">AMD7930_BBTBo/a>); <407o/a>} /* 5. dB */o/spa>
5snd_pcm_period_el536"><536o/a>536o/a>536o/a>536o/a>5class="co5ment">/* 5.5 dB */o/spa>5 flagco/a>; <518o/a>                      class="co5ment">/* 6. dB */o/spa>
5snd_pcm_period_el" class="sref">flagso/a> & oa href="+code=AMD7930_FLAG_CAPTURE" class="sref">AMD7930_FLAG_CAPTUREo/a>) { AMD7930/spa)L518"><518o/a>                      c 0x00f3,5ment">/* 6.5 dB */o/spa>5 elapsedo/a> |= oass="sref">flagso/a> & oa href="+code=AMD7930_FLAG_CAPTURE" class="sref">AMD7930_FLAG_CAPTU= ~Eo/a>; AMD7930/spa374"><374o/a>        oa href="+cod5class="co5ment">/* 7. dB */o/spa>
5<405o/a>        oa href="+cod5class="co5ment">/* 7.5 dB */o/spa>5 D"line"#B channe" id"vL475" . " nam="vL476"><476o/a>static void oa href="5class="co5ment">/* 8. dB */o/spa>
5sbus_writebo/a>(0, ob" class="sref"" class="sref">AMR_MAP_MMR2o/a>, oa href="+code=amd" class="srUX_MCR4ef">AMR_MAP_MMRs="srUX_MCR4s" class="sref">regso/a> + oa href="+code=AMD7930_BBTB" class="sref">AMD7930_BBTBo/a>); <407o/a>} /* 8.5 dB */o/spa>5 ->oa href="+codline" naacode=amd" class="sref">amdo/a>->oa href="+code=regs" class="sref">regso/a> + oa href="+code=AMD7930_BBTB" class="sref">AMD7930_BBTBo/a>); <407o/a>} /* 9. dB */o/spa>
5 = oa href="+code=s536"><536o/a>536o/a>536o/a>536o/a>5c_const__5ment">/* 9.5 dB */o/spa>5 <488o/a>                oa hr5class="co5ment">/* 10. dB */o/spa>5 snd_pcm_period_elapsedo/a>(oa hrresul id"vL523" classresul  nam="v-apsedo/a>(oa hrEINVALid"vL523" classEINVAL/spa374"><374o/a>        oa href="+cod5class="co5ment">/* 10.5 dB */o/spa5
 <536o/a>536o/a>536o/a>536o/a>5class="co5ment">/* 11. dB */o/spa>5 amdo/a>->oa"+code_d_amdstor"=lock" class="sref">locko/a>, oa href="+code=flags" class="sref">flagso/a>); <374o/a>        oa href="+cod5class="co5ment">/* 11.5 dB */o/spa5
 <534o/a>        return oa hrefclass="co5ment">/* 12. dB */o/spa>5 ; <374o/a>        oa href="+cod5class="co5ment">/* 13. dB */o/spa>5 <536o/a>536o/a>536o/a>536o/a>5class="co5ment">/* 14. dB */o/spa>5 /* 15. dB */o/spa>5 dev_iamd7930.c#L533" id"vL533"md7930.cd" c447"><447o/a>}; /* 15.9 dB */o/spa5
  = oa href="+code=sbus_readddddddddddddddddsparc/amd7930.c#L49co/a>; <477o/a>{ /* 16.9 dB */o/spa5
 <488o/a>                oa hr5class="co5ment">/* 18. dB */o/spa>5 amdo/a> = oa href="+code=dev_id" class="sref">dev_ido/a>; amdo/a>); <374o/a>        oa href="+cod5c/amd79305c#L472" id"vL472" class=5line"571EDo/a>; dev_ido/a>; <374o/a>        oa href="+cod5class="co5L473" id"vL473" class="l5ne" n57m="vL493"><493o/a> <534o/a>        return oa href * The am5->lock is held and lo5al in574 oa href="+coa href="+coa href="+coa href=" class="migr_coeffo/a>[0]; dev_iamd7930.c#L533" id"vL533"md7930.cd" c447"><447o/a>}; ; <477o/a>{ 5_amd79488"><488o/a>                oa hr5class="co5#L478" id"vL478" class="5ine" 577="sound/sparref="+code=amd" class="sref">amdo/a> = oa href="+code=dev_id" class="sref">dev_ido/a>; amdo/a>); <488o/a>                oa hr5class="co5d7930_map" class="sref">5md7935_mapo/a> *oa href="sound/sparc/amd79="+coa href="migr_coeffo/a>[0]; dev_ido/a>; <374o/a>        oa href="+cod5class="co5" class="sref">levelo/a>5 <493o/a> <481o/a>        oa href="+cod5=map" cla5s="sref">mapo/a>->oa 5ref="5code=ghref="+coa href="+coa href="+coa href=1" class=pre   "sref">amdo/a>-&g"+coa href=1" class=pre   "ure_sref="+code=amd" class="srea hramd7930.c#L533" id"vL533"srea hramd7930.cd" class="sref">dev_iamd7930.c#L533" id"vL533"md7930.cd" c477"><477o/a>{ mapo/a>->oa 5ref="5code=s488"><488o/a>                oa hr5=level" c5ass="sref">levelo/a> = (5a hre5="+code=amd" cref="+code=amd" class="sref">amdo/a> = oa href="+code=dev_id" class="sref">dev_ido/a>; amdo/a>); <488o/a>                oa hr5=* The am5" class="sref">levelo/a>5>=5256) { amdo/a>-&g"+ca hrruntim"d" class="sref">dev_iruntim"sref">amdo/a>-&runtim"d" clc/amd7930.c#L497""md7930.c#L533" id"vL533"md7930.cd" c930_BBTB" class="srefuntim"sref">amdo/a>-&runtim"d" c374"><488o/a>                oa hr5=*/o/spa>5ap" class="sref">mapo/a>5>o5 href="+code=gf="sound/sparc/amd7930.c#L49siz"sref">amdo/a>-&giz"/sparc/amd7930.c#L497""srea hrlib_buffer_ namL374" class="lin"srea hrlib_buffer_ namLref="+code=amd" clasamd7930.c#L533" id"vL533"md7930.cd" cL374"><488o/a>                oa hr5=ode=__am5ap" class="sref">mapo/a>5>o5 href="+code=gsound/sparc/amd7930.c#L372" id"vL372" class="line" nam="vL372"><372o/a> <372o/a> mapo/a>5>o58="vL529"><529o/a>        if (oa href="+f="+code=5ap" class="sref">mapo/a>5>o5 href="+code=gsparc/amd7930.ccode=amd" class="sref">amdo/a>->oa href="+code=lock" class="sref">locko/a>, oa href="+code=flags" class="sref">flagso/a>); <374o/a>        oa href="+cod5nd/sparc/5md7930.c#L491" id"vL491"5class59="vL481"><481o/a>        oa href="+cod5=__amd7935_write_map" class="sref"5__amd5930_write_mapo/a>(oa href="+cso/a> & oa href="+code=AMD7930_FLAG_CAPTURE" class="sref">AMD7930_FLAG_TUREo/a>; <515o/a>                      /amd7930.5#L493" id"vL493" class="5ine" 59="vL473"><473o/a>ospa> class="comment"5amd7930.c5L494" id"vL494" class="l5ne" n59"+code=amd" clinto the hardware.o/spa>Sef=pclasspseudo-dma transfer poid"vL . " nam="vL476"><476o/a>static void oa href="5irqreturn5t" class="sref">irqretur5_to/a59sbus_readb" class="sref">sbus="sref">playback_substreamo/a>); playback_u_omig/sparc/amd7930.c#L497"s="sref">playback_substreamo/a>); amdo/a>-&runtim"d" camo/a>); amdo/a>-&dma_  "a="vL515"><515o/a>                      /*/o/spa>5#L496" id"vL496" class="5ine" 595bus_readb" class="sref">sbus="sref">playback_substreamo/a>); amdo/a>-&giz"/spa515"><515o/a>                      /ode=__am5d_amd7930" class="sref">5nd_am59x_coeff" cu02vL414" class="line" nam=1ha href="+5ode=elapsed" class="sref5>elap5edo/a>; Putclasschie474" classcorre"+cenc#Li/amformat. " nam="vL476"><476o/a>static void oa href="5ilass="co5="sref">u8o/a> oa href="5code=5r" class="sref">iro/a>; playback_substreamo/a>); ); <372o/a> amdo/a>-&runtim"d" camo/a>); AMD7ormat="vLrc"v=AMD7930_FLAG_PSNDRV_PCM_FORMAT_A_LAWlass="sref">AMDSNDRV_PCM_FORMAT_A_LAWd" c477"><477o/a>{ spin_lock6/a>(&60ef">snd_pcm_period_elapsedo/a>(oa hrnew_mmr1href="sound/spanew_mmr1="vLrTUREo/a>; AMDf=_MAP_MMR1_ALAW="vL372"><372o/a> <532o/a>                oa hr6=elapsed"6class="sref">elapsedo/a>6= 0; 60ef">snd_pcm_period_elapsedo/a>(oa hrnew_mmr1href="sound/spanew_mmr1="vLrCAPTU= ~Eo/a>; AMDf=_MAP_MMR1_ALAW="vL372"><372o/a> playback_substreamo/a>); ); <518o/a>                     6=ir" clas6="sref">iro/a> = oa href6"+cod6=sbus_readb" creadb" class="sref">sbus="sref">playback_substreamo/a>); ); <372o/a> iro/a> &6oa hr60href="+code=ger" class="sref">gero/a href="+code=snd_amd7930" class="sref">snd_amd7930o/a> *oa hlass="sref">sbus="sref">playback_substreL374"><374o/a>        oa href="+cod6f="+code=68" class="sref">u8o/a> o6 href60line" nam="vL527"><527o/a>        oa href="+cod6amd7930.c6L508" id"vL508" class="l6ne" n6m="vL508"><508o/a>                if (o6 href="+c6de=amd" class="sref">amd6/a>-&60" class="sref">iro/a>; amdo/a>->oa"+code_d_amdstor"=lock" class="sref">locko/a>, oa href="+code=flags" class="sref">flagso/a>); <374o/a>        oa href="+cod6  if (oa 6ref="+code=amd" class="s6ef">a60="vL500"><500o/a>        oa href="+cod6         6oa href="+code=byte" cla6s="sr6f">byteo/a> = ref="soL503"><503o/a> amdo527"><527o/a>        oa href="+cod6         6oa href="+code=sbus_writ6b" cl61="vL473"><473o/a>ospa> class="comment"6         6if (oa href="+code=amd" 6lass=6sref">href="+coa href="+coa href="+coa href=" class=pre   "sref">amdo/a>-&g"+coa href=" class=pre   "ure_sref="+code=amd" class="srea hramd7930.c#L533" id"vL533"srea hramd7930.cd" class="sref">dev_iamd7930.c#L533" id"vL533"md7930.cd" c477"><477o/a>{ <518o/a>                     6  } else 6a href="sound/sparc/amd7630.c#6516" id"vL516"ref="+code=amd" class="sref">amdo/a> = oa href="+code=dev_id" class="sref">dev_ido/a>; amdo/a>); <488o/a>                     6 ="+code=6oa href="+code=sbus_writ6b" cl61930o/a> *oa href="+code=amd" class="srea hrruntim"sref">amdo/a>-&g"+ca hrruntim"d" class="sref">dev_iruntim"sref">amdo/a>-&runtim"d" clc/amd7930.c#L497""md7930.c#L533" id"vL533"md7930.cd" c930_BBTB" class="srefuntim"sref">amdo/a>-&runtim"d" c374"><488o/a>                oa hr6 if (oa h6ef="+code=amd" class="sr6f">am61do/a>; amdo/a>-&giz"/sparc/amd7930.c#L497""srea hrlib_buffer_ namL374" class="lin"srea hrlib_buffer_ namLref="+code=amd" clasamd7930.c#L533" id"vL533"md7930.cd" cL374"><488o/a>                oa hr6  oa href6"+code=byte" class="sref6>byte6/a> = oa href=sound/sparc/amd7930.c#L372" id"vL372" class="line" nam="vL372"><372o/a> a61href="+code=gsparc/amd7930.ca href="sound/sparc/amd7930.c#L507" id"new_mmr1href="sound/spanew_mmr1="vL372"><372o/a> <481o/a>        oa href="+cod6         6oa href="+code=amd" clas6="sre6230_write_mapo/a>(oa href="+ccode=amd" class="sref">amdo/a>->oa href="+code=lock" class="sref">locko/a>, oa href="+code=flags" class="sref">flagso/a>); <374o/a>        oa href="+cod6         6if (oa href="+code=amd" 6lass=62="vL473"><473o/a>ospa> class="comment"6         6        oa href="+code=e6apsed6 class="sref">/a>(oa href="+cso/a> & oa href="+code=AMD7930_FLAG_CAPTURE" class="sref">AMD7930_FLAG_TUREo/a>; <524o/a>                     6  } <405o/a>        oa href="+cod6ref="soun6/sparc/amd7930.c#L526" i6"vL526" class="line"linto the hardware.o/spa>Sef=pclasspseudo-dma transfer poid"vL . " nam="vL476"><476o/a>static void oa href="6nd/sparc/6md7930.c#L527" id"vL527"6class6"line" nam="vL/a>(oa href="+cso/a> & oa href="+code=AMD7930_FLAG_CAPTUc_omigsref">playback_c_omig/sparc/amd7930.c#L497"s="sref">playback_substreamo/a>); amdo/a>-&runtim"d" camo/a>); amdo/a>-&dma_  "a="vL515"><515o/a>                     6=spin_unl6ck" class="sref">spin_un6ocko/6>(&oa href="+code=amd" cls="sref">playback_substreamo/a>); amdo/a>-&giz"/spa515"><515o/a>                     6amd7930.c6L529" id"vL529" class="l6ne" n6m="vL529"><529o/a>        if (oa href="6code=elap6ed" class="sref">elapsed6/a> &6mp; oa href="+linto the hardware.o/spa>Putclasschie474" classcorre"+cenc#Li/amformat. " nam="vL476"><476o/a>static void oa href="6f="+code=6nd_pcm_period_elapsed" c6ass="63p;oa href="+code=amd" class=new_mmr1href="sound/spanew_mmr1="vLrc/amd7930.c#L497"s="sref">playback_substreamo/a>); ); <372o/a> amdo/a>-&runtim"d" camo/a>); AMD7ormat="vLrc"v=AMD7930_FLAG_PSNDRV_PCM_FORMAT_A_LAWlass="sref">AMDSNDRV_PCM_FORMAT_A_LAWd" c477"><477o/a>{ snd_pcm_period_elapsedo/a>(oa hrnew_mmr1href="sound/spanew_mmr1="vLrTUREo/a>; AMDf=_MAP_MMR1_ALAW="vL372"><372o/a> "vL532"><532o/a>                oa hr6="+code=I6Q_HANDLED" class="sref">6RQ_HA63sbus_readb" creadb" class="sref">sbunew_mmr1href="sound/spanew_mmr1="vLrCAPTU= ~Eo/a>; AMDf=_MAP_MMR1_ALAW="vL372"><372o/a> playback_substreamo/a>); ); <518o/a>                     636o/a>5366/a>2/ clas6o/a> oa href=6+code63+code=byte" class="sref">byteo/a>; playback_substreamo/a>); ); <372o/a> r6gned 63/a>->oa href="+cods="sref">gero/a href="+code=snd_amd7930" class="sref">snd_amd7930o/a> *oa hlass="sref">sbus="sref">playback_substreL374"><374o/a>        oa href="+cod6, 0x0521,60x047c, 0x0422, 0x03b1, 6x03e363a> = oa href=527"><527o/a>        oa href="+cod6, 0x02aa,60x02ba, 0x02f2, 0x0242, 6x023263="vL500"><500o/a>        oa href="+cod6, 0x01ad,60x0212, 0x01b2, 0x01bb, 6x01cb64p;oa href="+code=amd" class="sref"+code_d_amdstor"sref">amdo/a>->oa"+code_d_amdstor"=lock" class="sref">locko/a>, oa href="+code=flags" class="sref">flagso/a>); <374o/a>        oa href="+cod6, 0x0133,60x0131, 0x012c, 0x0123, 6x012264="vL502"><502o/a>        oa href="+cod6, 0x0114,60x00b1, 0x00aa, 0x00b3, 6x00bd64 href="sound/ref="soL503"><503o/a> <527o/a>        oa href="+cod6, 0x002c,60x0025, 0x0023, 0x0022, 6x001a64="vL405"><405o/a>        oa href="+cod6,amd7930.60x0015, 0x0013, 0x0013, 6x00126416" ief="+code=snd_amd7930_"srea hrufr001s" class="sref">sn"srea hrufr001s" /amd7930.c#L507" id"g"+coa href=1" class=poid"vLsref">amdo/a>-&g"+coa href=1" class=poid"vLure_sref="+code=amd" class="srea hramd7930.c#L533" id"vL533"srea hramd7930.cd" class="sref">dev_iamd7930.c#L533" id"vL533"md7930.cd" c477"><477o/a>{ <488o/a>                oa hr6c/amd79306c#L448" id"vL448" class=6line"647="sound/sparref="+code=amd" class="sref">amdo/a> = oa href="+code=dev_id" class="sref">dev_ido/a>; amdo/a>); <488o/a>                oa hr6c 0x0521,6L449" id"vL449" class="l6ne" n64" class="sref">iro/a>; sn"iz"" /amd7930.c#L507" id"pt"vL511" class="litm="vL499"><499o/a> __const__o6a> oa64="vL500"><500o/a>        oa href="+cod6class="co6ment">/* 5. dB */o/spa>
6snd_pcm_pcode!lass="sref">flagso/a> & oa href="+code=AMD7930_FLAG_CAPTURE" class="sref">AMD7930_FLAG_CAPTUREo/a>) { <477o/a>{ /* 5.5 dB */o/spa>6 <503o/a> /* 6. dB */o/spa>
6playback_substreamo/a>); sbus="sref">playback_substreamo/a>); playback_u_omig/spa503"><503o/a> /* 6.5 dB */o/spa>6 ref="sound/sparc/amd79 namL_to_fr001ssref">playback_ namL_to_fr001sref="+code=amd" clasamd7930.c#L533" id"vL533"md7930.cd" c930_BBTB" class="srefuntim"sref">amdo/a>-&runtim"d" c/amd7930.c#L374" pt"vL511" class="litm="vLL374"><488o/a>                oa hr6class="co6ment">/* 7. dB */o/spa>
6<527o/a>        oa href="+cod6class="co6ment">/* 7.5 dB */o/spa>6 <527o/a>        oa href="+cod6c6o/a>5366ment">/* 8. dB */o/spa>
6sn"srea hrufr001s" /amd7930.c#L507" id"g"+coa href=" class=poid"vLsref">amdo/a>-&g"+coa href=" class=poid"vLure_sref="+code=amd" class="srea hramd7930.c#L533" id"vL533"srea hramd7930.cd" class="sref">dev_iamd7930.c#L533" id"vL533"md7930.cd" c477"><477o/a>{ /* 8.5 dB */o/spa>6 -&488"><488o/a>                oa hr6cmd7930.c6ment">/* 9. dB */o/spa>
6 = oa href=ref="+code=amd" class="sref">amdo/a> = oa href="+code=dev_id" class="sref">dev_ido/a>; amdo/a>); <488o/a>                oa hr6c_const__6ment">/* 9.5 dB */o/spa>6 sn"iz"" /amd7930.c#L507" id"pt"vL511" class="litm="vL499"><499o/a> /* 10. dB */o/spa>6 <481o/a>        oa href="+cod6class="co6ment">/* 10.5 dB */o/spa6
 flagso/a> & oa href="+code=AMD7930_FLAG_CAPTURE" class="sref">AMD7930_FLAG_CAPTUREo/a>) { <477o/a>{ /* 11. dB */o/spa>6 snd_pcm_period_elref="soL503"><503o/a> /* 11.5 dB */o/spa6
 <534o/a>        return oa hre6class="co6ment">/* 12. dB */o/spa>6 ; playback_substreamo/a>); sbus="sref">playback_substreamo/a>); playback_c_omig/spa503"><503o/a> /* 13. dB */o/spa>6 playback_ namL_to_fr001sref="+code=amd" clasamd7930.c#L533" id"vL533"md7930.cd" c930_BBTB" class="srefuntim"sref">amdo/a>-&runtim"d" c/amd7930.c#L374" pt"vL511" class="litm="vLL374"><488o/a>                oa hr6class="co6ment">/* 14. dB */o/spa>6 <527o/a>        oa href="+cod6class="co6ment">/* 15. dB */o/spa>6 <508o/a>                if (o6class="co6ment">/* 15.9 dB */o/spa6
  = linto the hardware.o/spa>P" class and " class havess=e.oical propertie . " nam="vL476"><476o/a>static void oa href="6class="co6ment">/* 16.9 dB */o/spa6
 amdo/a>-&g"+ca hrhardw  "/amd7930.c#L507" id"g"+coa href=1 hrhwsref">amdo/a>-&g"+coa href=1 hrhw="vLrc76"><476o/a>static void oa href="6class="co6ment">/* 18. dB */o/spa>6 <488o/a>                oa hr6c/amd79306c#L472" id"vL472" class=6line"671EDo/a>; ); amdo/a>-&infof">snd_pcm_period_ellll=BBUF" class="srefSNDRV_PCM_INFO_MMAP->oa href="+SNDRV_PCM_INFO_MMAP="vLrT88"><488o/a>                oa hr6class="co6L473" id"vL473" class="l6ne" n67ref">amdo/a>->oa href="+code=c_lefa hsparc/amd7930.cSNDRV_PCM_INFO_MMAP_VALI id"vL535" classSNDRV_PCM_INFO_MMAP_VALI ="vLrT88"><488o/a>                oa hr6class="co6amd7930_map settings and6progr67class="sref">elapsedo/a> |= oa href="+cosparc/amd7930.cSNDRV_PCM_INFO_INTERLEAV" id"vL535" classSNDRV_PCM_INFO_INTERLEAV" ="vLrT88"><488o/a>                oa hr6class="co6->lock is held and lo6al in67class="sref">elapsedo/a> |= oa href="+cosparc/amd7930.cSNDRV_PCM_INFO_BLOCK_TRANSFE id"vL407" classSNDRV_PCM_INFO_BLOCK_TRANSFE ="vLrT88"><488o/a>                oa hr6class="co6 <447o/a>}; 676EDo/a>; ); AMD7ormatc6" id"vL516" class=""v=AMD7930_FLAG_PSNDRV_PCM_FMTBIT_MU_LAWlass="sref">AMDSNDRV_PCM_FMTBIT_MU_LAW="vLrTv=AMD7930_FLAG_PSNDRV_PCM_FMTBIT_A_LAWlass="sref">AMDSNDRV_PCM_FMTBIT_A_LAWd" c/47"><447o/a>};  = oa href="SNDRV_PCM_RATE_800od" c/47"><447o/a>}; 6md7936_mapo/a> *oa h.>); <447o/a>}; levelo/a>6  *oa h.>); <447o/a>};  *oa h.>); <447o/a>}; mapo/a>->oa 6ref="681EDo/a>; ); <447o/a>}; mapo/a>->oa 6ref="682EDo/a>; ); <447o/a>}; levelo/a> = (6a hre6="+code=amd" c.>); ; <447o/a>}; levelo/a>6>=6256) { ); ; <447o/a>}; mapo/a>6>o6 href="+code=g.>); <447o/a>}; mapo/a>6>o686EDo/a>; ); <447o/a>}; <488o/a>                oa hr6elass="co6ap" class="sref">mapo/a>6>o68="vL529"><529o/a>        if (oa href="6f="+code=6ap" class="sref">mapo/a>6>o68ef="sef="+cocoa href="+coa href="+coa href=1" class=open374" class="lin="+coa href=1" class=openure_sref="+code=amd" class="srea hramd7930.c#L533" id"vL533"srea hramd7930.cd" class="sref">dev_iamd7930.c#L533" id"vL533"md7930.cd" c477"><477o/a>{ <488o/a>                oa hr6=__amd7936_write_map" class="sref"6__amd6930_write_maporef="+code=amd" class="sref">amdo/a> = oa href="+code=dev_id" class="sref">dev_ido/a>; amdo/a>); <488o/a>                oa hr6=lass="co6#L493" id"vL493" class="6ine" 6920_write_maporef="+code=amd" class="srea hrruntim"sref">amdo/a>-&g"+ca hrruntim"d" class="sref">dev_iruntim"sref">amdo/a>-&runtim"d" clc/amd7930.c#L497""md7930.c#L533" id"vL533"md7930.cd" c930_BBTB" class="srefuntim"sref">amdo/a>-&runtim"d" c374"><488o/a>                oa hr6amd7930.c6L494" id"vL494" class="l6ne" n69="vL534"><534o/a>        return oa hre6irqreturn6t" class="sref">irqretur6_to/a69sbus_readb" class="sref">sbus="sref">playback_substreamo/a>); <488o/a>                oa hr6alass="co6#L496" id"vL496" class="6ine" 695bus_readb" class="sref">sbufuntim"sref">amdo/a>-&runtim"d" camo/a>); amdo/a>-&hw="vLrc7930.c#L507" id"g"+coa href=1 hrhwsref">amdo/a>-&g"+coa href=1 hrhw="vL374"><488o/a>                oa hr6aode=__am6d_amd7930" class="sref">6nd_am696EDo/a>; <503o/a> <527o/a>        oa href="+cod6ilass="co6="sref">u8o/a> oa href="6code=69="vL529"><529o/a>        if (oa href="6amd7930.c6L500" id"vL500" class="l6ne" n69ef="sef="+cocoa href="+coa href="+coa href=" class=open374" class="lin="+coa href=" class=openure_sref="+code=amd" class="srea hramd7930.c#L533" id"vL533"srea hramd7930.cd" class="sref">dev_iamd7930.c#L533" id"vL533"md7930.cd" c477"><477o/a>{ spin_lock7/a>(&70f="so488"><488o/a>                oa hr7amd7930.c7L502" id"vL502" class="l7ne" n7030_write_maporef="+code=amd" class="sref">amdo/a> = oa href="+code=dev_id" class="sref">dev_ido/a>; amdo/a>); <488o/a>                oa hr7a2d7930.c7LL493" id"vL493" class="7= 0; 7020_write_maporef="+code=amd" class="srea hrruntim"sref">amdo/a>-&g"+ca hrruntim"d" class="sref">dev_iruntim"sref">amdo/a>-&runtim"d" clc/amd7930.c#L497""md7930.c#L533" id"vL533"md7930.cd" c930_BBTB" class="srefuntim"sref">amdo/a>-&runtim"d" c374"><488o/a>                oa hr7a3d7930.c7L494" id"vL494" class="l7ne" n70="vL534"><534o/a>        return oa hre7=ir" clas7="sref">iro/a> = oa href7"+cod70sbus_readb" class="sref">sbus="sref">playback_substreamo/a>); <488o/a>                oa hr7code=ir" 7lass="sref">iro/a> &7oa hr705bus_readb" class="sref">sbufuntim"sref">amdo/a>-&runtim"d" camo/a>); amdo/a>-&hw="vLrc7930.c#L507" id"g"+coa href=1 hrhwsref">amdo/a>-&g"+coa href=1 hrhw="vL374"><488o/a>                oa hr7f="+code=78" class="sref">u8o/a> o7 href706EDo/a>; <503o/a> 527"><527o/a>        oa href="+cod7 href="+c7de=amd" class="sref">amd7/a>-&70="vL529"><529o/a>        if (oa href="7  if (oa 7ref="+code=amd" class="s7ef">a70ef="sef="+cocoa href="+coa href="+coa href=1" class=clos"sref">amdo/a>-&g"+coa href=1" class=clos"ure_sref="+code=amd" class="srea hramd7930.c#L533" id"vL533"srea hramd7930.cd" class="sref">dev_iamd7930.c#L533" id"vL533"md7930.cd" c477"><477o/a>{ <488o/a>                oa hr7         7oa href="+code=amd" clas7="sre7130_write_maporef="+code=amd" class="sref">amdo/a> = oa href="+code=dev_id" class="sref">dev_ido/a>; amdo/a>); <488o/a>                oa hr7 2d7930.c7oa href="+code=sbus_writ7b" cl71="vL473"><473o/a>ospa> class="comment"7         7if (oa href="+code=amd" 7lass=71class="sref">/a>(oa href="+cso/a> & oa href="+code=AMD7930_FLAG_CAPTUund/sparc/amd7930.c#L531" id"vL531" class="line" nam="vlc/amd7930.c#L497"NULLid"vL523" classNULL="vL374"><488o/a>                oa hr7         7        oa href="+code=e7apsed71LEDo/a>; <503o/a> <536o/a>536o/a>536o/a>536o/a>7 ="+code=7oa href="+code=sbus_writ7b" cl71x_coeff" cu02vL414" class="line" nam=17 if (oa h7ef="+code=amd" class="sr7f">am71t oa href="+coa href="+coa href="+coa href=" class=clos"sref">amdo/a>-&g"+coa href=" class=clos"ure_sref="+code=amd" class="srea hramd7930.c#L533" id"vL533"srea hramd7930.cd" class="sref">dev_iamd7930.c#L533" id"vL533"md7930.cd" c477"><477o/a>{ <488o/a>                oa hr7  if (oa 7ref="+code=amd" class="s7ef">a71href="+code=gref="+code=amd" class="sref">amdo/a> = oa href="+code=dev_id" class="sref">dev_ido/a>; amdo/a>); <488o/a>                oa hr7         7*(oa href="+code=amd" cl7ss="s72="vL481"><481o/a>        oa href="+cod7         7oa href="+code=amd" clas7="sre7230_write_mapo/a>(oa href="+cs="sref">playback_substreamo/a>); <488o/a>                oa hr7         7if (oa href="+code=amd" 7lass=72 href="sound/ref="soL503"><503o/a> <527o/a>        oa href="+cod7  } <405o/a>        oa href="+cod7ref="soun7/sparc/amd7930.c#L526" i7"vL52725 oa href="+coa href="+coa href="+coa href=hw_   amL374" class="lin"sreoa href=hw_   amLure_sref="+code=amd" class="srea hramd7930.c#L533" id"vL533"srea hramd7930.cd" class="sref">dev_iamd7930.c#L533" id"vL533"md7930.cd" c/47"><447o/a>}; sbus_writebo/a>(0, oooooooooooooref="+code=amd" class="srea hrhw_   amL374" class="lin"srea hrhw_   amLd" class="sref">dev_ihw_   amL374" class="linhw_   amLd" c477"><477o/a>{ spin_un7ocko/72/a>-&488"><488o/a>                oa hr7amd7930.c7L529" id"vL529" class="l7ne" n72mapo/a> *oa href="sound/sparc/amd79="+ca hrlib_malloc_  gmL374" class="lin"srea hrlib_malloc_  gmLref="+code=amd" clasamd7930.c#L533" id"vL533"md7930.cd" c/amd7930.c#L374" p  amL_buffer_ namL374" class="linp  amL_buffer_ namLref="+code=amd" clashw_   amL374" class="linhw_   amLd" c4L374"><488o/a>                oa hr7  if (oa 7ed" class="sref">elapsed7/a> &72f="so493"><493o/a> <481o/a>        oa href="+cod7sound/spa7c/amd7930.c#L532" id"vL572" cl73ode=ghref="+coa href="+coa href="+coa href=hw_fre"sref">amdo/a>-&g"+coa href=hw_fre"ure_sref="+code=amd" class="srea hramd7930.c#L533" id"vL533"srea hramd7930.cd" class="sref">dev_iamd7930.c#L533" id"vL533"md7930.cd" c477"><477o/a>{ <488o/a>                oa hr7amd7930.c7L534" id"vL534" class="l7ne" n73class="sref">ref="sound/sparc/amd79"srea hrlib_fre"_  gmL374" class="lin"srea hrlib_fre"_  gmLref="+code=amd" clasamd7930.c#L533" id"vL533"md7930.cd" cL374"><488o/a>                oa hr7="+code=I7Q_HANDLED" class="sref">7RQ_HA73="vL4527"><527o/a>        oa href="+cod7/amd7930.7#L536" id"vL536" class="7ine" 7316" i27"><527o/a>        oa href="+cod736o/a>5367/a>2/ clas6o/a> oa href=7+code73s="sref="+coref="+code=amd" class="srea hropL374" class="lin"srea hropLlass=href="+coa href="+coa href=1" class=opL374" class="lin"sreoa href=1" class=opLm="vlc/488"><488o/a>                oa hr7aspin_unl7ode=regs" class="sref">r7gned 737="sound/spar.>); <447o/a>}; amdo/a>-&clos"ure_oooooooooo=te_mapo/a>(oa href="+c="+coa href=1" class=clos"sref">amdo/a>-&g"+coa href=1" class=clos"ure_/47"><447o/a>}; amdo/a>-&ioctlure_oooooooooo=te_mapo/a>(oa href="+c="+ca hrlib_ioctlsref">amdo/a>-&="+ca hrlib_ioctlure_/47"><447o/a>}; (oa href="+c="+coa href=hw_   amL374" class="lin"sreoa href=hw_   amLure_/47"><447o/a>}; amdo/a>-&hw_fre"ure_oooooooo=te_mapo/a>(oa href="+c="+coa href=hw_fre"sref">amdo/a>-&g"+coa href=hw_fre"ure_/47"><447o/a>}; ; ); amdo/a>-&pre   "ure_oooooooo=te_mapo/a>(oa href="+c="+coa href=1" class=pre   "sref">amdo/a>-&g"+coa href=1" class=pre   "ure_/47"><447o/a>}; ); [0]; (oa href="+c="+coa href=1" class="migr_coeffo/a>[0]; <447o/a>}; ); amdo/a>-&poid"vLure_oooooooo=te_mapo/a>(oa href="+c="+coa href=1" class=poid"vLsref">amdo/a>-&g"+coa href=1" class=poid"vLure_/47"><447o/a>}; <488o/a>                oa hr7,6o/a>53670x0011, 0x000b, 0x000b, 7x000c74x_coeff" cu02vL414" class="line" nam=17c/amd79307c#L448" id"vL448" class=7line"747="sref="+coref="+code=amd" class="srea hropL374" class="lin"srea hropLlass=href="+coa href="+coa href=" class=opL374" class="lin"sreoa href=" class=opLm="vlc/488"><488o/a>                oa hr7c 0x0521,7L449" id"vL449" class="l7ne" n74mapo/a> *oa h.>); <447o/a>}; __const__o7a> oa749apo/a> *oa h.>); amdo/a>-&clos"ure_oooooooooo=te_mapo/a>(oa href="+c="+coa href=" class=clos"sref">amdo/a>-&g"+coa href=" class=clos"ure_/47"><447o/a>}; /* 5. dB */o/spa>
7 *oa h.>); amdo/a>-&ioctlure_oooooooooo=te_mapo/a>(oa href="+c="+ca hrlib_ioctlsref">amdo/a>-&="+ca hrlib_ioctlure_/47"><447o/a>}; /* 5.5 dB */o/spa>7 ; ); (oa href="+c="+coa href=hw_   amL374" class="lin"sreoa href=hw_   amLure_/47"><447o/a>}; /* 6. dB */o/spa>
7; ); amdo/a>-&hw_fre"ure_oooooooo=te_mapo/a>(oa href="+c="+coa href=hw_fre"sref">amdo/a>-&g"+coa href=hw_fre"ure_/47"><447o/a>}; /* 6.5 dB */o/spa>7 ); amdo/a>-&pre   "ure_oooooooo=te_mapo/a>(oa href="+c="+coa href=" class=pre   "sref">amdo/a>-&g"+coa href=" class=pre   "ure_/47"><447o/a>}; /* 7. dB */o/spa>
7); [0]; (oa href="+c="+coa href=" class="migr_coeffo/a>[0]; <447o/a>}; /* 7.5 dB */o/spa>7 amdo/a>-&poid"vLure_oooooooo=te_mapo/a>(oa href="+c="+coa href=" class=poid"vLsref">amdo/a>-&g"+coa href=" class=poid"vLure_/47"><447o/a>}; /* 8. dB */o/spa>
7<488o/a>                oa hr7c/amd79307ment">/* 8.5 dB */o/spa>7 <508o/a>                if (o7cmd7930.c7ment">/* 9. dB */o/spa>
7 = href="+coa href="+coa href__devini class="sref">sn__devini lass=href="+coa href="+coa href=1cc#L533" id"vL533"sreoa href=1ccure_sref="+code=amd" class="sref">amdo/a> = oa href="+code=dev_id" class="sref">dev_ido/a>; <477o/a>{ /* 9.5 dB */o/spa>7 <488o/a>                oa hr7class="co7ment">/* 10. dB */o/spa>7  *oa href="+code=amd" class="srea hsref">amdo/a>-&="+ca hd" class="sref">dev_ia hsref">amdo/a>-&a hd" c374"><488o/a>                oa hr7class="co7ment">/* 10.5 dB */o/spa7
 amdo/a>-&erLd" c374"><488o/a>                oa hr7class="co7ment">/* 11. dB */o/spa>7 <473o/a>ospa> class="comment"7class="co7ment">/* 11.5 dB */o/spa7
 amdo/a>-&erLd" crc/amd7930.c#L497""srea hrnewsref">amdo/a>-&g"+ca hrnewref="+code=amd" class="sref">playback_substreamo/a>); playback_" r"ure_/47"><447o/a>}; /* 12. dB */o/spa>7 elapsedo/a> |= oa href=linto the hardware.o/spa>ID" nam="vL4> |= oa href=linto the harrefing">"sunde=dev_i"am="vL4/47"><447o/a>}; /* 13. dB */o/spa>7 <447o/a>}; /* 14. dB */o/spa>7 sbus_writebo/a>(0, oooooooolinto the hardware.o/spa>1" class c>};t" nam="vL4>1/47"><447o/a>}; /* 15. dB */o/spa>7 ->oa href="+cod/a>(0, oooooooolinto the hardware.o/spa>" class c>};t" nam="vL4>>1/ " class="sref">lockoa hsref">amdo/a>-&a hd" c)) < 0477"><477o/a>{ /* 15.9 dB */o/spa7
 ->oa href="+codref="sound/sparc/amd79erLsref">amdo/a>-&erLd" c374"><488o/a>                oa hr7c_const__7ment">/* 16.9 dB */o/spa7
 <500o/a>        oa href="+cod7class="co7ment">/* 18. dB */o/spa>7 amdo/a>-&a hd" c/amd7930.c#L374" SNDRV_PCM_STREAMrc/amd7930.c#L530" id"vLSNDRV_PCM_STREAMrc/amd793d" c/a" class="sref">locko="+coa href=1" class=opL374" class="lin"sreoa href=1" class=opLm="vL374"><488o/a>                oa hr7c/amd79307c#L472" id"vL472" class=7line"7730_write_mapo/a>(oa href="+ccsrea hraetropL374" class="lin"srea hraetropLref="+code=amd" clasa hsref">amdo/a>-&a hd" c/amd7930.c#L374" SNDRV_PCM_STREAMrc/amd7930.c#L518" id"vSNDRV_PCM_STREAMrc/amd79d" c/a" class="sref">locko="+coa href=" class=opL374" class="lin"sreoa href=" class=opLm="vL374"><488o/a>                oa hr7class="co7L473" id"vL473" class="l7ne" n77="vL473"><473o/a>ospa> class="comment"7class="co7amd7930_map settings and7progr77class="sref">/a>(oa href="+ca hsref">amdo/a>-&a hd" ce=AMD7930_FLAG_CAPTUurivaam_datasref">amdo/a>-&urivaam_datad" crc/amd7930.c#L497"s="sref">playback_substre374"><488o/a>                oa hr7class="co7->lock is held and lo7al in77LEDo/a>; amdo/a>-&a hd" ce=AMD7930_FLAG_CAPTUinfo_RE" class="sref">AMDinfo_RE" cd" crc/L503"><503o/a> sburefcpy374" class="lin"efcpyref="+code=amd" clasa hsref">amdo/a>-&a hd" ce=AMD7930_FLAG_CAPTUparcsref">amdo/a>-&parcd" c/amd7930.c#L374" s="sref">playback_substreamo/a>); playback_" r"ure_amo/a>); amdo/a>-&shortparcm="vL374"><488o/a>                oa hr7class="co77930_update_map" class="7ref">77line" nam="vL/a>(oa href="+cso/a> & oa href="+code=AMD7930_FLAG_CAPTUa hsref">amdo/a>-&a hd" crc/amd7930.c#L497"a hsref">amdo/a>-&a hd" c374"><488o/a>                oa hr7class="co7#L478" id"vL478" class="7ine" 77="vL508"><508o/a>                if (o7class="co7d7930_map" class="sref">7md79377" class="sref">iro/a>; amdo/a>-&="+ca hrlib_preallocaam_  gmL_for_allref="+code=amd" clasa hsref">amdo/a>-&a hd" c/amd7930.c#L374" SNDRV_DMA_TYPE_CONTINUOUS30.c#L518" id"vSNDRV_DMA_TYPE_CONTINUOUSure_/47"><447o/a>}; levelo/a>7  *oa hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh">iro/a>; amdo/a>-&c"+cdma_continuous_dataref="+code=amd" clasGFP_KERNELid"vL523" classGFP_KERNELm="vL/47"><447o/a>};  *oa hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh64*1024,h64*1024L374"><488o/a>                oa hr7a/amd79307s="sref">mapo/a>->oa 7ref="78="vL502"><502o/a>        oa href="+cod7alass="co7s="sref">mapo/a>->oa 7ref="78 href="sound/ref="soL503"><503o/a> levelo/a> = (7a hre780x003527"><527o/a>        oa href="+cod7alass="co7" class="sref">levelo/a>7>=78="vL405"><405o/a>        oa href="+cod7=lass="co7ap" class="sref">mapo/a>7>o7 href=#defrefh">iro/a>; <405o/a>        oa href="+cod7=lass="co7ap" class="sref">mapo/a>7>o786EDo/#defrefh">iro/a>; <405o/a>        oa href="+cod7=lass="co7sparc/amd7930.c#L488" id7vL48878(&#defrefh">iro/a>; <405o/a>        oa href="+cod7=lass="co7ap" class="sref">mapo/a>7>o78="vL529"><529o/a>        if (oa href="7f="+code=7ap" class="sref">mapo/a>7>o78ef="sef="+cocoa href="+coa href="+coa href=info_volum"sref">amdo/a>-&g"+coa href=info_volum"ure_sref="+code=amd" class="srekcontrolsref">amdo/a>-&="+ckcontrold" class="sref">dev_ikctlsref">amdo/a>-&kctlure_/href="+code=amd" class="srectl_elem_infosref">amdo/a>-&"srectl_elem_infod" class="sref">dev_iuinfosref">amdo/a>-&uinfod" c477"><477o/a>{ <488o/a>                oa hr7=__amd7937_write_map" class="sref"7__amd7930_write_mapo/a>(oa href="+cuinfosref">amdo/a>-&uinfod" ce=AMD7930_FLAG_CAPTUtyp"sref">amdo/a>-&typ"d" crc/amd7930.c#L497"SNDRV_CTL_ELEM_TYPE_INTEGE id"vL407" classSNDRV_CTL_ELEM_TYPE_INTEGE d" c374"><488o/a>                oa hr7=lass="co7#L493" id"vL493" class="7ine" 7920_write_mapo/a>(oa href="+cuinfosref">amdo/a>-&uinfod" ce=AMD7930_FLAG_CAPTUc>};tsref">playback_">};td" crc/1374"><488o/a>                oa hr7=level" c7L494" id"vL494" class="l7ne" n79class="sref">/a>(oa href="+cuinfosref">amdo/a>-&uinfod" ce=AMD7930_FLAG_CAPTUvalu"sref">amdo/a>-&valu"d" c.>); ); <503o/a> irqretur7_to/a79sbus_readb" class="sref">sbuuinfosref">amdo/a>-&uinfod" ce=AMD7930_FLAG_CAPTUvalu"sref">amdo/a>-&valu"d" c.>); ); <503o/a> <527o/a>        oa href="+cod7aode=__am7d_amd7930" class="sref">7nd_am796EDo/a>; <503o/a> <527o/a>        oa href="+cod7ilass="co7="sref">u8o/a> oa href="7code=79="vL529"><529o/a>        if (oa href="7amd7930.c7L500" id"vL500" class="l7ne" n79ef="sef="+cocoa href="+coa href="+coa href=get_volum"sref">amdo/a>-&g"+coa href=get_volum"ure_sref="+code=amd" class="srekcontrolsref">amdo/a>-&="+ckcontrold" class="sref">dev_ikctlsref">amdo/a>-&kctlure_/href="+code=amd" class="srectl_elem_valu"sref">amdo/a>-&"srectl_elem_valu"d" class="sref">dev_iucontrolsref">amdo/a>-&ucontrold" c477"><477o/a>{ spin_lock8/a>(&80f="so488"><488o/a>                oa hr8amd7930.c8L502" id"vL502" class="l8ne" n8030_write_maporef="+code=amd" class="sref">amdo/a> = oa href="+code=dev_id" class="sref">dev_ido/a>; amdo/a>); amdo/a>-&kctlure_L374"><488o/a>                oa hr8a2d7930.c8LL493" id"vL493" class="8= 0; 8020_write_mapocoa href="+coa hreftyp"sref">amdo/a>-&typ"d" crc/amd7930.c#L497"kctlsref">amdo/a>-&kctlure_e=AMD7930_FLAG_CAPTUurivaam_valu"sref">amdo/a>-&urivaam_valu"d" c374"><488o/a>                oa hr8a3d7930.c8L494" id"vL494" class="l8ne" n8030_write_mapocoa ass="sref">dev_iawvalf">amdo/a>); <488o/a>                oa hr8a4d7930.c8L" class="sref">irqretur8"+cod80="vL405"><405o/a>        oa href="+cod8code=ir" 8lass="sref">iro/a> &8oa hr805bus_readb" cswitchBBUF" class="sreftyp"sref">amdo/a>-&typ"d" c)L518"><518o/a>                     8f="+code=88" class="sref">u8o/a> o8 href806EDo/a>; iro/a>; <518o/a>                     8f7"+code=88de=elapsed" class="sref8ne" n80/a>->oa href="+cods="sref">gero/aawvalf">amdo/a>); locko/a>, oa href="+code=flags" class="sref">flagsmgain374" class="linmgaind" c374"><488o/a>                oa hr8a8"+code=88"sref">u8o/a> oa href="8/a>-&808a>->oa href="+codbreak374"><488o/a>                oa hr8a9"+code=88500" id"vL500" class="l8ef">a809EDo/a>; iro/a>; <518o/a>                     8         8oa href="+code=byte" cla8s="sr810apo/a> *oa hhhhhhhhhs="sref">gero/aawvalf">amdo/a>); locko/a>, oa href="+code=flags" class="sref">flagsrgain374" class="linrgaind" c374"><488o/a>                oa hr8         8oa href="+code=amd" clas8="sre81f="sound/spar="sound/break374"><488o/a>                oa hr8 2d7930.c8oa href="+code=sbus_writ8b" cl812EDo/a>; iro/a>; <518o/a>                     8 3d7930.c8if (oa href="+code=amd" 8lass=81class="sref">default:18"><518o/a>                     8 4d7930.c8        oa href="+code=e8apsed81class="sref">elapsedos="sref">gero/aawvalf">amdo/a>); locko/a>, oa href="+code=flags" class="sref">flagspgain374" class="linpgaind" c374"><488o/a>                oa hr8 ode=ir" 8a href="sound/sparc/amd7830.c#81="+code=AMR_Ielapsedobreak374"><488o/a>                oa hr8 ="+code=8oa href="+code=sbus_writ8b" cl816EDo/a>; <527o/a>        oa href="+cod8 if (oa h8ef="+code=amd" class="sr8f">am81="vL508"><508o/a>                if (o8 href="+c8"+code=byte" class="sref8>byte81" class="sref">iro/a>; amdo/a>-&ucontrold" ce=AMD7930_FLAG_CAPTUvalu"sref">amdo/a>-&valu"d" c.>); ); amdo/a>-&valu"d" c[0]rc/ass="sref">dev_iawvalf">amdo/a>); <488o/a>                oa hr8  if (oa 8ref="+code=amd" class="s8ef">a81="vL500"><500o/a>        oa href="+cod8         8*(oa href="+code=amd" cl8ss="s820apo/a> *oa href="soL503"><503o/a> <527o/a>        oa href="+cod8         8if (oa href="+code=amd" 8lass=82="vL473"><473o/a>ospa> class="comment"8         8        oa href="+code=e8apsed820x003ef="+cocoa href="+coa href="+coa href=1ut_volum"sref">amdo/a>-&g"+coa href=1ut_volum"ure_sref="+code=amd" class="srekcontrolsref">amdo/a>-&="+ckcontrold" class="sref">dev_ikctlsref">amdo/a>-&kctlure_/href="+code=amd" class="srectl_elem_valu"sref">amdo/a>-&"srectl_elem_valu"d" class="sref">dev_iucontrolsref">amdo/a>-&ucontrold" c477"><477o/a>ospa> class="comment"8 4d7930.c8f="sound/sparc/amd7930.c8L525"82="vL4518"><518o/a>                     8ref="soun8/sparc/amd7930.c#L526" i8"vL52825bus_readb" csef="+code=amd" class="sref">amdo/a> = oa href="+code=dev_id" class="sref">dev_ido/a>; amdo/a>); amdo/a>-&kctlure_L374"><488o/a>                oa hr8nd/sparc/8md7930.c#L527" id"vL527"8class82s="sref">sbusunsigned long/amd7930.c#L497"RE" class="sref">AMD7930_FLAG374"><488o/a>                oa hr8nif (oa h8ck" class="sref">spin_un8ocko/82/a>->oa hrcoa href="+coa hreftyp"sref">amdo/a>-&typ"d" crc/amd7930.c#L497"kctlsref">amdo/a>-&kctlure_e=AMD7930_FLAG_CAPTUurivaam_valu"sref">amdo/a>-&urivaam_valu"d" c374"><488o/a>                oa hr8amd7930.c8L529" id"vL529" class="l8ne" n82mapo/a> *oa hcoa ass="sref">dev_iawvalf">amdo/a>); amdo/a>-&chang"d" c374"><488o/a>                oa hr8a if (oa 8ed" class="sref">elapsed8/a> &82="vL500"><500o/a>        oa href="+cod8f="+code=8nd_pcm_period_elapsed" c8ass="830apo/a> *oa hrwitchBBUF" class="sreftyp"sref">amdo/a>-&typ"d" c)L518"><518o/a>                     8sound/spa8c/amd7930.c#L532" id"vL582" cl83f="sound/sparcasfh">iro/a>; <518o/a>                     8f="+code=8nd_pcm_period_elapsed" c8ass="83ref">amdo/a>->oa hs="sref">gero/aawvalf">amdo/a>); locko/a>, oa href="+code=flags" class="sref">flagsmgain374" class="linmgaind" c374"><488o/a>                oa hr8amd7930.c8L534" id"vL534" class="l8ne" n83class="sref">elapsedobreak374"><488o/a>                oa hr8="+code=I8Q_HANDLED" class="sref">8RQ_HA834="sound/sparcasfh">iro/a>; <518o/a>                     8/amd7930.8#L536" id"vL536" class="8ine" 83="+code=AMR_Ielapsedos="sref">gero/aawvalf">amdo/a>); locko/a>, oa href="+code=flags" class="sref">flagsrgain374" class="linrgaind" c374"><488o/a>                oa hr836o/a>5368/a>2/ clas6o/a> oa href=8+code83s="sref">sbus_writebobreak374"><488o/a>                oa hr8=if (oa h8ode=regs" class="sref">r8gned 837="sound/sparcasfh">iro/a>; <518o/a>                     8, 0x0521,80x047c, 0x0422, 0x03b1, 8x03e383mapo/a> *oa hdefault:18"><518o/a>                     8, if (oa 80x02ba, 0x02f2, 0x0242, 8x0232839apo/a> *oa hhhhhhhhhs="sref">gero/aawvalf">amdo/a>); locko/a>, oa href="+code=flags" class="sref">flagspgain374" class="linpgaind" c374"><488o/a>                oa hr8, 0x01ad,80x0212, 0x01b2, 0x01bb, 8x01cb840apo/a> *oa hhhhhhhhhbreak374"><488o/a>                oa hr8,ound/spa80x0131, 0x012c, 0x0123, 8x0122841EDo/a>; <527o/a>        oa href="+cod8,="+code=80x00b1, 0x00aa, 0x00b3, 8x00bd84="vL473"><473o/a>ospa> class="comment"8,md7930.c80x0062, 0x0051, 0x0042, 8x003b84class="sref">/a>(oa href="+cspin_lock_irqsav"sref">amdo/a>-&"pin_lock_irqsav"ref="" class="sref">locko/a>, oa href="+code=flags" class="sref">flagslock, oa href="+codlockd" c/amd7930.c#L374" RE" class="sref">AMD7930_FLAGL374"><488o/a>                oa hr8,"+code=I80x0025, 0x0023, 0x0022, 8x001a84="vL405"><405o/a>        oa href="+cod8,amd7930.80x0015, 0x0013, 0x0013, 8x001284="+code=AMR_Icodeass="sref">dev_iawvalf">amdo/a>); amdo/a>-&ucontrold" ce=AMD7930_FLAG_CAPTUvalu"sref">amdo/a>-&valu"d" c.>); ); amdo/a>-&valu"d" c[0])L518"><518o/a>                     8,6o/a>53680x0011, 0x000b, 0x000b, 8x000c84s="sref">sbus_writeboass="sref">dev_iawvalf">amdo/a>); amdo/a>-&ucontrold" ce=AMD7930_FLAG_CAPTUvalu"sref">amdo/a>-&valu"d" c.>); ); amdo/a>-&valu"d" c[0]/" cla 0xff374"><488o/a>                oa hr8,if (oa h8c#L448" id"vL448" class=8line"84/a>->oa href="+cods="sref">gero/a_coa href=updaam_maef">amdo/a>); , oa href="+code=flagsL374"><488o/a>                oa hr8, 0x0521,8L449" id"vL449" class="l8ne" n848a>->oa href="+codmd7930.c#L374" chang"sref">amdo/a>-&chang"d" crc/1374"><488o/a>                oa hr8, if (oa 8 class="sref">__const__o8a> oa849apo/a> *oa h} else74"><488o/a>                oa hr8class="co8ment">/* 5. dB */o/spa>
8 *oa hhhhhhhhhs="sref">gero/achang"sref">amdo/a>-&chang"d" crc/L503"><503o/a> /* 5.5 dB */o/spa>8 <502o/a>        oa href="+cod8class="co8ment">/* 6. dB */o/spa>
8(oa href="+c"pin_unlock_irqresto "sref">amdo/a>-&gpin_unlock_irqresto "ref="" class="sref">locko/a>, oa href="+code=flags" class="sref">flagslock, oa href="+codlockd" c/amd7930.c#L374" RE" class="sref">AMD7930_FLAGL374"><488o/a>                oa hr8c 0x00f3,8ment">/* 6.5 dB */o/spa>8 <534o/a>        return oa hre8c"+code=I8ment">/* 7. dB */o/spa>
8amdo/a>-&chang"d" c374"><488o/a>                oa hr8camd7930.8ment">/* 7.5 dB */o/spa>8 <536o/a>536o/a>536o/a>536o/a>8c6o/a>5368ment">/* 8. dB */o/spa>
8/* 8.5 dB */o/spa>8 amdo/a>-&g"+ckcontrol_new6) { ss="sref">locko/a>href="ontrolclass="sref">AMD/a>href="ontrolcd" c[] href="+coa href__devini datasref">amdo/a>-&__devini datad" crc/518"><518o/a>                     8cmd7930.c8ment">/* 9. dB */o/spa>
8->oa hr518"><518o/a>                     8c if (oa 8ment">/* 9.5 dB */o/spa>8  *oa hhhhhhhhh.>); amdo/a>-&ifac"apo/a> *oa hhh=te_mapo/a>(oa href="+cSNDRV_CTL_ELEM_IFACE_MIXE id"vL407" classSNDRV_CTL_ELEM_IFACE_MIXE d" c/18"><518o/a>                     8class="co8ment">/* 10. dB */o/spa>8  *oa hhhhhhhhh.>); amdo/a>-&parcd" c a> *oa hhh=te_mapo/into the harrefing">"Moni or Volum""am="vL4/47"><447o/a>}; /* 10.5 dB */o/spa8
 ); <447o/a>}; /* 11. dB */o/spa>8 amdo/a>->oa h.>); amdo/a>-&infod" cla> *oa hhh=te_mapo/a>(oa href="+c="+coa href=info_volum"sref">amdo/a>-&g"+coa href=info_volum"ure_/47"><447o/a>}; /* 11.5 dB */o/spa8
 elapsedo.>); playback_getlass="sref">elap=te_mapo/a>(oa href="+c="+coa href=get_volum"sref">amdo/a>-&g"+coa href=get_volum"ure_/47"><447o/a>}; /* 12. dB */o/spa>8 elapsedo.>); playback_eutlass="sref">elap=te_mapo/a>(oa href="+c="+coa href=1ut_volum"sref">amdo/a>-&g"+coa href=1ut_volum"ure_/47"><447o/a>}; /* 13. dB */o/spa>8 amdo/a>-&urivaam_valu"d" cap=te_mapo/a>(oa href="+cVOLUME_MONITO id"vL407" classVOLUME_MONITO href/47"><447o/a>}; /* 14. dB */o/spa>8 sbus}/47"><447o/a>}; /* 15. dB */o/spa>8 ->oa hr518"><518o/a>                     8class="co8ment">/* 15.9 dB */o/spa8
 ->oa href="+cod.>); amdo/a>-&ifac"apo/a> *oa hhh=te_mapo/a>(oa href="+cSNDRV_CTL_ELEM_IFACE_MIXE id"vL407" classSNDRV_CTL_ELEM_IFACE_MIXE d" c/18"><518o/a>                     8c if (oa 8ment">/* 16.9 dB */o/spa8
  *oa hhhhhhhhh.>); amdo/a>-&parcd" c a> *oa hhh=te_mapo/into the harrefing">"C class Volum""am="vL4/47"><447o/a>}; /* 18. dB */o/spa>8  *oa hhhhhhhhh.>); <447o/a>}; ); amdo/a>-&infod" cla> *oa hhh=te_mapo/a>(oa href="+c="+coa href=info_volum"sref">amdo/a>-&g"+coa href=info_volum"ure_/47"><447o/a>}; amdo/a>->oa h.>); playback_getlass="sref">elap=te_mapo/a>(oa href="+c="+coa href=get_volum"sref">amdo/a>-&g"+coa href=get_volum"ure_/47"><447o/a>}; elapsedo.>); playback_eutlass="sref">elap=te_mapo/a>(oa href="+c="+coa href=1ut_volum"sref">amdo/a>-&g"+coa href=1ut_volum"ure_/47"><447o/a>}; elapsedo.>); amdo/a>-&urivaam_valu"d" cap=te_mapo/a>(oa href="+cVOLUME_c/amd7930.c#L518" id"vVOLUME_c/amd79href/47"><447o/a>}; <447o/a>}; 87line" nam="vL518"><518o/a>                     8class="co8#L478" id"vL478" class="8ine" 87/a>->oa href="+cod.>); amdo/a>-&ifac"apo/a> *oa hhh=te_mapo/a>(oa href="+cSNDRV_CTL_ELEM_IFACE_MIXE id"vL407" classSNDRV_CTL_ELEM_IFACE_MIXE d" c/18"><518o/a>                     8class="co8d7930_map" class="sref">8md793878a>->oa href="+cod.>); amdo/a>-&parcd" c a> *oa hhh=te_mapo/into the harrefing">"P" class Volum""am="vL4/47"><447o/a>}; levelo/a>8  *oa hhhhhhhhh.>); <447o/a>};  *oa hhhhhhhhh.>); amdo/a>-&infod" cla> *oa hhh=te_mapo/a>(oa href="+c="+coa href=info_volum"sref">amdo/a>-&g"+coa href=info_volum"ure_/47"><447o/a>}; mapo/a>->oa 8ref="88f="sound/spar="sound/.>); playback_getlass="sref">elap=te_mapo/a>(oa href="+c="+coa href=get_volum"sref">amdo/a>-&g"+coa href=get_volum"ure_/47"><447o/a>}; mapo/a>->oa 8ref="88ref">amdo/a>->oa h.>); playback_eutlass="sref">elap=te_mapo/a>(oa href="+c="+coa href=1ut_volum"sref">amdo/a>-&g"+coa href=1ut_volum"ure_/47"><447o/a>}; levelo/a> = (8a hre88class="sref">elapsedo.>); amdo/a>-&urivaam_valu"d" cap=te_mapo/a>(oa href="+cVOLUME_c/amd7930.c#L530" id"vLVOLUME_c/amd793href/47"><447o/a>}; levelo/a>8>=884bus_readb" c}/47"><447o/a>}; mapo/a>8>o8816" i}374"><488o/a>                oa hr8=lass="co8ap" class="sref">mapo/a>8>o88x_coeff" cu02vL414" class="line" nam=18=lass="co8sparc/amd7930.c#L488" id8vL48888t oa href="+coa href="+coa href__devini class="sref">sn__devini lass=href="+coa href="+coa href=mixvLsref">amdo/a>-&g"+coa href=mixvLref="ref="+code=amd" class="sref">amdo/a> = oa href="+code=dev_id" class="sref">dev_ido/a>; <477o/a>{ mapo/a>8>o88a> = 488"><488o/a>                oa hr8f="+code=8ap" class="sref">mapo/a>8>o88href="+code=gref="+code=amd" class="sre" r"sref">playback_"sre" r"d" class="sref">dev_i" r"sref">playback_" r"ure_374"><488o/a>                oa hr8nd/sparc/8md7930.c#L491" id"vL491"8class890apo/a> *oa hcoa href="+coa hrefidx374" class="linidxd" c/amd7930.c#L374" erLsref">amdo/a>-&erLd" c374"><488o/a>                oa hr8=__amd7938_write_map" class="sref"8__amd89="vL502"><502o/a>        oa href="+cod8=lass="co8#L493" id"vL493" class="8ine" 8920_write_mapocodeode=amd" class="sreBUG_ONsref">playback_"sreBUG_ONref="!ss="sref">dev_ido/a>; dev_ido/a>; playback_" r"ure_)477"><477o/a>{ elapsedoref="so->); <488o/a>                oa hr8=lass="co8t" class="sref">irqretur8_to/a89="vL405"><405o/a>        oa href="+cod8ilass="co8#L496" id"vL496" class="8ine" 895bus_readb" class="sref">sbu" r"sref">playback_" r"ure_rc/amd7930.c#L497"s="sref">playback_substreamo/a>); playback_" r"ure_374"><488o/a>                oa hr8=lass="co8d_amd7930" class="sref">8nd_am89line" nam="vL/a>(oa href="+crefcpy374" class="lin"efcpyref="+code=amd" clas" r"sref">playback_" r"ure_amo/a>); amdo/a>-&mixvLparcd" c/amd7930.c#L374" " r"sref">playback_" r"ure_amo/a>); amdo/a>-&shortparcm="vL374"><488o/a>                oa hr8a href="+8ode=elapsed" class="sref8>elap89="vL508"><508o/a>                if (o8ilass="co8="sref">u8o/a> oa href="8code=898a>->oa hrfordeode=amd" class=idx374" class="linidxd" crc/L5 href="+coa hrefidx374" class="linidxd" c < href="+coa hrefARRAY_SIZ930.c#L518" id"vARRAY_SIZ9ref="+code=amd" clas/a>href="ontrolclass="sref">AMD/a>href="ontrolcd" c)5 href="+coa hrefidx374" class="linidxd" c++)L518"><518o/a>                     8amd7930.c8L500" id"vL500" class="l8ne" n899apo/a> *oa hhhhhhhhhcode"+code=amd" claserLsref">amdo/a>-&erLd" crc/amd7930.c#L497""srectl_ad"sref">playback_"sre"tl_ad"ref="+code=amd" clas" r"sref">playback_" r"ure_/47"><447o/a>}; spin_lock9/a>(&900apo/a> *oa hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhamd7930.c#L497""srectl_new1sref">playback_"sre"tl_new1ref="" class="sref">locko/a>href="ontrolclass="sref">AMD/a>href="ontrolcd" c[href="+coa hrefidx374" class="linidxd" c]/amd7930.c#L374" s="sref">playback_substre))) < 0477"><477o/a>{ amdo/a>-&erLd" c374"><488o/a>                oa hr9a2d7930.c9LL493" id"vL493" class="9= 0; 9020_write_mapo536"><536o/a>536o/a>536o/a>536o/a>9a3d7930.c9L494" id"vL494" class="l9ne" n90="vL534"><534o/a>        return oa hre9a4d7930.c9L" class="sref">irqretur9"+cod9056) { <503o/a> iro/a> &9oa hr90m="vL536"><536o/a>536o/a>536o/a>536o/a>9f="+code=98" class="sref">u8o/a> o9 href90x_coeff" cu02vL414" class="line" nam=19f7"+code=98de=elapsed" class="sref9ne" n90t oa href="+coa href="+coa hrefg"+coa href=fre"sref">amdo/a>-&g"+coa href=fre"ure_sref="+code=amd" class="sref">amdo/a> = oa href="+code=dev_id" class="sref">dev_ido/a>; <477o/a>{ u8o/a> oa href="9/a>-&90a> = 488"><488o/a>                oa hr9a9"+code=98500" id"vL500" class="l9ef">a90href="+code=gref="+code=amd" class=platform_devicesref">amdo/a>-&ulatform_deviced" class="sref">dev_ioef">amdo/a>); playback_substreamo/a>); amdo/a>); <503o/a> <481o/a>        oa href="+cod9         9oa href="+code=amd" clas9="sre9130_write_mapo/a>(oa href="+coa href=idlesref">amdo/a>-&oa href=idleref="+code=amd" clas/a>a>; <503o/a> <473o/a>ospa> class="comment"9 3d7930.c9if (oa href="+code=amd" 9lass=910x0033, playback_substreamo/a>); <477o/a>{ elapsedos="sref">gero/afre"_irq374" class="linfre"_irqref="+code=amd" clas/a>a>; playback_substre)503"><503o/a> <527o/a>        oa href="+cod9 ="+code=9oa href="+code=sbus_writ9b" cl916EDo/a>; playback_substreamo/a>); AMDre c/spa477"><477o/a>{ am91/a>->oa href="+cods="sref">gero/aof_i>{ maef">amdo/a>); { maeref="" class="sref">lockooef">amdo/a>); ); amdo/a>-&rea>{rced" c[0]/amd7930.c#L374" s="sref">playback_substreamo/a>); AMDre c/spa/47"><447o/a>}; gero/area>{rce_sizesref">amdo/a>-&rea>{rce_sizeref="" class="sref">lockooef">amdo/a>); ); amdo/a>-&rea>{rced" c[0]))503"><503o/a> a91="vL500"><500o/a>        oa href="+cod9         9*(oa href="+code=amd" cl9ss="s92p;oa href="+code=amd" class=kfre"sref">amdo/a>-&kfre"ure_smd7930.c#L374" s="sref">playback_substre)503"><503o/a> <502o/a>        oa href="+cod9         9if (oa href="+code=amd" 9lass=92 href="sound/ref="soL503"><503o/a> <527o/a>        oa href="+cod9 4d7930.c9f="sound/sparc/amd7930.c9L525"92="vL405"><405o/a>        oa href="+cod9ref="soun9/sparc/amd7930.c#L526" i9"vL52925bus_href="+coa href="+coa hrefg"+coa href=dev=fre"sref">amdo/a>-&g"+coa href=dev=fre"ure_sref="+code=amd" class="sredevicesref">amdo/a>-&"sredeviced" class="sref">dev_idevicesref">amdo/a>-&deviced" c477"><477o/a>{ <488o/a>                oa hr9nif (oa h9ck" class="sref">spin_un9ocko/92/a>->oa hrsef="+code=amd" class="sref">amdo/a> = oa href="+code=dev_id" class="sref">dev_ido/a>; amdo/a>-&deviced" camo/a>); amdo/a>-&device_dataure_503"><503o/a> <529o/a>        if (oa href="9a if (oa 9ed" class="sref">elapsed9/a> &929href="sound/ref="sohref="+coa hrefg"+coa href=fre"sref">amdo/a>-&g"+coa href=fre"ure_smd7930.c#L374" s="sref">playback_substre)503"><503o/a> <527o/a>        oa href="+cod9sound/spa9c/amd7930.c#L532" id"vL592" cl93="vL502"><502o/a>        oa href="+cod9f="+code=9nd_pcm_period_elapsed" c9ass="93ref">ef="+coref="+code=amd" class="sredevice_opL374" class="lin"sredevice_opLlass=href="+coa href="+coa href=dev=opL374" class="lin"sreoa href=dev=opL/sparc/488"><488o/a>                oa hr9amd7930.c9L534" id"vL534" class="l9ne" n93class="sref">.>); amdo/a>-&dev=fre"ure_"sref">=te_mapo/a>(oa href="+c="+coa href=dev=fre"sref">amdo/a>-&g"+coa href=dev=fre"ure_/47"><447o/a>}; 9RQ_HA934="so}374"><488o/a>                oa hr9/amd7930.9#L536" id"vL536" class="9ine" 9316" i27"><527o/a>        oa href="+cod936o/a>5369/a>2/ clas6o/a> oa href=9+code93s="srhref="+coa href="+coa href__devini class="sref">sn__devini lass=href="+coa href="+coa href=creat"sref">amdo/a>-&g"+coa href=creat"ure_sref="+code=amd" class="sre" r"sref">playback_"sre" r"d" class="sref">dev_i" r"sref">playback_" r"ure_/47"><447o/a>}; r9gned 93/a>->oa href="+cod/a>(0, oooooooooooooooooref="+code=amd" class=platform_devicesref">amdo/a>-&ulatform_deviced" class="sref">dev_ioef">amdo/a>); <447o/a>}; amdo/a>-&devure_/47"><447o/a>}; amdo/a> = oa href="+code=dev_id" claass="sref">dev_irs="sref">playback_rund/spa477"><477o/a>{ <488o/a>                oa hr9,ound/spa90x0131, 0x012c, 0x0123, 9x01229430_write_maporef="+code=amd" class="sref">amdo/a> = oa href="+code=dev_id" class="sref">dev_ido/a>; <488o/a>                oa hr9,="+code=90x00b1, 0x00aa, 0x00b3, 9x00bd94 href="sound/unsigned long/amd7930.c#L497"RE" class="sref">AMD7930_FLAG374"><488o/a>                oa hr9,md7930.c90x0062, 0x0051, 0x0042, 9x003b9430_write_mapocoa md7930.c#L374" erLsref">amdo/a>-&erLd" c374"><488o/a>                oa hr9,"+code=I90x0025, 0x0023, 0x0022, 9x001a94="vL405"><405o/a>        oa href="+cod9,amd7930.90x0015, 0x0013, 0x0013, 9x001294="+code=AMR_Iass="sref">dev_irs="sref">playback_rund/sparc/amd7930.c#L497"NULLid"vL523" classNULLd" c374"><488o/a>                oa hr9,6o/a>53690x0011, 0x000b, 0x000b, 9x000c94line" nam="vL/a>(oa href="+cso/a> & oa href="+codrc/amd7930.c#L497"kzallocsref">amdo/a>-&kzallocure_srizeofeass="sref">dev_is="sref">playback_substre)/amd7930.c#L374" GFP_KERNELid"vL523" classGFP_KERNELm="vL374"><488o/a>                oa hr9,if (oa h9c#L448" id"vL448" class=9line"94/a>->oa hrcodeamd7930.c#L497"s="sref">playback_substre =c/amd7930.c#L497"NULLid"vL523" classNULLd" c477"><477o/a>{ ->oa href="+codref="so->); <488o/a>                oa hr9, if (oa 9 class="sref">__const__o9a> oa94="vL500"><500o/a>        oa href="+cod9class="co9ment">/* 5. dB */o/spa>
9sn"pin_lock_ini ref="" class="sref">locko/a>sref">playback_substreamo/a>); <488o/a>                oa hr9class="co9ment">/* 5.5 dB */o/spa>9 (oa href="+coa sref">playback_substreamo/a>); playback_" r"ure_rc/amd7930.c#L497"" r"sref">playback_" r"ure_374"><488o/a>                oa hr9class="co9ment">/* 6. dB */o/spa>
9(oa href="+cs="sref">playback_substreamo/a>); amdo/a>); amdo/a>); <503o/a> /* 6.5 dB */o/spa>9 <534o/a>        return oa hre9c"+code=I9ment">/* 7. dB */o/spa>
9playback_substreamo/a>); AMDre c/sparc/amd7930.c#L497"of_i>remaef">amdo/a>); remaeref="" class="sref">lockooef">amdo/a>); ); amdo/a>-&rea>{rced" c[0]/ao/47"><447o/a>}; /* 7.5 dB */o/spa>9 gero/area>{rce_sizesref">amdo/a>-&rea>{rce_sizeref="" class="sref">lockooef">amdo/a>); ); amdo/a>-&rea>{rced" c[0]),o/into the harrefing">"="sound"am="vL4L374"><488o/a>                oa hr9c6o/a>5369ment">/* 8. dB */o/spa>
9; dev_ido/a>; AMDre c/spa4/488"><488o/a>                oa hr9c/amd79309ment">/* 8.5 dB */o/spa>9 ->oa href="+cods="sref">gero/aa"+cafintk, oa href="+coda"+cafintkure_smd7930.c#L374" KERN_ER id"vL407" classKERN_ER "vL534"><534o/a>        return oa hre9cmd7930.c9ment">/* 9. dB */o/spa>
9->oa href="+cod href="+codsinto the harrefing">"="sound-%d: Unable to mae chiedregisters.\n"am="vL4/ href="+coa hrefdevsref">amdo/a>-&devure_L374"><488o/a>                oa hr9c if (oa 9ment">/* 9.5 dB */o/spa>9  *oa hhhhhhhhhref="so->); <503o/a> /* 10. dB */o/spa>9  *oa h527"><527o/a>        oa href="+cod9class="co9ment">/* 10.5 dB */o/spa9
 <502o/a>        oa href="+cod9class="co9ment">/* 11. dB */o/spa>9 (oa href="+cs="href=idlesref">amdo/a>-&oa href=idleref="+code=amd" clas/a>a>; <503o/a> /* 11.5 dB */o/spa9
 <534o/a>        return oa hre9c"+code=I9ment">/* 12. dB */o/spa>9 codeamd7930.c#L497"request_irq374" class="linrequest_irqref="+code=amd" clasirq374" class="linirq/spa/amd7930.c#L374" g"+coa href=interrup class="sref">sn""+coa href=interrup ure_/47"><447o/a>}; /* 13. dB */o/spa>9 snIRQF_SHARED/spa/aminto the harrefing">"="sound"am="vL4/amd7930.c#L374" s="sref">playback_substre))/488"><488o/a>                oa hr9c6o/a>5369ment">/* 14. dB */o/spa>9 sbus_writebos="sref">gero/aa"+cafintk, oa href="+coda"+cafintkure_smd7930.c#L374" KERN_ER id"vL407" classKERN_ER "vL5dsinto the harrefing">"="sound-%d: Unable to grab IRQ %d\n"am="vL4/88"><488o/a>                oa hr9c/amd79309ment">/* 15. dB */o/spa>9 ->oa href="+cod/a>(0, oooohref="+coa hrefdevsref">amdo/a>-&devure_/ href="+coa hrefirq374" class="linirq/spa4503"><503o/a> /* 15.9 dB */o/spa9
 ->oa href="+codhref="+coa hrefg"+coa href=fre"sref">amdo/a>-&g"+coa href=fre"ure_smd7930.c#L374" s="sref">playback_substre)503"><503o/a> /* 16.9 dB */o/spa9
  *oa hhhhhhhhhref="so->); <503o/a> /* 18. dB */o/spa>9  *oa h527"><527o/a>        oa href="+cod9c/amd79309c#L472" id"vL472" class=9line"9730_write_mapo/a>(oa href="+coa sref">playback_substreamo/a>); <503o/a> <473o/a>ospa> class="comment"9class="co9amd7930_map settings and9progr97class="sref">/a>(oa href="+coa href=enable=intclass="sref">AMD/a>href=enable=intcure_smd7930.c#L374" s="sref">playback_substre)503"><503o/a> <405o/a>        oa href="+cod9camd7930.9 amdo/a>-&"pin_lock_irqsav"ref="" class="sref">locko/a>, oa href="+code=flags" class="sref">flagslock, oa href="+codlockd" c/amd7930.c#L374" RE" class="sref">AMD7930_FLAGL374"><488o/a>                oa hr9class="co97930_update_map" class="9ref">97x_coeff" cu02vL414" class="line" nam=19class="co9#L478" id"vL478" class="9ine" 97/a>->oa hrss="sref">dev_ido/a>; <488o/a>                oa hr9cmd7930.c9d7930_map" class="sref">9md79397" class="sref">iro/a>; ; <503o/a> levelo/a>9  *oa h">iro/a>; ; <503o/a> <481o/a>        oa href="+cod9a/amd79309s="sref">mapo/a>->oa 9ref="9830_write_mapo/a>(oa href="+cmemsetsref">playback_memsetref="" class="sref">locko/a>, oa href="+code=flags" class="sref">flagsmaef">amdo/a>); locko/a>, oa href="+code=flags" class="sref">flagsmaef">amdo/a>); <503o/a> mapo/a>->oa 9ref="9820_write_mapo/a>(oa href="+cs="sref">playback_substreamo/a>); amdo/a>); ); playback_mmr1d" crc/ess="sref">lockoAM_MAP_MMR1_GXsref">playback_AM_MAP_MMR1_GXd" cr| href="+coa hrefAM_MAP_MMR1_GE id"vL407" classAM_MAP_MMR1_GE d" cr|03"><503o/a> levelo/a> = (9a hre98class="sref">elapsedoref="+codhref="+coa hrefAM_MAP_MMR1_G id"vL407" classAM_MAP_MMR1_GRd" cr| href="+coa hrefAM_MAP_MMR1_STGid"vL407" classAM_MAP_MMR1_STGFLAGL374"><488o/a>                oa hr9=lass="co9" class="sref">levelo/a>9>=9856) { playback_substreamo/a>); amdo/a>); ); playback_mmr2d" crc/ess="sref">lockoAM_MAP_MMR2_LSid"vL407" classAM_MAP_MMR2_LSd" cr| href="+coa hrefAM_MAP_MMR2_AINBid"vL407" classAM_MAP_MMR2_AINBFLAGL374"><488o/a>                oa hr9=amd7930.9ap" class="sref">mapo/a>9>o9816" i27"><527o/a>        oa href="+cod9=lass="co9ap" class="sref">mapo/a>9>o98line" nam="vL/a>(oa href="+c_coa href=updaam_maef">amdo/a>); , oa href="+code=flagsL374"><488o/a>                oa hr9=lass="co9sparc/amd7930.c#L488" id9vL48898="vL508"><508o/a>                if (o9=lass="co9ap" class="sref">mapo/a>9>o98" class="sref"into the harcomment">/* Always MUX audio (Ba) to channel Bb. */am="vL408"><508o/a>                if (o9= if (oa 9ap" class="sref">mapo/a>9>o989apo/a> *oa h">iro/a>; amdo/a>-&"bus_writebref="+code=amd" clasAMR_MUX_MCR1sref">playback_AMR_MUX_MCR1d" c/amd7930.c#L374" s="sref">playback_substreamo/a>); AMDre c/spar+ href="+coa hrefAMDhref=C id"vL407" classAMDhref=C lagsL374"><488o/a>                oa hr9nd/sparc/9md7930.c#L491" id"vL491"9class99p;oa href="+code=amd" class="bus_writebsref">amdo/a>-&"bus_writebref="+code=amd" clasAM_MUX_CHANNEL_Basref">amdo/a>-&AM_MUX_CHANNEL_Bad" cr| "+code=amd" clasAM_MUX_CHANNEL_Bbsref">amdo/a>-&AM_MUX_CHANNEL_Bbd" cr<< 4)/88"><488o/a>                oa hr9=__amd7939_write_map" class="sref"9__amd99f="sound/spar="sound/elapmd7930.c#L374" s="sref">playback_substreamo/a>); AMDre c/spar+ href="+coa hrefAMDhref=D id"vL407" classAMDhref=D lagsL374"><488o/a>                oa hr9nlass="co9#L493" id"vL493" class="9ine" 99="vL473"><473o/a>ospa> class="comment"9=level" c9L494" id"vL494" class="l9ne" n99class="sref">/a>(oa href="+c"pin_unlock_irqresto "sref">amdo/a>-&gpin_unlock_irqresto "ref="" class="sref">locko/a>, oa href="+code=flags" class="sref">flagslock, oa href="+codlockd" c/amd7930.c#L374" RE" class="sref">AMD7930_FLAGL374"><488o/a>                oa hr9=lass="co9t" class="sref">irqretur9_to/a99="vL405"><405o/a>        oa href="+cod9ilass="co9#L496" id"vL496" class="9ine" 995bus_readb" ccode"+code=amd" claserLsref">amdo/a>-&erLd" crc/amd7930.c#L497""sredevice_newsref">amdo/a>-&g"+cdevice_newref="+code=amd" clas" r"sref">playback_" r"ure_/o/a>(oa href="+cSNDRV_DEV_LOWLEVELid"vL523" classSNDRV_DEV_LOWLEVELure_/47"><447o/a>}; 9nd_am99s="sref">sbus_writebod/spar="sound/elapmd7930.c#L374" s="sref">playback_substre,/" class="sref">locko="+coa href=dev=opL374" class="lin"sreoa href=dev=opL/spa)) < 04/488"><488o/a>                oa hr9a href="+9ode=elapsed" class="sref9>elap99/a>->oa href="+cods="sref">gero/aa"+coa href=fre"sref">amdo/a>-&g"+coa href=fre"ure_smd7930.c#L374" s="sref">playback_substre)503"><503o/a> u8o/a> oa href="9code=998a>->oa href="+codref="so+code=amd" claserLsref">amdo/a>-&erLd" c503"><503o/a>  *oa h527"><527o/a>        oa href="+cod10=spin_loc10=spi" id"vL500" class="l10=sp>10=s"vL405/pre>7"><527o/a>        oa href="+cod10=1pin_loc10=write_map" class="sref"10=wr>10=f="sound/sparass="sref">dev_irs="sref">playback_rund/sparc/amd7930.c#L497"s="sref">playback_substre503"><503o/a> <503o/a> <527o/a>        oa href="+cod10=4pin_loc10=" class="sref">irqretur10=" >10=="vL405"><405o/a>        oa href="+cod10=5pin_loc10=L496" id"vL496" class="10=L4>10=5bus_href="+coa href="+coa href__devini class="sref">sn__devini lass=href="+coa hrefoa href="bus_probesref">amdo/a>-&oa href="bus_probeure_sref="+code=amd" class=platform_devicesref">amdo/a>-&ulatform_deviced" class="sref">dev_ioef">amdo/a>); <477o/a>{ 10=_a>10=s="sr488"><488o/a>                oa hr10=7pin_loc10=de=elapsed" class="sref10=de>10=/a>->oa hrsef="+code=amd" class=rea>{rcesref">amdo/a>-&rea>{rced" crass="sref">dev_iref">amdo/a>); lockooef">amdo/a>); ); amdo/a>-&rea>{rced" c[0]503"><503o/a> u8o/a> oa href="10="s>10=8a>->oa hrseef="+coa href="+coa hrefdev=numsref">amdo/a>-&dev=numstre503"><503o/a> playback_"sre" r"d" class="sref">dev_i" r"sref">playback_" r"ure_374"><488o/a>                oa hr101spin_loc10oa href="+code=byte" cla10oa >10oaref="+code=gref="+code=amd" class="srea">amdo/a> = oa href="+code=dev_id" class="sref">dev_ido/a>; <488o/a>                oa hr10o1pin_loc10oa href="+code=amd" clas10oa >10of="sound/sparcoa md7930.c#L374" erLsref">amdo/a>-&erLd" c/ href="+coa hrefirq374" class="linirq/spa374"><488o/a>                oa hr10o2pin_loc10oa href="+code=sbus_writ10oa >10o="vL473"><473o/a>ospa> class="comment"10o3pin_loc10if (oa href="+code=amd" 10if >10oclass="sref">/a>(oa href="+cirq374" class="linirq/sparc/amd7930.c#L497"oef">amdo/a>); ); amdo/a>-&clahdataref=.>); <503o/a> 10o="vL405"><405o/a>        oa href="+cod1015pin_loc10a href="sound/sparc/amd710a h>10o5bus_readb" ccodehref="+coa hrefdev=numsref">amdo/a>-&dev=numstre mo/ac/amd7930.c#L497"SNDRV_CARDSid"vL407" classSNDRV_CARDSure_477"><477o/a>{ 10os="sref">sbus_writeboref="so->); <488o/a>                oa hr10o7pin_loc10ef="+code=amd" class="sr10ef=>10o/a>->oa hrcode!ss="sref">dev_ienablesref">amdo/a>-&enabled" c[href="+coa hrefdev=numsref">amdo/a>-&dev=numstre])L518"><518o/a>                     10o8pin_loc10"+code=byte" class="sref10"+c>10o8a>->oa href="+codhref="+coa hrefdev=numsref">amdo/a>-&dev=numstre++374"><488o/a>                oa hr10o9pin_loc10ref="+code=amd" class="s10ref>10o9apo/a> *oa hhhhhhhhhref="so->); <488o/a>                oa hr102spin_loc10*(oa href="+code=amd" cl10*(o>10*(apo/a> *oa h527"><527o/a>        oa href="+cod1021pin_loc10oa href="+code=amd" clas10oa >10*="vL502"><502o/a>        oa href="+cod10*2pin_loc10if (oa href="+code=amd" 10if >10*20_write_mapo/a>(oa href="+cerLsref">amdo/a>-&erLd" crc/amd7930.c#L497""srec r"=creat"sref">amdo/a>-&g"+cc r"=creat"ure_smd7930.c#L374" index374" class="linindexapo/[href="+coa hrefdev=numsref">amdo/a>-&dev=numstre]/ href="+coa hrefi/a>; amdo/a>-&dev=numstre]/ href="+coa hrefTHIS_MODULEsref">amdo/a>-&THIS_MODULEref=/ao/02"><502o/a>        oa href="+cod10*3pin_loc10        oa href="+code=e10   >10*class="sref">elapsedoref="+codddddd" class="sref">locko" r"sref">playback_" r"ure_)374"><488o/a>                oa hr1024pin_loc10f="sound/sparc/amd7930.c10f=">10*class="sref">codeamd7930.c#L497"erLsref">amdo/a>-&erLd" cr< 0477"><477o/a>{ 10*="+code=AMR_Ielapsedoref="so+code=amd" claserLsref">amdo/a>-&erLd" c503"><503o/a> 10*x_coeff" cu02vL414" class="line" nam=110*7pin_loc10ck" class="sref">spin_un10ck">10*/a>->oa hrss="sref">dev_irefcpy374" class="lin"efcpyref="+code=amd" clas" r"sref">playback_" r"ure_amo/a>); amdo/a>-&drivvLd" c/ hinto the harrefing">"AMDhref"am="vL4L374"><488o/a>                oa hr10*8pin_loc10L529" id"vL529" class="l10L52>10*" class="sref">iro/a>; playback_" r"ure_amo/a>); amdo/a>-&shortparcm="v/ hinto the harrefing">"Sun AMDhref"am="vL4L374"><488o/a>                oa hr10*9pin_loc10ed" class="sref">elapsed10ed">10*9apo/a> *oa h">iro/a>; amdo/a>-&gpfintfref="+code=amd" clas" r"sref">playback_" r"ure_amo/a>); amdo/a>-&longparcm="v/ hinto the harrefing">"%s at 0x%02lx:0x%08Lx, irq %d"am="vL4/88"><488o/a>                oa hr103spin_loc10nd_pcm_period_elapsed" c10nd_>10nda>->oa href="+codhref="+coa href" r"sref">playback_" r"ure_amo/a>); amdo/a>-&shortparcm="v/88"><488o/a>                oa hr1031pin_loc10c/amd7930.c#L532" id"vL510c/a>10nf="sound/spar="sound/ss="sref">dev_iref">amdo/a>); ); AMD7930_FLAGd" cla 0xffL/88"><488o/a>                oa hr1032pin_loc10nd_pcm_period_elapsed" c10nd_>10nref">amdo/a>->oa h(unsigned long/long)ss="sref">dev_iref">amdo/a>); ); sn"tar m="v/88"><488o/a>                oa hr1033pin_loc10L534" id"vL534" class="l10L53>10nclass="sref">elapsedo/a>(oa href="+cirq374" class="linirq/spaL374"><488o/a>                oa hr1034pin_loc10Q_HANDLED" class="sref">10Q_H>10n="vL405"><405o/a>        oa href="+cod1035pin_loc10#L536" id"vL536" class="10#L5>10n5bus_readb" ccode"+code=amd" claserLsref">amdo/a>-&erLd" crc/amd7930.c#L497""sreoa href=creat"sref">amdo/a>-&g"+coa href=creat"ref="+code=amd" clas" r"sref">playback_" r"ure_/o/a>(oa href="+coef">amdo/a>); <447o/a>}; sbus_writebod/spar="sound/elapsedo/a>(oa href="+cirq374" class="linirq/spa/ href="+coa hrefdev=numsref">amdo/a>-&dev=numstre,/" class="sref">lockos="sref">playback_substre)) < 0477"><477o/a>{ r10ode>10n/a>->oa href="+codgotoo/a>(oa href="+cout_erLsref">amdo/a>-&out_erLd" c503"><503o/a> <529o/a>        if (oa href="10n9pin_loc100x02ba, 0x02f2, 0x0242, 100x0>10n9bus_readb" ccode"+code=amd" claserLsref">amdo/a>-&erLd" crc/amd7930.c#L497""sreoa href=pcmsref">amdo/a>-&"sreoa href=pcmure_smd7930.c#L374" s="sref">playback_substre)) < 0477"><477o/a>{ (oa href="+cout_erLsref">amdo/a>-&out_erLd" c503"><503o/a> <502o/a>        oa href="+cod1042pin_loc100x00b1, 0x00aa, 0x00b3, 100x0>10020_write_mapocode"+code=amd" claserLsref">amdo/a>-&erLd" crc/amd7930.c#L497""sreoa href=mixvLsref">amdo/a>-&g"+coa href=mixvLref="md7930.c#L374" s="sref">playback_substre)) < 0477"><477o/a>{ elapsedogotoo/a>(oa href="+cout_erLsref">amdo/a>-&out_erLd" c503"><503o/a> <405o/a>        oa href="+cod1045pin_loc100x0015, 0x0013, 0x0013, 100x0>1005bus_readb" ccode"+code=amd" claserLsref">amdo/a>-&erLd" crc/amd7930.c#L497""srec r"=registersref">amdo/a>-&g"+cc r"=registerref="+code=amd" clas" r"sref">playback_" r"ure_)) < 0477"><477o/a>{ sbus_writebogotoo/a>(oa href="+cout_erLsref">amdo/a>-&out_erLd" c503"><503o/a> 100="vL508"><508o/a>                if (o1008pin_loc10L449" id"vL449" class="l10L44>100" class="sref">iro/a>; ; snnex /sparc/amd7930.c#L497"s="href=listsref">amdo/a>-&oa href=listd" c503"><503o/a> __const__o10 cl>1009apo/a> *oa h">iro/a>; amdo/a>-&oa href=listd" crc/amd7930.c#L497"s="sref">playback_substre503"><503o/a> /* 5. dB */o/spa>
10men>10me"vL508"><508o/a>                if (o1051pin_loc10ment">/* 5.5 dB */o/spa>10men>10m30_write_mapo/a>(oa href="+cdev=numsref">amdo/a>-&dev=numstre++374"><488o/a>                oa hr1052pin_loc10ment">/* 6. dB */o/spa>
10men>10m="vL473"><473o/a>ospa> class="comment"1053pin_loc10ment">/* 6.5 dB */o/spa>10men>10mclass="sref">ref="soL503"><503o/a> /* 7. dB */o/spa>
10men>10m="vL405"><405o/a>        oa href="+cod1055pin_loc10ment">/* 7.5 dB */o/spa>10men>10m5bus_/a>(oa href="+cout_erLsref">amdo/a>-&out_erLd" c:05"><405o/a>        oa href="+cod1056pin_loc10ment">/* 8. dB */o/spa>
10men>10mline" nam="vL/a>(oa href="+cr"+cc r"=fre"sref">amdo/a>-&g"+cc r"=fre"ref="+code=amd" clas" r"sref">playback_" r"ure_)503"><503o/a> /* 8.5 dB */o/spa>10men>10m7lass="sref">ref="so+code=amd" claserLsref">amdo/a>-&erLd" c503"><503o/a> /* 9. dB */o/spa>
10men>10m" cla527"><527o/a>        oa href="+cod1059pin_loc10ment">/* 9.5 dB */o/spa>10men>10m="vL500"><500o/a>        oa href="+cod106spin_loc10ment">/* 10. dB */o/spa>10men>10me"vL5seef="+constgref="+code=amd" class=ofcdevice_i/a>; iro/a>; amdo/a>-&oa href=matchapo/[]rc/488"><488o/a>                oa hr10m1pin_loc10ment">/* 10.5 dB */o/spa10men>10m30_write_mapo488"><488o/a>                oa hr10m2pin_loc10ment">/* 11. dB */o/spa>10men>10mref">amdo/a>->oa h.>); amdo/a>-&parcm="vrc/ainto the harrefing">"=udio"am="vL4/88"><488o/a>                oa hr1063pin_loc10ment">/* 11.5 dB */o/spa10men>10mclass="sref">}/47"><447o/a>}; /* 12. dB */o/spa>10men>10mclass="sref">{}/47"><447o/a>}; /* 13. dB */o/spa>10men>10m16" i}374"><488o/a>                oa hr10m6pin_loc10ment">/* 14. dB */o/spa>10men>10mx_coeff" cu02vL414" class="line" nam=11067pin_loc10ment">/* 15. dB */o/spa>10men>10mt oa href="+ref="+code=amd" class=platform_drivvLsref">amdo/a>-&platform_drivvLlass=">iro/a>; amdo/a>-&do/href="bus_drivvLm="vrc/488"><488o/a>                oa hr10m8pin_loc10ment">/* 15.9 dB */o/spa10men>10m" class="sref.>); amdo/a>-&drivvLd" crc/488"><488o/a>                oa hr10m9pin_loc10ment">/* 16.9 dB */o/spa10men>10m9apo/a> *oa hhhhhhhhh.>); amdo/a>-&parcm="vrc/ainto the harrefing">"=udio"am="vL4/88"><488o/a>                oa hr107spin_loc10ment">/* 18. dB */o/spa>10men>10meapo/a> *oa hhhhhhhhh.>); amdo/a>-&ownvLd" crc/amd7930.c#L497"THIS_MODULEsref">amdo/a>-&THIS_MODULEref=/88"><488o/a>                oa hr1071pin_loc10c#L472" id"vL472" class=10c#L>10mf="sound/spar="sound/.>); amdo/a>-&of=match_table/sparc/amd7930.c#L497"s="href=matchsref">amdo/a>-&oa href=matchapo//88"><488o/a>                oa hr1072pin_loc10L473" id"vL473" class="l10L47>10m2lass="sref">}/47"><447o/a>}; .>); amdo/a>-&probeure_ar="sound/c/amd7930.c#L497"s="href="bus_probesref">amdo/a>-&oa href="bus_probeure_/47"><447o/a>}; <488o/a>                oa hr10m5pin_loc10 <527o/a>        oa href="+cod10m6pin_loc107930_update_map" class="10793>10ms="srhref="+coa href="+coa href__ini class="sref">sn__ini lass=href="+coa hrefoa href=ini class="sref">snoa href=ini ref="void477"><477o/a>{ <488o/a>                oa hr1078pin_loc10d7930_map" class="sref">10d79>10m" class="srefref="so+code=amd" clasplatform_drivvL=registersref">amdo/a>-&platform_drivvL=registerref="" class="sref">locko/a>href="bus_drivvLsref">amdo/a>-&do/href="bus_drivvLm="v)503"><503o/a> levelo/a>10" c>10m9 cla527"><527o/a>        oa href="+cod108spin_loc10L481" id"vL481" class="l10L48>10L46" i27"><527o/a>        oa href="+cod1081pin_loc10s="sref">mapo/a>->oa 10s=">10L1="srhref="+void href="+coa href__exi class="sref">sn__exi lass=href="+coa hrefoa href=exi class="sref">snoa href=exi ref="void477"><477o/a>{ mapo/a>->oa 10s=">10L2 oa 488"><488o/a>                oa hr1083pin_loc10ass="sref">levelo/a> = (10ass>10Lclass="sref">ref="+code=amd" class="srea">amdo/a> = oa href="+code=dev_id" class="sref">dev_ief">amdo/a>); amdo/a>-&oa href=listd" c503"><503o/a> levelo/a>10" c>10L="vL405"><405o/a>        oa href="+cod1085pin_loc10ap" class="sref">mapo/a>10ap">10L5bus_readb" cwhiledeamd7930.c#L497"ef">amdo/a>); <488o/a>                oa hr1086pin_loc10ap" class="sref">mapo/a>10ap">10Ls="sref">sbus_writeboref="+code=amd" class="srea">amdo/a> = oa href="+code=dev_id" class="sref">dev_inex class="sref">snnex /sparc/amd7930.c#L497"ef">amdo/a>); ); snnex /spa503"><503o/a> 10L="vL508"><508o/a>                if (o1088pin_loc10ap" class="sref">mapo/a>10ap">10L8a>->oa href="+codhref="+coa hrefg"+cc r"=fre"sref">amdo/a>-&g"+cc r"=fre"ref="+code=amd" clasef">amdo/a>); ); playback_" r"ure_)503"><503o/a> mapo/a>10ap">10L="vL500"><500o/a>        oa href="+cod109spin_loc10md7930.c#L491" id"vL491"10md7>10mda>->oa href="+codhref="+coa hrefef">amdo/a>); snnex /spa503"><503o/a> 10mf="sound/spar527"><527o/a>        oa href="+cod1092pin_loc10#L493" id"vL493" class="10#L4>10m="vL473"><473o/a>ospa> class="comment"1093pin_loc10L494" id"vL494" class="l10L49>10mclass="sref">/a>(oa href="+coa href=listsref">amdo/a>-&oa href=listd" crc/amd7930.c#L497"NULLid"vL523" classNULLd" c374"><488o/a>                oa hr10m4pin_loc10t" class="sref">irqretur10t" >10m="vL405"><405o/a>        oa href="+cod1095pin_loc10#L496" id"vL496" class="10#L4>10m5bus_readb" code=amd" class=platform_drivvL=unregistersref">amdo/a>-&platform_drivvL=unregisterref="" class="sref">locko/a>href="bus_drivvLsref">amdo/a>-&do/href="bus_drivvLm="v)503"><503o/a> 10d_a>10m6 cla527"><527o/a>        oa href="+cod1097pin_loc10ode=elapsed" class="sref10ode>10m="vL508"><508o/a>                if (o1098pin_loc10="sref">u8o/a> oa href="10="s>10m8bus_/a>(oa href="+cmodule=ini class="sref">snmodule=ini ref="md7930.c#L374" s="href=ini class="sref">snoa href=ini ref=)503"><503o/a> snmodule=exi ref="md7930.c#L374" s="href=exi class="sref">snoa href=exi ref=)503"><503o/a> 





The original LXR software by the 3"><503o/http://a>{rceforge.net/projects/lxrs>LXR communi yref=, this experimental vvLsion by 3"><503o/mailto:lxr@500ux.no">lxr@500ux.noref=.


lxr.500ux.no kindly hosted by 3"><503o/http://www.redpill-500pro.no">Redpill L00pro ASref=, provider of L00ux+consulting and operef=ons services since 1995.