linux/drivers/dma/at_hdmac.c
<<
>>
Prefs
   1/*
   2 * Driver for the Atmel AHB DMA Controller (aka HDMA or DMAC on AT91 systems)
   3 *
   4 * Copyright (C) 2008 Atmel Corporation
   5 *
   6 * This program is free software; you can redistribute it and/or modify
   7 * it under the terms of the GNU General Public License as published by
   8 * the Free Software Foundation; either version 2 of the License, or
   9 * (at your option) any later version.
  10 *
  11 *
  12 * This supports the Atmel AHB DMA Controller found in several Atmel SoCs.
  13 * The only Atmel DMA Controller that is not covered by this driver is the one
  14 * found on AT91SAM9263.
  15 */
  16
  17#include <linux/clk.h>
  18#include <linux/dmaengine.h>
  19#include <linux/dma-mapping.h>
  20#include <linux/dmapool.h>
  21#include <linux/interrupt.h>
  22#include <linux/module.h>
  23#include <linux/platform_device.h>
  24#include <linux/slab.h>
  25#include <linux/of.h>
  26#include <linux/of_device.h>
  27
  28#include "at_hdmac_regs.h"
  29#include "dmaengine.h"
  30
  31/*
  32 * Glossary
  33 * --------
  34 *
  35 * at_hdmac             : Name of the ATmel AHB DMA Controller
  36 * at_dma_ / atdma      : ATmel DMA controller entity related
  37 * atc_ / atchan        : ATmel DMA Channel entity related
  38 */
  39
  40#define ATC_DEFAULT_CFG         (ATC_FIFOCFG_HALFFIFO)
  41#define ATC_DEFAULT_CTRLB       (ATC_SIF(AT_DMA_MEM_IF) \
  42                                |ATC_DIF(AT_DMA_MEM_IF))
  43
  44/*
  45 * Initial number of descriptors to allocate for each channel. This could
  46 * be increased during dma usage.
  47 */
  48static unsigned int init_nr_desc_per_channel = 64;
  49module_param(init_nr_desc_per_channel, uint, 0644);
  50MODULE_PARM_DESC(init_nr_desc_per_channel,
  51                 "initial descriptors per channel (default: 64)");
  52
  53
  54/* prototypes */
  55static dma_cookie_t atc_tx_submit(struct dma_async_tx_descriptor *tx);
  56
  57
  58/*----------------------------------------------------------------------*/
  59
  60static struct at_desc *atc_first_active(struct at_dma_chan *atchan)
  61{
  62        return list_first_entry(&atchan->active_list,
  63                                struct at_desc, desc_node);
  64}
  65
  66static struct at_desc *atc_first_queued(struct at_dma_chan *atchan)
  67{
  68        return list_first_entry(&atchan->queue,
  69                                struct at_desc, desc_node);
  70}
  71
  72/**
  73 * atc_alloc_descriptor - allocate and return an initialized descriptor
  74 * @chan: the channel to allocate descriptors for
  75 * @gfp_flags: GFP allocation flags
  76 *
  77 * Note: The ack-bit is positioned in the descriptor flag at creation time
  78 *       to make initial allocation more convenient. This bit will be cleared
  79 *       and control will be given to client at usage time (during
  80 *       preparation functions).
  81 */
  82static struct at_desc *atc_alloc_descriptor(struct dma_chan *chan,
  83                                            gfp_t gfp_flags)
  84{
  85        struct at_desc  *desc = NULL;
  86        struct at_dma   *atdma = to_at_dma(chan->device);
  87        dma_addr_t phys;
  88
  89        desc = dma_pool_alloc(atdma->dma_desc_pool, gfp_flags, &phys);
  90        if (desc) {
  91                memset(desc, 0, sizeof(struct at_desc));
  92                INIT_LIST_HEAD(&desc->tx_list);
  93                dma_async_tx_descriptor_init(&desc->txd, chan);
  94                /* txd.flags will be overwritten in prep functions */
  95                desc->txd.flags = DMA_CTRL_ACK;
  96                desc->txd.tx_submit = atc_tx_submit;
  97                desc->txd.phys = phys;
  98        }
  99
 100        return desc;
 101}
 102
 103/**
 104 * atc_desc_get - get an unused descriptor from free_list
 105 * @atchan: channel we want a new descriptor for
 106 */
 107static struct at_desc *atc_desc_get(struct at_dma_chan *atchan)
 108{
 109        struct at_desc *desc, *_desc;
 110        struct at_desc *ret = NULL;
 111        unsigned long flags;
 112        unsigned int i = 0;
 113        LIST_HEAD(tmp_list);
 114
 115        spin_lock_irqsave(&atchan->lock, flags);
 116        list_for_each_entry_safe(desc, _desc, &atchan->free_list, desc_node) {
 117                i++;
 118                if (async_tx_test_ack(&desc->txd)) {
 119                        list_del(&desc->desc_node);
 120                        ret = desc;
 121                        break;
 122                }
 123                dev_dbg(chan2dev(&atchan->chan_common),
 124                                "desc %p not ACKed\n", desc);
 125        }
 126        spin_unlock_irqrestore(&atchan->lock, flags);
 127        dev_vdbg(chan2dev(&atchan->chan_common),
 128                "scanned %u descriptors on freelist\n", i);
 129
 130        /* no more descriptor available in initial pool: create one more */
 131        if (!ret) {
 132                ret = atc_alloc_descriptor(&atchan->chan_common, GFP_ATOMIC);
 133                if (ret) {
 134                        spin_lock_irqsave(&atchan->lock, flags);
 135                        atchan->descs_allocated++;
 136                        spin_unlock_irqrestore(&atchan->lock, flags);
 137                } else {
 138                        dev_err(chan2dev(&atchan->chan_common),
 139                                        "not enough descriptors available\n");
 140                }
 141        }
 142
 143        return ret;
 144}
 145
 146/**
 147 * atc_desc_put - move a descriptor, including any children, to the free list
 148 * @atchan: channel we work on
 149 * @desc: descriptor, at the head of a chain, to move to free list
 150 */
 151static void atc_desc_put(struct at_dma_chan *atchan, struct at_desc *desc)
 152{
 153        if (desc) {
 154                struct at_desc *child;
 155                unsigned long flags;
 156
 157                spin_lock_irqsave(&atchan->lock, flags);
 158                list_for_each_entry(child, &desc->tx_list, desc_node)
 159                        dev_vdbg(chan2dev(&atchan->chan_common),
 160                                        "moving child desc %p to freelist\n",
 161                                        child);
 162                list_splice_init(&desc->tx_list, &atchan->free_list);
 163                dev_vdbg(chan2dev(&atchan->chan_common),
 164                         "moving desc %p to freelist\n", desc);
 165                list_add(&desc->desc_node, &atchan->free_list);
 166                spin_unlock_irqrestore(&atchan->lock, flags);
 167        }
 168}
 169
 170/**
 171 * atc_desc_chain - build chain adding a descriptor
 172 * @first: address of first descriptor of the chain
 173 * @prev: address of previous descriptor of the chain
 174 * @desc: descriptor to queue
 175 *
 176 * Called from prep_* functions
 177 */
 178static void atc_desc_chain(struct at_desc **first, struct at_desc **prev,
 179                           struct at_desc *desc)
 180{
 181        if (!(*first)) {
 182                *first = desc;
 183        } else {
 184                /* inform the HW lli about chaining */
 185                (*prev)->lli.dscr = desc->txd.phys;
 186                /* insert the link descriptor to the LD ring */
 187                list_add_tail(&desc->desc_node,
 188                                &(*first)->tx_list);
 189        }
 190        *prev = desc;
 191}
 192
 193/**
 194 * atc_dostart - starts the DMA engine for real
 195 * @atchan: the channel we want to start
 196 * @first: first descriptor in the list we want to begin with
 197 *
 198 * Called with atchan->lock held and bh disabled
 199 */
 200static void atc_dostart(struct at_dma_chan *atchan, struct at_desc *first)
 201{
 202        struct at_dma   *atdma = to_at_dma(atchan->chan_common.device);
 203
 204        /* ASSERT:  channel is idle */
 205        if (atc_chan_is_enabled(atchan)) {
 206                dev_err(chan2dev(&atchan->chan_common),
 207                        "BUG: Attempted to start non-idle channel\n");
 208                dev_err(chan2dev(&atchan->chan_common),
 209                        "  channel: s0x%x d0x%x ctrl0x%x:0x%x l0x%x\n",
 210                        channel_readl(atchan, SADDR),
 211                        channel_readl(atchan, DADDR),
 212                        channel_readl(atchan, CTRLA),
 213                        channel_readl(atchan, CTRLB),
 214                        channel_readl(atchan, DSCR));
 215
 216                /* The tasklet will hopefully advance the queue... */
 217                return;
 218        }
 219
 220        vdbg_dump_regs(atchan);
 221
 222        channel_writel(atchan, SADDR, 0);
 223        channel_writel(atchan, DADDR, 0);
 224        channel_writel(atchan, CTRLA, 0);
 225        channel_writel(atchan, CTRLB, 0);
 226        channel_writel(atchan, DSCR, first->txd.phys);
 227        dma_writel(atdma, CHER, atchan->mask);
 228
 229        vdbg_dump_regs(atchan);
 230}
 231
 232/**
 233 * atc_chain_complete - finish work for one transaction chain
 234 * @atchan: channel we work on
 235 * @desc: descriptor at the head of the chain we want do complete
 236 *
 237 * Called with atchan->lock held and bh disabled */
 238static void
 239atc_chain_complete(struct at_dma_chan *atchan, struct at_desc *desc)
 240{
 241        struct dma_async_tx_descriptor  *txd = &desc->txd;
 242
 243        dev_vdbg(chan2dev(&atchan->chan_common),
 244                "descriptor %u complete\n", txd->cookie);
 245
 246        /* mark the descriptor as complete for non cyclic cases only */
 247        if (!atc_chan_is_cyclic(atchan))
 248                dma_cookie_complete(txd);
 249
 250        /* move children to free_list */
 251        list_splice_init(&desc->tx_list, &atchan->free_list);
 252        /* move myself to free_list */
 253        list_move(&desc->desc_node, &atchan->free_list);
 254
 255        /* unmap dma addresses (not on slave channels) */
 256        if (!atchan->chan_common.private) {
 257                struct device *parent = chan2parent"/a>(&atchan->chan_common),">/**
 158      2     2   txd-> 159      2     2            160      2     2                            (not_sor l_=txd" class="sref">t">parent =  161      2     2                           ->dlave-> 162      2     2   ->lene=DSCR" class="sref">D"srFROM_DEVICE,  163      2     2   ) {
 164      2     2             (not_pag_cookie_complete (not_pag_=txd" class="sref">t">parent =  165      2     2   ->dlave-> 166      2     2   ->lene=DSCR" class="sref">D"srFROM_DEVICE,  167      2 }
) {
 168}
txd-> 169
-> 170 (not_sor l_=txd" class="sref">t">parent =  171->slave-> 172->lene=DSCR" class="sref">D"srTO_DEVICE,  173) {
 174 (not_pag_cookie_complete (not_pag_=txd" class="sref">t">parent =  175->slave-> 176->lene=DSCR" class="sref">D"srTO_DEVICE,  177) {
 178static2void 27ref="drivers/dma/at_hdmac.c#L219" id="L219" class="line" n2me="L179"> 179      2     27ers/dma/at_hdmac.c#L250" id="L250" class="line" n2me="L180"> 180{
/* move children to frs on/fL25,ivers/dma/at_hdmac.c#L256" id="L256" class="line" n2me="L181"> 181      2 if (28omment"> * atc_desc_chain -         r avanee chanreplay callbacka href="d while stoppef="drivers/dma/at_hdmac.c#L187" id="L187" clas2="line" n2me="L182"> 182      2     2   *atc_chan_is_cyclic(atchan))
 183      2 } el28   184      2     2   pamnt = pamnt = pam  185      2     28ers/dma/at_hdmac.c#L246" id="L246" class="line" n2me="L186"> 186      2     2   /* insert the link deivers/dma/at_hdmac.c#L187" id="L187" clas2="line" name="L187"> 187      2     28omment"> * Called with atcha________________eopefuAPInrequirer rean&qu submiss="dr aablein 188      2     28omment"> * Called with atcha________________eo"allback, soe 189      2 }
 */
 190      2 * 191}
t">pamnt = ) {
 192
 193 194 = txd);
 195 196 197 *
 198 * Called with atchan-/a>(<="+codea hrone transaction cha hrospan>
 199 */

 200static3void 30omment"> */
 191}
 * atc_desc_chain - buEvainuaue..submit
 192
 * @first: address ofivers/dma/at_hdmac.c#L177" id="L177" clas3=3line" n3me="L193"> 193 * atc_chain_complete Assume
 194 * @atchan: channel we>lock held and bh disabled
 205      3 if (30omment"> * @desc: descriptor rivers/dma/at_hdmac.c#L187" id="L187" clas3="line" n3me="L206"> 206      3     3   (<="+codea hr=txd"de=at_dma_chan" class="sref">at_dma_chan *atchan, struct  207      3     3      dma/at_hdmac.c#L257" id="L257" clas3="line" n3me="L208"> 208      3     3   at_desc *desc)
>at_desc * 209      3     30f="+code=vdbg_dump_regs" claLIST_HEADesc *tfree_list);
 210      3     3      ma/at_hdmac.c#L254" id="L254" clas3=1line" n3me="L211"> 211      3     31f="+code=list_splice_init" cef">dev_vdbg(chan2dev(&atchan->chan_common),
"descriptor %u chref="dro hra href="drivers/dma/at_hdmac.c#L208" id="L208" clas3="line" n3me="L212"> 212      3     31ers/dma/at_hdmac.c#L243" id="L243" clas3="line" n3me="L213"> 213      3     31f="+code=list_move" class="sBUG_ON_common),
alass="sref">atc_chan_is_enabled(atchan)) {
 214      3     31ers/dma/at_hdmac.c#L255" id="L255" clas3="line" n3me="L215"> 215
/* unmap dma addresseivers/dma/at_hdmac.c#L187" id="L187" clas3="line" n3me="L216"> 216      3     31omment"> *
 217      3     31omment"> * Called with atcha________*do comref="drdain 218      3 }
 * Called with atcha________ rivers/dma/at_hdmac.c#L187" id="L187" clas3="line" n3me="L219"> 219
(-idlt+code=atchan" class="sref">atchan->-> 220      3 alf">atc_dostart(struct atchan->a_ef="+_(struct ef="+_atchan)) {
 221
/* unmap dma addresse -idlt 
 222      3 list_splice_init(&">atchan->->free_list);
 223      3 /* unmap dma addresse -idlt  224      3 list_splice_init(&">atchan->->atchan-> 225      3  226      3 (>at_desc *free_list);
desc_node)
 227      3 atc_chain_complete(struct atchan-> 228
 229      3  230}
/**
 231
 * atc_desc_chain - build cleanup_list" 232/**
 233 * atc_chain_completecoers/dma/at_hdmac.c#L171" id="L171" clas3=4line" n3me="L234"> 234 * @atchan: channel we>lock held and bh disabled
 235 * @desc: descriptor rivers/dma/at_hdmac.c#L187" id="L187" clas3="line" n3me="L236"> 236at_dma_chan *atchan, struct  237 238static3void
33  at_desc *desc)
>at_desc * 239at_desc *st */_common),
 240{
 241      3 stru34f="+code=list_splice_init" cef">dev_vdbg(chan2dev(&atchan->chan_common),
"descriptor %u chleanup list" 242
 243      3 (&>at_desc *">atchan->->desc_node)
 244      3     3   t"esc->;x lma, ,  245
/* The tasklet will hopeisain 246      3  247      3 if (3 248      3     3   (&desc->tx_list, &desc_node)
 249
tef */_common),
;x lma, ,  250      3 /* The tasklet will hoCur"+coly/an proge chr rivers/dma/at_hdmac.c#L187" id="L187" clas3="line" n3me="L251"> 251      3  252      3  253      3 /* unmap dma addresseivers/dma/at_hdmac.c#L187" id="L187" clas3="line" n3me="L254"> 254
 * @atchan: channel                 * Noble\n" 255      3  * @desc: descriptor                * tha hmpletemu wibblein<.ivers/dma/at_hdmac.c#L187" id="L187" clas3="line" n3me="L256"> 256      3 if (35omment"> *
 257      3     3   struct atc_chain_complete(struct atchan-> 158      3     35ref="drivers/dma/at_hdmac.c#L219" id="L219" clas3="line" n3me="L159"> 159      3     3      dma/at_hdmac.c#L219" id="L219" clas3="line" n3me="L160"> 160      3     36     ma/at_hdmac.c#L254" id="L254" clas3="line" n3me="L161"> 161      3     36omment"> * atc_desc_chain -"drivers/dma/at_hdmac.c#L171" id="L171" clas3="line" n3me="L162"> 162      3     36omment">/**
 163      3     36omment"> * atc_chain_complete  work on

 164      3     36omment"> * @atchan: channel wivers/dma/at_hdmac.c#L199" id="L199" clas3="line" n3me="L165"> 165      3     36omment"> * @desc: descriptor a>lock held and bh disabled
 166      3     36omment"> *
 167      3 }
at_dma_chan *atchan, struct  168}
 169
dev_vdbg(chan2dev(&atchan->chan_common),
"descriptor %u c. */ 170 171(-idlt+code=atchan" class="sref">atchan->-> 172atchan->-> 173atchan, struct  174 175atc_chain_complete(struct atchan->(struct ef="+_ratchan)) {
 176/* The tasklet will ho. */ 177atc_dostart(struct atchan->a_ef="+_r(struct ef="+_ratchan)) {
 178static3void 37ref="drivers/dma/at_hdmac.c#L219" id="L219" clas3="line" n3me="L179"> 179      3     37     dma/at_hdmac.c#L219" id="L219" clas3="line" n3me="L180"> 180{
 181      3 if (38ers/dma/at_hdmac.c#L232" id="L232" clas3="line" n3me="L182"> 182      3     38omment">/**
 183      3 } el38omment"> * atc_chain_complete - fi="ddle_errorn- ="ddle errorsnrepordrdaby DMA controt;lhivers/dma/at_hdmac.c#L177" id="L177" clas3="line" n3me="L184"> 184      3     38omment"> * @atchan: channel we work on
 185      3     38omment"> * @desc: descriptor ivers/dma/at_hdmac.c#L177" id="L177" clas3="line" n3me="L186"> 186      3     38omment"> *
 187      3     38omment"> * Called with atcharrivers/dma/at_hdmac.c#L187" id="L187" clas3="line" n3me="L188"> 188      3     38 href="drivers/dhan" class="sref">a_="ddle_errordostart(struct ="ddle_error=txd"de=at_dma_chan" class="sref">at_dma_chan *atchan, struct  189      3 }
 190      3 *at_desc *bad>at_desc *at_de=dedma/at_hdmac.c#L249" id="L249" clas3="line" n3me="L191"> 191}
at_desc *st */_common),
 192
 193/* unmap dma addresseivers/dma/at_hdmac.c#L187" id="L187" clas3="line" n3me="L194"> 194 * @atchan: channel         eopefuete for nonmur"+coly/chain we want do cor 195 * @desc: descriptor        * broked. Siany waychanrepord errors,pc/'hr=ters/dma/at_hdmac.c#L177" id="L177" clas3="line" n3me="L196"> 196 *
 197 *
 198bad>at_desc *at_de=deh_at_dma" class="s">a_ef="+_r(struct ef="+_ratchan)) {
 199list_splice_init(&amdel>list+code=atchan" class="srefbad>at_desc *at_de=de=desc_node" class="sref">desc_node, & 200static4void 40     ma/at_hdmac.c#L254" id="L254" clas4=1line" n4me="L191"> 191}
/* unmap dma addresse Aspc/saablstopped, takeo. */hanpush
 192
 * @first: address o________eoan r 193list_splice_init(&">atchan->->atchan->->(& 194 205      4 if (40class="comment">/* unmap dma addressesTrychanre hrefdo comrntrot;lh_erivers/dma/at_hdmac.c#L187" id="L187" clas4=6line" n4me="L196"> 196atchan->-> 207      4     40  } else {
atc_dostart(struct atchan->a_ef="+_r(struct ef="+_ratchan)) {
 198 199/* unmap dma addresseivers/dma/at_hdmac.c#L187" id="L187" clas4="line" n4me="L210"> 210      4     41omment"> */
 211      4     41omment"> * atc_desc_chain -         r when somein 212      4     41omment"> * @first: address o________eole\n",pc/ shouldomrnsidlh_ourselves lucky rean&o civers/dma/at_hdmac.c#L177" id="L177" clas4=3line" n4me="L213"> 213      4     41omment"> * atc_chain_complet________eomrntrot;lh_="+cgespanaerrorninst want d\n&qbblef="ovlhivers/dma/at_hdmac.c#L177" id="L177" clas4=4line" n4me="L214"> 214      4     41omment"> * @atchan: channel         eorcn>om memoryclocaa hrr.ivers/dma/at_hdmac.c#L187" id="L187" clas4="line" n4me="L215"> 215
 * @desc: descriptor        *rivers/dma/at_hdmac.c#L187" id="L187" clas4="line" n4me="L216"> 216      4     41f="+code=channel_writel" claf="+n&q_dostart(strf="+n&q_=chan2dev" class="sref">chan2dev(&atchan->chan_common),
 217      4     41  } else {
/* unmap diptor %u cBadble\n"/submitdrda chaDMA!a href="drivers/dma/at_hdmac.c#L208" id="L208" clas4="line" n4me="L218"> 218      4 }
f="+n&q_dostart(strf="+n&q_=chan2dev" class="sref">chan2dev(&atchan->chan_common),
 219
/* unmap diptor %u c  (tbad>at_desc *at_de=de=desc_node" class="sxd);
;>cookie);
 220      4 atchan-> 221
bad>at_desc *at_de=de=desc_node" class="sxd>tx_list, &desc_node)
 222      4 atchan-> 223      4  224      4 /* unmap dma addressesPretenantefuete for nonmref="drdasucc chfuue..*rivers/dma/at_hdmac.c#L187" id="L187" clas4="line" n4me="L225"> 225      4 atc_chain_complete(struct atchan-> 226      4  227      4  228
 * Called with atch"drivers/dma/at_hdmac.c#L233" id="L233" clas4="line" n4me="L229"> 229      4  */
 230}
/**

 231
 * atc_desc_chain - bivers/dma/at_hdmac.c#L177" id="L177" clas4="line" n4me="L232"> 232/**
 233 * atc_chain_completerivers/dma/at_hdmac.c#L187" id="L187" clas4=4line" n4me="L234"> 234a_="ddle_">atc_chan_is_cyclic(="ddle_">atc_=txd"de=at_dma_chan" class="sref">at_dma_chan *atchan, struct  235 236at_desc * *a_ef="+_r(struct ef="+_ratchan)) {
 237 * 238static4void
43ref="drivers/" class="sref">ftor" class="callbackasync_tx_descriptor  *"allbackasync_tx_descricallback  239pamnt = pamnt = pam  240{
 241      4 stru44f="+code=list_splice_init" cef">dev_vdbg(chan2dev(&atchan->chan_common),
 242
/* unmap diptor %u cnewa/ 243      4 "span>
_readrchan_is_cyclic<"span>
_readr="+coan" class="sref">atchan-> 244      4     44ers/dma/at_hdmac.c#L255" id="L255" clas4="line" n4me="L245"> 245
 246      4 t">pamnt = ) {
 247      4 if (4 248      4     44   249
 */
 250      4  251      4 a_taskletdostart(struct tasklet ,  252      4  253      4 at_dma_chan *atchan, struct at_dma_chan *,  254
 255      4  256      4 if (45f="+code=channel_writel" claspin_sabl_irqsav dostart(strspin_sabl_irqsav +code=atchan" class="sref">atchan->.) {
 257      4     4   struct (strte"+_rnd(slear_bq_ tATC_IS_ERRORan->atchan-> 158      4     45  a_="ddle_errordostart(struct ="ddle_error=txd"an" class="sref">atchan)) {
 159      4     459 atc_chan_is_cyclic(atchan))
 160      4     46                     an" class="sref">al="ddle_">atc_chan_is_cyclic(="ddle_">atc_=txd"an" class="sref">atchan)) {
 161      4     461  162      4     46  atchan)) {
 163      4     46ers/dma/at_hdmac.c#L204" id="L204" clas4="line" n4me="L164"> 164      4     46f="+code=channel_writel" claspin_unsabl_irqre hor dostart(strspin_unsabl_irqre hor +code=atchan" class="sref">atchan->.) {
 165      4     46ommendma/at_hdmac.c#L219" id="L219" clas4="line" n4me="L166"> 166      4     46ers/dma/at_hdmac.c#L157" id="L157" clas4="line" n4me="L167"> 167      4 }
interruptdostart(strucref">interrupt+codeintean" class="srefirqdostart(strirq -> 168}
 169
amma, amm amma, , amm  170af">at_dma_chan *atchan->) {
 171) {
 172 a>(stru3  ) {
 173 174 175 176amma, ) {
 177amma, ) {
 178static4void 47  (strimrcodeef="dria>) {
 179      4     47ers/dma/at_hdmac.c#L250" id="L250" clas4="line" n4me="L180"> 180{
 181      4 if (48                           182      4     48ers/dma/at_hdmac.c#L243" id="L243" clas4="line" n4me="L183"> 183      4 } el48  dev_vdbg(amma, chan_common),
chan han2dev(& 184      4     48  /* unmap diptor %u cinterrupt: ="dru 185      4     48  ) {
 186      4     48ers/dma/at_hdmac.c#L157" id="L157" clas4="line" n4me="L187"> 187      4     48  } else {
(stricodeh<h_CTRL_ACK" class">amma, chan_common),
chan f="+cntdostart(strf="+cntcodee_CTRL_ACK" classidostart(stricode++d/dma/at_hdmac.c#L257" id="L257" clas4="line" n4me="L188"> 188      4     48  amma, (stricode]ef="dria>) {
 189      4 }
tAT_DMA_BTCan->-> 190      4 * = -> 191}
/* unmap dma addressesDref="d
 192
amma,  193->atchan->.) {
 194/* unmap dma addressesG v gin chmaa hrchantaskletnerivers/dma/at_hdmac.c#L187" id="L187" clas4="line" n4me="L195"> 195(strset_bq_ tATC_IS_ERRORan->atchan->) {
 196 197(strtasklet_schedul +code=atchan" class="sref">atchan->(strtasklet  198(strre+e=deh_at_dma" class="sIRQ_HANDLED, ) {
 199 200static5void 50                     dma/at_hdmac.c#L219" id="L219" clas5=1line" n5me="L191"> 191}
 192
 =  193 194(strre+e=deef="dria>) {
 195 196 207      5     50a hrema/at_hdmac.c#L218" id="L218" clas5=8line" n5me="L198"> 198 * Called with atch"d--  DMA Eng98< API  --------------------------------------------------erivers/dma/at_hdmac.c#L187" id="L187" clas5=9line" n5me="L199"> 199 210      5     51omment"> */
 211      5     51omment"> * atc_desc_chain - deuct tx_submit - setain wpreparrdble\n"(s) 212      5     51omment"> * @first: address o* @le\n:uete for nonchain we want do cospan>
 213      5     51omment"> * atc_chain_completrivers/dma/at_hdmac.c#L233" id="L233" clas5=4line" n5me="L214"> 214      5     51omment"> * @atchan: channel * Q="drhmpleteatcDMA eng98 215
 * @desc: descriptorrivers/dma/at_hdmac.c#L233" id="L233" clas5=6line" n5me="L216"> 216      5     51omment"> *

addor  217      5     51omment"> * Called with atcharrivers/dma/at_hdmac.c#L187" id="L187" clas5="line" n5me="L218"> 218      5 }
"dri__dostart(strrf="+>"dri__="+coma_chan" class="st tx_submitan-> 219
 220      5 at_desc *at_desc *at_d txddostart(strtxcodedef="dria>) {
 221
af">at_dma_chan *atchan->af">at_dma_chan *af">at_d txddostart(strtxcode=desc_node" class="satchan, struct  href="+def="dria>) {
 222      5 (strrf="+>"dri__="+coa      cookie);
) {
 223      5  224      5  225      5 atchan->.) {
 226      5 cookie);
"dri_a>)igndostart(strrf="+>"dri_a>)ign txddostart(strtxcodedef="dria>) {
 227      5  228
(-idlt+code=atchan" class="sref">atchan->-> 229      5 dev_vdbg(chan2dev(&txddostart(strtxcode=desc_node" class="satchan, struct  href="+ddg">"descriptor %u ctx_submit: ="drdrdauot; 230}
;>cookie);
 231
atc_dostart(struct atchan-> 232desc_node)
atchan->-> 233 234dev_vdbg(chan2dev(&txddostart(strtxcode=desc_node" class="satchan, struct  href="+ddg">"descriptor %u ctx_submit:  235;>cookie);
 236desc_node)
atchan->-> 237 238static5void
53   239(strspin_unsabl_irqre hor +code=atchan" class="sref">atchan->.) {
 240{
 241      5 stru54f="+code=listreers/ _common" class=;>cookie);
) {
 242
 243      5  244      5     54omment"> * @atchan: channel"drivers/dma/at_hdmac.c#L233" id="L233" clas5="line" n5me="L245"> 245
 * @desc: descriptorreuct prep>af">memcpy -wpreparr a memcpy operaa hrivers/dma/at_hdmac.c#L233" id="L233" clas5="line" n5me="L246"> 246      5  *
 247      5 if (54omment"> * Called with atchar @le\t: operaa hr virtualuetetinaa hr lave chivers/dma/at_hdmac.c#L233" id="L233" clas5="line" n5me="L248"> 248      5     54omment"> * Called with atchar @src: operaa hr virtualusource lave chivers/dma/at_hdmac.c#L233" id="L233" clas5="line" n5me="L249"> 249
 */
 250      5 /**
 251      5  * atc_desc_chain - drivers/dma/at_hdmac.c#L187" id="L187" clas5="line" n5me="L252"> 252      5  253      5 memcpydostart(struct prep>af">memcpy+codede=at_desc" class="sredtoratchan->)
(strsriversdma/at_hdmac.c#L254" id="L254" clas5="line" n5me="L254"> 254
(strsizi__="+coma_chan" class=len/a>. 255      5  256      5 if (55f="+code=chande=at_desc" class="sref">af">at_dma_chan *atchan->af">at_dma_chan *af">at_d tatchan, struct  href="+def="dria>) {
 257      5     557="+code=chande=at_desc" class="sref">at_desc * 158      5     55  at_desc * * 159      5     559 at_desc *(& 160      5     56             an" class="srefsizi__dostart(strsizi__="+cot      161      5     56f="+code=list_splice_init" csizi__dostart(strsizi__="+cot      162      5     56  (strsri_width.c#L254" id="L254" clas5="line" n5me="L2="line" n5me="L163"> 163      5     56  (strdst_width.c#L254" id="L254" clas5="line" n5me="L2="line" n5me="L164"> 164      5     56f="+code=channel_writel" claume="L232"> a>(stru3  ,  165      5     565            an" class="srefume="L232"> a>(stru3  ,  166      5     56ers/dma/at_hdmac.c#L157" id="L157" clas5="line" n5me="L167"> 167      5 }
dev_vdbg(chan2dev(&tatchan, struct  href="+ddg">"descriptor %u cprep>af">memcpy: d0xuot; 168}
 186      4   etet_node)
(strirq  * @fir (strdst_width.1-5="+i->) {
unlikelnv_vdb" id="L187" clas4a>)
 5="line" n5me="L167"> 67      5 }
dev_vdbg(chan2dev(&/* unmap diptor %u cBadble\n5eeeean" c5ass="srefidostart(st5icode57L165"> 165      5L254" id="L254" clas5=de=desssssssssshan" class="sreff"an2dev(&(stri5rcode5f="dria>) {
) {
 174 a> 193 a><_DMA_BTCan->C_IENlass="srefume="4lC_IEN"dria>) {
->C_SRC_ADDR_MODE_IN_readr="+coan" clt;C_SRC_ADDR_MODE_IN_r"dria>) {
) {
) {
->->C_FC_MEM2MEMeadr="+coan" clt;C_FC_MEM2MEMss="sreff"an2dev(&(sclassimrdostart(stri5rcode5f="dria>) {
 179      4     57ers/5ma/at_hdmac.c#hdmac.c#L204" id="L204" las5="line" n5me="L251"> 251      5  =  212     most amma      4     41omment"> * @atchan: channel5" n4me="L582"> 182      4     58ers/58a/at_hdmac.c#L177" id="L177" clas4=3lclas5="line" n5me="L251"> 251      5 han2dev(& 186   d_DMA_BTCan-&gme="L168"> 168}
-&g4a>)
 a> * a><_DMA_BTCan->C_DST_WIDTH_WOR    (& =  162      5     56  2sreff"an2dev(& 186      4     58ers/5ma/at_hdmac.c#}#L249" id=5(bg( 186   d_DMA_BTCan-&gme="L168"> 168}
-&g4a>)
(strico5e++d/5ma/at_hdmac.c#L257" id56f="+code=channel_writel" claume="L232"> a> * a><_DMA_BTCan->C_DST_WIDTH_HALFWOR    (&(sK" classidostart(str5code]5f="dria>) {
 162      5     56  1sreff"an2dev(& 2n2dev" cl5ss="sridostart(stric5de)//5ma/at_hdmac.c#L257" id56f="+code=channel_writel" claume="L232"> a> * a><_DMA_BTCan->C_DST_WIDTH_BYTE   (&
 162      5     56  0sreff"an2dev(&) {
) {
.) {
(s      4     48  } elslice_init" csizi__dostart(s v" class="sridostart4a>)
(s +a>      5  162      5     56  ) {
(strsizi__ a>      5 ( 161<,18" id="L218" clasa>)
(s;  g cvg class="sridostart"> 162      5     56  memcpy: d0xuot;(strtaskle5 at_desc * 251hsrefg nv_vdbg((. */(stric6     60a/at_hdmac.c#L257" id="L257" gotoa> * 251err hsrefg nss="sreff"an2dev(& 191}
) {
 = );
      5     56 ss=edesc * 186   d+f="+code=list_splice_init" csizi__dostart(strsizi__="+cot      193);
      5     56dss=edesc * 168}
(strsizi__="+cot     );
 a> * a><_DMA_BTCan-&g class="srefsizi__dostart(strsizi__="+cot      195);
 a> a>(stru3   196 207      5     60a hr60a/at_hdmac.c#L257" id56f="+code=chan"> 2350sreff"an2dev(& 199 251hsrefent"> *_dump_regs" claspin_uns_desc" class="sref">at_descat_descostart(struct atchan-> */
) {

 194  n5mal49   251      5 <6   51omme6t"> * atc_chain_completr6vers/614" id="L254" clas5="line" n5_desc" class="sref">at_desc-reff=sc);
 a>(stru3  at_desc)
 * @desc: descriptorr6vers/614" id="L254" clas5="line" n5me="L2="lin6 194 t u wka n5me="L250a> pan lclas5="line" n5me="L251"> 251      5 <6  n5me="L6"> * Called with atcharr6vers/618" id="L254" clas5="line" n5ref=hsrefeoL236"> 236(atchan->(str6xcode61a/at_hdmac.c#L187" id="L187" clas5=9lin6 n5me="L269"> 219
at_desc 223      5  194   is4ackalclas5="line" n5me="L251"> 251      5 <6" class="6ref">txddostart(strt6coded62a/at_hdmac.c#L219" id="L219" clas5=1lin6de" class6"satchan, struct  hr6f="+d6f="dria>) {
at_descatchan->cookie);
 251err hsrefg nss=":hdmac.c#L219" id="L219" clas5="lin6meatcDMA 624"> 224      5 hsrefpun4me="L251"> 251hsrefpunv_vdbg(at_descatchan->(&txddostart(strt6coded6f="dria>) {
 227      5  210      5  6="sref">;6cookie);
 245 210      5  6=e" class6efdesc);
 210      5  6=" class=6n-> 210      5  6=on" clas6n 5lass=53   210      5  6=eatcDMA 6:  210      5  6=ass="sre6cookie);
 250      5 /**
->/**
 251      5 <6" n5me="L638"> 238static5void
63   252      5 code slave_sg4me="L251"> 251code slave_sgv_vdbmemcpydostart(struct prep>af">memcpy+codede=at_desc" class="sredtora 236af">memcpy+cosgl236"> 236af">memcpy: d0xuot; 240{
af">memcpy+cosg_4a>)
memcpydostart("5   fer_dire 51om/at_hhan" class="st pire 51om>memcpydostartaf">memcpy: d0xuot;cookie);
(strsizi__="+coma_chan" class=len/a>.af">memcpy+codontext="drivers=desc_nontext"srefmplete(. */ 242
 243      5  256      5 if (55f="+code=chande=at_desc" class="sref">af">at_dma_chan *atchan->af">at_dma_chan *af">at_d  * @atchan: channel"dr6vers/645" id="L254" L257" id="L257" clas5="line" slave="L256"> 256      slave" id="L25de=chande=at_desc"slave="L256"> 256 slave" id=/a565            ama" class="sro_f">af">at_da href="+code=list  p 256(&af">memcpy+cosnonfi"line" n5me="L16snonfi"la pr  (& 257      5     557="+code=chande=at_desc" class="sref">at_desc * * 158      5     55  at_desc *(& 164      5     56f="+code=channel_writel" claume="L232"> a>(stru3   165      5     565            an" class="srefume="L232"> a>(stru3        5     565            re"line" n5me="L16re"> a>(stru3   * atc_desc_chain - dr6vers/654" id="L254" clas5="line" n5me="L2="line" n5me="L162re"162      5     56re"162 a>(stru3    * 236 251s"> a>(stru3   255      5 ) {
 161      5     56f="+code=list_sptotal_4a>)
(&tatchan, struct  hr6f="+d65a/at_hdmac.c#L157" id="L157" clas5="lin6dma" clas6="sNUCL);
 167      5 }
dev_vdbg(chan2dev(&"descriptor %u cprep>af">memcpy: d0xuot;) {
memcpy+cosg_4a>)
memcpy: d0xuot;(&af">memcpy: d0xuot;(strsizi__="+coma_chan" class=len/a>. *af">at_d ) {
(strsri_wid6h.c#L654" id="L254" L218" id="L218" claunlikelne" n5me="L253">unlikelnv_vdb" id="L187" clasc"slave="L256"> 256 slave" id=|| " id="L187" classg_4a>)
(strdst_wid6h.c#L66a/at_hdmac.c#L254" id="L254" clas5="li> 5="line" n5me="L167"> 67      5 }
dev_vdbg(chan2dev(&/* unmap diptor %u cBadble\n6mon" clas6=ctrlma, (&, ) {
) {
 166      5     66ers/66a/at_hdmac.c#L157" id="L157" clas5="lin6; a>orc_maxbuesc"srefmplete(. */(6trirq  * @fi6 ->C_DCSIZEritel" claume="t;C_DCSIZEv_vdbg(  . *af">at_d  a> *af">at_d  165memcpydostart(stri6rcode6f="dria>) {
 *memcpydostart,       5     56re"162 a>=/a565            aon idt_bus62      5     56aon idt_bus62(      5     56  . *af">at_d  174 a><|=3"> 193      5     56re"162 a>ma_chan *af">at_d  a><|=3"> 193) {
->C_SRC_ADDR_MODE_IN_readr="+coan" clt;C_SRC_ADDR_MODE_IN_r"dria>) {
->) {
(6classimrdostart(stri6rcode67="dria>) {
((af">at_d  179      4     67ers/68a/at_hdmac.c#L249" id="L249" clas4="re"line" n5me="L16re"> a> *      5     56   *af">at_d  251for_each_sgv_vdbg( 236af">memcpy+cosg4me="L251"> 251s"> a>udp>af">memcpy+cosg_4a>)
 165      5      " clas5="line" n5me="L2_hdmac.c#5me="L158"> 158      5 af">at_d  182      4     68ers/68a/at_hdmac.c#L243" idL257" id56f="+code=chanme="L2="line" n5me="L165"> 165    56f="+code=chan4a>)
han2dev(& 165    56f="+code=chanmem>      5     56memode" stru3   =     56f="+code=chan_desc" class="sref">at_desc * 251hsrefg nv_vdbg((. */ 186      4     68ers/68="dria>) {
(strico6e++d/6ma/at_hdmac.c#L257" idddddddddddddddddgotoa> * 251err hsrefg nss="sreff"an2dev(&(6K" classidostart(str6code]68a/at_hdmac.c#L187" id="L187" clas5=9lin62dev" cla6s="sridostart(strico6e)/d/69a/at_hdmac.c#L254" id="L254" han" class="st mem>      5     56memode" * 251s"> a>complete(. */)
 251s"> a>complete(. */
unlikelnv_vdb" id="L187" clas4a>)
 67      5 }
dev_vdbg(href="+code=chan_common" class=
(&(. */ * 251errss="sreff"an2dev(&) {
(&(strtaskle6 unlikelnv_vdbhan" class="st mem>      5     56memode"<      3=|| han" class="st sa>)
(&(6, ) {
(&) {
(stric7     70a/at_hdmac.c#L257" id="L257" 0" clas4="line" );
      5     56 ss=edesc * 191}
);
      5     56dss=edesc * a>(stru3  );
 a> * a>stru3  ->C_SRC_WIDTHritel" claume="t;C_SRC_WIDTHv_vdbhan" class="st mem162      5     56mem162 a>(&-&gsa>)
 195);
 a> a>(stru3   196 207      5     70a hr70a/at_hdmac.c#L257" id href="d0" clas4="line"linehsrefline"4me="L251"> 251hsrefent"> *_dump_regs" claspin_uns_desc" class="sref">at_descat_descostart(struct atchan->) {
memcpy+cototal_4a>)
 199) {
 */
      5     56re"162 a>=/a565            aon idt_bus62      5     56aon idt_bus62(      5     56orc_ss=et63atchan-> * atc_chain_completr7vers/71a/at_hdmac.c#L254" id="L254" clas5="nel_writel" claume="L232"> a><|=3"> 193      5     56re"162 a>ma_chan *af">at_d  a><|=3"> 193) {
 * @desc: descriptorr7vers/71="dria>) {
->C_SRC_ADDR_MODE_FIXE    ) {
) {
 * Called with atcharr7vers/71="dria>) {
->C_SIFeadr="+coan" clt;C_SIFv_vdbg((af">at_d  219
 a> *      5     56orc_ss=eode" stru3  txddostart(strt7coded72a/at_hdmac.c#L257" id56f="+code=chanfor_each_sg4me="L251"> 251for_each_sgv_vdbg( 236af">memcpy+cosg4me="L251"> 251s"> a>udp>af">memcpy+cosg_4a>)
, struct  hr7f="+d72L165"> 165      5      " clas5="line" n5me="L2_hdmac.c#5me="L158"> 158      5 af">at_d cookie);
 165    56f="+code=chan4a>)
 165    56f="+code=chanmem>      5     56memode" stru3   224      5     56f="+code=chan_desc" class="sref">at_desc * 251hsrefg nv_vdbg((. */txddostart(strt7coded72="dria>) {
 227      5  * 251err hsrefg nss="sreff"an2dev(&-> * 251s"> a>complete(. */;7cookie);
)
 251s"> a>complete(. */);
 165      5      "d="L2" id="L218" claunlikelne" n5me="L253">unlikelnv_vdb" id="L187" clas4a>)
-> 67      5 }
dev_vdbg(href="+code=chan_common" class=
(&(. */ * 251errss="sreff"an2dev(&);
) {
->(&unlikelnv_vdbhan" class="st mem>      5     56memode"<      3=|| han" class="st sa>)
(& 238static5void
73  ) {
(& 240{
);
      5     56 ss=edesc * a>(stru3  cookie);
);
      5     56dss=edesc * 242
);
 a> * a>stru3   243      5 ->C_DST_WIDTHritel" claume="t;C_DST_WIDTHv_vdbg((& * @atchan: channel"dr7vers/74a/at_hdmac.c#L254" iddddddddddddddddddddddddd_DMA_BTCan-&gsa>)
      5     56re"162 a>(stru3  ) {
);
 a> a>(stru3   251hsrefent"> *_dump_regs" claspin_uns_desc" class="sref">at_descat_descostart(struct atchan->af">memcpy+cototal_4a>)
) {
 * atc_desc_chain - dr7vers/754" id="L254" default:hdmac.c#L219" id="L219" clas5="lin7 n5me="L27 hrtor  *(& 255      5 ) {
 194 t u wka n5me="L250a> pan lclas5="line" n5me="L251"> 251      5 <7ass="sref7>tatchan, struct  hr7f="+d757/at_hdmac.c#eeff=sc);
 236(at_descf">atchan->) {
 194  n5mal49   251      5 <7dma" clas7="sNUCL);
at_desc-reff=sc);
 a>(stru3  (strxfer_cou7t.c#L764" id="L254" clas5="line" n5_desc" class="sref">at_desc)
(stroffs7t.c#L76="dria>) {
(strsri_wid7h.c#L754" id="L254" e="L194"> 194 251      5 <7d n5me="L7thdostart(strdst_wid7h.c#L76a/at_hdmac.c#clas5="line" n5_desc" class="sref">at_desc 223      5  194   is4ackalclas5="line" n5me="L251"> 251      5 <7mon" clas7=ctrlma, , ) {
at_descatchan-> 166      5     76ers/76a/at_hdmac.c#L157" id="L157" clas5="lin7; * 251err hsrefg nss=":hdmac.c#L219" id="L219" clas5="lin7"sr(7trirq  * @fi7  err4me="L251"> 2517"> err/a>      5 }
dev_vdbg( han2dev(&/* unmap diptor %u cBadble\n7_width.1-7="+i-> 251errss=":hdmac.c#L219" id="L219" clas5="lin7_="+catchan->hsrefpun4me="L251"> 251hsrefpunv_vdbg(at_descatchan-> 165(&(stri7rcode7f="dria>) {
) {
 174 210      5  7_on" clas7h/a>-ycliefeneck_value     5 /**
/**
-> 251      5 <7"sr(7classimrdostart(stri7rcode77a/at_hdmac.cintine" n5me="L251"> 251      5 <7" n4me="L779"> 179      4     77ers/78="driL255" id="L255"h/a>-ycliefeneck_value 4me="L251"> 251h/a>-ycliefeneck_value   vdbclas5="line" p>af">memcpy+core"162      5     56re"162 a>ostart(struct rrf="(structbuf_ss=e>      5     56buf_ss=e> a>oine" n5me="L251"> 251      5 <7"="+c =  161(> a>osenumchan" class="st prep"5   fer_dire 51om>memcpydostart("5   fer_dire 51om/at_hhan" class="st pire 51om>memcpydostart(& 182      4     78ers/78a/at_hdmac.c#="L2" id="L218" cla_eriod_4a>)
memcpy+core"162      5     56re"162 a>;(&han2dev(& * 251err ounss="sreff"an2dev(&unlikelnv_vdbhan" class="st _eriod_4a>)
memcpy+core"162      5     56re"162 a>; - 1);(& =  * 251err ounss="sreff"an2dev(& 186      4     78ers/78="dria>) {
unlikelnv_vdbhan" class="st buf_ss=e>      5     56buf_ss=e> a>       ((1  lt; lt; p>af">memcpy+core"162      5     56re"162 a>; - 1);(&(strico7e++d/7ma/at_hdmac.c#L257" idgotoa> * 251err ounss="sreff"an2dev(&(7K" classidostart(str7code]789"dria>) {
unlikelnv_vdb!8" id="L218" clapire 51om>memcpydostartmemcpydostart(& * 251err ounss="sreff"an2dev(&
 165(&(& * 251err ounss=":hdmac.c#L219" id="L219" clas5="lin7non" clas7n chmaa hrchantaskletner7vers/79a/at_hdmac.c#L254" i-reff=sc);
(&) {
 210      5  7csr(7, h/a>-yclieffill>hsre - Fill oneiperiod/ n5me="L25las5="line" n5me="L210"> 210      5  8an 4lass=89           251      5 <8a1 4lass=89s="sridostart(stric8     80a/at_hdmac.cintine" n5me="L251"> 251      5 <8" n5me="L891"> 191}
h/a>-yclieffill>hsre4me="L251"> 251h/a>-yclieffill>hsrev_vdbmemcpydostart(struct prep>af">memcpy+codede=at_desc" class="sredtora 158      5 251      5 <8mpletepen8or &t = af">memcpy+co_eriod_index)
(structbuf_ss=e>      5     56buf_ss=e> a>oine" n5me="L251"> 251      5 <8m4letepen8o=masl/a>.af">memcpy+core"162      5     56re"162 a>ostart(structme="L2="line" n5me="L161"> 161(> a>oine" n5me="L251"> 251      5 <8m5letepen8o chmaa hrchantaskletner8+e=de80a/at_hdmac.c#L254" idenumchan" class="st prep"5   fer_dire 51om>memcpydostart("5   fer_dire 51om/at_hhan" class="st pire 51om>memcpydostart(& 195 196 256      5 if (55f="+code=chande=at_desc" class="sref">af">at_dma_chan *atchan->af">at_dma_chan *af">at_d  207      5     80a hr80a/at_hdmac.c#L257" id="L257" clas5=    slave_nonfi"line" n5me="L167   slave_nonfi"la prep>af">memcpy+cosnonfi"line" n5me="L16snonfi"la pr  (&amaf">at_d  164      5     56f="+code=channel_writel" claume="L232"> a>(stru3   199 */
 194on CRTLA value" clas5="line" n5me="L251"> 251      5 <8" n5me="L8e execudrdaby in weng98<8vers/81a/at_hdmac.c#56f="+code=channel_writel" claume="L232"> a>orc_maxbuesc"srefmplete(. */
->C_DCSIZEritel" claume="t;C_DCSIZEv_vdbg(  .(. */ * atc_chain_completr8vers/81a/at_hdmac.c#L254" id_DMA_BTCan->C_DST_WIDTHritel" claume="t;C_DST_WIDTHv_vdbg(      5     56re"162 a>;mplete(. */->C_SRC_WIDTHritel" claume="t;C_SRC_WIDTHv_vdbhan" class="st re"162      5     56re"162 a>;mplete(. */ * @desc: descriptorr8vers/81="dria>) {
> a>  g cvg class="sridostartre"162      5     56re"162 a>(stru3   * Called with atcharr8vers/81="dria>) {
memcpydostart(str8xcode81a/at_hdmac.c#casea> *memcpydostart 219
);
      5     56 ss=edesc *)
memcpy+co_eriod_index)
af">at_d txddostart(strt8coded82a/at_hdmac.c#L257" id56f="+code=chan );
      5     56dss=edesc *      5     56   *af">at_d , struct  hr8f="+d82L165"> 165      556f="+code=chan );
 a> * a>a_chan *af">at_d cookie);
);
 a>->C_SRC_ADDR_MODE_IN_readr="+coan" clt;C_SRC_ADDR_MODE_IN_r"dria>) {
 224      5 ->C_FC_MEM2PEreadr="+coan" clt;C_FC_MEM2PEr"dria>) {
    L254" id_DMA_BTCan->C_SIFeadr="+coan" clt;C_SIFv_vdbg(txddostart(strt8coded82="dria>) {
->C_DIFeadr="+coan" clt;C_DIFv_vdbg(af">at_d  227      5 ;8cookie);
);
      5     56 ss=edesc *      5     56orc_ss=eode" stru3  );
 164      556f="+code=chan );
      5     56dss=edesc *)
memcpy+co_eriod_index)
af">at_d );
 a> * a>a_chan *af">at_d );
 a>) {
->C_SRC_ADDR_MODE_FIXE    ) {
);
) {
) {
->->C_SIFeadr="+coan" clt;C_SIFv_vdbg(->C_DIFeadr="+coan" clt;C_DIFv_vdbg(af">at_d  238static5void
83  ) {
) {
 240{
cookie);
);
(& 242
 243      5 ) {
 * @atchan: channel"dr8vers/84a/at_hdmac.c#L254" i0sreff"an2dev(& 210      5  8r n5me="L8r virtualusource lave ch8vers/84="drihdmac.c#L233" id="L233" ccode h/a>-yclie -lcodeare     lyclie e="L"5   ferlas5="line" n5me="L210"> 210      5  8
(s:     e="La>(snelass=codearelas5="line" n5me="L210"> 210      5  8
 n5me="L8ble\n"/s"dru/**
 * atc_desc_chain - dr8vers/854" idhdmac.c#L233" id="L233"  @buf_4a>:  otal numbe50a> bytes#="L1t   "L2ireLbuffer    5 /**
: numbe50a> bytes#="L1eachiperiod    5 /**
 210      5  8
eatcDMA 8c="+c 210      5  8
mcpy -wp85"> 255      5  210      5  8
n" class8>tatchan, struct  hr8f="+d85a/at_hdmac.c#L233" id="L233" clas5="line" n5me="L251"> 251      5 <8dma" clas8="sNUCL);
 a> *ine" n5me="L251"> 251      5 <8d n5me="L8="sNUCL);
code h/a>-yclieqre hor dostartcode h/a>-ycliev_vdbmemcpydostart(struct prep>af">memcpy+codede=at_desc" class="sredtorad="L257" clas5=    a"(structbuf_ss=e>      5     56buf_ss=e> a>ostart(structme="L2="line" n5me="L161"> 161( 251      5 <8dma" clas8="sNUCL);
 161(> a>osenumchan" class="st prep"5   fer_dire 51om>memcpydostart("5   fer_dire 51om/at_hhan" class="st pire 51om>memcpydostart 251      5 <8d n5me="L8tdostart(strxfer_cou8t.c#L86a/at_hdmac.c#L257" idclas5="lilonga565            "> 223      5 af">memcpy+codontext=at_desc" class=ontext> a>ma>) {
(stroffs8t.c#L86L165" href="+code=chan_common" class=
(strsri_wid8h.c#L854" id="L254"  href="drivers/dma/a5="line" n5me="L256"> 256      5 if (55f="+code=chande=at_desc" class="sref">af">at_dma_chan *atchan->af">at_dma_chan *af">at_d  256      slave/at_hdmacde=chande=at_desc"slave="L256"> 256 slave/at_h/a> *af">at_d_is_cyclic< 256(&, af">memcpy+cosnonfi"line" n5me="L16snonfi"la pr  (&amaf">at_d , ) {
 158      5         ep>af">memcpy+cotdesc" class="sref">at_desc *(& 166      5     86ers/86="dria>) {
 158      5         ep>af">memcpy+co_desc" class="sref">at_desch/a> *(&(& * @fi8       5     56re"162 a>(stru3  ->>      5     56buf_4a>> a> //g(> a>(stru3  atchan->) {
(stri8rcode874" id="L254" e6f="+code=chan  v67      5 }
dev_vdbg( han2dev(&, memcpydostart(&) {
 174(structbuf_ss=e>      5     56buf_ss=e> a>oa>) {
) {
)
af">at_d unlikelnv_vdb" id="L187" clasc"slave="L256"> 256 slave/at_h|| " id="L187" clasbuf_4a>>      5     56buf_4a>> a> || " id="L187" clas_eriod_4a>)
(8classimrdostart(stri8rcode87="dria>) {
 67      5 }
dev_vdbg( han2dev(&/* unmap diptor %u cBadble\n8" n4me="L879"> 179      4     87ers/88a/at_hdmac.c#L249" idL254" id="L254" clas5=de=desssssssssshan" class="sreff"an2dev(& = ) {
 182      4     88ers/884" id="L254" e6f="+code=chanwas>-yclieqre hor dostartwas>-ycliess=" *de ( a>o/af">at_d han2dev(&-yclieqre hor dostartwas>-ycliess=" 67      5 }
dev_vdbg( han2dev(&/* unmap diptor %u cBadble\n8"on" clas8or &t = (& 186      4     88ers/88="dria>) {
) {
(strico8e++d/88a/at_hdmac.c#L219" id="L219" clas5="lin8"sr(8K" classidostart(str8code]889"dria>) {
memcpydostart) {
      5     56re"162 a>h/a> *      5     56non="df=bus62(      5     56   a>ma_chan *af">at_d af">at_d 
 164      556f="+code=chanre"162      5     56re"162 a>h/a> *      5     56non="df=bus62(      5     56orc_ss=e162 a>ma_chan *af">at_d ->(& 194 251      5 <8non" clas8n chmaa hrchantaskletner8vers/895/at_hdmac.c#="L2" id="L218" clah/a>-ycliefeneck_value 4me="L251"> 251h/a>-ycliefeneck_value   vdb56f="+code=chanre"162      5     56re"162 a>ostart(structbuf_ss=e>      5     56buf_ss=e> a>oa>) {
) {
)
(& * 251err ounss="sreff"an2dev(&(strtaskle8  194 251      5 <9an 4lass=99          0sd="L249" clas4="  af">memcpy+coperiods)
(stric9     90a/at_hdmac.c#L257" id href="drivers/dma/a5="linc.c#5me="L158"> 158      5 (& 191}
) {
 = hsrefg n4me="L251"> 251hsrefg n  vdb56f="+code=chan  l_irqre hor dostart(strspma_chan *af">at_d .af">at_d  * 251err hsrefg nss="a_chan *af">at_d  *af">at_d h/a>-yclieffill>hsre4me="L251"> 251h/a>-yclieffill>hsrev_vdbg((structbuf_ss=e>      5     56buf_ss=e> a>oa>) {
 207      5     90a hr90a/at_hdmac.c#L257" idddddddddddddddddac.c#L243" ida href="+cde=atre"162      5     56re"162 a>ostart(struct_eriod_4a>)
(&, ) {
 * 251err hsrefg nss="a_chan *af">at_d  199 */
 251hsrefent"> *_dump_regs" claspin_uns_desc" class="sref">at_descat_descostart(struct atchan->(& * atc_chain_completr9vers/91a/at_hdmac.c#c="L194"> 194 251      5 <9a5letepen9ng98at_desc_is_cyclic<);
      5     56  cedesc *at_deschysss="a_chan *af">at_d  * @desc: descriptorr9vers/91="dri_chan *af">at_d  194  n5mal49   251      5 <9t n5me="L9"> * Called with atcharr9vers/91="dria>) {
 *at_desc-reff=sc);
 a>(stru3  (str9xcode91a/at_hdmac.c#L240" id="L240"_desc" class="sref">at_desc>      5     56buf_4a>> a>(stru3   219
) {
txddostart(strt9coded92a/at_hdmac.c#L254" imp_regs" claspin_uns_desc" class="sref">at_descatchan->, struct  hr9f="+d92="dria>) {
cookie);
 251err hsrefg nss=":hdmac.c#L219" id="L219" clas5="lin9mon" clas9=="+c 2517"> err/a>      5 }
dev_vdbg( han2dev(&/* unmap diptor %u cBadble\n9meatcDMA 924"> 224      5  251hsrefpunv_vdbg(at_descatchan-> * 251err ounss=":hdmac.c#L219" id="L219" clas5="lin9m n5me="L9ref">txddostart(strt9coded92="dria>) {
(+lear=bicv_vdbg( a>o/af">at_d  227      5 (&->) {
) {
;9cookie);
memcpydostart(struct prep>af">memcpy+codede=at_desc" class="sredtora>) {
);
 164      5               href="drivers/dma/a5=d   slave_nonfi"line" n5me="L167   slave_nonfi"la prep>af">memcpy+cosnonfi"line" n5me="L16snonfi"la p(&-> 256      5 if (55f="+code=chande=at_desc" class="sref">af">at_dma_chan *atchan->af">at_dma_chan *af">at_d );
) {
 194214 251      5 <9on" class9->af">at_d_is_cyclic< 256(&);
(& 238static5void
93  ) {
(memcpn *_dump_regs" claspin_uns  l_irqre hor dostart(strspin_unsabl_irqre hor 7   snonfi"line" n5me="L167   snonfi"la postart(structmnonfi"line" n5me="L16snonfi"la p, 161"of(ep>af">memcpy+cosnonfi"line" n5me="L16snonfi"la p *af">at_d  240{
cookie);
non="df=buesc *_dump_regs" claspin_uns  l_irqre hor dostart(strspin_unsabl_irqre hor 7   snonfi"line" n5me="L167   snonfi"la psreff=sc);
orc_maxbuesc"srefa_chan *af">at_d  242
non="df=buesc *_dump_regs" claspin_uns  l_irqre hor dostart(strspin_unsabl_irqre hor 7   snonfi"line" n5me="L167   snonfi"la psreff=sc);
<    . *af">at_d  243      5 ) {
 * @atchan: channel"dr9vers/94a/at_hdmac.c#L254" i0sreff"an2dev(& 251=ontrolv_vdbmemcpydostart(struct prep>af">memcpy+codede=at_desc" class="sredtorsenumchan" class="st prepL232_cm af">memcpy+codm ) {
(& * atc_desc_chain - dr9vers/95a/at_hdmac.c# href="drivers/dma/a5="line" n5me="L256"> 256      5 if (55f="+code=chande=at_desc" class="sref">af">at_dma_chan *atchan->af">at_dma_chan *af">at_d   * 256     /at_hdmac.c#L25de=chande=at_desc"ne"="L256"> 256    /at_h/a> *atchanaf">at_din_unsabl_irqre hor 7evice4me="L251"> 2517">icela_dma_chan *af">at_d (strs9ivers95a/at_hdmac.c#=e" ac#L249" iddddddddddref="+codeh_at_dma"_i  *ononss="sreff=sc);
 *af">at_d  223      5  *af">at_d  255      5  *af">at_d tatchan, struct  hr9f="+d95="dria>) {
(. *af">at_d  v67      5 }
dev_vdbg( han2dev(&memcpy+codm  *af">at_d ) {
(stroffs9t.c#L96L164"> 164      556f="+code=chanspin_lock_irqsave="L256"> 256(strspin_unsabl_irqre hor lock)
 223      5  *af">at_d (strsri_wid9h.c#L96a/at_reff"an2dev(&writel4me="L251"> 251 /a>writelv_vdbg( 256    /at_ class="ss=srcdosCHEreadr="+coan" clCHEr/at_ class="ss=srcdost;_e="_SUSPeadr="+coan" clt;_e="_SUSPv_vdbg( *af">at_d , ref=bicv_vdbg( a>o/af">at_d ,  *af">at_d  166      5     96ers/96a/at_hdmac.c#L219" id56f="+code=chanspin_unlock_irqrestore="L256"> 256(strspin_unsabl_irqre hor lock)
 223      5  *af">at_d  * @fi9 =ma"_is_pause =ma"_is_pause v_vdbg((&->(& 164      556f="+code=chanspin_lock_irqsave="L256"> 256(strspin_unsabl_irqre hor lock)
 223      5  *af"" clas5=1lin9_" class=9"srefimrdostart(stri9rcode97a/at_reff"an2dev(&writel4me="L251"> 251 /a>writelv_vdbg( 256    /at_ class="ss=srcdosCHDreadr="+coan" clCHDr/at_ class="ss=srcdost;_e="_RESeadr="+coan" clt;_e="_RESv_vdbg( *af">at_d  174(+lear=bicv_vdbg( a>o/af">at_d  *af">at_d  256(strspin_unsabl_irqre hor lock)
 223      5  *af">at_d ->(9classimrdostart(stri9rcode97="dria>) {
 158      5  15_ass="sresreff"an2dev(& 179      4     97ers/98a/at_hdmac.c#L249" idc="L194"> 194 251      5 <9"="+c =  251      5 <9"e" class9                       251      5 <9"" class=982"> 182      4     98ers/98a/at_hdmac.c#L233" id="L233"""""""""""""""""* a>(snel. Wed hill haveL"o poll     linsnelaenable bic du las5="line" n5me="L251"> 251      5 <9" n5me="L9ref">han2dev(& 251      5 <9"on" clas908x,a0xuot;<08x href="+c9de=tx98a/at_hdmac.c#L233" id="L233"""""""""""""""""*clas5="line" n5me="L251"> 251      5 <9"on" clas9or &t =  256(strspin_unsabl_irqre hor lock)
 223      5  *af"" clas5=1lin9" n5me="L986"> 186      4     98ers/98a/at_hdmac.c#L157" id="L157" clas5="lin9i(strico9e++d/98a/at_hdmac.c#L257" idc="L194"> 194 251      5 <9"sr(9K" classidostart(str9code]98="dria>) {
writel4me="L251"> 251 /a>writelv_vdbg( 256    /at_ class="ss=srcdosCHDreadr="+coan" clCHDr/at_ class="ss=srcdost;_e="_RESeadr="+coan" clt;_e="_RESv_vdbg(-&g  l_irqre hor dostart(strspin_unsabl_irqre hor mask)
af"" clas5=1lin92dev" cla9s="sridostart(strico9e)/d/99="dria>) {
 194nelais" isabled"*clas5="line" n5me="L251"> 251      5 <9nf (48   9
 164      5while bg( 251 /a>L2adlv_vdbg( 256    /at_ class="ss=srcdosCHSreadr="+coan" clCHSR/at_-&g  l_irqre hor dostart(strspin_unsabl_irqre hor mask)
 251      5 <9n" class=9refCHDRan->L2lax)
af"" clas5=1lin92 n5me="L9s=masl/a>. 194 251      5 <9non" clas9druefn _splice_inic *_dump_regs" claspin_uns  l_irqre hor dostart(strspin_unsabl_irqre hor queueqre hor dostartqueue> a>o/. *af">at_d efn _splice_inic *_dump_regs" claspin_uns  l_irqre hor dostart(strspin_unsabl_irqre hor act="d_efn qre hor dostart a>o/. *af">at_d (strtaskle9  194 251      5 <10an 4lass=10an 4,  15_ass="sreo/.(struct ne" n5me="L251"> 251      5 <10a1 4lass=10as="sridostart(stric10as=>10aa/at_hdmac.c#L257" idL219" idref="+codeh_at_=mai"_ 256=mai"_((struct atchan->) {
->10aa/at_hdmac.c#L243" ida href="+cde=at+lear=bic" class="sref">+lear=bicv_vdbg( a>o/af">at_d . 194neladedicmaed "o lyclie operan cls, free it2*clas5="line" n5me="L251"> 251      5 <10a5 4lass=10a chmaa hrchantaskletner10a c>10aa/at_hdmac.c#L254" idg(+lear=bicv_vdbg( a>o/af">at_d 10a="dri_chan *af">at_d 10aa/at_hdmac.c#L219" id56f="+code=chanspin_unlock_irqrestore="L256"> 256(strspin_unsabl_irqre hor lock)
 223      5  *af">at_d (strtaskle10aet>10aa/at_hdmac.c#}#else#="L2" id="L218" cladm , ) {
(af">at_d  1991099/at_hdmac.c#}#else# href="+code=chan_common" class=
 */
 >109a/at_hdmac.c#L257" idL254" i-reff=sc);
(&109a/at_hdmac.c#a>) {

109a/at_reff"an2dev(& * atc_chain_completr10t">>109a/at_hdmac.c#L254" i0sreff"an2dev(&109a/at_a>) {
 * @desc: descriptorr10t">>109="dri_chan *af">at_d 109a/at_hdmac.c#L233" id="L233/*4las5="line" n5me="L251"> 251      5 <1098 4lass=10"> * Called with atcharr10"> >1098/at_hdmac.c#L233" id="L233"* tx_hdmaus - poll ="L1t5   a 51om  251      5 <1099 4lass=10s="srefxddostart(str10s=">1099/at_hdmac.c#L233" id="L233"* @cma":ie="Laf">nel/as5="line" n5me="L251"> 251      5 <102n 4lass=109"> 219
>109"/at_hdmac.c#L233" id="L233"* @code" :1t5   a 51om id"L2ifier "o lneck#hdmaus of/as5="line" n5me="L251"> 251      5 <1021 4lass=10ref">txddostart(strt10ref>109a/at_hdmac.c#L233" id="L233"* @txhdmae:#="LnoL2" cla updmaed with1t5   a 51om hdmae/as5="line" n5me="L251"> 251      5 <1022 4lass=10"satchan, struct  hr10"sa>1094" idhdmac.c#L233" id="L233"4las5="line" n5me="L251"> 251      5 <1023 4lass=10>cookie);
 251      5 <1024 4lass=10=="+c109a/at_hdmac.c#L233" id="L233"*#=e"ermal4hdmaea6nd cac.be used with17   async_is_ 251      5 <1025 4lass=1024"> 224      5 109a/at_hdmac.c#L233" id="L233"*     hdmaus of multiple code" s without re-lnecking hardware hdmae.las5="line" n5me="L251"> 251      5 <1096 4lass=10="+c1096/at_hdmac.c#L233" id="L233"*clas5="line" n5me="L251"> 251      5 <1027 4lass=10ref">txddostart(strt10ref>109a/at_hdmac.cenumchan" class="st prephdmausline" n5me="L16prephdmaus"dri_chan *af">at_d  227      5 1098/at_hef="+codeh_at_tx_hdmaus="L256"> 256tx_hdmausv_vdbmemcpydostart(struct prep>af">memcpy+codede=at_desc" class="sredtora>) {
->>109="dria>) {
code" _c" class="sref"> /a>code" _c"driap>af">memcpy+cod href="drivers=desc_node" clasra>) {
10 ="dria>) {
tx_hdmachref="+coan" cla/a>tx_hdmacct prep>af">memcpy+cotxhdmaehref="+coan" cltxhdmae  251      5 <10 1 4lass=10cookie);
);
 256      5 if (55f="+code=chande=at_desc" class="sref">af">at_dma_chan *atchan->af">at_dma_chan *mmon" class=
->10 4" id="L254" e6f="+code=chan /a>code" _c" class="sref"> /a>code" _c"dria
(&code" _c" class="sref"> /a>code" _c"dria
 256(& 223      5  *af">at_d );
) {
 251r nss="a_chan *af">at_d ->>10 ="dria>) {
 * 256(strspin_unsabl_irqre hor lock)
 223      5  *af"" clas5=1lin10 9 4lass=1038"> 238static5void
1038">10 a/at_hdmac.c#L187" id="L187" clas5=9lin104n 4lass=10="+c10=""dria>) {
 * 251r nss=" *(af">memcpy+cod href="drivers=desc_node" clasra> * *af"" clas5=1lin1041 4lass=1040"> 240{
10=a/at_hdmac.c#="L2" id="L218" clar n4me="L251"> 251r nss="cookie);
 164      556f="+code=chan=leanup_ n5me="L25s="L256"> 256=leanup_ n5me="L25sv_vdbg( *af"" clas5=1lin1043 4lass=102"> 242
>10=a/at_reff"an2dev(& 243      5 10=a/at_hdmac.c#L254" idL240" id="L240"r n4me="L251"> 251r nss=" *(af">memcpy+cod href="drivers=desc_node" clasra> * *p; * @atchan: channel"dr10"> >10=a/at_hdmac.c#a>) {
10=="dri_chan *af">at_d 10=="dria>) {
( 256 *af">at_din_unsabl_irqre hor  *af">at_d 10=="dria>) {
 * *af">at_din_unsabl_irqre hor  *af">at_d 10=a/at_hdmac.c#L187" id="L187" clas5=9lin105n 4lass=10r @len: operaa hr length10r @>10r "dria>) {
 * 256(strspin_unsabl_irqre hor lock)
 223      5  *af">at_d 10ra/at_hdmac.c#L219" id="L219" clas5=1lin10r2 4lass=10"> * atc_desc_chain - dr10"> >10r2/at_hdmac.c#="L2" id="L218" clar n4me="L251"> 251r nss="  *10ra/at_hdmac.c#L243" ida href="+cde=at rephet_residueqre hor dostart rephet_residuev_vdbg( 256at_de_( *af">at_d (strs10las>10ra/at_>) {
10r5/at_hdmac.c#="L2" id="L218" cla=ma"_is_pause =ma"_is_pause v_vdbg((& 255      5 >10r="dria>) {
 251r nss=" *af">at_d tatchan, struct  hr10>ta>10ra/at_hdmac.c#L157" id="L157" clas5="lin1058 4lass=10="sNUCL);
10r="dria>) {
 * v67      5 }
dev_vdbg( han2dev(&);
10r="dria>) {
 251r nss=" cp>af">memcpy+cod href="drivers=desc_node" clasra> * 256 * 256);
10=""dria>) {
 * *af">at_d (strxfer_cou10tdo>10=a/at_hdmac.c#L219" id="L219" clas5=1lin1062 4lass=10ffsetdostart(stroffs10ffs>10=2/at_hdmac.c#L254" id="L254" clas5=r n4me="L251"> 251r nss="a_chan *af">at_d (strsri_wid10thd>10=3/at_a>) {
(strdst_wid10thd>10=a/at_>) {
, 10=a/at_hdmac.c#L233" id="L233/*4las5="line" n5me="L251"> 251      5 <1066 4lass=10=ctrlba, 10=6/at_hdmac.c#L233" id="L233"* issue_pending - try "o finish worklas5="line" n5me="L251"> 251      5 <1067 4lass=1066"> 166      5     1066">10=a/at_hdmac.c#L233" id="L233"* @cma":itargetie="Laf">nel/as5="line" n5me="L251"> 251      5 <1068 4lass=10; 251      5 <1069 4lass=10trirq  * @fi10tri>10=="drihdmac.cvoidclass="ss=srcdosissue_pendingissue_pendingv_vdbmemcpydostart(struct prep>af">memcpy+codede=at_desc" class="sredto(&->10="/at_ href="+code=chan_common" class=
atchan->at>10=a/at_hdmac.c# href="drivers/dma/a5="line" n5me="L256"> 256      5 if (55f="+code=chande=at_desc" class="sref">af">at_dma_chan *atchan->af">at_dma_chan *mmon" class=
(st10ass>10=2/at_hdmac.c#clas5="lilongac#L249" id="L249" clas4=""> 223      5  *af">at_d (stri10"sr>10=a/at_reff"an2dev(&,  v67      5 }
dev_vdbg( han2dev(&/* unmap diptor %u cBadble\n10=5 4lass=1074"> 17410=a/at_stru3  ) {
 194 251      5 <10=7 4lass=10CIMRan->10=a/at_hdmac.c#="L2" id="L218" cla=ma"_is_lyclie=ma"_is_lycliev_vdbg((&->10=a/at_hdmac.c#L257" idL254" _">/* unmap diptor %u cBadble\n10=9 4lass=10classimrdostart(stri10cla>10=a/at_hdmac.c#L187" id="L187" clas5=9lin108n 4lass=1079"> 179      4     1079">1079"dria>) {
 * 256(strspin_unsabl_irqre hor lock)
 223      5  *af"" clas5=1lin1081 4lass=10dor &t = 107a/at_hdmac.c#="L2" id="L187" clas=ma"_is_enable =ma"_is_enable v_vdbg(107L164"> 164      556f="+code=chanadvance_workadvance_workv_vdbg( *af"" clas5=1lin1083 4lass=1082"> 182      4     1082">107a/at_hdmac.c#a>) {
han2dev(&107a/at_hdmac.c#e6f="+code=chanspin_unlock_irqrestore="L256"> 256(strspin_unsabl_irqre hor lock)
 223      5  *af">at_d  *af">at_d  186      4     1086">107a/at_hdmac.c#L233" id="L233/*4las5="line" n5me="L251"> 251      5 <1088 4lass=10classidostart(strico10cla>1078/at_hdmac.c#L233" id="L233"* aleoc>=ma"_resources - aleocmaearesources ="L1e="Laf">nel/as5="line" n5me="L251"> 251      5 <1089 4lass=10K" classidostart(str10K" >1079/at_hdmac.c#L233" id="L233"* @cma":ialeocmaea n5me="L250resources ="L1  14nel/as5="line" n5me="L251"> 251      5 <109n 4lass=10s="sridostart(strico10s=">10s=/at_hdmac.c#L233" id="L233"* @cli"L2: curr"L2 cli"L20requesting     linsnelabeaready ="L1requests/as5="line" n5me="L251"> 251      5 <1091 4lass=10ss="sridostart(stric10ss=>10sa/at_hdmac.c#L233" id="L233"*/as5="line" n5me="L251"> 251      5 <1092 4lass=10
10s4" idhdmac.c#L233" id="L233"4dL254" i-     number of aleocmaed" n5me="L25s/as5="line" n5me="L251"> 251      5 <1093 4lass=10refCHDRan->10sa/at_hdmac.c#L233" id="L233"*clas5="line" n5me="L251"> 251      5 <1094 4lass=10s=masl/a>.aleoc>=ma"_resourcesv_vdbmemcpydostart(struct prep>af">memcpy+codede=at_desc" class="sredto(&10s5/at_ href="+code=chan_common" class=
10s="dria>) {
 256      5 if (55f="+code=chande=at_desc" class="sref">af">at_dma_chan *atchan->af">at_dma_chan *mmon" class=
10s7"dria>) {
 256     164"> 164  de=chande=at_desc"ne"="L256"> 256 d  /at_h/a> *atchanaf">at_din_unsabl_irqre hor 7evice4me="L251"> 2517">icela_dma_chan *af">at_d (strtaskle10let>10s8"dria>) {
 158      5 64  de=chande=at_des af">at_d , ) {
 256) {de=chande=at_desc"slave="L256"> 256 *af">at_d  223      5  *af">at_d (stric11as=>11aa/at_hdmac.c#=e" ac#L249" iddddddddddref="+codeh_at_i3      5  *af">at_d 
110a/at_hdmac.c#> * 164      5     ref="+codeh_at_df"line" n5me="L16df"i  *af">at_d ->10=a104" id="L254" e6f="+code=chanLIST_HEA    af">at_d . v67      5 }
dev_vdbg( han2dev(&/* unmap diptor %u cBadble\n11a6 4lass=11aru11a="dri_chan *af">at_d 11aa/at_hdmac.c#c="L194"> 194nelais"idle"*clas5="line" n5me="L251"> 251      5 <11a8 4lass=11aetdostart(strtaskle11aet>11aa/at_hdmac.c#="L2" id="L218" cla=ma"_is_enable =ma"_is_enable v_vdbg(, ) {
 67      5 }
dev_vdbg( han2dev(&nelLnoL2idle"? href="dode=vdbg_">/* unmap diptor %u cBadble\n111n 4lass=1199"> 199111""dria>) {
);
(& */
 >119a/at_hdmac.c#a>) {
111="dria>) {

1114" id="L254" e6f="+code=channf"line" n5me="L16df"i  *(& * atc_chain_completr11t">>111a/at_>) {
coo1lass=11aa/at_hdmac.c#e6f="+code=chasc"slave="L256"> 256 *af">at_din_unsabl_irqre horpef=dmaehref="+coan" cpef=dmaG"sresreff"an2dev(& * @desc: descriptorr10t">>116a/at_hdmac.c#="L2" id="L218" cla<"slave="L256"> 25611aa/at_hdmac.c#L219" idc="L194"> 194 251      5 >11a8 4lass=10"> * Called with atcharr10"> >1098/at_hdmac.c#L233" id="L2333333333333333333*. We nee >=ontroler-specific  daty "osetd0uplslave"as5="line" n5me="L251"> 251      5 >11a9 4lass=10s="srefxddostart(str10s=">1099/at_hdmac.c#L233" id="L2333333333333333333*. "5   fere.las5="line" n5me="L251"> 251      5 <102n 4lass=109"> 219
>109"/at_hdmac.c#L233" id="L2333333333333333333**clas5="line" n5me="L251"> 251      5 <1021 4lass=10ref">txddostart(strt10ref>129a/at_hdmac.c#L257" id" id="L218" clBUG_ONe="L256"> 256 256-&g "slave="L256"> 256 256 d  /atdin_unsabl_irqre hor ne"_ono /at"sreff=sc);
      an" class="s   a/atbg_">/* unmap diptor %u cBadble\n1022 4lass=10"satchan, struct  hr10"sa>121="dria>) {
cookie);
 194 251      5 <1024 4lass=10=="+c12=a/at_hdmac.c#L254" i#="L2" id="L218" cla<"slave="L256"> 256(& 224      5 12aa/at_hdmac.c#L254" i#L257" id" id="L218" clnnf"line" n5me="L16df"i  * 256/* unmap diptor %u cBadble\n10a6 4lass=10="+c126a/at_hdmac.c#a>) {
txddostart(strt10ref>12ra/at_hdmac.c#L157" id="L157" clas5="lin1028 4lass=1027"> 227      5 12r="dria>) {
 194 251      5 <10a9 4lass=10/a>->>1299/at_hdmac.c#L233" id="L23333333333"4dLlnonfgue   linsnelautlLne nee tot#L2aleocmaea n5me="L2rsalclas5="line" n5me="L251"> 251      5 <103n 4lass=10 ="drdrdauot;10 ="dria>) {
<#="L2" id="L187" clatefn emptyk)
(strspin_unsabl_irqre hor frep_efn qre hor dostar frep_efnhain_;(&);
(strspin_unsabl_irqre hora n5s_ aleocmae href="+coan" classs_ aleocmae"i /* unmap diptor %u cBadble\n10 2 4lass=10efdesc);
) {
->10 4" id="L254" c="L194"> 194 251      5 <1024 4lass=10n 5lass=53        5 -&_i3      5 -&_ini_nr _per_ linsnei3      5  _per_ linsne"i -&_i3      5 aleocden5me="L2saleocden5me="L2ev_vdbg(/* unmap diptor %u cBadble\n10 6 4lass=10cookie);
) {
->( 256 d  /atdin_unsabl_irqre hor ne"_ono /at"sreff=sc);
      an" class="s   a/at0uhdmac.c#L157" id="L157" clas5="lin10 8 4lass=10/a>>13=a/at_hdmac.c#L257" i#L219" i#L254" idhan2dev(&-&_i3      5 /* unmap diptor %u cBadble\n10a9 4lass=1038"> 238static5void
1038">13r="dria>) {
/* unmap diptor %u cBadble\n104n 4lass=10="+c141""dria>) {
 240{
149a/at_hdmac.c#L257" id" id="L218" cldefn add_taiei3      5 o/af">at_d cookie);
 242
>10=a/at_reff"an2dev(& 243      5 147a/at_hdmac.c#e6f="+code=chanspin_lock_irqsave="L256"> 256(strspin_unsabl_irqre hor lock)
 223      5  *af"" clas5=1lin1045 4lass=10"> * @atchan: channel"dr10"> >14aa/at_hdmac.c#e6f="+code=chasc l_irqre hor dostart(strspin_unsabl_irqre hora n5s_ aleocmae href="+coan" classs_ aleocmae"i  *af">at_d 146a/at_hdmac.c#e6f="+code=cha>efn _splici3      5 o/af">at_d 10=="dria>) {
((af">at_d 10=="dria>) {
 * 256(strspin_unsabl_irqre hor lock)
 223      5  *af">at_d 10=a/at_hdmac.c#L187" id="L187" clas5=9lin105n 4lass=10r @len: operaa hr length10r @>10r "dria>) {
 194 251      5 <1051 4lass=10ble\n"/s"dru151="dria>) {
 * 25llinsnea>write v_vdbg(af">memcpy+conf"line" n5me="L16df"i  *af">at_d  * atc_desc_chain - dr10"> >151="dria>) {
  *1514" id="L254" e6f="+code=chan  67      5 }
dev_vdbg() {
(strs10las>15aa/at_hdmac.c#L254" idL="L194"> 19&15aa/at_hdmac.c#L254" ide=chande=at_desc l_irqre hor dostart(strspin_unsabl_irqre hora n5s_ aleocmae href="+coan" classs_ aleocmae"i  *af">at_d  255      5 >15a="dri_chan *af">at_d tatchan, struct  hr10>ta>15=="dria>) {
(strspin_unsabl_irqre hora n5s_ aleocmae href="+coan" classs_ aleocmae"i /* unmap diptor %u cBadble\n1058 4lass=10="sNUCL);
10r="dr#a>) {
);
15=a/at_hdmac.c#L187" id="L187" clas5=9lin106n 4lass=10="sNUCL);
169"/at_hdmac.c#L233" id="L233/*4las5="line" n5me="L251"> 251      5 <1061 4lass=10tdostart(strxfer_cou10tdo>169a/at_hdmac.c#L233" id="L233"*afrep>=ma"_resources - free"allllinsnel_resourcesvas5="line" n5me="L251"> 251      5 <10r2 4lass=10ffsetdostart(stroffs10ffs>16s4" idhdmac.c#L233" id="L233"4 @cma":ie="Laf">nel/as5="line" n5me="L251"> 251      5 <1063 4lass=10thdostart(strsri_wid10thd>16sa/at_hdmac.c#L233" id="L233"*clas5="line" n5me="L251"> 251      5 <1064 4lass=10thdostart(strdst_wid10thd>16s4"drihdmac.cvoidclass="ss=srcdosfrep>=ma"_resourcesfrep>=ma"_resourceev_vdbmemcpydostart(struct prep>af">memcpy+codede=at_desc" class="sredto(&, 16s5/at_ href="+code=chan_common" class=
, 16s="dria>) {
 256      5 if (55f="+code=chande=at_desc" class="sref">af">at_dma_chan *atchan->af">at_dma_chan * 166      5     1_d (&);
(strspin_unsabl_irqre hora n5s_ aleocmae href="+coan" classs_ aleocmae"i /* unmap diptor %54r551nel/as5="l1ne" n5me="L251"> 251 1    51610s8 4lass=10letdostart(strtaskle10let>10s8"dria>) {
 158      5 6410s8"dria>) {
_ 5 64  de=chande=at_des  251 1    51610a9 4lass=105="linc.c#5me="->10=a104" id="L254" e6f="+code=chanLIST_HEr dostart a>o/(&1514" id="L254" e6f="+code=chan  67      5 }
dev_vcdostart(strs10las>15aa/cdosfrep>=ma"_r: (nsabl"L194"> 19=amp;at_dma1chan *mmon" c1ass=
171082 4lass=10                      15aa/at_hdmac.c#L254" ide=chande=at_desc l_irqre hor dostart(strspin_unsabl_irqre hora n5s_ aleocmae href="+coan" classs_ aleoc h52   *af">at_1 (stri10"1r>10=a/at_1eff"an2dev(&11aa/at_hdmac.c#c="L194"> 194nelais"idledode=vdbg_1>/* unmap diptor %u c1adble171045 4lass=10"> * @atchan: ct10ref>129a/at_hdmac.c#L257" id" id="L218" clBUG="+c10 =">10 ="dria>) {
<#="L2" id="L187" clatefn emptyk)
(strrcdos< hor bl_irq_ aleocmae href="+coan" classs_ aleoc 16s5/at_ htru3  10 ="dria>) {
<#="L2" id="L187" clatefn emptyk)
at_dma_ne" n5me="L251"> 251 1    5171027 4lass=10129a/at_hdmac.c#L257" id"start(strdst_wie11aet>11aa/at_hdmac.c#="L2" id="L218" cla=ma"_is_enable =ma"_is_enable v_vdbg<_ aleocmae href="+coan" classs_ aleoc el/as5="l1eff"an2dev(&146a/at_hdmac.c#for_eacha 158      5 6410s8"dria>) {
_ 5 64o/10=a/at_1dmac.c#L187" id="L187" cl1s5=9l18104n 4lass=10="+c11aa/at_hdmac.c#e6f="+code=chan  v67      5 }
dev_vdbg() {
 *af"" cl1s5=1l181041 4lass=1040"> 240{
) {
d1040dle" cldefn add_taiei3      5 at_dma1ref="+code=chan_common" c1ass=
1a1082 4lass=10         f="+code=spin      194nelais"idleiochain_ma1chan *af"" cl1s5=1l181023 4lass=10>cookiefrep54" rcdos"_resourceev_vdb( 158      5 64ophyac.cvoidclass="sphyabl_i"_ aleocmae href="+coan" classs_ aleoch>10=a/at_1) {
);
 *af">at_1  * @atchan: cac.c#e6f="+010=="dria>) {
"L187" clatefn emptyk)
(strspin_unsabl_i,/" clatefn emptyk)
 >14aa/at_hdmac.c#e6f="+code=chasc l_irqre hor dostart(strspin_unsabl_irqre hora n5s_ tc_chain_completr10t">>109a/at_hdmac.1 >107="dri1chan *af">at_1  >14aa/at_hdmac.c#e6f="+code=chasc l_iL251"> 251r nss="mchan" clas_ tc_chain_completr10t">>109a/at_hdmac.1 el/as5="l1ne" n5me="L251"> 251 1    5181078  aleocmae href="+coan" classs_ aleocnel/as5="l1ne" n5me="L251"> 251 1    51810a9 4lass=105="linc.c#5me="ete etner11a c>11aa/at_hdmac.c#e6f="+code=chan  v67      5 }
dev_vdbg((&nelLnoL2idle"? href="nel/as5="l1ne" n5me="L251"> 251 1    51<109n 4lass=10="sNUCL);
 251 1    5191061 4lass=10tdostart(strxfer_cou10t13"*/as5="l1ne" n5me="L251"> 251 1    51910r2 4lass=10"> * atc_desc_chain - dr10">25s/as5="l1ne" n5me="L251"> 251 1    51<1093 4lass=10refCHDRan-/*--  Module Managen 194nelais"idle"*clas5="l1ne" n5me="L251"> 251 1    5191114 4lass=11t"> * atc_chain_completr11t"s="sredto<1eff"an2dev(&, <33" iproper C     ..194"> 194nelais"idle>10s5/at_ 1ref="+code=chan_common" c1ass=
1a1096 4lass=1=ctrlba, ) {
) {
>129 clas_ 2" id="L187" clat at_dma1chan *mmon" c1ass=
1a1097 4lass=10re hor ne"_ona> _per_ > 251r nss="na> _per_ > clas_ 2e" icela_dma1chan *af">at_1 nelLnoL2idle"? href="nel/as5="l1chan *af">at_1 , ) {
) {
>129 clas_ 2" id="L187" clat  *af">at_2 ona> _per_ > 251r nss="na> _per_ > clas_ 8e"  *af">at_2 nelLnoL2idle"? href=25  *af">at_2  * atc_desc_chain - dr10"216df"i  *af">at2d (strspin_unsfaror    5 }
(strspin_uCONFIG_OFruct prep>af">memcpy+codede=at_desc" cla2efn la_dma2chan *af">at_2 >st1=ctrlba, (strspin_uof_sss_ a_ir0a9 4, (&o*11a="dri2chan *af">at_2 on333="dria>) {
>129="dria>) {
>129 clae" af">at_2    52<11a8 4lass=11},12" id="L187" clat af">at_2ass=
2a11a9 4lass=11a/a>, o*/* unmap diptor %u c2adble2n111n 4lass=1199"> 199re hor ne"_on333="dria>) {
>129="dria>) {
>129 clae" (& 194nelais"idl2e>111="dri2>) {
);
(&nelLnoL2idle"? href=2>>111a/at_2) {
 174(&nelLnoL2idle"? href=2ave"dr;nelLnoL2idle"? href=2a811a="dri2ne" n5me="L251"> 251 2    5211078  aleocmae href="+coan" classs_ aleo2ave"as5="l2ne" n5me="L251"> 251 2    5219064 4lass=1a>>st1=ctrlba, (strspin_uplatform_3ss_ a_ir0a9 4,  251 2    52201a5 4lass=112" id="L187" clat  251 2    52<1021 4lass=10ref">txdre hor ne"_on51< 251r nss="n51< href="dostart(strs10las>15aa/a=91sam9rl_+cos "d: code" /* unmap diptor %u c2adble221082 4lass=10        re hor ne"_on (d&q_3333="dria>) {
) {
>129 clae" 121="dri2>) {
 251 2    52<1024 4lass=10=="+con51< 251r nss="n51< href="dostart(strs10las>15aa/a=91sam9g45_+cos "d: code" 111a/at_2eff"an2dev(& 224re hor ne"_on (d&q_3333="dria>) {
) {
>129 clae" /* unmap diptor %u c2adble2n10a6 4lass=10=,12" id="L187" clat 111s   194nelais"idl2f>12ra/at_2dmac.c#L157" id="L157" cl2s5="l2n1028 4lass=104lass=10="sNUCL);
 251 2    52<10a9 } href="+e="Laf">nelLnoL2idle"? href=2alclas5="l2ne" n5me="L251"> 251 2    523107n href="+code=dma_ efn )
(&(&adria>) {
(028 4a>>st1=ctrlba, ) {
) {
<_0"L18a, , (strspin_uplatform_3ss_ a0a9 4*,  vp"_o href="+code=dma_ efn )
) {
 251 2    52<1024 4lass=10ain_complete<="+10=pne" n5me="L167"> vp"_oirqre hora n5s_ aleocmar11a c>11aa/at_hdm_dumre hor ne"_oofref="+coan" class="sofref="bl_i"L2" id="L187" clat >st1=ctrlba, (strspin_uof_sss_ a_ir0a9 4*, (strspin_umt_hd0a9  href="+e="Laf">nelLnoL2idle"? href=2a6df"i /* unmap diptor %u c2adble2n10 6 4lass=10cookie, (strspin_umt_hd0a9 f="dr10coo>139a/atof_mt_hdref="+coan" class="sofrmt_hdref=""_is_enable  vp"_oirqre hora n5s_ aleocmar11a c>11aa/at_hdm_dumre hor ne"_oofref="+coan" class="sofref="bl_i" href="+e="Laf">nelLnoL2idle"? href=2ave"dr;139a/atNULhan2dev" class="NULh/a>o href="+code=dma_ efn )
nelLnoL2idle"? href=2a?clas5="l2>/* unmap diptor %u c2adble2n10a9 4lass=1038"> 238>tatchan, struct  mt_hdt(strspin_umt_hd0a9 irqre hora n5s_ aleoc333="dria>) {
nelLnoL2idle"? href=2dddb#L2kg_2>/* unmap diptor %u c2adble2n104n 4lass=104lass=10="sNUCL);
tr10=ctplatform_3333="dria>) {
af">at_2  * vp"_o irqre hora n5s_ aleoc (d&q_3333="dria>) {
nelLnoL2idle"? href=2d>121="dri2) {
);
(& * atc_chain_completr11t2h52   *af"" cl2s5=1l241065 4lass=10=ctrlma, 169"/at_hdmac.c#L233" id="L2325  *af">at_2 (strxfef="droff - disa>=ms10ffsc.c#L233"href=s=10="s>169"/at_hdmac.c#L233" id="L2325ve"dr; *af">at_2  186  a>(ss=bA=mel HDAMC 3ss_ a0aef=s=10="s>169"/at_hdmac.c#L233" id="L2325>12ra/at_2chan *af">at_2  194nelais"idl2h52   *af">at_2 (strdst_f="droff="dria>) {
 166      5     1_d );
10=a/at_2dmac.c#L187" id="L187" cl2s5=9l2n105n 2" id="L187" clat  251 2    52<1051 4lass=10ble\n"/s"d="dr<10ble>151="dria>) {
="dr<10ble"_is_enable );
129a/at_hdmac.EN hre,/0" href="+e="Laf">nelLnoL2idle"? href=26df"i  *af">at_2  * atc_desc_chain - dr10"2 >151="dri2>) {
111disa>=ms33" interrupt{
 194) {
151="dria>) {
="dr<10ble"_is_enable );
129a/at_hdmac.EBCIDR hre,/-1L" href="+e="Laf">nelLnoL2idle"? href=2652  ) {
 174 *af">at_2 111a>>12rm0 194 *af">at_2 151="dria>) {
="drdriae"_is_enable );
129a/at_hdmac.CHSRbl_i"Laspinirqre hor ne"      an" class="s ne"   a/at_frmask" class="s ne"  3"frmask hre href="+code=dma_ efn )
o*purdrlax"_resourceev_vd*purdrlax"_is_" href="+e="Laf">nelLnoL2idle"? href=2652  );
15=a/at_2dmac.c#L187" id="L187" cl2s5=9l26107n href="+code=dma_ efn )
 251 2    52610 1 4lass=10s=masl/a>.10=="dria>) {
<_0"L18a,  166      5   platform_3ss_ at(strspin_uplatform_3ss_ a0a9 4*,  vp"_o href="+code=dma_ efn )
 251 2    52<10r2 2" id="L187" clat  251 2    52610r3 4lass=1066"> 166      5   ep>=ma"_ n5me="L167"> vep>=ma"_0 8 4lass=10/*, ) {
nelLnoL2idle"? href=2"*clas5="l2ne" n5me="L251"> 251 2    52640r3 4lass=1066"> 166      5     1_d (&);
nelLnoL2idle"? href=2"52  (& * @atchan: csize_>10=="dria>) {
t_hdmac.c#> * * @atchan: csize10=="dria>) {
nelLnoL2idle"? href=2"ae"i (stric11as=>11aa/at_hdrq&adria>) {
nelLnoL2idle"? href=2"ve"dr; *(stric11as=>11aa/at_hat_hdmac.c#L219" i4" ide= href="+e="Laf">nelLnoL2idle"? href=2">12ra/at_2ne" n5me="L251"> 251 2    52610s8 4lass=10as="sridostart(stric11as=>11aa/at_hdmac.c#=e" ac#L249" iddddddddddref="+codeh_at_i3     2"*clas5="l2ne" n5me="L251"> 251 2    52610a9 4lass=10a>>st1=ctrlba, ) {
(&111s tup platform333333n 5leach SoC
 194at_dma2chan *mmon" c2ass=
2711a2 4lass=11a/span>
) {
="drcap_s t"_is_enable 151="dria>) {
DMA_MEMCPY4>129="dria>) {
>129 clare hor ne"_o*ap_mask"_resourceev_vd*ap_maskbl_i" href="+e="Laf">nelLnoL2idle"? href=2 h52   *af">at_2   *151="dria>) {
="drcap_s t"_is_enable 151="dria>) {
DMA_MEMCPY4>129="dria>) {
>129 clare hor ne"_o*ap_mask"_resourceev_vd*ap_maskbl_i" href="+e="Laf">nelLnoL2idle"? href=2 *clas5="l2eff"an2dev(&151="dria>) {
="drcap_s t"_is_enable ) {
>129="dria>) {
>129 clare hor ne"_o*ap_mask"_resourceev_vd*ap_maskbl_i" href="+e="Laf">nelLnoL2idle"? href=2 52  /* unmap diptor %u c2adble2710=5 4lass=1074"> 174) {
fromfsc.c#L233" typm
 194 251 2    5271027 4lass=10(strspin_uplat_3339" i" ide=chande=at_des 10=ctger10 (d&q_3333="dria>) {
,  vp"_o  href="+e="Laf">nelLnoL2idle"? href=2 >12ra/at_2eff"an2dev(&(strspin_uplat_3339" i href="+code=dma_ efn )
/* unmap diptor %u c2adble2710a9 4lass=1038"> 238>tatchaan 5     1199">11NODEV>129a/at_hdmac.ENODEV9" iddddddddddref="+codeh_at_i3     2a>10=a/at_2dmac.c#L187" id="L187" cl2s5=9l28107n href="+code=dma_ efn )
af"" cl2s5=1l281051 4lass=10ble\n"/s"dio&adria>) {
=ma"_ n5me="L167"> vplatform_ger1ep>=ma"_    5,  vp"_o,/5="linc.c#5me="IORESOURCE_MEM n5me="L167"> vIORESOURCE_MEM hre,/0" href="+e="Laf">nelLnoL2idle"? href=2hf">at_dma2ref="+code=chan_common" c2ass=
2a1082 4lass=10aetd id="L218" clBUGio&adria>) {
 *af"" cl2s5=1l281023 4lass=10>cookie<111NVAhan2dev" class="11NVAh9" iddddddddddref="+codeh_at_i3     2a*clas5="l2) {
 * atc_chain_completr11t2h52   *af">at_2  * @atchan: cdrq&adria>) {
) {
,  vp"_o,/0" href="+e="Laf">nelLnoL2idle"? href=2h16s5/at_ 2) {
) {
 *af">at_2 tatchan, struct  drq&adria>) {
nelLnoL2idle"? href=2 el/as5="l2ne" n5me="L251"> 251 2    5281078  aleocmae href="+coan" classs_ aleo2nel/as5="l2ne" n5me="L251"> 251 2    52810a9 4lass=105="linc.c#5me="size10=="dria>) {
 166      5     1_d nelLnoL2idle"? href=2nel/as5="l2ne" n5me="L251"> 251 2    52900a9 4lass=105="linc.c#5me="size10=="dria>) {
(strspin_uplat_3339" i/a565           sc"nna> _per_ > 251r nss="na> _per_ > clas*isizeof_66"> 166      5     1_d t>16s="dria>) {
nelLnoL2idle"? href=2n52   251 2    5291051 4lass=10ble\n"/s"d1 4lass=10cookie);
) {
( 251 2    5291082 4lass=10aetd id="L218" clBUG1 4lass=10cookie);
 251 2    5291023 4lass=10>cookie<11NOMEM n5me="L167"> v1NOMEM hre href="+e="Laf">nelLnoL2idle"? href=2"*clas5="l2ne" n5me="L251"> 251 2    5291114 4lass=11t"> * atc_chain_completr11t2s="sredto<2eff"an2dev(&111discov3" t/at_rcdoon capabilitie{
 19410s5/at_ 2ref="+code=chan_common" c2ass=
291046 4lass=10eparr a memcpy ha an" class="s ne"   a/at_ 256 d  /atdin_unsabl_irqre hor ne"_o*ap_mask"_resourceev_vd*ap_maskbl_i" ide=chande=at_deplat_333t(strspin_uplat_3339" i/a565           sc"n*ap_mask"_resourceev_vd*ap_maskbl_i href="+e="Laf">nelLnoL2idle"? href=2"ve"dr; *mmon" c2ass=
291027 4lass=10frmask" class="s ne"  3"frmask href="(1"(strspin_uplat_3339" i/a565           sc"nna> _per_ > 251r nss="na> _per_ > cla) - 1 href="+e="Laf">nelLnoL2idle"? href=2"el/as5="l2chan *af">at_2 af">at_2 ) {
      5   ep>=ma"__size10=="dria>) {
=ma"__size    5, ) {
nelLnoL2idle"? href=3slave"dria3chan *af">at_3  256 d  /atrequest_mem1epgi">    5, ) {
) {
 hre_vdbg() {
( vp"_oirqre hora n5s_ aleocmar11a c>11aa/at_hdm_dumre hor ne"_oLaf">nr11a c>11aa/at_haf">n9" i/a565           sc"nn51< 251r nss="n51< hre)"L2" id="L187" clat  *af">at_3  240{
11BUSY>151="dria>) {
1BUSYbl_i href="+e="Laf">nelLnoL2idle"? href=35  *af">at_3  *{
nelLnoL2idle"? href=353 251 3d );
 *af">at_3  * atc_chain_completr11t3s5n la_dma3cff"an2dev(& * @atchan: cha an" class="s ne"   a/at_ 251r nss="epg> hre" i6      5   ioremap&adria>) {
, ) {
) {
 hre_vdbg() {
nelLnoL2idle"? href=3s6n la_dma3cef="+code=chan_common" c3adble301046 4lass=10ain_ id="L218" clBUG1 4lass=10cookie);
 251r nss="epg> hre"L2" id="L187" clat  *mmon" c3 {
11NOMEM n5me="L167"> v1NOMEM hre href="+e="Laf">nelLnoL2idle"? href=3u811a="dri3chan *af">at_3    53010 8 4lass=10/a>{
nelLnoL2idle"? href=3u911a="dri3chan *af">at_3ass=
3a11a9 4lass=114lass=10="sNUCL);
/* unmap diptor %u c3adble31107n href="+code=dma_ efn )
(&);
 vp"_oirqre hora n5s_ aleocmar11a c>11aa/at_hdm_dumvdbg(nelLnoL2idle"? href=3_hdmac.c#a3) {
129a/at_hdmac.IS_ERR    5, );
111="dri3>) {
cookieat_hdmac.c#L219" i4" ide=" i/e=dma_an" PTR_ERR>129a/at_hdmac.PTR_ERR    5, );
nelLnoL2idle"? href=3_fn la_dma3eff"an2dev(&{
nelLnoL2idle"? href=3>>111a/at_3) {
);
(&=m"_resourceev_vd*lk_=m    5, );
nelLnoL2idle"? href=3_7n la_dma3ref="+code=chan_common" c3ass=
3a1017 href="+e="Laf">nelLnoL2idle"? href=3_811a="dri3ne" n5me="L251"> 251 3    53110 8 4lass=10tf="+code=spin      194 251 3    53110a9 4lass=105="linc.c#5me="t_f="droff="dria>) {
);
nelLnoL2idle"? href=3re.las5="l3ne" n5me="L251"> 251 3    532107n href="+code=dma_ efn )
 251 3    5321051 4lass=10ble\n"/s"dat_hdmac.c#L219" i4" ide=" i/e=dma_an" request_drq&adria>) {
, ) {
) {
nelLnoL2idle"? href=3rhdmac.c#a3>/* unmap diptor %u c3adble321082 4lass=10aetd5="linc.c#5me="at_hdmac.c#L219" i4" ide= href="+code=dma_ efn )
) {
cookie{
nelLnoL2idle"? href=32*clas5="l3ne" n5me="L251"> 251 3    5321114 4lass=11t"> * atc_chain_completr11t3 >111a/at_3eff"an2dev(& * @atchan: cplatform_ser10 v3333="dria>) {
,  vp"_o,/5="linc.c#5me="1 4lass=10cookie);
nelLnoL2idle"? href=3r6n la_dma3>/* unmap diptor %u c3adble321046 4lass=105"> 255      5 111areate a <4"  of0a>>sist 19412ra/at_3dmac.c#L157" id="L157" cl3s5="l3n1028 4lass=10eparr a memcpy ha an" class="s ne"   a/at_d( 251 3    53210a9 4lass=1038"> 23888888888aspin_un_tmp_efn qrepne" n5me="L167"> vp"_oirqre hora n5s_ aleocmar11a c>11aa/at_hdm_dumvdsizeof_66"> 166      5     1_let>10s8"dria>) {
 251 3    533111n 4lass=1199"> 1999999999940 emu wibblatomc_10_no>111word alignnnelLnoL2idle"? href=3efnhain_;<3eff"an2dev(&);
/* unmap diptor %u c3adble3/at_hdmac.c#> * vp"_oirqre hora n5s_ aleocmar11a c>11aa/at_hdm_dumvdbg((&nelLnoL2idle"? href=3e>121="dri3>) {
cookieat_hdmac.c#L219" i4" ide=" ian 5     1199">11NOMEM n5me="L167"> v1NOMEM hre href="+e="Laf">nelLnoL2idle"? href=3alclas5="l3ne" n5me="L251"> 251 3    5331024 4lass=10=="+c{
nelLnoL2idle"? href=3a>111a/at_3ref="+code=chan_common" c3ass=
3351a9 4lass=114lass=10="sNUCL);
/* unmap diptor %u c3adble331046 4lass=105"> 255      5 111alear any pass=ng interrupt
 19412ra/at_3dmac.c#L157" id="L157" cl3s5="l3n10 8 4lass=10whi=ms_enable 151="dria>) {
="drdriae"_is_enable );
129a/at_hdmac.EBCISRbl_i)""> 194 238           sc"n*purdrlax"_resourceev_vd*purdrlax"_is_" href="+e="Laf">nelLnoL2idle"? href=3dddb#L2kg_3>/* unmap diptor %u c3adble34107n href="+code=dma_ efn )
111ialize id="L23s drlated value{
 194 *af">at_3 
10=a104" id=INIT_-> 256 d  /atdin_unsabl_irqre hor ne"_o*_per_ > 251r nss=" _per_ > cla) href="+e="Laf">nelLnoL2idle"? href=3d>121="dri3) {
, ) {
(strspin_uplat_3339" i/a565           sc"nna> _per_ > 251r nss="na> _per_ > clah/0reDMA_BTCan) {
(& 166      5     1_d t>16s="dria>) {
 >14aa/at_hdmac.c#4=laspin_un_tmp_efn qre h4lass=10cookie);
dev[0reDMA_BTCan) {
nelLnoL2idle"? href=3d>111a/at_3chan *af"" cl3s5=1l3410=5 4lass=1074"> 174 *af">at_3 ,  >14aa/at_hdmac.c#e6f="+code=chasc l_i/a>frL256"> 256 d  /at/a>frL256">_dumre hor ne"_oLss_ at(strspin_u3ss_ a0a9 4=laspin_un_tmp_efn qre h4lass=10cookie);
 256 d  /atdin_unsabl_irq href="+e="Laf">nelLnoL2idle"? href=3dve"dr; *af">at_3 {
) {
    5aspin_un_tmp_efn qrehannel"dr10"> >14aa/at_hdmac.c#e6f="+code=chasc l_i/a>frL256"> 256 d  /at/a>frL256">_dum) href="+e="Laf">nelLnoL2idle"? href=3d>12ra/at_3chan *af">at_3 oac.c#add_taie>151="dria>) {
d1040add_taie    5aspin_un_tmp_efn qrehannel"dr10"> >14aa/at_hdmac.c#e6f="+code=chasc l_i/a>frL256"> 256 d  /at/a>frL256">_dumre hor ne"_oLss_ aref="+coan" class="srps_ aref=" hre,href="+e="Laf">nelLnoL2idle"? href=3d?clas5="l3chan *af">at_3  2388888888888888888aspin_un_tmp_efn qreha an" class="s ne"   a/at_ 256 d  /atdin_unsabl_irqre hor ne"_o*_per_ > 251r nss=" _per_ > cla) href="+e="Laf">nelLnoL2idle"? href=3v>10=a/at_3dmac.c#L187" id="L187" cl3s5=9l35107n href="+code=dma_ efn )
 251 3    5351041 4lass=1040"> 240{
 >14aa/at_hdmac.c#e6f="+code=chasc l_i/a_epg> 251r nss="/a_epg>bl_i" i/e=dma_an" ha an" class="s ne"   a/at_ 251r nss="epg> hre"+8           sc"n*a_epg> 251r nss="/a_epg>bl_i5, ) {
nelLnoL2idle"? href=3vfn la_dma3chan *af">at_3  *10=="dria>) {
    5aspin_un_tmp_efn qrehannel"dr10"> >14aa/at_hdmac.c#e6f="+code=chasc l_ilock>151="dria>) {
dockide=) href="+e="Laf">nelLnoL2idle"? href=3v>121="dri3>) {
cookiehannel"dr10"> >14aa/at_hdmac.c#e6f="+code=chasc l_imask" class="s ne" mask href="1") {
 * atc_chain_completr11t3652  ) {

10=a104" id=INIT_-> >14aa/at_hdmac.c#e6f="+code=chasc l_ircdove hor dostart(strrcdove hor ide=) href="+e="Laf">nelLnoL2idle"? href=3v  *af">at_3 , 10=a104" id=INIT_-> >14aa/at_hdmac.c#e6f="+code=chasc l_iqueu"+coan" class="squeu"ide=) href="+e="Laf">nelLnoL2idle"? href=3vve"dr; *af">at_3 {
 >14aa/at_hdmac.c#e6f="+code=chasc l_irqre hor dostart(strspin_unsabl_i) href="+e="Laf">nelLnoL2idle"? href=3v>12ra/at_3>/* unmap diptor %u c3adble351078  aleocmae href="+coan" classs_ aleo3652   238           sc"ntaskler1dha>10=="dria>) {
    5aspin_un_tmp_efn qrehannel"dr10"> >14aa/at_hdmac.c#e6f="+code=chasc l_itaskler10=="dria>) {
o,/5="linc.c#5me="1 c_taskler10=="dria>) {
<1 c_taskler hre,href="+e="Laf">nelLnoL2idle"? href=3s>15=a/at_3dmac.c#L187" id="L187" cl3s5=9l36111n 4lass=1199"> 1999999999999999999(an 4,  >14aa/at_hdmac.c#) href="+e="Laf">nelLnoL2idle"? href=3/*4las5="l3ne" n5me="L251"> 251 3    5361041 4lass=1040"> 240{
);
) {
nelLnoL2idle"? href=3cesvas5="l3ne" n5me="L251"> 251 3    536at_hdmac.c#> 4lass=10="sNUCL);
 251 3    53610r3 lass=10="sNUCL);
 251 3    53640r3 4lass=10bemu wibblatomc_10_no>111s t basm
rou 194(& * @atchan: cha an" class="s ne"   a/at_ 256 d  /atdin_unsabl_irqre hor ne"_orps_ arirqrefrep>=ma"_> 251r nss="rps_ arirqrefrep>=ma"_>bl_i" i/e=dma_an" hacrirqrefrep>=ma"_> 251r nss="hacrirqrefrep>=ma"_>9" iddddddddddref="+codeh_at_i3     3"ae"i  256 d  /atdin_unsabl_irqre hor ne"_orps_ arspin_/a>frep>=ma"_> 251r nss="rps_ arspin_/a>frep>=ma"_>bl_i" i/e=dma_an" hacrspin_/a>frep>=ma"_> 251r nss="hacrspin_/a>frep>=ma"_>9" iddddddddddref="+codeh_at_i3     3"ve"dr; * 256 d  /atdin_unsabl_irqre hor ne"_orps_ artx_4lasu> 251r nss="rps_ artx_4lasu>bl_i" i/e=dma_an" hacrtx_4lasu> 251r nss="hacrtx_4lasu>9" iddddddddddref="+codeh_at_i3     3">12ra/at_3ne" n5me="L251"> 251 3    5361028 4lass=10eparr a memcpy ha an" class="s ne"   a/at_ 256 d  /atdin_unsabl_irqre hor ne"_orps_ arissue_pass=ng 251r nss="rps_ arissue_pass=ngbl_i" i/e=dma_an" hacrissue_pass=ng 251r nss="hacrissue_pass=ng9" iddddddddddref="+codeh_at_i3     3"52   251 3    53610a9 4lass=105="linc.c#5me="t_ an" class="s ne"   a/at_ 256 d  /atdin_unsabl_irqre hor ne"_orpsr11a c>11aa/at_hdm_dum4=laspin_un_tmp_efn qrepne" n5me="L167"> vp"_oirqre hora n5s_ aleocmar11a c>11aa/at_hdm_dumddddddddddref="+codeh_at_i3     3s="sredto<3eff"an2dev(&111s t prep
rou 194at_dma3chan *mmon" c3ass=
371082 4lass=10aetd5="linc.c#5me="din_hasrcap 256 d  /atdin_hasrcap"_is_enable 151="dria>) {
DMA_MEMCPY4 256 d  /atdin_unsabl_irqre hor ne"_o*ap_mask"_resourceev_vd*ap_maskbl_i"""> 194 *af">at_3 cookieha an" class="s ne"   a/at_ 256 d  /atdin_unsabl_irqre hor ne"_orps_ arprepf="drmemcpy 251r nss="rps_ arprepf="drmemcpybl_i" i/e=dma_an" hacrprepf="drmemcpy 251r nss="hacrprepf="drmemcpy_dumddddddddddref="+codeh_at_i3     3ss="sref"i3eff"an2dev(& * atc_chain_completr11t3 52  /* unmap diptor %u c3adble375082 4lass=10aetd5="linc.c#5me="din_hasrcap 256 d  /atdin_hasrcap"_is_enable ) {
 256 d  /atdin_unsabl_irqre hor ne"_o*ap_mask"_resourceev_vd*ap_maskbl_i""L2" id="L187" clat  256 d  /atdin_unsabl_irqre hor ne"_orps_ arprepfslave_sg 251r nss="rps_ arprepfslave_sgbl_i" i/e=dma_an" hacrprepfslave_sg 251r nss="hacrprepfslave_sg_dumddddddddddref="+codeh_at_i3     3sve"dr; 251 3    5371017 4lass=10_nonf="dremu wibblatomc_10_no>111sc.c#L233" cu wdo slaves10f: cu wtrigg3" cyclic t/at_feeo
 19412ra/at_3eff"an2dev(&od"drcap_s t>151="dria>) {
="drcap_s t"_is_enable ) {
 256 d  /atdin_unsabl_irqre hor ne"_o*ap_mask"_resourceev_vd*ap_maskbl_i"ddddddddddref="+codeh_at_i3     3s52  /* unmap diptor %u c3adble3710a9 4lass=1038"> 238,  256 d  /atdin_unsabl_irqre hor ne"_orps_ arprepfdin_uyclic 251r nss="rps_ arprepf="druyclicbl_i" i/e=dma_an" hacrprepf="druyclic 251r nss="hacrprepf="druyclic_dumddddddddddref="+codeh_at_i3     3a>10=a/at_3dmac.c#L187" id="L187" cl3s5=9l38111n 4lass=1199"> 199,  256 d  /atdin_unsabl_irqre hor ne"_orps_ arsc.c#L2 251r nss="rps_ arsc.c#L2bl_i" i/e=dma_an" hacrsc.c#L2 251r nss="hacrsc.c#L2_dumddddddddddref="+codeh_at_i3     3a*4las5="l3chan *af"" cl3s5=1l381051 4lass=104lass=10="sNUCL);
at_dma3ref="+code=chan_common" c3ass=
3810r2 4lass=10"> * atc_desc_chain - dr10"3iochain_ma3chan *af"" cl3s5=1l3810r3 4lass=10 hrtor  *151="dria>) {
="dr<10ble"_is_enable );
129a/at_hdmac.EN hre,/5="linc.c#5me="AT_DMA_ENABLE="dria>) {
 * atc_chain_completr11t3=11t"> * atc_chain_completr11t3=11t"in_completr11t3=11t"> * at 739"in_c  3a*clas5="l3) {
 251letr11t3=11t"in_completr11t3=11t"> * at 739"preparr opeha an" class="ss5="l3) {etr11t3=1ha an" c3_ 256 d  /atdin_unsabl_irqre hor ne"_orps_ arsc.c#L2 251r nss="rps_ arsc.c#L2bl_i" i/e=dma_an" hacrsc.c#L2 251aa/at_hdm_dum4=laspin_un_tmp_efn qrepne" n5me="L167"> vp"_oirqre hora n5s_ aleocmar11a c>11aa/at_hdm_dumddddddddddref="+codeh_at_i3     3s="sredto<3eff"an2dev(&frep>=maddddddref=a_an" ha an" class="s ne"   a/at_ha an" class="s han:>=ma"_>|d0reDMA_BT>);
 251 3    536at_hdmac.> 166 3    5     1_d 12ras_ arprepf="drmemcpy 251r nss="rps_ arprepf="drmemcpybl_i" i/e=dma_an" hacrprepf="drmemcpy 251r nss="hacrprepf="drmemcpy_dumddddddddddref="+codeh_at_i3     3ss="sref"i3eff"an2dev(& * atc_chain_completr11t3" class="s ?>ha an" class="s ne"   a/at_ cl ;
ha an" class="s ne"   a/at_;
 251 3    536at_hdmac.>p_mask"_reme="size10=="dria>) {
hacrprepfslave_sg 251r nss="hacrprepfslave_sg_dumddddddddddref="+codeh_at_i3     3sve"dr; 251 3    5371017 4lass=10_nonf="dremu wibblatomc_10_no>111sc.class="s  ?>ha an" class="s ne"   a/at_3adble;
ha an" class="s ne"   a/at_;
 251 3    536at_hdmac.>   sc"nd"=sizeof_66"> 166      3     388ide=chande=at_s_ arprepfslaveaf">at_3  256 d  /atrequest_mem1epgi_an" hacrsc.c#L2 251aa/at_hdm_dum4L256"> 256">nelLnoL2idle"? href=2n53  hacrsc.c#L2 251aa/at_hdm_dum=csize10==3dria>) {
(st251 3d st25 {
=mfrirq"ddddddddddref="+codeh_at_i3     3sve"dr; 251 3    5371017 i_an" hacrsc.c#L2 251aa/at_hdm_dumookie<3span 5     1199">11NOMEM 35me="3167"> an" hacrsc.c#L2 251aa/at_hdm_dumor11t3=11t"=="L194"> 19410bl_irqr0_an" hacrsc.c#L2 251aa/at_hdm_dumoa565      !/a565           sc"nd"="3256">39>hacrirqrefrep>=ma"_>9" iddddddddddrerspin_upla3_3339" i/a565           s3"n*ap3mask"_    3sve"dr;151="dria>) {
="drdriae"_is_ena:irqrefrep>=ma"_>9" iddddddddddrert_hdm_dumdL2idle"? href=2"ve"dr;12ra/at_3dmac.c#L157" id="L157" cl3s5="l3n1028 4lass=10eparr a memcpy ha an" class="s ne"   a/at_);
hacrsc.c#L2 251aa/at_hdm_dumo 166 3e"  3"frmask href="(13 251 2    52810a9 4lass=105="linc.c#5me="siznr<4" "_resourceev_vdbd) {
 3    53  ep>=    3sve"dr;9" iddddddddddrer   sc"nd"=ode=chasc l_iL25r>10=="dr3a>) {39t_hdm_dum4=laspin_un_tmp_efnis_i>o*purdblatomc_10_no>11s_i>o*purdetr11t3=1ha an" c3_nelLnoL2idle"? href=3re.las5="l3ne" n5me="L251"> 251 3    532107n href="+c {
( vp"_oirqre hora n5s_ 1s_ipu3 4lass=10>cookienelLnoL2idle"? href=3re.las5="l3ne" n5me="L251"> 251 3    532107n href="+4   *af">at_3  251 :irqrefrep>=ma"_>9" iddddddddddr4 4lass=11t4> * atc_chain_completr11t4s5n l4_dma3cff"an2de    3sve"dr;nelLnoL2idle"? "sNUCL);
 251 3    532107n href="+4 2lass=11t4>="L194"> 194 _per_ > 251r nss="na> n la_dma3chan *mmon" c3 {
);
 251 3    532107n href="+4 3lass=11t4>/a565           sc"nd"="4elLno42idle"    3sve"dr; vp"_oirqre hora n5s_ aleocmar11a c>:irqrefrep>=ma"_>9" iddddddddddr4 4lass=11t4>3339" i/a565           s4BUG1 40a=="L194"> 194nelLnoL2idle"? href=3u811a="dri3chan *af">at_3    53010 8 4lass=10/a>{
 241r nss="epg> hre"L2" 4d="L147" cla    3sve"dr;10=="dria>) :irqrefrep>=ma"_>9" iddddddddddr4 6"nepg> 241"  3"frmask href="(14">nel40h/0reDMA_BTCannelLnoL2idle"? href=3rhd4dble31107n4href="+code=dma_ efn )
(strspin_upla2t107n href="+code=dma_ efn )
 * atc_chain_compl4e=chan2din4ulkev(&hacrsc.c#L2 251aa/at_hdm_du4rs/dma/35=4li311082 4lass=10aetd5="l4nc.c#4me="ISf=cio&adria>) {
nelLnoLexf=13dh5quotd_iniia1 4lasode=cremovde=chasc l_iL25rasode=cremovda>) &=1066"> 166      5     1_d (&);
nelLnoL2idle"? href=2"54);
n4lLnoL2idle"? href=3_fn la4dma3e4f"an2dev(&idle"? href=2"ve"dr; *(stric11as=>11aa/at_h1078  aleocmae href="+coan" cla="l3n1028 4lass=10eparr a memcpg ha an" class="s ne"   a/at_nelLnoL2idle"? href=3rhd4ss=114lass410="sNUCL);
 d  /at/a>frL2d 256 d  /atdin_unsabl_irq , ass=10as="sridos56 d  /at/a>frL256nelLnoL2idle"? href=3rhd4s4lass=11t4="+code=chan_common" c3as4=
3a1417 href="+e="Lria>) {
nelLnoL2idle"? href=2"ae"i (stric11as=>4   10=="dria>) {
 251 3    53110a944lass4105="linc.c#5me="t_f="droff="="+code=chan2
nelLnoL2idle"? href=3rhd4ode=dma_ e4n )
rps_ arissue_pass=ngbl_i"13  asyn=3ef"lincunUSY>st251 3d st25 {
=mfrirq"ddddddddddref="+codeh_at_i3     3sve"dr; 251 3    5371017 i_an" hacrsc.c#L2 251aa/at_hdm_du4ble\n"4/s"dat_hdmac.c#L219" i4" 4de=" 414aa/at_hdmac.c#) href="+e="Laf">nelLnoL24="trf="dri4terrupt="dria>) {
o,/0vdbg( d  /atdin_unsannelLnoL2idle"? dac.c#L219" i4" ide=" ian 5     1199">11NOMEM _an" hacrsc.c#L2 251aa/at_hdm_du4ac.c#a3>/*4unmap diptor %u c3adb4e321042ef="+code=chan2dev" class="s="L157" cl3s5="l3n1028 4lass=10eparr a memcpy ha an" class="s ne"   a/at_);
hacrsc.c#L2 251aa/at_hdm_du419" i4" id4= href="+code=dma_ efn )
4a hre4="+c13a>121="dri3>) {
 251 2    52810a9 4lass=105="linc.c#5me="siznr<4" "_resourceev_vdbd,  * at 739"le"? e" __is__entry_safaf">nelLnoL2idlele"? e" __is__entry_safa1"> 251 2    5286 d  /atdin_unsabl_irq , ss=10as="sridos56 d  /at/a>frL256 251r nss="epg> hre"+8           sc"n*a_epg> 251r nss="/a_epg>bl_i5, ) {
nelLn5me="L251"> 251 3    536at_hdmac4ibblatomc_40_no>111areate a <4"  of04>>sis4214aa/at_hdmac.c#e6f="/a>o,/0vdbg( 240{
 194frL256"> 256 d  /at/a>frL256">_dumre hor ne"_oLss_ at(strspin_u3ss_ a0a9 4=laspin_un_tmp_>oLss_ at(sto_56"> 256 d  /at/a>frL2to_56"> 256 251 2    5286 d  /atdin_unsabl_irq a_an" d     3s52  /* unmDo*purd;u c3adblehref=cha an" class="s ne"   a/at_ 166      5     4_let>42irqre hor ne"_orps_ arprepfdin_udddd>o*purd3"52  (&>o*purd3"52   d  /atdin_unsabl_irq de=dma_ efn )
d);
<4 hre/a565           sc>oLss_ at(stirq&adr>o*purdblatomc_10_no>1tirq&adr>o*purd {
=mfrirq"_is_enable );
) {
d 4p"_o*ap_mask"_resourceev_vd*ap_maskb4p;nelLnoL2idle"? h4ef=3e4121="dri3>) {
      sc>oLss_ at(stirq&adrkili4" ide=" ian 5 tirq&adrkili {
=mfrirq"_is_enable );
) {
d 251 3    5331024 4lass=10le"? dopeha an" class="le"? dop {
=mfrir6 d  /atdin_unsabl_irq de=dma_ efn )
 240{
d 255  4   5 4spa51053ave"drcompletr11t3=11t"> * atc_chain_compl4nelpar let4er3e>12ra/at_3dmac.c#L1574 id="43_oirqre hora n5s_ aleocmar11a c>11aa4 hre,/5="l4nc.c#5me="EBCISR>129a/at_4dmac.43r3f>12ra/at_3dmac.c#L157" idis_i>o*purdblatomc_10_no>11s_i>o*purdetr11t3=1ha an" c3_nelLnoL2idle"? href=3re.las5="l3ne" n5me="L251"> 251 3    532107n href="+4as5="l3>/*4unmap diptor %u c3adb4e3n104305="linc.c#5me="t_f="droff="driapu3 4lass=10>cookienelLnoL2idle"? href=3re.las5="l3ne" n5me="L251"> 251 3    532107n href="+4"_resource4v_vd*purdrlax"_is_" href=4+e="L435me="L251"> 251 3    5321051 4lass=14ref="#a3) 4
nelLnoL2idle"? "sNUCL);
 251 3    532107n href="+4>10=a104" 4d=INIT_-> 194at_dma3chan *ass=10{
);
 251 3    532107n href="+4*_per_ > 241r nss=" _per_ > cla)4href=4+e="Laf">nelLnoL2idle"? href=3d>121="dri34 {
nelLnoL2idlef="+coan" cla="+e="Laass="s ne"   a/at_111alear any paIORESOURCE_no>5me="siz"L251"> 251 3    532107n href="+4*m_ser10 v4lat_3339" i/a565         4 sc"n4a> _per_ > 251r nss="na> leocmar1c#L219" i4" ide=" ian 5    ocmar1c#L219" i4etr11t3=1ha an" c3_<1NOMEM hre href="+e="Laf">nelLnoL2idle"? href=3u811a="dri3chan *af">at_3    5Laf">nr11a c>11aa/at_haf">n9" i/a565           sc"nn51< 251r nss="n51< hre)"L2" iz"L251"> 251 3    532107n href="+4*href=3r6n44aa/at_hdmac.c#4=laspin_u4_tmp_44>hacrirqrefrep>=ma"_>9" iddddddddddr4ass=10cook4e, 44a=="L194"> 194nelLnoL2idle"? href=3rhd4a "341027 4lass=10{
) {
    5aspi4_un_tmp_efn qrehannel"dr14"> >14aa/at_hdmac.c#bl_irqr0_an" hacrsc.c#L2 251aa/at_hdm_du46 d  /4t/a>frL256">_dumre hor ne4_4Lss_ acompletr11t3=11t"> * atc_chain_compl4> 256 4  /atdin_unsabl_irqre hor4ne"_<444aa/at_hdmac.c#) href="+e="Laf">nelLnoL24l_i/a_epg>4251r nss="/a_epg>bl_i4 i/e=4ma_an"f=cio&avoidchasc l_i/a>frL256"> 25shutdowa> d  /at/a>frL256">_dushutdowaa>) &=1066"> 166      5     1_d (&);
nelLnoL2idle"? href=2"54aro_f">af"4at_3  *4a hre4 hora  wdo slaves10f: cu wtrigg3" cyclic t4
    5aspin_un_tmp_ef4 qreh4nnel"dr10"> >1idle"? href=2"ve"dr; *(stric11as=>11aa/at_h1078  aleocmae href="+coan" cla="l3n1028 4lass=10eparr a memcpg ha an" class="s ne"   a/at_nelLnoL2idle"? href=3rhd4eh_at_i3     3ss="sref"i3>) {
 * at 739"="+code=chan2
nelLnoL2idle"? href=3rhd4ess=10cook4p_efn qrehannel"dr10"> >14aa/at45a=="L194"> 194o*purdblatomc_10_no>11s_i>o*purdetr11t3=1ha an" c3_nelLnoL2idle"? href=3re.las5="l3ne" n5me="L251"> 251 3    532107n href="+4ass="squeu4ide=) href="+e="Laf">nelL4oL2id4e"? hrcompletr11t3=11t"> * atc_chain_compl4in_unsabl_4) href="+e="Laf">nelLnoL24dle"?45chan2
 >14aa/at_h4mac.c4e6f="+f=cio&adria>) {
) &=1066"> 166      5>at_3 =maddddddref=a_an" nelLnoL2idle"? href=2"54a 256 4f)_un_tmp_efn qrehannel"d410"> 414aa/a wdo slaves10f: cu wtrigg3" cyclic t4
_i/a_epg>43/*4las5="l3ne" n5me="L254"> 254 3    5361=1066"> 166      5     1_d (&);
oLss_ at(sto_     1_d =maddddddref=a_an"  251 3    532107n href="+4c#> 4lass=40="sNUCL);
 *(stric11as=>11aa/at_h1078  aleocmae href="+coan" cla="l3n1028 4lass=10eparr a memcpg ha an" class="s ne"   a/at_nelLnoL2idle"? href=3rhd4=10bemu wi4blatomc_10_no>111s t basm4rou >1idle"? href=2"ve"dr; 256 d  /at/a>frL2>_dumre hor nass=10as="sridos6 d  /atdin_unsabl_irq , ass=10as="sridos56 d  /at/a>frL256nelLnoL2idle"? href=3rhd4ne"_or4s_ arirqrefrep>=ma"_>4251r 46_c  3a*clas5="l3) {
hacr4rqrefrep>=ma"_> 251r 4ss="<46completr11t3=11t"> * at 739"le"? e" __is__entry_safaf">nelLnoL2idlele"? e" __is__entry_safa1"> 251 2    5286 d  /atdin_unsabl_irq , ss=10as="sridos56 d  /at/a>frL256 251r nss="epg> hre"+8           sc"n*a_epg> 251r nss="/a_epg>bl_i5, ) {
nelLn5me="L251"> 251 3    536at_hdmac4f="+codeh_4t_i3     3"ae"i  240{
 d  /atdin_unsabl4irqre46"? href=3vve"dr;frL256"> 256 d  /at/a>frL256">_dumre hor na>oLss_ at(strspin_u3ss_ a0a9 4=laspin_un_tmp_>oLss_ at(sto_56"> 256 d  /at/a>frL2to_56"> 256 251 2    5286 d  /atdin_unsabl_irq a_an" d 254 d  /atdin_unsabl_irq4e hor46r letfer3 >12ra/at_3ef1aa/at_hdm_dumvdbg(, dmace=dmompleace=d(excep, > 238< orps_ arprepfslavedddddbl_cis& d  /atdin_unsdddddbl_cis&at_dma3refdbl_cis&ref=s=etr11t3=1ha an" c3_nelLnoL2idle"? href=2"54n_unsabl_i4qre hor ne"_orpsr11a 4>11aa46irqre hor ne"_orpppppppppbl_irqr emu wibblatomc_1AGAIin_unsabl_irqre hAGAIi2assf="+e="Laf">nelLnoL2idle"? href=3rhd4n_i/a_epg>4t prep
rou * atc_chain_compl4"L256"> 254 d  /atdin_unsabl_irq4e hor47/as5="l3ne" nbl_irqr0_an" hacrsc.c#L2 251aa/at_hdm_du4_i"""> 1944/a> * atc_chain_compl4"e"_or46"> 256 d  /atdin_uns4bl_ir47_c  3a*clas5="l3) {
 f=cio&avoidchasc l_i/a>frL256c_susn_co&ref=s=10="3hf">at_dma3refsusn_co&ref=s=a>) &=1066"> 166      556"> 256 d  /at/a>frL256">_dumre hor na>oLss_ at(strspin_u3ss_ a0a9 4=laspin_un_tef="+e="Laf">nelLnoL2idle"? href=2"54 _3710 6 44ass=10cookie,  256 d  /atdin_uns4bl_ir4re hor ne"_ 256 d  /at/a>frL2>_dumre hor nass=10as="sridos6 d  /atdin_unsabl_irq ane hor ne"_oac.c#add187" cl3s5=9l35107n href="+code=dma_ efn )
 251hacrsc.c#L2 251aa/at_hdm_du4_L256"> 254="L194"> 194nelLnoL2idle"? href=3dddb#L2kg_3>/* C"Laf"> should be pauie 256 d  /atdin4unsab4_irqree"? href=3dddb#L2kg_3>ppppppppp*;u cit=anyway evena>orit=is not;u ne alvalua>ha an" class="s ne"   a/at_ 254 d  /atdin_unsabl_irq4e hor4ne"_orps_ at_dma3refdbl_cis&pauie *4aro_f4>af"" cl3s5=1l3810r3 4lass=10 hrtor d  /at/a>frL2>hrewara1"> 251 2    5286 251 2    5286 d  /atdin_unsabl_irq a5me="L251"> 251 3    536at_hdmac4a href="dr4vers/dma/3a>) {381114 4la4s=11t4821="dri3>) {
      sc>a an" class="s ne"   a/at_ > 238< "Laf"> not;pauie<, should be u ne by  "Laf"> uier>);
/* unmap diptor %4tr11t3=11t4in_completr11t3=11t"> * a4 739"48L251"> 251 3    5331024 4lass=10 {
 d  /atdin_unsr nsPAUSE5me="siz"L251"> 251 3    532107n href="+4/a565     4     sc"nepg> 251letr11t3411t"i48pa51053ave"drcompletr11t3=11t"> * atc_chain_compl44=laspin_u4_tmp_efn qrepne" n5me="L147"> v4"_oirqre hora n5s_ aleocmar11a c>11aa4at_hdm_dum4dddddddddref="+codeh_at_i4 4   3s="sredto<3"? href=3dddb#L2kg_3>/* now023 ierve addiace=al " cl=10co > 238 166 4    5     1_d 123"? href=3dddb#L2kg_3>/* next=114lass=10 add3 is/a>,theo > 238p_mask"_r4me="size10=="dria>) {
rps_ arissue_pass=ngbl_i" i187" cl3s5=9l35107n href="+code=dma_ efn )
 25d4la811a="dri3chan 25d4laun_tmp_>oLss_ at(s "Laf">>ialize id="L23s drla "Laf">>ializetr11t3=1ha an" c3_af">at_3 d   sc"nd"4sizeof_66"> 166      4     484aa/at_hdmac.c#) href="+e="Laf">nelLnoL244L256"> 254">nelLnoL2idle"? href=2n54   194d) {
( * atc_chain_compl4ookie<4span 5     1199">11NOMEM 45me="4167"> an" hacrsc.c#L2 251aa/at_hdm_du4or11t3=11t4=="L194"> 194) {
href=susn_co&no) &=1066"> 166      5>at_3 =maddddddref=a_an" nelLnoL2idle"? href=2"54oa565     4!/a565           sc"nd"="4256">49>hacr wdo slaves10f: cu wtrigg3" cyclic t4rspin_upla4_3339" i/a565           s4"n*ap497 href="+e="Lria>) {
(&);
oLss_ at(sto_     1_d =maddddddref=a_an"  251 3    532107n href="+4rt_hdm_dum4L2idle"? href=2"ve"dr; *(stric11as=>11aa/at_h1078  aleocmae href="+coan" cla="l3n1028 4lass=10eparr a memcpg ha an" class="s ne"   a/at_nelLnoL2idle"? href=3rhd4o 166 4e"  3"frmask href="(14 256 d  /at/a>frL2>_dumre hor nass=10as="sridos6 d  /atdin_unsabl_irq , ass=10as="sridos56 d  /at/a>frL256nelLnoL2idle"? href=3rhd4size10=="d4ia>) {
 4    5495me="L251"> 251 3    5321051 4lass=14r   sc"nd"4ode=chasc l_iL25r>10=="dr4a>) {49t_hdm_dum4=las"? href=3dddb#L2kg_3>/* 23 ierve " cl=ef=cha an" class="s ne"   a/at_( vp"_oirqre hora n5s_ le"? e" __is__entry_safaf">nelLnoL2idlele"? e" __is__entry_safa1"> 251 2    5286 d  /atdin_unsabl_irq , ss=10as="sridos56 d  /at/a>frL256 251r nss="epg> hre"+8           sc"n*a_epg> 251r nss="/a_epg>bl_i5, ) {
nelLn5me="L251"> 251 3    536at_hdmac5   *af">at_3  251( 240{
 * atc_chain_completr11t5s5n l5021="dri3>) {
      sc+code=chasc l_i/a>frL256"> 256 d  /at/a>frL256">_dumre hor na>oLss_ at(strspin_u3ss_ a0a9 4=laspin_un_tmp_>oLss_ at(sto_56"> 256 d  /at/a>frL2to_56"> 256 251 2    5286 d  /atdin_unsabl_irq a_an" d="L194"> 194at_dma3refdbl_cis&ref=s=etr11t3=1ha an" c3_nelLnoL2idle"? href=2"55 4lass=11t5>3339" i/a565           s5BUG1 5014aa/at_hdmac.c#e6f="/a>o,/0vdbg(at_dma3refsusn_co&ref=s=a>) &t3=1ha an" c3_d 251r nss="epg> hre"L2" 5d="L150"? href=3vve"dr; *>ialize id="L23s drla "Laf">>ializetr11t3=1ha an" c3_d 251"  3"frmask href="(15">nel50h/0reDMA_BTCacompletr11t3=11t"> * atc_chain_compl5dble31107n5href="+code=dma_ efn )
rps_ arissue_pass=ngbl_i" i/e=dma_an" hacrissue_pass=ng 251r nss="s> 25ima811a="dri3chan 25imaun_tmp_>oLss_ at(sde=crelize id="L23s drlade=crelizetr11t3=1ha an" c3_hacrissue_pa"> 256 d  /atdBCIMo_f">af">at_3 d10=="dr5v_vd*504aa/at_hdmac.c#) href="+e="Laf">nelLnoL25e=chan2din5ulkev(& vp"_oir"? href=3dddb#L2kg_3>/* >o*purda_an"ap diptor &ef=cha an" class="s ne"   a/at_);
nelLnoL2idle"? href=3rhd5);
o*purdblatomc_10_no>11s_i>o*purdetr11t3=1ha an" c3_nelLnoL2idle"? href=3re.las5="l3ne" n5me="L251"> 251 3    532107n href="+5+e="Laf">n5lLnoL2idle"? href=3_fn la5dma3e51ar letfer2>10bl_irqr0_an" hacrsc.c#L2 251aa/at_hdm_du5ss=114lass510="sNUCL);
 * atc_chain_compl5s4lass=11t5="+code=chan_common" c3as5=
3a151_oirqre hora n5s_ aleocmar11a c>11aa5   frL256c_3 iume&ref=s=10="3hf">at_dma3ref3 iume&ref=s=a>) &=1066"> 166      556"> 256 d  /at/a>frL256">_dumre hor na>oLss_ at(strspin_u3ss_ a0a9 4=laspin_un_tef="+e="Laf">nelLnoL2idle"? href=2"55e" n5me="L551"> 251 3    53110a954lass5105="l wdo slaves10f: cu wtrigg3" cyclic t5ode=dma_ e5n )
rps_ arissidle"? href=2"ve"dr; *(stric11as=>11aa/at_h1078  aleocmae hreto_56"> 2> d  /at/a>frL2to_56"> 2etr11t3=1ha an" c3_ 251 251 3    532107n href="+5+8le31107n5/s"dat_hdmac.c#L219" i4" 5de=" 514aa/at_hdmac.c#) href="+e="Laf">nelLnoL25="trf="dri5terrupt="dria>) {
 vp"_oir"? href=3dddb#L2kg_3>/* 3 itore  "Laf"> /a565 =10co > 238<114lass=10s/*5unmap diptor %u c3adb5e321052ef="+e"? href=3dddb#L2kg_3>ppppppppp*;next=114lass=10 a>,theo > 238) {
>arr opeha an" class=" "Laf">>arr opetr11t3=1ha an" c3_af">at_3  251 3    532107n href="+5rm_ser10 v5333    5,  _per_ > 251r nss="na>  "Laf">>arr opeha an" class=" "Laf">>arr opetr11t3=1ha an" c3_af">at_3  251 3    532107n href="+5rs=114lass5la_dma3>/* unmap diptor &537;u 52completr11t3=11t"> * at 739" "Laf">>arr opeha an" class=" "Laf">>arr opetr11t3=1ha an" c3_ 251 3    532107n href="+5r4lass=11t50_no>111areate a <4"  of05>>sis52a=="L194"> 194>arr opeha an" class=" "Laf">>arr opetr11t3=1ha an" c3_ 251 3    532107n href="+5r   19412ra/at_3dmac.c#L157" idi"Laf">>arr opeha an" class=" "Laf">>arr opetr11t3=1ha an" c3_af">at_3  25d4laun_tz"L251"> 251 3    532107n href="+5r" n5me="L5areate    5( 256 d  /atCHEo_f">af">at_3  251 3    5321051 4lass=15dumvdsizeo5_66"> 166      5     5_let>52t_hdm_dum4=las"? href=3dddb#L2kg_3>/*  "Laf"> pauie /a565 =should be removdd by  "Laf"> uier=cha an" class="s ne"   a/at_);
<5 hre/ae"? href=3dddb#L2kg_3>ppppppppp*;Wea9 4not;take,theoiniticiove,to;u cit=here ef=cha an" class="s ne"   a/at_ 5p"_o*ap_mask"_resourceev_vd*ap_maskb5p;nelLnoL2idle"? h5ef=3e53"+c13a>121="dri3>) {
d * atc_chain_compl5phref=3r6n5046 4lass=105"> 255  5   5 53>hacrirqrefrep>=ma"_>9" iddddddddddr5nelpar let5er3e>12ra/at_3dmac.c#L1575 id="53_f=cio&adria>) {
href=3 iume&no) &=1066"> 166      5>at_3 =maddddddref=a_an" nelLnoL2idle"? href=2"55 hre,/5="l5nc.c#5me="EBCISR>129a/at_5dmac.53r3f>1 wdo slaves10f: cu wtrigg3" cyclic t5as5="l3>/*5unmap diptor %u c3adb5e3n1053h/0reDMA_BTCaidle"? href=2"ve"dr;(&);
oLss_ at(sto_     1_d =maddddddref=a_an"  251 3    532107n href="+5"_resource5v_vd*purdrlax"_is_" href=5+e="L53/a>rps_ arissidle"? href=2"ve"dr; *(stric11as=>11aa/at_h1078  aleocmae href="+coan" cla="l3n1028 4lass=10eparr a memcpg ha an" class="s ne"   a/at_nelLnoL2idle"? href=3rhd5ref="#a3) 5
 256 d  /at/a>frL2>_dumre hor nass=10as="sridos6 d  /atdin_unsabl_irq , ass=10as="sridos56 d  /at/a>frL256nelLnoL2idle"? href=3rhd5>10=a104" 5d=INIT_->hacrsc.c#L2 251aa/at_hdm_du5*_per_ > 251r nss=" _per_ > cla)5href=540_hdm_dum4=las"? href=3dddb#L2kg_3>/* b ne" backa_an"ap diptor &ef=cha an" class="s ne"   a/at_11s_iamp;nelLnoL2idle"? href=3re.las5="l3ne" n5me="L251"> 251 3    532107n href="+5*m_ser10 v5lat_3339" i/a565         5 sc"n5a> _per_ > 251r nss="na> dreparr opeha an" class="ss5="l3) {etr11t3=1ha an" c3_ 256 d  /atdin_unsabl_irqre hor ne"_orps_ arsc.c#L2 251r nss="rps_ arsc.c#L2bl_i" i/e=dma_an" hacrsc.c#L2 251aa/at_hdm_du5*href=3r6n54aa/at_hdmac.c#4=laspin_u5_tmp_54>hacrirqrefrep>=ma"_>9" iddddddddddr5ass=10cook5e, 54a=="L194"> 194"? href=3dddb#L2kg_3>/*  lear=any n_cone" u c3adble&ef=cha an" class="s ne"   a/at_{
hacrissue_pa"> 256 d  /atdBCISo_f">af">at_3 nelLnoL2idle"? href=2"55>    5aspi5_un_tmp_efn qrehannel"dr15"> >154r letfer3 >12ra/at_3efelLnoL2idle"? hpualeoaxf=3re.las5="l3nepualeoaxetr11a_an" hacrsc.c#L2 251aa/at_hdm_du5*_resource5t/a>frL256">_dumre hor ne5_545me="L251"> 251 3    5321051 4lass=15> 256 5  /atdin_unsabl_irqre hor5ne"_<54t_hdm_dum4=las"? href=3dddb#L2kg_3>/* 3 itore /> 2d " cl=ef=cha an" class="s ne"   a/at_5251r nss="/a_epg>bl_i5 i/e=54rrupt/a>o,/0vdbg( 256 d  /atdBCIEo_f">af">at_3 nelLnoL2idle"? s> 25ima811a="dri3chan 25imaun_ta_an" hacrsc.c#L2 251aa/at_hdm_du5aro_f">af"5at_3  *5a hre55ef="+code=chan2dev" class="sle"? e" __is__entry_safaf">nelLnoL2idlele"? e" __is__entry_safa1"> 251 2    5286 d  /atdin_unsabl_irq , ss=10as="sridos56 d  /at/a>frL256 251r nss="epg> hre"+8           sc"n*a_epg> 251r nss="/a_epg>bl_i5, ) {
nelLn5me="L251"> 251 3    536at_hdmac5
    5aspin_un_tmp_ef5 qreh5521="dri3>) {
      sc/a>o,/0vdbg( 240{
     3ss="sref"i3>) {
 251 3    5+code=chasc l_i/a>frL256"> 256 d  /at/a>frL256">_dumre hor na>oLss_ at(strspin_u3ss_ a0a9 4=laspin_un_tmp_>oLss_ at(sto_56"> 256 d  /at/a>frL2to_56"> 256 251 2    5286 d  /atdin_unsabl_irq a_an" d14aa/at_5dmac.c#e6f="+code=chasc l5ircdo55>hacrirqrefrep>=ma"_>9" iddddddddddr5ess=10cook5p_efn qrehannel"dr10"> >15aa/at5514aa/at_hdmac.c#e6f="4>arr opeha an" class=" "Laf">>arr opetr11t3=1ha an" c3_ 25cf565           scs> 25cf5un_ta_an" dnelL5oL2id55"? href=3vve"dr;orps_ arprepfslavedddddbl_cis&ref=s=10="3hf">at_dma3refdbl_cis&ref=s=etr11t3=1ha an" c3_nelLnoL2idle"? href=2"55in_unsabl_5) href="+e="Laf">nelLnoL25dle"?55r letfer3 >12ra/at_3e.c#e6f="4at_dma3ref3 iume&ref=s=a>) &t3=1ha an" c3_d >14aa/at_h5mac.c55/a>rps_ arisscompletr11t3=11t"> * atc_chain_compl5a 256 5f)_un_tmp_efn qrehannel"d510"> 55t_hdm_dum4=labl_irqr0_an" hacrsc.c#L2 251aa/at_hdm_du5
_i/a_epg>53/*4las5="l3ne" n5me="L255"> 255 3completr11t3=11t"> * atc_chain_compl5c#> 4lass=50="sNUCL);
o*ap_mask"_resourceev_vd*ap_maskb5=10bemu wi5blatomc_10_no>111s t basm5rouev_pm_ophiide=) href="+e>ev_pm_oph_hdm_hasc l_i/a>frL256"> 25>ev_pm_ophiide=) href="+e56"> 25>ev_pm_ophun_tmp_ wdo slaves10f: cu wtrigg3" cyclic t5ne"_or5s_ arirqrefrep>=ma"_>5251r 56L251"> 251="+carde=chasc l_iL25r="+carda>) mp_>oLss_ at(sa href=="+carde=chasc l_iL25rasode=c="+carda>) 5me="L251"> 251 3    536at_hdmac5" hacr5rqrefrep>=ma"_> 251r 5ss="<56completr11t3=a href=ci&adria>susn_co&no) mp_>oLss_ at(sa href=susn_co&nohref=susn_co&no) 5me="L251"> 251 3    536at_hdmac5"ss=10cook5t_i3     3"ae"i 3 iume&no) mp_>oLss_ at(sa href=3 iume&nohref=3 iume&no) 5me="L251"> 251 3    536at_hdmac5"hre,/5="l5 256 d  /atdin_unsabl5irqre56"? hr}_an" hacrsc.c#L2 251aa/at_hdm_du5"L256"> 255 d  /atdin_unsabl_irq5e hor56chan2
(_nr<4_hdm_hasc l_i/a>frL256"> 25>_nr<4fnhain_; 25>_nr<4un_tmp_ wdo slaves10f: cu wtrigg3" cyclic t5n 256 5qre hor ne"_orpsr11a 5>11aa56irqre hor ne"a href=ci&adria>3 movde=chasc l_iL25rremovda>) e.c#e6f="p_>oLss_ at(soLexf=_de=" ian 5     1oLexf=_da>) &t3=1ha an" c3_) a5me="L251"> 251 3    536at_hdmac5n_i/a_epg>5t prep
roushutdowa> d  /at/a>frL2shutdowaa>) c#e6f="p_>oLss_ at(sa>href=shutdowa> d  /at/a>frL256">_dushutdowaa>) 5me="L251"> 251 3    536at_hdmac5"L256"> 255 d  /atdin_unsabl_irq5e hor57/as5="l3ne" na href=ci&adria>id_tp;1id_tp;) c#e6f="p_>oLss_ at(sa>> 25>evtypehiide=) href="+e56> 25>evtypeha>) 5me="L251"> 251 3    536at_hdmac5"10bemu wi5/a>>_nr<4fnhain_;_nr<4un_tmp_ wdo slaves10f: cu wtrigg3" cyclic t5"e"_or56"> 256 d  /atdin_uns5bl_ir57L251"> 251 3    5a href=ci&adria>tdinfnhain_; 2=c>a an" class="s ne"   a/at_gg3" cyc;
 251 3    536at_hdmac5" hacr5etd5="linc.c#5me="din_has5cap 257 d  /atdin_hasrcaa href=ci&adria>=mfnhain_; d  /ane hor ne"_oac.c#add"> 25>ev_pm_ophiide=) href="+e56"> 25>ev_pm_ophun_t5me="L251"> 251 3    536at_hdmac5"ss=10cook5ass=10cookie, of_mef"i_tp;1of_mef"i_tp;) mp_>oLss_ at(sof_mef"i_pt4fnhain_;) &t3=1ha an" c3_>> 25>t_idhiide=) href="+e56m">>> 25>t_idha>) a5me="L251"> 251 3    536at_hdmac5sc"nd"="L256"> 256 d  /atdin_uns5bl_ir5re hor ne"_ 251 3    536at_hdmac5sL256"> 255="L194"> 194hacrsc.c#L2 251aa/at_hdm_du5ap_mask"_r5sourceev_vd*ap_maskbl_i"d5ddddd575me="L251"> 251 3    5321051 4lass=15    sc"nd"5"L256"> 256 d  /atdin5unsab5_irqref=cio&adria>) {
 25inite=" ian 5     156"> 25inita>) &voidef="+e="Laf">nelLnoL2idle"? href=2"55"L256"> 255 d  /atdin_unsabl_irq5e hor5ne"_ *5aro_f58/as5="l3ne" nbl_irqrhref=2"ve"dr;(_nr<4c="obea>) & hor ne"_oac.c#add"> 25>_nr<4fnhain_; 25>_nr<4un_tnr<4" "_resourceev_ode=c="obefnhain_;d * atc_chain_compl5tr11t3=11t5in_completr11t3=11t"> * a5 739"58L251" href=ci&adria>subsys5initcali4" ide=" ian 5 subsys5initcalia>) &t3=1ha an" c3_ 25inita>) 5_an" dhacr5     sc"nepg> 251letr11t3511t"i58>hacrirqrefrep>=ma"_>9" iddddddddddr54=laspin_u5_tmp_efn qrepne" n5me="L157"> v58_f=cio&avoidchasc l_i/a>frL2oLexf=e=" ian 5     1oLexf=_hdm_hasc l_i/a>frL256"> 25exf=e=" ian 5     156"> 25exf=a>) &voidef="+e="Laf">nelLnoL2idle"? href=2"55at_hdm_dum5dddddddddref="+codeh_at_i5 58r3f>1 wdo slaves10f: cu wtrigg3" cyclic t5> 166 5    5     1_d (_nr<4cun19" st<4fnhain_;(_nr<4cun19" st<4a>) & hor ne"_oac.c#add"> 25>_nr<4fnhain_; 25>_nr<4un_t5_an" d) {
 * atc_chain_compl5>   sc"nd"5sizeof_66"> 166      5     584aa/ane"_oac.c#amodule5exf=e=" ian 5     1module5exf=a>) &t3=1ha an" c3_ 25exf=a>) 5_an" d 255">nelLnoL2idle"? href=2n55  hacrsc.c#L2 251aa/at_hdm_du5=csize10==5dria>) {
() &ta an" class="s ne"   a/at_A6m"> AHBa_an"Cp diptor &crsc.c;
/* unmap diptor %5ookie<5span 5     1199">11NOMEM 55me="5167"> t3=1ha an" c3_af">at_3 ) &ta an" class="s ne"   a/at_Nicocla Ferre <nicocla.ferre@56m">.come=dm;
/* unmap diptor %5or11t3=11t5=="L194"> 194MODULE_LICENSE> d  /atdin_unsMODULE_LICENSEa>) &ta an" class="s ne"   a/at_GPL;
/* unmap diptor %5o hacr5!/a565           sc"nd"="5256">59>hacrt3=1ha an" c3_af">at_3 ) &ta an" class="s ne"   a/at_n2dev/* unmap diptor %5o=laspin_u5_3339" i/a565           s5"n*ap597 hre


The origi=al LXR software by theo3a6df"i LXR _i5/* ce=dby 3a6df"i lx4@65 ux.no>, lx4.65 ux.no kindly hostRedpill L5 pro ASa>) , providr &of L5 uxaap sultne" and