Symbol: chan
arch/arm/include/asm/dma.h
102
extern void set_dma_sg(unsigned int chan, struct scatterlist *sg, int nr_sg);
arch/arm/include/asm/dma.h
110
extern void __set_dma_addr(unsigned int chan, void *addr);
arch/arm/include/asm/dma.h
111
#define set_dma_addr(chan, addr) \
arch/arm/include/asm/dma.h
112
__set_dma_addr(chan, (void *)isa_bus_to_virt(addr))
arch/arm/include/asm/dma.h
120
extern void set_dma_count(unsigned int chan, unsigned long count);
arch/arm/include/asm/dma.h
129
extern void set_dma_mode(unsigned int chan, unsigned int mode);
arch/arm/include/asm/dma.h
133
extern void set_dma_speed(unsigned int chan, int cycle_ns);
arch/arm/include/asm/dma.h
141
extern int get_dma_residue(unsigned int chan);
arch/arm/include/asm/dma.h
57
#define clear_dma_ff(chan)
arch/arm/include/asm/dma.h
64
extern void set_dma_page(unsigned int chan, char pagenr);
arch/arm/include/asm/dma.h
70
extern int request_dma(unsigned int chan, const char * device_id);
arch/arm/include/asm/dma.h
76
extern void free_dma(unsigned int chan);
arch/arm/include/asm/dma.h
83
extern void enable_dma(unsigned int chan);
arch/arm/include/asm/dma.h
90
extern void disable_dma(unsigned int chan);
arch/arm/include/asm/dma.h
94
extern int dma_channel_active(unsigned int chan);
arch/arm/kernel/dma.c
100
pr_err("dma%d: freeing active DMA\n", chan);
arch/arm/kernel/dma.c
101
dma->d_ops->disable(chan, dma);
arch/arm/kernel/dma.c
107
dma->d_ops->free(chan, dma);
arch/arm/kernel/dma.c
111
pr_err("dma%d: trying to free free DMA\n", chan);
arch/arm/kernel/dma.c
115
pr_err("dma: trying to free DMA%d\n", chan);
arch/arm/kernel/dma.c
121
void set_dma_sg (unsigned int chan, struct scatterlist *sg, int nr_sg)
arch/arm/kernel/dma.c
123
dma_t *dma = dma_channel(chan);
arch/arm/kernel/dma.c
126
pr_err("dma%d: altering DMA SG while DMA active\n", chan);
arch/arm/kernel/dma.c
138
void __set_dma_addr (unsigned int chan, void *addr)
arch/arm/kernel/dma.c
140
dma_t *dma = dma_channel(chan);
arch/arm/kernel/dma.c
143
pr_err("dma%d: altering DMA address while DMA active\n", chan);
arch/arm/kernel/dma.c
155
void set_dma_count (unsigned int chan, unsigned long count)
arch/arm/kernel/dma.c
157
dma_t *dma = dma_channel(chan);
arch/arm/kernel/dma.c
160
pr_err("dma%d: altering DMA count while DMA active\n", chan);
arch/arm/kernel/dma.c
170
void set_dma_mode (unsigned int chan, unsigned int mode)
arch/arm/kernel/dma.c
172
dma_t *dma = dma_channel(chan);
arch/arm/kernel/dma.c
175
pr_err("dma%d: altering DMA mode while DMA active\n", chan);
arch/arm/kernel/dma.c
184
void enable_dma (unsigned int chan)
arch/arm/kernel/dma.c
186
dma_t *dma = dma_channel(chan);
arch/arm/kernel/dma.c
193
dma->d_ops->enable(chan, dma);
arch/arm/kernel/dma.c
198
pr_err("dma%d: trying to enable free DMA\n", chan);
arch/arm/kernel/dma.c
205
void disable_dma (unsigned int chan)
arch/arm/kernel/dma.c
207
dma_t *dma = dma_channel(chan);
arch/arm/kernel/dma.c
214
dma->d_ops->disable(chan, dma);
arch/arm/kernel/dma.c
219
pr_err("dma%d: trying to disable free DMA\n", chan);
arch/arm/kernel/dma.c
227
int dma_channel_active(unsigned int chan)
arch/arm/kernel/dma.c
229
dma_t *dma = dma_channel(chan);
arch/arm/kernel/dma.c
234
void set_dma_page(unsigned int chan, char pagenr)
arch/arm/kernel/dma.c
236
pr_err("dma%d: trying to set_dma_page\n", chan);
arch/arm/kernel/dma.c
240
void set_dma_speed(unsigned int chan, int cycle_ns)
arch/arm/kernel/dma.c
242
dma_t *dma = dma_channel(chan);
arch/arm/kernel/dma.c
246
ret = dma->d_ops->setspeed(chan, dma, cycle_ns);
arch/arm/kernel/dma.c
251
int get_dma_residue(unsigned int chan)
arch/arm/kernel/dma.c
253
dma_t *dma = dma_channel(chan);
arch/arm/kernel/dma.c
257
ret = dma->d_ops->residue(chan, dma);
arch/arm/kernel/dma.c
28
static inline dma_t *dma_channel(unsigned int chan)
arch/arm/kernel/dma.c
30
if (chan >= MAX_DMA_CHANNELS)
arch/arm/kernel/dma.c
33
return dma_chan[chan];
arch/arm/kernel/dma.c
36
int __init isa_dma_add(unsigned int chan, dma_t *dma)
arch/arm/kernel/dma.c
43
if (dma_chan[chan])
arch/arm/kernel/dma.c
45
dma_chan[chan] = dma;
arch/arm/kernel/dma.c
54
int request_dma(unsigned int chan, const char *device_id)
arch/arm/kernel/dma.c
56
dma_t *dma = dma_channel(chan);
arch/arm/kernel/dma.c
71
ret = dma->d_ops->request(chan, dma);
arch/arm/kernel/dma.c
79
pr_err("dma: trying to allocate DMA%d\n", chan);
arch/arm/kernel/dma.c
92
void free_dma(unsigned int chan)
arch/arm/kernel/dma.c
94
dma_t *dma = dma_channel(chan);
arch/arm/mach-footbridge/dma-isa.c
103
outb(address >> 16, isa_dma_port[chan][ISA_DMA_PGLO]);
arch/arm/mach-footbridge/dma-isa.c
104
outb(address >> 24, isa_dma_port[chan][ISA_DMA_PGHI]);
arch/arm/mach-footbridge/dma-isa.c
106
if (chan >= 4) {
arch/arm/mach-footbridge/dma-isa.c
111
outb(0, isa_dma_port[chan][ISA_DMA_CLRFF]);
arch/arm/mach-footbridge/dma-isa.c
113
outb(address, isa_dma_port[chan][ISA_DMA_ADDR]);
arch/arm/mach-footbridge/dma-isa.c
114
outb(address >> 8, isa_dma_port[chan][ISA_DMA_ADDR]);
arch/arm/mach-footbridge/dma-isa.c
116
outb(length, isa_dma_port[chan][ISA_DMA_COUNT]);
arch/arm/mach-footbridge/dma-isa.c
117
outb(length >> 8, isa_dma_port[chan][ISA_DMA_COUNT]);
arch/arm/mach-footbridge/dma-isa.c
119
outb(mode, isa_dma_port[chan][ISA_DMA_MODE]);
arch/arm/mach-footbridge/dma-isa.c
122
outb(chan & 3, isa_dma_port[chan][ISA_DMA_MASK]);
arch/arm/mach-footbridge/dma-isa.c
125
static void isa_disable_dma(unsigned int chan, dma_t *dma)
arch/arm/mach-footbridge/dma-isa.c
127
outb(chan | 4, isa_dma_port[chan][ISA_DMA_MASK]);
arch/arm/mach-footbridge/dma-isa.c
178
unsigned int chan, i;
arch/arm/mach-footbridge/dma-isa.c
180
for (chan = 0; chan < 8; chan++) {
arch/arm/mach-footbridge/dma-isa.c
181
isa_dma[chan].d_ops = &isa_dma_ops;
arch/arm/mach-footbridge/dma-isa.c
182
isa_disable_dma(chan, NULL);
arch/arm/mach-footbridge/dma-isa.c
216
for (chan = 0; chan < 8; chan++) {
arch/arm/mach-footbridge/dma-isa.c
217
int ret = isa_dma_add(chan, &isa_dma[chan]);
arch/arm/mach-footbridge/dma-isa.c
220
chan, ret);
arch/arm/mach-footbridge/dma-isa.c
44
static int isa_get_dma_residue(unsigned int chan, dma_t *dma)
arch/arm/mach-footbridge/dma-isa.c
46
unsigned int io_port = isa_dma_port[chan][ISA_DMA_COUNT];
arch/arm/mach-footbridge/dma-isa.c
52
return chan < 4 ? count : (count << 1);
arch/arm/mach-footbridge/dma-isa.c
61
static void isa_enable_dma(unsigned int chan, dma_t *dma)
arch/arm/mach-footbridge/dma-isa.c
68
mode = (chan & 3) | dma->dma_mode;
arch/arm/mach-omap1/omap-dma.c
362
struct omap_dma_lch *chan;
arch/arm/mach-omap1/omap-dma.c
378
chan = dma_chan + free_ch;
arch/arm/mach-omap1/omap-dma.c
379
chan->dev_id = dev_id;
arch/arm/mach-omap1/omap-dma.c
386
chan->dev_name = dev_name;
arch/arm/mach-omap1/omap-dma.c
387
chan->callback = callback;
arch/arm/mach-omap1/omap-dma.c
388
chan->data = data;
arch/arm/mach-omap1/omap-dma.c
389
chan->flags = 0;
arch/arm/mach-omap1/omap-dma.c
391
chan->enabled_irqs = OMAP_DMA_DROP_IRQ | OMAP_DMA_BLOCK_IRQ;
arch/arm/mach-omap1/omap-dma.c
393
chan->enabled_irqs |= OMAP1_DMA_TOUT_IRQ;
arch/arm/mach-rpc/dma.c
134
static int iomd_request_dma(unsigned int chan, dma_t *dma)
arch/arm/mach-rpc/dma.c
142
static void iomd_free_dma(unsigned int chan, dma_t *dma)
arch/arm/mach-rpc/dma.c
155
static void iomd_enable_dma(unsigned int chan, dma_t *dma)
arch/arm/mach-rpc/dma.c
192
static void iomd_disable_dma(unsigned int chan, dma_t *dma)
arch/arm/mach-rpc/dma.c
205
static int iomd_set_dma_speed(unsigned int chan, dma_t *dma, int cycle)
arch/arm/mach-rpc/dma.c
221
switch (chan) {
arch/arm/mach-rpc/dma.c
265
static void floppy_enable_dma(unsigned int chan, dma_t *dma)
arch/arm/mach-rpc/dma.c
299
static void floppy_disable_dma(unsigned int chan, dma_t *dma)
arch/arm/mach-rpc/dma.c
306
static int floppy_get_residue(unsigned int chan, dma_t *dma)
arch/arm/mach-rpc/dma.c
323
static void sound_enable_disable_dma(unsigned int chan, dma_t *dma)
arch/m68k/include/asm/mac_asc.h
18
#define ASC_FREQ(chan,byte) ((0x810)+((chan)<<3)+(byte))
arch/m68k/mac/iop.c
310
int iop_listen(uint iop_num, uint chan,
arch/m68k/mac/iop.c
315
if (chan >= NUM_IOP_CHAN) return -EINVAL;
arch/m68k/mac/iop.c
316
if (iop_listeners[iop_num][chan].handler && handler) return -EINVAL;
arch/m68k/mac/iop.c
317
iop_listeners[iop_num][chan].devname = devname;
arch/m68k/mac/iop.c
318
iop_listeners[iop_num][chan].handler = handler;
arch/m68k/mac/iop.c
331
int chan = msg->channel;
arch/m68k/mac/iop.c
344
IOP_ADDR_RECV_STATE + chan, IOP_MSG_COMPLETE);
arch/m68k/mac/iop.c
378
static void iop_handle_send(uint iop_num, uint chan)
arch/m68k/mac/iop.c
384
iop_writeb(iop, IOP_ADDR_SEND_STATE + chan, IOP_MSG_IDLE);
arch/m68k/mac/iop.c
386
if (!(msg = iop_send_queue[iop_num][chan])) return;
arch/m68k/mac/iop.c
389
offset = IOP_ADDR_SEND_MSG + (chan * IOP_MSG_LEN);
arch/m68k/mac/iop.c
394
iop_num, chan, IOP_MSG_LEN, msg->reply);
arch/m68k/mac/iop.c
399
iop_send_queue[iop_num][chan] = msg;
arch/m68k/mac/iop.c
400
if (msg && iop_readb(iop, IOP_ADDR_SEND_STATE + chan) == IOP_MSG_IDLE)
arch/m68k/mac/iop.c
409
static void iop_handle_recv(uint iop_num, uint chan)
arch/m68k/mac/iop.c
417
msg->channel = chan;
arch/m68k/mac/iop.c
419
msg->handler = iop_listeners[iop_num][chan].handler;
arch/m68k/mac/iop.c
421
offset = IOP_ADDR_RECV_MSG + (chan * IOP_MSG_LEN);
arch/m68k/mac/iop.c
427
iop_num, chan, IOP_MSG_LEN, msg->message);
arch/m68k/mac/iop.c
429
iop_writeb(iop, IOP_ADDR_RECV_STATE + chan, IOP_MSG_RCVD);
arch/m68k/mac/iop.c
450
int iop_send_message(uint iop_num, uint chan, void *privdata,
arch/m68k/mac/iop.c
457
if (chan >= NUM_IOP_CHAN) return -EINVAL;
arch/m68k/mac/iop.c
466
msg->channel = chan;
arch/m68k/mac/iop.c
471
if (!(q = iop_send_queue[iop_num][chan])) {
arch/m68k/mac/iop.c
472
iop_send_queue[iop_num][chan] = msg;
arch/mips/alchemy/common/dbdma.c
257
u32 used, chan;
arch/mips/alchemy/common/dbdma.c
305
chan = 0;
arch/mips/alchemy/common/dbdma.c
321
ctp->chan_index = chan = i;
arch/mips/alchemy/common/dbdma.c
323
dcp += (0x0100 * chan);
arch/mips/alchemy/common/dbdma.c
351
return (u32)(&chan_tab_ptr[chan]);
arch/mips/alchemy/common/dma.c
104
struct dma_chan *chan;
arch/mips/alchemy/common/dma.c
107
chan = get_dma_chan(i);
arch/mips/alchemy/common/dma.c
108
if (chan != NULL)
arch/mips/alchemy/common/dma.c
110
i, chan->dev_str);
arch/mips/alchemy/common/dma.c
144
struct dma_chan *chan;
arch/mips/alchemy/common/dma.c
163
chan = &au1000_dma_table[i];
arch/mips/alchemy/common/dma.c
172
chan->irq_dev = irq_dev_id;
arch/mips/alchemy/common/dma.c
173
ret = request_irq(chan->irq, irqhandler, irqflags, dev_str,
arch/mips/alchemy/common/dma.c
174
chan->irq_dev);
arch/mips/alchemy/common/dma.c
176
chan->irq_dev = NULL;
arch/mips/alchemy/common/dma.c
180
chan->irq_dev = NULL;
arch/mips/alchemy/common/dma.c
184
chan->io = (void __iomem *)(KSEG1ADDR(AU1000_DMA_PHYS_ADDR) +
arch/mips/alchemy/common/dma.c
186
chan->dev_id = dev_id;
arch/mips/alchemy/common/dma.c
187
chan->dev_str = dev_str;
arch/mips/alchemy/common/dma.c
188
chan->fifo_addr = dev->fifo_addr;
arch/mips/alchemy/common/dma.c
189
chan->mode = dev->dma_mode;
arch/mips/alchemy/common/dma.c
200
struct dma_chan *chan = get_dma_chan(dmanr);
arch/mips/alchemy/common/dma.c
202
if (!chan) {
arch/mips/alchemy/common/dma.c
208
if (chan->irq_dev)
arch/mips/alchemy/common/dma.c
209
free_irq(chan->irq, chan->irq_dev);
arch/mips/alchemy/common/dma.c
211
chan->irq_dev = NULL;
arch/mips/alchemy/common/dma.c
212
chan->dev_id = -1;
arch/mips/include/asm/ip32/mace.h
144
} chan[3];
arch/mips/include/asm/mach-au1x00/au1000_dma.h
155
struct dma_chan *chan = get_dma_chan(dmanr);
arch/mips/include/asm/mach-au1x00/au1000_dma.h
157
if (!chan)
arch/mips/include/asm/mach-au1x00/au1000_dma.h
159
__raw_writel(DMA_BE0, chan->io + DMA_MODE_SET);
arch/mips/include/asm/mach-au1x00/au1000_dma.h
164
struct dma_chan *chan = get_dma_chan(dmanr);
arch/mips/include/asm/mach-au1x00/au1000_dma.h
166
if (!chan)
arch/mips/include/asm/mach-au1x00/au1000_dma.h
168
__raw_writel(DMA_BE1, chan->io + DMA_MODE_SET);
arch/mips/include/asm/mach-au1x00/au1000_dma.h
172
struct dma_chan *chan = get_dma_chan(dmanr);
arch/mips/include/asm/mach-au1x00/au1000_dma.h
174
if (!chan)
arch/mips/include/asm/mach-au1x00/au1000_dma.h
176
__raw_writel(DMA_BE0 | DMA_BE1, chan->io + DMA_MODE_SET);
arch/mips/include/asm/mach-au1x00/au1000_dma.h
181
struct dma_chan *chan = get_dma_chan(dmanr);
arch/mips/include/asm/mach-au1x00/au1000_dma.h
183
if (!chan)
arch/mips/include/asm/mach-au1x00/au1000_dma.h
185
__raw_writel(DMA_GO, chan->io + DMA_MODE_SET);
arch/mips/include/asm/mach-au1x00/au1000_dma.h
192
struct dma_chan *chan = get_dma_chan(dmanr);
arch/mips/include/asm/mach-au1x00/au1000_dma.h
195
if (!chan)
arch/mips/include/asm/mach-au1x00/au1000_dma.h
197
__raw_writel(DMA_GO, chan->io + DMA_MODE_CLEAR);
arch/mips/include/asm/mach-au1x00/au1000_dma.h
201
if (__raw_readl(chan->io + DMA_MODE_READ) & DMA_HALT)
arch/mips/include/asm/mach-au1x00/au1000_dma.h
209
struct dma_chan *chan = get_dma_chan(dmanr);
arch/mips/include/asm/mach-au1x00/au1000_dma.h
211
if (!chan)
arch/mips/include/asm/mach-au1x00/au1000_dma.h
217
__raw_writel(~DMA_GO, chan->io + DMA_MODE_CLEAR);
arch/mips/include/asm/mach-au1x00/au1000_dma.h
222
struct dma_chan *chan = get_dma_chan(dmanr);
arch/mips/include/asm/mach-au1x00/au1000_dma.h
224
if (!chan)
arch/mips/include/asm/mach-au1x00/au1000_dma.h
226
return (__raw_readl(chan->io + DMA_MODE_READ) & DMA_HALT) ? 1 : 0;
arch/mips/include/asm/mach-au1x00/au1000_dma.h
232
struct dma_chan *chan = get_dma_chan(dmanr);
arch/mips/include/asm/mach-au1x00/au1000_dma.h
235
if (!chan)
arch/mips/include/asm/mach-au1x00/au1000_dma.h
241
__raw_writel(CPHYSADDR(chan->fifo_addr), chan->io + DMA_PERIPHERAL_ADDR);
arch/mips/include/asm/mach-au1x00/au1000_dma.h
243
mode = chan->mode | (chan->dev_id << DMA_DID_BIT);
arch/mips/include/asm/mach-au1x00/au1000_dma.h
244
if (chan->irq)
arch/mips/include/asm/mach-au1x00/au1000_dma.h
247
__raw_writel(~mode, chan->io + DMA_MODE_CLEAR);
arch/mips/include/asm/mach-au1x00/au1000_dma.h
248
__raw_writel(mode, chan->io + DMA_MODE_SET);
arch/mips/include/asm/mach-au1x00/au1000_dma.h
256
struct dma_chan *chan = get_dma_chan(dmanr);
arch/mips/include/asm/mach-au1x00/au1000_dma.h
258
if (!chan)
arch/mips/include/asm/mach-au1x00/au1000_dma.h
266
chan->mode &= ~(DMA_BE | DMA_DR | DMA_TS8 | DMA_DW_MASK | DMA_NC);
arch/mips/include/asm/mach-au1x00/au1000_dma.h
267
chan->mode |= mode;
arch/mips/include/asm/mach-au1x00/au1000_dma.h
272
struct dma_chan *chan = get_dma_chan(dmanr);
arch/mips/include/asm/mach-au1x00/au1000_dma.h
274
if (!chan)
arch/mips/include/asm/mach-au1x00/au1000_dma.h
276
return chan->mode;
arch/mips/include/asm/mach-au1x00/au1000_dma.h
281
struct dma_chan *chan = get_dma_chan(dmanr);
arch/mips/include/asm/mach-au1x00/au1000_dma.h
283
if (!chan)
arch/mips/include/asm/mach-au1x00/au1000_dma.h
285
return (__raw_readl(chan->io + DMA_MODE_READ) & DMA_AB) ? 1 : 0;
arch/mips/include/asm/mach-au1x00/au1000_dma.h
295
struct dma_chan *chan = get_dma_chan(dmanr);
arch/mips/include/asm/mach-au1x00/au1000_dma.h
297
if (!chan)
arch/mips/include/asm/mach-au1x00/au1000_dma.h
300
if (chan->mode & DMA_DS) /* second bank of device IDs */
arch/mips/include/asm/mach-au1x00/au1000_dma.h
303
if (chan->dev_id != DMA_ID_GP04 && chan->dev_id != DMA_ID_GP05)
arch/mips/include/asm/mach-au1x00/au1000_dma.h
306
__raw_writel(CPHYSADDR(a), chan->io + DMA_PERIPHERAL_ADDR);
arch/mips/include/asm/mach-au1x00/au1000_dma.h
314
struct dma_chan *chan = get_dma_chan(dmanr);
arch/mips/include/asm/mach-au1x00/au1000_dma.h
316
if (!chan)
arch/mips/include/asm/mach-au1x00/au1000_dma.h
318
__raw_writel(DMA_D0, chan->io + DMA_MODE_CLEAR);
arch/mips/include/asm/mach-au1x00/au1000_dma.h
323
struct dma_chan *chan = get_dma_chan(dmanr);
arch/mips/include/asm/mach-au1x00/au1000_dma.h
325
if (!chan)
arch/mips/include/asm/mach-au1x00/au1000_dma.h
327
__raw_writel(DMA_D1, chan->io + DMA_MODE_CLEAR);
arch/mips/include/asm/mach-au1x00/au1000_dma.h
342
struct dma_chan *chan = get_dma_chan(dmanr);
arch/mips/include/asm/mach-au1x00/au1000_dma.h
344
if (!chan)
arch/mips/include/asm/mach-au1x00/au1000_dma.h
346
__raw_writel(a, chan->io + DMA_BUFFER0_START);
arch/mips/include/asm/mach-au1x00/au1000_dma.h
354
struct dma_chan *chan = get_dma_chan(dmanr);
arch/mips/include/asm/mach-au1x00/au1000_dma.h
356
if (!chan)
arch/mips/include/asm/mach-au1x00/au1000_dma.h
358
__raw_writel(a, chan->io + DMA_BUFFER1_START);
arch/mips/include/asm/mach-au1x00/au1000_dma.h
367
struct dma_chan *chan = get_dma_chan(dmanr);
arch/mips/include/asm/mach-au1x00/au1000_dma.h
369
if (!chan)
arch/mips/include/asm/mach-au1x00/au1000_dma.h
372
__raw_writel(count, chan->io + DMA_BUFFER0_COUNT);
arch/mips/include/asm/mach-au1x00/au1000_dma.h
380
struct dma_chan *chan = get_dma_chan(dmanr);
arch/mips/include/asm/mach-au1x00/au1000_dma.h
382
if (!chan)
arch/mips/include/asm/mach-au1x00/au1000_dma.h
385
__raw_writel(count, chan->io + DMA_BUFFER1_COUNT);
arch/mips/include/asm/mach-au1x00/au1000_dma.h
393
struct dma_chan *chan = get_dma_chan(dmanr);
arch/mips/include/asm/mach-au1x00/au1000_dma.h
395
if (!chan)
arch/mips/include/asm/mach-au1x00/au1000_dma.h
398
__raw_writel(count, chan->io + DMA_BUFFER0_COUNT);
arch/mips/include/asm/mach-au1x00/au1000_dma.h
399
__raw_writel(count, chan->io + DMA_BUFFER1_COUNT);
arch/mips/include/asm/mach-au1x00/au1000_dma.h
408
struct dma_chan *chan = get_dma_chan(dmanr);
arch/mips/include/asm/mach-au1x00/au1000_dma.h
410
if (!chan)
arch/mips/include/asm/mach-au1x00/au1000_dma.h
412
return __raw_readl(chan->io + DMA_MODE_READ) & (DMA_D0 | DMA_D1);
arch/mips/include/asm/mach-au1x00/au1000_dma.h
421
struct dma_chan *chan = get_dma_chan(dmanr);
arch/mips/include/asm/mach-au1x00/au1000_dma.h
423
if (!chan)
arch/mips/include/asm/mach-au1x00/au1000_dma.h
425
return chan->irq;
arch/mips/include/asm/mach-au1x00/au1000_dma.h
434
struct dma_chan *chan = get_dma_chan(dmanr);
arch/mips/include/asm/mach-au1x00/au1000_dma.h
436
if (!chan)
arch/mips/include/asm/mach-au1x00/au1000_dma.h
439
curBufCntReg = (__raw_readl(chan->io + DMA_MODE_READ) & DMA_AB) ?
arch/mips/include/asm/mach-au1x00/au1000_dma.h
442
count = __raw_readl(chan->io + curBufCntReg) & DMA_COUNT_MASK;
arch/mips/include/asm/mach-au1x00/au1000_dma.h
444
if ((chan->mode & DMA_DW_MASK) == DMA_DW16)
arch/mips/include/asm/mach-au1x00/au1000_dma.h
446
else if ((chan->mode & DMA_DW_MASK) == DMA_DW32)
arch/mips/include/asm/sibyte/bcm1480_regs.h
207
#define A_BCM1480_DUART(chan) ((((chan)&2) == 0)? A_BCM1480_DUART0 : A_BCM1480_DUART1)
arch/mips/include/asm/sibyte/bcm1480_regs.h
210
#define A_BCM1480_DUART_CHANREG(chan, reg) \
arch/mips/include/asm/sibyte/bcm1480_regs.h
211
(A_BCM1480_DUART(chan) + \
arch/mips/include/asm/sibyte/bcm1480_regs.h
212
BCM1480_DUART_CHANREG_SPACING * (((chan) & 1) + 1) + (reg))
arch/mips/include/asm/sibyte/bcm1480_regs.h
213
#define A_BCM1480_DUART_CTRLREG(chan, reg) \
arch/mips/include/asm/sibyte/bcm1480_regs.h
214
(A_BCM1480_DUART(chan) + \
arch/mips/include/asm/sibyte/bcm1480_regs.h
220
#define R_BCM1480_DUART_IMRREG(chan) \
arch/mips/include/asm/sibyte/bcm1480_regs.h
221
(R_DUART_IMR_A + ((chan) & 1) * DUART_IMRISR_SPACING)
arch/mips/include/asm/sibyte/bcm1480_regs.h
222
#define R_BCM1480_DUART_ISRREG(chan) \
arch/mips/include/asm/sibyte/bcm1480_regs.h
223
(R_DUART_ISR_A + ((chan) & 1) * DUART_IMRISR_SPACING)
arch/mips/include/asm/sibyte/bcm1480_regs.h
224
#define R_BCM1480_DUART_INCHREG(chan) \
arch/mips/include/asm/sibyte/bcm1480_regs.h
225
(R_DUART_IN_CHNG_A + ((chan) & 1) * DUART_INCHNG_SPACING)
arch/mips/include/asm/sibyte/bcm1480_regs.h
227
#define A_BCM1480_DUART_IMRREG(chan) \
arch/mips/include/asm/sibyte/bcm1480_regs.h
228
(A_BCM1480_DUART_CTRLREG((chan), R_BCM1480_DUART_IMRREG(chan)))
arch/mips/include/asm/sibyte/bcm1480_regs.h
229
#define A_BCM1480_DUART_ISRREG(chan) \
arch/mips/include/asm/sibyte/bcm1480_regs.h
230
(A_BCM1480_DUART_CTRLREG((chan), R_BCM1480_DUART_ISRREG(chan)))
arch/mips/include/asm/sibyte/bcm1480_regs.h
232
#define A_BCM1480_DUART_IN_PORT(chan) \
arch/mips/include/asm/sibyte/bcm1480_regs.h
233
(A_BCM1480_DUART_CTRLREG((chan), R_DUART_IN_PORT))
arch/mips/include/asm/sibyte/sb1250_regs.h
163
#define A_MAC_DMA_CHANNEL_BASE(macnum, txrx, chan) \
arch/mips/include/asm/sibyte/sb1250_regs.h
167
(MAC_DMA_CHANNEL_SPACING*(chan)))
arch/mips/include/asm/sibyte/sb1250_regs.h
169
#define R_MAC_DMA_CHANNEL_BASE(txrx, chan) \
arch/mips/include/asm/sibyte/sb1250_regs.h
172
(MAC_DMA_CHANNEL_SPACING*(chan)))
arch/mips/include/asm/sibyte/sb1250_regs.h
174
#define A_MAC_DMA_REGISTER(macnum, txrx, chan, reg) \
arch/mips/include/asm/sibyte/sb1250_regs.h
175
(A_MAC_DMA_CHANNEL_BASE(macnum, txrx, chan) + \
arch/mips/include/asm/sibyte/sb1250_regs.h
178
#define R_MAC_DMA_REGISTER(txrx, chan, reg) \
arch/mips/include/asm/sibyte/sb1250_regs.h
179
(R_MAC_DMA_CHANNEL_BASE(txrx, chan) + \
arch/mips/include/asm/sibyte/sb1250_regs.h
269
#define A_DUART_CHANREG(chan, reg) \
arch/mips/include/asm/sibyte/sb1250_regs.h
270
(A_DUART + DUART_CHANREG_SPACING * ((chan) + 1) + (reg))
arch/mips/include/asm/sibyte/sb1250_regs.h
300
#define R_DUART_IMRREG(chan) \
arch/mips/include/asm/sibyte/sb1250_regs.h
301
(R_DUART_IMR_A + (chan) * DUART_IMRISR_SPACING)
arch/mips/include/asm/sibyte/sb1250_regs.h
302
#define R_DUART_ISRREG(chan) \
arch/mips/include/asm/sibyte/sb1250_regs.h
303
(R_DUART_ISR_A + (chan) * DUART_IMRISR_SPACING)
arch/mips/include/asm/sibyte/sb1250_regs.h
304
#define R_DUART_INCHREG(chan) \
arch/mips/include/asm/sibyte/sb1250_regs.h
305
(R_DUART_IN_CHNG_A + (chan) * DUART_INCHNG_SPACING)
arch/mips/include/asm/sibyte/sb1250_regs.h
307
#define A_DUART_IMRREG(chan) A_DUART_CTRLREG(R_DUART_IMRREG(chan))
arch/mips/include/asm/sibyte/sb1250_regs.h
308
#define A_DUART_ISRREG(chan) A_DUART_CTRLREG(R_DUART_ISRREG(chan))
arch/mips/include/asm/sibyte/sb1250_regs.h
309
#define A_DUART_INCHREG(chan) A_DUART_CTRLREG(R_DUART_INCHREG(chan))
arch/mips/include/asm/sibyte/sb1250_uart.h
324
#define M_DUART_OUT_PIN_SET(chan) \
arch/mips/include/asm/sibyte/sb1250_uart.h
325
(chan == 0 ? M_DUART_OUT_PIN_SET0 : M_DUART_OUT_PIN_SET1)
arch/mips/include/asm/sibyte/sb1250_uart.h
326
#define M_DUART_OUT_PIN_CLR(chan) \
arch/mips/include/asm/sibyte/sb1250_uart.h
327
(chan == 0 ? M_DUART_OUT_PIN_CLR0 : M_DUART_OUT_PIN_CLR1)
arch/mips/kernel/rtlx.c
165
chan = &rtlx->channel[index];
arch/mips/kernel/rtlx.c
167
state = xchg(&chan->lx_state, RTLX_STATE_OPENED);
arch/mips/kernel/rtlx.c
194
struct rtlx_channel *chan;
arch/mips/kernel/rtlx.c
199
chan = &rtlx->channel[index];
arch/mips/kernel/rtlx.c
202
if (chan->lx_read == chan->lx_write) {
arch/mips/kernel/rtlx.c
206
(chan->lx_read != chan->lx_write) ||
arch/mips/kernel/rtlx.c
217
return (chan->lx_write + chan->buffer_size - chan->lx_read)
arch/mips/kernel/rtlx.c
218
% chan->buffer_size;
arch/mips/kernel/rtlx.c
236
struct rtlx_channel *chan = &rtlx->channel[index];
arch/mips/kernel/rtlx.c
238
return write_spacefree(chan->rt_read, chan->rt_write,
arch/mips/kernel/rtlx.c
239
chan->buffer_size);
arch/mips/kernel/rtlx.c
38
struct rtlx_channel *chan = &rtlx->channel[i];
arch/mips/kernel/rtlx.c
41
chan->rt_state, chan->lx_state, chan->buffer_size);
arch/mips/kernel/rtlx.c
44
chan->rt_read, chan->rt_write);
arch/mips/kernel/rtlx.c
47
chan->lx_read, chan->lx_write);
arch/mips/kernel/rtlx.c
49
pr_info(" rt_buffer <%s>\n", chan->rt_buffer);
arch/mips/kernel/rtlx.c
50
pr_info(" lx_buffer <%s>\n", chan->lx_buffer);
arch/mips/kernel/rtlx.c
94
struct rtlx_channel *chan;
arch/powerpc/include/asm/pasemi_dma.h
497
extern void pasemi_dma_free_chan(struct pasemi_dmachan *chan);
arch/powerpc/include/asm/pasemi_dma.h
499
extern void pasemi_dma_start_chan(const struct pasemi_dmachan *chan,
arch/powerpc/include/asm/pasemi_dma.h
501
extern int pasemi_dma_stop_chan(const struct pasemi_dmachan *chan);
arch/powerpc/include/asm/pasemi_dma.h
505
extern int pasemi_dma_alloc_ring(struct pasemi_dmachan *chan, int ring_size);
arch/powerpc/include/asm/pasemi_dma.h
506
extern void pasemi_dma_free_ring(struct pasemi_dmachan *chan);
arch/powerpc/include/asm/pasemi_dma.h
508
extern void *pasemi_dma_alloc_buf(struct pasemi_dmachan *chan, int size,
arch/powerpc/include/asm/pasemi_dma.h
510
extern void pasemi_dma_free_buf(struct pasemi_dmachan *chan, int size,
arch/powerpc/platforms/512x/mpc512x_lpbfifo.c
140
dma_unmap_single(lpbfifo.chan->device->dev,
arch/powerpc/platforms/512x/mpc512x_lpbfifo.c
226
dma_dev = lpbfifo.chan->device;
arch/powerpc/platforms/512x/mpc512x_lpbfifo.c
243
if (dma_dev->device_config(lpbfifo.chan, &dma_conf))
arch/powerpc/platforms/512x/mpc512x_lpbfifo.c
257
dma_tx = dmaengine_prep_slave_sg(lpbfifo.chan, &sg,
arch/powerpc/platforms/512x/mpc512x_lpbfifo.c
41
struct dma_chan *chan;
arch/powerpc/platforms/512x/mpc512x_lpbfifo.c
417
lpbfifo.chan = dma_request_chan(&pdev->dev, "rx-tx");
arch/powerpc/platforms/512x/mpc512x_lpbfifo.c
418
if (IS_ERR(lpbfifo.chan))
arch/powerpc/platforms/512x/mpc512x_lpbfifo.c
419
return PTR_ERR(lpbfifo.chan);
arch/powerpc/platforms/512x/mpc512x_lpbfifo.c
474
dma_release_channel(lpbfifo.chan);
arch/powerpc/platforms/512x/mpc512x_lpbfifo.c
481
struct dma_device *dma_dev = lpbfifo.chan->device;
arch/powerpc/platforms/512x/mpc512x_lpbfifo.c
489
dma_dev->device_terminate_all(lpbfifo.chan);
arch/powerpc/platforms/512x/mpc512x_lpbfifo.c
494
dma_release_channel(lpbfifo.chan);
arch/powerpc/platforms/pasemi/dma_lib.c
131
static void pasemi_free_tx_chan(int chan)
arch/powerpc/platforms/pasemi/dma_lib.c
133
BUG_ON(test_bit(chan, txch_free));
arch/powerpc/platforms/pasemi/dma_lib.c
134
set_bit(chan, txch_free);
arch/powerpc/platforms/pasemi/dma_lib.c
150
static void pasemi_free_rx_chan(int chan)
arch/powerpc/platforms/pasemi/dma_lib.c
152
BUG_ON(test_bit(chan, rxch_free));
arch/powerpc/platforms/pasemi/dma_lib.c
153
set_bit(chan, rxch_free);
arch/powerpc/platforms/pasemi/dma_lib.c
175
struct pasemi_dmachan *chan;
arch/powerpc/platforms/pasemi/dma_lib.c
184
chan = buf + offset;
arch/powerpc/platforms/pasemi/dma_lib.c
186
chan->priv = buf;
arch/powerpc/platforms/pasemi/dma_lib.c
191
chan->chno = chno;
arch/powerpc/platforms/pasemi/dma_lib.c
192
chan->irq = irq_create_mapping(NULL,
arch/powerpc/platforms/pasemi/dma_lib.c
194
chan->status = &dma_status->rx_sta[chno];
arch/powerpc/platforms/pasemi/dma_lib.c
198
chan->chno = chno;
arch/powerpc/platforms/pasemi/dma_lib.c
199
chan->irq = irq_create_mapping(NULL, base_hw_irq + chno);
arch/powerpc/platforms/pasemi/dma_lib.c
200
chan->status = &dma_status->tx_sta[chno];
arch/powerpc/platforms/pasemi/dma_lib.c
204
chan->chan_type = type;
arch/powerpc/platforms/pasemi/dma_lib.c
206
return chan;
arch/powerpc/platforms/pasemi/dma_lib.c
216
void pasemi_dma_free_chan(struct pasemi_dmachan *chan)
arch/powerpc/platforms/pasemi/dma_lib.c
218
if (chan->ring_virt)
arch/powerpc/platforms/pasemi/dma_lib.c
219
pasemi_dma_free_ring(chan);
arch/powerpc/platforms/pasemi/dma_lib.c
221
switch (chan->chan_type & (RXCHAN|TXCHAN)) {
arch/powerpc/platforms/pasemi/dma_lib.c
223
pasemi_free_rx_chan(chan->chno);
arch/powerpc/platforms/pasemi/dma_lib.c
226
pasemi_free_tx_chan(chan->chno);
arch/powerpc/platforms/pasemi/dma_lib.c
230
kfree(chan->priv);
arch/powerpc/platforms/pasemi/dma_lib.c
242
int pasemi_dma_alloc_ring(struct pasemi_dmachan *chan, int ring_size)
arch/powerpc/platforms/pasemi/dma_lib.c
244
BUG_ON(chan->ring_virt);
arch/powerpc/platforms/pasemi/dma_lib.c
246
chan->ring_size = ring_size;
arch/powerpc/platforms/pasemi/dma_lib.c
248
chan->ring_virt = dma_alloc_coherent(&dma_pdev->dev,
arch/powerpc/platforms/pasemi/dma_lib.c
250
&chan->ring_dma, GFP_KERNEL);
arch/powerpc/platforms/pasemi/dma_lib.c
252
if (!chan->ring_virt)
arch/powerpc/platforms/pasemi/dma_lib.c
264
void pasemi_dma_free_ring(struct pasemi_dmachan *chan)
arch/powerpc/platforms/pasemi/dma_lib.c
266
BUG_ON(!chan->ring_virt);
arch/powerpc/platforms/pasemi/dma_lib.c
268
dma_free_coherent(&dma_pdev->dev, chan->ring_size * sizeof(u64),
arch/powerpc/platforms/pasemi/dma_lib.c
269
chan->ring_virt, chan->ring_dma);
arch/powerpc/platforms/pasemi/dma_lib.c
270
chan->ring_virt = NULL;
arch/powerpc/platforms/pasemi/dma_lib.c
271
chan->ring_size = 0;
arch/powerpc/platforms/pasemi/dma_lib.c
272
chan->ring_dma = 0;
arch/powerpc/platforms/pasemi/dma_lib.c
282
void pasemi_dma_start_chan(const struct pasemi_dmachan *chan, const u32 cmdsta)
arch/powerpc/platforms/pasemi/dma_lib.c
284
if (chan->chan_type == RXCHAN)
arch/powerpc/platforms/pasemi/dma_lib.c
285
pasemi_write_dma_reg(PAS_DMA_RXCHAN_CCMDSTA(chan->chno),
arch/powerpc/platforms/pasemi/dma_lib.c
288
pasemi_write_dma_reg(PAS_DMA_TXCHAN_TCMDSTA(chan->chno),
arch/powerpc/platforms/pasemi/dma_lib.c
306
int pasemi_dma_stop_chan(const struct pasemi_dmachan *chan)
arch/powerpc/platforms/pasemi/dma_lib.c
311
if (chan->chan_type == RXCHAN) {
arch/powerpc/platforms/pasemi/dma_lib.c
312
reg = PAS_DMA_RXCHAN_CCMDSTA(chan->chno);
arch/powerpc/platforms/pasemi/dma_lib.c
323
reg = PAS_DMA_TXCHAN_TCMDSTA(chan->chno);
arch/powerpc/platforms/pasemi/dma_lib.c
349
void *pasemi_dma_alloc_buf(struct pasemi_dmachan *chan, int size,
arch/powerpc/platforms/pasemi/dma_lib.c
363
void pasemi_dma_free_buf(struct pasemi_dmachan *chan, int size,
arch/powerpc/platforms/powermac/feature.c
497
volatile struct dbdma_regs __iomem * chan = (void __iomem *)
arch/powerpc/platforms/powermac/feature.c
499
save[i].cmdptr_hi = in_le32(&chan->cmdptr_hi);
arch/powerpc/platforms/powermac/feature.c
500
save[i].cmdptr = in_le32(&chan->cmdptr);
arch/powerpc/platforms/powermac/feature.c
501
save[i].intr_sel = in_le32(&chan->intr_sel);
arch/powerpc/platforms/powermac/feature.c
502
save[i].br_sel = in_le32(&chan->br_sel);
arch/powerpc/platforms/powermac/feature.c
503
save[i].wait_sel = in_le32(&chan->wait_sel);
arch/powerpc/platforms/powermac/feature.c
513
volatile struct dbdma_regs __iomem * chan = (void __iomem *)
arch/powerpc/platforms/powermac/feature.c
515
out_le32(&chan->control, (ACTIVE|DEAD|WAKE|FLUSH|PAUSE|RUN)<<16);
arch/powerpc/platforms/powermac/feature.c
516
while (in_le32(&chan->status) & ACTIVE)
arch/powerpc/platforms/powermac/feature.c
518
out_le32(&chan->cmdptr_hi, save[i].cmdptr_hi);
arch/powerpc/platforms/powermac/feature.c
519
out_le32(&chan->cmdptr, save[i].cmdptr);
arch/powerpc/platforms/powermac/feature.c
520
out_le32(&chan->intr_sel, save[i].intr_sel);
arch/powerpc/platforms/powermac/feature.c
521
out_le32(&chan->br_sel, save[i].br_sel);
arch/powerpc/platforms/powermac/feature.c
522
out_le32(&chan->wait_sel, save[i].wait_sel);
arch/sh/boards/mach-ap325rxa/setup.c
221
.chan = LCDC_CHAN_MAINLCD,
arch/sh/boards/mach-ecovec24/setup.c
344
.chan = LCDC_CHAN_MAINLCD,
arch/sh/boards/mach-kfr2r09/setup.c
160
.chan = LCDC_CHAN_MAINLCD,
arch/sh/boards/mach-migor/setup.c
248
.chan = LCDC_CHAN_MAINLCD,
arch/sh/boards/mach-migor/setup.c
262
.chan = LCDC_CHAN_MAINLCD,
arch/sh/boards/mach-se/7724/setup.c
193
.chan = LCDC_CHAN_MAINLCD,
arch/sh/drivers/dma/dma-api.c
113
void free_dma(unsigned int chan)
arch/sh/drivers/dma/dma-api.c
115
struct dma_info *info = get_dma_info(chan);
arch/sh/drivers/dma/dma-api.c
116
struct dma_channel *channel = get_dma_channel(chan);
arch/sh/drivers/dma/dma-api.c
125
void dma_wait_for_completion(unsigned int chan)
arch/sh/drivers/dma/dma-api.c
127
struct dma_info *info = get_dma_info(chan);
arch/sh/drivers/dma/dma-api.c
128
struct dma_channel *channel = get_dma_channel(chan);
arch/sh/drivers/dma/dma-api.c
141
void dma_configure_channel(unsigned int chan, unsigned long flags)
arch/sh/drivers/dma/dma-api.c
143
struct dma_info *info = get_dma_info(chan);
arch/sh/drivers/dma/dma-api.c
144
struct dma_channel *channel = get_dma_channel(chan);
arch/sh/drivers/dma/dma-api.c
151
int dma_xfer(unsigned int chan, unsigned long from,
arch/sh/drivers/dma/dma-api.c
154
struct dma_info *info = get_dma_info(chan);
arch/sh/drivers/dma/dma-api.c
155
struct dma_channel *channel = get_dma_channel(chan);
arch/sh/drivers/dma/dma-api.c
228
struct dma_channel *chan = &info->channels[i];
arch/sh/drivers/dma/dma-api.c
230
atomic_set(&chan->busy, 0);
arch/sh/drivers/dma/dma-api.c
232
chan->chan = info->first_channel_nr + i;
arch/sh/drivers/dma/dma-api.c
233
chan->vchan = info->first_channel_nr + i + total_channels;
arch/sh/drivers/dma/dma-api.c
235
memcpy(chan->dev_id, "Unused", 7);
arch/sh/drivers/dma/dma-api.c
238
chan->flags |= DMA_TEI_CAPABLE;
arch/sh/drivers/dma/dma-api.c
24
struct dma_info *get_dma_info(unsigned int chan)
arch/sh/drivers/dma/dma-api.c
240
init_waitqueue_head(&chan->wait_queue);
arch/sh/drivers/dma/dma-api.c
241
dma_create_sysfs_files(chan, info);
arch/sh/drivers/dma/dma-api.c
33
if ((chan < info->first_vchannel_nr) ||
arch/sh/drivers/dma/dma-api.c
34
(chan >= info->first_vchannel_nr + info->nr_channels))
arch/sh/drivers/dma/dma-api.c
58
struct dma_channel *get_dma_channel(unsigned int chan)
arch/sh/drivers/dma/dma-api.c
60
struct dma_info *info = get_dma_info(chan);
arch/sh/drivers/dma/dma-api.c
69
if (channel->vchan == chan)
arch/sh/drivers/dma/dma-api.c
77
int get_dma_residue(unsigned int chan)
arch/sh/drivers/dma/dma-api.c
79
struct dma_info *info = get_dma_info(chan);
arch/sh/drivers/dma/dma-api.c
80
struct dma_channel *channel = get_dma_channel(chan);
arch/sh/drivers/dma/dma-api.c
89
int request_dma(unsigned int chan, const char *dev_id)
arch/sh/drivers/dma/dma-api.c
92
struct dma_info *info = get_dma_info(chan);
arch/sh/drivers/dma/dma-api.c
95
channel = get_dma_channel(chan);
arch/sh/drivers/dma/dma-g2.c
102
if (chan->dar & 31) {
arch/sh/drivers/dma/dma-g2.c
103
printk("g2dma: unaligned dest 0x%lx\n", chan->dar);
arch/sh/drivers/dma/dma-g2.c
108
if (chan->count & 31)
arch/sh/drivers/dma/dma-g2.c
109
chan->count = (chan->count + (32 - 1)) & ~(32 - 1);
arch/sh/drivers/dma/dma-g2.c
112
chan->dar += 0xa0800000;
arch/sh/drivers/dma/dma-g2.c
115
chan->mode = !chan->mode;
arch/sh/drivers/dma/dma-g2.c
117
flush_icache_range((unsigned long)chan->sar, chan->count);
arch/sh/drivers/dma/dma-g2.c
119
g2_disable_dma(chan);
arch/sh/drivers/dma/dma-g2.c
121
g2_dma->channel[chan_nr].g2_addr = chan->dar & 0x1fffffe0;
arch/sh/drivers/dma/dma-g2.c
122
g2_dma->channel[chan_nr].root_addr = chan->sar & 0x1fffffe0;
arch/sh/drivers/dma/dma-g2.c
123
g2_dma->channel[chan_nr].size = (chan->count & ~31) | 0x80000000;
arch/sh/drivers/dma/dma-g2.c
124
g2_dma->channel[chan_nr].direction = chan->mode;
arch/sh/drivers/dma/dma-g2.c
133
g2_enable_dma(chan);
arch/sh/drivers/dma/dma-g2.c
149
static int g2_get_residue(struct dma_channel *chan)
arch/sh/drivers/dma/dma-g2.c
151
return g2_bytes_remaining(chan->chan);
arch/sh/drivers/dma/dma-g2.c
61
struct dma_channel *chan = info->channels + i;
arch/sh/drivers/dma/dma-g2.c
63
wake_up(&chan->wait_queue);
arch/sh/drivers/dma/dma-g2.c
73
static int g2_enable_dma(struct dma_channel *chan)
arch/sh/drivers/dma/dma-g2.c
75
unsigned int chan_nr = chan->chan;
arch/sh/drivers/dma/dma-g2.c
83
static int g2_disable_dma(struct dma_channel *chan)
arch/sh/drivers/dma/dma-g2.c
85
unsigned int chan_nr = chan->chan;
arch/sh/drivers/dma/dma-g2.c
93
static int g2_xfer_dma(struct dma_channel *chan)
arch/sh/drivers/dma/dma-g2.c
95
unsigned int chan_nr = chan->chan;
arch/sh/drivers/dma/dma-g2.c
97
if (chan->sar & 31) {
arch/sh/drivers/dma/dma-g2.c
98
printk("g2dma: unaligned source 0x%lx\n", chan->sar);
arch/sh/drivers/dma/dma-pvr2.c
38
static int pvr2_request_dma(struct dma_channel *chan)
arch/sh/drivers/dma/dma-pvr2.c
48
static int pvr2_get_dma_residue(struct dma_channel *chan)
arch/sh/drivers/dma/dma-pvr2.c
53
static int pvr2_xfer_dma(struct dma_channel *chan)
arch/sh/drivers/dma/dma-pvr2.c
55
if (chan->sar || !chan->dar)
arch/sh/drivers/dma/dma-pvr2.c
60
__raw_writel(chan->dar, PVR2_DMA_ADDR);
arch/sh/drivers/dma/dma-pvr2.c
61
__raw_writel(chan->count, PVR2_DMA_COUNT);
arch/sh/drivers/dma/dma-pvr2.c
62
__raw_writel(chan->mode & DMA_MODE_MASK, PVR2_DMA_MODE);
arch/sh/drivers/dma/dma-sh.c
103
static inline unsigned int calc_xmit_shift(struct dma_channel *chan)
arch/sh/drivers/dma/dma-sh.c
105
u32 chcr = __raw_readl(dma_base_addr(chan->chan) + CHCR);
arch/sh/drivers/dma/dma-sh.c
120
struct dma_channel *chan = dev_id;
arch/sh/drivers/dma/dma-sh.c
123
chcr = __raw_readl(dma_base_addr(chan->chan) + CHCR);
arch/sh/drivers/dma/dma-sh.c
129
__raw_writel(chcr, (dma_base_addr(chan->chan) + CHCR));
arch/sh/drivers/dma/dma-sh.c
131
wake_up(&chan->wait_queue);
arch/sh/drivers/dma/dma-sh.c
136
static int sh_dmac_request_dma(struct dma_channel *chan)
arch/sh/drivers/dma/dma-sh.c
138
if (unlikely(!(chan->flags & DMA_TEI_CAPABLE)))
arch/sh/drivers/dma/dma-sh.c
141
return request_irq(get_dmte_irq(chan->chan), dma_tei, IRQF_SHARED,
arch/sh/drivers/dma/dma-sh.c
142
chan->dev_id, chan);
arch/sh/drivers/dma/dma-sh.c
145
static void sh_dmac_free_dma(struct dma_channel *chan)
arch/sh/drivers/dma/dma-sh.c
147
free_irq(get_dmte_irq(chan->chan), chan);
arch/sh/drivers/dma/dma-sh.c
151
sh_dmac_configure_channel(struct dma_channel *chan, unsigned long chcr)
arch/sh/drivers/dma/dma-sh.c
158
chan->flags |= DMA_TEI_CAPABLE;
arch/sh/drivers/dma/dma-sh.c
160
chan->flags &= ~DMA_TEI_CAPABLE;
arch/sh/drivers/dma/dma-sh.c
163
__raw_writel(chcr, (dma_base_addr(chan->chan) + CHCR));
arch/sh/drivers/dma/dma-sh.c
165
chan->flags |= DMA_CONFIGURED;
arch/sh/drivers/dma/dma-sh.c
169
static void sh_dmac_enable_dma(struct dma_channel *chan)
arch/sh/drivers/dma/dma-sh.c
174
chcr = __raw_readl(dma_base_addr(chan->chan) + CHCR);
arch/sh/drivers/dma/dma-sh.c
177
if (chan->flags & DMA_TEI_CAPABLE)
arch/sh/drivers/dma/dma-sh.c
180
__raw_writel(chcr, (dma_base_addr(chan->chan) + CHCR));
arch/sh/drivers/dma/dma-sh.c
182
if (chan->flags & DMA_TEI_CAPABLE) {
arch/sh/drivers/dma/dma-sh.c
183
irq = get_dmte_irq(chan->chan);
arch/sh/drivers/dma/dma-sh.c
188
static void sh_dmac_disable_dma(struct dma_channel *chan)
arch/sh/drivers/dma/dma-sh.c
193
if (chan->flags & DMA_TEI_CAPABLE) {
arch/sh/drivers/dma/dma-sh.c
194
irq = get_dmte_irq(chan->chan);
arch/sh/drivers/dma/dma-sh.c
198
chcr = __raw_readl(dma_base_addr(chan->chan) + CHCR);
arch/sh/drivers/dma/dma-sh.c
200
__raw_writel(chcr, (dma_base_addr(chan->chan) + CHCR));
arch/sh/drivers/dma/dma-sh.c
203
static int sh_dmac_xfer_dma(struct dma_channel *chan)
arch/sh/drivers/dma/dma-sh.c
209
if (unlikely(!(chan->flags & DMA_CONFIGURED)))
arch/sh/drivers/dma/dma-sh.c
210
sh_dmac_configure_channel(chan, 0);
arch/sh/drivers/dma/dma-sh.c
212
sh_dmac_disable_dma(chan);
arch/sh/drivers/dma/dma-sh.c
229
if (chan->sar || (mach_is_dreamcast() &&
arch/sh/drivers/dma/dma-sh.c
230
chan->chan == PVR2_CASCADE_CHAN))
arch/sh/drivers/dma/dma-sh.c
231
__raw_writel(chan->sar, (dma_base_addr(chan->chan) + SAR));
arch/sh/drivers/dma/dma-sh.c
232
if (chan->dar || (mach_is_dreamcast() &&
arch/sh/drivers/dma/dma-sh.c
233
chan->chan == PVR2_CASCADE_CHAN))
arch/sh/drivers/dma/dma-sh.c
234
__raw_writel(chan->dar, (dma_base_addr(chan->chan) + DAR));
arch/sh/drivers/dma/dma-sh.c
236
__raw_writel(chan->count >> calc_xmit_shift(chan),
arch/sh/drivers/dma/dma-sh.c
237
(dma_base_addr(chan->chan) + TCR));
arch/sh/drivers/dma/dma-sh.c
239
sh_dmac_enable_dma(chan);
arch/sh/drivers/dma/dma-sh.c
244
static int sh_dmac_get_dma_residue(struct dma_channel *chan)
arch/sh/drivers/dma/dma-sh.c
246
if (!(__raw_readl(dma_base_addr(chan->chan) + CHCR) & CHCR_DE))
arch/sh/drivers/dma/dma-sh.c
249
return __raw_readl(dma_base_addr(chan->chan) + TCR)
arch/sh/drivers/dma/dma-sh.c
250
<< calc_xmit_shift(chan);
arch/sh/drivers/dma/dma-sh.c
39
static unsigned long dma_find_base(unsigned int chan)
arch/sh/drivers/dma/dma-sh.c
44
if (chan >= SH_DMAC_NR_MD_CH)
arch/sh/drivers/dma/dma-sh.c
51
static unsigned long dma_base_addr(unsigned int chan)
arch/sh/drivers/dma/dma-sh.c
53
unsigned long base = dma_find_base(chan);
arch/sh/drivers/dma/dma-sh.c
55
chan = (chan % SH_DMAC_NR_MD_CH) * SH_DMAC_CH_SZ;
arch/sh/drivers/dma/dma-sh.c
58
if (chan >= DMAOR)
arch/sh/drivers/dma/dma-sh.c
61
return base + chan;
arch/sh/drivers/dma/dma-sh.c
65
static inline unsigned int get_dmte_irq(unsigned int chan)
arch/sh/drivers/dma/dma-sh.c
67
return chan >= 6 ? DMTE6_IRQ : DMTE0_IRQ;
arch/sh/drivers/dma/dma-sh.c
87
static inline unsigned int get_dmte_irq(unsigned int chan)
arch/sh/drivers/dma/dma-sh.c
89
return dmte_irq_map[chan];
arch/sh/drivers/dma/dma-sysfs.c
127
int dma_create_sysfs_files(struct dma_channel *chan, struct dma_info *info)
arch/sh/drivers/dma/dma-sysfs.c
129
struct device *dev = &chan->dev;
arch/sh/drivers/dma/dma-sysfs.c
133
dev->id = chan->vchan;
arch/sh/drivers/dma/dma-sysfs.c
151
snprintf(name, sizeof(name), "dma%d", chan->chan);
arch/sh/drivers/dma/dma-sysfs.c
155
void dma_remove_sysfs_files(struct dma_channel *chan, struct dma_info *info)
arch/sh/drivers/dma/dma-sysfs.c
157
struct device *dev = &chan->dev;
arch/sh/drivers/dma/dma-sysfs.c
166
snprintf(name, sizeof(name), "dma%d", chan->chan);
arch/sh/drivers/dma/dma-sysfs.c
37
channel->chan, info->name,
arch/sh/drivers/pci/fixups-landisk.c
39
int pci_fixup_pcic(struct pci_channel *chan)
arch/sh/drivers/pci/fixups-landisk.c
45
pci_write_reg(chan, bcr1, SH4_PCIBCR1);
arch/sh/drivers/pci/fixups-landisk.c
49
pci_write_reg(chan, mcr, SH4_PCIMCR);
arch/sh/drivers/pci/fixups-landisk.c
51
pci_write_reg(chan, 0x0c000000, SH7751_PCICONF5);
arch/sh/drivers/pci/fixups-landisk.c
52
pci_write_reg(chan, 0xd0000000, SH7751_PCICONF6);
arch/sh/drivers/pci/fixups-landisk.c
53
pci_write_reg(chan, 0x0c000000, SH4_PCILAR0);
arch/sh/drivers/pci/fixups-landisk.c
54
pci_write_reg(chan, 0x00000000, SH4_PCILAR1);
arch/sh/drivers/pci/fixups-rts7751r2d.c
39
int pci_fixup_pcic(struct pci_channel *chan)
arch/sh/drivers/pci/fixups-rts7751r2d.c
45
pci_write_reg(chan, bcr1, SH4_PCIBCR1);
arch/sh/drivers/pci/fixups-rts7751r2d.c
48
pci_write_reg(chan, 0x0000c3ff, SH4_PCIINTM);
arch/sh/drivers/pci/fixups-rts7751r2d.c
49
pci_write_reg(chan, 0x0000380f, SH4_PCIAINTM);
arch/sh/drivers/pci/fixups-rts7751r2d.c
51
pci_write_reg(chan, 0xfb900047, SH7751_PCICONF1);
arch/sh/drivers/pci/fixups-rts7751r2d.c
52
pci_write_reg(chan, 0xab000001, SH7751_PCICONF4);
arch/sh/drivers/pci/fixups-rts7751r2d.c
56
pci_write_reg(chan, mcr, SH4_PCIMCR);
arch/sh/drivers/pci/fixups-rts7751r2d.c
58
pci_write_reg(chan, 0x0c000000, SH7751_PCICONF5);
arch/sh/drivers/pci/fixups-rts7751r2d.c
59
pci_write_reg(chan, 0xd0000000, SH7751_PCICONF6);
arch/sh/drivers/pci/fixups-rts7751r2d.c
60
pci_write_reg(chan, 0x0c000000, SH4_PCILAR0);
arch/sh/drivers/pci/fixups-rts7751r2d.c
61
pci_write_reg(chan, 0x00000000, SH4_PCILAR1);
arch/sh/drivers/pci/fixups-se7751.c
102
BUG_ON(chan->resources[1].start != SH7751_PCI_MEMORY_BASE);
arch/sh/drivers/pci/fixups-se7751.c
104
PCIC_WRITE(SH7751_PCIMBR, chan->resources[1].start);
arch/sh/drivers/pci/fixups-se7751.c
107
PCIC_WRITE(SH7751_PCIIOBR, (chan->resources[0].start & SH7751_PCIIOBR_MASK));
arch/sh/drivers/pci/fixups-se7751.c
39
int pci_fixup_pcic(struct pci_channel *chan)
arch/sh/drivers/pci/ops-sh4.c
101
int __attribute__((weak)) pci_fixup_pcic(struct pci_channel *chan)
arch/sh/drivers/pci/ops-sh4.c
25
struct pci_channel *chan = bus->sysdata;
arch/sh/drivers/pci/ops-sh4.c
34
pci_write_reg(chan, CONFIG_CMD(bus, devfn, where), SH4_PCIPAR);
arch/sh/drivers/pci/ops-sh4.c
35
data = pci_read_reg(chan, SH4_PCIPDR);
arch/sh/drivers/pci/ops-sh4.c
63
struct pci_channel *chan = bus->sysdata;
arch/sh/drivers/pci/ops-sh4.c
69
pci_write_reg(chan, CONFIG_CMD(bus, devfn, where), SH4_PCIPAR);
arch/sh/drivers/pci/ops-sh4.c
70
data = pci_read_reg(chan, SH4_PCIPDR);
arch/sh/drivers/pci/ops-sh4.c
91
pci_write_reg(chan, data, SH4_PCIPDR);
arch/sh/drivers/pci/ops-sh7786.c
22
struct pci_channel *chan = bus->sysdata;
arch/sh/drivers/pci/ops-sh7786.c
51
*data = pci_read_reg(chan, PCI_REG(reg));
arch/sh/drivers/pci/ops-sh7786.c
53
pci_write_reg(chan, *data, PCI_REG(reg));
arch/sh/drivers/pci/ops-sh7786.c
61
pci_write_reg(chan, pci_read_reg(chan, SH4A_PCIEERRFR), SH4A_PCIEERRFR);
arch/sh/drivers/pci/ops-sh7786.c
64
pci_write_reg(chan, (bus->number << 24) | (dev << 19) |
arch/sh/drivers/pci/ops-sh7786.c
68
pci_write_reg(chan, (1 << 31) | (type << 8), SH4A_PCIEPCTLR);
arch/sh/drivers/pci/ops-sh7786.c
71
if (pci_read_reg(chan, SH4A_PCIEERRFR) & 0x10)
arch/sh/drivers/pci/ops-sh7786.c
75
if (pci_read_reg(chan, SH4A_PCIEPCICONF1) & ((1 << 29) | (1 << 28)))
arch/sh/drivers/pci/ops-sh7786.c
79
*data = pci_read_reg(chan, SH4A_PCIEPDR);
arch/sh/drivers/pci/ops-sh7786.c
81
pci_write_reg(chan, *data, SH4A_PCIEPDR);
arch/sh/drivers/pci/ops-sh7786.c
84
pci_write_reg(chan, 0, SH4A_PCIEPCTLR);
arch/sh/drivers/pci/pci-sh4.h
158
int pci_fixup_pcic(struct pci_channel *chan);
arch/sh/drivers/pci/pci-sh4.h
170
static inline void pci_write_reg(struct pci_channel *chan,
arch/sh/drivers/pci/pci-sh4.h
173
__raw_writel(val, chan->reg_base + reg);
arch/sh/drivers/pci/pci-sh4.h
176
static inline unsigned long pci_read_reg(struct pci_channel *chan,
arch/sh/drivers/pci/pci-sh4.h
179
return __raw_readl(chan->reg_base + reg);
arch/sh/drivers/pci/pci-sh7751.c
102
pci_write_reg(chan, word, SH4_PCIPINT);
arch/sh/drivers/pci/pci-sh7751.c
110
pci_write_reg(chan, word, SH7751_PCICONF1);
arch/sh/drivers/pci/pci-sh7751.c
114
pci_write_reg(chan, word, SH7751_PCICONF2);
arch/sh/drivers/pci/pci-sh7751.c
120
pci_write_reg(chan, word, SH4_PCILSR0);
arch/sh/drivers/pci/pci-sh7751.c
123
pci_write_reg(chan, word, SH4_PCILAR0);
arch/sh/drivers/pci/pci-sh7751.c
124
pci_write_reg(chan, word, SH7751_PCICONF5);
arch/sh/drivers/pci/pci-sh7751.c
129
word = chan->resources[1].start & SH4_PCIMBR_MASK;
arch/sh/drivers/pci/pci-sh7751.c
131
pci_write_reg(chan, word , SH4_PCIMBR);
arch/sh/drivers/pci/pci-sh7751.c
135
word = chan->resources[0].start & SH4_PCIIOBR_MASK;
arch/sh/drivers/pci/pci-sh7751.c
137
pci_write_reg(chan, word, SH4_PCIIOBR);
arch/sh/drivers/pci/pci-sh7751.c
143
case SH7751_CS0_BASE_ADDR: word = __area_sdram_check(chan, 0); break;
arch/sh/drivers/pci/pci-sh7751.c
144
case SH7751_CS1_BASE_ADDR: word = __area_sdram_check(chan, 1); break;
arch/sh/drivers/pci/pci-sh7751.c
145
case SH7751_CS2_BASE_ADDR: word = __area_sdram_check(chan, 2); break;
arch/sh/drivers/pci/pci-sh7751.c
146
case SH7751_CS3_BASE_ADDR: word = __area_sdram_check(chan, 3); break;
arch/sh/drivers/pci/pci-sh7751.c
147
case SH7751_CS4_BASE_ADDR: word = __area_sdram_check(chan, 4); break;
arch/sh/drivers/pci/pci-sh7751.c
148
case SH7751_CS5_BASE_ADDR: word = __area_sdram_check(chan, 5); break;
arch/sh/drivers/pci/pci-sh7751.c
149
case SH7751_CS6_BASE_ADDR: word = __area_sdram_check(chan, 6); break;
arch/sh/drivers/pci/pci-sh7751.c
157
pci_write_reg(chan, word, SH4_PCIWCR1);
arch/sh/drivers/pci/pci-sh7751.c
159
pci_write_reg(chan, word, SH4_PCIWCR2);
arch/sh/drivers/pci/pci-sh7751.c
161
pci_write_reg(chan, word, SH4_PCIWCR3);
arch/sh/drivers/pci/pci-sh7751.c
163
pci_write_reg(chan, word, SH4_PCIMCR);
arch/sh/drivers/pci/pci-sh7751.c
170
pci_fixup_pcic(chan);
arch/sh/drivers/pci/pci-sh7751.c
175
pci_write_reg(chan, word, SH4_PCICR);
arch/sh/drivers/pci/pci-sh7751.c
177
return register_pci_controller(chan);
arch/sh/drivers/pci/pci-sh7751.c
19
static int __init __area_sdram_check(struct pci_channel *chan,
arch/sh/drivers/pci/pci-sh7751.c
31
pci_write_reg(chan, word, SH4_PCIBCR1);
arch/sh/drivers/pci/pci-sh7751.c
40
pci_write_reg(chan, word, SH4_PCIBCR2);
arch/sh/drivers/pci/pci-sh7751.c
77
struct pci_channel *chan = &sh7751_pci_controller;
arch/sh/drivers/pci/pci-sh7751.c
83
chan->reg_base = 0xfe200000;
arch/sh/drivers/pci/pci-sh7751.c
86
id = pci_read_reg(chan, SH7751_PCICONF0);
arch/sh/drivers/pci/pci-sh7751.c
99
pci_write_reg(chan, 0, SH4_PCICLKR);
arch/sh/drivers/pci/pci-sh7780.c
246
struct pci_channel *chan = &sh7780_pci_controller;
arch/sh/drivers/pci/pci-sh7780.c
255
chan->reg_base = 0xfe040000;
arch/sh/drivers/pci/pci-sh7780.c
262
chan->reg_base + SH4_PCICR);
arch/sh/drivers/pci/pci-sh7780.c
271
id = __raw_readw(chan->reg_base + PCI_VENDOR_ID);
arch/sh/drivers/pci/pci-sh7780.c
277
id = __raw_readw(chan->reg_base + PCI_DEVICE_ID);
arch/sh/drivers/pci/pci-sh7780.c
290
type, __raw_readb(chan->reg_base + PCI_REVISION_ID));
arch/sh/drivers/pci/pci-sh7780.c
297
chan->reg_base + SH4_PCICR);
arch/sh/drivers/pci/pci-sh7780.c
307
__raw_writel(memphys + SZ_512M, chan->reg_base + SH4_PCILAR1);
arch/sh/drivers/pci/pci-sh7780.c
309
chan->reg_base + SH4_PCILSR1);
arch/sh/drivers/pci/pci-sh7780.c
315
__raw_writel(0, chan->reg_base + SH4_PCILAR1);
arch/sh/drivers/pci/pci-sh7780.c
316
__raw_writel(0, chan->reg_base + SH4_PCILSR1);
arch/sh/drivers/pci/pci-sh7780.c
323
__raw_writel(memphys, chan->reg_base + SH4_PCILAR0);
arch/sh/drivers/pci/pci-sh7780.c
325
chan->reg_base + SH4_PCILSR0);
arch/sh/drivers/pci/pci-sh7780.c
330
ret = sh7780_pci_setup_irqs(chan);
arch/sh/drivers/pci/pci-sh7780.c
337
__raw_writel(0, chan->reg_base + SH7780_PCICSCR0);
arch/sh/drivers/pci/pci-sh7780.c
338
__raw_writel(0, chan->reg_base + SH7780_PCICSAR0);
arch/sh/drivers/pci/pci-sh7780.c
339
__raw_writel(0, chan->reg_base + SH7780_PCICSCR1);
arch/sh/drivers/pci/pci-sh7780.c
340
__raw_writel(0, chan->reg_base + SH7780_PCICSAR1);
arch/sh/drivers/pci/pci-sh7780.c
345
for (i = 1; i < chan->nr_resources; i++) {
arch/sh/drivers/pci/pci-sh7780.c
346
struct resource *res = chan->resources + i;
arch/sh/drivers/pci/pci-sh7780.c
357
chan->nr_resources--;
arch/sh/drivers/pci/pci-sh7780.c
368
chan->reg_base + SH7780_PCIMBMR(i - 1));
arch/sh/drivers/pci/pci-sh7780.c
369
__raw_writel(res->start, chan->reg_base + SH7780_PCIMBR(i - 1));
arch/sh/drivers/pci/pci-sh7780.c
375
__raw_writel(0, chan->reg_base + PCI_BASE_ADDRESS_0);
arch/sh/drivers/pci/pci-sh7780.c
376
__raw_writel(0, chan->reg_base + SH7780_PCIIOBR);
arch/sh/drivers/pci/pci-sh7780.c
377
__raw_writel(0, chan->reg_base + SH7780_PCIIOBMR);
arch/sh/drivers/pci/pci-sh7780.c
381
PCI_COMMAND_MEMORY, chan->reg_base + PCI_COMMAND);
arch/sh/drivers/pci/pci-sh7780.c
389
chan->reg_base + SH4_PCICR);
arch/sh/drivers/pci/pci-sh7780.c
391
ret = register_pci_controller(chan);
arch/sh/drivers/pci/pci-sh7780.c
395
sh7780_pci66_init(chan);
arch/sh/drivers/pci/pci-sh7780.c
398
(__raw_readw(chan->reg_base + PCI_STATUS) & PCI_STATUS_66MHZ)
arch/sh/drivers/pci/pci-sh7780.c
404
sh7780_pci_teardown_irqs(chan);
arch/sh/drivers/pci/pci.c
280
struct pci_channel *chan = dev->sysdata;
arch/sh/drivers/pci/pci.c
282
if (unlikely(!chan->io_map_base)) {
arch/sh/drivers/pci/pci.c
283
chan->io_map_base = sh_io_port_base;
arch/sh/drivers/pci/pci.c
290
return (void __iomem *)(chan->io_map_base + port);
arch/sh/drivers/pci/pcie-sh7786.c
154
static int __init phy_wait_for_ack(struct pci_channel *chan)
arch/sh/drivers/pci/pcie-sh7786.c
159
if (pci_read_reg(chan, SH4A_PCIEPHYADRR) & (1 << BITS_ACK))
arch/sh/drivers/pci/pcie-sh7786.c
168
static int __init pci_wait_for_irq(struct pci_channel *chan, unsigned int mask)
arch/sh/drivers/pci/pcie-sh7786.c
173
if ((pci_read_reg(chan, SH4A_PCIEINTR) & mask) == mask)
arch/sh/drivers/pci/pcie-sh7786.c
182
static void __init phy_write_reg(struct pci_channel *chan, unsigned int addr,
arch/sh/drivers/pci/pcie-sh7786.c
191
pci_write_reg(chan, data, SH4A_PCIEPHYDOUTR);
arch/sh/drivers/pci/pcie-sh7786.c
192
pci_write_reg(chan, phyaddr, SH4A_PCIEPHYADRR);
arch/sh/drivers/pci/pcie-sh7786.c
194
phy_wait_for_ack(chan);
arch/sh/drivers/pci/pcie-sh7786.c
197
pci_write_reg(chan, 0, SH4A_PCIEPHYDOUTR);
arch/sh/drivers/pci/pcie-sh7786.c
198
pci_write_reg(chan, 0, SH4A_PCIEPHYADRR);
arch/sh/drivers/pci/pcie-sh7786.c
200
phy_wait_for_ack(chan);
arch/sh/drivers/pci/pcie-sh7786.c
205
struct pci_channel *chan = port->hose;
arch/sh/drivers/pci/pcie-sh7786.c
240
clk->enable_reg = (void __iomem *)(chan->reg_base + SH4A_PCIEPHYCTLR);
arch/sh/drivers/pci/pcie-sh7786.c
260
struct pci_channel *chan = port->hose;
arch/sh/drivers/pci/pcie-sh7786.c
266
phy_write_reg(chan, 0x60, 0xf, 0x004b008b);
arch/sh/drivers/pci/pcie-sh7786.c
267
phy_write_reg(chan, 0x61, 0xf, 0x00007b41);
arch/sh/drivers/pci/pcie-sh7786.c
268
phy_write_reg(chan, 0x64, 0xf, 0x00ff4f00);
arch/sh/drivers/pci/pcie-sh7786.c
269
phy_write_reg(chan, 0x65, 0xf, 0x09070907);
arch/sh/drivers/pci/pcie-sh7786.c
270
phy_write_reg(chan, 0x66, 0xf, 0x00000010);
arch/sh/drivers/pci/pcie-sh7786.c
271
phy_write_reg(chan, 0x74, 0xf, 0x0007001c);
arch/sh/drivers/pci/pcie-sh7786.c
272
phy_write_reg(chan, 0x79, 0xf, 0x01fc000d);
arch/sh/drivers/pci/pcie-sh7786.c
273
phy_write_reg(chan, 0xb0, 0xf, 0x00000610);
arch/sh/drivers/pci/pcie-sh7786.c
276
phy_write_reg(chan, 0x67, 0x1, 0x00000400);
arch/sh/drivers/pci/pcie-sh7786.c
282
if (pci_read_reg(chan, SH4A_PCIEPHYSR))
arch/sh/drivers/pci/pcie-sh7786.c
293
struct pci_channel *chan = port->hose;
arch/sh/drivers/pci/pcie-sh7786.c
295
pci_write_reg(chan, 1, SH4A_PCIESRSTR);
arch/sh/drivers/pci/pcie-sh7786.c
296
pci_write_reg(chan, 0, SH4A_PCIETCTLR);
arch/sh/drivers/pci/pcie-sh7786.c
297
pci_write_reg(chan, 0, SH4A_PCIESRSTR);
arch/sh/drivers/pci/pcie-sh7786.c
298
pci_write_reg(chan, 0, SH4A_PCIETXVC0SR);
arch/sh/drivers/pci/pcie-sh7786.c
303
struct pci_channel *chan = port->hose;
arch/sh/drivers/pci/pcie-sh7786.c
316
pci_write_reg(chan, PCI_CLASS_BRIDGE_PCI_NORMAL << 8, SH4A_PCIEIDSETR1);
arch/sh/drivers/pci/pcie-sh7786.c
319
data = pci_read_reg(chan, SH4A_PCIEEXPCAP0);
arch/sh/drivers/pci/pcie-sh7786.c
328
pci_write_reg(chan, data, SH4A_PCIEEXPCAP0);
arch/sh/drivers/pci/pcie-sh7786.c
331
pci_write_reg(chan, PCI_EXP_LNKCAP_DLLLARC, SH4A_PCIEEXPCAP3);
arch/sh/drivers/pci/pcie-sh7786.c
334
data = pci_read_reg(chan, SH4A_PCIEEXPCAP4);
arch/sh/drivers/pci/pcie-sh7786.c
337
pci_write_reg(chan, data, SH4A_PCIEEXPCAP4);
arch/sh/drivers/pci/pcie-sh7786.c
340
data = pci_read_reg(chan, SH4A_PCIEEXPCAP5);
arch/sh/drivers/pci/pcie-sh7786.c
343
pci_write_reg(chan, data, SH4A_PCIEEXPCAP5);
arch/sh/drivers/pci/pcie-sh7786.c
346
data = pci_read_reg(chan, SH4A_PCIETLCTLR);
arch/sh/drivers/pci/pcie-sh7786.c
349
pci_write_reg(chan, data, SH4A_PCIETLCTLR);
arch/sh/drivers/pci/pcie-sh7786.c
355
data = pci_read_reg(chan, SH4A_PCIEMACCTLR);
arch/sh/drivers/pci/pcie-sh7786.c
358
pci_write_reg(chan, data, SH4A_PCIEMACCTLR);
arch/sh/drivers/pci/pcie-sh7786.c
377
pci_write_reg(chan, memstart + SZ_512M, SH4A_PCIELAR1);
arch/sh/drivers/pci/pcie-sh7786.c
378
pci_write_reg(chan, ((memsize - SZ_512M) - SZ_256) | 1,
arch/sh/drivers/pci/pcie-sh7786.c
385
pci_write_reg(chan, 0, SH4A_PCIELAR1);
arch/sh/drivers/pci/pcie-sh7786.c
386
pci_write_reg(chan, 0, SH4A_PCIELAMR1);
arch/sh/drivers/pci/pcie-sh7786.c
393
pci_write_reg(chan, memstart, SH4A_PCIELAR0);
arch/sh/drivers/pci/pcie-sh7786.c
394
pci_write_reg(chan, (memsize - SZ_256) | 1, SH4A_PCIELAMR0);
arch/sh/drivers/pci/pcie-sh7786.c
397
data = pci_read_reg(chan, SH4A_PCIETCTLR);
arch/sh/drivers/pci/pcie-sh7786.c
399
pci_write_reg(chan, data, SH4A_PCIETCTLR);
arch/sh/drivers/pci/pcie-sh7786.c
405
data = pci_read_reg(chan, SH4A_PCIEDLINTENR);
arch/sh/drivers/pci/pcie-sh7786.c
407
pci_write_reg(chan, data, SH4A_PCIEDLINTENR);
arch/sh/drivers/pci/pcie-sh7786.c
410
data = pci_read_reg(chan, SH4A_PCIEMACCTLR);
arch/sh/drivers/pci/pcie-sh7786.c
412
pci_write_reg(chan, data, SH4A_PCIEMACCTLR);
arch/sh/drivers/pci/pcie-sh7786.c
419
ret = pci_wait_for_irq(chan, MASK_INT_TX_CTRL);
arch/sh/drivers/pci/pcie-sh7786.c
421
data = pci_read_reg(chan, SH4A_PCIEPCICONF1);
arch/sh/drivers/pci/pcie-sh7786.c
425
pci_write_reg(chan, data, SH4A_PCIEPCICONF1);
arch/sh/drivers/pci/pcie-sh7786.c
427
pci_write_reg(chan, 0x80888000, SH4A_PCIETXVC0DCTLR);
arch/sh/drivers/pci/pcie-sh7786.c
428
pci_write_reg(chan, 0x00222000, SH4A_PCIERXVC0DCTLR);
arch/sh/drivers/pci/pcie-sh7786.c
433
data = pci_read_reg(chan, SH4A_PCIEMACSR);
arch/sh/drivers/pci/pcie-sh7786.c
440
for (i = win = 0; i < chan->nr_resources; i++) {
arch/sh/drivers/pci/pcie-sh7786.c
441
struct resource *res = chan->resources + i;
arch/sh/drivers/pci/pcie-sh7786.c
455
pci_write_reg(chan, 0x00000000, SH4A_PCIEPTCTLR(win));
arch/sh/drivers/pci/pcie-sh7786.c
463
pci_write_reg(chan, mask << 18, SH4A_PCIEPAMR(win));
arch/sh/drivers/pci/pcie-sh7786.c
465
pci_write_reg(chan, upper_32_bits(res->start),
arch/sh/drivers/pci/pcie-sh7786.c
467
pci_write_reg(chan, lower_32_bits(res->start),
arch/sh/drivers/pci/pcie-sh7786.c
474
pci_write_reg(chan, mask, SH4A_PCIEPTCTLR(win));
arch/sh/drivers/pci/pcie-sh7786.h
566
pci_write_reg(struct pci_channel *chan, unsigned long val, unsigned long reg)
arch/sh/drivers/pci/pcie-sh7786.h
568
__raw_writel(val, chan->reg_base + reg);
arch/sh/drivers/pci/pcie-sh7786.h
572
pci_read_reg(struct pci_channel *chan, unsigned long reg)
arch/sh/drivers/pci/pcie-sh7786.h
574
return __raw_readl(chan->reg_base + reg);
arch/sh/include/asm/dma.h
107
extern int dma_xfer(unsigned int chan, unsigned long from,
arch/sh/include/asm/dma.h
110
#define dma_write(chan, from, to, size) \
arch/sh/include/asm/dma.h
111
dma_xfer(chan, from, to, size, DMA_MODE_WRITE)
arch/sh/include/asm/dma.h
112
#define dma_write_page(chan, from, to) \
arch/sh/include/asm/dma.h
113
dma_write(chan, from, to, PAGE_SIZE)
arch/sh/include/asm/dma.h
115
#define dma_read(chan, from, to, size) \
arch/sh/include/asm/dma.h
116
dma_xfer(chan, from, to, size, DMA_MODE_READ)
arch/sh/include/asm/dma.h
117
#define dma_read_page(chan, from, to) \
arch/sh/include/asm/dma.h
118
dma_read(chan, from, to, PAGE_SIZE)
arch/sh/include/asm/dma.h
120
extern int get_dma_residue(unsigned int chan);
arch/sh/include/asm/dma.h
121
extern struct dma_info *get_dma_info(unsigned int chan);
arch/sh/include/asm/dma.h
122
extern struct dma_channel *get_dma_channel(unsigned int chan);
arch/sh/include/asm/dma.h
123
extern void dma_wait_for_completion(unsigned int chan);
arch/sh/include/asm/dma.h
124
extern void dma_configure_channel(unsigned int chan, unsigned long flags);
arch/sh/include/asm/dma.h
53
int (*request)(struct dma_channel *chan);
arch/sh/include/asm/dma.h
54
void (*free)(struct dma_channel *chan);
arch/sh/include/asm/dma.h
56
int (*get_residue)(struct dma_channel *chan);
arch/sh/include/asm/dma.h
57
int (*xfer)(struct dma_channel *chan);
arch/sh/include/asm/dma.h
58
int (*configure)(struct dma_channel *chan, unsigned long flags);
arch/sh/include/asm/dma.h
64
unsigned int chan; /* DMAC channel number */
arch/sparc/include/asm/ldc.h
83
#define ldc_print(chan) __ldc_print(chan, __func__)
arch/um/drivers/chan.h
34
extern int write_chan(struct chan *chan, const u8 *buf, size_t len,
arch/um/drivers/chan.h
36
extern int console_write_chan(struct chan *chan, const char *buf,
arch/um/drivers/chan.h
39
extern void deactivate_chan(struct chan *chan, int irq);
arch/um/drivers/chan.h
40
extern void chan_enable_winch(struct chan *chan, struct tty_port *port);
arch/um/drivers/chan_kern.c
100
chan->data, &chan->dev);
arch/um/drivers/chan_kern.c
108
chan->fd_in = fd;
arch/um/drivers/chan_kern.c
109
chan->fd_out = fd;
arch/um/drivers/chan_kern.c
122
if (chan->output && need_output_blocking()) {
arch/um/drivers/chan_kern.c
123
err = os_dup_file(chan->fd_out);
arch/um/drivers/chan_kern.c
127
chan->fd_out = err;
arch/um/drivers/chan_kern.c
129
err = os_set_fd_block(chan->fd_out, 1);
arch/um/drivers/chan_kern.c
131
os_close_file(chan->fd_out);
arch/um/drivers/chan_kern.c
136
chan->opened = 1;
arch/um/drivers/chan_kern.c
140
(*chan->ops->close)(fd, chan->data);
arch/um/drivers/chan_kern.c
147
struct chan *chan;
arch/um/drivers/chan_kern.c
151
chan = list_entry(ele, struct chan, list);
arch/um/drivers/chan_kern.c
152
ret = open_one_chan(chan);
arch/um/drivers/chan_kern.c
153
if (chan->primary)
arch/um/drivers/chan_kern.c
159
void chan_enable_winch(struct chan *chan, struct tty_port *port)
arch/um/drivers/chan_kern.c
161
if (chan && chan->primary && chan->ops->winch)
arch/um/drivers/chan_kern.c
162
register_winch(chan->fd_in, port);
arch/um/drivers/chan_kern.c
176
struct chan *chan;
arch/um/drivers/chan_kern.c
182
chan = list_entry(ele, struct chan, list);
arch/um/drivers/chan_kern.c
183
err = open_one_chan(chan);
arch/um/drivers/chan_kern.c
185
if (chan->primary)
arch/um/drivers/chan_kern.c
191
if (chan->enabled)
arch/um/drivers/chan_kern.c
193
err = line_setup_irq(chan->fd_in, chan->input,
arch/um/drivers/chan_kern.c
194
chan->output && !need_output_blocking(),
arch/um/drivers/chan_kern.c
195
line, chan);
arch/um/drivers/chan_kern.c
199
chan->enabled = 1;
arch/um/drivers/chan_kern.c
220
struct chan *chan;
arch/um/drivers/chan_kern.c
230
chan = list_entry(ele, struct chan, free_list);
arch/um/drivers/chan_kern.c
232
if (chan->input && chan->enabled)
arch/um/drivers/chan_kern.c
233
um_free_irq(chan->line->read_irq, chan);
arch/um/drivers/chan_kern.c
234
if (chan->output && chan->enabled &&
arch/um/drivers/chan_kern.c
236
um_free_irq(chan->line->write_irq, chan);
arch/um/drivers/chan_kern.c
237
chan->enabled = 0;
arch/um/drivers/chan_kern.c
241
static void close_one_chan(struct chan *chan, int delay_free_irq)
arch/um/drivers/chan_kern.c
245
if (!chan->opened)
arch/um/drivers/chan_kern.c
250
list_add(&chan->free_list, &irqs_to_free);
arch/um/drivers/chan_kern.c
253
if (chan->input && chan->enabled)
arch/um/drivers/chan_kern.c
254
um_free_irq(chan->line->read_irq, chan);
arch/um/drivers/chan_kern.c
255
if (chan->output && chan->enabled &&
arch/um/drivers/chan_kern.c
257
um_free_irq(chan->line->write_irq, chan);
arch/um/drivers/chan_kern.c
258
chan->enabled = 0;
arch/um/drivers/chan_kern.c
260
if (chan->fd_out != chan->fd_in)
arch/um/drivers/chan_kern.c
261
os_close_file(chan->fd_out);
arch/um/drivers/chan_kern.c
262
if (chan->ops->close != NULL)
arch/um/drivers/chan_kern.c
263
(*chan->ops->close)(chan->fd_in, chan->data);
arch/um/drivers/chan_kern.c
265
chan->opened = 0;
arch/um/drivers/chan_kern.c
266
chan->fd_in = -1;
arch/um/drivers/chan_kern.c
267
chan->fd_out = -1;
arch/um/drivers/chan_kern.c
272
struct chan *chan;
arch/um/drivers/chan_kern.c
279
list_for_each_entry_reverse(chan, &line->chan_list, list) {
arch/um/drivers/chan_kern.c
280
close_one_chan(chan, 0);
arch/um/drivers/chan_kern.c
284
void deactivate_chan(struct chan *chan, int irq)
arch/um/drivers/chan_kern.c
286
if (chan && chan->enabled)
arch/um/drivers/chan_kern.c
287
deactivate_fd(chan->fd_in, irq);
arch/um/drivers/chan_kern.c
290
int write_chan(struct chan *chan, const u8 *buf, size_t len, int write_irq)
arch/um/drivers/chan_kern.c
294
if (len == 0 || !chan || !chan->ops->write)
arch/um/drivers/chan_kern.c
297
n = chan->ops->write(chan->fd_out, buf, len, chan->data);
arch/um/drivers/chan_kern.c
298
if (chan->primary) {
arch/um/drivers/chan_kern.c
304
int console_write_chan(struct chan *chan, const char *buf, int len)
arch/um/drivers/chan_kern.c
308
if (!chan || !chan->ops->console_write)
arch/um/drivers/chan_kern.c
311
n = chan->ops->console_write(chan->fd_out, buf, len);
arch/um/drivers/chan_kern.c
312
if (chan->primary)
arch/um/drivers/chan_kern.c
333
struct chan *chan;
arch/um/drivers/chan_kern.c
335
chan = line->chan_in;
arch/um/drivers/chan_kern.c
336
if (chan && chan->primary) {
arch/um/drivers/chan_kern.c
337
if (chan->ops->window_size == NULL)
arch/um/drivers/chan_kern.c
339
return chan->ops->window_size(chan->fd_in, chan->data,
arch/um/drivers/chan_kern.c
342
chan = line->chan_out;
arch/um/drivers/chan_kern.c
343
if (chan && chan->primary) {
arch/um/drivers/chan_kern.c
344
if (chan->ops->window_size == NULL)
arch/um/drivers/chan_kern.c
346
return chan->ops->window_size(chan->fd_in, chan->data,
arch/um/drivers/chan_kern.c
352
static void free_one_chan(struct chan *chan)
arch/um/drivers/chan_kern.c
354
list_del(&chan->list);
arch/um/drivers/chan_kern.c
356
close_one_chan(chan, 0);
arch/um/drivers/chan_kern.c
358
if (chan->ops->free != NULL)
arch/um/drivers/chan_kern.c
359
(*chan->ops->free)(chan->data);
arch/um/drivers/chan_kern.c
361
if (chan->primary && chan->output)
arch/um/drivers/chan_kern.c
362
ignore_sigio_fd(chan->fd_in);
arch/um/drivers/chan_kern.c
363
kfree(chan);
arch/um/drivers/chan_kern.c
369
struct chan *chan;
arch/um/drivers/chan_kern.c
372
chan = list_entry(ele, struct chan, list);
arch/um/drivers/chan_kern.c
373
free_one_chan(chan);
arch/um/drivers/chan_kern.c
377
static int one_chan_config_string(struct chan *chan, char *str, int size,
arch/um/drivers/chan_kern.c
382
if (chan == NULL) {
arch/um/drivers/chan_kern.c
387
CONFIG_CHUNK(str, size, n, chan->ops->type, 0);
arch/um/drivers/chan_kern.c
389
if (chan->dev == NULL) {
arch/um/drivers/chan_kern.c
395
CONFIG_CHUNK(str, size, n, chan->dev, 0);
arch/um/drivers/chan_kern.c
400
static int chan_pair_config_string(struct chan *in, struct chan *out,
arch/um/drivers/chan_kern.c
426
struct chan *in = line->chan_in, *out = line->chan_out;
arch/um/drivers/chan_kern.c
477
static struct chan *parse_chan(struct line *line, char *str, int device,
arch/um/drivers/chan_kern.c
482
struct chan *chan;
arch/um/drivers/chan_kern.c
507
chan = kmalloc_obj(*chan, GFP_ATOMIC);
arch/um/drivers/chan_kern.c
508
if (chan == NULL) {
arch/um/drivers/chan_kern.c
512
*chan = ((struct chan) { .list = LIST_HEAD_INIT(chan->list),
arch/um/drivers/chan_kern.c
514
LIST_HEAD_INIT(chan->free_list),
arch/um/drivers/chan_kern.c
525
return chan;
arch/um/drivers/chan_kern.c
532
struct chan *new;
arch/um/drivers/chan_kern.c
581
struct chan *chan = line->chan_in;
arch/um/drivers/chan_kern.c
585
if (!chan || !chan->ops->read)
arch/um/drivers/chan_kern.c
593
err = chan->ops->read(chan->fd_in, &c, chan->data);
arch/um/drivers/chan_kern.c
599
if (chan->primary) {
arch/um/drivers/chan_kern.c
601
if (line->chan_out != chan)
arch/um/drivers/chan_kern.c
604
close_one_chan(chan, 1);
arch/um/drivers/chan_kern.c
605
if (chan->primary)
arch/um/drivers/chan_kern.c
90
static int open_one_chan(struct chan *chan)
arch/um/drivers/chan_kern.c
94
if (chan->opened)
arch/um/drivers/chan_kern.c
97
if (chan->ops->open == NULL)
arch/um/drivers/chan_kern.c
99
else fd = (*chan->ops->open)(chan->input, chan->output, chan->primary,
arch/um/drivers/line.c
21
struct chan *chan = data;
arch/um/drivers/line.c
22
struct line *line = chan->line;
arch/um/drivers/line.c
232
struct chan *chan = data;
arch/um/drivers/line.c
233
struct line *line = chan->line;
arch/um/drivers/line.h
40
struct chan *chan_in, *chan_out;
crypto/async_tx/async_memcpy.c
36
struct dma_chan *chan = async_tx_find_channel(submit, DMA_MEMCPY,
crypto/async_tx/async_memcpy.c
38
struct dma_device *device = chan ? chan->device : NULL;
crypto/async_tx/async_memcpy.c
61
tx = device->device_prep_dma_memcpy(chan, unmap->addr[1],
crypto/async_tx/async_memcpy.c
70
async_tx_submit(chan, tx, submit);
crypto/async_tx/async_pq.c
182
struct dma_chan *chan = async_tx_find_channel(submit, DMA_PQ,
crypto/async_tx/async_pq.c
185
struct dma_device *device = chan ? chan->device : NULL;
crypto/async_tx/async_pq.c
245
tx = do_async_gen_syndrome(chan, coefs, j, unmap, dma_flags, submit);
crypto/async_tx/async_pq.c
303
struct dma_chan *chan = pq_val_chan(submit, blocks, disks, len);
crypto/async_tx/async_pq.c
304
struct dma_device *device = chan ? chan->device : NULL;
crypto/async_tx/async_pq.c
36
do_async_gen_syndrome(struct dma_chan *chan,
crypto/async_tx/async_pq.c
360
tx = device->device_prep_dma_pq_val(chan, pq,
crypto/async_tx/async_pq.c
369
dma_async_issue_pending(chan);
crypto/async_tx/async_pq.c
373
async_tx_submit(chan, tx, submit);
crypto/async_tx/async_pq.c
43
struct dma_device *dma = chan->device;
crypto/async_tx/async_pq.c
79
tx = dma->device_prep_dma_pq(chan, dma_dest,
crypto/async_tx/async_pq.c
87
dma_async_issue_pending(chan);
crypto/async_tx/async_pq.c
91
async_tx_submit(chan, tx, submit);
crypto/async_tx/async_raid6_recov.c
123
tx = dma->device_prep_dma_pq(chan, dma_dest, unmap->addr,
crypto/async_tx/async_raid6_recov.c
129
async_tx_submit(chan, tx, submit);
crypto/async_tx/async_raid6_recov.c
23
struct dma_chan *chan = async_tx_find_channel(submit, DMA_PQ,
crypto/async_tx/async_raid6_recov.c
25
struct dma_device *dma = chan ? chan->device : NULL;
crypto/async_tx/async_raid6_recov.c
55
tx = dma->device_prep_dma_pq(chan, pq, unmap->addr, 2, coef,
crypto/async_tx/async_raid6_recov.c
59
async_tx_submit(chan, tx, submit);
crypto/async_tx/async_raid6_recov.c
92
struct dma_chan *chan = async_tx_find_channel(submit, DMA_PQ,
crypto/async_tx/async_raid6_recov.c
94
struct dma_device *dma = chan ? chan->device : NULL;
crypto/async_tx/async_tx.c
116
device->device_issue_pending(chan);
crypto/async_tx/async_tx.c
143
async_tx_submit(struct dma_chan *chan, struct dma_async_tx_descriptor *tx,
crypto/async_tx/async_tx.c
172
if (depend_tx->chan == chan) {
crypto/async_tx/async_tx.c
181
if (depend_tx->chan == chan)
crypto/async_tx/async_tx.c
223
struct dma_chan *chan;
crypto/async_tx/async_tx.c
229
chan = depend_tx->chan;
crypto/async_tx/async_tx.c
230
device = chan->device;
crypto/async_tx/async_tx.c
238
tx = device ? device->device_prep_dma_interrupt(chan, 0) : NULL;
crypto/async_tx/async_tx.c
245
async_tx_submit(chan, tx, submit);
crypto/async_tx/async_tx.c
50
dma_has_cap(tx_type, depend_tx->chan->device->cap_mask))
crypto/async_tx/async_tx.c
51
return depend_tx->chan;
crypto/async_tx/async_tx.c
68
struct dma_chan *chan = depend_tx->chan;
crypto/async_tx/async_tx.c
69
struct dma_device *device = chan->device;
crypto/async_tx/async_tx.c
74
if (txd_parent(depend_tx) && depend_tx->chan == tx->chan) {
crypto/async_tx/async_tx.c
82
device->device_issue_pending(chan);
crypto/async_tx/async_tx.c
90
intr_tx = device->device_prep_dma_interrupt(chan, 0);
crypto/async_tx/async_xor.c
173
struct dma_chan *chan = async_tx_find_channel(submit, DMA_XOR,
crypto/async_tx/async_xor.c
176
struct dma_device *device = chan ? chan->device : NULL;
crypto/async_tx/async_xor.c
207
tx = do_async_xor(chan, unmap, submit);
crypto/async_tx/async_xor.c
214
WARN_ONCE(chan, "%s: no space for dma address conversion\n",
crypto/async_tx/async_xor.c
23
do_async_xor(struct dma_chan *chan, struct dmaengine_unmap_data *unmap,
crypto/async_tx/async_xor.c
26
struct dma_device *dma = chan->device;
crypto/async_tx/async_xor.c
306
struct dma_chan *chan = xor_val_chan(submit, dest, src_list, src_cnt, len);
crypto/async_tx/async_xor.c
307
struct dma_device *device = chan ? chan->device : NULL;
crypto/async_tx/async_xor.c
336
tx = device->device_prep_dma_xor_val(chan, unmap->addr, src_cnt,
crypto/async_tx/async_xor.c
343
dma_async_issue_pending(chan);
crypto/async_tx/async_xor.c
344
tx = device->device_prep_dma_xor_val(chan,
crypto/async_tx/async_xor.c
350
async_tx_submit(chan, tx, submit);
crypto/async_tx/async_xor.c
65
tx = dma->device_prep_dma_xor(chan, dma_dest, src_list,
crypto/async_tx/async_xor.c
74
dma_async_issue_pending(chan);
crypto/async_tx/async_xor.c
75
tx = dma->device_prep_dma_xor(chan, dma_dest,
crypto/async_tx/async_xor.c
83
async_tx_submit(chan, tx, submit);
drivers/accel/qaic/qaic_debugfs.c
283
{ .chan = "QAIC_LOGGING", },
drivers/accel/qaic/qaic_drv.c
649
{ .chan = "QAIC_CONTROL", },
drivers/accel/qaic/qaic_ras.c
618
{ .chan = "QAIC_STATUS", },
drivers/accel/qaic/qaic_ssr.c
771
{ .chan = "QAIC_SSR", },
drivers/accel/qaic/qaic_timesync.c
240
{ .chan = "QAIC_TIMESYNC_PERIODIC"},
drivers/accel/qaic/qaic_timesync.c
373
{ .chan = "QAIC_TIMESYNC"},
drivers/accel/qaic/sahara.c
911
{ .chan = "QAIC_SAHARA", },
drivers/ata/pata_arasan_cf.c
398
struct dma_chan *chan = acdev->dma_chan;
drivers/ata/pata_arasan_cf.c
403
tx = chan->device->device_prep_dma_memcpy(chan, dest, src, len, flags);
drivers/ata/pata_arasan_cf.c
419
chan->device->device_issue_pending(chan);
drivers/ata/pata_arasan_cf.c
423
dmaengine_terminate_all(chan);
drivers/ata/pdc_adma.c
178
void __iomem *chan = ADMA_PORT_REGS(ap);
drivers/ata/pdc_adma.c
181
writew(aPIOMD4 | aNIEN | aRSTADM, chan + ADMA_CONTROL);
drivers/ata/pdc_adma.c
183
writew(aPIOMD4, chan + ADMA_CONTROL);
drivers/ata/pdc_adma.c
190
void __iomem *chan = ADMA_PORT_REGS(ap);
drivers/ata/pdc_adma.c
200
writew(0x100, chan + ADMA_FIFO_IN);
drivers/ata/pdc_adma.c
203
writel((u32)pp->pkt_dma, chan + ADMA_CPB_NEXT);
drivers/ata/pdc_adma.c
206
writew(0x100, chan + ADMA_FIFO_OUT);
drivers/ata/pdc_adma.c
209
writew(1, chan + ADMA_CPB_COUNT);
drivers/ata/pdc_adma.c
212
readb(chan + ADMA_STATUS);
drivers/ata/pdc_adma.c
217
void __iomem *chan = ADMA_PORT_REGS(ap);
drivers/ata/pdc_adma.c
219
writew(aPIOMD4, chan + ADMA_CONTROL);
drivers/ata/pdc_adma.c
220
readb(chan + ADMA_STATUS); /* flush */
drivers/ata/pdc_adma.c
225
void __iomem *chan = ADMA_PORT_REGS(ap);
drivers/ata/pdc_adma.c
232
writew(aPIOMD4 | aNIEN | aRSTADM, chan + ADMA_CONTROL);
drivers/ata/pdc_adma.c
234
writew(aPIOMD4 | aNIEN, chan + ADMA_CONTROL);
drivers/ata/pdc_adma.c
358
void __iomem *chan = ADMA_PORT_REGS(ap);
drivers/ata/pdc_adma.c
361
writew(aPIOMD4 | aGO, chan + ADMA_CONTROL);
drivers/ata/pdc_adma.c
394
void __iomem *chan = ADMA_PORT_REGS(ap);
drivers/ata/pdc_adma.c
395
u8 status = readb(chan + ADMA_STATUS);
drivers/ata/sata_dwc_460ex.c
146
struct dma_chan *chan;
drivers/ata/sata_dwc_460ex.c
191
static bool sata_dwc_dma_filter(struct dma_chan *chan, void *param)
drivers/ata/sata_dwc_460ex.c
195
if (dws->dma_dev != chan->device->dev)
drivers/ata/sata_dwc_460ex.c
198
chan->private = dws;
drivers/ata/sata_dwc_460ex.c
215
hsdevp->chan = dma_request_channel(mask, sata_dwc_dma_filter, hsdevp);
drivers/ata/sata_dwc_460ex.c
216
if (!hsdevp->chan) {
drivers/ata/sata_dwc_460ex.c
340
dmaengine_slave_config(hsdevp->chan, &sconf);
drivers/ata/sata_dwc_460ex.c
343
desc = dmaengine_prep_slave_sg(hsdevp->chan, qc->sg, qc->n_elem,
drivers/ata/sata_dwc_460ex.c
806
hsdevp->chan = dma_request_chan(dev, "sata-dma");
drivers/ata/sata_dwc_460ex.c
807
if (IS_ERR(hsdevp->chan)) {
drivers/ata/sata_dwc_460ex.c
809
PTR_ERR(hsdevp->chan));
drivers/ata/sata_dwc_460ex.c
810
return PTR_ERR(hsdevp->chan);
drivers/ata/sata_dwc_460ex.c
897
dmaengine_terminate_sync(hsdevp->chan);
drivers/ata/sata_dwc_460ex.c
898
dma_release_channel(hsdevp->chan);
drivers/ata/sata_dwc_460ex.c
985
dma_async_issue_pending(hsdevp->chan);
drivers/ata/sata_qstor.c
172
u8 __iomem *chan = qs_mmio_base(ap->host) + (ap->port_no * 0x4000);
drivers/ata/sata_qstor.c
176
writeb(QS_CTR0_REG, chan + QS_CCT_CTR0);
drivers/ata/sata_qstor.c
177
readb(chan + QS_CCT_CTR0); /* flush */
drivers/ata/sata_qstor.c
182
u8 __iomem *chan = qs_mmio_base(ap->host) + (ap->port_no * 0x4000);
drivers/ata/sata_qstor.c
184
writeb(QS_CTR1_RCHN, chan + QS_CCT_CTR1);
drivers/ata/sata_qstor.c
185
readb(chan + QS_CCT_CTR0); /* flush */
drivers/ata/sata_qstor.c
300
u8 __iomem *chan = qs_mmio_base(ap->host) + (ap->port_no * 0x4000);
drivers/ata/sata_qstor.c
302
writeb(QS_CTR0_CLER, chan + QS_CCT_CTR0);
drivers/ata/sata_qstor.c
304
writel(QS_CCF_RUN_PKT, chan + QS_CCT_CFF);
drivers/ata/sata_qstor.c
305
readl(chan + QS_CCT_CFF); /* flush */
drivers/ata/sata_qstor.c
461
void __iomem *chan = mmio_base + (ap->port_no * 0x4000);
drivers/ata/sata_qstor.c
475
writel((u32) addr, chan + QS_CCF_CPBA);
drivers/ata/sata_qstor.c
476
writel((u32)(addr >> 32), chan + QS_CCF_CPBA + 4);
drivers/ata/sata_qstor.c
498
u8 __iomem *chan = mmio_base + (port_no * 0x4000);
drivers/ata/sata_qstor.c
499
writeb(QS_CTR1_RDEV|QS_CTR1_RCHN, chan + QS_CCT_CTR1);
drivers/ata/sata_qstor.c
500
writeb(QS_CTR0_REG, chan + QS_CCT_CTR0);
drivers/ata/sata_qstor.c
501
readb(chan + QS_CCT_CTR0); /* flush */
drivers/ata/sata_qstor.c
506
u8 __iomem *chan = mmio_base + (port_no * 0x4000);
drivers/ata/sata_qstor.c
508
writew(32, chan + QS_CFC_HUFT);
drivers/ata/sata_qstor.c
509
writew(32, chan + QS_CFC_HDFT);
drivers/ata/sata_qstor.c
510
writew(10, chan + QS_CFC_DUFT);
drivers/ata/sata_qstor.c
511
writew( 8, chan + QS_CFC_DDFT);
drivers/ata/sata_qstor.c
513
writeb(QS_CPB_ORDER, chan + QS_CCF_CSEP);
drivers/ata/sata_qstor.c
575
void __iomem *chan = host->iomap[QS_MMIO_BAR] + offset;
drivers/ata/sata_qstor.c
577
qs_ata_setup_port(&ap->ioaddr, chan);
drivers/block/ps3vram.c
173
static void ps3vram_begin_ring(struct ps3vram_priv *priv, u32 chan, u32 tag,
drivers/block/ps3vram.c
176
ps3vram_out_ring(priv, (size << 18) | (chan << 13) | tag);
drivers/bluetooth/hci_bcsp.c
167
u8 hdr[4], chan;
drivers/bluetooth/hci_bcsp.c
173
chan = 6; /* BCSP ACL channel */
drivers/bluetooth/hci_bcsp.c
177
chan = 5; /* BCSP cmd/evt channel */
drivers/bluetooth/hci_bcsp.c
181
chan = 7; /* BCSP SCO channel */
drivers/bluetooth/hci_bcsp.c
185
chan = 1; /* BCSP LE channel */
drivers/bluetooth/hci_bcsp.c
189
chan = 0; /* BCSP internal channel */
drivers/bluetooth/hci_bcsp.c
197
if (hciextn && chan == 5) {
drivers/bluetooth/hci_bcsp.c
207
chan = desc & 0x0f;
drivers/bluetooth/hci_bcsp.c
239
hdr[1] = ((len << 4) & 0xff) | chan;
drivers/bus/mhi/ep/internal.h
169
u32 chan;
drivers/bus/mhi/ep/main.c
1395
u32 chan, i;
drivers/bus/mhi/ep/main.c
1414
chan = ch_cfg->num;
drivers/bus/mhi/ep/main.c
1415
if (chan >= mhi_cntrl->max_chan) {
drivers/bus/mhi/ep/main.c
1417
chan, mhi_cntrl->max_chan);
drivers/bus/mhi/ep/main.c
1424
ch_cfg->dir, chan);
drivers/bus/mhi/ep/main.c
1428
mhi_chan = &mhi_cntrl->mhi_chan[chan];
drivers/bus/mhi/ep/main.c
1430
mhi_chan->chan = chan;
drivers/bus/mhi/ep/main.c
1694
for (id = mhi_drv->id_table; id->chan[0]; id++)
drivers/bus/mhi/ep/main.c
1695
if (!strcmp(mhi_dev->name, id->chan)) {
drivers/bus/mhi/ep/main.c
332
struct mhi_ep_ring *ring = &mhi_cntrl->mhi_chan[mhi_chan->chan].ring;
drivers/bus/mhi/ep/main.c
343
struct mhi_ep_ring *ring = &mhi_cntrl->mhi_chan[mhi_chan->chan].ring;
drivers/bus/mhi/ep/main.c
512
struct mhi_ep_ring *ring = &mhi_cntrl->mhi_chan[mhi_chan->chan].ring;
drivers/bus/mhi/ep/main.c
551
ring = &mhi_cntrl->mhi_chan[mhi_chan->chan].ring;
drivers/bus/mhi/ep/main.c
808
struct mhi_ep_chan *chan;
drivers/bus/mhi/ep/main.c
822
chan = &mhi_cntrl->mhi_chan[ring->ch_id];
drivers/bus/mhi/ep/main.c
823
mutex_lock(&chan->lock);
drivers/bus/mhi/ep/main.c
830
mutex_unlock(&chan->lock);
drivers/bus/mhi/ep/main.c
839
mutex_unlock(&chan->lock);
drivers/bus/mhi/ep/main.c
845
if (chan->rd_offset == ring->wr_offset) {
drivers/bus/mhi/ep/main.c
846
mutex_unlock(&chan->lock);
drivers/bus/mhi/ep/main.c
856
mutex_unlock(&chan->lock);
drivers/bus/mhi/ep/main.c
861
mutex_unlock(&chan->lock);
drivers/bus/mhi/host/debugfs.c
101
mhi_chan->name, mhi_chan->chan);
drivers/bus/mhi/host/debugfs.c
110
mhi_chan->name, mhi_chan->chan, (le32_to_cpu(chan_ctxt->chcfg) &
drivers/bus/mhi/host/init.c
1440
for (id = mhi_drv->id_table; id->chan[0]; id++)
drivers/bus/mhi/host/init.c
1441
if (!strcmp(mhi_dev->name, id->chan)) {
drivers/bus/mhi/host/init.c
618
chan_ctxt = &mhi_cntrl->mhi_ctxt->chan_ctxt[mhi_chan->chan];
drivers/bus/mhi/host/init.c
656
chan_ctxt = &mhi_cntrl->mhi_ctxt->chan_ctxt[mhi_chan->chan];
drivers/bus/mhi/host/init.c
717
mhi_event->chan = event_cfg->channel;
drivers/bus/mhi/host/init.c
718
if (mhi_event->chan >= mhi_cntrl->max_chan) {
drivers/bus/mhi/host/init.c
725
&mhi_cntrl->mhi_chan[mhi_event->chan];
drivers/bus/mhi/host/init.c
779
u32 chan;
drivers/bus/mhi/host/init.c
801
chan = ch_cfg->num;
drivers/bus/mhi/host/init.c
802
if (chan >= mhi_cntrl->max_chan) {
drivers/bus/mhi/host/init.c
803
dev_err(dev, "Channel %d not available\n", chan);
drivers/bus/mhi/host/init.c
807
mhi_chan = &mhi_cntrl->mhi_chan[chan];
drivers/bus/mhi/host/init.c
809
mhi_chan->chan = chan;
drivers/bus/mhi/host/internal.h
247
int chan; /* this event ring is dedicated to a channel (optional) */
drivers/bus/mhi/host/internal.h
271
u32 chan;
drivers/bus/mhi/host/main.c
1002
chan = MHI_TRE_GET_EV_CHID(local_rp);
drivers/bus/mhi/host/main.c
1004
WARN_ON(chan >= mhi_cntrl->max_chan);
drivers/bus/mhi/host/main.c
1010
if (chan < mhi_cntrl->max_chan &&
drivers/bus/mhi/host/main.c
1011
mhi_cntrl->mhi_chan[chan].configured) {
drivers/bus/mhi/host/main.c
1012
mhi_chan = &mhi_cntrl->mhi_chan[chan];
drivers/bus/mhi/host/main.c
1264
int chan = 0;
drivers/bus/mhi/host/main.c
1267
chan = mhi_chan->chan;
drivers/bus/mhi/host/main.c
1281
cmd_tre->dword[1] = MHI_TRE_CMD_RESET_DWORD1(chan);
drivers/bus/mhi/host/main.c
1286
cmd_tre->dword[1] = MHI_TRE_CMD_STOP_DWORD1(chan);
drivers/bus/mhi/host/main.c
1291
cmd_tre->dword[1] = MHI_TRE_CMD_START_DWORD1(chan);
drivers/bus/mhi/host/main.c
1347
mhi_chan->chan, TO_CH_STATE_TYPE_STR(to_state));
drivers/bus/mhi/host/main.c
1361
mhi_chan->chan, TO_CH_STATE_TYPE_STR(to_state));
drivers/bus/mhi/host/main.c
1370
mhi_chan->chan, TO_CH_STATE_TYPE_STR(to_state));
drivers/bus/mhi/host/main.c
1411
mhi_chan->chan);
drivers/bus/mhi/host/main.c
1422
dev_dbg(dev, "%d: successfully reset\n", mhi_chan->chan);
drivers/bus/mhi/host/main.c
1470
int chan)
drivers/bus/mhi/host/main.c
1479
dev_dbg(dev, "Marking all events for chan: %d as stale\n", chan);
drivers/bus/mhi/host/main.c
1498
chan == MHI_TRE_GET_EV_CHID(local_rp))
drivers/bus/mhi/host/main.c
1499
local_rp->dword[1] = MHI_TRE_EV_DWORD1(chan,
drivers/bus/mhi/host/main.c
1545
int chan = mhi_chan->chan;
drivers/bus/mhi/host/main.c
1555
mhi_mark_stale_events(mhi_cntrl, mhi_event, er_ctxt, chan);
drivers/bus/mhi/host/main.c
383
mhi_dev->ul_chan_id = mhi_chan->chan;
drivers/bus/mhi/host/main.c
388
mhi_dev->dl_chan_id = mhi_chan->chan;
drivers/bus/mhi/host/main.c
406
mhi_dev->ul_chan_id = mhi_chan->chan;
drivers/bus/mhi/host/main.c
409
mhi_dev->dl_chan_id = mhi_chan->chan;
drivers/bus/mhi/host/main.c
772
u32 chan;
drivers/bus/mhi/host/main.c
782
chan = MHI_TRE_GET_CMD_CHID(cmd_pkt);
drivers/bus/mhi/host/main.c
784
if (chan < mhi_cntrl->max_chan &&
drivers/bus/mhi/host/main.c
785
mhi_cntrl->mhi_chan[chan].configured) {
drivers/bus/mhi/host/main.c
786
mhi_chan = &mhi_cntrl->mhi_chan[chan];
drivers/bus/mhi/host/main.c
793
"Completion packet for invalid channel ID: %d\n", chan);
drivers/bus/mhi/host/main.c
809
u32 chan;
drivers/bus/mhi/host/main.c
928
chan = MHI_TRE_GET_EV_CHID(local_rp);
drivers/bus/mhi/host/main.c
930
WARN_ON(chan >= mhi_cntrl->max_chan);
drivers/bus/mhi/host/main.c
936
if (chan < mhi_cntrl->max_chan) {
drivers/bus/mhi/host/main.c
937
mhi_chan = &mhi_cntrl->mhi_chan[chan];
drivers/bus/mhi/host/main.c
981
u32 chan;
drivers/bus/mhi/host/trace.h
108
__entry->ch_num = mhi_chan->chan;
drivers/bus/mhi/host/trace.h
231
__entry->ch_num = mhi_chan->chan;
drivers/char/ipmi/ipmi_msghandler.c
1659
unsigned char chan)
drivers/char/ipmi/ipmi_msghandler.c
1666
&& (rcvr->chans & (1 << chan)))
drivers/char/ipmi/ipmi_msghandler.c
3309
send_guid_cmd(struct ipmi_smi *intf, int chan)
drivers/char/ipmi/ipmi_msghandler.c
3392
send_channel_info_cmd(struct ipmi_smi *intf, int chan)
drivers/char/ipmi/ipmi_msghandler.c
3406
data[0] = chan;
drivers/char/ipmi/ipmi_msghandler.c
3953
unsigned char chan;
drivers/char/ipmi/ipmi_msghandler.c
3971
chan = msg->rsp[3] & 0xf;
drivers/char/ipmi/ipmi_msghandler.c
3974
rcvr = find_cmd_rcvr(intf, netfn, cmd, chan);
drivers/char/ipmi/ipmi_msghandler.c
4229
unsigned char chan;
drivers/char/ipmi/ipmi_msghandler.c
4247
chan = msg->rsp[3] & 0xf;
drivers/char/ipmi/ipmi_msghandler.c
4250
rcvr = find_cmd_rcvr(intf, netfn, cmd, chan);
drivers/char/ipmi/ipmi_msghandler.c
4263
msg->data[2] = chan;
drivers/char/ipmi/ipmi_msghandler.c
4341
unsigned char chan;
drivers/char/ipmi/ipmi_msghandler.c
4367
chan = msg->rsp[3] & 0xf;
drivers/char/ipmi/ipmi_msghandler.c
4370
rcvr = find_cmd_rcvr(intf, netfn, cmd, chan);
drivers/char/ipmi/ipmi_msghandler.c
4582
int chan;
drivers/char/ipmi/ipmi_msghandler.c
4680
chan = 0;
drivers/char/ipmi/ipmi_msghandler.c
4700
chan = msg->data[2] & 0x0f;
drivers/char/ipmi/ipmi_msghandler.c
4701
if (chan >= IPMI_MAX_CHANNELS)
drivers/char/ipmi/ipmi_msghandler.c
4726
chan = msg->rsp[3] & 0xf;
drivers/char/ipmi/ipmi_msghandler.c
4727
if (chan >= IPMI_MAX_CHANNELS) {
drivers/char/ipmi/ipmi_msghandler.c
4746
switch (chans[chan].medium) {
drivers/char/ipmi/ipmi_msghandler.c
4783
if ((chans[chan].medium >= IPMI_CHANNEL_MEDIUM_OEM_MIN)
drivers/char/ipmi/ipmi_msghandler.c
4784
&& (chans[chan].medium
drivers/char/ipmi/kcs_bmc_npcm7xx.c
171
u32 chan;
drivers/char/ipmi/kcs_bmc_npcm7xx.c
174
rc = of_property_read_u32(dev->of_node, "kcs_chan", &chan);
drivers/char/ipmi/kcs_bmc_npcm7xx.c
175
if (rc != 0 || chan == 0 || chan > KCS_CHANNEL_MAX) {
drivers/char/ipmi/kcs_bmc_npcm7xx.c
189
priv->reg = &npcm7xx_kcs_reg_tbl[chan - 1];
drivers/char/ipmi/kcs_bmc_npcm7xx.c
193
kcs_bmc->channel = chan;
drivers/char/ipmi/kcs_bmc_npcm7xx.c
215
chan,
drivers/char/xillybus/xillyusb.c
1000
chan = &xdev->channels[chan_idx];
drivers/char/xillybus/xillyusb.c
1002
fifo = chan->in_fifo;
drivers/char/xillybus/xillyusb.c
1126
static int flush_downstream(struct xillyusb_channel *chan,
drivers/char/xillybus/xillyusb.c
1130
struct xillyusb_dev *xdev = chan->xdev;
drivers/char/xillybus/xillyusb.c
1131
int chan_num = chan->chan_idx << 1;
drivers/char/xillybus/xillyusb.c
1135
if (chan->flushed)
drivers/char/xillybus/xillyusb.c
1140
if (chan->flushing) {
drivers/char/xillybus/xillyusb.c
1143
chan->canceled = 0;
drivers/char/xillybus/xillyusb.c
1151
while (!chan->canceled) {
drivers/char/xillybus/xillyusb.c
1159
rc = wait_event_interruptible_timeout(chan->flushq,
drivers/char/xillybus/xillyusb.c
1160
chan->canceled ||
drivers/char/xillybus/xillyusb.c
1169
chan->flushing = 1;
drivers/char/xillybus/xillyusb.c
1180
chan->out_bytes >>
drivers/char/xillybus/xillyusb.c
1181
chan->out_log2_element_size);
drivers/char/xillybus/xillyusb.c
1187
while (chan->flushing) {
drivers/char/xillybus/xillyusb.c
1188
rc = wait_event_interruptible(chan->flushq,
drivers/char/xillybus/xillyusb.c
1189
!chan->flushing ||
drivers/char/xillybus/xillyusb.c
1201
while (chan->flushing) {
drivers/char/xillybus/xillyusb.c
1207
rc = wait_event_interruptible_timeout(chan->flushq,
drivers/char/xillybus/xillyusb.c
1208
!chan->flushing ||
drivers/char/xillybus/xillyusb.c
1220
chan->flushed = 1;
drivers/char/xillybus/xillyusb.c
1225
static int request_read_anything(struct xillyusb_channel *chan,
drivers/char/xillybus/xillyusb.c
1228
struct xillyusb_dev *xdev = chan->xdev;
drivers/char/xillybus/xillyusb.c
1229
unsigned int sh = chan->in_log2_element_size;
drivers/char/xillybus/xillyusb.c
1230
int chan_num = (chan->chan_idx << 1) | 1;
drivers/char/xillybus/xillyusb.c
1231
u32 mercy = chan->in_consumed_bytes + (2 << sh) - 1;
drivers/char/xillybus/xillyusb.c
1239
struct xillyusb_channel *chan;
drivers/char/xillybus/xillyusb.c
1256
chan = &xdev->channels[index];
drivers/char/xillybus/xillyusb.c
1257
filp->private_data = chan;
drivers/char/xillybus/xillyusb.c
1259
mutex_lock(&chan->lock);
drivers/char/xillybus/xillyusb.c
1266
if (((filp->f_mode & FMODE_READ) && !chan->readable) ||
drivers/char/xillybus/xillyusb.c
1267
((filp->f_mode & FMODE_WRITE) && !chan->writable))
drivers/char/xillybus/xillyusb.c
1271
chan->in_synchronous) {
drivers/char/xillybus/xillyusb.c
1278
chan->out_synchronous) {
drivers/char/xillybus/xillyusb.c
1286
if (((filp->f_mode & FMODE_READ) && chan->open_for_read) ||
drivers/char/xillybus/xillyusb.c
1287
((filp->f_mode & FMODE_WRITE) && chan->open_for_write))
drivers/char/xillybus/xillyusb.c
1291
chan->open_for_read = 1;
drivers/char/xillybus/xillyusb.c
1294
chan->open_for_write = 1;
drivers/char/xillybus/xillyusb.c
1296
mutex_unlock(&chan->lock);
drivers/char/xillybus/xillyusb.c
1300
(chan->chan_idx + 2) | USB_DIR_OUT,
drivers/char/xillybus/xillyusb.c
1308
rc = fifo_init(&out_ep->fifo, chan->out_log2_fifo_size);
drivers/char/xillybus/xillyusb.c
1313
out_ep->fill_mask = -(1 << chan->out_log2_element_size);
drivers/char/xillybus/xillyusb.c
1314
chan->out_bytes = 0;
drivers/char/xillybus/xillyusb.c
1315
chan->flushed = 0;
drivers/char/xillybus/xillyusb.c
1327
rc = flush_downstream(chan, XILLY_RESPONSE_TIMEOUT, false);
drivers/char/xillybus/xillyusb.c
1346
rc = fifo_init(in_fifo, chan->in_log2_fifo_size);
drivers/char/xillybus/xillyusb.c
1354
mutex_lock(&chan->lock);
drivers/char/xillybus/xillyusb.c
1356
chan->in_fifo = in_fifo;
drivers/char/xillybus/xillyusb.c
1357
chan->read_data_ok = 1;
drivers/char/xillybus/xillyusb.c
1360
chan->out_ep = out_ep;
drivers/char/xillybus/xillyusb.c
1361
mutex_unlock(&chan->lock);
drivers/char/xillybus/xillyusb.c
1366
if (!chan->in_synchronous)
drivers/char/xillybus/xillyusb.c
1368
chan->in_log2_element_size;
drivers/char/xillybus/xillyusb.c
1370
chan->in_consumed_bytes = 0;
drivers/char/xillybus/xillyusb.c
1371
chan->poll_used = 0;
drivers/char/xillybus/xillyusb.c
1372
chan->in_current_checkpoint = in_checkpoint;
drivers/char/xillybus/xillyusb.c
1373
rc = xillyusb_send_opcode(xdev, (chan->chan_idx << 1) | 1,
drivers/char/xillybus/xillyusb.c
1389
request_read_anything(chan, OPCODE_SET_PUSH);
drivers/char/xillybus/xillyusb.c
1395
chan->read_data_ok = 0;
drivers/char/xillybus/xillyusb.c
1396
safely_assign_in_fifo(chan, NULL);
drivers/char/xillybus/xillyusb.c
1401
mutex_lock(&chan->lock);
drivers/char/xillybus/xillyusb.c
1402
chan->out_ep = NULL;
drivers/char/xillybus/xillyusb.c
1403
mutex_unlock(&chan->lock);
drivers/char/xillybus/xillyusb.c
1411
mutex_lock(&chan->lock);
drivers/char/xillybus/xillyusb.c
1414
chan->open_for_read = 0;
drivers/char/xillybus/xillyusb.c
1417
chan->open_for_write = 0;
drivers/char/xillybus/xillyusb.c
1419
mutex_unlock(&chan->lock);
drivers/char/xillybus/xillyusb.c
1427
mutex_unlock(&chan->lock);
drivers/char/xillybus/xillyusb.c
1434
struct xillyusb_channel *chan = filp->private_data;
drivers/char/xillybus/xillyusb.c
1435
struct xillyusb_dev *xdev = chan->xdev;
drivers/char/xillybus/xillyusb.c
1436
struct xillyfifo *fifo = chan->in_fifo;
drivers/char/xillybus/xillyusb.c
1437
int chan_num = (chan->chan_idx << 1) | 1;
drivers/char/xillybus/xillyusb.c
1446
rc = mutex_lock_interruptible(&chan->in_mutex);
drivers/char/xillybus/xillyusb.c
1456
unsigned int sh = chan->in_log2_element_size;
drivers/char/xillybus/xillyusb.c
1466
chan->in_consumed_bytes += rc;
drivers/char/xillybus/xillyusb.c
1478
fifo_checkpoint_bytes = chan->in_consumed_bytes + fifo->size;
drivers/char/xillybus/xillyusb.c
1480
chan->in_consumed_bytes + count - bytes_done;
drivers/char/xillybus/xillyusb.c
1488
if (chan->in_synchronous && diff >= 0) {
drivers/char/xillybus/xillyusb.c
1496
leap = (checkpoint - chan->in_current_checkpoint) << sh;
drivers/char/xillybus/xillyusb.c
1510
if (chan->read_data_ok &&
drivers/char/xillybus/xillyusb.c
1513
chan->in_current_checkpoint = checkpoint;
drivers/char/xillybus/xillyusb.c
1533
if (!READ_ONCE(chan->read_data_ok)) { /* FPGA has sent EOF */
drivers/char/xillybus/xillyusb.c
1574
fifo->fill || !chan->read_data_ok,
drivers/char/xillybus/xillyusb.c
1578
rc = request_read_anything(chan, OPCODE_UPDATE_PUSH);
drivers/char/xillybus/xillyusb.c
1585
fifo->fill || !chan->read_data_ok);
drivers/char/xillybus/xillyusb.c
1594
if (((filp->f_flags & O_NONBLOCK) || chan->poll_used) &&
drivers/char/xillybus/xillyusb.c
1596
request_read_anything(chan, OPCODE_SET_PUSH);
drivers/char/xillybus/xillyusb.c
1598
mutex_unlock(&chan->in_mutex);
drivers/char/xillybus/xillyusb.c
1608
struct xillyusb_channel *chan = filp->private_data;
drivers/char/xillybus/xillyusb.c
1614
rc = mutex_lock_interruptible(&chan->out_mutex);
drivers/char/xillybus/xillyusb.c
1624
rc = flush_downstream(chan, HZ, false);
drivers/char/xillybus/xillyusb.c
1626
mutex_unlock(&chan->out_mutex);
drivers/char/xillybus/xillyusb.c
1630
struct xillyusb_dev *xdev = chan->xdev;
drivers/char/xillybus/xillyusb.c
1632
mutex_lock(&chan->lock);
drivers/char/xillybus/xillyusb.c
1636
mutex_unlock(&chan->lock);
drivers/char/xillybus/xillyusb.c
1645
struct xillyusb_channel *chan = filp->private_data;
drivers/char/xillybus/xillyusb.c
1646
struct xillyusb_dev *xdev = chan->xdev;
drivers/char/xillybus/xillyusb.c
1647
struct xillyfifo *fifo = &chan->out_ep->fifo;
drivers/char/xillybus/xillyusb.c
1650
rc = mutex_lock_interruptible(&chan->out_mutex);
drivers/char/xillybus/xillyusb.c
1686
chan->out_bytes += rc;
drivers/char/xillybus/xillyusb.c
1689
try_queue_bulk_out(chan->out_ep);
drivers/char/xillybus/xillyusb.c
1690
chan->flushed = 0;
drivers/char/xillybus/xillyusb.c
1693
if (chan->out_synchronous) {
drivers/char/xillybus/xillyusb.c
1694
int flush_rc = flush_downstream(chan, 0, true);
drivers/char/xillybus/xillyusb.c
1701
mutex_unlock(&chan->out_mutex);
drivers/char/xillybus/xillyusb.c
1708
struct xillyusb_channel *chan = filp->private_data;
drivers/char/xillybus/xillyusb.c
1709
struct xillyusb_dev *xdev = chan->xdev;
drivers/char/xillybus/xillyusb.c
1713
struct xillyfifo *in_fifo = chan->in_fifo;
drivers/char/xillybus/xillyusb.c
1715
rc_read = xillyusb_send_opcode(xdev, (chan->chan_idx << 1) | 1,
drivers/char/xillybus/xillyusb.c
1731
!chan->read_data_ok))
drivers/char/xillybus/xillyusb.c
1734
safely_assign_in_fifo(chan, NULL);
drivers/char/xillybus/xillyusb.c
1738
mutex_lock(&chan->lock);
drivers/char/xillybus/xillyusb.c
1739
chan->open_for_read = 0;
drivers/char/xillybus/xillyusb.c
1740
mutex_unlock(&chan->lock);
drivers/char/xillybus/xillyusb.c
1744
struct xillyusb_endpoint *ep = chan->out_ep;
drivers/char/xillybus/xillyusb.c
1756
mutex_lock(&chan->lock);
drivers/char/xillybus/xillyusb.c
1757
chan->out_ep = NULL;
drivers/char/xillybus/xillyusb.c
1758
mutex_unlock(&chan->lock);
drivers/char/xillybus/xillyusb.c
1764
rc_write = xillyusb_send_opcode(xdev, chan->chan_idx << 1,
drivers/char/xillybus/xillyusb.c
1767
mutex_lock(&chan->lock);
drivers/char/xillybus/xillyusb.c
1768
chan->open_for_write = 0;
drivers/char/xillybus/xillyusb.c
1769
mutex_unlock(&chan->lock);
drivers/char/xillybus/xillyusb.c
1784
struct xillyusb_channel *chan = filp->private_data;
drivers/char/xillybus/xillyusb.c
1785
struct xillyusb_dev *xdev = chan->xdev;
drivers/char/xillybus/xillyusb.c
1788
unsigned int log2_element_size = chan->readable ?
drivers/char/xillybus/xillyusb.c
1789
chan->in_log2_element_size : chan->out_log2_element_size;
drivers/char/xillybus/xillyusb.c
1798
mutex_lock(&chan->out_mutex);
drivers/char/xillybus/xillyusb.c
1799
mutex_lock(&chan->in_mutex);
drivers/char/xillybus/xillyusb.c
1822
rc = xillyusb_send_opcode(xdev, chan->chan_idx << 1,
drivers/char/xillybus/xillyusb.c
1829
if (chan->writable) {
drivers/char/xillybus/xillyusb.c
1830
chan->flushed = 0;
drivers/char/xillybus/xillyusb.c
1831
rc = flush_downstream(chan, HZ, false);
drivers/char/xillybus/xillyusb.c
1835
mutex_unlock(&chan->out_mutex);
drivers/char/xillybus/xillyusb.c
1836
mutex_unlock(&chan->in_mutex);
drivers/char/xillybus/xillyusb.c
1848
struct xillyusb_channel *chan = filp->private_data;
drivers/char/xillybus/xillyusb.c
1851
if (chan->in_fifo)
drivers/char/xillybus/xillyusb.c
1852
poll_wait(filp, &chan->in_fifo->waitq, wait);
drivers/char/xillybus/xillyusb.c
1854
if (chan->out_ep)
drivers/char/xillybus/xillyusb.c
1855
poll_wait(filp, &chan->out_ep->fifo.waitq, wait);
drivers/char/xillybus/xillyusb.c
1867
if (!chan->poll_used && chan->in_fifo) {
drivers/char/xillybus/xillyusb.c
1868
chan->poll_used = 1;
drivers/char/xillybus/xillyusb.c
1869
request_read_anything(chan, OPCODE_SET_PUSH);
drivers/char/xillybus/xillyusb.c
1879
if (chan->in_fifo && !chan->in_synchronous &&
drivers/char/xillybus/xillyusb.c
1880
(READ_ONCE(chan->in_fifo->fill) || !chan->read_data_ok))
drivers/char/xillybus/xillyusb.c
1883
if (chan->out_ep &&
drivers/char/xillybus/xillyusb.c
1884
(READ_ONCE(chan->out_ep->fifo.fill) != chan->out_ep->fifo.size))
drivers/char/xillybus/xillyusb.c
1887
if (chan->xdev->error)
drivers/char/xillybus/xillyusb.c
1943
struct xillyusb_channel *chan, *new_channels;
drivers/char/xillybus/xillyusb.c
1946
chan = kzalloc_objs(*chan, num_channels);
drivers/char/xillybus/xillyusb.c
1947
if (!chan)
drivers/char/xillybus/xillyusb.c
1950
new_channels = chan;
drivers/char/xillybus/xillyusb.c
1952
for (i = 0; i < num_channels; i++, chan++) {
drivers/char/xillybus/xillyusb.c
1956
chan->xdev = xdev;
drivers/char/xillybus/xillyusb.c
1957
mutex_init(&chan->in_mutex);
drivers/char/xillybus/xillyusb.c
1958
mutex_init(&chan->out_mutex);
drivers/char/xillybus/xillyusb.c
1959
mutex_init(&chan->lock);
drivers/char/xillybus/xillyusb.c
1960
init_waitqueue_head(&chan->flushq);
drivers/char/xillybus/xillyusb.c
1962
chan->chan_idx = i;
drivers/char/xillybus/xillyusb.c
1965
chan->readable = 1;
drivers/char/xillybus/xillyusb.c
1966
chan->in_synchronous = !!(in_desc & 0x40);
drivers/char/xillybus/xillyusb.c
1967
chan->in_seekable = !!(in_desc & 0x20);
drivers/char/xillybus/xillyusb.c
1968
chan->in_log2_element_size = in_desc & 0x0f;
drivers/char/xillybus/xillyusb.c
1969
chan->in_log2_fifo_size = ((in_desc >> 8) & 0x1f) + 16;
drivers/char/xillybus/xillyusb.c
1988
chan->writable = 1;
drivers/char/xillybus/xillyusb.c
1989
chan->out_synchronous = !!(out_desc & 0x40);
drivers/char/xillybus/xillyusb.c
1990
chan->out_seekable = !!(out_desc & 0x20);
drivers/char/xillybus/xillyusb.c
1991
chan->out_log2_element_size = out_desc & 0x0f;
drivers/char/xillybus/xillyusb.c
1992
chan->out_log2_fifo_size =
drivers/char/xillybus/xillyusb.c
2007
struct xillyusb_channel *chan;
drivers/char/xillybus/xillyusb.c
2035
chan = xdev->channels;
drivers/char/xillybus/xillyusb.c
2037
chan->in_fifo = &idt_fifo;
drivers/char/xillybus/xillyusb.c
2038
chan->read_data_ok = 1;
drivers/char/xillybus/xillyusb.c
2050
!chan->read_data_ok,
drivers/char/xillybus/xillyusb.c
2063
if (chan->read_data_ok) {
drivers/char/xillybus/xillyusb.c
2123
kfree(chan);
drivers/char/xillybus/xillyusb.c
2140
safely_assign_in_fifo(chan, NULL);
drivers/char/xillybus/xillyusb.c
2241
struct xillyusb_channel *chan = &xdev->channels[i];
drivers/char/xillybus/xillyusb.c
2248
mutex_lock(&chan->lock);
drivers/char/xillybus/xillyusb.c
2249
if (chan->out_ep)
drivers/char/xillybus/xillyusb.c
2250
endpoint_quiesce(chan->out_ep);
drivers/char/xillybus/xillyusb.c
2251
mutex_unlock(&chan->lock);
drivers/char/xillybus/xillyusb.c
584
struct xillyusb_channel *chan = &xdev->channels[i];
drivers/char/xillybus/xillyusb.c
586
mutex_lock(&chan->lock);
drivers/char/xillybus/xillyusb.c
588
if (chan->in_fifo) {
drivers/char/xillybus/xillyusb.c
593
chan->read_data_ok = 0;
drivers/char/xillybus/xillyusb.c
594
wake_up_interruptible(&chan->in_fifo->waitq);
drivers/char/xillybus/xillyusb.c
597
if (chan->out_ep)
drivers/char/xillybus/xillyusb.c
598
wake_up_interruptible(&chan->out_ep->fifo.waitq);
drivers/char/xillybus/xillyusb.c
600
mutex_unlock(&chan->lock);
drivers/char/xillybus/xillyusb.c
602
wake_up_interruptible(&chan->flushq);
drivers/char/xillybus/xillyusb.c
636
static void safely_assign_in_fifo(struct xillyusb_channel *chan,
drivers/char/xillybus/xillyusb.c
639
mutex_lock(&chan->lock);
drivers/char/xillybus/xillyusb.c
640
chan->in_fifo = fifo;
drivers/char/xillybus/xillyusb.c
641
mutex_unlock(&chan->lock);
drivers/char/xillybus/xillyusb.c
643
flush_work(&chan->xdev->in_ep->workitem);
drivers/char/xillybus/xillyusb.c
885
struct xillyusb_channel *chan;
drivers/char/xillybus/xillyusb.c
895
chan = &xdev->channels[chan_idx];
drivers/char/xillybus/xillyusb.c
899
if (!chan->read_data_ok) {
drivers/char/xillybus/xillyusb.c
911
WRITE_ONCE(chan->read_data_ok, 0);
drivers/char/xillybus/xillyusb.c
912
wake_up_interruptible(&chan->in_fifo->waitq);
drivers/char/xillybus/xillyusb.c
916
chan->flushing = 0;
drivers/char/xillybus/xillyusb.c
917
wake_up_interruptible(&chan->flushq);
drivers/char/xillybus/xillyusb.c
921
chan->canceled = 1;
drivers/char/xillybus/xillyusb.c
922
wake_up_interruptible(&chan->flushq);
drivers/char/xillybus/xillyusb.c
942
struct xillyusb_channel *chan;
drivers/clk/clk-apple-nco.c
157
struct applnco_channel *chan = to_applnco_channel(hw);
drivers/clk/clk-apple-nco.c
169
div = applnco_div_translate(chan->tbl, div);
drivers/clk/clk-apple-nco.c
171
spin_lock_irqsave(&chan->lock, flags);
drivers/clk/clk-apple-nco.c
175
writel_relaxed(div, chan->base + REG_DIV);
drivers/clk/clk-apple-nco.c
176
writel_relaxed(inc1, chan->base + REG_INC1);
drivers/clk/clk-apple-nco.c
177
writel_relaxed(inc2, chan->base + REG_INC2);
drivers/clk/clk-apple-nco.c
180
writel_relaxed(1 << 31, chan->base + REG_ACCINIT);
drivers/clk/clk-apple-nco.c
184
spin_unlock_irqrestore(&chan->lock, flags);
drivers/clk/clk-apple-nco.c
192
struct applnco_channel *chan = to_applnco_channel(hw);
drivers/clk/clk-apple-nco.c
195
div = applnco_div_translate_inv(chan->tbl,
drivers/clk/clk-apple-nco.c
196
readl_relaxed(chan->base + REG_DIV));
drivers/clk/clk-apple-nco.c
198
inc1 = readl_relaxed(chan->base + REG_INC1);
drivers/clk/clk-apple-nco.c
199
inc2 = readl_relaxed(chan->base + REG_INC2);
drivers/clk/clk-apple-nco.c
228
struct applnco_channel *chan = to_applnco_channel(hw);
drivers/clk/clk-apple-nco.c
231
spin_lock_irqsave(&chan->lock, flags);
drivers/clk/clk-apple-nco.c
233
spin_unlock_irqrestore(&chan->lock, flags);
drivers/clk/clk-apple-nco.c
240
struct applnco_channel *chan = to_applnco_channel(hw);
drivers/clk/clk-apple-nco.c
243
spin_lock_irqsave(&chan->lock, flags);
drivers/clk/clk-apple-nco.c
245
spin_unlock_irqrestore(&chan->lock, flags);
drivers/clk/clk-apple-nco.c
290
struct applnco_channel *chan;
drivers/clk/clk-apple-nco.c
292
chan = devm_kzalloc(&pdev->dev, sizeof(*chan), GFP_KERNEL);
drivers/clk/clk-apple-nco.c
293
if (!chan)
drivers/clk/clk-apple-nco.c
295
chan->base = base + NCO_CHANNEL_STRIDE * i;
drivers/clk/clk-apple-nco.c
296
chan->tbl = tbl;
drivers/clk/clk-apple-nco.c
297
spin_lock_init(&chan->lock);
drivers/clk/clk-apple-nco.c
310
chan->hw.init = &init;
drivers/clk/clk-apple-nco.c
311
ret = devm_clk_hw_register(&pdev->dev, &chan->hw);
drivers/clk/clk-apple-nco.c
315
onecell_data->hws[i] = &chan->hw;
drivers/clk/clk-apple-nco.c
79
struct applnco_channel *chan = to_applnco_channel(hw);
drivers/clk/clk-apple-nco.c
82
val = readl_relaxed(chan->base + REG_CTRL);
drivers/clk/clk-apple-nco.c
83
writel_relaxed(val | CTRL_ENABLE, chan->base + REG_CTRL);
drivers/clk/clk-apple-nco.c
88
struct applnco_channel *chan = to_applnco_channel(hw);
drivers/clk/clk-apple-nco.c
91
val = readl_relaxed(chan->base + REG_CTRL);
drivers/clk/clk-apple-nco.c
92
writel_relaxed(val & ~CTRL_ENABLE, chan->base + REG_CTRL);
drivers/clk/clk-apple-nco.c
97
struct applnco_channel *chan = to_applnco_channel(hw);
drivers/clk/clk-apple-nco.c
99
return (readl_relaxed(chan->base + REG_CTRL) & CTRL_ENABLE) != 0;
drivers/clk/clk-rpmi.c
157
ret = rpmi_mbox_send_message(context->chan, &msg);
drivers/clk/clk-rpmi.c
181
ret = rpmi_mbox_send_message(context->chan, &msg);
drivers/clk/clk-rpmi.c
231
ret = rpmi_mbox_send_message(context->chan, &msg);
drivers/clk/clk-rpmi.c
266
ret = rpmi_mbox_send_message(context->chan, &msg);
drivers/clk/clk-rpmi.c
315
ret = rpmi_mbox_send_message(context->chan, &msg);
drivers/clk/clk-rpmi.c
379
ret = rpmi_mbox_send_message(context->chan, &msg);
drivers/clk/clk-rpmi.c
38
struct mbox_chan *chan;
drivers/clk/clk-rpmi.c
407
ret = rpmi_mbox_send_message(context->chan, &msg);
drivers/clk/clk-rpmi.c
434
rpmi_mbox_send_message(context->chan, &msg);
drivers/clk/clk-rpmi.c
506
struct mbox_chan *chan = data;
drivers/clk/clk-rpmi.c
508
mbox_free_channel(chan);
drivers/clk/clk-rpmi.c
533
context->chan = mbox_request_channel(&context->client, 0);
drivers/clk/clk-rpmi.c
534
if (IS_ERR(context->chan))
drivers/clk/clk-rpmi.c
535
return PTR_ERR(context->chan);
drivers/clk/clk-rpmi.c
537
ret = devm_add_action_or_reset(dev, rpmi_clk_mbox_chan_release, context->chan);
drivers/clk/clk-rpmi.c
542
ret = rpmi_mbox_send_message(context->chan, &msg);
drivers/clk/clk-rpmi.c
552
ret = rpmi_mbox_send_message(context->chan, &msg);
drivers/clk/clk-rpmi.c
562
ret = rpmi_mbox_send_message(context->chan, &msg);
drivers/clk/clk-rpmi.c
572
ret = rpmi_mbox_send_message(context->chan, &msg);
drivers/clk/st/clkgen-fsyn.c
511
u32 chan;
drivers/clk/st/clkgen-fsyn.c
538
CLKGEN_WRITE(fs, en[fs->chan], 1);
drivers/clk/st/clkgen-fsyn.c
539
CLKGEN_WRITE(fs, en[fs->chan], 0);
drivers/clk/st/clkgen-fsyn.c
551
CLKGEN_WRITE(fs, en[fs->chan], 0);
drivers/clk/st/clkgen-fsyn.c
553
CLKGEN_WRITE(fs, mdiv[fs->chan], fs->md);
drivers/clk/st/clkgen-fsyn.c
554
CLKGEN_WRITE(fs, pe[fs->chan], fs->pe);
drivers/clk/st/clkgen-fsyn.c
555
CLKGEN_WRITE(fs, sdiv[fs->chan], fs->sdiv);
drivers/clk/st/clkgen-fsyn.c
561
CLKGEN_WRITE(fs, nsdiv[fs->chan], fs->nsdiv);
drivers/clk/st/clkgen-fsyn.c
579
CLKGEN_WRITE(fs, nsb[fs->chan], !fs->data->standby_polarity);
drivers/clk/st/clkgen-fsyn.c
582
CLKGEN_WRITE(fs, nrst[fs->chan], 0);
drivers/clk/st/clkgen-fsyn.c
602
CLKGEN_WRITE(fs, nsb[fs->chan], fs->data->standby_polarity);
drivers/clk/st/clkgen-fsyn.c
611
u32 nsb = CLKGEN_READ(fs, nsb[fs->chan]);
drivers/clk/st/clkgen-fsyn.c
751
params->mdiv = CLKGEN_READ(fs, mdiv[fs->chan]);
drivers/clk/st/clkgen-fsyn.c
752
params->pe = CLKGEN_READ(fs, pe[fs->chan]);
drivers/clk/st/clkgen-fsyn.c
753
params->sdiv = CLKGEN_READ(fs, sdiv[fs->chan]);
drivers/clk/st/clkgen-fsyn.c
756
params->nsdiv = CLKGEN_READ(fs, nsdiv[fs->chan]);
drivers/clk/st/clkgen-fsyn.c
884
struct clkgen_quadfs_data *quadfs, void __iomem *reg, u32 chan,
drivers/clk/st/clkgen-fsyn.c
909
fs->chan = chan;
drivers/clocksource/samsung_pwm_timer.c
34
#define REG_TCNTB(chan) (0x0c + 12 * (chan))
drivers/clocksource/samsung_pwm_timer.c
35
#define REG_TCMPB(chan) (0x10 + 12 * (chan))
drivers/clocksource/samsung_pwm_timer.c
51
#define TCON_START(chan) (1 << (4 * (chan) + 0))
drivers/clocksource/samsung_pwm_timer.c
52
#define TCON_MANUALUPDATE(chan) (1 << (4 * (chan) + 1))
drivers/clocksource/samsung_pwm_timer.c
53
#define TCON_INVERT(chan) (1 << (4 * (chan) + 2))
drivers/clocksource/samsung_pwm_timer.c
54
#define _TCON_AUTORELOAD(chan) (1 << (4 * (chan) + 3))
drivers/clocksource/samsung_pwm_timer.c
55
#define _TCON_AUTORELOAD4(chan) (1 << (4 * (chan) + 2))
drivers/clocksource/samsung_pwm_timer.c
56
#define TCON_AUTORELOAD(chan) \
drivers/clocksource/samsung_pwm_timer.c
57
((chan < 5) ? _TCON_AUTORELOAD(chan) : _TCON_AUTORELOAD4(chan))
drivers/comedi/drivers.c
265
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers.c
272
data[i] = s->readback[chan];
drivers/comedi/drivers.c
349
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers.c
351
if (!mask && chan < 32)
drivers/comedi/drivers.c
352
mask = 1U << chan;
drivers/comedi/drivers.c
681
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers.c
682
unsigned int base_chan = (chan < 32) ? 0 : chan;
drivers/comedi/drivers.c
697
_data[0] = 1U << (chan - base_chan); /* mask */
drivers/comedi/drivers.c
708
data[i] = (_data[1] >> (chan - base_chan)) & 1;
drivers/comedi/drivers/addi_apci_1500.c
168
unsigned int chan, bool enable)
drivers/comedi/drivers/addi_apci_1500.c
173
if (chan == 0)
drivers/comedi/drivers/addi_apci_1500.c
175
else if (chan == 1)
drivers/comedi/drivers/addi_apci_1500.c
185
z8536_write(dev, 0x00, Z8536_CT_CMDSTAT_REG(chan));
drivers/comedi/drivers/addi_apci_1500.c
592
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/addi_apci_1500.c
598
z8536_write(dev, val & 0xff, Z8536_CT_RELOAD_LSB_REG(chan));
drivers/comedi/drivers/addi_apci_1500.c
600
Z8536_CT_RELOAD_MSB_REG(chan));
drivers/comedi/drivers/addi_apci_1500.c
602
apci1500_timer_enable(dev, chan, true);
drivers/comedi/drivers/addi_apci_1500.c
604
Z8536_CT_CMDSTAT_REG(chan));
drivers/comedi/drivers/addi_apci_1500.c
607
apci1500_timer_enable(dev, chan, false);
drivers/comedi/drivers/addi_apci_1500.c
612
val = z8536_read(dev, Z8536_CT_CMDSTAT_REG(chan));
drivers/comedi/drivers/addi_apci_1500.c
619
apci1500_ack_irq(dev, Z8536_CT_CMDSTAT_REG(chan));
drivers/comedi/drivers/addi_apci_1500.c
663
apci1500_timer_enable(dev, chan, false);
drivers/comedi/drivers/addi_apci_1500.c
664
z8536_write(dev, val, Z8536_CT_MODE_REG(chan));
drivers/comedi/drivers/addi_apci_1500.c
695
if (chan == 0)
drivers/comedi/drivers/addi_apci_1500.c
698
val = z8536_read(dev, Z8536_CT_MODE_REG(chan));
drivers/comedi/drivers/addi_apci_1500.c
704
z8536_write(dev, val, Z8536_CT_MODE_REG(chan));
drivers/comedi/drivers/addi_apci_1500.c
707
if (chan == 0)
drivers/comedi/drivers/addi_apci_1500.c
722
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/addi_apci_1500.c
725
cmd = z8536_read(dev, Z8536_CT_CMDSTAT_REG(chan));
drivers/comedi/drivers/addi_apci_1500.c
731
z8536_write(dev, cmd, Z8536_CT_CMDSTAT_REG(chan));
drivers/comedi/drivers/addi_apci_1500.c
741
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/addi_apci_1500.c
746
cmd = z8536_read(dev, Z8536_CT_CMDSTAT_REG(chan));
drivers/comedi/drivers/addi_apci_1500.c
751
z8536_write(dev, cmd, Z8536_CT_CMDSTAT_REG(chan));
drivers/comedi/drivers/addi_apci_1500.c
753
val = z8536_read(dev, Z8536_CT_VAL_MSB_REG(chan)) << 8;
drivers/comedi/drivers/addi_apci_1500.c
754
val |= z8536_read(dev, Z8536_CT_VAL_LSB_REG(chan));
drivers/comedi/drivers/addi_apci_1564.c
210
unsigned int chan;
drivers/comedi/drivers/addi_apci_1564.c
238
for (chan = 0; chan < 3; chan++) {
drivers/comedi/drivers/addi_apci_1564.c
241
iobase = devpriv->counters + APCI1564_COUNTER(chan);
drivers/comedi/drivers/addi_apci_1564.c
245
s->state |= APCI1564_EVENT_COUNTER(chan);
drivers/comedi/drivers/addi_apci_1564.c
578
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/addi_apci_1564.c
579
unsigned long iobase = devpriv->counters + APCI1564_COUNTER(chan);
drivers/comedi/drivers/addi_apci_1564.c
628
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/addi_apci_1564.c
629
unsigned long iobase = devpriv->counters + APCI1564_COUNTER(chan);
drivers/comedi/drivers/addi_apci_1564.c
647
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/addi_apci_1564.c
648
unsigned long iobase = devpriv->counters + APCI1564_COUNTER(chan);
drivers/comedi/drivers/addi_apci_16xx.c
52
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/addi_apci_16xx.c
56
if (chan < 8)
drivers/comedi/drivers/addi_apci_16xx.c
58
else if (chan < 16)
drivers/comedi/drivers/addi_apci_16xx.c
60
else if (chan < 24)
drivers/comedi/drivers/addi_apci_2032.c
196
unsigned int chan = CR_CHAN(cmd->chanlist[i]);
drivers/comedi/drivers/addi_apci_2032.c
198
if (val & (1 << chan))
drivers/comedi/drivers/addi_apci_3120.c
398
unsigned int chan = CR_CHAN(chanlist[i]);
drivers/comedi/drivers/addi_apci_3120.c
402
val = APCI3120_CHANLIST_MUX(chan) |
drivers/comedi/drivers/addi_apci_3120.c
765
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/addi_apci_3120.c
776
outw(APCI3120_AO_MUX(chan) | APCI3120_AO_DATA(val),
drivers/comedi/drivers/addi_apci_3120.c
777
dev->iobase + APCI3120_AO_REG(chan));
drivers/comedi/drivers/addi_apci_3120.c
779
s->readback[chan] = val;
drivers/comedi/drivers/addi_apci_3501.c
111
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/addi_apci_3501.c
113
unsigned int cfg = APCI3501_AO_DATA_CHAN(chan);
drivers/comedi/drivers/addi_apci_3501.c
149
s->readback[chan] = val;
drivers/comedi/drivers/addi_apci_3501.c
277
int chan;
drivers/comedi/drivers/addi_apci_3501.c
289
for (chan = 0; chan < 8; chan++) {
drivers/comedi/drivers/addi_apci_3501.c
294
__func__, chan);
drivers/comedi/drivers/addi_apci_3501.c
296
outl(val | APCI3501_AO_DATA_CHAN(chan),
drivers/comedi/drivers/addi_apci_3xxx.c
381
unsigned int chan = CR_CHAN(chanspec);
drivers/comedi/drivers/addi_apci_3xxx.c
407
writel(chan, dev->mmio + 0);
drivers/comedi/drivers/addi_apci_3xxx.c
613
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/addi_apci_3xxx.c
625
writel((val << 8) | chan, dev->mmio + 100);
drivers/comedi/drivers/addi_apci_3xxx.c
632
s->readback[chan] = val;
drivers/comedi/drivers/addi_apci_3xxx.c
668
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/addi_apci_3xxx.c
679
if (chan < 16)
drivers/comedi/drivers/adl_pci6208.c
59
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/adl_pci6208.c
73
dev->iobase + PCI6208_AO_CONTROL(chan));
drivers/comedi/drivers/adl_pci6208.c
75
s->readback[chan] = val;
drivers/comedi/drivers/adl_pci8164.c
36
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/adl_pci8164.c
40
data[i] = inw(dev->iobase + PCI8164_AXIS(chan) + offset);
drivers/comedi/drivers/adl_pci8164.c
51
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/adl_pci8164.c
55
outw(data[i], dev->iobase + PCI8164_AXIS(chan) + offset);
drivers/comedi/drivers/adl_pci9111.c
209
unsigned int chan = CR_CHAN(cmd->chanlist[i]);
drivers/comedi/drivers/adl_pci9111.c
213
if (chan != i) {
drivers/comedi/drivers/adl_pci9111.c
532
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/adl_pci9111.c
541
outb(chan, dev->iobase + PCI9111_AI_CHANNEL_REG);
drivers/comedi/drivers/adl_pci9111.c
573
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/adl_pci9111.c
574
unsigned int val = s->readback[chan];
drivers/comedi/drivers/adl_pci9111.c
581
s->readback[chan] = val;
drivers/comedi/drivers/adl_pci9118.c
1364
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/adl_pci9118.c
1365
unsigned int val = s->readback[chan];
drivers/comedi/drivers/adl_pci9118.c
1370
outl(val, dev->iobase + PCI9118_AO_REG(chan));
drivers/comedi/drivers/adl_pci9118.c
1372
s->readback[chan] = val;
drivers/comedi/drivers/adl_pci9118.c
300
unsigned int chan = CR_CHAN(cmd->chanlist[i]);
drivers/comedi/drivers/adl_pci9118.c
316
(chan >= (s->n_chan / 2))) {
drivers/comedi/drivers/adl_pci9118.c
369
unsigned int chan = CR_CHAN(chanlist[i]);
drivers/comedi/drivers/adl_pci9118.c
372
val = PCI9118_AI_CHANLIST_CHAN(chan) |
drivers/comedi/drivers/adq12b.c
111
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/adq12b.c
118
val = ADQ12B_CTREG_RANGE(range) | ADQ12B_CTREG_CHAN(chan);
drivers/comedi/drivers/adq12b.c
157
unsigned int chan;
drivers/comedi/drivers/adq12b.c
162
for (chan = 0; chan < 8; chan++) {
drivers/comedi/drivers/adq12b.c
163
if ((mask >> chan) & 0x01) {
drivers/comedi/drivers/adq12b.c
164
val = (s->state >> chan) & 0x01;
drivers/comedi/drivers/adq12b.c
165
outb((val << 3) | chan,
drivers/comedi/drivers/adv_pci1710.c
201
unsigned int chan = CR_CHAN(cmd->chanlist[i]);
drivers/comedi/drivers/adv_pci1710.c
207
if (aref == AREF_DIFF && (chan & 1)) {
drivers/comedi/drivers/adv_pci1710.c
215
if (chan != next_chan) {
drivers/comedi/drivers/adv_pci1710.c
218
i, chan, next_chan, chan0);
drivers/comedi/drivers/adv_pci1710.c
258
unsigned int chan = CR_CHAN(chanlist[i]);
drivers/comedi/drivers/adv_pci1710.c
272
outw(PCI171X_MUX_CHAN(chan), dev->iobase + PCI171X_MUX_REG);
drivers/comedi/drivers/adv_pci1710.c
275
devpriv->act_chanlist[i] = chan;
drivers/comedi/drivers/adv_pci1710.c
307
unsigned int chan;
drivers/comedi/drivers/adv_pci1710.c
316
chan = sample >> 12;
drivers/comedi/drivers/adv_pci1710.c
317
if (chan != devpriv->act_chanlist[cur_chan]) {
drivers/comedi/drivers/adv_pci1710.c
320
chan, devpriv->act_chanlist[cur_chan]);
drivers/comedi/drivers/adv_pci1710.c
640
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/adv_pci1710.c
642
unsigned int val = s->readback[chan];
drivers/comedi/drivers/adv_pci1710.c
645
devpriv->da_ranges &= ~PCI171X_DAREF_MASK(chan);
drivers/comedi/drivers/adv_pci1710.c
646
devpriv->da_ranges |= PCI171X_DAREF(chan, range);
drivers/comedi/drivers/adv_pci1710.c
651
outw(val, dev->iobase + PCI171X_DA_REG(chan));
drivers/comedi/drivers/adv_pci1710.c
654
s->readback[chan] = val;
drivers/comedi/drivers/adv_pci1720.c
74
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/adv_pci1720.c
81
val &= ~PCI1720_AO_RANGE_MASK(chan);
drivers/comedi/drivers/adv_pci1720.c
82
val |= PCI1720_AO_RANGE(chan, range);
drivers/comedi/drivers/adv_pci1720.c
85
val = s->readback[chan];
drivers/comedi/drivers/adv_pci1720.c
89
outb(val & 0xff, dev->iobase + PCI1720_AO_LSB_REG(chan));
drivers/comedi/drivers/adv_pci1720.c
90
outb((val >> 8) & 0xff, dev->iobase + PCI1720_AO_MSB_REG(chan));
drivers/comedi/drivers/adv_pci1720.c
96
s->readback[chan] = val;
drivers/comedi/drivers/adv_pci1723.c
100
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/adv_pci1723.c
101
unsigned int mask = (chan < 8) ? 0x00ff : 0xff00;
drivers/comedi/drivers/adv_pci1723.c
82
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/adv_pci1723.c
88
outw(val, dev->iobase + PCI1723_AO_REG(chan));
drivers/comedi/drivers/adv_pci1723.c
89
s->readback[chan] = val;
drivers/comedi/drivers/adv_pci1724.c
111
s->readback[chan] = val;
drivers/comedi/drivers/adv_pci1724.c
91
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/adv_pci1724.c
96
ctrl = PCI1724_DAC_CTRL_GX(chan) | PCI1724_DAC_CTRL_CX(chan) | mode;
drivers/comedi/drivers/adv_pci1760.c
203
unsigned int chan, bool enable)
drivers/comedi/drivers/adv_pci1760.c
212
ret |= BIT(chan);
drivers/comedi/drivers/adv_pci1760.c
214
ret &= ~BIT(chan);
drivers/comedi/drivers/adv_pci1760.c
224
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/adv_pci1760.c
231
ret = pci1760_pwm_enable(dev, chan, false);
drivers/comedi/drivers/adv_pci1760.c
237
ret = pci1760_cmd(dev, PCI1760_CMD_SET_PWM_CNT(chan), data[1]);
drivers/comedi/drivers/adv_pci1760.c
241
ret = pci1760_pwm_enable(dev, chan, true);
drivers/comedi/drivers/adv_pci1760.c
246
ret = pci1760_pwm_enable(dev, chan, false);
drivers/comedi/drivers/adv_pci1760.c
251
ret = pci1760_pwm_enable(dev, chan, false);
drivers/comedi/drivers/adv_pci1760.c
265
ret = pci1760_cmd(dev, PCI1760_CMD_SET_PWM_HI(chan), hi_div);
drivers/comedi/drivers/adv_pci1760.c
268
ret = pci1760_cmd(dev, PCI1760_CMD_SET_PWM_LO(chan), lo_div);
drivers/comedi/drivers/adv_pci1760.c
274
PCI1760_CMD_SET_PWM_HI(chan));
drivers/comedi/drivers/adv_pci1760.c
276
PCI1760_CMD_SET_PWM_LO(chan));
drivers/comedi/drivers/adv_pci1760.c
289
data[1] = (ret & BIT(chan)) ? 1 : 0;
drivers/comedi/drivers/aio_aio12_8.c
116
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/aio_aio12_8.c
128
AIO12_8_ADC_RANGE(range) | AIO12_8_ADC_CHAN(chan);
drivers/comedi/drivers/aio_aio12_8.c
159
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/aio_aio12_8.c
160
unsigned int val = s->readback[chan];
drivers/comedi/drivers/aio_aio12_8.c
168
outw(val, dev->iobase + AIO12_8_DAC_REG(chan));
drivers/comedi/drivers/aio_aio12_8.c
170
s->readback[chan] = val;
drivers/comedi/drivers/aio_aio12_8.c
180
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/aio_aio12_8.c
189
data[1] = (chan == 1) ? I8254_OSC_BASE_1MHZ : 0;
drivers/comedi/drivers/amplc_dio200_common.c
41
static unsigned char clk_gat_sce(unsigned int which, unsigned int chan,
drivers/comedi/drivers/amplc_dio200_common.c
44
return (which << 5) | (chan << 3) |
drivers/comedi/drivers/amplc_dio200_common.c
527
unsigned int chan,
drivers/comedi/drivers/amplc_dio200_common.c
533
clk_gat_sce((offset >> 2) & 1, chan, src));
drivers/comedi/drivers/amplc_dio200_common.c
538
unsigned int chan,
drivers/comedi/drivers/amplc_dio200_common.c
544
clk_gat_sce((offset >> 2) & 1, chan, src));
drivers/comedi/drivers/amplc_dio200_common.c
554
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/amplc_dio200_common.c
567
dio200_subdev_8254_set_gate_src(dev, s, chan, src);
drivers/comedi/drivers/amplc_dio200_common.c
568
i8254->gate_src[chan] = src;
drivers/comedi/drivers/amplc_dio200_common.c
571
data[2] = i8254->gate_src[chan];
drivers/comedi/drivers/amplc_dio200_common.c
578
dio200_subdev_8254_set_clock_src(dev, s, chan, src);
drivers/comedi/drivers/amplc_dio200_common.c
579
i8254->clock_src[chan] = src;
drivers/comedi/drivers/amplc_dio200_common.c
582
data[1] = i8254->clock_src[chan];
drivers/comedi/drivers/amplc_dio200_common.c
583
data[2] = clock_period[i8254->clock_src[chan]];
drivers/comedi/drivers/amplc_dio200_common.c
599
int chan;
drivers/comedi/drivers/amplc_dio200_common.c
637
for (chan = 0; chan < 3; chan++) {
drivers/comedi/drivers/amplc_dio200_common.c
639
dio200_subdev_8254_set_gate_src(dev, s, chan, 0);
drivers/comedi/drivers/amplc_dio200_common.c
641
dio200_subdev_8254_set_clock_src(dev, s, chan, 0);
drivers/comedi/drivers/amplc_dio200_common.c
706
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/amplc_dio200_common.c
710
if (chan < 8)
drivers/comedi/drivers/amplc_dio200_common.c
712
else if (chan < 16)
drivers/comedi/drivers/amplc_dio200_common.c
714
else if (chan < 20)
drivers/comedi/drivers/amplc_pci224.c
199
static unsigned int pci224_clk_config(unsigned int chan, unsigned int src)
drivers/comedi/drivers/amplc_pci224.c
201
return ((chan & 3) << 3) | (src & 7);
drivers/comedi/drivers/amplc_pci224.c
212
static unsigned int pci224_gat_config(unsigned int chan, unsigned int src)
drivers/comedi/drivers/amplc_pci224.c
214
return ((chan & 3) << 3) | (src & 7);
drivers/comedi/drivers/amplc_pci224.c
385
pci224_ao_set_data(struct comedi_device *dev, int chan, int range,
drivers/comedi/drivers/amplc_pci224.c
393
outw(1 << chan, dev->iobase + PCI224_DACCEN);
drivers/comedi/drivers/amplc_pci224.c
421
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/amplc_pci224.c
423
unsigned int val = s->readback[chan];
drivers/comedi/drivers/amplc_pci224.c
428
pci224_ao_set_data(dev, chan, range, val);
drivers/comedi/drivers/amplc_pci224.c
430
s->readback[chan] = val;
drivers/comedi/drivers/amplc_pci224.c
630
unsigned int chan = CR_CHAN(cmd->chanlist[i]);
drivers/comedi/drivers/amplc_pci224.c
632
if (chan_mask & (1 << chan)) {
drivers/comedi/drivers/amplc_pci224.c
638
chan_mask |= 1 << chan;
drivers/comedi/drivers/amplc_pci230.c
1072
unsigned int chan = CR_CHAN(cmd->chanlist[i]);
drivers/comedi/drivers/amplc_pci230.c
1078
pci230_ao_write_nofifo(dev, data, chan);
drivers/comedi/drivers/amplc_pci230.c
1079
s->readback[chan] = data;
drivers/comedi/drivers/amplc_pci230.c
1143
unsigned int chan = CR_CHAN(cmd->chanlist[i]);
drivers/comedi/drivers/amplc_pci230.c
1147
pci230_ao_write_fifo(dev, datum, chan);
drivers/comedi/drivers/amplc_pci230.c
1148
s->readback[chan] = datum;
drivers/comedi/drivers/amplc_pci230.c
1416
unsigned int chan = CR_CHAN(chanspec);
drivers/comedi/drivers/amplc_pci230.c
1421
if (aref == AREF_DIFF && chan >= max_diff_chan) {
drivers/comedi/drivers/amplc_pci230.c
1433
if (chan <= prev_chan && subseq_len == 0)
drivers/comedi/drivers/amplc_pci230.c
1459
((chan ^ prev_chan) & ~1) == 0) {
drivers/comedi/drivers/amplc_pci230.c
1466
prev_chan = chan;
drivers/comedi/drivers/amplc_pci230.c
2079
unsigned int i, chan, range, diff;
drivers/comedi/drivers/amplc_pci230.c
2150
chan = CR_CHAN(cmd->chanlist[i]);
drivers/comedi/drivers/amplc_pci230.c
2153
gainshift = 2 * chan;
drivers/comedi/drivers/amplc_pci230.c
2168
gainshift = chan & ~1;
drivers/comedi/drivers/amplc_pci230.c
2169
adcen |= 1 << chan;
drivers/comedi/drivers/amplc_pci230.c
369
static unsigned int pci230_clk_config(unsigned int chan, unsigned int src)
drivers/comedi/drivers/amplc_pci230.c
371
return ((chan & 3) << 3) | (src & 7);
drivers/comedi/drivers/amplc_pci230.c
382
static unsigned int pci230_gat_config(unsigned int chan, unsigned int src)
drivers/comedi/drivers/amplc_pci230.c
384
return ((chan & 3) << 3) | (src & 7);
drivers/comedi/drivers/amplc_pci230.c
573
unsigned short datum, unsigned int chan)
drivers/comedi/drivers/amplc_pci230.c
579
devpriv->daqio + ((chan == 0) ? PCI230_DACOUT1 : PCI230_DACOUT2));
drivers/comedi/drivers/amplc_pci230.c
583
unsigned short datum, unsigned int chan)
drivers/comedi/drivers/amplc_pci230.c
726
unsigned int chan, range, aref;
drivers/comedi/drivers/amplc_pci230.c
732
chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/amplc_pci230.c
737
if (chan >= s->n_chan / 2) {
drivers/comedi/drivers/amplc_pci230.c
757
gainshift = chan * 2;
drivers/comedi/drivers/amplc_pci230.c
774
adcen = 1 << chan;
drivers/comedi/drivers/amplc_pci230.c
775
gainshift = chan & ~1;
drivers/comedi/drivers/amplc_pci230.c
826
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/amplc_pci230.c
828
unsigned int val = s->readback[chan];
drivers/comedi/drivers/amplc_pci230.c
840
pci230_ao_write_nofifo(dev, val, chan);
drivers/comedi/drivers/amplc_pci230.c
842
s->readback[chan] = val;
drivers/comedi/drivers/amplc_pci230.c
856
unsigned int chan = CR_CHAN(cmd->chanlist[i]);
drivers/comedi/drivers/amplc_pci230.c
859
if (chan < prev_chan) {
drivers/comedi/drivers/amplc_pci230.c
873
prev_chan = chan;
drivers/comedi/drivers/c6xdigio.c
111
unsigned int chan)
drivers/comedi/drivers/c6xdigio.c
113
unsigned int cmd = C6XDIGIO_DATA_ENCODER | C6XDIGIO_DATA_CHAN(chan);
drivers/comedi/drivers/c6xdigio.c
153
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/c6xdigio.c
154
unsigned int val = (s->state >> (16 * chan)) & 0xffff;
drivers/comedi/drivers/c6xdigio.c
159
c6xdigio_pwm_write(dev, chan, val);
drivers/comedi/drivers/c6xdigio.c
168
s->state &= (0xffff << (16 * chan));
drivers/comedi/drivers/c6xdigio.c
169
s->state |= (val << (16 * chan));
drivers/comedi/drivers/c6xdigio.c
179
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/c6xdigio.c
183
val = (s->state >> (16 * chan)) & 0xffff;
drivers/comedi/drivers/c6xdigio.c
196
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/c6xdigio.c
201
val = c6xdigio_encoder_read(dev, chan);
drivers/comedi/drivers/c6xdigio.c
86
unsigned int chan, unsigned int val)
drivers/comedi/drivers/c6xdigio.c
88
unsigned int cmd = C6XDIGIO_DATA_PWM | C6XDIGIO_DATA_CHAN(chan);
drivers/comedi/drivers/cb_das16_cs.c
143
int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/cb_das16_cs.c
149
outw(DAS16CS_AI_MUX_SINGLE_CHAN(chan),
drivers/comedi/drivers/cb_das16_cs.c
197
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/cb_das16_cs.c
198
unsigned int val = s->readback[chan];
drivers/comedi/drivers/cb_das16_cs.c
211
if (chan)
drivers/comedi/drivers/cb_das16_cs.c
237
s->readback[chan] = val;
drivers/comedi/drivers/cb_das16_cs.c
261
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/cb_das16_cs.c
265
if (chan < 4)
drivers/comedi/drivers/cb_pcidas.c
1041
unsigned int chan = CR_CHAN(cmd->chanlist[i]);
drivers/comedi/drivers/cb_pcidas.c
1045
devpriv->ao_ctrl |= PCIDAS_AO_CHAN_EN(chan);
drivers/comedi/drivers/cb_pcidas.c
1047
devpriv->ao_ctrl |= PCIDAS_AO_RANGE(chan, range);
drivers/comedi/drivers/cb_pcidas.c
329
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/cb_pcidas.c
340
chan = 0;
drivers/comedi/drivers/cb_pcidas.c
346
bits = PCIDAS_AI_CHAN(chan) | PCIDAS_AI_GAIN(range);
drivers/comedi/drivers/cb_pcidas.c
408
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/cb_pcidas.c
410
unsigned int val = s->readback[chan];
drivers/comedi/drivers/cb_pcidas.c
417
PCIDAS_AO_RANGE_MASK(chan));
drivers/comedi/drivers/cb_pcidas.c
418
devpriv->ao_ctrl |= PCIDAS_AO_DACEN | PCIDAS_AO_RANGE(chan, range);
drivers/comedi/drivers/cb_pcidas.c
424
outw(val, devpriv->pcibar4 + PCIDAS_AO_DATA_REG(chan));
drivers/comedi/drivers/cb_pcidas.c
427
s->readback[chan] = val;
drivers/comedi/drivers/cb_pcidas.c
439
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/cb_pcidas.c
441
unsigned int val = s->readback[chan];
drivers/comedi/drivers/cb_pcidas.c
450
devpriv->ao_ctrl &= ~(PCIDAS_AO_CHAN_MASK | PCIDAS_AO_RANGE_MASK(chan) |
drivers/comedi/drivers/cb_pcidas.c
452
devpriv->ao_ctrl |= PCIDAS_AO_DACEN | PCIDAS_AO_RANGE(chan, range) |
drivers/comedi/drivers/cb_pcidas.c
453
PCIDAS_AO_CHAN_EN(chan) | PCIDAS_AO_START;
drivers/comedi/drivers/cb_pcidas.c
462
s->readback[chan] = val;
drivers/comedi/drivers/cb_pcidas.c
487
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/cb_pcidas.c
500
outb(chan & 0xff, devpriv->amcc + AMCC_OP_REG_MCSR_NVDATA);
drivers/comedi/drivers/cb_pcidas.c
503
outb((chan >> 8) & 0xff,
drivers/comedi/drivers/cb_pcidas.c
563
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/cb_pcidas.c
568
if (s->readback[chan] != val) {
drivers/comedi/drivers/cb_pcidas.c
570
cb_pcidas_calib_write(dev, (chan << 8) | val, 11,
drivers/comedi/drivers/cb_pcidas.c
572
s->readback[chan] = val;
drivers/comedi/drivers/cb_pcidas.c
600
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/cb_pcidas.c
605
if (s->readback[chan] != val) {
drivers/comedi/drivers/cb_pcidas.c
607
s->readback[chan] = val;
drivers/comedi/drivers/cb_pcidas.c
615
unsigned int chan, unsigned int val)
drivers/comedi/drivers/cb_pcidas.c
621
cb_pcidas_calib_write(dev, (chan << 8) | val, 10, true);
drivers/comedi/drivers/cb_pcidas.c
633
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/cb_pcidas.c
638
if (s->readback[chan] != val) {
drivers/comedi/drivers/cb_pcidas.c
639
cb_pcidas_trimpot_write(dev, chan, val);
drivers/comedi/drivers/cb_pcidas.c
640
s->readback[chan] = val;
drivers/comedi/drivers/cb_pcidas.c
656
unsigned int chan = CR_CHAN(cmd->chanlist[i]);
drivers/comedi/drivers/cb_pcidas.c
659
if (chan != (chan0 + i) % s->n_chan) {
drivers/comedi/drivers/cb_pcidas64.c
2074
unsigned int chan = CR_CHAN(cmd->chanlist[i]);
drivers/comedi/drivers/cb_pcidas64.c
2076
if (chan != (chan0 + i)) {
drivers/comedi/drivers/cb_pcidas64.c
3089
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/cb_pcidas64.c
3091
unsigned int val = s->readback[chan];
drivers/comedi/drivers/cb_pcidas64.c
3098
set_dac_range_bits(dev, &devpriv->dac_control1_bits, chan, range);
drivers/comedi/drivers/cb_pcidas64.c
3107
devpriv->main_iobase + dac_lsb_4020_reg(chan));
drivers/comedi/drivers/cb_pcidas64.c
3109
devpriv->main_iobase + dac_msb_4020_reg(chan));
drivers/comedi/drivers/cb_pcidas64.c
3112
devpriv->main_iobase + dac_convert_reg(chan));
drivers/comedi/drivers/cb_pcidas64.c
3117
s->readback[chan] = val;
drivers/comedi/drivers/cb_pcidas64.c
3316
unsigned int chan = CR_CHAN(cmd->chanlist[i]);
drivers/comedi/drivers/cb_pcidas64.c
3318
if (chan != (chan0 + i)) {
drivers/comedi/drivers/cb_pcidas64.c
3622
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/cb_pcidas64.c
3631
if (s->readback[chan] != val) {
drivers/comedi/drivers/cb_pcidas64.c
3632
caldac_write(dev, chan, val);
drivers/comedi/drivers/cb_pcidas64.c
3633
s->readback[chan] = val;
drivers/comedi/drivers/cb_pcidas64.c
3675
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/cb_pcidas64.c
3684
if (s->readback[chan] != val) {
drivers/comedi/drivers/cb_pcidas64.c
3685
ad8402_write(dev, chan, val);
drivers/comedi/drivers/cb_pcidas64.c
3686
s->readback[chan] = val;
drivers/comedi/drivers/cb_pcidda.c
260
unsigned int chan = 4 * (channel % 2); /* caldac channel base */
drivers/comedi/drivers/cb_pcidda.c
273
cb_pcidda_write_caldac(dev, caldac, chan + CB_DDA_CALDAC_COURSE_OFFSET,
drivers/comedi/drivers/cb_pcidda.c
275
cb_pcidda_write_caldac(dev, caldac, chan + CB_DDA_CALDAC_FINE_OFFSET,
drivers/comedi/drivers/cb_pcidda.c
277
cb_pcidda_write_caldac(dev, caldac, chan + CB_DDA_CALDAC_COURSE_GAIN,
drivers/comedi/drivers/cb_pcidda.c
279
cb_pcidda_write_caldac(dev, caldac, chan + CB_DDA_CALDAC_FINE_GAIN,
drivers/comedi/drivers/cb_pcimdas.c
176
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/cb_pcimdas.c
199
outb(PCIMDAS_MUX(chan, chan), devpriv->BADR3 + PCIMDAS_MUX_REG);
drivers/comedi/drivers/cb_pcimdas.c
225
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/cb_pcimdas.c
226
unsigned int val = s->readback[chan];
drivers/comedi/drivers/cb_pcimdas.c
231
outw(val, devpriv->daqio + PCIMDAS_AO_REG(chan));
drivers/comedi/drivers/cb_pcimdas.c
233
s->readback[chan] = val;
drivers/comedi/drivers/cb_pcimdda.c
107
s->readback[chan] = val;
drivers/comedi/drivers/cb_pcimdda.c
117
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/cb_pcimdda.c
120
inw(dev->iobase + PCIMDDA_DA_CHAN(chan));
drivers/comedi/drivers/cb_pcimdda.c
87
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/cb_pcimdda.c
88
unsigned long offset = dev->iobase + PCIMDDA_DA_CHAN(chan);
drivers/comedi/drivers/cb_pcimdda.c
89
unsigned int val = s->readback[chan];
drivers/comedi/drivers/comedi_8254.c
528
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/comedi_8254.c
531
if (i8254->busy[chan])
drivers/comedi/drivers/comedi_8254.c
535
data[i] = comedi_8254_read(i8254, chan);
drivers/comedi/drivers/comedi_8254.c
546
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/comedi_8254.c
548
if (i8254->busy[chan])
drivers/comedi/drivers/comedi_8254.c
552
comedi_8254_write(i8254, chan, data[insn->n - 1]);
drivers/comedi/drivers/comedi_8254.c
563
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/comedi_8254.c
566
if (i8254->busy[chan])
drivers/comedi/drivers/comedi_8254.c
571
ret = comedi_8254_set_mode(i8254, chan,
drivers/comedi/drivers/comedi_8254.c
577
ret = comedi_8254_set_mode(i8254, chan, data[1]);
drivers/comedi/drivers/comedi_8254.c
582
data[1] = comedi_8254_status(i8254, chan);
drivers/comedi/drivers/comedi_8255.c
123
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/comedi_8255.c
127
if (chan < 8)
drivers/comedi/drivers/comedi_8255.c
129
else if (chan < 16)
drivers/comedi/drivers/comedi_8255.c
131
else if (chan < 20)
drivers/comedi/drivers/comedi_bond.c
129
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/comedi_bond.c
138
for (bdev = *devs++; chan >= bdev->nchans; bdev = *devs++)
drivers/comedi/drivers/comedi_bond.c
139
chan -= bdev->nchans;
drivers/comedi/drivers/comedi_bond.c
154
ret = comedi_dio_config(bdev->dev, bdev->subdev, chan, data[0]);
drivers/comedi/drivers/comedi_bond.c
157
ret = comedi_dio_get_config(bdev->dev, bdev->subdev, chan,
drivers/comedi/drivers/comedi_isadma.c
106
clear_dma_ff(desc->chan);
drivers/comedi/drivers/comedi_isadma.c
108
disable_dma(desc->chan);
drivers/comedi/drivers/comedi_isadma.c
109
result = get_dma_residue(desc->chan);
drivers/comedi/drivers/comedi_isadma.c
115
result1 = get_dma_residue(desc->chan);
drivers/comedi/drivers/comedi_isadma.c
117
enable_dma(desc->chan);
drivers/comedi/drivers/comedi_isadma.c
191
dma->chan = dma_chans[0];
drivers/comedi/drivers/comedi_isadma.c
200
desc->chan = dma_chans[i];
drivers/comedi/drivers/comedi_isadma.c
237
if (dma->chan2 && dma->chan2 != dma->chan)
drivers/comedi/drivers/comedi_isadma.c
239
if (dma->chan)
drivers/comedi/drivers/comedi_isadma.c
24
clear_dma_ff(desc->chan);
drivers/comedi/drivers/comedi_isadma.c
240
free_dma(dma->chan);
drivers/comedi/drivers/comedi_isadma.c
25
set_dma_mode(desc->chan, desc->mode);
drivers/comedi/drivers/comedi_isadma.c
26
set_dma_addr(desc->chan, desc->hw_addr);
drivers/comedi/drivers/comedi_isadma.c
27
set_dma_count(desc->chan, desc->size);
drivers/comedi/drivers/comedi_isadma.c
28
enable_dma(desc->chan);
drivers/comedi/drivers/comedi_test.c
435
int i, chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/comedi_test.c
438
data[i] = devpriv->ao_loopbacks[chan];
drivers/comedi/drivers/comedi_test.c
489
unsigned int chan = CR_CHAN(cmd->chanlist[i]);
drivers/comedi/drivers/comedi_test.c
492
pd = &devpriv->ao_loopbacks[chan];
drivers/comedi/drivers/comedi_test.c
646
int i, chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/comedi_test.c
649
devpriv->ao_loopbacks[chan] = data[i];
drivers/comedi/drivers/dac02.c
72
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/dac02.c
80
s->readback[chan] = val;
drivers/comedi/drivers/dac02.c
94
outb((val << 4) & 0xf0, dev->iobase + DAC02_AO_LSB(chan));
drivers/comedi/drivers/dac02.c
95
outb((val >> 4) & 0xff, dev->iobase + DAC02_AO_MSB(chan));
drivers/comedi/drivers/daqboard2000.c
266
static void db2k_setup_sampling(struct comedi_device *dev, int chan, int gain)
drivers/comedi/drivers/daqboard2000.c
273
word2 = (chan << 6) & 0x00c0;
drivers/comedi/drivers/daqboard2000.c
274
switch (chan / 4) {
drivers/comedi/drivers/daqboard2000.c
321
int gain, chan;
drivers/comedi/drivers/daqboard2000.c
339
chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/daqboard2000.c
348
db2k_setup_sampling(dev, chan, gain);
drivers/comedi/drivers/daqboard2000.c
385
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/daqboard2000.c
389
if ((status & DB2K_DAC_STATUS_DAC_BUSY(chan)) == 0)
drivers/comedi/drivers/daqboard2000.c
398
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/daqboard2000.c
405
writew(val, dev->mmio + DB2K_REG_DAC_SETTING(chan));
drivers/comedi/drivers/daqboard2000.c
411
s->readback[chan] = val;
drivers/comedi/drivers/das08.c
174
int chan;
drivers/comedi/drivers/das08.c
179
chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/das08.c
189
devpriv->do_mux_bits |= DAS08_CONTROL_MUX(chan);
drivers/comedi/drivers/das08.c
302
unsigned int chan, unsigned int data)
drivers/comedi/drivers/das08.c
311
outb(lsb, dev->iobase + DAS08JR_AO_LSB_REG(chan));
drivers/comedi/drivers/das08.c
312
outb(msb, dev->iobase + DAS08JR_AO_MSB_REG(chan));
drivers/comedi/drivers/das08.c
316
outb(lsb, dev->iobase + DAS08AOX_AO_LSB_REG(chan));
drivers/comedi/drivers/das08.c
317
outb(msb, dev->iobase + DAS08AOX_AO_MSB_REG(chan));
drivers/comedi/drivers/das08.c
328
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/das08.c
329
unsigned int val = s->readback[chan];
drivers/comedi/drivers/das08.c
334
das08_ao_set_data(dev, chan, val);
drivers/comedi/drivers/das08.c
336
s->readback[chan] = val;
drivers/comedi/drivers/das16.c
489
residue = comedi_isadma_disable_on_sample(desc->chan,
drivers/comedi/drivers/das16.c
565
unsigned int chan = CR_CHAN(cmd->chanlist[i]);
drivers/comedi/drivers/das16.c
568
if (chan != ((chan0 + i) % s->n_chan)) {
drivers/comedi/drivers/das16.c
774
comedi_isadma_disable(dma->chan);
drivers/comedi/drivers/das16.c
826
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/das16.c
833
das16_ai_set_mux_range(dev, chan, chan, range);
drivers/comedi/drivers/das16.c
860
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/das16.c
866
s->readback[chan] = val;
drivers/comedi/drivers/das16.c
870
outb(val & 0xff, dev->iobase + DAS16_AO_LSB_REG(chan));
drivers/comedi/drivers/das16.c
871
outb((val >> 8) & 0xff, dev->iobase + DAS16_AO_MSB_REG(chan));
drivers/comedi/drivers/das16m1.c
111
unsigned int chan = CR_CHAN(chanspec[i]);
drivers/comedi/drivers/das16m1.c
115
outb(DAS16M1_Q_CHAN(chan) | DAS16M1_Q_RANGE(range),
drivers/comedi/drivers/das16m1.c
154
unsigned int chan = CR_CHAN(cmd->chanlist[i]);
drivers/comedi/drivers/das16m1.c
156
if ((i % 2) != (chan % 2)) {
drivers/comedi/drivers/das1800.c
1003
outb(DAC(chan), dev->iobase + DAS1800_SELECT);
drivers/comedi/drivers/das1800.c
1007
if (chan != update_chan) {
drivers/comedi/drivers/das1800.c
367
unsigned int residue = comedi_isadma_disable(desc->chan);
drivers/comedi/drivers/das1800.c
437
if (desc->chan)
drivers/comedi/drivers/das1800.c
438
comedi_isadma_disable(desc->chan);
drivers/comedi/drivers/das1800.c
819
unsigned int chan = CR_CHAN(chanlist[i]);
drivers/comedi/drivers/das1800.c
823
val = chan | ((range & 0x3) << 8);
drivers/comedi/drivers/das1800.c
987
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/das1800.c
998
s->readback[chan] = val;
drivers/comedi/drivers/das6402.c
256
unsigned int chan = CR_CHAN(cmd->chanlist[i]);
drivers/comedi/drivers/das6402.c
260
if (chan != chan0 + i) {
drivers/comedi/drivers/das6402.c
278
if (aref0 == AREF_DIFF && chan > (s->n_chan / 2)) {
drivers/comedi/drivers/das6402.c
381
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/das6402.c
386
if (aref == AREF_DIFF && chan > (s->n_chan / 2))
drivers/comedi/drivers/das6402.c
395
outw(DAS6402_AI_MUX_HI(chan) | DAS6402_AI_MUX_LO(chan),
drivers/comedi/drivers/das6402.c
420
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/das6402.c
427
val &= ~DAS6402_AO_RANGE_MASK(chan);
drivers/comedi/drivers/das6402.c
428
val |= DAS6402_AO_RANGE(chan, range);
drivers/comedi/drivers/das6402.c
449
s->readback[chan] = val;
drivers/comedi/drivers/das6402.c
458
outw(val, dev->iobase + DAS6402_AO_DATA_REG(chan));
drivers/comedi/drivers/das6402.c
465
dev->iobase + DAS6402_AO_LSB_REG(chan));
drivers/comedi/drivers/das6402.c
467
dev->iobase + DAS6402_AO_LSB_REG(chan));
drivers/comedi/drivers/das6402.c
479
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/das6402.c
485
inw(dev->iobase + DAS6402_AO_LSB_REG(chan));
drivers/comedi/drivers/das800.c
272
unsigned int chan = CR_CHAN(cmd->chanlist[i]);
drivers/comedi/drivers/das800.c
275
if (chan != (chan0 + i) % s->n_chan) {
drivers/comedi/drivers/das800.c
525
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/das800.c
536
das800_ind_write(dev, chan | devpriv->do_bits, CONTROL1);
drivers/comedi/drivers/dmm32at.c
162
unsigned int chan = CR_CHAN(chanspec);
drivers/comedi/drivers/dmm32at.c
164
unsigned int last_chan = (chan + nchan - 1) % s->n_chan;
drivers/comedi/drivers/dmm32at.c
172
outb(chan, dev->iobase + DMM32AT_AI_LO_CHAN_REG);
drivers/comedi/drivers/dmm32at.c
241
unsigned int chan = CR_CHAN(cmd->chanlist[i]);
drivers/comedi/drivers/dmm32at.c
244
if (chan != (chan0 + i) % s->n_chan) {
drivers/comedi/drivers/dmm32at.c
472
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/dmm32at.c
481
outb((val >> 8) | DMM32AT_AO_MSB_DACH(chan),
drivers/comedi/drivers/dmm32at.c
492
s->readback[chan] = val;
drivers/comedi/drivers/dt2801.c
474
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/dt2801.c
477
dt2801_writedata(dev, chan);
drivers/comedi/drivers/dt2801.c
480
s->readback[chan] = data[0];
drivers/comedi/drivers/dt2811.c
244
unsigned int chan = CR_CHAN(chanspec);
drivers/comedi/drivers/dt2811.c
247
outb(DT2811_ADGCR_CHAN(chan) | DT2811_ADGCR_GAIN(range),
drivers/comedi/drivers/dt2811.c
499
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/dt2811.c
500
unsigned int val = s->readback[chan];
drivers/comedi/drivers/dt2811.c
505
outb(val & 0xff, dev->iobase + DT2811_DADATA_LO_REG(chan));
drivers/comedi/drivers/dt2811.c
507
dev->iobase + DT2811_DADATA_HI_REG(chan));
drivers/comedi/drivers/dt2811.c
509
s->readback[chan] = val;
drivers/comedi/drivers/dt2814.c
104
int chan;
drivers/comedi/drivers/dt2814.c
109
chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/dt2814.c
111
outb(chan, dev->iobase + DT2814_CSR);
drivers/comedi/drivers/dt2814.c
205
int chan;
drivers/comedi/drivers/dt2814.c
211
chan = CR_CHAN(cmd->chanlist[0]);
drivers/comedi/drivers/dt2814.c
213
outb(chan | DT2814_ENB | (trigvar << 5), dev->iobase + DT2814_CSR);
drivers/comedi/drivers/dt2815.c
110
devpriv->ao_readback[chan] = data[i];
drivers/comedi/drivers/dt2815.c
76
int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/dt2815.c
79
data[i] = devpriv->ao_readback[chan];
drivers/comedi/drivers/dt2815.c
89
int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/dt2815.c
95
lo = ((data[i] & 0x0f) << 4) | (chan << 1) | 0x01;
drivers/comedi/drivers/dt2817.c
38
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/dt2817.c
43
if (chan < 8)
drivers/comedi/drivers/dt2817.c
45
else if (chan < 16)
drivers/comedi/drivers/dt2817.c
47
else if (chan < 24)
drivers/comedi/drivers/dt282x.c
360
comedi_isadma_disable(desc->chan);
drivers/comedi/drivers/dt282x.c
449
comedi_isadma_disable(desc->chan);
drivers/comedi/drivers/dt282x.c
469
comedi_isadma_disable(desc->chan);
drivers/comedi/drivers/dt282x.c
545
unsigned int chan = CR_CHAN(chanlist[i]);
drivers/comedi/drivers/dt282x.c
550
DT2821_ADCSR_CHAN(chan),
drivers/comedi/drivers/dt282x.c
770
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/dt282x.c
774
devpriv->dacsr |= DT2821_DACSR_SSEL | DT2821_DACSR_YSEL(chan);
drivers/comedi/drivers/dt282x.c
779
s->readback[chan] = val;
drivers/comedi/drivers/dt282x.c
950
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/dt282x.c
954
if (chan < 8)
drivers/comedi/drivers/dt3000.c
247
unsigned int subsys, unsigned int chan,
drivers/comedi/drivers/dt3000.c
252
writew(chan, dev->mmio + DPR_PARAMS(0));
drivers/comedi/drivers/dt3000.c
261
unsigned int chan, unsigned int data)
drivers/comedi/drivers/dt3000.c
265
writew(chan, dev->mmio + DPR_PARAMS(0));
drivers/comedi/drivers/dt3000.c
456
unsigned int chan, range, aref;
drivers/comedi/drivers/dt3000.c
461
chan = CR_CHAN(cmd->chanlist[i]);
drivers/comedi/drivers/dt3000.c
464
writew((range << 6) | chan, dev->mmio + DPR_ADC_BUFFER + i);
drivers/comedi/drivers/dt3000.c
509
unsigned int chan, gain;
drivers/comedi/drivers/dt3000.c
511
chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/dt3000.c
516
data[i] = dt3k_readsingle(dev, DPR_SUBSYS_AI, chan, gain);
drivers/comedi/drivers/dt3000.c
526
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/dt3000.c
527
unsigned int val = s->readback[chan];
drivers/comedi/drivers/dt3000.c
532
dt3k_writesingle(dev, DPR_SUBSYS_AO, chan, val);
drivers/comedi/drivers/dt3000.c
534
s->readback[chan] = val;
drivers/comedi/drivers/dt3000.c
556
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/dt3000.c
560
if (chan < 4)
drivers/comedi/drivers/dt9812.c
633
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/dt9812.c
639
ret = dt9812_analog_in(dev, chan, &val, DT9812_GAIN_1);
drivers/comedi/drivers/dt9812.c
668
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/dt9812.c
675
ret = dt9812_analog_out(dev, chan, val);
drivers/comedi/drivers/dt9812.c
679
s->readback[chan] = val;
drivers/comedi/drivers/dyna_pci10xx.c
70
unsigned int chan, range;
drivers/comedi/drivers/dyna_pci10xx.c
73
chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/dyna_pci10xx.c
81
outw_p(0x0000 + range + chan, dev->iobase + 2);
drivers/comedi/drivers/fl512.c
54
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/fl512.c
58
outb(chan, dev->iobase + FL512_AI_MUX_REG);
drivers/comedi/drivers/fl512.c
81
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/fl512.c
82
unsigned int val = s->readback[chan];
drivers/comedi/drivers/fl512.c
89
outb(val & 0x0ff, dev->iobase + FL512_AO_DATA_REG(chan));
drivers/comedi/drivers/fl512.c
90
outb((val >> 8) & 0xf, dev->iobase + FL512_AO_DATA_REG(chan));
drivers/comedi/drivers/fl512.c
91
inb(dev->iobase + FL512_AO_TRIG_REG(chan));
drivers/comedi/drivers/fl512.c
93
s->readback[chan] = val;
drivers/comedi/drivers/gsc_hpdi.c
336
unsigned int chan = CR_CHAN(cmd->chanlist[i]);
drivers/comedi/drivers/gsc_hpdi.c
338
if (chan != i) {
drivers/comedi/drivers/icp_multi.c
105
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/icp_multi.c
114
adc_csr = ICP_MULTI_ADC_CSR_DI_CHAN(chan) |
drivers/comedi/drivers/icp_multi.c
117
adc_csr = ICP_MULTI_ADC_CSR_SE_CHAN(chan);
drivers/comedi/drivers/icp_multi.c
158
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/icp_multi.c
164
dac_csr = ICP_MULTI_DAC_CSR_CHAN(chan);
drivers/comedi/drivers/icp_multi.c
183
s->readback[chan] = val;
drivers/comedi/drivers/ii_pci20kc.c
149
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ii_pci20kc.c
155
s->readback[chan] = val;
drivers/comedi/drivers/ii_pci20kc.c
160
writeb(val & 0xff, iobase + II20K_AO_LSB_REG(chan));
drivers/comedi/drivers/ii_pci20kc.c
161
writeb((val >> 8) & 0xff, iobase + II20K_AO_MSB_REG(chan));
drivers/comedi/drivers/ii_pci20kc.c
162
writeb(0x00, iobase + II20K_AO_STRB_REG(chan));
drivers/comedi/drivers/ii_pci20kc.c
187
unsigned int chan = CR_CHAN(chanspec);
drivers/comedi/drivers/ii_pci20kc.c
212
II20K_AI_CHANLIST_CHAN(chan);
drivers/comedi/drivers/ii_pci20kc.c
322
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ii_pci20kc.c
326
if (chan < 8)
drivers/comedi/drivers/ii_pci20kc.c
328
else if (chan < 16)
drivers/comedi/drivers/ii_pci20kc.c
330
else if (chan < 24)
drivers/comedi/drivers/jr3_pci.c
204
unsigned int chan)
drivers/comedi/drivers/jr3_pci.c
212
if (chan < 56) {
drivers/comedi/drivers/jr3_pci.c
213
unsigned int axis = chan % 8;
drivers/comedi/drivers/jr3_pci.c
214
unsigned int filter = chan / 8;
drivers/comedi/drivers/jr3_pci.c
243
} else if (chan == 56) {
drivers/comedi/drivers/jr3_pci.c
245
} else if (chan == 57) {
drivers/comedi/drivers/jr3_pci.c
258
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/jr3_pci.c
274
data[i] = jr3_pci_ai_read_chan(dev, s, chan);
drivers/comedi/drivers/ke_counter.c
45
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ke_counter.c
53
outb((val >> 24) & 0xff, dev->iobase + KE_SIGN_REG(chan));
drivers/comedi/drivers/ke_counter.c
54
outb((val >> 16) & 0xff, dev->iobase + KE_MSB_REG(chan));
drivers/comedi/drivers/ke_counter.c
55
outb((val >> 8) & 0xff, dev->iobase + KE_MID_REG(chan));
drivers/comedi/drivers/ke_counter.c
56
outb((val >> 0) & 0xff, dev->iobase + KE_LSB_REG(chan));
drivers/comedi/drivers/ke_counter.c
67
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ke_counter.c
73
inb(dev->iobase + KE_LATCH_REG(chan));
drivers/comedi/drivers/ke_counter.c
75
val = inb(dev->iobase + KE_LSB_REG(chan));
drivers/comedi/drivers/ke_counter.c
76
val |= (inb(dev->iobase + KE_MID_REG(chan)) << 8);
drivers/comedi/drivers/ke_counter.c
77
val |= (inb(dev->iobase + KE_MSB_REG(chan)) << 16);
drivers/comedi/drivers/ke_counter.c
78
val |= (inb(dev->iobase + KE_SIGN_REG(chan)) << 24);
drivers/comedi/drivers/ke_counter.c
88
unsigned int chan;
drivers/comedi/drivers/ke_counter.c
90
for (chan = 0; chan < 3; chan++)
drivers/comedi/drivers/ke_counter.c
91
outb(0, dev->iobase + KE_RESET_REG(chan));
drivers/comedi/drivers/me4000.c
1004
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/me4000.c
1008
tmp = inl(dev->iobase + ME4000_AO_CTRL_REG(chan));
drivers/comedi/drivers/me4000.c
1010
outl(tmp, dev->iobase + ME4000_AO_CTRL_REG(chan));
drivers/comedi/drivers/me4000.c
1013
outl(0x0, dev->iobase + ME4000_AO_CTRL_REG(chan));
drivers/comedi/drivers/me4000.c
1016
outl(data[0], dev->iobase + ME4000_AO_SINGLE_REG(chan));
drivers/comedi/drivers/me4000.c
1019
s->readback[chan] = data[0];
drivers/comedi/drivers/me4000.c
1053
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/me4000.c
1058
if (chan < 8)
drivers/comedi/drivers/me4000.c
1060
else if (chan < 16)
drivers/comedi/drivers/me4000.c
1062
else if (chan < 24)
drivers/comedi/drivers/me4000.c
409
int chan;
drivers/comedi/drivers/me4000.c
422
for (chan = 0; chan < 4; chan++)
drivers/comedi/drivers/me4000.c
423
outl(0x8000, dev->iobase + ME4000_AO_SINGLE_REG(chan));
drivers/comedi/drivers/me4000.c
429
for (chan = 0; chan < 4; chan++)
drivers/comedi/drivers/me4000.c
430
outl(val, dev->iobase + ME4000_AO_CTRL_REG(chan));
drivers/comedi/drivers/me4000.c
472
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/me4000.c
479
entry = chan | ME4000_AI_LIST_RANGE(range);
drivers/comedi/drivers/me4000.c
493
if (chan >= (s->n_chan / 2)) {
drivers/comedi/drivers/me4000.c
549
unsigned int chan = CR_CHAN(cmd->chanlist[i]);
drivers/comedi/drivers/me4000.c
566
if (chan >= (s->n_chan / 2)) {
drivers/comedi/drivers/me4000.c
641
unsigned int chan = CR_CHAN(cmd->chanlist[i]);
drivers/comedi/drivers/me4000.c
646
entry = chan | ME4000_AI_LIST_RANGE(range);
drivers/comedi/drivers/me_daq.c
154
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/me_daq.c
158
if (chan < 16)
drivers/comedi/drivers/me_daq.c
233
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/me_daq.c
245
if (chan > 7 || comedi_range_is_unipolar(s, range))
drivers/comedi/drivers/me_daq.c
260
val = ME_AI_FIFO_CHANLIST_CHAN(chan) | ME_AI_FIFO_CHANLIST_GAIN(range);
drivers/comedi/drivers/me_daq.c
300
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/me_daq.c
302
unsigned int val = s->readback[chan];
drivers/comedi/drivers/me_daq.c
314
devpriv->dac_ctrl &= ~ME_DAC_CTRL_MASK(chan);
drivers/comedi/drivers/me_daq.c
316
devpriv->dac_ctrl |= ME_DAC_CTRL_GAIN(chan);
drivers/comedi/drivers/me_daq.c
318
devpriv->dac_ctrl |= ME_DAC_CTRL_BIPOLAR(chan);
drivers/comedi/drivers/me_daq.c
328
writew(val, dev->mmio + ME_AO_DATA_REG(chan));
drivers/comedi/drivers/me_daq.c
330
s->readback[chan] = val;
drivers/comedi/drivers/mf6x4.c
126
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/mf6x4.c
132
iowrite16(MF6X4_ADCTRL_CHAN(chan), dev->mmio + MF6X4_ADCTRL_REG);
drivers/comedi/drivers/mf6x4.c
160
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/mf6x4.c
161
unsigned int val = s->readback[chan];
drivers/comedi/drivers/mf6x4.c
172
iowrite16(val, dev->mmio + MF6X4_DAC_REG(chan));
drivers/comedi/drivers/mf6x4.c
174
s->readback[chan] = val;
drivers/comedi/drivers/mf6x4.c
33
#define MF6X4_ADCTRL_CHAN(x) BIT(chan)
drivers/comedi/drivers/multiq3.c
103
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/multiq3.c
108
multiq3_set_ctrl(dev, MULTIQ3_CTRL_EN | MULTIQ3_CTRL_AI_CHAN(chan));
drivers/comedi/drivers/multiq3.c
140
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/multiq3.c
141
unsigned int val = s->readback[chan];
drivers/comedi/drivers/multiq3.c
147
MULTIQ3_CTRL_AO_CHAN(chan));
drivers/comedi/drivers/multiq3.c
151
s->readback[chan] = val;
drivers/comedi/drivers/multiq3.c
183
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/multiq3.c
190
MULTIQ3_CTRL_E_CHAN(chan));
drivers/comedi/drivers/multiq3.c
225
unsigned int chan)
drivers/comedi/drivers/multiq3.c
227
multiq3_set_ctrl(dev, MULTIQ3_CTRL_EN | MULTIQ3_CTRL_E_CHAN(chan));
drivers/comedi/drivers/multiq3.c
242
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/multiq3.c
246
multiq3_encoder_reset(dev, chan);
drivers/comedi/drivers/ni_6527.c
115
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ni_6527.c
130
devpriv->filter_enable |= 1 << chan;
drivers/comedi/drivers/ni_6527.c
132
devpriv->filter_enable &= ~(1 << chan);
drivers/comedi/drivers/ni_65xx.c
351
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ni_65xx.c
352
unsigned int chan_mask = NI_65XX_CHAN_TO_MASK(chan);
drivers/comedi/drivers/ni_65xx.c
353
unsigned int port = base_port + NI_65XX_CHAN_TO_PORT(chan);
drivers/comedi/drivers/ni_660x.c
561
unsigned int chan, unsigned int out_sel)
drivers/comedi/drivers/ni_660x.c
568
if (chan >= NI_PFI(0))
drivers/comedi/drivers/ni_660x.c
570
chan -= NI_PFI(0);
drivers/comedi/drivers/ni_660x.c
574
chan >= 8 && chan <= 23) {
drivers/comedi/drivers/ni_660x.c
587
bits = ni_660x_read(dev, idle_chip, NI660X_IO_CFG(chan));
drivers/comedi/drivers/ni_660x.c
588
bits &= ~NI660X_IO_CFG_OUT_SEL_MASK(chan);
drivers/comedi/drivers/ni_660x.c
589
bits |= NI660X_IO_CFG_OUT_SEL(chan, 0); /* high-z */
drivers/comedi/drivers/ni_660x.c
590
ni_660x_write(dev, idle_chip, bits, NI660X_IO_CFG(chan));
drivers/comedi/drivers/ni_660x.c
594
bits = ni_660x_read(dev, active_chip, NI660X_IO_CFG(chan));
drivers/comedi/drivers/ni_660x.c
595
bits &= ~NI660X_IO_CFG_OUT_SEL_MASK(chan);
drivers/comedi/drivers/ni_660x.c
596
bits |= NI660X_IO_CFG_OUT_SEL(chan, out_sel);
drivers/comedi/drivers/ni_660x.c
597
ni_660x_write(dev, active_chip, bits, NI660X_IO_CFG(chan));
drivers/comedi/drivers/ni_660x.c
601
unsigned int chan,
drivers/comedi/drivers/ni_660x.c
607
if (chan >= NI_PFI(0))
drivers/comedi/drivers/ni_660x.c
609
chan -= NI_PFI(0);
drivers/comedi/drivers/ni_660x.c
611
bit = 1ULL << chan;
drivers/comedi/drivers/ni_660x.c
616
ni_660x_select_pfi_output(dev, chan, devpriv->io_cfg[chan]);
drivers/comedi/drivers/ni_660x.c
620
ni_660x_select_pfi_output(dev, chan, 0);
drivers/comedi/drivers/ni_660x.c
625
unsigned int chan)
drivers/comedi/drivers/ni_660x.c
630
if (chan >= NI_PFI(0))
drivers/comedi/drivers/ni_660x.c
632
chan -= NI_PFI(0);
drivers/comedi/drivers/ni_660x.c
634
bit = 1ULL << chan;
drivers/comedi/drivers/ni_660x.c
640
unsigned int chan, unsigned int source)
drivers/comedi/drivers/ni_660x.c
644
if (chan >= NI_PFI(0))
drivers/comedi/drivers/ni_660x.c
646
chan -= NI_PFI(0);
drivers/comedi/drivers/ni_660x.c
650
if (chan < 8)
drivers/comedi/drivers/ni_660x.c
654
if (chan > 31)
drivers/comedi/drivers/ni_660x.c
661
devpriv->io_cfg[chan] = source;
drivers/comedi/drivers/ni_660x.c
662
if (ni_660x_get_pfi_direction(dev, chan) == COMEDI_OUTPUT)
drivers/comedi/drivers/ni_660x.c
663
ni_660x_select_pfi_output(dev, chan, devpriv->io_cfg[chan]);
drivers/comedi/drivers/ni_660x.c
667
static int ni_660x_get_pfi_routing(struct comedi_device *dev, unsigned int chan)
drivers/comedi/drivers/ni_660x.c
671
if (chan >= NI_PFI(0))
drivers/comedi/drivers/ni_660x.c
673
chan -= NI_PFI(0);
drivers/comedi/drivers/ni_660x.c
675
return devpriv->io_cfg[chan];
drivers/comedi/drivers/ni_660x.c
679
unsigned int chan, unsigned int value)
drivers/comedi/drivers/ni_660x.c
683
if (chan >= NI_PFI(0))
drivers/comedi/drivers/ni_660x.c
685
chan -= NI_PFI(0);
drivers/comedi/drivers/ni_660x.c
687
val = ni_660x_read(dev, 0, NI660X_IO_CFG(chan));
drivers/comedi/drivers/ni_660x.c
688
val &= ~NI660X_IO_CFG_IN_SEL_MASK(chan);
drivers/comedi/drivers/ni_660x.c
689
val |= NI660X_IO_CFG_IN_SEL(chan, value);
drivers/comedi/drivers/ni_660x.c
690
ni_660x_write(dev, 0, val, NI660X_IO_CFG(chan));
drivers/comedi/drivers/ni_660x.c
698
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ni_660x.c
703
ni_660x_set_pfi_direction(dev, chan, COMEDI_OUTPUT);
drivers/comedi/drivers/ni_660x.c
707
ni_660x_set_pfi_direction(dev, chan, COMEDI_INPUT);
drivers/comedi/drivers/ni_660x.c
711
data[1] = ni_660x_get_pfi_direction(dev, chan);
drivers/comedi/drivers/ni_660x.c
715
ret = ni_660x_set_pfi_routing(dev, chan, data[1]);
drivers/comedi/drivers/ni_660x.c
721
data[1] = ni_660x_get_pfi_routing(dev, chan);
drivers/comedi/drivers/ni_660x.c
725
ni_660x_set_pfi_filter(dev, chan, data[1]);
drivers/comedi/drivers/ni_660x.c
974
unsigned int chan;
drivers/comedi/drivers/ni_660x.c
985
for (chan = 0; chan < NI660X_MAX_DMA_CHANNEL; ++chan)
drivers/comedi/drivers/ni_660x.c
986
devpriv->dma_cfg[chip] |= NI660X_DMA_CFG_SEL_NONE(chan);
drivers/comedi/drivers/ni_660x.c
991
for (chan = 0; chan < NI660X_NUM_PFI_CHANNELS; ++chan)
drivers/comedi/drivers/ni_660x.c
992
ni_660x_write(dev, chip, 0, NI660X_IO_CFG(chan));
drivers/comedi/drivers/ni_670x.c
76
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ni_670x.c
77
unsigned int val = s->readback[chan];
drivers/comedi/drivers/ni_670x.c
93
writel(((chan & 15) << 1) | ((chan & 16) >> 4),
drivers/comedi/drivers/ni_670x.c
98
s->readback[chan] = val;
drivers/comedi/drivers/ni_at_a2150.c
168
residue = comedi_isadma_disable(desc->chan);
drivers/comedi/drivers/ni_at_a2150.c
231
comedi_isadma_disable(desc->chan);
drivers/comedi/drivers/ni_at_a2150.c
371
unsigned int chan = CR_CHAN(cmd->chanlist[i]);
drivers/comedi/drivers/ni_at_a2150.c
374
if (chan != (chan0 + i)) {
drivers/comedi/drivers/ni_at_a2150.c
380
if (chan == 2)
drivers/comedi/drivers/ni_at_a2150.c
504
comedi_isadma_disable(desc->chan);
drivers/comedi/drivers/ni_at_ao.c
129
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ni_at_ao.c
130
unsigned int val = s->readback[chan];
drivers/comedi/drivers/ni_at_ao.c
133
if (chan == 0)
drivers/comedi/drivers/ni_at_ao.c
141
dev->iobase + ATAO_AO_REG(chan));
drivers/comedi/drivers/ni_at_ao.c
143
s->readback[chan] = val;
drivers/comedi/drivers/ni_at_ao.c
145
if (chan == 0)
drivers/comedi/drivers/ni_at_ao.c
170
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ni_at_ao.c
174
if (chan < 4)
drivers/comedi/drivers/ni_at_ao.c
235
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ni_at_ao.c
239
unsigned int bitstring = ((chan & 0x7) << 8) | val;
drivers/comedi/drivers/ni_at_ao.c
254
outw(ATAO_CFG2_CALLD(chan), dev->iobase + ATAO_CFG2_REG);
drivers/comedi/drivers/ni_at_ao.c
257
s->readback[chan] = val;
drivers/comedi/drivers/ni_atmio16d.c
291
unsigned int sample_count, tmp, chan, gain;
drivers/comedi/drivers/ni_atmio16d.c
314
chan = CR_CHAN(cmd->chanlist[i]);
drivers/comedi/drivers/ni_atmio16d.c
317
tmp = chan | (gain << 6);
drivers/comedi/drivers/ni_atmio16d.c
463
int chan;
drivers/comedi/drivers/ni_atmio16d.c
467
chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ni_atmio16d.c
476
outw(chan | (gain << 6), dev->iobase + MUX_GAIN_REG);
drivers/comedi/drivers/ni_atmio16d.c
503
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ni_atmio16d.c
504
unsigned int reg = (chan) ? DAC1_REG : DAC0_REG;
drivers/comedi/drivers/ni_atmio16d.c
508
if (chan == 0 && devpriv->dac0_coding == dac_2comp)
drivers/comedi/drivers/ni_atmio16d.c
510
if (chan == 1 && devpriv->dac1_coding == dac_2comp)
drivers/comedi/drivers/ni_atmio16d.c
516
s->readback[chan] = val;
drivers/comedi/drivers/ni_atmio16d.c
546
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ni_atmio16d.c
550
if (chan < 4)
drivers/comedi/drivers/ni_daq_700.c
137
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ni_daq_700.c
152
outb(chan | 0x80, dev->iobase + CMD_R1);
drivers/comedi/drivers/ni_labpc_common.c
1129
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ni_labpc_common.c
1138
if (s->readback[chan] != val) {
drivers/comedi/drivers/ni_labpc_common.c
1139
write_caldac(dev, chan, val);
drivers/comedi/drivers/ni_labpc_common.c
1140
s->readback[chan] = val;
drivers/comedi/drivers/ni_labpc_common.c
1166
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ni_labpc_common.c
1170
if (chan < 16 || chan > 127)
drivers/comedi/drivers/ni_labpc_common.c
1184
labpc_eeprom_write(dev, chan, val);
drivers/comedi/drivers/ni_labpc_common.c
1185
s->readback[chan] = val;
drivers/comedi/drivers/ni_labpc_common.c
126
unsigned int chan,
drivers/comedi/drivers/ni_labpc_common.c
145
chan *= 2;
drivers/comedi/drivers/ni_labpc_common.c
146
devpriv->cmd1 = CMD1_MA(chan);
drivers/comedi/drivers/ni_labpc_common.c
235
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ni_labpc_common.c
244
labpc_ai_set_chan_and_gain(dev, MODE_SINGLE_CHAN, chan, range, aref);
drivers/comedi/drivers/ni_labpc_common.c
455
unsigned int chan = CR_CHAN(cmd->chanlist[i]);
drivers/comedi/drivers/ni_labpc_common.c
463
if (chan != chan0) {
drivers/comedi/drivers/ni_labpc_common.c
470
if (chan != i) {
drivers/comedi/drivers/ni_labpc_common.c
477
if (chan != (cmd->chanlist_len - i - 1)) {
drivers/comedi/drivers/ni_labpc_common.c
626
unsigned int chan = CR_CHAN(chanspec);
drivers/comedi/drivers/ni_labpc_common.c
675
labpc_ai_set_chan_and_gain(dev, mode, chan, range, aref);
drivers/comedi/drivers/ni_labpc_common.c
895
unsigned int chan, unsigned int val)
drivers/comedi/drivers/ni_labpc_common.c
899
devpriv->write_byte(dev, val & 0xff, DAC_LSB_REG(chan));
drivers/comedi/drivers/ni_labpc_common.c
900
devpriv->write_byte(dev, (val >> 8) & 0xff, DAC_MSB_REG(chan));
drivers/comedi/drivers/ni_labpc_common.c
902
s->readback[chan] = val;
drivers/comedi/drivers/ni_labpc_isadma.c
88
residue = comedi_isadma_disable(desc->chan);
drivers/comedi/drivers/ni_mio_common.c
1626
unsigned int chan, range, aref;
drivers/comedi/drivers/ni_mio_common.c
1636
chan = CR_CHAN(list[0]);
drivers/comedi/drivers/ni_mio_common.c
1641
NI_M_CFG_BYPASS_AI_CHAN(chan) |
drivers/comedi/drivers/ni_mio_common.c
1655
chan = CR_CHAN(list[i]);
drivers/comedi/drivers/ni_mio_common.c
1675
config_bits |= NI_M_AI_CFG_CHAN_SEL(chan);
drivers/comedi/drivers/ni_mio_common.c
1676
config_bits |= NI_M_AI_CFG_BANK_SEL(chan);
drivers/comedi/drivers/ni_mio_common.c
1725
unsigned int chan, range, aref;
drivers/comedi/drivers/ni_mio_common.c
1777
chan = devpriv->ai_calib_source;
drivers/comedi/drivers/ni_mio_common.c
1779
chan = CR_CHAN(list[i]);
drivers/comedi/drivers/ni_mio_common.c
1815
hi |= NI_E_AI_CFG_HI_CHAN(chan);
drivers/comedi/drivers/ni_mio_common.c
2574
unsigned int chan;
drivers/comedi/drivers/ni_mio_common.c
2590
chan = CR_CHAN(chanspec[i]);
drivers/comedi/drivers/ni_mio_common.c
2598
ni_writeb(dev, 0, NI_M_AO_REF_ATTENUATION_REG(chan));
drivers/comedi/drivers/ni_mio_common.c
2602
ni_writeb(dev, 0, NI_M_AO_REF_ATTENUATION_REG(chan));
drivers/comedi/drivers/ni_mio_common.c
2607
NI_M_AO_REF_ATTENUATION_REG(chan));
drivers/comedi/drivers/ni_mio_common.c
2612
NI_M_AO_REF_ATTENUATION_REG(chan));
drivers/comedi/drivers/ni_mio_common.c
2633
ni_writeb(dev, conf, NI_M_AO_CFG_BANK_REG(chan));
drivers/comedi/drivers/ni_mio_common.c
2634
devpriv->ao_conf[chan] = conf;
drivers/comedi/drivers/ni_mio_common.c
2635
ni_writeb(dev, i, NI_M_AO_WAVEFORM_ORDER_REG(chan));
drivers/comedi/drivers/ni_mio_common.c
2647
unsigned int chan;
drivers/comedi/drivers/ni_mio_common.c
2653
chan = CR_CHAN(chanspec[i]);
drivers/comedi/drivers/ni_mio_common.c
2655
conf = NI_E_AO_DACSEL(chan);
drivers/comedi/drivers/ni_mio_common.c
2676
devpriv->ao_conf[chan] = conf;
drivers/comedi/drivers/ni_mio_common.c
2701
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ni_mio_common.c
2707
ni_ao_win_outw(dev, 1 << chan, NI671X_AO_IMMEDIATE_REG);
drivers/comedi/drivers/ni_mio_common.c
2709
reg = NI671X_DAC_DIRECT_DATA_REG(chan);
drivers/comedi/drivers/ni_mio_common.c
2711
reg = NI_M_DAC_DIRECT_DATA_REG(chan);
drivers/comedi/drivers/ni_mio_common.c
2713
reg = NI_E_DAC_DIRECT_DATA_REG(chan);
drivers/comedi/drivers/ni_mio_common.c
2721
s->readback[chan] = val;
drivers/comedi/drivers/ni_mio_common.c
3192
int chan = CR_CHAN(cmd->chanlist[i]);
drivers/comedi/drivers/ni_mio_common.c
3194
bits |= 1 << chan;
drivers/comedi/drivers/ni_mio_common.c
3195
ni_ao_win_outw(dev, chan, NI611X_AO_WAVEFORM_GEN_REG);
drivers/comedi/drivers/ni_mio_common.c
3555
unsigned int chan = CR_CHAN(cmd->chanlist[i]);
drivers/comedi/drivers/ni_mio_common.c
3557
if (chan != i)
drivers/comedi/drivers/ni_mio_common.c
4455
int chan;
drivers/comedi/drivers/ni_mio_common.c
4479
chan = 0;
drivers/comedi/drivers/ni_mio_common.c
4483
maxdata_list[chan] =
drivers/comedi/drivers/ni_mio_common.c
4485
chan++;
drivers/comedi/drivers/ni_mio_common.c
4489
for (chan = 0; chan < s->n_chan; chan++)
drivers/comedi/drivers/ni_mio_common.c
4495
for (chan = 0; chan < s->n_chan; chan++)
drivers/comedi/drivers/ni_mio_common.c
4561
unsigned int chan)
drivers/comedi/drivers/ni_mio_common.c
4564
switch (chan) {
drivers/comedi/drivers/ni_mio_common.c
4593
unsigned int chan, unsigned int source)
drivers/comedi/drivers/ni_mio_common.c
4596
if (source != ni_old_get_pfi_routing(dev, chan))
drivers/comedi/drivers/ni_mio_common.c
4602
unsigned int chan)
drivers/comedi/drivers/ni_mio_common.c
4605
const unsigned int array_offset = chan / 3;
drivers/comedi/drivers/ni_mio_common.c
4607
return NI_M_PFI_OUT_SEL_TO_SRC(chan,
drivers/comedi/drivers/ni_mio_common.c
4612
unsigned int chan, unsigned int source)
drivers/comedi/drivers/ni_mio_common.c
4615
unsigned int index = chan / 3;
drivers/comedi/drivers/ni_mio_common.c
4621
val &= ~NI_M_PFI_OUT_SEL_MASK(chan);
drivers/comedi/drivers/ni_mio_common.c
4622
val |= NI_M_PFI_OUT_SEL(chan, source);
drivers/comedi/drivers/ni_mio_common.c
4630
unsigned int chan)
drivers/comedi/drivers/ni_mio_common.c
4634
if (chan >= NI_PFI(0)) {
drivers/comedi/drivers/ni_mio_common.c
4636
chan -= NI_PFI(0);
drivers/comedi/drivers/ni_mio_common.c
4639
? ni_m_series_get_pfi_routing(dev, chan)
drivers/comedi/drivers/ni_mio_common.c
4640
: ni_old_get_pfi_routing(dev, chan);
drivers/comedi/drivers/ni_mio_common.c
4645
unsigned int chan, unsigned int source)
drivers/comedi/drivers/ni_mio_common.c
4649
if (chan >= NI_PFI(0)) {
drivers/comedi/drivers/ni_mio_common.c
4651
chan -= NI_PFI(0);
drivers/comedi/drivers/ni_mio_common.c
4654
? ni_m_series_set_pfi_routing(dev, chan, source)
drivers/comedi/drivers/ni_mio_common.c
4655
: ni_old_set_pfi_routing(dev, chan, source);
drivers/comedi/drivers/ni_mio_common.c
4659
unsigned int chan,
drivers/comedi/drivers/ni_mio_common.c
4668
if (chan >= NI_PFI(0)) {
drivers/comedi/drivers/ni_mio_common.c
4670
chan -= NI_PFI(0);
drivers/comedi/drivers/ni_mio_common.c
4674
bits &= ~NI_M_PFI_FILTER_SEL_MASK(chan);
drivers/comedi/drivers/ni_mio_common.c
4675
bits |= NI_M_PFI_FILTER_SEL(chan, filter);
drivers/comedi/drivers/ni_mio_common.c
4680
static void ni_set_pfi_direction(struct comedi_device *dev, int chan,
drivers/comedi/drivers/ni_mio_common.c
4683
if (chan >= NI_PFI(0)) {
drivers/comedi/drivers/ni_mio_common.c
4685
chan -= NI_PFI(0);
drivers/comedi/drivers/ni_mio_common.c
4688
ni_set_bits(dev, NISTC_IO_BIDIR_PIN_REG, 1 << chan, direction);
drivers/comedi/drivers/ni_mio_common.c
4691
static int ni_get_pfi_direction(struct comedi_device *dev, int chan)
drivers/comedi/drivers/ni_mio_common.c
4695
if (chan >= NI_PFI(0)) {
drivers/comedi/drivers/ni_mio_common.c
4697
chan -= NI_PFI(0);
drivers/comedi/drivers/ni_mio_common.c
4699
return devpriv->io_bidirection_pin_reg & (1 << chan) ?
drivers/comedi/drivers/ni_mio_common.c
4708
unsigned int chan;
drivers/comedi/drivers/ni_mio_common.c
4713
chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ni_mio_common.c
4718
ni_set_pfi_direction(dev, chan, data[0]);
drivers/comedi/drivers/ni_mio_common.c
4721
data[1] = ni_get_pfi_direction(dev, chan);
drivers/comedi/drivers/ni_mio_common.c
4724
return ni_set_pfi_routing(dev, chan, data[1]);
drivers/comedi/drivers/ni_mio_common.c
4726
data[1] = ni_get_pfi_routing(dev, chan);
drivers/comedi/drivers/ni_mio_common.c
4729
return ni_config_pfi_filter(dev, chan, data[1]);
drivers/comedi/drivers/ni_mio_common.c
5070
unsigned int chan, unsigned int source)
drivers/comedi/drivers/ni_mio_common.c
5074
if (chan >= NISTC_RTSI_TRIG_NUM_CHAN(devpriv->is_m_series)) {
drivers/comedi/drivers/ni_mio_common.c
5075
if (chan == NISTC_RTSI_TRIG_OLD_CLK_CHAN) {
drivers/comedi/drivers/ni_mio_common.c
5081
__func__, chan, NISTC_RTSI_TRIG_OLD_CLK_CHAN);
drivers/comedi/drivers/ni_mio_common.c
5108
unsigned int chan, unsigned int src)
drivers/comedi/drivers/ni_mio_common.c
5112
if (chan >= TRIGGER_LINE(0))
drivers/comedi/drivers/ni_mio_common.c
5114
chan -= TRIGGER_LINE(0);
drivers/comedi/drivers/ni_mio_common.c
5116
if (ni_valid_rtsi_output_source(dev, chan, src) == 0)
drivers/comedi/drivers/ni_mio_common.c
5118
if (chan < 4) {
drivers/comedi/drivers/ni_mio_common.c
5119
devpriv->rtsi_trig_a_output_reg &= ~NISTC_RTSI_TRIG_MASK(chan);
drivers/comedi/drivers/ni_mio_common.c
5120
devpriv->rtsi_trig_a_output_reg |= NISTC_RTSI_TRIG(chan, src);
drivers/comedi/drivers/ni_mio_common.c
5123
} else if (chan < NISTC_RTSI_TRIG_NUM_CHAN(devpriv->is_m_series)) {
drivers/comedi/drivers/ni_mio_common.c
5124
devpriv->rtsi_trig_b_output_reg &= ~NISTC_RTSI_TRIG_MASK(chan);
drivers/comedi/drivers/ni_mio_common.c
5125
devpriv->rtsi_trig_b_output_reg |= NISTC_RTSI_TRIG(chan, src);
drivers/comedi/drivers/ni_mio_common.c
5128
} else if (chan != NISTC_RTSI_TRIG_OLD_CLK_CHAN) {
drivers/comedi/drivers/ni_mio_common.c
5140
unsigned int chan)
drivers/comedi/drivers/ni_mio_common.c
5144
if (chan >= TRIGGER_LINE(0))
drivers/comedi/drivers/ni_mio_common.c
5146
chan -= TRIGGER_LINE(0);
drivers/comedi/drivers/ni_mio_common.c
5148
if (chan < 4) {
drivers/comedi/drivers/ni_mio_common.c
5149
return NISTC_RTSI_TRIG_TO_SRC(chan,
drivers/comedi/drivers/ni_mio_common.c
5151
} else if (chan < NISTC_RTSI_TRIG_NUM_CHAN(devpriv->is_m_series)) {
drivers/comedi/drivers/ni_mio_common.c
5152
return NISTC_RTSI_TRIG_TO_SRC(chan,
drivers/comedi/drivers/ni_mio_common.c
5154
} else if (chan == NISTC_RTSI_TRIG_OLD_CLK_CHAN) {
drivers/comedi/drivers/ni_mio_common.c
5162
static void ni_set_rtsi_direction(struct comedi_device *dev, int chan,
drivers/comedi/drivers/ni_mio_common.c
5168
if (chan >= TRIGGER_LINE(0))
drivers/comedi/drivers/ni_mio_common.c
5170
chan -= TRIGGER_LINE(0);
drivers/comedi/drivers/ni_mio_common.c
5173
if (chan < max_chan) {
drivers/comedi/drivers/ni_mio_common.c
5175
NISTC_RTSI_TRIG_DIR(chan, devpriv->is_m_series);
drivers/comedi/drivers/ni_mio_common.c
5176
} else if (chan == NISTC_RTSI_TRIG_OLD_CLK_CHAN) {
drivers/comedi/drivers/ni_mio_common.c
5181
if (chan < max_chan) {
drivers/comedi/drivers/ni_mio_common.c
5183
~NISTC_RTSI_TRIG_DIR(chan, devpriv->is_m_series);
drivers/comedi/drivers/ni_mio_common.c
5184
} else if (chan == NISTC_RTSI_TRIG_OLD_CLK_CHAN) {
drivers/comedi/drivers/ni_mio_common.c
5193
static int ni_get_rtsi_direction(struct comedi_device *dev, int chan)
drivers/comedi/drivers/ni_mio_common.c
5198
if (chan >= TRIGGER_LINE(0))
drivers/comedi/drivers/ni_mio_common.c
5200
chan -= TRIGGER_LINE(0);
drivers/comedi/drivers/ni_mio_common.c
5202
if (chan < max_chan) {
drivers/comedi/drivers/ni_mio_common.c
5204
NISTC_RTSI_TRIG_DIR(chan, devpriv->is_m_series))
drivers/comedi/drivers/ni_mio_common.c
5206
} else if (chan == NISTC_RTSI_TRIG_OLD_CLK_CHAN) {
drivers/comedi/drivers/ni_mio_common.c
5220
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ni_mio_common.c
5225
ni_set_rtsi_direction(dev, chan, data[0]);
drivers/comedi/drivers/ni_mio_common.c
5228
int ret = ni_get_rtsi_direction(dev, chan);
drivers/comedi/drivers/ni_mio_common.c
5242
return ni_set_rtsi_routing(dev, chan, data[1]);
drivers/comedi/drivers/ni_mio_common.c
5244
int ret = ni_get_rtsi_routing(dev, chan);
drivers/comedi/drivers/ni_tio.c
1002
if (chan == NI_GPCT_UP_DOWN_PIN_GATE_SELECT(i)) {
drivers/comedi/drivers/ni_tio.c
1003
gate2_sel = chan & 0x1f;
drivers/comedi/drivers/ni_tio.c
1066
int chan = CR_CHAN(src) & (~NI_GPCT_DISABLED_GATE_SELECT);
drivers/comedi/drivers/ni_tio.c
1077
ret = ni_m_set_gate(counter, chan);
drivers/comedi/drivers/ni_tio.c
1080
ret = ni_660x_set_gate(counter, chan);
drivers/comedi/drivers/ni_tio.c
1099
ret = ni_m_set_gate2(counter, chan);
drivers/comedi/drivers/ni_tio.c
1102
ret = ni_660x_set_gate2(counter, chan);
drivers/comedi/drivers/ni_tio.c
898
unsigned int chan = CR_CHAN(gate_source);
drivers/comedi/drivers/ni_tio.c
902
switch (chan) {
drivers/comedi/drivers/ni_tio.c
910
gate_sel = chan & 0x1f;
drivers/comedi/drivers/ni_tio.c
914
if (chan == NI_GPCT_RTSI_GATE_SELECT(i)) {
drivers/comedi/drivers/ni_tio.c
915
gate_sel = chan & 0x1f;
drivers/comedi/drivers/ni_tio.c
922
if (chan == NI_GPCT_GATE_PIN_GATE_SELECT(i)) {
drivers/comedi/drivers/ni_tio.c
923
gate_sel = chan & 0x1f;
drivers/comedi/drivers/ni_tio.c
937
unsigned int chan = CR_CHAN(gate_source);
drivers/comedi/drivers/ni_tio.c
941
switch (chan) {
drivers/comedi/drivers/ni_tio.c
950
gate_sel = chan & 0x1f;
drivers/comedi/drivers/ni_tio.c
954
if (chan == NI_GPCT_RTSI_GATE_SELECT(i)) {
drivers/comedi/drivers/ni_tio.c
955
gate_sel = chan & 0x1f;
drivers/comedi/drivers/ni_tio.c
962
if (chan == NI_GPCT_PFI_GATE_SELECT(i)) {
drivers/comedi/drivers/ni_tio.c
963
gate_sel = chan & 0x1f;
drivers/comedi/drivers/ni_tio.c
977
unsigned int chan = CR_CHAN(gate_source);
drivers/comedi/drivers/ni_tio.c
981
switch (chan) {
drivers/comedi/drivers/ni_tio.c
987
gate2_sel = chan & 0x1f;
drivers/comedi/drivers/ni_tio.c
994
if (chan == NI_GPCT_RTSI_GATE_SELECT(i)) {
drivers/comedi/drivers/ni_tio.c
995
gate2_sel = chan & 0x1f;
drivers/comedi/drivers/pcl711.c
214
unsigned int chan = CR_CHAN(chanspec);
drivers/comedi/drivers/pcl711.c
224
chan &= 0x7;
drivers/comedi/drivers/pcl711.c
227
if (chan < 8)
drivers/comedi/drivers/pcl711.c
233
outb(mux | PCL711_MUX_CHAN(chan), dev->iobase + PCL711_MUX_REG);
drivers/comedi/drivers/pcl711.c
359
unsigned int chan, unsigned int val)
drivers/comedi/drivers/pcl711.c
361
outb(val & 0xff, dev->iobase + PCL711_AO_LSB_REG(chan));
drivers/comedi/drivers/pcl711.c
362
outb((val >> 8) & 0xff, dev->iobase + PCL711_AO_MSB_REG(chan));
drivers/comedi/drivers/pcl711.c
370
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/pcl711.c
371
unsigned int val = s->readback[chan];
drivers/comedi/drivers/pcl711.c
376
pcl711_ao_write(dev, chan, val);
drivers/comedi/drivers/pcl711.c
378
s->readback[chan] = val;
drivers/comedi/drivers/pcl726.c
244
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/pcl726.c
251
s->readback[chan] = val;
drivers/comedi/drivers/pcl726.c
254
if (comedi_chan_range_is_bipolar(s, chan, range))
drivers/comedi/drivers/pcl726.c
258
outb((val >> 8) & 0xff, dev->iobase + PCL726_AO_MSB_REG(chan));
drivers/comedi/drivers/pcl726.c
259
outb(val & 0xff, dev->iobase + PCL726_AO_LSB_REG(chan));
drivers/comedi/drivers/pcl812.c
1006
unsigned int chan;
drivers/comedi/drivers/pcl812.c
1021
for (chan = 0; chan < board->n_aochan; chan++) {
drivers/comedi/drivers/pcl812.c
1022
outb(0, dev->iobase + PCL812_AO_LSB_REG(chan));
drivers/comedi/drivers/pcl812.c
1023
outb(0, dev->iobase + PCL812_AO_MSB_REG(chan));
drivers/comedi/drivers/pcl812.c
553
comedi_isadma_disable(dma->chan);
drivers/comedi/drivers/pcl812.c
575
unsigned int chan = CR_CHAN(chanspec);
drivers/comedi/drivers/pcl812.c
588
if (chan < 8)
drivers/comedi/drivers/pcl812.c
595
outb(mux | PCL812_MUX_CHAN(chan), dev->iobase + PCL812_MUX_REG);
drivers/comedi/drivers/pcl812.c
794
unsigned int chan = s->async->cur_chan;
drivers/comedi/drivers/pcl812.c
809
if (cmd->chanlist[chan] != cmd->chanlist[next_chan])
drivers/comedi/drivers/pcl812.c
917
comedi_isadma_disable(devpriv->dma->chan);
drivers/comedi/drivers/pcl812.c
962
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/pcl812.c
963
unsigned int val = s->readback[chan];
drivers/comedi/drivers/pcl812.c
968
outb(val & 0xff, dev->iobase + PCL812_AO_LSB_REG(chan));
drivers/comedi/drivers/pcl812.c
969
outb((val >> 8) & 0x0f, dev->iobase + PCL812_AO_MSB_REG(chan));
drivers/comedi/drivers/pcl812.c
971
s->readback[chan] = val;
drivers/comedi/drivers/pcl816.c
120
comedi_isadma_disable(dma->chan);
drivers/comedi/drivers/pcl816.c
135
unsigned int chan,
drivers/comedi/drivers/pcl816.c
138
outb(chan, dev->iobase + PCL816_MUX_REG);
drivers/comedi/drivers/pcl816.c
442
outb((dma->chan << 4) | dev->irq,
drivers/comedi/drivers/pcl816.c
505
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/pcl816.c
512
pcl816_ai_set_chan_range(dev, chan, range);
drivers/comedi/drivers/pcl816.c
513
pcl816_ai_set_chan_scan(dev, chan, chan);
drivers/comedi/drivers/pcl818.c
309
comedi_isadma_disable(dma->chan);
drivers/comedi/drivers/pcl818.c
324
unsigned int chan,
drivers/comedi/drivers/pcl818.c
327
outb(chan, dev->iobase + PCL818_MUX_REG);
drivers/comedi/drivers/pcl818.c
381
unsigned int *chan)
drivers/comedi/drivers/pcl818.c
388
if (chan)
drivers/comedi/drivers/pcl818.c
389
*chan = val & 0xf;
drivers/comedi/drivers/pcl818.c
396
unsigned int *chan)
drivers/comedi/drivers/pcl818.c
403
if (chan)
drivers/comedi/drivers/pcl818.c
404
*chan = val & 0xf;
drivers/comedi/drivers/pcl818.c
424
unsigned int chan, unsigned short val)
drivers/comedi/drivers/pcl818.c
431
if (chan != expected_chan) {
drivers/comedi/drivers/pcl818.c
436
chan, expected_chan);
drivers/comedi/drivers/pcl818.c
459
unsigned int chan;
drivers/comedi/drivers/pcl818.c
468
val = pcl818_ai_get_sample(dev, s, &chan);
drivers/comedi/drivers/pcl818.c
469
pcl818_ai_write_sample(dev, s, chan, val);
drivers/comedi/drivers/pcl818.c
480
unsigned int chan;
drivers/comedi/drivers/pcl818.c
490
chan = val & 0xf;
drivers/comedi/drivers/pcl818.c
492
if (!pcl818_ai_write_sample(dev, s, chan, val))
drivers/comedi/drivers/pcl818.c
501
unsigned int chan;
drivers/comedi/drivers/pcl818.c
526
val = pcl818_ai_get_fifo_sample(dev, s, &chan);
drivers/comedi/drivers/pcl818.c
527
if (!pcl818_ai_write_sample(dev, s, chan, val))
drivers/comedi/drivers/pcl818.c
780
comedi_isadma_disable(dma->chan);
drivers/comedi/drivers/pcl818.c
803
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/pcl818.c
810
pcl818_ai_set_chan_range(dev, chan, range);
drivers/comedi/drivers/pcl818.c
811
pcl818_ai_set_chan_scan(dev, chan, chan);
drivers/comedi/drivers/pcl818.c
833
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/pcl818.c
834
unsigned int val = s->readback[chan];
drivers/comedi/drivers/pcl818.c
840
dev->iobase + PCL818_AO_LSB_REG(chan));
drivers/comedi/drivers/pcl818.c
842
dev->iobase + PCL818_AO_MSB_REG(chan));
drivers/comedi/drivers/pcl818.c
844
s->readback[chan] = val;
drivers/comedi/drivers/pcl818.c
878
unsigned int chan;
drivers/comedi/drivers/pcl818.c
897
for (chan = 0; chan < board->n_aochan; chan++) {
drivers/comedi/drivers/pcl818.c
898
outb(0, dev->iobase + PCL818_AO_LSB_REG(chan));
drivers/comedi/drivers/pcl818.c
899
outb(0, dev->iobase + PCL818_AO_MSB_REG(chan));
drivers/comedi/drivers/pcm3724.c
163
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/pcm3724.c
167
if (chan < 8)
drivers/comedi/drivers/pcm3724.c
169
else if (chan < 16)
drivers/comedi/drivers/pcm3724.c
171
else if (chan < 20)
drivers/comedi/drivers/pcmad.c
72
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/pcmad.c
79
outb(chan, dev->iobase + PCMAD_CONVERT);
drivers/comedi/drivers/pcmda12.c
64
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/pcmda12.c
65
unsigned int val = s->readback[chan];
drivers/comedi/drivers/pcmda12.c
66
unsigned long ioreg = dev->iobase + (chan * 2);
drivers/comedi/drivers/pcmda12.c
81
s->readback[chan] = val;
drivers/comedi/drivers/pcmmio.c
340
unsigned int chan = CR_CHAN(cmd->chanlist[i]);
drivers/comedi/drivers/pcmmio.c
342
if (triggered & (1 << chan))
drivers/comedi/drivers/pcmmio.c
394
unsigned int chan = CR_CHAN(chanspec);
drivers/comedi/drivers/pcmmio.c
398
bits |= (1 << chan);
drivers/comedi/drivers/pcmmio.c
399
pol_bits |= (((aref || range) ? 1 : 0) << chan);
drivers/comedi/drivers/pcmmio.c
535
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/pcmmio.c
558
if (chan > 7) {
drivers/comedi/drivers/pcmmio.c
559
chan -= 8;
drivers/comedi/drivers/pcmmio.c
565
if (chan % 2)
drivers/comedi/drivers/pcmmio.c
567
cmd |= PCMMIO_AI_CMD_CHAN_SEL(chan / 2);
drivers/comedi/drivers/pcmmio.c
618
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/pcmmio.c
629
if (chan > 3) {
drivers/comedi/drivers/pcmmio.c
630
cmd |= PCMMIO_AO_CMD_CHAN_SEL(chan - 4);
drivers/comedi/drivers/pcmmio.c
633
cmd |= PCMMIO_AO_CMD_CHAN_SEL(chan);
drivers/comedi/drivers/pcmmio.c
658
s->readback[chan] = val;
drivers/comedi/drivers/pcmuio.c
319
unsigned int chan = CR_CHAN(cmd->chanlist[i]);
drivers/comedi/drivers/pcmuio.c
321
if (triggered & (1 << chan))
drivers/comedi/drivers/pcmuio.c
390
unsigned int chan = CR_CHAN(chanspec);
drivers/comedi/drivers/pcmuio.c
394
bits |= (1 << chan);
drivers/comedi/drivers/pcmuio.c
395
pol_bits |= ((aref || range) ? 1 : 0) << chan;
drivers/comedi/drivers/quatech_daqp_cs.c
264
unsigned int chan = CR_CHAN(chanspec);
drivers/comedi/drivers/quatech_daqp_cs.c
269
val = DAQP_SCANLIST_CHANNEL(chan) | DAQP_SCANLIST_GAIN(range);
drivers/comedi/drivers/quatech_daqp_cs.c
636
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/quatech_daqp_cs.c
655
outw((chan << 12) | comedi_offset_munge(s, val),
drivers/comedi/drivers/quatech_daqp_cs.c
658
s->readback[chan] = val;
drivers/comedi/drivers/rtd520.c
1013
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/rtd520.c
1019
writew(range & 7, dev->mmio + LAS0_DAC_CTRL(chan));
drivers/comedi/drivers/rtd520.c
1033
writew(val, devpriv->las1 + LAS1_DAC_FIFO(chan));
drivers/comedi/drivers/rtd520.c
1034
writew(0, dev->mmio + LAS0_UPDATE_DAC(chan));
drivers/comedi/drivers/rtd520.c
1040
s->readback[chan] = data[i];
drivers/comedi/drivers/rtd520.c
1092
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/rtd520.c
1108
max_src = (chan == 0) ? 3 : 4;
drivers/comedi/drivers/rtd520.c
1112
devpriv->timer_gate_src[chan] = src;
drivers/comedi/drivers/rtd520.c
1113
writeb(src, dev->mmio + LAS0_8254_GATE_SEL(chan));
drivers/comedi/drivers/rtd520.c
1116
data[2] = devpriv->timer_gate_src[chan];
drivers/comedi/drivers/rtd520.c
1130
switch (chan) {
drivers/comedi/drivers/rtd520.c
1146
devpriv->timer_clk_src[chan] = src;
drivers/comedi/drivers/rtd520.c
1147
writeb(src, dev->mmio + LAS0_8254_CLK_SEL(chan));
drivers/comedi/drivers/rtd520.c
1150
src = devpriv->timer_clk_src[chan];
drivers/comedi/drivers/rtd520.c
1151
data[1] = devpriv->timer_clk_src[chan];
drivers/comedi/drivers/rtd520.c
417
unsigned int chan = CR_CHAN(chanspec);
drivers/comedi/drivers/rtd520.c
422
r |= chan & 0xf;
drivers/comedi/drivers/rtd520.c
997
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/rtd520.c
998
unsigned int bit = (chan == 0) ? FS_DAC1_NOT_EMPTY : FS_DAC2_NOT_EMPTY;
drivers/comedi/drivers/rti800.c
156
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/rti800.c
165
muxgain_bits = chan | (gain << 5);
drivers/comedi/drivers/rti800.c
209
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/rti800.c
210
int reg_lo = chan ? RTI800_DAC1LO : RTI800_DAC0LO;
drivers/comedi/drivers/rti800.c
211
int reg_hi = chan ? RTI800_DAC1HI : RTI800_DAC0HI;
drivers/comedi/drivers/rti800.c
217
s->readback[chan] = val;
drivers/comedi/drivers/rti800.c
219
if (devpriv->dac_2comp[chan])
drivers/comedi/drivers/rti802.c
47
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/rti802.c
50
outb(chan, dev->iobase + RTI802_SELECT);
drivers/comedi/drivers/rti802.c
55
s->readback[chan] = val;
drivers/comedi/drivers/rti802.c
58
if (devpriv->dac_coding[chan] == dac_2comp)
drivers/comedi/drivers/s526.c
176
unsigned int chan, unsigned int val)
drivers/comedi/drivers/s526.c
179
outw((val >> 16) & 0xffff, dev->iobase + S526_GPCT_MSB_REG(chan));
drivers/comedi/drivers/s526.c
180
outw(val & 0xffff, dev->iobase + S526_GPCT_LSB_REG(chan));
drivers/comedi/drivers/s526.c
184
unsigned int chan)
drivers/comedi/drivers/s526.c
189
val = inw(dev->iobase + S526_GPCT_LSB_REG(chan)) & 0xffff;
drivers/comedi/drivers/s526.c
190
val |= (inw(dev->iobase + S526_GPCT_MSB_REG(chan)) & 0xff) << 16;
drivers/comedi/drivers/s526.c
200
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/s526.c
204
data[i] = s526_gpct_read(dev, chan);
drivers/comedi/drivers/s526.c
215
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/s526.c
230
devpriv->gpct_config[chan] = data[0];
drivers/comedi/drivers/s526.c
235
outw(val, dev->iobase + S526_GPCT_MODE_REG(chan));
drivers/comedi/drivers/s526.c
242
dev->iobase + S526_GPCT_CTRL_REG(chan));
drivers/comedi/drivers/s526.c
276
outw(val, dev->iobase + S526_GPCT_MODE_REG(chan));
drivers/comedi/drivers/s526.c
279
s526_gpct_write(dev, chan, data[2]);
drivers/comedi/drivers/s526.c
284
dev->iobase + S526_GPCT_CTRL_REG(chan));
drivers/comedi/drivers/s526.c
291
dev->iobase + S526_GPCT_CTRL_REG(chan));
drivers/comedi/drivers/s526.c
294
dev->iobase + S526_GPCT_CTRL_REG(chan));
drivers/comedi/drivers/s526.c
307
devpriv->gpct_config[chan] = data[0];
drivers/comedi/drivers/s526.c
314
outw(val, dev->iobase + S526_GPCT_MODE_REG(chan));
drivers/comedi/drivers/s526.c
317
s526_gpct_write(dev, chan, data[2]);
drivers/comedi/drivers/s526.c
324
outw(val, dev->iobase + S526_GPCT_MODE_REG(chan));
drivers/comedi/drivers/s526.c
327
s526_gpct_write(dev, chan, data[3]);
drivers/comedi/drivers/s526.c
332
outw(val, dev->iobase + S526_GPCT_CTRL_REG(chan));
drivers/comedi/drivers/s526.c
344
devpriv->gpct_config[chan] = data[0];
drivers/comedi/drivers/s526.c
351
outw(val, dev->iobase + S526_GPCT_MODE_REG(chan));
drivers/comedi/drivers/s526.c
354
s526_gpct_write(dev, chan, data[2]);
drivers/comedi/drivers/s526.c
361
outw(val, dev->iobase + S526_GPCT_MODE_REG(chan));
drivers/comedi/drivers/s526.c
364
s526_gpct_write(dev, chan, data[3]);
drivers/comedi/drivers/s526.c
369
outw(val, dev->iobase + S526_GPCT_CTRL_REG(chan));
drivers/comedi/drivers/s526.c
386
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/s526.c
388
inw(dev->iobase + S526_GPCT_MODE_REG(chan)); /* Is this required? */
drivers/comedi/drivers/s526.c
391
switch (devpriv->gpct_config[chan]) {
drivers/comedi/drivers/s526.c
406
s526_gpct_write(dev, chan, data[0]);
drivers/comedi/drivers/s526.c
438
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/s526.c
444
ctrl = S526_AI_CTRL_CONV(chan) | S526_AI_CTRL_READ(chan) |
drivers/comedi/drivers/s526.c
477
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/s526.c
478
unsigned int ctrl = S526_AO_CTRL_CHAN(chan);
drivers/comedi/drivers/s526.c
479
unsigned int val = s->readback[chan];
drivers/comedi/drivers/s526.c
496
s->readback[chan] = val;
drivers/comedi/drivers/s526.c
519
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/s526.c
527
if (chan < 4)
drivers/comedi/drivers/s626.c
1002
s626_debi_write(dev, S626_LP_CRB(chan),
drivers/comedi/drivers/s626.c
1004
s626_debi_write(dev, S626_LP_CRB(chan), crb);
drivers/comedi/drivers/s626.c
1013
static int s626_dio_set_irq(struct comedi_device *dev, unsigned int chan)
drivers/comedi/drivers/s626.c
1015
unsigned int group = chan / 16;
drivers/comedi/drivers/s626.c
1016
unsigned int mask = 1 << (chan - (16 * group));
drivers/comedi/drivers/s626.c
1489
u16 chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/s626.c
1502
adc_spec = (chan << 8) | (S626_GSEL_BIPOLAR5V);
drivers/comedi/drivers/s626.c
1504
adc_spec = (chan << 8) | (S626_GSEL_BIPOLAR10V);
drivers/comedi/drivers/s626.c
1650
unsigned int chan, int tick)
drivers/comedi/drivers/s626.c
1668
s626_set_mode(dev, chan, setup, false);
drivers/comedi/drivers/s626.c
1671
s626_preload(dev, chan, tick);
drivers/comedi/drivers/s626.c
1677
s626_set_load_trig(dev, chan, 0);
drivers/comedi/drivers/s626.c
1678
s626_pulse_index(dev, chan);
drivers/comedi/drivers/s626.c
1681
s626_set_load_trig(dev, chan, 1);
drivers/comedi/drivers/s626.c
1684
s626_set_int_src(dev, chan, S626_INTSRC_OVER);
drivers/comedi/drivers/s626.c
1686
s626_set_latch_source(dev, chan, value_latchsrc);
drivers/comedi/drivers/s626.c
1924
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/s626.c
1933
ret = s626_set_dac(dev, chan, dacdata);
drivers/comedi/drivers/s626.c
1937
s->readback[chan] = data[i];
drivers/comedi/drivers/s626.c
2016
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/s626.c
2037
s626_set_mode(dev, chan, setup, true);
drivers/comedi/drivers/s626.c
2038
s626_preload(dev, chan, data[0]);
drivers/comedi/drivers/s626.c
2039
s626_pulse_index(dev, chan);
drivers/comedi/drivers/s626.c
2040
s626_set_latch_source(dev, chan, value_latchsrc);
drivers/comedi/drivers/s626.c
2041
s626_set_enable(dev, chan, (enab != 0));
drivers/comedi/drivers/s626.c
2051
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/s626.c
2052
u16 cntr_latch_reg = S626_LP_CNTR(chan);
drivers/comedi/drivers/s626.c
2074
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/s626.c
2077
s626_preload(dev, chan, data[0]);
drivers/comedi/drivers/s626.c
2083
s626_set_load_trig(dev, chan, 0);
drivers/comedi/drivers/s626.c
2084
s626_pulse_index(dev, chan);
drivers/comedi/drivers/s626.c
2085
s626_set_load_trig(dev, chan, 2);
drivers/comedi/drivers/s626.c
2099
int chan;
drivers/comedi/drivers/s626.c
2117
for (chan = 0; chan < S626_ENCODER_CHANNELS; chan++) {
drivers/comedi/drivers/s626.c
2118
s626_set_mode(dev, chan, setup, true);
drivers/comedi/drivers/s626.c
2119
s626_set_int_src(dev, chan, 0);
drivers/comedi/drivers/s626.c
2120
s626_reset_cap_flags(dev, chan);
drivers/comedi/drivers/s626.c
2121
s626_set_enable(dev, chan, S626_CLKENAB_ALWAYS);
drivers/comedi/drivers/s626.c
2171
u16 chan;
drivers/comedi/drivers/s626.c
2393
for (chan = 0; chan < S626_DAC_CHANNELS; chan++) {
drivers/comedi/drivers/s626.c
2394
ret = s626_set_dac(dev, chan, 0);
drivers/comedi/drivers/s626.c
515
u16 chan, int16_t dacdata)
drivers/comedi/drivers/s626.c
525
signmask = 1 << chan;
drivers/comedi/drivers/s626.c
549
ws_image = (chan & 2) ? S626_WS1 : S626_WS2;
drivers/comedi/drivers/s626.c
576
val |= ((u32)(chan & 1) << 15); /* Address the DAC channel
drivers/comedi/drivers/s626.c
587
u32 chan;
drivers/comedi/drivers/s626.c
596
chan = s626_trimchan[logical_chan];
drivers/comedi/drivers/s626.c
630
return s626_send_dac(dev, (chan << 8) | dac_data);
drivers/comedi/drivers/s626.c
663
unsigned int chan, u16 value)
drivers/comedi/drivers/s626.c
665
s626_debi_replace(dev, S626_LP_CRB(chan),
drivers/comedi/drivers/s626.c
674
unsigned int chan, u32 value)
drivers/comedi/drivers/s626.c
676
s626_debi_write(dev, S626_LP_CNTR(chan), value);
drivers/comedi/drivers/s626.c
677
s626_debi_write(dev, S626_LP_CNTR(chan) + 2, value >> 16);
drivers/comedi/drivers/s626.c
686
unsigned int chan)
drivers/comedi/drivers/s626.c
691
if (chan < 3)
drivers/comedi/drivers/s626.c
696
s626_debi_replace(dev, S626_LP_CRB(chan), ~S626_CRBMSK_INTCTRL, set);
drivers/comedi/drivers/s626.c
706
unsigned int chan, u16 setup,
drivers/comedi/drivers/s626.c
770
devpriv->counter_int_enabs &= ~(S626_OVERMASK(chan) |
drivers/comedi/drivers/s626.c
771
S626_INDXMASK(chan));
drivers/comedi/drivers/s626.c
777
s626_debi_replace(dev, S626_LP_CRA(chan),
drivers/comedi/drivers/s626.c
779
s626_debi_replace(dev, S626_LP_CRB(chan),
drivers/comedi/drivers/s626.c
784
unsigned int chan, u16 setup,
drivers/comedi/drivers/s626.c
855
devpriv->counter_int_enabs &= ~(S626_OVERMASK(chan) |
drivers/comedi/drivers/s626.c
856
S626_INDXMASK(chan));
drivers/comedi/drivers/s626.c
862
s626_debi_replace(dev, S626_LP_CRA(chan),
drivers/comedi/drivers/s626.c
864
s626_debi_replace(dev, S626_LP_CRB(chan),
drivers/comedi/drivers/s626.c
869
unsigned int chan,
drivers/comedi/drivers/s626.c
872
if (chan < 3)
drivers/comedi/drivers/s626.c
873
s626_set_mode_a(dev, chan, setup, disable_int_src);
drivers/comedi/drivers/s626.c
875
s626_set_mode_b(dev, chan, setup, disable_int_src);
drivers/comedi/drivers/s626.c
882
unsigned int chan, u16 enab)
drivers/comedi/drivers/s626.c
887
if (chan < 3) {
drivers/comedi/drivers/s626.c
894
s626_debi_replace(dev, S626_LP_CRB(chan), ~mask, set);
drivers/comedi/drivers/s626.c
903
unsigned int chan, u16 trig)
drivers/comedi/drivers/s626.c
909
if (chan < 3) {
drivers/comedi/drivers/s626.c
910
reg = S626_LP_CRA(chan);
drivers/comedi/drivers/s626.c
914
reg = S626_LP_CRB(chan);
drivers/comedi/drivers/s626.c
927
unsigned int chan, u16 int_source)
drivers/comedi/drivers/s626.c
930
u16 cra_reg = S626_LP_CRA(chan);
drivers/comedi/drivers/s626.c
931
u16 crb_reg = S626_LP_CRB(chan);
drivers/comedi/drivers/s626.c
933
if (chan < 3) {
drivers/comedi/drivers/s626.c
961
devpriv->counter_int_enabs &= ~(S626_OVERMASK(chan) |
drivers/comedi/drivers/s626.c
962
S626_INDXMASK(chan));
drivers/comedi/drivers/s626.c
968
devpriv->counter_int_enabs |= S626_OVERMASK(chan);
drivers/comedi/drivers/s626.c
971
devpriv->counter_int_enabs |= S626_INDXMASK(chan);
drivers/comedi/drivers/s626.c
974
devpriv->counter_int_enabs |= (S626_OVERMASK(chan) |
drivers/comedi/drivers/s626.c
975
S626_INDXMASK(chan));
drivers/comedi/drivers/s626.c
984
unsigned int chan)
drivers/comedi/drivers/s626.c
986
if (chan < 3) {
drivers/comedi/drivers/s626.c
989
cra = s626_debi_read(dev, S626_LP_CRA(chan));
drivers/comedi/drivers/s626.c
992
s626_debi_write(dev, S626_LP_CRA(chan),
drivers/comedi/drivers/s626.c
994
s626_debi_write(dev, S626_LP_CRA(chan), cra);
drivers/comedi/drivers/s626.c
998
crb = s626_debi_read(dev, S626_LP_CRB(chan));
drivers/comedi/drivers/ssv_dnp.c
110
mask = 1 << ((chan - 16) * 2);
drivers/comedi/drivers/ssv_dnp.c
85
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/ssv_dnp.c
94
if (chan < 8) { /* Port A */
drivers/comedi/drivers/ssv_dnp.c
95
mask = 1 << chan;
drivers/comedi/drivers/ssv_dnp.c
97
} else if (chan < 16) { /* Port B */
drivers/comedi/drivers/ssv_dnp.c
98
mask = 1 << (chan - 8);
drivers/comedi/drivers/usbdux.c
1058
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/usbdux.c
1072
data[i] = le16_to_cpu(devpriv->insn_buf[chan + 1]);
drivers/comedi/drivers/usbdux.c
1087
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/usbdux.c
1094
devpriv->dux_commands[1] = chan;
drivers/comedi/drivers/usbdux.c
1275
unsigned int chan,
drivers/comedi/drivers/usbdux.c
1280
char pwm_mask = (1 << chan); /* DIO bit for the PWM data */
drivers/comedi/drivers/usbdux.c
1281
char sgn_mask = (16 << chan); /* DIO bit for the sign */
drivers/comedi/drivers/usbdux.c
1305
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/usbdux.c
1318
usbdux_pwm_pattern(dev, s, chan, data[0], 0);
drivers/comedi/drivers/usbdux.c
1329
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/usbdux.c
1355
usbdux_pwm_pattern(dev, s, chan, data[1], (data[2] != 0));
drivers/comedi/drivers/usbdux.c
391
unsigned int chan = CR_CHAN(cmd->chanlist[i]);
drivers/comedi/drivers/usbdux.c
403
*datap++ = chan << 6;
drivers/comedi/drivers/usbdux.c
404
s->readback[chan] = val;
drivers/comedi/drivers/usbdux.c
586
static u8 create_adc_command(unsigned int chan, unsigned int range)
drivers/comedi/drivers/usbdux.c
591
return (chan << 4) | ((p == 1) << 2) | ((r == 1) << 3);
drivers/comedi/drivers/usbdux.c
675
unsigned int chan = CR_CHAN(cmd->chanlist[i]);
drivers/comedi/drivers/usbdux.c
678
devpriv->dux_commands[i + 2] = create_adc_command(chan, range);
drivers/comedi/drivers/usbdux.c
741
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/usbdux.c
753
devpriv->dux_commands[1] = create_adc_command(chan, range);
drivers/comedi/drivers/usbdux.c
801
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/usbdux.c
814
devpriv->dux_commands[4] = chan << 6;
drivers/comedi/drivers/usbdux.c
826
s->readback[chan] = val;
drivers/comedi/drivers/usbduxfast.c
332
unsigned int chan = CR_CHAN(cmd->chanlist[i]);
drivers/comedi/drivers/usbduxfast.c
335
if (chan != i) {
drivers/comedi/drivers/usbduxfast.c
767
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/usbduxfast.c
830
for (j = chan; (j < n) && (i < insn->n); j = j + 16) {
drivers/comedi/drivers/usbduxsigma.c
1118
unsigned int chan,
drivers/comedi/drivers/usbduxsigma.c
1123
char pwm_mask = (1 << chan); /* DIO bit for the PWM data */
drivers/comedi/drivers/usbduxsigma.c
1124
char sgn_mask = (16 << chan); /* DIO bit for the sign */
drivers/comedi/drivers/usbduxsigma.c
1148
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/usbduxsigma.c
1161
usbduxsigma_pwm_pattern(dev, s, chan, data[0], 0);
drivers/comedi/drivers/usbduxsigma.c
1172
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/usbduxsigma.c
1198
usbduxsigma_pwm_pattern(dev, s, chan, data[1], (data[2] != 0));
drivers/comedi/drivers/usbduxsigma.c
1207
static int usbduxsigma_getstatusinfo(struct comedi_device *dev, int chan)
drivers/comedi/drivers/usbduxsigma.c
1215
switch (chan) {
drivers/comedi/drivers/usbduxsigma.c
351
unsigned int chan = CR_CHAN(cmd->chanlist[i]);
drivers/comedi/drivers/usbduxsigma.c
361
*datap++ = chan;
drivers/comedi/drivers/usbduxsigma.c
362
s->readback[chan] = val;
drivers/comedi/drivers/usbduxsigma.c
544
static void create_adc_command(unsigned int chan,
drivers/comedi/drivers/usbduxsigma.c
547
if (chan < 8)
drivers/comedi/drivers/usbduxsigma.c
548
(*muxsg0) = (*muxsg0) | (1 << chan);
drivers/comedi/drivers/usbduxsigma.c
549
else if (chan < 16)
drivers/comedi/drivers/usbduxsigma.c
550
(*muxsg1) = (*muxsg1) | (1 << (chan - 8));
drivers/comedi/drivers/usbduxsigma.c
650
unsigned int chan = CR_CHAN(cmd->chanlist[i]);
drivers/comedi/drivers/usbduxsigma.c
652
create_adc_command(chan, &muxsg0, &muxsg1);
drivers/comedi/drivers/usbduxsigma.c
698
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/usbduxsigma.c
711
create_adc_command(chan, &muxsg0, &muxsg1);
drivers/comedi/drivers/usbduxsigma.c
769
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/usbduxsigma.c
782
devpriv->dux_commands[3] = chan; /* channel number */
drivers/comedi/drivers/usbduxsigma.c
788
s->readback[chan] = data[i];
drivers/comedi/drivers/vmk80xx.c
240
int chan;
drivers/comedi/drivers/vmk80xx.c
245
chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/vmk80xx.c
249
if (!chan)
drivers/comedi/drivers/vmk80xx.c
259
devpriv->usb_tx_buf[VMK8061_CH_REG] = chan;
drivers/comedi/drivers/vmk80xx.c
288
int chan;
drivers/comedi/drivers/vmk80xx.c
294
chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/vmk80xx.c
299
if (!chan)
drivers/comedi/drivers/vmk80xx.c
307
devpriv->usb_tx_buf[VMK8061_CH_REG] = chan;
drivers/comedi/drivers/vmk80xx.c
329
int chan;
drivers/comedi/drivers/vmk80xx.c
334
chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/vmk80xx.c
344
data[n] = devpriv->usb_rx_buf[reg + chan];
drivers/comedi/drivers/vmk80xx.c
441
int chan;
drivers/comedi/drivers/vmk80xx.c
446
chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/vmk80xx.c
450
if (!chan)
drivers/comedi/drivers/vmk80xx.c
470
data[n] = devpriv->usb_rx_buf[reg[0] * (chan + 1) + 1]
drivers/comedi/drivers/vmk80xx.c
485
unsigned int chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/vmk80xx.c
494
if (!chan) {
drivers/comedi/drivers/vmk80xx.c
524
int chan;
drivers/comedi/drivers/vmk80xx.c
529
chan = CR_CHAN(insn->chanspec);
drivers/comedi/drivers/vmk80xx.c
531
if (!chan)
drivers/comedi/drivers/vmk80xx.c
549
devpriv->usb_tx_buf[6 + chan] = val;
drivers/comedi/kcomedilib/kcomedilib_main.c
240
unsigned int chan, unsigned int *io)
drivers/comedi/kcomedilib/kcomedilib_main.c
250
insn.chanspec = CR_PACK(chan, 0, 0);
drivers/comedi/kcomedilib/kcomedilib_main.c
261
unsigned int chan, unsigned int io)
drivers/comedi/kcomedilib/kcomedilib_main.c
269
insn.chanspec = CR_PACK(chan, 0, 0);
drivers/comedi/range.c
110
int chan, range_len, i;
drivers/comedi/range.c
114
chan = CR_CHAN(chanspec);
drivers/comedi/range.c
117
else if (s->range_table_list && chan < s->n_chan)
drivers/comedi/range.c
118
range_len = s->range_table_list[chan]->length;
drivers/comedi/range.c
121
if (chan >= s->n_chan ||
drivers/comedi/range.c
125
i, chanspec, chan, range_len);
drivers/comedi/range.c
51
int subd, chan;
drivers/comedi/range.c
56
chan = (it->range_type >> 16) & 0xff;
drivers/comedi/range.c
66
if (chan >= s->n_chan)
drivers/comedi/range.c
68
lr = s->range_table_list[chan];
drivers/crypto/allwinner/sun8i-ce/sun8i-ce-cipher.c
356
struct sun8i_ce_flow *chan;
drivers/crypto/allwinner/sun8i-ce/sun8i-ce-cipher.c
359
chan = &ce->chanlist[rctx->flow];
drivers/crypto/allwinner/sun8i-ce/sun8i-ce-cipher.c
361
err = sun8i_ce_cipher_prepare(req, chan->tl);
drivers/crypto/allwinner/sun8i-ce/sun8i-ce-cipher.c
368
sun8i_ce_cipher_unprepare(req, chan->tl);
drivers/crypto/allwinner/sun8i-ce/sun8i-ce-core.c
172
static void sun8i_ce_dump_task_descriptors(struct sun8i_ce_flow *chan)
drivers/crypto/allwinner/sun8i-ce/sun8i-ce-core.c
175
chan->tl, sizeof(struct ce_task), false);
drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c
464
struct sun8i_ce_flow *chan;
drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c
467
chan = &ce->chanlist[rctx->flow];
drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c
469
err = sun8i_ce_hash_prepare(areq, chan->tl);
drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c
475
sun8i_ce_hash_unprepare(areq, chan->tl);
drivers/crypto/allwinner/sun8i-ce/sun8i-ce-prng.c
116
chan = &ce->chanlist[flow];
drivers/crypto/allwinner/sun8i-ce/sun8i-ce-prng.c
118
cet = &chan->tl[0];
drivers/crypto/allwinner/sun8i-ce/sun8i-ce-prng.c
66
struct sun8i_ce_flow *chan;
drivers/crypto/allwinner/sun8i-ce/sun8i-ce-trng.c
30
struct sun8i_ce_flow *chan;
drivers/crypto/allwinner/sun8i-ce/sun8i-ce-trng.c
62
chan = &ce->chanlist[flow];
drivers/crypto/allwinner/sun8i-ce/sun8i-ce-trng.c
64
cet = &chan->tl[0];
drivers/crypto/atmel-aes.c
164
struct dma_chan *chan;
drivers/crypto/atmel-aes.c
2141
dd->src.chan = dma_request_chan(dd->dev, "tx");
drivers/crypto/atmel-aes.c
2142
if (IS_ERR(dd->src.chan)) {
drivers/crypto/atmel-aes.c
2143
ret = PTR_ERR(dd->src.chan);
drivers/crypto/atmel-aes.c
2147
dd->dst.chan = dma_request_chan(dd->dev, "rx");
drivers/crypto/atmel-aes.c
2148
if (IS_ERR(dd->dst.chan)) {
drivers/crypto/atmel-aes.c
2149
ret = PTR_ERR(dd->dst.chan);
drivers/crypto/atmel-aes.c
2156
dma_release_channel(dd->src.chan);
drivers/crypto/atmel-aes.c
2164
dma_release_channel(dd->dst.chan);
drivers/crypto/atmel-aes.c
2165
dma_release_channel(dd->src.chan);
drivers/crypto/atmel-aes.c
2414
dma_chan_name(aes_dd->src.chan),
drivers/crypto/atmel-aes.c
2415
dma_chan_name(aes_dd->dst.chan));
drivers/crypto/atmel-aes.c
822
err = dmaengine_slave_config(dma->chan, &config);
drivers/crypto/atmel-aes.c
826
desc = dmaengine_prep_slave_sg(dma->chan, dma->sg, dma->sg_len, dir,
drivers/crypto/atmel-aes.c
834
dma_async_issue_pending(dma->chan);
drivers/crypto/atmel-aes.c
881
dmaengine_terminate_sync(dd->dst.chan);
drivers/crypto/atmel-sha.c
122
struct dma_chan *chan;
drivers/crypto/atmel-sha.c
1440
struct dma_chan *chan = dma->chan;
drivers/crypto/atmel-sha.c
1461
err = dmaengine_slave_config(chan, config);
drivers/crypto/atmel-sha.c
1465
desc = dmaengine_prep_slave_sg(chan, dma->sg, sg_len, DMA_MEM_TO_DEV,
drivers/crypto/atmel-sha.c
1479
dma_async_issue_pending(chan);
drivers/crypto/atmel-sha.c
2485
dd->dma_lch_in.chan = dma_request_chan(dd->dev, "tx");
drivers/crypto/atmel-sha.c
2486
if (IS_ERR(dd->dma_lch_in.chan)) {
drivers/crypto/atmel-sha.c
2487
return dev_err_probe(dd->dev, PTR_ERR(dd->dma_lch_in.chan),
drivers/crypto/atmel-sha.c
2506
dma_release_channel(dd->dma_lch_in.chan);
drivers/crypto/atmel-sha.c
2632
dma_chan_name(sha_dd->dma_lch_in.chan));
drivers/crypto/atmel-sha.c
642
dmaengine_slave_config(dd->dma_lch_in.chan, &dd->dma_lch_in.dma_conf);
drivers/crypto/atmel-sha.c
650
in_desc = dmaengine_prep_slave_sg(dd->dma_lch_in.chan, sg, 2,
drivers/crypto/atmel-sha.c
656
in_desc = dmaengine_prep_slave_sg(dd->dma_lch_in.chan, sg, 1,
drivers/crypto/atmel-sha.c
679
dma_async_issue_pending(dd->dma_lch_in.chan);
drivers/crypto/atmel-tdes.c
1011
dma_chan_name(tdes_dd->dma_lch_in.chan),
drivers/crypto/atmel-tdes.c
1012
dma_chan_name(tdes_dd->dma_lch_out.chan));
drivers/crypto/atmel-tdes.c
414
dmaengine_slave_config(dd->dma_lch_in.chan, &dd->dma_lch_in.dma_conf);
drivers/crypto/atmel-tdes.c
415
dmaengine_slave_config(dd->dma_lch_out.chan, &dd->dma_lch_out.dma_conf);
drivers/crypto/atmel-tdes.c
427
in_desc = dmaengine_prep_slave_sg(dd->dma_lch_in.chan, &sg[0],
drivers/crypto/atmel-tdes.c
433
out_desc = dmaengine_prep_slave_sg(dd->dma_lch_out.chan, &sg[1],
drivers/crypto/atmel-tdes.c
443
dma_async_issue_pending(dd->dma_lch_out.chan);
drivers/crypto/atmel-tdes.c
446
dma_async_issue_pending(dd->dma_lch_in.chan);
drivers/crypto/atmel-tdes.c
672
dd->dma_lch_in.chan = dma_request_chan(dd->dev, "tx");
drivers/crypto/atmel-tdes.c
673
if (IS_ERR(dd->dma_lch_in.chan)) {
drivers/crypto/atmel-tdes.c
674
ret = PTR_ERR(dd->dma_lch_in.chan);
drivers/crypto/atmel-tdes.c
688
dd->dma_lch_out.chan = dma_request_chan(dd->dev, "rx");
drivers/crypto/atmel-tdes.c
689
if (IS_ERR(dd->dma_lch_out.chan)) {
drivers/crypto/atmel-tdes.c
690
ret = PTR_ERR(dd->dma_lch_out.chan);
drivers/crypto/atmel-tdes.c
707
dma_release_channel(dd->dma_lch_in.chan);
drivers/crypto/atmel-tdes.c
715
dma_release_channel(dd->dma_lch_in.chan);
drivers/crypto/atmel-tdes.c
716
dma_release_channel(dd->dma_lch_out.chan);
drivers/crypto/atmel-tdes.c
79
struct dma_chan *chan;
drivers/crypto/ccp/ccp-dmaengine.c
100
ccp_free_desc_resources(chan->ccp, &chan->created);
drivers/crypto/ccp/ccp-dmaengine.c
102
spin_unlock_irqrestore(&chan->lock, flags);
drivers/crypto/ccp/ccp-dmaengine.c
126
struct ccp_dma_chan *chan = (struct ccp_dma_chan *)data;
drivers/crypto/ccp/ccp-dmaengine.c
129
dev_dbg(chan->ccp->dev, "%s - chan=%s\n", __func__,
drivers/crypto/ccp/ccp-dmaengine.c
130
dma_chan_name(&chan->dma_chan));
drivers/crypto/ccp/ccp-dmaengine.c
132
spin_lock_irqsave(&chan->lock, flags);
drivers/crypto/ccp/ccp-dmaengine.c
134
ccp_cleanup_desc_resources(chan->ccp, &chan->complete);
drivers/crypto/ccp/ccp-dmaengine.c
136
spin_unlock_irqrestore(&chan->lock, flags);
drivers/crypto/ccp/ccp-dmaengine.c
176
static struct ccp_dma_desc *__ccp_next_dma_desc(struct ccp_dma_chan *chan,
drivers/crypto/ccp/ccp-dmaengine.c
181
list_move(&desc->entry, &chan->complete);
drivers/crypto/ccp/ccp-dmaengine.c
184
desc = list_first_entry_or_null(&chan->active, struct ccp_dma_desc,
drivers/crypto/ccp/ccp-dmaengine.c
190
static struct ccp_dma_desc *ccp_handle_active_desc(struct ccp_dma_chan *chan,
drivers/crypto/ccp/ccp-dmaengine.c
217
spin_lock_irqsave(&chan->lock, flags);
drivers/crypto/ccp/ccp-dmaengine.c
231
desc = __ccp_next_dma_desc(chan, desc);
drivers/crypto/ccp/ccp-dmaengine.c
233
spin_unlock_irqrestore(&chan->lock, flags);
drivers/crypto/ccp/ccp-dmaengine.c
245
static struct ccp_dma_desc *__ccp_pending_to_active(struct ccp_dma_chan *chan)
drivers/crypto/ccp/ccp-dmaengine.c
249
if (list_empty(&chan->pending))
drivers/crypto/ccp/ccp-dmaengine.c
252
desc = list_empty(&chan->active)
drivers/crypto/ccp/ccp-dmaengine.c
253
? list_first_entry(&chan->pending, struct ccp_dma_desc, entry)
drivers/crypto/ccp/ccp-dmaengine.c
256
list_splice_tail_init(&chan->pending, &chan->active);
drivers/crypto/ccp/ccp-dmaengine.c
264
struct ccp_dma_chan *chan;
drivers/crypto/ccp/ccp-dmaengine.c
270
chan = container_of(desc->tx_desc.chan, struct ccp_dma_chan,
drivers/crypto/ccp/ccp-dmaengine.c
273
dev_dbg(chan->ccp->dev, "%s - tx %d callback, err=%d\n",
drivers/crypto/ccp/ccp-dmaengine.c
281
desc = ccp_handle_active_desc(chan, desc);
drivers/crypto/ccp/ccp-dmaengine.c
284
if (!desc || (chan->status == DMA_PAUSED))
drivers/crypto/ccp/ccp-dmaengine.c
294
tasklet_schedule(&chan->cleanup_tasklet);
drivers/crypto/ccp/ccp-dmaengine.c
301
struct ccp_dma_chan *chan;
drivers/crypto/ccp/ccp-dmaengine.c
305
chan = container_of(tx_desc->chan, struct ccp_dma_chan, dma_chan);
drivers/crypto/ccp/ccp-dmaengine.c
307
spin_lock_irqsave(&chan->lock, flags);
drivers/crypto/ccp/ccp-dmaengine.c
310
list_move_tail(&desc->entry, &chan->pending);
drivers/crypto/ccp/ccp-dmaengine.c
312
spin_unlock_irqrestore(&chan->lock, flags);
drivers/crypto/ccp/ccp-dmaengine.c
314
dev_dbg(chan->ccp->dev, "%s - added tx descriptor %d to pending list\n",
drivers/crypto/ccp/ccp-dmaengine.c
320
static struct ccp_dma_cmd *ccp_alloc_dma_cmd(struct ccp_dma_chan *chan)
drivers/crypto/ccp/ccp-dmaengine.c
324
cmd = kmem_cache_alloc(chan->ccp->dma_cmd_cache, GFP_NOWAIT);
drivers/crypto/ccp/ccp-dmaengine.c
331
static struct ccp_dma_desc *ccp_alloc_dma_desc(struct ccp_dma_chan *chan,
drivers/crypto/ccp/ccp-dmaengine.c
336
desc = kmem_cache_zalloc(chan->ccp->dma_desc_cache, GFP_NOWAIT);
drivers/crypto/ccp/ccp-dmaengine.c
340
dma_async_tx_descriptor_init(&desc->tx_desc, &chan->dma_chan);
drivers/crypto/ccp/ccp-dmaengine.c
343
desc->ccp = chan->ccp;
drivers/crypto/ccp/ccp-dmaengine.c
359
struct ccp_dma_chan *chan = container_of(dma_chan, struct ccp_dma_chan,
drivers/crypto/ccp/ccp-dmaengine.c
361
struct ccp_device *ccp = chan->ccp;
drivers/crypto/ccp/ccp-dmaengine.c
378
desc = ccp_alloc_dma_desc(chan, flags);
drivers/crypto/ccp/ccp-dmaengine.c
421
cmd = ccp_alloc_dma_cmd(chan);
drivers/crypto/ccp/ccp-dmaengine.c
426
ccp_cmd->ccp = chan->ccp;
drivers/crypto/ccp/ccp-dmaengine.c
463
spin_lock_irqsave(&chan->lock, sflags);
drivers/crypto/ccp/ccp-dmaengine.c
465
list_add_tail(&desc->entry, &chan->created);
drivers/crypto/ccp/ccp-dmaengine.c
467
spin_unlock_irqrestore(&chan->lock, sflags);
drivers/crypto/ccp/ccp-dmaengine.c
482
struct ccp_dma_chan *chan = container_of(dma_chan, struct ccp_dma_chan,
drivers/crypto/ccp/ccp-dmaengine.c
487
dev_dbg(chan->ccp->dev,
drivers/crypto/ccp/ccp-dmaengine.c
509
struct ccp_dma_chan *chan = container_of(dma_chan, struct ccp_dma_chan,
drivers/crypto/ccp/ccp-dmaengine.c
513
desc = ccp_alloc_dma_desc(chan, flags);
drivers/crypto/ccp/ccp-dmaengine.c
522
struct ccp_dma_chan *chan = container_of(dma_chan, struct ccp_dma_chan,
drivers/crypto/ccp/ccp-dmaengine.c
527
dev_dbg(chan->ccp->dev, "%s\n", __func__);
drivers/crypto/ccp/ccp-dmaengine.c
529
spin_lock_irqsave(&chan->lock, flags);
drivers/crypto/ccp/ccp-dmaengine.c
531
desc = __ccp_pending_to_active(chan);
drivers/crypto/ccp/ccp-dmaengine.c
533
spin_unlock_irqrestore(&chan->lock, flags);
drivers/crypto/ccp/ccp-dmaengine.c
544
struct ccp_dma_chan *chan = container_of(dma_chan, struct ccp_dma_chan,
drivers/crypto/ccp/ccp-dmaengine.c
550
if (chan->status == DMA_PAUSED) {
drivers/crypto/ccp/ccp-dmaengine.c
557
spin_lock_irqsave(&chan->lock, flags);
drivers/crypto/ccp/ccp-dmaengine.c
560
list_for_each_entry(desc, &chan->complete, entry) {
drivers/crypto/ccp/ccp-dmaengine.c
568
spin_unlock_irqrestore(&chan->lock, flags);
drivers/crypto/ccp/ccp-dmaengine.c
572
dev_dbg(chan->ccp->dev, "%s - %u\n", __func__, ret);
drivers/crypto/ccp/ccp-dmaengine.c
579
struct ccp_dma_chan *chan = container_of(dma_chan, struct ccp_dma_chan,
drivers/crypto/ccp/ccp-dmaengine.c
582
chan->status = DMA_PAUSED;
drivers/crypto/ccp/ccp-dmaengine.c
591
struct ccp_dma_chan *chan = container_of(dma_chan, struct ccp_dma_chan,
drivers/crypto/ccp/ccp-dmaengine.c
596
spin_lock_irqsave(&chan->lock, flags);
drivers/crypto/ccp/ccp-dmaengine.c
598
desc = list_first_entry_or_null(&chan->active, struct ccp_dma_desc,
drivers/crypto/ccp/ccp-dmaengine.c
601
spin_unlock_irqrestore(&chan->lock, flags);
drivers/crypto/ccp/ccp-dmaengine.c
604
chan->status = DMA_IN_PROGRESS;
drivers/crypto/ccp/ccp-dmaengine.c
615
struct ccp_dma_chan *chan = container_of(dma_chan, struct ccp_dma_chan,
drivers/crypto/ccp/ccp-dmaengine.c
619
dev_dbg(chan->ccp->dev, "%s\n", __func__);
drivers/crypto/ccp/ccp-dmaengine.c
623
spin_lock_irqsave(&chan->lock, flags);
drivers/crypto/ccp/ccp-dmaengine.c
626
ccp_free_desc_resources(chan->ccp, &chan->active);
drivers/crypto/ccp/ccp-dmaengine.c
627
ccp_free_desc_resources(chan->ccp, &chan->pending);
drivers/crypto/ccp/ccp-dmaengine.c
628
ccp_free_desc_resources(chan->ccp, &chan->created);
drivers/crypto/ccp/ccp-dmaengine.c
630
spin_unlock_irqrestore(&chan->lock, flags);
drivers/crypto/ccp/ccp-dmaengine.c
637
struct ccp_dma_chan *chan;
drivers/crypto/ccp/ccp-dmaengine.c
642
chan = ccp->ccp_dma_chan + i;
drivers/crypto/ccp/ccp-dmaengine.c
643
dma_chan = &chan->dma_chan;
drivers/crypto/ccp/ccp-dmaengine.c
645
tasklet_kill(&chan->cleanup_tasklet);
drivers/crypto/ccp/ccp-dmaengine.c
652
struct ccp_dma_chan *chan;
drivers/crypto/ccp/ccp-dmaengine.c
657
chan = ccp->ccp_dma_chan + i;
drivers/crypto/ccp/ccp-dmaengine.c
658
dma_chan = &chan->dma_chan;
drivers/crypto/ccp/ccp-dmaengine.c
667
struct ccp_dma_chan *chan;
drivers/crypto/ccp/ccp-dmaengine.c
733
chan = ccp->ccp_dma_chan + i;
drivers/crypto/ccp/ccp-dmaengine.c
734
dma_chan = &chan->dma_chan;
drivers/crypto/ccp/ccp-dmaengine.c
736
chan->ccp = ccp;
drivers/crypto/ccp/ccp-dmaengine.c
738
spin_lock_init(&chan->lock);
drivers/crypto/ccp/ccp-dmaengine.c
739
INIT_LIST_HEAD(&chan->created);
drivers/crypto/ccp/ccp-dmaengine.c
740
INIT_LIST_HEAD(&chan->pending);
drivers/crypto/ccp/ccp-dmaengine.c
741
INIT_LIST_HEAD(&chan->active);
drivers/crypto/ccp/ccp-dmaengine.c
742
INIT_LIST_HEAD(&chan->complete);
drivers/crypto/ccp/ccp-dmaengine.c
744
tasklet_init(&chan->cleanup_tasklet, ccp_do_cleanup,
drivers/crypto/ccp/ccp-dmaengine.c
745
(unsigned long)chan);
drivers/crypto/ccp/ccp-dmaengine.c
89
struct ccp_dma_chan *chan = container_of(dma_chan, struct ccp_dma_chan,
drivers/crypto/ccp/ccp-dmaengine.c
93
dev_dbg(chan->ccp->dev, "%s - chan=%p\n", __func__, chan);
drivers/crypto/ccp/ccp-dmaengine.c
95
spin_lock_irqsave(&chan->lock, flags);
drivers/crypto/ccp/ccp-dmaengine.c
97
ccp_free_desc_resources(chan->ccp, &chan->complete);
drivers/crypto/ccp/ccp-dmaengine.c
98
ccp_free_desc_resources(chan->ccp, &chan->active);
drivers/crypto/ccp/ccp-dmaengine.c
99
ccp_free_desc_resources(chan->ccp, &chan->pending);
drivers/crypto/mxs-dcp.c
180
const int chan = actx->chan;
drivers/crypto/mxs-dcp.c
183
struct dcp_dma_desc *desc = &sdcp->coh->desc[actx->chan];
drivers/crypto/mxs-dcp.c
191
reinit_completion(&sdcp->completion[chan]);
drivers/crypto/mxs-dcp.c
194
writel(0xffffffff, sdcp->base + MXS_DCP_CH_N_STAT_CLR(chan));
drivers/crypto/mxs-dcp.c
197
writel(desc_phys, sdcp->base + MXS_DCP_CH_N_CMDPTR(chan));
drivers/crypto/mxs-dcp.c
200
writel(1, sdcp->base + MXS_DCP_CH_N_SEMA(chan));
drivers/crypto/mxs-dcp.c
202
ret = wait_for_completion_timeout(&sdcp->completion[chan],
drivers/crypto/mxs-dcp.c
206
chan, readl(sdcp->base + MXS_DCP_STAT));
drivers/crypto/mxs-dcp.c
210
stat = readl(sdcp->base + MXS_DCP_CH_N_STAT(chan));
drivers/crypto/mxs-dcp.c
213
chan, stat);
drivers/crypto/mxs-dcp.c
230
struct dcp_dma_desc *desc = &sdcp->coh->desc[actx->chan];
drivers/crypto/mxs-dcp.c
413
const int chan = DCP_CHAN_CRYPTO;
drivers/crypto/mxs-dcp.c
423
spin_lock(&sdcp->lock[chan]);
drivers/crypto/mxs-dcp.c
424
backlog = crypto_get_backlog(&sdcp->queue[chan]);
drivers/crypto/mxs-dcp.c
425
arq = crypto_dequeue_request(&sdcp->queue[chan]);
drivers/crypto/mxs-dcp.c
426
spin_unlock(&sdcp->lock[chan]);
drivers/crypto/mxs-dcp.c
481
actx->chan = DCP_CHAN_CRYPTO;
drivers/crypto/mxs-dcp.c
483
spin_lock(&sdcp->lock[actx->chan]);
drivers/crypto/mxs-dcp.c
484
ret = crypto_enqueue_request(&sdcp->queue[actx->chan], &req->base);
drivers/crypto/mxs-dcp.c
485
spin_unlock(&sdcp->lock[actx->chan]);
drivers/crypto/mxs-dcp.c
487
wake_up_process(sdcp->thread[actx->chan]);
drivers/crypto/mxs-dcp.c
607
struct dcp_dma_desc *desc = &sdcp->coh->desc[actx->chan];
drivers/crypto/mxs-dcp.c
744
const int chan = DCP_CHAN_HASH_SHA;
drivers/crypto/mxs-dcp.c
753
spin_lock(&sdcp->lock[chan]);
drivers/crypto/mxs-dcp.c
754
backlog = crypto_get_backlog(&sdcp->queue[chan]);
drivers/crypto/mxs-dcp.c
755
arq = crypto_dequeue_request(&sdcp->queue[chan]);
drivers/crypto/mxs-dcp.c
756
spin_unlock(&sdcp->lock[chan]);
drivers/crypto/mxs-dcp.c
797
actx->chan = DCP_CHAN_HASH_SHA;
drivers/crypto/mxs-dcp.c
830
spin_lock(&sdcp->lock[actx->chan]);
drivers/crypto/mxs-dcp.c
831
ret = crypto_enqueue_request(&sdcp->queue[actx->chan], &req->base);
drivers/crypto/mxs-dcp.c
832
spin_unlock(&sdcp->lock[actx->chan]);
drivers/crypto/mxs-dcp.c
834
wake_up_process(sdcp->thread[actx->chan]);
drivers/crypto/mxs-dcp.c
93
enum dcp_chan chan;
drivers/crypto/qce/dma.c
83
static int qce_dma_prep_sg(struct dma_chan *chan, struct scatterlist *sg,
drivers/crypto/qce/dma.c
94
desc = dmaengine_prep_slave_sg(chan, sg, nents, dir, flags);
drivers/crypto/stm32/stm32-cryp.c
2220
struct dma_chan *chan;
drivers/crypto/stm32/stm32-cryp.c
2231
chan = dma_request_chan(cryp->dev, "in");
drivers/crypto/stm32/stm32-cryp.c
2232
if (IS_ERR(chan))
drivers/crypto/stm32/stm32-cryp.c
2233
return PTR_ERR(chan);
drivers/crypto/stm32/stm32-cryp.c
2235
cryp->dma_lch_in = chan;
drivers/crypto/stm32/stm32-cryp.c
2252
chan = dma_request_chan(cryp->dev, "out");
drivers/crypto/stm32/stm32-cryp.c
2253
if (IS_ERR(chan)) {
drivers/crypto/stm32/stm32-cryp.c
2256
return PTR_ERR(chan);
drivers/crypto/stm32/stm32-cryp.c
2259
cryp->dma_lch_out = chan;
drivers/crypto/stm32/stm32-hash.c
625
struct dma_chan *chan;
drivers/crypto/stm32/stm32-hash.c
637
chan = dma_request_chan(hdev->dev, "in");
drivers/crypto/stm32/stm32-hash.c
638
if (IS_ERR(chan))
drivers/crypto/stm32/stm32-hash.c
639
return PTR_ERR(chan);
drivers/crypto/stm32/stm32-hash.c
641
hdev->dma_lch = chan;
drivers/crypto/talitos.c
145
setbits32(priv->chan[ch].reg + TALITOS_CCCR_LO,
drivers/crypto/talitos.c
148
while ((in_be32(priv->chan[ch].reg + TALITOS_CCCR_LO) &
drivers/crypto/talitos.c
152
setbits32(priv->chan[ch].reg + TALITOS_CCCR,
drivers/crypto/talitos.c
155
while ((in_be32(priv->chan[ch].reg + TALITOS_CCCR) &
drivers/crypto/talitos.c
166
setbits32(priv->chan[ch].reg + TALITOS_CCCR_LO, TALITOS_CCCR_LO_EAE |
drivers/crypto/talitos.c
170
setbits32(priv->chan[ch].reg + TALITOS_CCCR_LO,
drivers/crypto/talitos.c
175
setbits32(priv->chan[ch].reg + TALITOS_CCCR_LO,
drivers/crypto/talitos.c
320
spin_lock_irqsave(&priv->chan[ch].head_lock, flags);
drivers/crypto/talitos.c
322
if (!atomic_inc_not_zero(&priv->chan[ch].submit_count)) {
drivers/crypto/talitos.c
324
spin_unlock_irqrestore(&priv->chan[ch].head_lock, flags);
drivers/crypto/talitos.c
328
head = priv->chan[ch].head;
drivers/crypto/talitos.c
329
request = &priv->chan[ch].fifo[head];
drivers/crypto/talitos.c
337
priv->chan[ch].head = (priv->chan[ch].head + 1) & (priv->fifo_len - 1);
drivers/crypto/talitos.c
3419
priv = devm_kzalloc(dev, struct_size(priv, chan, num_channels), GFP_KERNEL);
drivers/crypto/talitos.c
344
out_be32(priv->chan[ch].reg + TALITOS_FF,
drivers/crypto/talitos.c
346
out_be32(priv->chan[ch].reg + TALITOS_FF_LO,
drivers/crypto/talitos.c
349
spin_unlock_irqrestore(&priv->chan[ch].head_lock, flags);
drivers/crypto/talitos.c
3518
priv->chan[i].reg = priv->reg + stride * (i + 1);
drivers/crypto/talitos.c
3520
priv->chan[i].reg += TALITOS_CH_BASE_OFFSET;
drivers/crypto/talitos.c
3522
spin_lock_init(&priv->chan[i].head_lock);
drivers/crypto/talitos.c
3523
spin_lock_init(&priv->chan[i].tail_lock);
drivers/crypto/talitos.c
3525
priv->chan[i].fifo = devm_kcalloc(dev,
drivers/crypto/talitos.c
3529
if (!priv->chan[i].fifo) {
drivers/crypto/talitos.c
3535
atomic_set(&priv->chan[i].submit_count,
drivers/crypto/talitos.c
412
spin_lock_irqsave(&priv->chan[ch].tail_lock, flags);
drivers/crypto/talitos.c
414
tail = priv->chan[ch].tail;
drivers/crypto/talitos.c
415
while (priv->chan[ch].fifo[tail].desc) {
drivers/crypto/talitos.c
418
request = &priv->chan[ch].fifo[tail];
drivers/crypto/talitos.c
444
priv->chan[ch].tail = (tail + 1) & (priv->fifo_len - 1);
drivers/crypto/talitos.c
446
spin_unlock_irqrestore(&priv->chan[ch].tail_lock, flags);
drivers/crypto/talitos.c
448
atomic_dec(&priv->chan[ch].submit_count);
drivers/crypto/talitos.c
455
spin_lock_irqsave(&priv->chan[ch].tail_lock, flags);
drivers/crypto/talitos.c
456
tail = priv->chan[ch].tail;
drivers/crypto/talitos.c
459
spin_unlock_irqrestore(&priv->chan[ch].tail_lock, flags);
drivers/crypto/talitos.c
551
cur_desc = ((u64)in_be32(priv->chan[ch].reg + TALITOS_CDPR)) << 32;
drivers/crypto/talitos.c
552
cur_desc |= in_be32(priv->chan[ch].reg + TALITOS_CDPR_LO);
drivers/crypto/talitos.c
559
tail = priv->chan[ch].tail;
drivers/crypto/talitos.c
562
request = &priv->chan[ch].fifo[iter];
drivers/crypto/talitos.c
586
desc_hdr = cpu_to_be32(in_be32(priv->chan[ch].reg + TALITOS_DESCBUF));
drivers/crypto/talitos.c
648
in_be32(priv->chan[ch].reg + TALITOS_DESCBUF + 8*i),
drivers/crypto/talitos.c
649
in_be32(priv->chan[ch].reg + TALITOS_DESCBUF_LO + 8*i));
drivers/crypto/talitos.c
677
v_lo = in_be32(priv->chan[ch].reg + TALITOS_CCPSR_LO);
drivers/crypto/talitos.c
720
setbits32(priv->chan[ch].reg + TALITOS_CCCR,
drivers/crypto/talitos.c
722
setbits32(priv->chan[ch].reg + TALITOS_CCCR_LO, 0);
drivers/crypto/talitos.c
723
while ((in_be32(priv->chan[ch].reg + TALITOS_CCCR) &
drivers/crypto/talitos.h
167
struct talitos_channel chan[] __counted_by(num_channels);
drivers/dma/acpi-dma.c
359
struct dma_chan *chan = NULL;
drivers/dma/acpi-dma.c
390
chan = adma->acpi_dma_xlate(dma_spec, adma);
drivers/dma/acpi-dma.c
396
if (found > 0 || chan)
drivers/dma/acpi-dma.c
401
return chan ? chan : ERR_PTR(-EPROBE_DEFER);
drivers/dma/altera-msgdma.c
201
#define to_mdev(chan) container_of(chan, struct msgdma_device, dmachan)
drivers/dma/altera-msgdma.c
306
struct msgdma_device *mdev = to_mdev(tx->chan);
drivers/dma/altera-msgdma.c
573
static void msgdma_issue_pending(struct dma_chan *chan)
drivers/dma/altera-msgdma.c
575
struct msgdma_device *mdev = to_mdev(chan);
drivers/dma/amba-pl08x.c
1511
struct pl08x_dma_chan *plchan = to_pl08x_chan(vd->tx.chan);
drivers/dma/amba-pl08x.c
1532
static void pl08x_free_chan_resources(struct dma_chan *chan)
drivers/dma/amba-pl08x.c
1535
vchan_free_chan_resources(to_virt_chan(chan));
drivers/dma/amba-pl08x.c
1543
static enum dma_status pl08x_dma_tx_status(struct dma_chan *chan,
drivers/dma/amba-pl08x.c
1546
struct pl08x_dma_chan *plchan = to_pl08x_chan(chan);
drivers/dma/amba-pl08x.c
1552
ret = dma_cookie_status(chan, cookie, txstate);
drivers/dma/amba-pl08x.c
1567
ret = dma_cookie_status(chan, cookie, txstate);
drivers/dma/amba-pl08x.c
1731
static void pl08x_issue_pending(struct dma_chan *chan)
drivers/dma/amba-pl08x.c
1733
struct pl08x_dma_chan *plchan = to_pl08x_chan(chan);
drivers/dma/amba-pl08x.c
1882
struct dma_chan *chan, dma_addr_t dest, dma_addr_t src,
drivers/dma/amba-pl08x.c
1885
struct pl08x_dma_chan *plchan = to_pl08x_chan(chan);
drivers/dma/amba-pl08x.c
1929
struct dma_chan *chan,
drivers/dma/amba-pl08x.c
1933
struct pl08x_dma_chan *plchan = to_pl08x_chan(chan);
drivers/dma/amba-pl08x.c
2042
struct dma_chan *chan, struct scatterlist *sgl,
drivers/dma/amba-pl08x.c
2046
struct pl08x_dma_chan *plchan = to_pl08x_chan(chan);
drivers/dma/amba-pl08x.c
2056
txd = pl08x_init_txd(chan, direction, &slave_addr);
drivers/dma/amba-pl08x.c
2084
struct dma_chan *chan, dma_addr_t buf_addr, size_t buf_len,
drivers/dma/amba-pl08x.c
2088
struct pl08x_dma_chan *plchan = to_pl08x_chan(chan);
drivers/dma/amba-pl08x.c
2100
txd = pl08x_init_txd(chan, direction, &slave_addr);
drivers/dma/amba-pl08x.c
2126
static int pl08x_config(struct dma_chan *chan,
drivers/dma/amba-pl08x.c
2129
struct pl08x_dma_chan *plchan = to_pl08x_chan(chan);
drivers/dma/amba-pl08x.c
2152
static int pl08x_terminate_all(struct dma_chan *chan)
drivers/dma/amba-pl08x.c
2154
struct pl08x_dma_chan *plchan = to_pl08x_chan(chan);
drivers/dma/amba-pl08x.c
2186
static void pl08x_synchronize(struct dma_chan *chan)
drivers/dma/amba-pl08x.c
2188
struct pl08x_dma_chan *plchan = to_pl08x_chan(chan);
drivers/dma/amba-pl08x.c
2193
static int pl08x_pause(struct dma_chan *chan)
drivers/dma/amba-pl08x.c
2195
struct pl08x_dma_chan *plchan = to_pl08x_chan(chan);
drivers/dma/amba-pl08x.c
2216
static int pl08x_resume(struct dma_chan *chan)
drivers/dma/amba-pl08x.c
2218
struct pl08x_dma_chan *plchan = to_pl08x_chan(chan);
drivers/dma/amba-pl08x.c
2239
bool pl08x_filter_id(struct dma_chan *chan, void *chan_id)
drivers/dma/amba-pl08x.c
2245
if (chan->device->dev->driver != &pl08x_amba_driver.drv)
drivers/dma/amba-pl08x.c
2248
plchan = to_pl08x_chan(chan);
drivers/dma/amba-pl08x.c
2258
static bool pl08x_filter_fn(struct dma_chan *chan, void *chan_id)
drivers/dma/amba-pl08x.c
2260
struct pl08x_dma_chan *plchan = to_pl08x_chan(chan);
drivers/dma/amba-pl08x.c
2349
static void pl08x_dma_slave_init(struct pl08x_dma_chan *chan)
drivers/dma/amba-pl08x.c
2351
chan->slave = true;
drivers/dma/amba-pl08x.c
2352
chan->name = chan->cd->bus_id;
drivers/dma/amba-pl08x.c
2353
chan->cfg.src_addr = chan->cd->addr;
drivers/dma/amba-pl08x.c
2354
chan->cfg.dst_addr = chan->cd->addr;
drivers/dma/amba-pl08x.c
2364
struct pl08x_dma_chan *chan;
drivers/dma/amba-pl08x.c
2375
chan = kzalloc_obj(*chan);
drivers/dma/amba-pl08x.c
2376
if (!chan)
drivers/dma/amba-pl08x.c
2379
chan->host = pl08x;
drivers/dma/amba-pl08x.c
2380
chan->state = PL08X_CHAN_IDLE;
drivers/dma/amba-pl08x.c
2381
chan->signal = -1;
drivers/dma/amba-pl08x.c
2384
chan->cd = &pl08x->pd->slave_channels[i];
drivers/dma/amba-pl08x.c
2390
chan->signal = i;
drivers/dma/amba-pl08x.c
2391
pl08x_dma_slave_init(chan);
drivers/dma/amba-pl08x.c
2393
chan->cd = kzalloc_obj(*chan->cd);
drivers/dma/amba-pl08x.c
2394
if (!chan->cd) {
drivers/dma/amba-pl08x.c
2395
kfree(chan);
drivers/dma/amba-pl08x.c
2398
chan->cd->bus_id = "memcpy";
drivers/dma/amba-pl08x.c
2399
chan->cd->periph_buses = pl08x->pd->mem_buses;
drivers/dma/amba-pl08x.c
2400
chan->name = kasprintf(GFP_KERNEL, "memcpy%d", i);
drivers/dma/amba-pl08x.c
2401
if (!chan->name) {
drivers/dma/amba-pl08x.c
2402
kfree(chan->cd);
drivers/dma/amba-pl08x.c
2403
kfree(chan);
drivers/dma/amba-pl08x.c
2409
chan->name);
drivers/dma/amba-pl08x.c
2411
chan->vc.desc_free = pl08x_desc_free;
drivers/dma/amba-pl08x.c
2412
vchan_init(&chan->vc, dmadev);
drivers/dma/amba-pl08x.c
2421
struct pl08x_dma_chan *chan = NULL;
drivers/dma/amba-pl08x.c
2424
list_for_each_entry_safe(chan,
drivers/dma/amba-pl08x.c
2425
next, &dmadev->channels, vc.chan.device_node) {
drivers/dma/amba-pl08x.c
2426
list_del(&chan->vc.chan.device_node);
drivers/dma/amba-pl08x.c
2427
kfree(chan);
drivers/dma/amba-pl08x.c
2452
struct pl08x_dma_chan *chan;
drivers/dma/amba-pl08x.c
2479
list_for_each_entry(chan, &pl08x->memcpy.channels, vc.chan.device_node) {
drivers/dma/amba-pl08x.c
2480
seq_printf(s, "%s\t\t%s\n", chan->name,
drivers/dma/amba-pl08x.c
2481
pl08x_state_str(chan->state));
drivers/dma/amba-pl08x.c
2488
list_for_each_entry(chan, &pl08x->slave.channels,
drivers/dma/amba-pl08x.c
2489
vc.chan.device_node) {
drivers/dma/amba-pl08x.c
2490
seq_printf(s, "%s\t\t%s\n", chan->name,
drivers/dma/amba-pl08x.c
2491
pl08x_state_str(chan->state));
drivers/dma/amba-pl08x.c
2517
struct pl08x_dma_chan *chan;
drivers/dma/amba-pl08x.c
2523
list_for_each_entry(chan, &pl08x->slave.channels, vc.chan.device_node) {
drivers/dma/amba-pl08x.c
2524
if (chan->signal == id)
drivers/dma/amba-pl08x.c
2525
return &chan->vc.chan;
drivers/dma/amba-pl08x.c
315
static inline struct pl08x_dma_chan *to_pl08x_chan(struct dma_chan *chan)
drivers/dma/amba-pl08x.c
317
return container_of(chan, struct pl08x_dma_chan, vc.chan);
drivers/dma/amba-pl08x.c
917
list_for_each_entry(p, &pl08x->memcpy.channels, vc.chan.device_node)
drivers/dma/amba-pl08x.c
925
list_for_each_entry(p, &pl08x->slave.channels, vc.chan.device_node)
drivers/dma/amd/ptdma/ptdma-dmaengine.c
105
ae4cmd_q = &ae4->ae4cmd_q[chan->id];
drivers/dma/amd/ptdma/ptdma-dmaengine.c
161
static int pt_dma_start_desc(struct pt_dma_desc *desc, struct pt_dma_chan *chan)
drivers/dma/amd/ptdma/ptdma-dmaengine.c
173
cmd_q = pt_get_cmd_queue(pt, chan);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
188
static struct pt_dma_desc *pt_next_dma_desc(struct pt_dma_chan *chan)
drivers/dma/amd/ptdma/ptdma-dmaengine.c
191
struct virt_dma_desc *vd = vchan_next_desc(&chan->vc);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
196
static struct pt_dma_desc *pt_handle_active_desc(struct pt_dma_chan *chan,
drivers/dma/amd/ptdma/ptdma-dmaengine.c
204
pt = chan->pt;
drivers/dma/amd/ptdma/ptdma-dmaengine.c
220
spin_lock_irqsave(&chan->vc.lock, flags);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
236
desc = pt_next_dma_desc(chan);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
238
spin_unlock_irqrestore(&chan->vc.lock, flags);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
266
struct pt_dma_chan *chan;
drivers/dma/amd/ptdma/ptdma-dmaengine.c
274
dma_chan = desc->vd.tx.chan;
drivers/dma/amd/ptdma/ptdma-dmaengine.c
275
chan = to_pt_chan(dma_chan);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
276
pt = chan->pt;
drivers/dma/amd/ptdma/ptdma-dmaengine.c
284
ae4cmd_q = &ae4->ae4cmd_q[chan->id];
drivers/dma/amd/ptdma/ptdma-dmaengine.c
303
desc = pt_handle_active_desc(chan, desc);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
309
ret = pt_dma_start_desc(desc, chan);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
317
static struct pt_dma_desc *pt_alloc_dma_desc(struct pt_dma_chan *chan,
drivers/dma/amd/ptdma/ptdma-dmaengine.c
322
desc = kmem_cache_zalloc(chan->pt->dma_desc_cache, GFP_NOWAIT);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
326
vchan_tx_prep(&chan->vc, &desc->vd, flags);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
328
desc->pt = chan->pt;
drivers/dma/amd/ptdma/ptdma-dmaengine.c
342
struct pt_dma_chan *chan;
drivers/dma/amd/ptdma/ptdma-dmaengine.c
348
dma_chan = desc->vd.tx.chan;
drivers/dma/amd/ptdma/ptdma-dmaengine.c
349
chan = to_pt_chan(dma_chan);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
360
spin_lock_irqsave(&chan->vc.lock, flags);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
370
spin_unlock_irqrestore(&chan->vc.lock, flags);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
386
struct pt_dma_chan *chan = to_pt_chan(dma_chan);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
388
struct pt_device *pt = chan->pt;
drivers/dma/amd/ptdma/ptdma-dmaengine.c
394
desc = pt_alloc_dma_desc(chan, flags);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
413
ae4cmd_q = &ae4->ae4cmd_q[chan->id];
drivers/dma/amd/ptdma/ptdma-dmaengine.c
438
struct pt_dma_chan *chan = to_pt_chan(dma_chan);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
441
desc = pt_alloc_dma_desc(chan, flags);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
450
struct pt_dma_chan *chan = to_pt_chan(dma_chan);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
456
pt = chan->pt;
drivers/dma/amd/ptdma/ptdma-dmaengine.c
458
spin_lock_irqsave(&chan->vc.lock, flags);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
460
desc = pt_next_dma_desc(chan);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
464
vchan_issue_pending(&chan->vc);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
466
desc = pt_next_dma_desc(chan);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
468
spin_unlock_irqrestore(&chan->vc.lock, flags);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
488
struct pt_dma_chan *chan = to_pt_chan(c);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
489
struct pt_device *pt = chan->pt;
drivers/dma/amd/ptdma/ptdma-dmaengine.c
492
cmd_q = pt_get_cmd_queue(pt, chan);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
504
struct pt_dma_chan *chan = to_pt_chan(dma_chan);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
505
struct pt_device *pt = chan->pt;
drivers/dma/amd/ptdma/ptdma-dmaengine.c
509
spin_lock_irqsave(&chan->vc.lock, flags);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
510
cmd_q = pt_get_cmd_queue(pt, chan);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
512
spin_unlock_irqrestore(&chan->vc.lock, flags);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
519
struct pt_dma_chan *chan = to_pt_chan(dma_chan);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
521
struct pt_device *pt = chan->pt;
drivers/dma/amd/ptdma/ptdma-dmaengine.c
525
spin_lock_irqsave(&chan->vc.lock, flags);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
526
cmd_q = pt_get_cmd_queue(pt, chan);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
528
desc = pt_next_dma_desc(chan);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
529
spin_unlock_irqrestore(&chan->vc.lock, flags);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
540
struct pt_dma_chan *chan = to_pt_chan(dma_chan);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
541
struct pt_device *pt = chan->pt;
drivers/dma/amd/ptdma/ptdma-dmaengine.c
546
cmd_q = pt_get_cmd_queue(pt, chan);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
552
spin_lock_irqsave(&chan->vc.lock, flags);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
553
vchan_get_all_descriptors(&chan->vc, &head);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
554
spin_unlock_irqrestore(&chan->vc.lock, flags);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
556
vchan_dma_desc_free_list(&chan->vc, &head);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
557
vchan_free_chan_resources(&chan->vc);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
567
struct pt_dma_chan *chan;
drivers/dma/amd/ptdma/ptdma-dmaengine.c
625
chan = pt->pt_dma_chan + i;
drivers/dma/amd/ptdma/ptdma-dmaengine.c
627
chan->id = ae4cmd_q->id;
drivers/dma/amd/ptdma/ptdma-dmaengine.c
628
chan->pt = pt;
drivers/dma/amd/ptdma/ptdma-dmaengine.c
629
chan->vc.desc_free = pt_do_cleanup;
drivers/dma/amd/ptdma/ptdma-dmaengine.c
630
vchan_init(&chan->vc, dma_dev);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
633
chan = pt->pt_dma_chan;
drivers/dma/amd/ptdma/ptdma-dmaengine.c
634
chan->pt = pt;
drivers/dma/amd/ptdma/ptdma-dmaengine.c
635
chan->vc.desc_free = pt_do_cleanup;
drivers/dma/amd/ptdma/ptdma-dmaengine.c
636
vchan_init(&chan->vc, dma_dev);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
67
return container_of(dma_chan, struct pt_dma_chan, vc.chan);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
77
struct pt_dma_chan *chan = to_pt_chan(dma_chan);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
79
vchan_free_chan_resources(&chan->vc);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
84
struct pt_dma_chan *chan = to_pt_chan(dma_chan);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
86
vchan_synchronize(&chan->vc);
drivers/dma/amd/ptdma/ptdma-dmaengine.c
97
static struct pt_cmd_queue *pt_get_cmd_queue(struct pt_device *pt, struct pt_dma_chan *chan)
drivers/dma/amd/qdma/qdma.c
28
static inline struct qdma_queue *to_qdma_queue(struct dma_chan *chan)
drivers/dma/amd/qdma/qdma.c
30
return container_of(chan, struct qdma_queue, vchan.chan);
drivers/dma/amd/qdma/qdma.c
541
static void qdma_free_queue_resources(struct dma_chan *chan)
drivers/dma/amd/qdma/qdma.c
543
struct qdma_queue *queue = to_qdma_queue(chan);
drivers/dma/amd/qdma/qdma.c
558
static int qdma_alloc_queue_resources(struct dma_chan *chan)
drivers/dma/amd/qdma/qdma.c
560
struct qdma_queue *queue = to_qdma_queue(chan);
drivers/dma/amd/qdma/qdma.c
587
chan->name);
drivers/dma/amd/qdma/qdma.c
599
static bool qdma_filter_fn(struct dma_chan *chan, void *param)
drivers/dma/amd/qdma/qdma.c
601
struct qdma_queue *queue = to_qdma_queue(chan);
drivers/dma/amd/qdma/qdma.c
627
static void qdma_issue_pending(struct dma_chan *chan)
drivers/dma/amd/qdma/qdma.c
629
struct qdma_queue *queue = to_qdma_queue(chan);
drivers/dma/amd/qdma/qdma.c
745
struct virt_dma_chan *vc = to_virt_chan(tx->chan);
drivers/dma/amd/qdma/qdma.c
746
struct qdma_queue *q = to_qdma_queue(&vc->chan);
drivers/dma/amd/qdma/qdma.c
763
qdma_prep_device_sg(struct dma_chan *chan, struct scatterlist *sgl,
drivers/dma/amd/qdma/qdma.c
767
struct qdma_queue *q = to_qdma_queue(chan);
drivers/dma/amd/qdma/qdma.c
787
static int qdma_device_config(struct dma_chan *chan,
drivers/dma/amd/qdma/qdma.c
790
struct qdma_queue *q = to_qdma_queue(chan);
drivers/dma/apple-admac.c
214
static struct admac_chan *to_admac_chan(struct dma_chan *chan)
drivers/dma/apple-admac.c
216
return container_of(chan, struct admac_chan, chan);
drivers/dma/apple-admac.c
233
struct admac_chan *adchan = to_admac_chan(tx->chan);
drivers/dma/apple-admac.c
253
struct dma_chan *chan, dma_addr_t buf_addr, size_t buf_len,
drivers/dma/apple-admac.c
257
struct admac_chan *adchan = container_of(chan, struct admac_chan, chan);
drivers/dma/apple-admac.c
277
dma_async_tx_descriptor_init(&adtx->tx, chan);
drivers/dma/apple-admac.c
374
static enum dma_status admac_tx_status(struct dma_chan *chan, dma_cookie_t cookie,
drivers/dma/apple-admac.c
377
struct admac_chan *adchan = to_admac_chan(chan);
drivers/dma/apple-admac.c
385
ret = dma_cookie_status(chan, cookie, txstate);
drivers/dma/apple-admac.c
474
static void admac_issue_pending(struct dma_chan *chan)
drivers/dma/apple-admac.c
476
struct admac_chan *adchan = to_admac_chan(chan);
drivers/dma/apple-admac.c
493
static int admac_pause(struct dma_chan *chan)
drivers/dma/apple-admac.c
495
struct admac_chan *adchan = to_admac_chan(chan);
drivers/dma/apple-admac.c
502
static int admac_resume(struct dma_chan *chan)
drivers/dma/apple-admac.c
504
struct admac_chan *adchan = to_admac_chan(chan);
drivers/dma/apple-admac.c
511
static int admac_terminate_all(struct dma_chan *chan)
drivers/dma/apple-admac.c
513
struct admac_chan *adchan = to_admac_chan(chan);
drivers/dma/apple-admac.c
535
static void admac_synchronize(struct dma_chan *chan)
drivers/dma/apple-admac.c
537
struct admac_chan *adchan = to_admac_chan(chan);
drivers/dma/apple-admac.c
554
static int admac_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/apple-admac.c
556
struct admac_chan *adchan = to_admac_chan(chan);
drivers/dma/apple-admac.c
560
dma_cookie_init(&adchan->chan);
drivers/dma/apple-admac.c
571
static void admac_free_chan_resources(struct dma_chan *chan)
drivers/dma/apple-admac.c
573
struct admac_chan *adchan = to_admac_chan(chan);
drivers/dma/apple-admac.c
575
admac_terminate_all(chan);
drivers/dma/apple-admac.c
576
admac_synchronize(chan);
drivers/dma/apple-admac.c
597
return dma_get_slave_channel(&ad->channels[index].chan);
drivers/dma/apple-admac.c
740
static int admac_device_config(struct dma_chan *chan,
drivers/dma/apple-admac.c
743
struct admac_chan *adchan = to_admac_chan(chan);
drivers/dma/apple-admac.c
883
adchan->chan.device = &ad->dma;
drivers/dma/apple-admac.c
888
list_add_tail(&adchan->chan.device_node, &dma->channels);
drivers/dma/apple-admac.c
91
struct dma_chan chan;
drivers/dma/arm-dma350.c
200
static inline struct d350_chan *to_d350_chan(struct dma_chan *chan)
drivers/dma/arm-dma350.c
202
return container_of(chan, struct d350_chan, vc.chan);
drivers/dma/arm-dma350.c
215
static struct dma_async_tx_descriptor *d350_prep_memcpy(struct dma_chan *chan,
drivers/dma/arm-dma350.c
218
struct d350_chan *dch = to_d350_chan(chan);
drivers/dma/arm-dma350.c
253
static struct dma_async_tx_descriptor *d350_prep_memset(struct dma_chan *chan,
drivers/dma/arm-dma350.c
256
struct d350_chan *dch = to_d350_chan(chan);
drivers/dma/arm-dma350.c
289
static int d350_pause(struct dma_chan *chan)
drivers/dma/arm-dma350.c
291
struct d350_chan *dch = to_d350_chan(chan);
drivers/dma/arm-dma350.c
304
static int d350_resume(struct dma_chan *chan)
drivers/dma/arm-dma350.c
306
struct d350_chan *dch = to_d350_chan(chan);
drivers/dma/arm-dma350.c
337
static int d350_terminate_all(struct dma_chan *chan)
drivers/dma/arm-dma350.c
339
struct d350_chan *dch = to_d350_chan(chan);
drivers/dma/arm-dma350.c
358
static void d350_synchronize(struct dma_chan *chan)
drivers/dma/arm-dma350.c
360
struct d350_chan *dch = to_d350_chan(chan);
drivers/dma/arm-dma350.c
370
static enum dma_status d350_tx_status(struct dma_chan *chan, dma_cookie_t cookie,
drivers/dma/arm-dma350.c
373
struct d350_chan *dch = to_d350_chan(chan);
drivers/dma/arm-dma350.c
379
status = dma_cookie_status(chan, cookie, state);
drivers/dma/arm-dma350.c
453
static void d350_issue_pending(struct dma_chan *chan)
drivers/dma/arm-dma350.c
455
struct d350_chan *dch = to_d350_chan(chan);
drivers/dma/arm-dma350.c
467
struct device *dev = dch->vc.chan.device->dev;
drivers/dma/arm-dma350.c
506
static int d350_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/arm-dma350.c
508
struct d350_chan *dch = to_d350_chan(chan);
drivers/dma/arm-dma350.c
510
dev_name(&dch->vc.chan.dev->device), dch);
drivers/dma/arm-dma350.c
517
static void d350_free_chan_resources(struct dma_chan *chan)
drivers/dma/arm-dma350.c
519
struct d350_chan *dch = to_d350_chan(chan);
drivers/dma/at_hdmac.c
1050
static int atdma_create_memset_lli(struct dma_chan *chan,
drivers/dma/at_hdmac.c
1054
struct at_dma *atdma = to_at_dma(chan->device);
drivers/dma/at_hdmac.c
1065
dev_err(chan2dev(chan), "%s: buffer is too big\n", __func__);
drivers/dma/at_hdmac.c
1094
atc_prep_dma_memset(struct dma_chan *chan, dma_addr_t dest, int value,
drivers/dma/at_hdmac.c
1097
struct at_dma_chan *atchan = to_at_dma_chan(chan);
drivers/dma/at_hdmac.c
1098
struct at_dma *atdma = to_at_dma(chan->device);
drivers/dma/at_hdmac.c
1105
dev_vdbg(chan2dev(chan), "%s: d%pad v0x%x l0x%zx f0x%lx\n", __func__,
drivers/dma/at_hdmac.c
1109
dev_dbg(chan2dev(chan), "%s: length is zero!\n", __func__);
drivers/dma/at_hdmac.c
1113
if (!is_dma_fill_aligned(chan->device, dest, 0, len)) {
drivers/dma/at_hdmac.c
1114
dev_dbg(chan2dev(chan), "%s: buffer is not aligned\n",
drivers/dma/at_hdmac.c
1121
dev_err(chan2dev(chan), "%s: couldn't allocate buffer\n",
drivers/dma/at_hdmac.c
1139
ret = atdma_create_memset_lli(chan, desc->sg, paddr, dest, len);
drivers/dma/at_hdmac.c
1162
atc_prep_dma_memset_sg(struct dma_chan *chan,
drivers/dma/at_hdmac.c
1167
struct at_dma_chan *atchan = to_at_dma_chan(chan);
drivers/dma/at_hdmac.c
1168
struct at_dma *atdma = to_at_dma(chan->device);
drivers/dma/at_hdmac.c
1177
dev_vdbg(chan2dev(chan), "%s: v0x%x l0x%x f0x%lx\n", __func__,
drivers/dma/at_hdmac.c
1181
dev_dbg(chan2dev(chan), "%s: scatterlist is empty!\n",
drivers/dma/at_hdmac.c
1188
dev_err(chan2dev(chan), "%s: couldn't allocate buffer\n",
drivers/dma/at_hdmac.c
1203
dev_vdbg(chan2dev(chan), "%s: d%pad, l0x%zx\n",
drivers/dma/at_hdmac.c
1206
if (!is_dma_fill_aligned(chan->device, dest, 0, len)) {
drivers/dma/at_hdmac.c
1207
dev_err(chan2dev(chan), "%s: buffer is not aligned\n",
drivers/dma/at_hdmac.c
1212
ret = atdma_create_memset_lli(chan, &desc->sg[i], paddr, dest,
drivers/dma/at_hdmac.c
1249
atc_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
drivers/dma/at_hdmac.c
1253
struct at_dma *atdma = to_at_dma(chan->device);
drivers/dma/at_hdmac.c
1254
struct at_dma_chan *atchan = to_at_dma_chan(chan);
drivers/dma/at_hdmac.c
1255
struct at_dma_slave *atslave = chan->private;
drivers/dma/at_hdmac.c
1267
dev_vdbg(chan2dev(chan), "prep_slave_sg (%d): %s f0x%lx\n",
drivers/dma/at_hdmac.c
1273
dev_dbg(chan2dev(chan), "prep_slave_sg: sg length is zero!\n");
drivers/dma/at_hdmac.c
1313
dev_dbg(chan2dev(chan),
drivers/dma/at_hdmac.c
1362
dev_dbg(chan2dev(chan),
drivers/dma/at_hdmac.c
1395
dev_err(chan2dev(chan), "not enough descriptors available\n");
drivers/dma/at_hdmac.c
1426
atc_dma_cyclic_fill_desc(struct dma_chan *chan, struct at_desc *desc,
drivers/dma/at_hdmac.c
1431
struct at_dma *atdma = to_at_dma(chan->device);
drivers/dma/at_hdmac.c
1432
struct at_dma_chan *atchan = to_at_dma_chan(chan);
drivers/dma/at_hdmac.c
1493
atc_prep_dma_cyclic(struct dma_chan *chan, dma_addr_t buf_addr, size_t buf_len,
drivers/dma/at_hdmac.c
1497
struct at_dma_chan *atchan = to_at_dma_chan(chan);
drivers/dma/at_hdmac.c
1498
struct at_dma_slave *atslave = chan->private;
drivers/dma/at_hdmac.c
1506
dev_vdbg(chan2dev(chan), "prep_dma_cyclic: %s buf@%pad - %d (%zu/%zu)\n",
drivers/dma/at_hdmac.c
1512
dev_dbg(chan2dev(chan), "prep_dma_cyclic: length is zero!\n");
drivers/dma/at_hdmac.c
1518
dev_dbg(chan2dev(chan), "prep_dma_cyclic: channel in use!\n");
drivers/dma/at_hdmac.c
1541
if (atc_dma_cyclic_fill_desc(chan, desc, i, buf_addr,
drivers/dma/at_hdmac.c
1559
static int atc_config(struct dma_chan *chan,
drivers/dma/at_hdmac.c
1562
struct at_dma_chan *atchan = to_at_dma_chan(chan);
drivers/dma/at_hdmac.c
1564
dev_vdbg(chan2dev(chan), "%s\n", __func__);
drivers/dma/at_hdmac.c
1567
if (!chan->private)
drivers/dma/at_hdmac.c
1578
static int atc_pause(struct dma_chan *chan)
drivers/dma/at_hdmac.c
1580
struct at_dma_chan *atchan = to_at_dma_chan(chan);
drivers/dma/at_hdmac.c
1581
struct at_dma *atdma = to_at_dma(chan->device);
drivers/dma/at_hdmac.c
1582
int chan_id = atchan->vc.chan.chan_id;
drivers/dma/at_hdmac.c
1585
dev_vdbg(chan2dev(chan), "%s\n", __func__);
drivers/dma/at_hdmac.c
1597
static int atc_resume(struct dma_chan *chan)
drivers/dma/at_hdmac.c
1599
struct at_dma_chan *atchan = to_at_dma_chan(chan);
drivers/dma/at_hdmac.c
1600
struct at_dma *atdma = to_at_dma(chan->device);
drivers/dma/at_hdmac.c
1601
int chan_id = atchan->vc.chan.chan_id;
drivers/dma/at_hdmac.c
1604
dev_vdbg(chan2dev(chan), "%s\n", __func__);
drivers/dma/at_hdmac.c
1619
static int atc_terminate_all(struct dma_chan *chan)
drivers/dma/at_hdmac.c
1621
struct at_dma_chan *atchan = to_at_dma_chan(chan);
drivers/dma/at_hdmac.c
1622
struct at_dma *atdma = to_at_dma(chan->device);
drivers/dma/at_hdmac.c
1623
int chan_id = atchan->vc.chan.chan_id;
drivers/dma/at_hdmac.c
1628
dev_vdbg(chan2dev(chan), "%s\n", __func__);
drivers/dma/at_hdmac.c
1674
atc_tx_status(struct dma_chan *chan,
drivers/dma/at_hdmac.c
1678
struct at_dma_chan *atchan = to_at_dma_chan(chan);
drivers/dma/at_hdmac.c
1684
dma_status = dma_cookie_status(chan, cookie, txstate);
drivers/dma/at_hdmac.c
1690
ret = atc_get_residue(chan, cookie, &residue);
drivers/dma/at_hdmac.c
1694
dev_vdbg(chan2dev(chan), "get residual bytes error\n");
drivers/dma/at_hdmac.c
1700
dev_vdbg(chan2dev(chan), "tx_status %d: cookie = %d residue = %u\n",
drivers/dma/at_hdmac.c
1706
static void atc_issue_pending(struct dma_chan *chan)
drivers/dma/at_hdmac.c
1708
struct at_dma_chan *atchan = to_at_dma_chan(chan);
drivers/dma/at_hdmac.c
1725
static int atc_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/at_hdmac.c
1727
struct at_dma_chan *atchan = to_at_dma_chan(chan);
drivers/dma/at_hdmac.c
1728
struct at_dma *atdma = to_at_dma(chan->device);
drivers/dma/at_hdmac.c
1732
dev_vdbg(chan2dev(chan), "alloc_chan_resources\n");
drivers/dma/at_hdmac.c
1736
dev_dbg(chan2dev(chan), "DMA channel not idle ?\n");
drivers/dma/at_hdmac.c
1742
atslave = chan->private;
drivers/dma/at_hdmac.c
1765
static void atc_free_chan_resources(struct dma_chan *chan)
drivers/dma/at_hdmac.c
1767
struct at_dma_chan *atchan = to_at_dma_chan(chan);
drivers/dma/at_hdmac.c
1772
vchan_free_chan_resources(to_virt_chan(chan));
drivers/dma/at_hdmac.c
1778
atslave = chan->private;
drivers/dma/at_hdmac.c
1782
chan->private = NULL;
drivers/dma/at_hdmac.c
1785
dev_vdbg(chan2dev(chan), "free_chan_resources: done\n");
drivers/dma/at_hdmac.c
1789
static bool at_dma_filter(struct dma_chan *chan, void *slave)
drivers/dma/at_hdmac.c
1793
if (atslave->dma_dev == chan->device->dev) {
drivers/dma/at_hdmac.c
1794
chan->private = atslave;
drivers/dma/at_hdmac.c
1804
struct dma_chan *chan;
drivers/dma/at_hdmac.c
1854
chan = dma_request_channel(mask, at_dma_filter, atslave);
drivers/dma/at_hdmac.c
1855
if (!chan) {
drivers/dma/at_hdmac.c
1861
atchan = to_at_dma_chan(chan);
drivers/dma/at_hdmac.c
1865
return chan;
drivers/dma/at_hdmac.c
1966
struct_size(atdma, chan, plat_dat->nr_channels),
drivers/dma/at_hdmac.c
2026
struct at_dma_chan *atchan = &atdma->chan[i];
drivers/dma/at_hdmac.c
2121
struct dma_chan *chan, *_chan;
drivers/dma/at_hdmac.c
2132
list_for_each_entry_safe(chan, _chan, &atdma->dma_device.channels,
drivers/dma/at_hdmac.c
2135
atc_disable_chan_irq(atdma, chan->chan_id);
drivers/dma/at_hdmac.c
2136
list_del(&chan->device_node);
drivers/dma/at_hdmac.c
2153
struct dma_chan *chan, *_chan;
drivers/dma/at_hdmac.c
2155
list_for_each_entry_safe(chan, _chan, &atdma->dma_device.channels,
drivers/dma/at_hdmac.c
2157
struct at_dma_chan *atchan = to_at_dma_chan(chan);
drivers/dma/at_hdmac.c
2167
struct dma_chan *chan = &atchan->vc.chan;
drivers/dma/at_hdmac.c
2172
dev_warn(chan2dev(chan),
drivers/dma/at_hdmac.c
2174
atc_pause(chan);
drivers/dma/at_hdmac.c
2187
struct dma_chan *chan, *_chan;
drivers/dma/at_hdmac.c
2190
list_for_each_entry_safe(chan, _chan, &atdma->dma_device.channels,
drivers/dma/at_hdmac.c
2192
struct at_dma_chan *atchan = to_at_dma_chan(chan);
drivers/dma/at_hdmac.c
2208
struct at_dma *atdma = to_at_dma(atchan->vc.chan.device);
drivers/dma/at_hdmac.c
2228
struct dma_chan *chan, *_chan;
drivers/dma/at_hdmac.c
2240
list_for_each_entry_safe(chan, _chan, &atdma->dma_device.channels,
drivers/dma/at_hdmac.c
2242
struct at_dma_chan *atchan = to_at_dma_chan(chan);
drivers/dma/at_hdmac.c
358
struct at_dma_chan chan[];
drivers/dma/at_hdmac.c
371
static inline struct at_dma_chan *to_at_dma_chan(struct dma_chan *chan)
drivers/dma/at_hdmac.c
373
return container_of(chan, struct at_dma_chan, vc.chan);
drivers/dma/at_hdmac.c
384
static struct device *chan2dev(struct dma_chan *chan)
drivers/dma/at_hdmac.c
386
return &chan->dev->device;
drivers/dma/at_hdmac.c
392
struct at_dma *atdma = to_at_dma(atchan->vc.chan.device);
drivers/dma/at_hdmac.c
394
dev_err(chan2dev(&atchan->vc.chan),
drivers/dma/at_hdmac.c
396
atchan->vc.chan.chan_id,
drivers/dma/at_hdmac.c
400
dev_err(chan2dev(&atchan->vc.chan),
drivers/dma/at_hdmac.c
415
dev_crit(chan2dev(&atchan->vc.chan),
drivers/dma/at_hdmac.c
452
struct at_dma *atdma = to_at_dma(atchan->vc.chan.device);
drivers/dma/at_hdmac.c
594
struct at_dma *atdma = to_at_dma(vd->tx.chan->device);
drivers/dma/at_hdmac.c
746
static int atc_get_residue(struct dma_chan *chan, dma_cookie_t cookie,
drivers/dma/at_hdmac.c
749
struct at_dma_chan *atchan = to_at_dma_chan(chan);
drivers/dma/at_hdmac.c
793
dev_crit(chan2dev(&atchan->vc.chan), "Bad descriptor submitted for DMA!\n");
drivers/dma/at_hdmac.c
794
dev_crit(chan2dev(&atchan->vc.chan), "cookie: %d\n",
drivers/dma/at_hdmac.c
847
atchan = &atdma->chan[i];
drivers/dma/at_hdmac.c
867
atc_prep_dma_interleaved(struct dma_chan *chan,
drivers/dma/at_hdmac.c
871
struct at_dma *atdma = to_at_dma(chan->device);
drivers/dma/at_hdmac.c
872
struct at_dma_chan *atchan = to_at_dma_chan(chan);
drivers/dma/at_hdmac.c
889
dev_info(chan2dev(chan),
drivers/dma/at_hdmac.c
906
dev_err(chan2dev(chan),
drivers/dma/at_hdmac.c
919
dev_err(chan2dev(chan), "%s: buffer is too big\n", __func__);
drivers/dma/at_hdmac.c
971
atc_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dest, dma_addr_t src,
drivers/dma/at_hdmac.c
974
struct at_dma *atdma = to_at_dma(chan->device);
drivers/dma/at_hdmac.c
975
struct at_dma_chan *atchan = to_at_dma_chan(chan);
drivers/dma/at_hdmac.c
986
dev_dbg(chan2dev(chan), "prep_dma_memcpy: d%pad s%pad l0x%zx f0x%lx\n",
drivers/dma/at_hdmac.c
990
dev_err(chan2dev(chan), "prep_dma_memcpy: length is zero!\n");
drivers/dma/at_xdmac.c
1006
dwidth = at_xdmac_align_width(chan, src | dst | chunk->size);
drivers/dma/at_xdmac.c
1008
dev_dbg(chan2dev(chan),
drivers/dma/at_xdmac.c
1016
dev_dbg(chan2dev(chan),
drivers/dma/at_xdmac.c
1037
dev_err(chan2dev(chan), "can't get descriptor\n");
drivers/dma/at_xdmac.c
1056
dev_dbg(chan2dev(chan),
drivers/dma/at_xdmac.c
1063
at_xdmac_queue_desc(chan, prev, desc);
drivers/dma/at_xdmac.c
1069
at_xdmac_prep_interleaved(struct dma_chan *chan,
drivers/dma/at_xdmac.c
1073
struct at_xdmac_chan *atchan = to_at_xdmac_chan(chan);
drivers/dma/at_xdmac.c
1090
dev_dbg(chan2dev(chan), "%s: src=%pad, dest=%pad, numf=%zu, frame_size=%zu, flags=0x%lx\n",
drivers/dma/at_xdmac.c
1098
first = at_xdmac_interleaved_queue_desc(chan, atchan,
drivers/dma/at_xdmac.c
1107
at_xdmac_increment_block_count(chan, first);
drivers/dma/at_xdmac.c
1109
dev_dbg(chan2dev(chan), "%s: add desc 0x%p to descs_list 0x%p\n",
drivers/dma/at_xdmac.c
1125
dev_dbg(chan2dev(chan),
drivers/dma/at_xdmac.c
1129
desc = at_xdmac_interleaved_queue_desc(chan, atchan,
drivers/dma/at_xdmac.c
1143
dev_dbg(chan2dev(chan), "%s: add desc 0x%p to descs_list 0x%p\n",
drivers/dma/at_xdmac.c
1166
at_xdmac_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dest, dma_addr_t src,
drivers/dma/at_xdmac.c
1169
struct at_xdmac_chan *atchan = to_at_xdmac_chan(chan);
drivers/dma/at_xdmac.c
1196
dev_dbg(chan2dev(chan), "%s: src=%pad, dest=%pad, len=%zd, flags=0x%lx\n",
drivers/dma/at_xdmac.c
1202
dwidth = at_xdmac_align_width(chan, src_addr | dst_addr);
drivers/dma/at_xdmac.c
1208
dev_dbg(chan2dev(chan), "%s: remaining_size=%zu\n", __func__, remaining_size);
drivers/dma/at_xdmac.c
1214
dev_err(chan2dev(chan), "can't get descriptor\n");
drivers/dma/at_xdmac.c
1230
dev_dbg(chan2dev(chan), "%s: xfer_size=%zu\n", __func__, xfer_size);
drivers/dma/at_xdmac.c
1233
dwidth = at_xdmac_align_width(chan,
drivers/dma/at_xdmac.c
1249
dev_dbg(chan2dev(chan),
drivers/dma/at_xdmac.c
1255
at_xdmac_queue_desc(chan, prev, desc);
drivers/dma/at_xdmac.c
1261
dev_dbg(chan2dev(chan), "%s: add desc 0x%p to descs_list 0x%p\n",
drivers/dma/at_xdmac.c
1272
static struct at_xdmac_desc *at_xdmac_memset_create_desc(struct dma_chan *chan,
drivers/dma/at_xdmac.c
1306
dwidth = at_xdmac_align_width(chan, dst_addr);
drivers/dma/at_xdmac.c
1309
dev_err(chan2dev(chan),
drivers/dma/at_xdmac.c
1319
dev_err(chan2dev(chan), "can't get descriptor\n");
drivers/dma/at_xdmac.c
1341
dev_dbg(chan2dev(chan),
drivers/dma/at_xdmac.c
1350
at_xdmac_prep_dma_memset(struct dma_chan *chan, dma_addr_t dest, int value,
drivers/dma/at_xdmac.c
1353
struct at_xdmac_chan *atchan = to_at_xdmac_chan(chan);
drivers/dma/at_xdmac.c
1356
dev_dbg(chan2dev(chan), "%s: dest=%pad, len=%zu, pattern=0x%x, flags=0x%lx\n",
drivers/dma/at_xdmac.c
1362
desc = at_xdmac_memset_create_desc(chan, atchan, dest, len, value);
drivers/dma/at_xdmac.c
1375
at_xdmac_prep_dma_memset_sg(struct dma_chan *chan, struct scatterlist *sgl,
drivers/dma/at_xdmac.c
1379
struct at_xdmac_chan *atchan = to_at_xdmac_chan(chan);
drivers/dma/at_xdmac.c
1389
dev_dbg(chan2dev(chan), "%s: sg_len=%d, value=0x%x, flags=0x%lx\n",
drivers/dma/at_xdmac.c
1394
dev_dbg(chan2dev(chan), "%s: dest=%pad, len=%d, pattern=0x%x, flags=0x%lx\n",
drivers/dma/at_xdmac.c
1397
desc = at_xdmac_memset_create_desc(chan, atchan,
drivers/dma/at_xdmac.c
1436
dev_dbg(chan2dev(chan),
drivers/dma/at_xdmac.c
1444
at_xdmac_increment_block_count(chan, ppdesc);
drivers/dma/at_xdmac.c
1475
at_xdmac_queue_desc(chan, ppdesc, pdesc);
drivers/dma/at_xdmac.c
1484
dev_dbg(chan2dev(chan),
drivers/dma/at_xdmac.c
1499
dev_dbg(chan2dev(chan),
drivers/dma/at_xdmac.c
1507
at_xdmac_increment_block_count(chan, pdesc);
drivers/dma/at_xdmac.c
1537
at_xdmac_tx_status(struct dma_chan *chan, dma_cookie_t cookie,
drivers/dma/at_xdmac.c
1540
struct at_xdmac_chan *atchan = to_at_xdmac_chan(chan);
drivers/dma/at_xdmac.c
1541
struct at_xdmac *atxdmac = to_at_xdmac(atchan->chan.device);
drivers/dma/at_xdmac.c
1551
ret = dma_cookie_status(chan, cookie, txstate);
drivers/dma/at_xdmac.c
1670
dev_dbg(chan2dev(chan),
drivers/dma/at_xdmac.c
1693
dev_vdbg(chan2dev(&atchan->chan), "%s: desc 0x%p\n", __func__, desc);
drivers/dma/at_xdmac.c
1704
dev_dbg(chan2dev(&atchan->chan), "%s: status=0x%08x\n",
drivers/dma/at_xdmac.c
1721
struct at_xdmac *atxdmac = to_at_xdmac(atchan->chan.device);
drivers/dma/at_xdmac.c
1736
dev_err(chan2dev(&atchan->chan), "read bus error!!!");
drivers/dma/at_xdmac.c
1738
dev_err(chan2dev(&atchan->chan), "write bus error!!!");
drivers/dma/at_xdmac.c
1740
dev_err(chan2dev(&atchan->chan), "request overflow error!!!");
drivers/dma/at_xdmac.c
1752
dev_dbg(chan2dev(&atchan->chan),
drivers/dma/at_xdmac.c
1765
struct at_xdmac *atxdmac = to_at_xdmac(atchan->chan.device);
drivers/dma/at_xdmac.c
1778
dev_dbg(chan2dev(&atchan->chan), "%s: status=0x%08x\n",
drivers/dma/at_xdmac.c
1792
dev_vdbg(chan2dev(&atchan->chan), "%s: desc 0x%p\n", __func__, desc);
drivers/dma/at_xdmac.c
1794
dev_err(chan2dev(&atchan->chan), "Xfer not active: exiting");
drivers/dma/at_xdmac.c
1848
atchan = &atxdmac->chan[i];
drivers/dma/at_xdmac.c
1855
dev_vdbg(chan2dev(&atchan->chan),
drivers/dma/at_xdmac.c
1877
static void at_xdmac_issue_pending(struct dma_chan *chan)
drivers/dma/at_xdmac.c
1879
struct at_xdmac_chan *atchan = to_at_xdmac_chan(chan);
drivers/dma/at_xdmac.c
1882
dev_dbg(chan2dev(&atchan->chan), "%s\n", __func__);
drivers/dma/at_xdmac.c
1891
static int at_xdmac_device_config(struct dma_chan *chan,
drivers/dma/at_xdmac.c
1894
struct at_xdmac_chan *atchan = to_at_xdmac_chan(chan);
drivers/dma/at_xdmac.c
1898
dev_dbg(chan2dev(chan), "%s\n", __func__);
drivers/dma/at_xdmac.c
1901
ret = at_xdmac_set_slave_config(chan, config);
drivers/dma/at_xdmac.c
1918
struct at_xdmac *atxdmac = to_at_xdmac(atchan->chan.device);
drivers/dma/at_xdmac.c
1927
static int at_xdmac_device_pause(struct dma_chan *chan)
drivers/dma/at_xdmac.c
1929
struct at_xdmac_chan *atchan = to_at_xdmac_chan(chan);
drivers/dma/at_xdmac.c
1930
struct at_xdmac *atxdmac = to_at_xdmac(atchan->chan.device);
drivers/dma/at_xdmac.c
1934
dev_dbg(chan2dev(chan), "%s\n", __func__);
drivers/dma/at_xdmac.c
1958
struct at_xdmac *atxdmac = to_at_xdmac(atchan->chan.device);
drivers/dma/at_xdmac.c
1967
static int at_xdmac_device_resume(struct dma_chan *chan)
drivers/dma/at_xdmac.c
1969
struct at_xdmac_chan *atchan = to_at_xdmac_chan(chan);
drivers/dma/at_xdmac.c
1970
struct at_xdmac *atxdmac = to_at_xdmac(atchan->chan.device);
drivers/dma/at_xdmac.c
1974
dev_dbg(chan2dev(chan), "%s\n", __func__);
drivers/dma/at_xdmac.c
1999
static int at_xdmac_device_terminate_all(struct dma_chan *chan)
drivers/dma/at_xdmac.c
2002
struct at_xdmac_chan *atchan = to_at_xdmac_chan(chan);
drivers/dma/at_xdmac.c
2003
struct at_xdmac *atxdmac = to_at_xdmac(atchan->chan.device);
drivers/dma/at_xdmac.c
2007
dev_dbg(chan2dev(chan), "%s\n", __func__);
drivers/dma/at_xdmac.c
2041
static int at_xdmac_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/at_xdmac.c
2043
struct at_xdmac_chan *atchan = to_at_xdmac_chan(chan);
drivers/dma/at_xdmac.c
2048
dev_err(chan2dev(chan),
drivers/dma/at_xdmac.c
2054
dev_err(chan2dev(chan),
drivers/dma/at_xdmac.c
2060
desc = at_xdmac_alloc_desc(chan, GFP_KERNEL);
drivers/dma/at_xdmac.c
2063
dev_warn(chan2dev(chan),
drivers/dma/at_xdmac.c
2067
dev_warn(chan2dev(chan),
drivers/dma/at_xdmac.c
2074
dma_cookie_init(chan);
drivers/dma/at_xdmac.c
2076
dev_dbg(chan2dev(chan), "%s: allocated %d descriptors\n", __func__, i);
drivers/dma/at_xdmac.c
2081
static void at_xdmac_free_chan_resources(struct dma_chan *chan)
drivers/dma/at_xdmac.c
2083
struct at_xdmac_chan *atchan = to_at_xdmac_chan(chan);
drivers/dma/at_xdmac.c
2084
struct at_xdmac *atxdmac = to_at_xdmac(chan->device);
drivers/dma/at_xdmac.c
2088
dev_dbg(chan2dev(chan), "%s: freeing descriptor %p\n", __func__, desc);
drivers/dma/at_xdmac.c
2123
struct dma_chan *chan, *_chan;
drivers/dma/at_xdmac.c
2125
list_for_each_entry_safe(chan, _chan, &atxdmac->dma.channels, device_node) {
drivers/dma/at_xdmac.c
2126
struct at_xdmac_chan *atchan = to_at_xdmac_chan(chan);
drivers/dma/at_xdmac.c
2138
struct dma_chan *chan, *_chan;
drivers/dma/at_xdmac.c
2145
list_for_each_entry_safe(chan, _chan, &atxdmac->dma.channels, device_node) {
drivers/dma/at_xdmac.c
2146
struct at_xdmac_chan *atchan = to_at_xdmac_chan(chan);
drivers/dma/at_xdmac.c
2151
dev_warn(chan2dev(chan), "%s: channel %d not paused\n",
drivers/dma/at_xdmac.c
2152
__func__, chan->chan_id);
drivers/dma/at_xdmac.c
2176
struct dma_chan *chan, *_chan;
drivers/dma/at_xdmac.c
218
struct dma_chan chan;
drivers/dma/at_xdmac.c
2190
atchan = &atxdmac->chan[i];
drivers/dma/at_xdmac.c
2196
list_for_each_entry_safe(chan, _chan, &atxdmac->dma.channels, device_node) {
drivers/dma/at_xdmac.c
2197
atchan = to_at_xdmac_chan(chan);
drivers/dma/at_xdmac.c
2299
struct_size(atxdmac, chan, nr_channels),
drivers/dma/at_xdmac.c
2388
struct at_xdmac_chan *atchan = &atxdmac->chan[i];
drivers/dma/at_xdmac.c
2390
atchan->chan.device = &atxdmac->dma;
drivers/dma/at_xdmac.c
2391
list_add_tail(&atchan->chan.device_node,
drivers/dma/at_xdmac.c
2459
struct at_xdmac_chan *atchan = &atxdmac->chan[i];
drivers/dma/at_xdmac.c
2462
at_xdmac_free_chan_resources(&atchan->chan);
drivers/dma/at_xdmac.c
252
struct at_xdmac_chan chan[];
drivers/dma/at_xdmac.c
324
return container_of(dchan, struct at_xdmac_chan, chan);
drivers/dma/at_xdmac.c
327
static struct device *chan2dev(struct dma_chan *chan)
drivers/dma/at_xdmac.c
329
return &chan->dev->device;
drivers/dma/at_xdmac.c
375
struct at_xdmac *atxdmac = to_at_xdmac(atchan->chan.device);
drivers/dma/at_xdmac.c
388
struct at_xdmac *atxdmac = to_at_xdmac(atchan->chan.device);
drivers/dma/at_xdmac.c
406
struct at_xdmac *atxdmac = to_at_xdmac(atchan->chan.device);
drivers/dma/at_xdmac.c
422
struct dma_chan *chan, *_chan;
drivers/dma/at_xdmac.c
440
list_for_each_entry_safe(chan, _chan, &atxdmac->dma.channels,
drivers/dma/at_xdmac.c
442
atchan = to_at_xdmac_chan(chan);
drivers/dma/at_xdmac.c
454
struct at_xdmac *atxdmac = to_at_xdmac(atchan->chan.device);
drivers/dma/at_xdmac.c
462
dev_vdbg(chan2dev(&atchan->chan), "%s: desc 0x%p\n", __func__, first);
drivers/dma/at_xdmac.c
499
dev_vdbg(chan2dev(&atchan->chan),
drivers/dma/at_xdmac.c
527
dev_vdbg(chan2dev(&atchan->chan),
drivers/dma/at_xdmac.c
532
dev_vdbg(chan2dev(&atchan->chan),
drivers/dma/at_xdmac.c
545
struct at_xdmac_chan *atchan = to_at_xdmac_chan(tx->chan);
drivers/dma/at_xdmac.c
555
dev_vdbg(chan2dev(tx->chan), "%s: atchan 0x%p, add desc 0x%p to xfers_list\n",
drivers/dma/at_xdmac.c
561
static struct at_xdmac_desc *at_xdmac_alloc_desc(struct dma_chan *chan,
drivers/dma/at_xdmac.c
565
struct at_xdmac *atxdmac = to_at_xdmac(chan->device);
drivers/dma/at_xdmac.c
571
dma_async_tx_descriptor_init(&desc->tx_dma_desc, chan);
drivers/dma/at_xdmac.c
594
desc = at_xdmac_alloc_desc(&atchan->chan, GFP_NOWAIT);
drivers/dma/at_xdmac.c
605
static void at_xdmac_queue_desc(struct dma_chan *chan,
drivers/dma/at_xdmac.c
615
dev_dbg(chan2dev(chan), "%s: chain lld: prev=0x%p, mbr_nda=%pad\n",
drivers/dma/at_xdmac.c
619
static inline void at_xdmac_increment_block_count(struct dma_chan *chan,
drivers/dma/at_xdmac.c
627
dev_dbg(chan2dev(chan),
drivers/dma/at_xdmac.c
637
struct dma_chan *chan;
drivers/dma/at_xdmac.c
645
chan = dma_get_any_slave_channel(&atxdmac->dma);
drivers/dma/at_xdmac.c
646
if (!chan) {
drivers/dma/at_xdmac.c
651
atchan = to_at_xdmac_chan(chan);
drivers/dma/at_xdmac.c
658
return chan;
drivers/dma/at_xdmac.c
661
static int at_xdmac_compute_chan_conf(struct dma_chan *chan,
drivers/dma/at_xdmac.c
664
struct at_xdmac_chan *atchan = to_at_xdmac_chan(chan);
drivers/dma/at_xdmac.c
665
struct at_xdmac *atxdmac = to_at_xdmac(atchan->chan.device);
drivers/dma/at_xdmac.c
683
dev_err(chan2dev(chan), "invalid src maxburst value\n");
drivers/dma/at_xdmac.c
689
dev_err(chan2dev(chan), "invalid src addr width value\n");
drivers/dma/at_xdmac.c
708
dev_err(chan2dev(chan), "invalid src maxburst value\n");
drivers/dma/at_xdmac.c
714
dev_err(chan2dev(chan), "invalid dst addr width value\n");
drivers/dma/at_xdmac.c
720
dev_dbg(chan2dev(chan), "%s: cfg=0x%08x\n", __func__, atchan->cfg);
drivers/dma/at_xdmac.c
743
static int at_xdmac_set_slave_config(struct dma_chan *chan,
drivers/dma/at_xdmac.c
746
struct at_xdmac_chan *atchan = to_at_xdmac_chan(chan);
drivers/dma/at_xdmac.c
749
dev_err(chan2dev(chan), "invalid slave configuration\n");
drivers/dma/at_xdmac.c
759
at_xdmac_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
drivers/dma/at_xdmac.c
763
struct at_xdmac_chan *atchan = to_at_xdmac_chan(chan);
drivers/dma/at_xdmac.c
775
dev_err(chan2dev(chan), "invalid DMA direction\n");
drivers/dma/at_xdmac.c
779
dev_dbg(chan2dev(chan), "%s: sg_len=%d, dir=%s, flags=0x%lx\n",
drivers/dma/at_xdmac.c
787
if (at_xdmac_compute_chan_conf(chan, direction))
drivers/dma/at_xdmac.c
798
dev_err(chan2dev(chan), "sg data length is zero\n");
drivers/dma/at_xdmac.c
801
dev_dbg(chan2dev(chan), "%s: * sg%d len=%u, mem=0x%08x\n",
drivers/dma/at_xdmac.c
806
dev_err(chan2dev(chan), "can't get descriptor\n");
drivers/dma/at_xdmac.c
831
dev_dbg(chan2dev(chan),
drivers/dma/at_xdmac.c
837
at_xdmac_queue_desc(chan, prev, desc);
drivers/dma/at_xdmac.c
843
dev_dbg(chan2dev(chan), "%s: add desc 0x%p to descs_list 0x%p\n",
drivers/dma/at_xdmac.c
861
at_xdmac_prep_dma_cyclic(struct dma_chan *chan, dma_addr_t buf_addr,
drivers/dma/at_xdmac.c
866
struct at_xdmac_chan *atchan = to_at_xdmac_chan(chan);
drivers/dma/at_xdmac.c
872
dev_dbg(chan2dev(chan), "%s: buf_addr=%pad, buf_len=%zd, period_len=%zd, dir=%s, flags=0x%lx\n",
drivers/dma/at_xdmac.c
877
dev_err(chan2dev(chan), "invalid DMA direction\n");
drivers/dma/at_xdmac.c
882
dev_err(chan2dev(chan), "channel currently used\n");
drivers/dma/at_xdmac.c
886
if (at_xdmac_compute_chan_conf(chan, direction))
drivers/dma/at_xdmac.c
895
dev_err(chan2dev(chan), "can't get descriptor\n");
drivers/dma/at_xdmac.c
903
dev_dbg(chan2dev(chan),
drivers/dma/at_xdmac.c
920
dev_dbg(chan2dev(chan),
drivers/dma/at_xdmac.c
926
at_xdmac_queue_desc(chan, prev, desc);
drivers/dma/at_xdmac.c
932
dev_dbg(chan2dev(chan), "%s: add desc 0x%p to descs_list 0x%p\n",
drivers/dma/at_xdmac.c
937
at_xdmac_queue_desc(chan, prev, first);
drivers/dma/at_xdmac.c
945
static inline u32 at_xdmac_align_width(struct dma_chan *chan, dma_addr_t addr)
drivers/dma/at_xdmac.c
959
dev_dbg(chan2dev(chan), "%s: dwidth: double word\n", __func__);
drivers/dma/at_xdmac.c
962
dev_dbg(chan2dev(chan), "%s: dwidth: word\n", __func__);
drivers/dma/at_xdmac.c
965
dev_dbg(chan2dev(chan), "%s: dwidth: half word\n", __func__);
drivers/dma/at_xdmac.c
968
dev_dbg(chan2dev(chan), "%s: dwidth: byte\n", __func__);
drivers/dma/at_xdmac.c
975
at_xdmac_interleaved_queue_desc(struct dma_chan *chan,
drivers/dma/bcm-sba-raid.c
526
sba = to_sba_device(tx->chan);
drivers/dma/bcm2835-dma.c
195
return container_of(c, struct bcm2835_chan, vc.chan);
drivers/dma/bcm2835-dma.c
222
struct bcm2835_chan *chan,
drivers/dma/bcm2835-dma.c
229
size_t max_len = bcm2835_dma_max_frame_length(chan);
drivers/dma/bcm2835-dma.c
284
struct dma_chan *chan, enum dma_transfer_direction direction,
drivers/dma/bcm2835-dma.c
289
struct bcm2835_chan *c = to_bcm2835_dma_chan(chan);
drivers/dma/bcm2835-dma.c
367
struct dma_chan *chan,
drivers/dma/bcm2835-dma.c
373
struct bcm2835_chan *c = to_bcm2835_dma_chan(chan);
drivers/dma/bcm2835-dma.c
415
dev_err(c->vc.chan.device->dev,
drivers/dma/bcm2835-dma.c
483
static int bcm2835_dma_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/bcm2835-dma.c
485
struct bcm2835_chan *c = to_bcm2835_dma_chan(chan);
drivers/dma/bcm2835-dma.c
486
struct device *dev = c->vc.chan.device->dev;
drivers/dma/bcm2835-dma.c
505
static void bcm2835_dma_free_chan_resources(struct dma_chan *chan)
drivers/dma/bcm2835-dma.c
507
struct bcm2835_chan *c = to_bcm2835_dma_chan(chan);
drivers/dma/bcm2835-dma.c
513
dev_dbg(c->vc.chan.device->dev, "Freeing DMA channel %u\n", c->ch);
drivers/dma/bcm2835-dma.c
545
static enum dma_status bcm2835_dma_tx_status(struct dma_chan *chan,
drivers/dma/bcm2835-dma.c
548
struct bcm2835_chan *c = to_bcm2835_dma_chan(chan);
drivers/dma/bcm2835-dma.c
553
ret = dma_cookie_status(chan, cookie, txstate);
drivers/dma/bcm2835-dma.c
583
static void bcm2835_dma_issue_pending(struct dma_chan *chan)
drivers/dma/bcm2835-dma.c
585
struct bcm2835_chan *c = to_bcm2835_dma_chan(chan);
drivers/dma/bcm2835-dma.c
596
struct dma_chan *chan, dma_addr_t dst, dma_addr_t src,
drivers/dma/bcm2835-dma.c
599
struct bcm2835_chan *c = to_bcm2835_dma_chan(chan);
drivers/dma/bcm2835-dma.c
614
d = bcm2835_dma_create_cb_chain(chan, DMA_MEM_TO_MEM, false,
drivers/dma/bcm2835-dma.c
624
struct dma_chan *chan,
drivers/dma/bcm2835-dma.c
629
struct bcm2835_chan *c = to_bcm2835_dma_chan(chan);
drivers/dma/bcm2835-dma.c
637
dev_err(chan->device->dev,
drivers/dma/bcm2835-dma.c
661
d = bcm2835_dma_create_cb_chain(chan, direction, false,
drivers/dma/bcm2835-dma.c
669
bcm2835_dma_fill_cb_chain_with_sg(chan, direction, d->cb_list,
drivers/dma/bcm2835-dma.c
676
struct dma_chan *chan, dma_addr_t buf_addr, size_t buf_len,
drivers/dma/bcm2835-dma.c
680
struct bcm2835_dmadev *od = to_bcm2835_dma_dev(chan->device);
drivers/dma/bcm2835-dma.c
681
struct bcm2835_chan *c = to_bcm2835_dma_chan(chan);
drivers/dma/bcm2835-dma.c
691
dev_err(chan->device->dev, "%s: bad direction?\n", __func__);
drivers/dma/bcm2835-dma.c
696
dev_err(chan->device->dev,
drivers/dma/bcm2835-dma.c
711
dev_warn_once(chan->device->dev,
drivers/dma/bcm2835-dma.c
748
d = bcm2835_dma_create_cb_chain(chan, direction, true,
drivers/dma/bcm2835-dma.c
761
static int bcm2835_dma_slave_config(struct dma_chan *chan,
drivers/dma/bcm2835-dma.c
764
struct bcm2835_chan *c = to_bcm2835_dma_chan(chan);
drivers/dma/bcm2835-dma.c
771
static int bcm2835_dma_terminate_all(struct dma_chan *chan)
drivers/dma/bcm2835-dma.c
773
struct bcm2835_chan *c = to_bcm2835_dma_chan(chan);
drivers/dma/bcm2835-dma.c
793
static void bcm2835_dma_synchronize(struct dma_chan *chan)
drivers/dma/bcm2835-dma.c
795
struct bcm2835_chan *c = to_bcm2835_dma_chan(chan);
drivers/dma/bcm2835-dma.c
830
vc.chan.device_node) {
drivers/dma/bcm2835-dma.c
831
list_del(&c->vc.chan.device_node);
drivers/dma/bcm2835-dma.c
849
struct dma_chan *chan;
drivers/dma/bcm2835-dma.c
851
chan = dma_get_any_slave_channel(&d->ddev);
drivers/dma/bcm2835-dma.c
852
if (!chan)
drivers/dma/bcm2835-dma.c
856
to_bcm2835_dma_chan(chan)->dreq = spec->args[0];
drivers/dma/bcm2835-dma.c
858
return chan;
drivers/dma/bcm2835-dma.c
867
vc.chan.device_node) {
drivers/dma/dma-axi-dmac.c
1000
static void axi_dmac_adjust_chan_params(struct axi_dmac_chan *chan)
drivers/dma/dma-axi-dmac.c
1002
chan->address_align_mask = max(chan->dest_width, chan->src_width) - 1;
drivers/dma/dma-axi-dmac.c
1004
if (axi_dmac_dest_is_mem(chan) && axi_dmac_src_is_mem(chan))
drivers/dma/dma-axi-dmac.c
1005
chan->direction = DMA_MEM_TO_MEM;
drivers/dma/dma-axi-dmac.c
1006
else if (!axi_dmac_dest_is_mem(chan) && axi_dmac_src_is_mem(chan))
drivers/dma/dma-axi-dmac.c
1007
chan->direction = DMA_MEM_TO_DEV;
drivers/dma/dma-axi-dmac.c
1008
else if (axi_dmac_dest_is_mem(chan) && !axi_dmac_src_is_mem(chan))
drivers/dma/dma-axi-dmac.c
1009
chan->direction = DMA_DEV_TO_MEM;
drivers/dma/dma-axi-dmac.c
1011
chan->direction = DMA_DEV_TO_DEV;
drivers/dma/dma-axi-dmac.c
1020
struct axi_dmac_chan *chan)
drivers/dma/dma-axi-dmac.c
1038
chan->src_type = val;
drivers/dma/dma-axi-dmac.c
1045
chan->dest_type = val;
drivers/dma/dma-axi-dmac.c
1050
chan->src_width = val / 8;
drivers/dma/dma-axi-dmac.c
1055
chan->dest_width = val / 8;
drivers/dma/dma-axi-dmac.c
1057
axi_dmac_adjust_chan_params(chan);
drivers/dma/dma-axi-dmac.c
1072
ret = axi_dmac_parse_chan_dt(of_chan, &dmac->chan);
drivers/dma/dma-axi-dmac.c
1082
struct axi_dmac_chan *chan = &dmac->chan;
drivers/dma/dma-axi-dmac.c
1096
chan->src_type = val;
drivers/dma/dma-axi-dmac.c
1103
chan->dest_type = val;
drivers/dma/dma-axi-dmac.c
1111
chan->src_width = 1 << val;
drivers/dma/dma-axi-dmac.c
1118
chan->dest_width = 1 << val;
drivers/dma/dma-axi-dmac.c
1120
axi_dmac_adjust_chan_params(chan);
drivers/dma/dma-axi-dmac.c
1127
struct axi_dmac_chan *chan = &dmac->chan;
drivers/dma/dma-axi-dmac.c
1134
chan->hw_cyclic = true;
drivers/dma/dma-axi-dmac.c
1138
chan->hw_sg = true;
drivers/dma/dma-axi-dmac.c
1142
chan->hw_2d = true;
drivers/dma/dma-axi-dmac.c
1145
chan->max_length = axi_dmac_read(dmac, AXI_DMAC_REG_X_LENGTH);
drivers/dma/dma-axi-dmac.c
1146
if (chan->max_length != UINT_MAX)
drivers/dma/dma-axi-dmac.c
1147
chan->max_length++;
drivers/dma/dma-axi-dmac.c
1151
chan->dest_type == AXI_DMAC_BUS_TYPE_AXI_MM) {
drivers/dma/dma-axi-dmac.c
1159
chan->src_type == AXI_DMAC_BUS_TYPE_AXI_MM) {
drivers/dma/dma-axi-dmac.c
1165
if (axi_dmac_dest_is_mem(chan)) {
drivers/dma/dma-axi-dmac.c
1182
chan->hw_partial_xfer = true;
drivers/dma/dma-axi-dmac.c
1186
chan->length_align_mask =
drivers/dma/dma-axi-dmac.c
1189
chan->length_align_mask = chan->address_align_mask;
drivers/dma/dma-axi-dmac.c
1192
if (version < ADI_AXI_PCORE_VER(4, 6, 0) && !chan->hw_sg)
drivers/dma/dma-axi-dmac.c
1193
chan->hw_cyclic_hotfix = true;
drivers/dma/dma-axi-dmac.c
1246
INIT_LIST_HEAD(&dmac->chan.active_descs);
drivers/dma/dma-axi-dmac.c
1265
dma_dev->src_addr_widths = BIT(dmac->chan.src_width);
drivers/dma/dma-axi-dmac.c
1266
dma_dev->dst_addr_widths = BIT(dmac->chan.dest_width);
drivers/dma/dma-axi-dmac.c
1267
dma_dev->directions = BIT(dmac->chan.direction);
drivers/dma/dma-axi-dmac.c
1272
dmac->chan.vchan.desc_free = axi_dmac_desc_free;
drivers/dma/dma-axi-dmac.c
1273
vchan_init(&dmac->chan.vchan, dma_dev);
drivers/dma/dma-axi-dmac.c
1279
dma_dev->copy_align = (dmac->chan.address_align_mask + 1);
drivers/dma/dma-axi-dmac.c
1281
if (dmac->chan.hw_sg)
drivers/dma/dma-axi-dmac.c
1306
&dmac->chan.vchan.task);
drivers/dma/dma-axi-dmac.c
135
struct axi_dmac_chan *chan;
drivers/dma/dma-axi-dmac.c
176
struct axi_dmac_chan chan;
drivers/dma/dma-axi-dmac.c
179
static struct axi_dmac *chan_to_axi_dmac(struct axi_dmac_chan *chan)
drivers/dma/dma-axi-dmac.c
181
return container_of(chan->vchan.chan.device, struct axi_dmac,
drivers/dma/dma-axi-dmac.c
187
return container_of(c, struct axi_dmac_chan, vchan.chan);
drivers/dma/dma-axi-dmac.c
206
static int axi_dmac_src_is_mem(struct axi_dmac_chan *chan)
drivers/dma/dma-axi-dmac.c
208
return chan->src_type == AXI_DMAC_BUS_TYPE_AXI_MM;
drivers/dma/dma-axi-dmac.c
211
static int axi_dmac_dest_is_mem(struct axi_dmac_chan *chan)
drivers/dma/dma-axi-dmac.c
213
return chan->dest_type == AXI_DMAC_BUS_TYPE_AXI_MM;
drivers/dma/dma-axi-dmac.c
216
static bool axi_dmac_check_len(struct axi_dmac_chan *chan, unsigned int len)
drivers/dma/dma-axi-dmac.c
220
if ((len & chan->length_align_mask) != 0) /* Not aligned */
drivers/dma/dma-axi-dmac.c
225
static bool axi_dmac_check_addr(struct axi_dmac_chan *chan, dma_addr_t addr)
drivers/dma/dma-axi-dmac.c
227
if ((addr & chan->address_align_mask) != 0) /* Not aligned */
drivers/dma/dma-axi-dmac.c
232
static struct axi_dmac_desc *axi_dmac_active_desc(struct axi_dmac_chan *chan)
drivers/dma/dma-axi-dmac.c
234
return list_first_entry_or_null(&chan->active_descs,
drivers/dma/dma-axi-dmac.c
239
struct axi_dmac_chan *chan)
drivers/dma/dma-axi-dmac.c
241
struct axi_dmac_desc *active = axi_dmac_active_desc(chan);
drivers/dma/dma-axi-dmac.c
258
if (chan->next_desc)
drivers/dma/dma-axi-dmac.c
259
return chan->next_desc;
drivers/dma/dma-axi-dmac.c
261
vdesc = vchan_next_desc(&chan->vchan);
drivers/dma/dma-axi-dmac.c
266
struct device *dev = chan_to_axi_dmac(chan)->dma_dev.dev;
drivers/dma/dma-axi-dmac.c
273
list_move_tail(&vdesc->node, &chan->active_descs);
drivers/dma/dma-axi-dmac.c
275
chan->next_desc = desc;
drivers/dma/dma-axi-dmac.c
282
if (chan->hw_sg) {
drivers/dma/dma-axi-dmac.c
304
static void axi_dmac_start_transfer(struct axi_dmac_chan *chan)
drivers/dma/dma-axi-dmac.c
306
struct axi_dmac *dmac = chan_to_axi_dmac(chan);
drivers/dma/dma-axi-dmac.c
312
desc = axi_dmac_get_next_desc(dmac, chan);
drivers/dma/dma-axi-dmac.c
328
if (chan->hw_sg) {
drivers/dma/dma-axi-dmac.c
329
chan->next_desc = NULL;
drivers/dma/dma-axi-dmac.c
335
chan->next_desc = NULL;
drivers/dma/dma-axi-dmac.c
341
if (!chan->hw_sg) {
drivers/dma/dma-axi-dmac.c
342
if (axi_dmac_dest_is_mem(chan)) {
drivers/dma/dma-axi-dmac.c
349
if (axi_dmac_src_is_mem(chan)) {
drivers/dma/dma-axi-dmac.c
360
if (chan->hw_cyclic && desc->cyclic && !desc->vdesc.tx.callback) {
drivers/dma/dma-axi-dmac.c
361
if (chan->hw_sg) {
drivers/dma/dma-axi-dmac.c
364
chan->next_desc = NULL;
drivers/dma/dma-axi-dmac.c
369
if (chan->hw_partial_xfer)
drivers/dma/dma-axi-dmac.c
372
if (chan->hw_sg) {
drivers/dma/dma-axi-dmac.c
384
static inline unsigned int axi_dmac_total_sg_bytes(struct axi_dmac_chan *chan,
drivers/dma/dma-axi-dmac.c
387
if (chan->hw_2d)
drivers/dma/dma-axi-dmac.c
393
static void axi_dmac_dequeue_partial_xfers(struct axi_dmac_chan *chan)
drivers/dma/dma-axi-dmac.c
395
struct axi_dmac *dmac = chan_to_axi_dmac(chan);
drivers/dma/dma-axi-dmac.c
406
list_for_each_entry(desc, &chan->active_descs, vdesc.node) {
drivers/dma/dma-axi-dmac.c
439
static void axi_dmac_compute_residue(struct axi_dmac_chan *chan,
drivers/dma/dma-axi-dmac.c
450
if (chan->hw_sg)
drivers/dma/dma-axi-dmac.c
459
total = axi_dmac_total_sg_bytes(chan, sg);
drivers/dma/dma-axi-dmac.c
464
static bool axi_dmac_handle_cyclic_eot(struct axi_dmac_chan *chan,
drivers/dma/dma-axi-dmac.c
467
struct device *dev = chan_to_axi_dmac(chan)->dma_dev.dev;
drivers/dma/dma-axi-dmac.c
482
if (chan->hw_cyclic_hotfix) {
drivers/dma/dma-axi-dmac.c
483
struct axi_dmac *dmac = chan_to_axi_dmac(chan);
drivers/dma/dma-axi-dmac.c
502
vdesc = vchan_next_desc(&chan->vchan);
drivers/dma/dma-axi-dmac.c
512
chan->next_desc = NULL;
drivers/dma/dma-axi-dmac.c
519
static bool axi_dmac_transfer_done(struct axi_dmac_chan *chan,
drivers/dma/dma-axi-dmac.c
526
active = axi_dmac_active_desc(chan);
drivers/dma/dma-axi-dmac.c
530
if (chan->hw_partial_xfer &&
drivers/dma/dma-axi-dmac.c
532
axi_dmac_dequeue_partial_xfers(chan);
drivers/dma/dma-axi-dmac.c
534
if (chan->hw_sg) {
drivers/dma/dma-axi-dmac.c
537
start_next = axi_dmac_handle_cyclic_eot(chan, active);
drivers/dma/dma-axi-dmac.c
541
active = axi_dmac_active_desc(chan);
drivers/dma/dma-axi-dmac.c
559
axi_dmac_compute_residue(chan, active);
drivers/dma/dma-axi-dmac.c
568
start_next |= axi_dmac_handle_cyclic_eot(chan, active);
drivers/dma/dma-axi-dmac.c
572
active = axi_dmac_active_desc(chan);
drivers/dma/dma-axi-dmac.c
593
spin_lock(&dmac->chan.vchan.lock);
drivers/dma/dma-axi-dmac.c
599
start_next = axi_dmac_transfer_done(&dmac->chan, completed);
drivers/dma/dma-axi-dmac.c
603
axi_dmac_start_transfer(&dmac->chan);
drivers/dma/dma-axi-dmac.c
604
spin_unlock(&dmac->chan.vchan.lock);
drivers/dma/dma-axi-dmac.c
611
struct axi_dmac_chan *chan = to_axi_dmac_chan(c);
drivers/dma/dma-axi-dmac.c
612
struct axi_dmac *dmac = chan_to_axi_dmac(chan);
drivers/dma/dma-axi-dmac.c
616
spin_lock_irqsave(&chan->vchan.lock, flags);
drivers/dma/dma-axi-dmac.c
618
chan->next_desc = NULL;
drivers/dma/dma-axi-dmac.c
619
vchan_get_all_descriptors(&chan->vchan, &head);
drivers/dma/dma-axi-dmac.c
620
list_splice_tail_init(&chan->active_descs, &head);
drivers/dma/dma-axi-dmac.c
621
spin_unlock_irqrestore(&chan->vchan.lock, flags);
drivers/dma/dma-axi-dmac.c
623
vchan_dma_desc_free_list(&chan->vchan, &head);
drivers/dma/dma-axi-dmac.c
630
struct axi_dmac_chan *chan = to_axi_dmac_chan(c);
drivers/dma/dma-axi-dmac.c
632
vchan_synchronize(&chan->vchan);
drivers/dma/dma-axi-dmac.c
637
struct axi_dmac_chan *chan = to_axi_dmac_chan(c);
drivers/dma/dma-axi-dmac.c
638
struct axi_dmac *dmac = chan_to_axi_dmac(chan);
drivers/dma/dma-axi-dmac.c
642
if (chan->hw_sg)
drivers/dma/dma-axi-dmac.c
647
spin_lock_irqsave(&chan->vchan.lock, flags);
drivers/dma/dma-axi-dmac.c
648
if (vchan_issue_pending(&chan->vchan))
drivers/dma/dma-axi-dmac.c
649
axi_dmac_start_transfer(chan);
drivers/dma/dma-axi-dmac.c
650
spin_unlock_irqrestore(&chan->vchan.lock, flags);
drivers/dma/dma-axi-dmac.c
656
dma_pool_free(desc->chan->pool, desc->sg[i].hw, desc->sg[i].hw_phys);
drivers/dma/dma-axi-dmac.c
662
axi_dmac_alloc_desc(struct axi_dmac_chan *chan, unsigned int num_sgs)
drivers/dma/dma-axi-dmac.c
673
desc->chan = chan;
drivers/dma/dma-axi-dmac.c
676
hws = dma_pool_zalloc(chan->pool, GFP_NOWAIT, &hw_phys);
drivers/dma/dma-axi-dmac.c
699
static struct axi_dmac_sg *axi_dmac_fill_linear_sg(struct axi_dmac_chan *chan,
drivers/dma/dma-axi-dmac.c
709
num_segments = DIV_ROUND_UP(period_len, chan->max_length);
drivers/dma/dma-axi-dmac.c
712
segment_size = ((segment_size - 1) | chan->length_align_mask) + 1;
drivers/dma/dma-axi-dmac.c
745
struct axi_dmac_chan *chan = to_axi_dmac_chan(c);
drivers/dma/dma-axi-dmac.c
751
if (direction != chan->direction)
drivers/dma/dma-axi-dmac.c
755
num_sgs += DIV_ROUND_UP(vecs[i].len, chan->max_length);
drivers/dma/dma-axi-dmac.c
757
desc = axi_dmac_alloc_desc(chan, num_sgs);
drivers/dma/dma-axi-dmac.c
764
if (!axi_dmac_check_addr(chan, vecs[i].addr) ||
drivers/dma/dma-axi-dmac.c
765
!axi_dmac_check_len(chan, vecs[i].len)) {
drivers/dma/dma-axi-dmac.c
770
dsg = axi_dmac_fill_linear_sg(chan, direction, vecs[i].addr, 1,
drivers/dma/dma-axi-dmac.c
781
return vchan_tx_prep(&chan->vchan, &desc->vdesc, flags);
drivers/dma/dma-axi-dmac.c
789
struct axi_dmac_chan *chan = to_axi_dmac_chan(c);
drivers/dma/dma-axi-dmac.c
796
if (direction != chan->direction)
drivers/dma/dma-axi-dmac.c
799
num_sgs = sg_nents_for_dma(sgl, sg_len, chan->max_length);
drivers/dma/dma-axi-dmac.c
800
desc = axi_dmac_alloc_desc(chan, num_sgs);
drivers/dma/dma-axi-dmac.c
807
if (!axi_dmac_check_addr(chan, sg_dma_address(sg)) ||
drivers/dma/dma-axi-dmac.c
808
!axi_dmac_check_len(chan, sg_dma_len(sg))) {
drivers/dma/dma-axi-dmac.c
813
dsg = axi_dmac_fill_linear_sg(chan, direction, sg_dma_address(sg), 1,
drivers/dma/dma-axi-dmac.c
819
return vchan_tx_prep(&chan->vchan, &desc->vdesc, flags);
drivers/dma/dma-axi-dmac.c
827
struct axi_dmac_chan *chan = to_axi_dmac_chan(c);
drivers/dma/dma-axi-dmac.c
831
if (direction != chan->direction)
drivers/dma/dma-axi-dmac.c
834
if (!axi_dmac_check_len(chan, buf_len) ||
drivers/dma/dma-axi-dmac.c
835
!axi_dmac_check_addr(chan, buf_addr))
drivers/dma/dma-axi-dmac.c
842
num_segments = DIV_ROUND_UP(period_len, chan->max_length);
drivers/dma/dma-axi-dmac.c
845
desc = axi_dmac_alloc_desc(chan, num_sgs);
drivers/dma/dma-axi-dmac.c
853
axi_dmac_fill_linear_sg(chan, direction, buf_addr, num_periods,
drivers/dma/dma-axi-dmac.c
858
return vchan_tx_prep(&chan->vchan, &desc->vdesc, flags);
drivers/dma/dma-axi-dmac.c
865
struct axi_dmac_chan *chan = to_axi_dmac_chan(c);
drivers/dma/dma-axi-dmac.c
872
if (xt->dir != chan->direction)
drivers/dma/dma-axi-dmac.c
875
if (axi_dmac_src_is_mem(chan)) {
drivers/dma/dma-axi-dmac.c
876
if (!xt->src_inc || !axi_dmac_check_addr(chan, xt->src_start))
drivers/dma/dma-axi-dmac.c
880
if (axi_dmac_dest_is_mem(chan)) {
drivers/dma/dma-axi-dmac.c
881
if (!xt->dst_inc || !axi_dmac_check_addr(chan, xt->dst_start))
drivers/dma/dma-axi-dmac.c
888
if (chan->hw_2d) {
drivers/dma/dma-axi-dmac.c
889
if (!axi_dmac_check_len(chan, xt->sgl[0].size) ||
drivers/dma/dma-axi-dmac.c
892
if (xt->sgl[0].size + dst_icg > chan->max_length ||
drivers/dma/dma-axi-dmac.c
893
xt->sgl[0].size + src_icg > chan->max_length)
drivers/dma/dma-axi-dmac.c
898
if (chan->max_length / xt->sgl[0].size < xt->numf)
drivers/dma/dma-axi-dmac.c
900
if (!axi_dmac_check_len(chan, xt->sgl[0].size * xt->numf))
drivers/dma/dma-axi-dmac.c
904
desc = axi_dmac_alloc_desc(chan, 1);
drivers/dma/dma-axi-dmac.c
908
if (axi_dmac_src_is_mem(chan)) {
drivers/dma/dma-axi-dmac.c
913
if (axi_dmac_dest_is_mem(chan)) {
drivers/dma/dma-axi-dmac.c
918
if (chan->hw_2d) {
drivers/dma/dma-axi-dmac.c
929
return vchan_tx_prep(&chan->vchan, &desc->vdesc, flags);
drivers/dma/dma-axi-dmac.c
934
struct axi_dmac_chan *chan = to_axi_dmac_chan(c);
drivers/dma/dma-axi-dmac.c
937
chan->pool = dma_pool_create(dev_name(dev), dev,
drivers/dma/dma-axi-dmac.c
940
if (!chan->pool)
drivers/dma/dma-axi-dmac.c
948
struct axi_dmac_chan *chan = to_axi_dmac_chan(c);
drivers/dma/dma-axi-dmac.c
951
dma_pool_destroy(chan->pool);
drivers/dma/dma-jz4780.c
1022
tasklet_kill(&jzdma->chan[i].vchan.task);
drivers/dma/dma-jz4780.c
157
struct jz4780_dma_chan chan[];
drivers/dma/dma-jz4780.c
165
static inline struct jz4780_dma_chan *to_jz4780_dma_chan(struct dma_chan *chan)
drivers/dma/dma-jz4780.c
167
return container_of(chan, struct jz4780_dma_chan, vchan.chan);
drivers/dma/dma-jz4780.c
179
return container_of(jzchan->vchan.chan.device, struct jz4780_dma_dev,
drivers/dma/dma-jz4780.c
265
struct jz4780_dma_chan *jzchan = to_jz4780_dma_chan(vdesc->tx.chan);
drivers/dma/dma-jz4780.c
362
struct dma_chan *chan, struct scatterlist *sgl, unsigned int sg_len,
drivers/dma/dma-jz4780.c
366
struct jz4780_dma_chan *jzchan = to_jz4780_dma_chan(chan);
drivers/dma/dma-jz4780.c
407
struct dma_chan *chan, dma_addr_t buf_addr, size_t buf_len,
drivers/dma/dma-jz4780.c
411
struct jz4780_dma_chan *jzchan = to_jz4780_dma_chan(chan);
drivers/dma/dma-jz4780.c
459
struct dma_chan *chan, dma_addr_t dest, dma_addr_t src,
drivers/dma/dma-jz4780.c
462
struct jz4780_dma_chan *jzchan = to_jz4780_dma_chan(chan);
drivers/dma/dma-jz4780.c
561
static void jz4780_dma_issue_pending(struct dma_chan *chan)
drivers/dma/dma-jz4780.c
563
struct jz4780_dma_chan *jzchan = to_jz4780_dma_chan(chan);
drivers/dma/dma-jz4780.c
574
static int jz4780_dma_terminate_all(struct dma_chan *chan)
drivers/dma/dma-jz4780.c
576
struct jz4780_dma_chan *jzchan = to_jz4780_dma_chan(chan);
drivers/dma/dma-jz4780.c
600
static void jz4780_dma_synchronize(struct dma_chan *chan)
drivers/dma/dma-jz4780.c
602
struct jz4780_dma_chan *jzchan = to_jz4780_dma_chan(chan);
drivers/dma/dma-jz4780.c
609
static int jz4780_dma_config(struct dma_chan *chan,
drivers/dma/dma-jz4780.c
612
struct jz4780_dma_chan *jzchan = to_jz4780_dma_chan(chan);
drivers/dma/dma-jz4780.c
641
static enum dma_status jz4780_dma_tx_status(struct dma_chan *chan,
drivers/dma/dma-jz4780.c
644
struct jz4780_dma_chan *jzchan = to_jz4780_dma_chan(chan);
drivers/dma/dma-jz4780.c
652
status = dma_cookie_status(chan, cookie, txstate);
drivers/dma/dma-jz4780.c
690
dev_warn(&jzchan->vchan.chan.dev->device,
drivers/dma/dma-jz4780.c
695
dev_warn(&jzchan->vchan.chan.dev->device,
drivers/dma/dma-jz4780.c
724
dev_err(&jzchan->vchan.chan.dev->device,
drivers/dma/dma-jz4780.c
744
if (jz4780_dma_chan_irq(jzdma, &jzdma->chan[i]))
drivers/dma/dma-jz4780.c
759
static int jz4780_dma_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/dma-jz4780.c
761
struct jz4780_dma_chan *jzchan = to_jz4780_dma_chan(chan);
drivers/dma/dma-jz4780.c
763
jzchan->desc_pool = dma_pool_create(dev_name(&chan->dev->device),
drivers/dma/dma-jz4780.c
764
chan->device->dev,
drivers/dma/dma-jz4780.c
768
dev_err(&chan->dev->device,
drivers/dma/dma-jz4780.c
776
static void jz4780_dma_free_chan_resources(struct dma_chan *chan)
drivers/dma/dma-jz4780.c
778
struct jz4780_dma_chan *jzchan = to_jz4780_dma_chan(chan);
drivers/dma/dma-jz4780.c
785
static bool jz4780_dma_filter_fn(struct dma_chan *chan, void *param)
drivers/dma/dma-jz4780.c
787
struct jz4780_dma_chan *jzchan = to_jz4780_dma_chan(chan);
drivers/dma/dma-jz4780.c
840
jzdma->chan[data.channel].transfer_type_tx = data.transfer_type_tx;
drivers/dma/dma-jz4780.c
841
jzdma->chan[data.channel].transfer_type_rx = data.transfer_type_rx;
drivers/dma/dma-jz4780.c
844
&jzdma->chan[data.channel].vchan.chan);
drivers/dma/dma-jz4780.c
870
jzdma = devm_kzalloc(dev, struct_size(jzdma, chan,
drivers/dma/dma-jz4780.c
958
jzchan = &jzdma->chan[i];
drivers/dma/dmaengine.c
1007
struct dma_chan *chan;
drivers/dma/dmaengine.c
1016
list_for_each_entry(chan, &device->channels, device_node)
drivers/dma/dmaengine.c
1017
dma_chan_put(chan);
drivers/dma/dmaengine.c
1073
struct dma_chan *chan,
drivers/dma/dmaengine.c
1078
chan->local = alloc_percpu(typeof(*chan->local));
drivers/dma/dmaengine.c
1079
if (!chan->local)
drivers/dma/dmaengine.c
1081
chan->dev = kzalloc_obj(*chan->dev);
drivers/dma/dmaengine.c
1082
if (!chan->dev) {
drivers/dma/dmaengine.c
1091
chan->chan_id = ida_alloc(&device->chan_ida, GFP_KERNEL);
drivers/dma/dmaengine.c
1092
if (chan->chan_id < 0) {
drivers/dma/dmaengine.c
1094
__func__, chan->chan_id);
drivers/dma/dmaengine.c
1095
rc = chan->chan_id;
drivers/dma/dmaengine.c
1099
chan->dev->device.class = &dma_devclass;
drivers/dma/dmaengine.c
1100
chan->dev->device.parent = device->dev;
drivers/dma/dmaengine.c
1101
chan->dev->chan = chan;
drivers/dma/dmaengine.c
1102
chan->dev->dev_id = device->dev_id;
drivers/dma/dmaengine.c
1104
dev_set_name(&chan->dev->device, "dma%dchan%d", device->dev_id, chan->chan_id);
drivers/dma/dmaengine.c
1106
dev_set_name(&chan->dev->device, "%s", name);
drivers/dma/dmaengine.c
1107
rc = device_register(&chan->dev->device);
drivers/dma/dmaengine.c
1110
chan->client_count = 0;
drivers/dma/dmaengine.c
1116
ida_free(&device->chan_ida, chan->chan_id);
drivers/dma/dmaengine.c
1118
kfree(chan->dev);
drivers/dma/dmaengine.c
1120
free_percpu(chan->local);
drivers/dma/dmaengine.c
1121
chan->local = NULL;
drivers/dma/dmaengine.c
1126
struct dma_chan *chan,
drivers/dma/dmaengine.c
1131
rc = __dma_async_device_channel_register(device, chan, name);
drivers/dma/dmaengine.c
1141
struct dma_chan *chan)
drivers/dma/dmaengine.c
1143
if (chan->local == NULL)
drivers/dma/dmaengine.c
1146
WARN_ONCE(!device->device_release && chan->client_count,
drivers/dma/dmaengine.c
1148
__func__, chan->client_count);
drivers/dma/dmaengine.c
1151
chan->dev->chan = NULL;
drivers/dma/dmaengine.c
1153
ida_free(&device->chan_ida, chan->chan_id);
drivers/dma/dmaengine.c
1154
device_unregister(&chan->dev->device);
drivers/dma/dmaengine.c
1155
free_percpu(chan->local);
drivers/dma/dmaengine.c
1159
struct dma_chan *chan)
drivers/dma/dmaengine.c
1161
__dma_async_device_channel_unregister(device, chan);
drivers/dma/dmaengine.c
1177
struct dma_chan* chan;
drivers/dma/dmaengine.c
1242
list_for_each_entry(chan, &device->channels, device_node) {
drivers/dma/dmaengine.c
1243
rc = __dma_async_device_channel_register(device, chan, NULL);
drivers/dma/dmaengine.c
1251
list_for_each_entry(chan, &device->channels, device_node) {
drivers/dma/dmaengine.c
1255
if (dma_chan_get(chan) == -ENODEV) {
drivers/dma/dmaengine.c
1282
list_for_each_entry(chan, &device->channels, device_node) {
drivers/dma/dmaengine.c
1283
if (chan->local == NULL)
drivers/dma/dmaengine.c
1286
chan->dev->chan = NULL;
drivers/dma/dmaengine.c
1288
device_unregister(&chan->dev->device);
drivers/dma/dmaengine.c
1289
free_percpu(chan->local);
drivers/dma/dmaengine.c
1304
struct dma_chan *chan, *n;
drivers/dma/dmaengine.c
1308
list_for_each_entry_safe(chan, n, &device->channels, device_node)
drivers/dma/dmaengine.c
1309
__dma_async_device_channel_unregister(device, chan);
drivers/dma/dmaengine.c
1477
struct dma_chan *chan)
drivers/dma/dmaengine.c
1479
tx->chan = chan;
drivers/dma/dmaengine.c
1491
if (dmaengine_is_metadata_mode_supported(desc->chan, mode))
drivers/dma/dmaengine.c
1573
dev_err(tx->chan->device->dev,
drivers/dma/dmaengine.c
1580
return dma_sync_wait(tx->chan, tx->cookie);
drivers/dma/dmaengine.c
1595
struct dma_chan *chan;
drivers/dma/dmaengine.c
1602
chan = dep->chan;
drivers/dma/dmaengine.c
161
return chan_dev->chan;
drivers/dma/dmaengine.c
1612
if (dep_next && dep_next->chan == chan)
drivers/dma/dmaengine.c
1621
chan->device->device_issue_pending(chan);
drivers/dma/dmaengine.c
167
struct dma_chan *chan;
drivers/dma/dmaengine.c
173
chan = dev_to_dma_chan(dev);
drivers/dma/dmaengine.c
174
if (chan) {
drivers/dma/dmaengine.c
176
count += per_cpu_ptr(chan->local, i)->memcpy_count;
drivers/dma/dmaengine.c
189
struct dma_chan *chan;
drivers/dma/dmaengine.c
195
chan = dev_to_dma_chan(dev);
drivers/dma/dmaengine.c
196
if (chan) {
drivers/dma/dmaengine.c
198
count += per_cpu_ptr(chan->local, i)->bytes_transferred;
drivers/dma/dmaengine.c
211
struct dma_chan *chan;
drivers/dma/dmaengine.c
215
chan = dev_to_dma_chan(dev);
drivers/dma/dmaengine.c
216
if (chan)
drivers/dma/dmaengine.c
217
err = sysfs_emit(buf, "%d\n", chan->client_count);
drivers/dma/dmaengine.c
258
struct dma_chan *chan;
drivers/dma/dmaengine.c
304
static bool dma_chan_is_local(struct dma_chan *chan, int cpu)
drivers/dma/dmaengine.c
306
int node = dev_to_node(chan->device->dev);
drivers/dma/dmaengine.c
325
struct dma_chan *chan;
drivers/dma/dmaengine.c
333
list_for_each_entry(chan, &device->channels, device_node) {
drivers/dma/dmaengine.c
334
if (!chan->client_count)
drivers/dma/dmaengine.c
336
if (!min || chan->table_count < min->table_count)
drivers/dma/dmaengine.c
337
min = chan;
drivers/dma/dmaengine.c
339
if (dma_chan_is_local(chan, cpu))
drivers/dma/dmaengine.c
341
chan->table_count < localmin->table_count)
drivers/dma/dmaengine.c
342
localmin = chan;
drivers/dma/dmaengine.c
346
chan = localmin ? localmin : min;
drivers/dma/dmaengine.c
348
if (chan)
drivers/dma/dmaengine.c
349
chan->table_count++;
drivers/dma/dmaengine.c
351
return chan;
drivers/dma/dmaengine.c
365
struct dma_chan *chan;
drivers/dma/dmaengine.c
373
per_cpu_ptr(channel_table[cap], cpu)->chan = NULL;
drivers/dma/dmaengine.c
378
list_for_each_entry(chan, &device->channels, device_node)
drivers/dma/dmaengine.c
379
chan->table_count = 0;
drivers/dma/dmaengine.c
389
chan = min_chan(cap, cpu);
drivers/dma/dmaengine.c
390
per_cpu_ptr(channel_table[cap], cpu)->chan = chan;
drivers/dma/dmaengine.c
404
static struct module *dma_chan_to_owner(struct dma_chan *chan)
drivers/dma/dmaengine.c
406
return chan->device->owner;
drivers/dma/dmaengine.c
415
static void balance_ref_count(struct dma_chan *chan)
drivers/dma/dmaengine.c
417
struct module *owner = dma_chan_to_owner(chan);
drivers/dma/dmaengine.c
419
while (chan->client_count < dmaengine_ref_count) {
drivers/dma/dmaengine.c
421
chan->client_count++;
drivers/dma/dmaengine.c
448
static int dma_chan_get(struct dma_chan *chan)
drivers/dma/dmaengine.c
450
struct module *owner = dma_chan_to_owner(chan);
drivers/dma/dmaengine.c
454
if (chan->client_count) {
drivers/dma/dmaengine.c
456
chan->client_count++;
drivers/dma/dmaengine.c
463
ret = kref_get_unless_zero(&chan->device->ref);
drivers/dma/dmaengine.c
470
if (chan->device->device_alloc_chan_resources) {
drivers/dma/dmaengine.c
471
ret = chan->device->device_alloc_chan_resources(chan);
drivers/dma/dmaengine.c
476
chan->client_count++;
drivers/dma/dmaengine.c
478
if (!dma_has_cap(DMA_PRIVATE, chan->device->cap_mask))
drivers/dma/dmaengine.c
479
balance_ref_count(chan);
drivers/dma/dmaengine.c
484
dma_device_put(chan->device);
drivers/dma/dmaengine.c
496
static void dma_chan_put(struct dma_chan *chan)
drivers/dma/dmaengine.c
499
if (!chan->client_count)
drivers/dma/dmaengine.c
502
chan->client_count--;
drivers/dma/dmaengine.c
505
if (!chan->client_count && chan->device->device_free_chan_resources) {
drivers/dma/dmaengine.c
507
dmaengine_synchronize(chan);
drivers/dma/dmaengine.c
508
chan->device->device_free_chan_resources(chan);
drivers/dma/dmaengine.c
512
if (chan->router && chan->router->route_free) {
drivers/dma/dmaengine.c
513
chan->router->route_free(chan->router->dev, chan->route_data);
drivers/dma/dmaengine.c
514
chan->router = NULL;
drivers/dma/dmaengine.c
515
chan->route_data = NULL;
drivers/dma/dmaengine.c
518
dma_device_put(chan->device);
drivers/dma/dmaengine.c
519
module_put(dma_chan_to_owner(chan));
drivers/dma/dmaengine.c
522
enum dma_status dma_sync_wait(struct dma_chan *chan, dma_cookie_t cookie)
drivers/dma/dmaengine.c
527
dma_async_issue_pending(chan);
drivers/dma/dmaengine.c
529
status = dma_async_is_tx_complete(chan, cookie, NULL, NULL);
drivers/dma/dmaengine.c
531
dev_err(chan->device->dev, "%s: timeout!\n", __func__);
drivers/dma/dmaengine.c
549
return this_cpu_read(channel_table[tx_type]->chan);
drivers/dma/dmaengine.c
559
struct dma_chan *chan;
drivers/dma/dmaengine.c
565
list_for_each_entry(chan, &device->channels, device_node)
drivers/dma/dmaengine.c
566
if (chan->client_count)
drivers/dma/dmaengine.c
567
device->device_issue_pending(chan);
drivers/dma/dmaengine.c
573
int dma_get_slave_caps(struct dma_chan *chan, struct dma_slave_caps *caps)
drivers/dma/dmaengine.c
577
if (!chan || !caps)
drivers/dma/dmaengine.c
580
device = chan->device;
drivers/dma/dmaengine.c
615
device->device_caps(chan, caps);
drivers/dma/dmaengine.c
625
struct dma_chan *chan;
drivers/dma/dmaengine.c
635
list_for_each_entry(chan, &dev->channels, device_node) {
drivers/dma/dmaengine.c
637
if (chan->client_count)
drivers/dma/dmaengine.c
641
list_for_each_entry(chan, &dev->channels, device_node) {
drivers/dma/dmaengine.c
642
if (chan->client_count) {
drivers/dma/dmaengine.c
644
__func__, dma_chan_name(chan));
drivers/dma/dmaengine.c
647
if (fn && !fn(chan, fn_param)) {
drivers/dma/dmaengine.c
649
__func__, dma_chan_name(chan));
drivers/dma/dmaengine.c
652
return chan;
drivers/dma/dmaengine.c
662
struct dma_chan *chan = private_candidate(mask, device, fn, fn_param);
drivers/dma/dmaengine.c
665
if (chan) {
drivers/dma/dmaengine.c
673
err = dma_chan_get(chan);
drivers/dma/dmaengine.c
678
__func__, dma_chan_name(chan));
drivers/dma/dmaengine.c
683
__func__, dma_chan_name(chan), err);
drivers/dma/dmaengine.c
688
chan = ERR_PTR(err);
drivers/dma/dmaengine.c
692
return chan ? chan : ERR_PTR(-EPROBE_DEFER);
drivers/dma/dmaengine.c
699
struct dma_chan *dma_get_slave_channel(struct dma_chan *chan)
drivers/dma/dmaengine.c
704
if (chan->client_count == 0) {
drivers/dma/dmaengine.c
705
struct dma_device *device = chan->device;
drivers/dma/dmaengine.c
710
err = dma_chan_get(chan);
drivers/dma/dmaengine.c
712
dev_dbg(chan->device->dev,
drivers/dma/dmaengine.c
714
__func__, dma_chan_name(chan), err);
drivers/dma/dmaengine.c
715
chan = NULL;
drivers/dma/dmaengine.c
720
chan = NULL;
drivers/dma/dmaengine.c
725
return chan;
drivers/dma/dmaengine.c
732
struct dma_chan *chan;
drivers/dma/dmaengine.c
740
chan = find_candidate(device, &mask, NULL, NULL);
drivers/dma/dmaengine.c
744
return IS_ERR(chan) ? NULL : chan;
drivers/dma/dmaengine.c
762
struct dma_chan *chan = NULL;
drivers/dma/dmaengine.c
771
chan = find_candidate(device, mask, fn, fn_param);
drivers/dma/dmaengine.c
772
if (!IS_ERR(chan))
drivers/dma/dmaengine.c
775
chan = NULL;
drivers/dma/dmaengine.c
781
chan ? "success" : "fail",
drivers/dma/dmaengine.c
782
chan ? dma_chan_name(chan) : NULL);
drivers/dma/dmaengine.c
784
return chan;
drivers/dma/dmaengine.c
819
struct dma_chan *chan = NULL;
drivers/dma/dmaengine.c
822
chan = of_dma_request_slave_channel(to_of_node(fwnode), name);
drivers/dma/dmaengine.c
824
chan = acpi_dma_request_slave_chan_by_name(dev, name);
drivers/dma/dmaengine.c
826
if (PTR_ERR(chan) == -EPROBE_DEFER)
drivers/dma/dmaengine.c
827
return chan;
drivers/dma/dmaengine.c
829
if (!IS_ERR_OR_NULL(chan))
drivers/dma/dmaengine.c
844
chan = find_candidate(d, &mask, d->filter.fn, map->param);
drivers/dma/dmaengine.c
845
if (!IS_ERR(chan))
drivers/dma/dmaengine.c
850
if (IS_ERR(chan))
drivers/dma/dmaengine.c
851
return chan;
drivers/dma/dmaengine.c
852
if (!chan)
drivers/dma/dmaengine.c
857
chan->dbg_client_name = kasprintf(GFP_KERNEL, "%s:%s", dev_name(dev), name);
drivers/dma/dmaengine.c
861
chan->name = kasprintf(GFP_KERNEL, "dma:%s", name);
drivers/dma/dmaengine.c
862
if (!chan->name)
drivers/dma/dmaengine.c
863
return chan;
drivers/dma/dmaengine.c
864
chan->slave = dev;
drivers/dma/dmaengine.c
866
if (sysfs_create_link(&chan->dev->device.kobj, &dev->kobj,
drivers/dma/dmaengine.c
869
if (sysfs_create_link(&dev->kobj, &chan->dev->device.kobj, chan->name))
drivers/dma/dmaengine.c
870
dev_warn(dev, "Cannot create DMA %s symlink\n", chan->name);
drivers/dma/dmaengine.c
872
return chan;
drivers/dma/dmaengine.c
88
struct dma_chan *chan;
drivers/dma/dmaengine.c
884
struct dma_chan *chan;
drivers/dma/dmaengine.c
889
chan = __dma_request_channel(mask, NULL, NULL, NULL);
drivers/dma/dmaengine.c
890
if (!chan) {
drivers/dma/dmaengine.c
893
chan = ERR_PTR(-EPROBE_DEFER);
drivers/dma/dmaengine.c
895
chan = ERR_PTR(-ENODEV);
drivers/dma/dmaengine.c
899
return chan;
drivers/dma/dmaengine.c
90
list_for_each_entry(chan, &dma_dev->channels, device_node) {
drivers/dma/dmaengine.c
903
void dma_release_channel(struct dma_chan *chan)
drivers/dma/dmaengine.c
906
WARN_ONCE(chan->client_count != 1,
drivers/dma/dmaengine.c
907
"chan reference count %d != 1\n", chan->client_count);
drivers/dma/dmaengine.c
909
if (--chan->device->privatecnt == 0)
drivers/dma/dmaengine.c
91
if (chan->client_count) {
drivers/dma/dmaengine.c
910
dma_cap_clear(DMA_PRIVATE, chan->device->cap_mask);
drivers/dma/dmaengine.c
912
dma_chan_put(chan);
drivers/dma/dmaengine.c
914
if (chan->slave) {
drivers/dma/dmaengine.c
915
sysfs_remove_link(&chan->dev->device.kobj, DMA_SLAVE_NAME);
drivers/dma/dmaengine.c
916
sysfs_remove_link(&chan->slave->kobj, chan->name);
drivers/dma/dmaengine.c
917
kfree(chan->name);
drivers/dma/dmaengine.c
918
chan->name = NULL;
drivers/dma/dmaengine.c
919
chan->slave = NULL;
drivers/dma/dmaengine.c
92
seq_printf(s, " %-13s| %s", dma_chan_name(chan),
drivers/dma/dmaengine.c
923
kfree(chan->dbg_client_name);
drivers/dma/dmaengine.c
924
chan->dbg_client_name = NULL;
drivers/dma/dmaengine.c
93
chan->dbg_client_name ?: "in-use");
drivers/dma/dmaengine.c
930
static void dmaenginem_release_channel(void *chan)
drivers/dma/dmaengine.c
932
dma_release_channel(chan);
drivers/dma/dmaengine.c
947
struct dma_chan *chan;
drivers/dma/dmaengine.c
95
if (chan->router)
drivers/dma/dmaengine.c
950
chan = dma_request_chan(dev, name);
drivers/dma/dmaengine.c
951
if (IS_ERR(chan))
drivers/dma/dmaengine.c
952
return chan;
drivers/dma/dmaengine.c
954
ret = devm_add_action_or_reset(dev, dmaenginem_release_channel, chan);
drivers/dma/dmaengine.c
958
return chan;
drivers/dma/dmaengine.c
968
struct dma_chan *chan;
drivers/dma/dmaengine.c
97
dev_name(chan->router->dev));
drivers/dma/dmaengine.c
978
list_for_each_entry(chan, &device->channels, device_node) {
drivers/dma/dmaengine.c
979
err = dma_chan_get(chan);
drivers/dma/dmaengine.c
985
dev_dbg(chan->device->dev,
drivers/dma/dmaengine.c
987
__func__, dma_chan_name(chan), err);
drivers/dma/dmaengine.h
16
static inline void dma_cookie_init(struct dma_chan *chan)
drivers/dma/dmaengine.h
18
chan->cookie = DMA_MIN_COOKIE;
drivers/dma/dmaengine.h
182
struct dma_chan *dma_get_slave_channel(struct dma_chan *chan);
drivers/dma/dmaengine.h
19
chan->completed_cookie = DMA_MIN_COOKIE;
drivers/dma/dmaengine.h
31
struct dma_chan *chan = tx->chan;
drivers/dma/dmaengine.h
34
cookie = chan->cookie + 1;
drivers/dma/dmaengine.h
37
tx->cookie = chan->cookie = cookie;
drivers/dma/dmaengine.h
55
tx->chan->completed_cookie = tx->cookie;
drivers/dma/dmaengine.h
68
static inline enum dma_status dma_cookie_status(struct dma_chan *chan,
drivers/dma/dmaengine.h
73
used = chan->cookie;
drivers/dma/dmaengine.h
74
complete = chan->completed_cookie;
drivers/dma/dmatest.c
1005
dma_chan_name(chan), op, i);
drivers/dma/dmatest.c
1008
dma_chan_name(chan), op, i);
drivers/dma/dmatest.c
1023
struct dma_chan *chan)
drivers/dma/dmatest.c
1026
struct dma_device *dma_dev = chan->device;
drivers/dma/dmatest.c
1032
pr_warn("No memory for %s\n", dma_chan_name(chan));
drivers/dma/dmatest.c
1036
dtc->chan = chan;
drivers/dma/dmatest.c
1069
thread_count, dma_chan_name(chan));
drivers/dma/dmatest.c
1077
static bool filter(struct dma_chan *chan, void *param)
drivers/dma/dmatest.c
1079
return dmatest_match_channel(param, chan) && dmatest_match_device(param, chan->device);
drivers/dma/dmatest.c
1091
struct dma_chan *chan;
drivers/dma/dmatest.c
1093
chan = dma_request_channel(mask, filter, params);
drivers/dma/dmatest.c
1094
if (chan) {
drivers/dma/dmatest.c
1095
if (dmatest_add_channel(info, chan)) {
drivers/dma/dmatest.c
1096
dma_release_channel(chan);
drivers/dma/dmatest.c
1148
thread_count, dma_chan_name(dtc->chan));
drivers/dma/dmatest.c
1155
struct dma_chan *chan;
drivers/dma/dmatest.c
1159
chan = dtc->chan;
drivers/dma/dmatest.c
1161
pr_debug("dropped channel %s\n", dma_chan_name(chan));
drivers/dma/dmatest.c
1162
dma_release_channel(chan);
drivers/dma/dmatest.c
1254
if (strcmp(dma_chan_name(dtc->chan),
drivers/dma/dmatest.c
1260
dma_chan_name(dtc->chan),
drivers/dma/dmatest.c
1279
if ((strcmp(dma_chan_name(dtc->chan), strim(test_channel)) != 0)
drivers/dma/dmatest.c
1282
strscpy(chan_reset_val, dma_chan_name(dtc->chan),
drivers/dma/dmatest.c
1335
thread_count, dma_chan_name(dtc->chan));
drivers/dma/dmatest.c
235
struct dma_chan *chan;
drivers/dma/dmatest.c
247
struct dma_chan *chan;
drivers/dma/dmatest.c
305
struct dma_chan *chan)
drivers/dma/dmatest.c
309
return strcmp(dma_chan_name(chan), params->channel) == 0;
drivers/dma/dmatest.c
582
struct dma_chan *chan;
drivers/dma/dmatest.c
616
chan = thread->chan;
drivers/dma/dmatest.c
617
dev = chan->device;
drivers/dma/dmatest.c
618
dma_dev = dmaengine_get_dma_device(chan);
drivers/dma/dmatest.c
796
tx = dev->device_prep_dma_memcpy(chan,
drivers/dma/dmatest.c
800
tx = dev->device_prep_dma_memset(chan,
drivers/dma/dmatest.c
805
tx = dev->device_prep_dma_xor(chan,
drivers/dma/dmatest.c
812
tx = dev->device_prep_dma_pq(chan, dma_pq, srcs,
drivers/dma/dmatest.c
839
status = dma_sync_wait(chan, cookie);
drivers/dma/dmatest.c
840
dmaengine_terminate_sync(chan);
drivers/dma/dmatest.c
844
dma_async_issue_pending(chan);
drivers/dma/dmatest.c
850
status = dma_async_is_tx_complete(chan, cookie, NULL,
drivers/dma/dmatest.c
942
dmaengine_terminate_sync(chan);
drivers/dma/dmatest.c
966
dmaengine_terminate_sync(dtc->chan);
drivers/dma/dmatest.c
976
struct dma_chan *chan = dtc->chan;
drivers/dma/dmatest.c
995
dma_chan_name(chan), op, i);
drivers/dma/dmatest.c
999
thread->chan = dtc->chan;
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1016
return vchan_tx_prep(&chan->vc, &desc->vd, flags);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1027
struct axi_dma_chan *chan = dchan_to_axi_dma_chan(dchan);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1029
memcpy(&chan->config, config, sizeof(*config));
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1034
static void axi_chan_dump_lli(struct axi_dma_chan *chan,
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1038
dev_err(dchan2dev(&chan->vc.chan), "NULL LLI\n");
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1042
dev_err(dchan2dev(&chan->vc.chan),
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1052
static void axi_chan_list_dump_lli(struct axi_dma_chan *chan,
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1055
int count = atomic_read(&chan->descs_allocated);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1059
axi_chan_dump_lli(chan, &desc_head->hw_desc[i]);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
106
if (chan->chip->dw->hdata->reg_map_8_channels &&
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1062
static noinline void axi_chan_handle_err(struct axi_dma_chan *chan, u32 status)
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1067
spin_lock_irqsave(&chan->vc.lock, flags);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1069
axi_chan_disable(chan);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
107
!chan->chip->dw->hdata->use_cfg2) {
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1072
vd = vchan_next_desc(&chan->vc);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1074
dev_err(chan2dev(chan), "BUG: %s, IRQ with no descriptors\n",
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1075
axi_chan_name(chan));
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1082
dev_err(chan2dev(chan),
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1084
axi_chan_name(chan), vd->tx.cookie, status);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1085
axi_chan_list_dump_lli(chan, vd_to_axi_desc(vd));
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1090
axi_chan_start_first_queued(chan);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1093
spin_unlock_irqrestore(&chan->vc.lock, flags);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1096
static void axi_chan_block_xfer_complete(struct axi_dma_chan *chan)
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1098
int count = atomic_read(&chan->descs_allocated);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1106
spin_lock_irqsave(&chan->vc.lock, flags);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1107
if (unlikely(axi_chan_is_hw_enable(chan))) {
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1108
dev_err(chan2dev(chan), "BUG: %s caught DWAXIDMAC_IRQ_DMA_TRF, but channel not idle!\n",
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1109
axi_chan_name(chan));
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1110
axi_chan_disable(chan);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1114
vd = vchan_next_desc(&chan->vc);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1116
dev_err(chan2dev(chan), "BUG: %s, IRQ with no descriptors\n",
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1117
axi_chan_name(chan));
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1121
if (chan->cyclic) {
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1124
llp = lo_hi_readq(chan->chan_regs + CH_LLP);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1128
axi_chan_irq_clear(chan, hw_desc->lli->status_lo);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1138
axi_chan_enable(chan);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1147
spin_unlock_irqrestore(&chan->vc.lock, flags);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1154
struct axi_dma_chan *chan;
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1163
chan = &dw->chan[i];
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1164
status = axi_chan_irq_read(chan);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1165
axi_chan_irq_clear(chan, status);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1168
axi_chan_name(chan), i, status);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1171
axi_chan_handle_err(chan, status);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1173
axi_chan_block_xfer_complete(chan);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1184
struct axi_dma_chan *chan = dchan_to_axi_dma_chan(dchan);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1185
u32 chan_active = BIT(chan->id) << DMAC_CHAN_EN_SHIFT;
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1191
axi_chan_disable(chan);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1193
ret = readl_poll_timeout_atomic(chan->chip->regs + DMAC_CHEN, val,
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1197
"%s failed to stop\n", axi_chan_name(chan));
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1199
if (chan->direction != DMA_MEM_TO_MEM)
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1200
dw_axi_dma_set_hw_channel(chan, false);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1201
if (chan->direction == DMA_MEM_TO_DEV)
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1202
dw_axi_dma_set_byte_halfword(chan, false);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1204
spin_lock_irqsave(&chan->vc.lock, flags);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1206
vchan_get_all_descriptors(&chan->vc, &head);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1208
chan->cyclic = false;
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1209
spin_unlock_irqrestore(&chan->vc.lock, flags);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1211
vchan_dma_desc_free_list(&chan->vc, &head);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1213
dev_vdbg(dchan2dev(dchan), "terminated: %s\n", axi_chan_name(chan));
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
122
axi_chan_iowrite32(chan, CH_CFG_L, cfg_lo);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1220
struct axi_dma_chan *chan = dchan_to_axi_dma_chan(dchan);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1225
spin_lock_irqsave(&chan->vc.lock, flags);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1227
if (chan->chip->dw->hdata->nr_channels >= DMAC_CHAN_16) {
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1228
val = axi_dma_ioread64(chan->chip, DMAC_CHSUSPREG);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1229
if (chan->id >= DMAC_CHAN_16) {
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
123
axi_chan_iowrite32(chan, CH_CFG_H, cfg_hi);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1230
val |= (u64)(BIT(chan->id) >> DMAC_CHAN_16)
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1232
(u64)(BIT(chan->id) >> DMAC_CHAN_16)
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1235
val |= BIT(chan->id) << DMAC_CHAN_SUSP2_SHIFT |
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1236
BIT(chan->id) << DMAC_CHAN_SUSP2_WE_SHIFT;
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1238
axi_dma_iowrite64(chan->chip, DMAC_CHSUSPREG, val);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1240
if (chan->chip->dw->hdata->reg_map_8_channels) {
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1241
val = axi_dma_ioread32(chan->chip, DMAC_CHEN);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1242
val |= BIT(chan->id) << DMAC_CHAN_SUSP_SHIFT |
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1243
BIT(chan->id) << DMAC_CHAN_SUSP_WE_SHIFT;
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1244
axi_dma_iowrite32(chan->chip, DMAC_CHEN, (u32)val);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1246
val = axi_dma_ioread32(chan->chip, DMAC_CHSUSPREG);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1247
val |= BIT(chan->id) << DMAC_CHAN_SUSP2_SHIFT |
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1248
BIT(chan->id) << DMAC_CHAN_SUSP2_WE_SHIFT;
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1249
axi_dma_iowrite32(chan->chip, DMAC_CHSUSPREG, (u32)val);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1254
if (axi_chan_irq_read(chan) & DWAXIDMAC_IRQ_SUSPENDED)
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1260
axi_chan_irq_clear(chan, DWAXIDMAC_IRQ_SUSPENDED);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1262
chan->is_paused = true;
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1264
spin_unlock_irqrestore(&chan->vc.lock, flags);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1270
static inline void axi_chan_resume(struct axi_dma_chan *chan)
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1274
if (chan->chip->dw->hdata->nr_channels >= DMAC_CHAN_16) {
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1275
val = axi_dma_ioread64(chan->chip, DMAC_CHSUSPREG);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1276
if (chan->id >= DMAC_CHAN_16) {
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1277
val &= ~((u64)(BIT(chan->id) >> DMAC_CHAN_16)
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1279
val |= ((u64)(BIT(chan->id) >> DMAC_CHAN_16)
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1282
val &= ~(BIT(chan->id) << DMAC_CHAN_SUSP2_SHIFT);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1283
val |= (BIT(chan->id) << DMAC_CHAN_SUSP2_WE_SHIFT);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1285
axi_dma_iowrite64(chan->chip, DMAC_CHSUSPREG, val);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1287
if (chan->chip->dw->hdata->reg_map_8_channels) {
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1288
val = axi_dma_ioread32(chan->chip, DMAC_CHEN);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1289
val &= ~(BIT(chan->id) << DMAC_CHAN_SUSP_SHIFT);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1290
val |= (BIT(chan->id) << DMAC_CHAN_SUSP_WE_SHIFT);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1291
axi_dma_iowrite32(chan->chip, DMAC_CHEN, (u32)val);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1293
val = axi_dma_ioread32(chan->chip, DMAC_CHSUSPREG);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1294
val &= ~(BIT(chan->id) << DMAC_CHAN_SUSP2_SHIFT);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1295
val |= (BIT(chan->id) << DMAC_CHAN_SUSP2_WE_SHIFT);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1296
axi_dma_iowrite32(chan->chip, DMAC_CHSUSPREG, (u32)val);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1300
chan->is_paused = false;
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1305
struct axi_dma_chan *chan = dchan_to_axi_dma_chan(dchan);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1308
spin_lock_irqsave(&chan->vc.lock, flags);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1310
if (chan->is_paused)
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1311
axi_chan_resume(chan);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1313
spin_unlock_irqrestore(&chan->vc.lock, flags);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1366
struct axi_dma_chan *chan = NULL;
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1373
chan = &dw->chan[handshake];
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1374
dchan = dma_get_slave_channel(&chan->vc.chan);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1382
if (!chan)
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1383
chan = dchan_to_axi_dma_chan(dchan);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1384
chan->hw_handshake_num = handshake;
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1539
dw->chan = devm_kcalloc(chip->dev, hdata->nr_channels,
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1540
sizeof(*dw->chan), GFP_KERNEL);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1541
if (!dw->chan)
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1550
struct axi_dma_chan *chan = &dw->chan[i];
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1552
chan->chip = chip;
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1553
chan->id = i;
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1554
chan->chan_regs = chip->regs + COMMON_REG_LEN + i * CHAN_REG_LEN;
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1555
atomic_set(&chan->descs_allocated, 0);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1557
chan->vc.desc_free = vchan_desc_put;
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1558
vchan_init(&chan->vc, &dw->dma);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
162
static inline void axi_chan_irq_disable(struct axi_dma_chan *chan, u32 irq_mask)
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1641
struct axi_dma_chan *chan, *_chan;
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1649
axi_chan_disable(&chip->dw->chan[i]);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1650
axi_chan_irq_disable(&chip->dw->chan[i], DWAXIDMAC_IRQ_ALL);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1663
list_for_each_entry_safe(chan, _chan, &dw->dma.channels,
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1664
vc.chan.device_node) {
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1665
list_del(&chan->vc.chan.device_node);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
1666
tasklet_kill(&chan->vc.task);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
167
axi_chan_iowrite32(chan, CH_INTSTATUS_ENA, DWAXIDMAC_IRQ_NONE);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
169
val = axi_chan_ioread32(chan, CH_INTSTATUS_ENA);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
171
axi_chan_iowrite32(chan, CH_INTSTATUS_ENA, val);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
175
static inline void axi_chan_irq_set(struct axi_dma_chan *chan, u32 irq_mask)
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
177
axi_chan_iowrite32(chan, CH_INTSTATUS_ENA, irq_mask);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
180
static inline void axi_chan_irq_sig_set(struct axi_dma_chan *chan, u32 irq_mask)
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
182
axi_chan_iowrite32(chan, CH_INTSIGNAL_ENA, irq_mask);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
185
static inline void axi_chan_irq_clear(struct axi_dma_chan *chan, u32 irq_mask)
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
187
axi_chan_iowrite32(chan, CH_INTCLEAR, irq_mask);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
190
static inline u32 axi_chan_irq_read(struct axi_dma_chan *chan)
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
192
return axi_chan_ioread32(chan, CH_INTSTATUS);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
195
static inline void axi_chan_disable(struct axi_dma_chan *chan)
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
199
if (chan->chip->dw->hdata->nr_channels >= DMAC_CHAN_16) {
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
200
val = axi_dma_ioread64(chan->chip, DMAC_CHEN);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
201
if (chan->id >= DMAC_CHAN_16) {
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
202
val &= ~((u64)(BIT(chan->id) >> DMAC_CHAN_16)
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
204
val |= (u64)(BIT(chan->id) >> DMAC_CHAN_16)
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
207
val &= ~(BIT(chan->id) << DMAC_CHAN_EN_SHIFT);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
208
val |= BIT(chan->id) << DMAC_CHAN_EN2_WE_SHIFT;
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
210
axi_dma_iowrite64(chan->chip, DMAC_CHEN, val);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
212
val = axi_dma_ioread32(chan->chip, DMAC_CHEN);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
213
val &= ~(BIT(chan->id) << DMAC_CHAN_EN_SHIFT);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
214
if (chan->chip->dw->hdata->reg_map_8_channels)
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
215
val |= BIT(chan->id) << DMAC_CHAN_EN_WE_SHIFT;
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
217
val |= BIT(chan->id) << DMAC_CHAN_EN2_WE_SHIFT;
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
218
axi_dma_iowrite32(chan->chip, DMAC_CHEN, (u32)val);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
222
static inline void axi_chan_enable(struct axi_dma_chan *chan)
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
226
if (chan->chip->dw->hdata->nr_channels >= DMAC_CHAN_16) {
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
227
val = axi_dma_ioread64(chan->chip, DMAC_CHEN);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
228
if (chan->id >= DMAC_CHAN_16) {
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
229
val |= (u64)(BIT(chan->id) >> DMAC_CHAN_16)
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
231
(u64)(BIT(chan->id) >> DMAC_CHAN_16)
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
234
val |= BIT(chan->id) << DMAC_CHAN_EN_SHIFT |
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
235
BIT(chan->id) << DMAC_CHAN_EN2_WE_SHIFT;
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
237
axi_dma_iowrite64(chan->chip, DMAC_CHEN, val);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
239
val = axi_dma_ioread32(chan->chip, DMAC_CHEN);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
240
if (chan->chip->dw->hdata->reg_map_8_channels) {
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
241
val |= BIT(chan->id) << DMAC_CHAN_EN_SHIFT |
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
242
BIT(chan->id) << DMAC_CHAN_EN_WE_SHIFT;
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
244
val |= BIT(chan->id) << DMAC_CHAN_EN_SHIFT |
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
245
BIT(chan->id) << DMAC_CHAN_EN2_WE_SHIFT;
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
247
axi_dma_iowrite32(chan->chip, DMAC_CHEN, (u32)val);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
251
static inline bool axi_chan_is_hw_enable(struct axi_dma_chan *chan)
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
255
if (chan->chip->dw->hdata->nr_channels >= DMAC_CHAN_16)
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
256
val = axi_dma_ioread64(chan->chip, DMAC_CHEN);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
258
val = axi_dma_ioread32(chan->chip, DMAC_CHEN);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
260
if (chan->id >= DMAC_CHAN_16)
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
261
return !!(val & ((u64)(BIT(chan->id) >> DMAC_CHAN_16) << DMAC_CHAN_BLOCK_SHIFT));
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
263
return !!(val & (BIT(chan->id) << DMAC_CHAN_EN_SHIFT));
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
272
axi_chan_irq_disable(&chip->dw->chan[i], DWAXIDMAC_IRQ_ALL);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
273
axi_chan_disable(&chip->dw->chan[i]);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
280
static u32 axi_chan_get_xfer_width(struct axi_dma_chan *chan, dma_addr_t src,
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
283
u32 max_width = chan->chip->dw->hdata->m_data_width;
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
288
static inline const char *axi_chan_name(struct axi_dma_chan *chan)
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
290
return dma_chan_name(&chan->vc.chan);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
311
static struct axi_dma_lli *axi_desc_get(struct axi_dma_chan *chan,
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
317
lli = dma_pool_zalloc(chan->desc_pool, GFP_NOWAIT, &phys);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
319
dev_err(chan2dev(chan), "%s: not enough descriptors available\n",
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
320
axi_chan_name(chan));
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
324
atomic_inc(&chan->descs_allocated);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
332
struct axi_dma_chan *chan = desc->chan;
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
339
dma_pool_free(chan->desc_pool, hw_desc->lli, hw_desc->llp);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
344
atomic_sub(descs_put, &chan->descs_allocated);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
345
dev_vdbg(chan2dev(chan), "%s: %d descs put, %d still allocated\n",
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
346
axi_chan_name(chan), descs_put,
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
347
atomic_read(&chan->descs_allocated));
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
359
struct axi_dma_chan *chan = dchan_to_axi_dma_chan(dchan);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
373
spin_lock_irqsave(&chan->vc.lock, flags);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
375
vdesc = vchan_find_desc(&chan->vc, cookie);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
384
spin_unlock_irqrestore(&chan->vc.lock, flags);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
395
static void write_chan_llp(struct axi_dma_chan *chan, dma_addr_t adr)
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
397
axi_chan_iowrite64(chan, CH_LLP, adr);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
400
static void dw_axi_dma_set_byte_halfword(struct axi_dma_chan *chan, bool set)
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
405
if (!chan->chip->apb_regs) {
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
406
dev_dbg(chan->chip->dev, "apb_regs not initialized\n");
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
410
reg_width = __ffs(chan->config.dst_addr_width);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
414
val = ioread32(chan->chip->apb_regs + offset);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
417
val |= BIT(chan->id);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
419
val &= ~BIT(chan->id);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
421
iowrite32(val, chan->chip->apb_regs + offset);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
425
static void axi_chan_block_xfer_start(struct axi_dma_chan *chan,
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
428
u32 priority = chan->chip->dw->hdata->priority[chan->id];
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
433
if (unlikely(axi_chan_is_hw_enable(chan))) {
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
434
dev_err(chan2dev(chan), "%s is non-idle!\n",
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
435
axi_chan_name(chan));
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
446
switch (chan->direction) {
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
448
dw_axi_dma_set_byte_halfword(chan, true);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
449
config.tt_fc = chan->config.device_fc ?
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
452
if (chan->chip->apb_regs)
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
453
config.dst_per = chan->id;
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
455
config.dst_per = chan->hw_handshake_num;
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
458
config.tt_fc = chan->config.device_fc ?
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
461
if (chan->chip->apb_regs)
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
462
config.src_per = chan->id;
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
464
config.src_per = chan->hw_handshake_num;
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
469
axi_chan_config_write(chan, &config);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
471
write_chan_llp(chan, first->hw_desc[0].llp | lms);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
474
axi_chan_irq_sig_set(chan, irq_mask);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
478
axi_chan_irq_set(chan, irq_mask);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
480
axi_chan_enable(chan);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
483
static void axi_chan_start_first_queued(struct axi_dma_chan *chan)
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
488
vd = vchan_next_desc(&chan->vc);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
493
dev_vdbg(chan2dev(chan), "%s: started %u\n", axi_chan_name(chan),
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
495
axi_chan_block_xfer_start(chan, desc);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
500
struct axi_dma_chan *chan = dchan_to_axi_dma_chan(dchan);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
503
spin_lock_irqsave(&chan->vc.lock, flags);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
504
if (vchan_issue_pending(&chan->vc))
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
505
axi_chan_start_first_queued(chan);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
506
spin_unlock_irqrestore(&chan->vc.lock, flags);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
511
struct axi_dma_chan *chan = dchan_to_axi_dma_chan(dchan);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
513
vchan_synchronize(&chan->vc);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
518
struct axi_dma_chan *chan = dchan_to_axi_dma_chan(dchan);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
521
ret = pm_runtime_resume_and_get(chan->chip->dev);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
526
if (axi_chan_is_hw_enable(chan)) {
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
527
dev_err(chan2dev(chan), "%s is non-idle!\n",
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
528
axi_chan_name(chan));
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
529
pm_runtime_put(chan->chip->dev);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
534
chan->desc_pool = dma_pool_create(dev_name(chan2dev(chan)),
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
535
chan->chip->dev,
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
538
if (!chan->desc_pool) {
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
539
dev_err(chan2dev(chan), "No memory for descriptors\n");
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
540
pm_runtime_put(chan->chip->dev);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
543
dev_vdbg(dchan2dev(dchan), "%s: allocating\n", axi_chan_name(chan));
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
550
struct axi_dma_chan *chan = dchan_to_axi_dma_chan(dchan);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
553
if (axi_chan_is_hw_enable(chan))
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
555
axi_chan_name(chan));
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
557
axi_chan_disable(chan);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
558
axi_chan_irq_disable(chan, DWAXIDMAC_IRQ_ALL);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
560
vchan_free_chan_resources(&chan->vc);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
562
dma_pool_destroy(chan->desc_pool);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
563
chan->desc_pool = NULL;
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
566
axi_chan_name(chan), atomic_read(&chan->descs_allocated));
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
568
pm_runtime_put(chan->chip->dev);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
571
static void dw_axi_dma_set_hw_channel(struct axi_dma_chan *chan, bool set)
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
573
struct axi_dma_chip *chip = chan->chip;
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
587
val = chan->hw_handshake_num;
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
597
(chan->id * DMA_APB_HS_SEL_BIT_SIZE));
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
598
reg_value |= (val << (chan->id * DMA_APB_HS_SEL_BIT_SIZE));
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
644
if (desc->chan->chip->dw->hdata->nr_masters > 1)
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
652
static int dw_axi_dma_set_hw_desc(struct axi_dma_chan *chan,
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
656
unsigned int data_width = BIT(chan->chip->dw->hdata->m_data_width);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
665
axi_block_ts = chan->chip->dw->hdata->block_size[chan->id];
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
672
dev_err(chan->chip->dev, "invalid buffer alignment\n");
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
676
switch (chan->direction) {
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
678
reg_width = __ffs(chan->config.dst_addr_width);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
679
device_addr = chan->config.dst_addr;
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
687
reg_width = __ffs(chan->config.src_addr_width);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
688
device_addr = chan->config.src_addr;
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
702
hw_desc->lli = axi_desc_get(chan, &hw_desc->llp);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
708
if (chan->chip->dw->hdata->restrict_axi_burst_len) {
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
709
burst_len = chan->chip->dw->hdata->axi_rw_burst_len;
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
717
if (chan->direction == DMA_MEM_TO_DEV) {
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
737
static size_t calculate_block_len(struct axi_dma_chan *chan,
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
744
axi_block_ts = chan->chip->dw->hdata->block_size[chan->id];
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
748
data_width = BIT(chan->chip->dw->hdata->m_data_width);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
756
reg_width = __ffs(chan->config.src_addr_width);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
772
struct axi_dma_chan *chan = dchan_to_axi_dma_chan(dchan);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
78
axi_chan_iowrite32(struct axi_dma_chan *chan, u32 reg, u32 val)
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
787
axi_block_len = calculate_block_len(chan, dma_addr, buf_len, direction);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
80
iowrite32(val, chan->chan_regs + reg);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
800
chan->direction = direction;
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
801
desc->chan = chan;
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
802
chan->cyclic = true;
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
809
status = dw_axi_dma_set_hw_desc(chan, hw_desc, src_addr,
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
83
static inline u32 axi_chan_ioread32(struct axi_dma_chan *chan, u32 reg)
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
832
dw_axi_dma_set_hw_channel(chan, true);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
834
return vchan_tx_prep(&chan->vc, &desc->vd, flags);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
849
struct axi_dma_chan *chan = dchan_to_axi_dma_chan(dchan);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
85
return ioread32(chan->chan_regs + reg);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
869
axi_block_len = calculate_block_len(chan, mem, len, direction);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
878
desc->chan = chan;
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
880
chan->direction = direction;
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
89
axi_chan_iowrite64(struct axi_dma_chan *chan, u32 reg, u64 val)
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
890
status = dw_axi_dma_set_hw_desc(chan, hw_desc, mem, segment_len);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
910
dw_axi_dma_set_hw_channel(chan, true);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
912
return vchan_tx_prep(&chan->vc, &desc->vd, flags);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
925
struct axi_dma_chan *chan = dchan_to_axi_dma_chan(dchan);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
933
dev_dbg(chan2dev(chan), "%s: memcpy: src: %pad dst: %pad length: %zd flags: %#lx",
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
934
axi_chan_name(chan), &src_adr, &dst_adr, len, flags);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
936
max_block_ts = chan->chip->dw->hdata->block_size[chan->id];
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
937
xfer_width = axi_chan_get_xfer_width(chan, src_adr, dst_adr, len);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
943
desc->chan = chan;
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
95
iowrite32(lower_32_bits(val), chan->chan_regs + reg);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
955
xfer_width = axi_chan_get_xfer_width(chan, src_adr, dst_adr, xfer_len);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
96
iowrite32(upper_32_bits(val), chan->chan_regs + reg + 4);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
968
hw_desc->lli = axi_desc_get(chan, &hw_desc->llp);
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
977
if (chan->chip->dw->hdata->restrict_axi_burst_len) {
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
978
u32 burst_len = chan->chip->dw->hdata->axi_rw_burst_len;
drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
99
static inline void axi_chan_config_write(struct axi_dma_chan *chan,
drivers/dma/dw-axi-dmac/dw-axi-dmac.h
104
struct axi_dma_chan *chan;
drivers/dma/dw-axi-dmac/dw-axi-dmac.h
127
static inline struct device *chan2dev(struct axi_dma_chan *chan)
drivers/dma/dw-axi-dmac/dw-axi-dmac.h
129
return &chan->vc.chan.dev->device;
drivers/dma/dw-axi-dmac/dw-axi-dmac.h
64
struct axi_dma_chan *chan;
drivers/dma/dw-edma/dw-edma-core.c
110
static struct dw_edma_desc *dw_edma_alloc_desc(struct dw_edma_chan *chan)
drivers/dma/dw-edma/dw-edma-core.c
1108
dw->chan = devm_kcalloc(dev, dw->wr_ch_cnt + dw->rd_ch_cnt,
drivers/dma/dw-edma/dw-edma-core.c
1109
sizeof(*dw->chan), GFP_KERNEL);
drivers/dma/dw-edma/dw-edma-core.c
1110
if (!dw->chan)
drivers/dma/dw-edma/dw-edma-core.c
1152
struct dw_edma_chan *chan, *_chan;
drivers/dma/dw-edma/dw-edma-core.c
1171
list_for_each_entry_safe(chan, _chan, &dw->dma.channels,
drivers/dma/dw-edma/dw-edma-core.c
1172
vc.chan.device_node) {
drivers/dma/dw-edma/dw-edma-core.c
1173
tasklet_kill(&chan->vc.task);
drivers/dma/dw-edma/dw-edma-core.c
1174
list_del(&chan->vc.chan.device_node);
drivers/dma/dw-edma/dw-edma-core.c
118
desc->chan = chan;
drivers/dma/dw-edma/dw-edma-core.c
174
static int dw_edma_start_transfer(struct dw_edma_chan *chan)
drivers/dma/dw-edma/dw-edma-core.c
176
struct dw_edma *dw = chan->dw;
drivers/dma/dw-edma/dw-edma-core.c
181
vd = vchan_next_desc(&chan->vc);
drivers/dma/dw-edma/dw-edma-core.c
207
struct dw_edma_chan *chan = dchan2dw_edma_chan(dchan);
drivers/dma/dw-edma/dw-edma-core.c
209
if (chan->dw->chip->flags & DW_EDMA_CHIP_LOCAL) {
drivers/dma/dw-edma/dw-edma-core.c
210
if (chan->dir == EDMA_DIR_READ)
drivers/dma/dw-edma/dw-edma-core.c
215
if (chan->dir == EDMA_DIR_WRITE)
drivers/dma/dw-edma/dw-edma-core.c
225
struct dw_edma_chan *chan = dchan2dw_edma_chan(dchan);
drivers/dma/dw-edma/dw-edma-core.c
229
chan->non_ll = false;
drivers/dma/dw-edma/dw-edma-core.c
230
if (chan->dw->chip->mf == EDMA_MF_HDMA_NATIVE) {
drivers/dma/dw-edma/dw-edma-core.c
246
cfg_non_ll = chan->dw->chip->cfg_non_ll;
drivers/dma/dw-edma/dw-edma-core.c
257
chan->non_ll = true;
drivers/dma/dw-edma/dw-edma-core.c
264
memcpy(&chan->config, config, sizeof(*config));
drivers/dma/dw-edma/dw-edma-core.c
265
chan->configured = true;
drivers/dma/dw-edma/dw-edma-core.c
272
struct dw_edma_chan *chan = dchan2dw_edma_chan(dchan);
drivers/dma/dw-edma/dw-edma-core.c
275
if (!chan->configured)
drivers/dma/dw-edma/dw-edma-core.c
277
else if (chan->status != EDMA_ST_BUSY)
drivers/dma/dw-edma/dw-edma-core.c
279
else if (chan->request != EDMA_REQ_NONE)
drivers/dma/dw-edma/dw-edma-core.c
282
chan->request = EDMA_REQ_PAUSE;
drivers/dma/dw-edma/dw-edma-core.c
289
struct dw_edma_chan *chan = dchan2dw_edma_chan(dchan);
drivers/dma/dw-edma/dw-edma-core.c
292
if (!chan->configured) {
drivers/dma/dw-edma/dw-edma-core.c
294
} else if (chan->status != EDMA_ST_PAUSE) {
drivers/dma/dw-edma/dw-edma-core.c
296
} else if (chan->request != EDMA_REQ_NONE) {
drivers/dma/dw-edma/dw-edma-core.c
299
chan->status = EDMA_ST_BUSY;
drivers/dma/dw-edma/dw-edma-core.c
300
dw_edma_start_transfer(chan);
drivers/dma/dw-edma/dw-edma-core.c
308
struct dw_edma_chan *chan = dchan2dw_edma_chan(dchan);
drivers/dma/dw-edma/dw-edma-core.c
311
if (!chan->configured) {
drivers/dma/dw-edma/dw-edma-core.c
313
} else if (chan->status == EDMA_ST_PAUSE) {
drivers/dma/dw-edma/dw-edma-core.c
314
chan->status = EDMA_ST_IDLE;
drivers/dma/dw-edma/dw-edma-core.c
315
chan->configured = false;
drivers/dma/dw-edma/dw-edma-core.c
316
} else if (chan->status == EDMA_ST_IDLE) {
drivers/dma/dw-edma/dw-edma-core.c
317
chan->configured = false;
drivers/dma/dw-edma/dw-edma-core.c
318
} else if (dw_edma_core_ch_status(chan) == DMA_COMPLETE) {
drivers/dma/dw-edma/dw-edma-core.c
323
chan->status = EDMA_ST_IDLE;
drivers/dma/dw-edma/dw-edma-core.c
324
chan->configured = false;
drivers/dma/dw-edma/dw-edma-core.c
325
} else if (chan->request > EDMA_REQ_PAUSE) {
drivers/dma/dw-edma/dw-edma-core.c
328
chan->request = EDMA_REQ_STOP;
drivers/dma/dw-edma/dw-edma-core.c
33
u64 dw_edma_get_pci_address(struct dw_edma_chan *chan, phys_addr_t cpu_addr)
drivers/dma/dw-edma/dw-edma-core.c
336
struct dw_edma_chan *chan = dchan2dw_edma_chan(dchan);
drivers/dma/dw-edma/dw-edma-core.c
339
if (!chan->configured)
drivers/dma/dw-edma/dw-edma-core.c
342
spin_lock_irqsave(&chan->vc.lock, flags);
drivers/dma/dw-edma/dw-edma-core.c
343
if (vchan_issue_pending(&chan->vc) && chan->request == EDMA_REQ_NONE &&
drivers/dma/dw-edma/dw-edma-core.c
344
chan->status == EDMA_ST_IDLE) {
drivers/dma/dw-edma/dw-edma-core.c
345
chan->status = EDMA_ST_BUSY;
drivers/dma/dw-edma/dw-edma-core.c
346
dw_edma_start_transfer(chan);
drivers/dma/dw-edma/dw-edma-core.c
348
spin_unlock_irqrestore(&chan->vc.lock, flags);
drivers/dma/dw-edma/dw-edma-core.c
35
struct dw_edma_chip *chip = chan->dw->chip;
drivers/dma/dw-edma/dw-edma-core.c
355
struct dw_edma_chan *chan = dchan2dw_edma_chan(dchan);
drivers/dma/dw-edma/dw-edma-core.c
366
if (ret == DMA_IN_PROGRESS && chan->status == EDMA_ST_PAUSE)
drivers/dma/dw-edma/dw-edma-core.c
372
spin_lock_irqsave(&chan->vc.lock, flags);
drivers/dma/dw-edma/dw-edma-core.c
373
vd = vchan_find_desc(&chan->vc, cookie);
drivers/dma/dw-edma/dw-edma-core.c
379
spin_unlock_irqrestore(&chan->vc.lock, flags);
drivers/dma/dw-edma/dw-edma-core.c
390
struct dw_edma_chan *chan = dchan2dw_edma_chan(xfer->dchan);
drivers/dma/dw-edma/dw-edma-core.c
402
if (!chan->configured)
drivers/dma/dw-edma/dw-edma-core.c
431
if (chan->dw->chip->flags & DW_EDMA_CHIP_LOCAL) {
drivers/dma/dw-edma/dw-edma-core.c
432
if ((chan->dir == EDMA_DIR_READ && dir != DMA_DEV_TO_MEM) ||
drivers/dma/dw-edma/dw-edma-core.c
433
(chan->dir == EDMA_DIR_WRITE && dir != DMA_MEM_TO_DEV))
drivers/dma/dw-edma/dw-edma-core.c
436
if ((chan->dir == EDMA_DIR_WRITE && dir != DMA_DEV_TO_MEM) ||
drivers/dma/dw-edma/dw-edma-core.c
437
(chan->dir == EDMA_DIR_READ && dir != DMA_MEM_TO_DEV))
drivers/dma/dw-edma/dw-edma-core.c
461
bursts_max = chan->non_ll ? 1 : chan->ll_max;
drivers/dma/dw-edma/dw-edma-core.c
463
desc = dw_edma_alloc_desc(chan);
drivers/dma/dw-edma/dw-edma-core.c
475
src_addr = chan->config.src_addr;
drivers/dma/dw-edma/dw-edma-core.c
476
dst_addr = chan->config.dst_addr;
drivers/dma/dw-edma/dw-edma-core.c
480
src_addr = dw_edma_get_pci_address(chan, (phys_addr_t)src_addr);
drivers/dma/dw-edma/dw-edma-core.c
482
dst_addr = dw_edma_get_pci_address(chan, (phys_addr_t)dst_addr);
drivers/dma/dw-edma/dw-edma-core.c
570
return vchan_tx_prep(&chan->vc, &desc->vd, xfer->flags);
drivers/dma/dw-edma/dw-edma-core.c
651
static void dw_edma_done_interrupt(struct dw_edma_chan *chan)
drivers/dma/dw-edma/dw-edma-core.c
657
spin_lock_irqsave(&chan->vc.lock, flags);
drivers/dma/dw-edma/dw-edma-core.c
658
vd = vchan_next_desc(&chan->vc);
drivers/dma/dw-edma/dw-edma-core.c
660
switch (chan->request) {
drivers/dma/dw-edma/dw-edma-core.c
67
struct dw_edma_chip *chip = desc->chan->dw->chip;
drivers/dma/dw-edma/dw-edma-core.c
672
chan->status = dw_edma_start_transfer(chan) ? EDMA_ST_BUSY : EDMA_ST_IDLE;
drivers/dma/dw-edma/dw-edma-core.c
678
chan->request = EDMA_REQ_NONE;
drivers/dma/dw-edma/dw-edma-core.c
679
chan->status = EDMA_ST_IDLE;
drivers/dma/dw-edma/dw-edma-core.c
68
struct dw_edma_chan *chan = desc->chan;
drivers/dma/dw-edma/dw-edma-core.c
683
chan->request = EDMA_REQ_NONE;
drivers/dma/dw-edma/dw-edma-core.c
684
chan->status = EDMA_ST_PAUSE;
drivers/dma/dw-edma/dw-edma-core.c
691
spin_unlock_irqrestore(&chan->vc.lock, flags);
drivers/dma/dw-edma/dw-edma-core.c
694
static void dw_edma_abort_interrupt(struct dw_edma_chan *chan)
drivers/dma/dw-edma/dw-edma-core.c
699
spin_lock_irqsave(&chan->vc.lock, flags);
drivers/dma/dw-edma/dw-edma-core.c
700
vd = vchan_next_desc(&chan->vc);
drivers/dma/dw-edma/dw-edma-core.c
706
spin_unlock_irqrestore(&chan->vc.lock, flags);
drivers/dma/dw-edma/dw-edma-core.c
707
chan->request = EDMA_REQ_NONE;
drivers/dma/dw-edma/dw-edma-core.c
708
chan->status = EDMA_ST_IDLE;
drivers/dma/dw-edma/dw-edma-core.c
76
chunk->chan = chan;
drivers/dma/dw-edma/dw-edma-core.c
84
if (chan->dir == EDMA_DIR_WRITE) {
drivers/dma/dw-edma/dw-edma-core.c
85
chunk->ll_region.paddr = chip->ll_region_wr[chan->id].paddr;
drivers/dma/dw-edma/dw-edma-core.c
851
struct dw_edma_chan *chan = dchan2dw_edma_chan(dchan);
drivers/dma/dw-edma/dw-edma-core.c
853
if (chan->status != EDMA_ST_IDLE)
drivers/dma/dw-edma/dw-edma-core.c
86
chunk->ll_region.vaddr = chip->ll_region_wr[chan->id].vaddr;
drivers/dma/dw-edma/dw-edma-core.c
88
chunk->ll_region.paddr = chip->ll_region_rd[chan->id].paddr;
drivers/dma/dw-edma/dw-edma-core.c
880
struct dw_edma_chan *chan;
drivers/dma/dw-edma/dw-edma-core.c
89
chunk->ll_region.vaddr = chip->ll_region_rd[chan->id].vaddr;
drivers/dma/dw-edma/dw-edma-core.c
892
chan = &dw->chan[i];
drivers/dma/dw-edma/dw-edma-core.c
894
chan->dw = dw;
drivers/dma/dw-edma/dw-edma-core.c
897
chan->id = i;
drivers/dma/dw-edma/dw-edma-core.c
898
chan->dir = EDMA_DIR_WRITE;
drivers/dma/dw-edma/dw-edma-core.c
900
chan->id = i - dw->wr_ch_cnt;
drivers/dma/dw-edma/dw-edma-core.c
901
chan->dir = EDMA_DIR_READ;
drivers/dma/dw-edma/dw-edma-core.c
904
chan->configured = false;
drivers/dma/dw-edma/dw-edma-core.c
905
chan->request = EDMA_REQ_NONE;
drivers/dma/dw-edma/dw-edma-core.c
906
chan->status = EDMA_ST_IDLE;
drivers/dma/dw-edma/dw-edma-core.c
908
if (chan->dir == EDMA_DIR_WRITE)
drivers/dma/dw-edma/dw-edma-core.c
909
chan->ll_max = (chip->ll_region_wr[chan->id].sz / EDMA_LL_SZ);
drivers/dma/dw-edma/dw-edma-core.c
911
chan->ll_max = (chip->ll_region_rd[chan->id].sz / EDMA_LL_SZ);
drivers/dma/dw-edma/dw-edma-core.c
912
chan->ll_max -= 1;
drivers/dma/dw-edma/dw-edma-core.c
915
str_write_read(chan->dir == EDMA_DIR_WRITE),
drivers/dma/dw-edma/dw-edma-core.c
916
chan->id, chan->ll_max);
drivers/dma/dw-edma/dw-edma-core.c
920
else if (chan->dir == EDMA_DIR_WRITE)
drivers/dma/dw-edma/dw-edma-core.c
921
pos = chan->id % wr_alloc;
drivers/dma/dw-edma/dw-edma-core.c
923
pos = wr_alloc + chan->id % rd_alloc;
drivers/dma/dw-edma/dw-edma-core.c
927
if (chan->dir == EDMA_DIR_WRITE)
drivers/dma/dw-edma/dw-edma-core.c
928
irq->wr_mask |= BIT(chan->id);
drivers/dma/dw-edma/dw-edma-core.c
930
irq->rd_mask |= BIT(chan->id);
drivers/dma/dw-edma/dw-edma-core.c
933
memcpy(&chan->msi, &irq->msi, sizeof(chan->msi));
drivers/dma/dw-edma/dw-edma-core.c
936
str_write_read(chan->dir == EDMA_DIR_WRITE),
drivers/dma/dw-edma/dw-edma-core.c
937
chan->id,
drivers/dma/dw-edma/dw-edma-core.c
938
chan->msi.address_hi, chan->msi.address_lo,
drivers/dma/dw-edma/dw-edma-core.c
939
chan->msi.data);
drivers/dma/dw-edma/dw-edma-core.c
941
chan->vc.desc_free = vchan_free_desc;
drivers/dma/dw-edma/dw-edma-core.c
942
chan->vc.chan.private = chan->dir == EDMA_DIR_WRITE ?
drivers/dma/dw-edma/dw-edma-core.c
943
&dw->chip->dt_region_wr[chan->id] :
drivers/dma/dw-edma/dw-edma-core.c
944
&dw->chip->dt_region_rd[chan->id];
drivers/dma/dw-edma/dw-edma-core.c
946
vchan_init(&chan->vc, dma);
drivers/dma/dw-edma/dw-edma-core.c
948
dw_edma_core_ch_config(chan);
drivers/dma/dw-edma/dw-edma-core.h
110
struct dw_edma_chan *chan;
drivers/dma/dw-edma/dw-edma-core.h
124
enum dma_status (*ch_status)(struct dw_edma_chan *chan);
drivers/dma/dw-edma/dw-edma-core.h
128
void (*ch_config)(struct dw_edma_chan *chan);
drivers/dma/dw-edma/dw-edma-core.h
182
enum dma_status dw_edma_core_ch_status(struct dw_edma_chan *chan)
drivers/dma/dw-edma/dw-edma-core.h
184
return chan->dw->core->ch_status(chan);
drivers/dma/dw-edma/dw-edma-core.h
201
void dw_edma_core_ch_config(struct dw_edma_chan *chan)
drivers/dma/dw-edma/dw-edma-core.h
203
chan->dw->core->ch_config(chan);
drivers/dma/dw-edma/dw-edma-core.h
54
struct dw_edma_chan *chan;
drivers/dma/dw-edma/dw-edma-core.h
65
struct dw_edma_chan *chan;
drivers/dma/dw-edma/dw-edma-v0-core.c
189
static enum dma_status dw_edma_v0_core_ch_status(struct dw_edma_chan *chan)
drivers/dma/dw-edma/dw-edma-v0-core.c
191
struct dw_edma *dw = chan->dw;
drivers/dma/dw-edma/dw-edma-v0-core.c
195
GET_CH_32(dw, chan->dir, chan->id, ch_control1));
drivers/dma/dw-edma/dw-edma-v0-core.c
205
static void dw_edma_v0_core_clear_done_int(struct dw_edma_chan *chan)
drivers/dma/dw-edma/dw-edma-v0-core.c
207
struct dw_edma *dw = chan->dw;
drivers/dma/dw-edma/dw-edma-v0-core.c
209
SET_RW_32(dw, chan->dir, int_clear,
drivers/dma/dw-edma/dw-edma-v0-core.c
210
FIELD_PREP(EDMA_V0_DONE_INT_MASK, BIT(chan->id)));
drivers/dma/dw-edma/dw-edma-v0-core.c
213
static void dw_edma_v0_core_clear_abort_int(struct dw_edma_chan *chan)
drivers/dma/dw-edma/dw-edma-v0-core.c
215
struct dw_edma *dw = chan->dw;
drivers/dma/dw-edma/dw-edma-v0-core.c
217
SET_RW_32(dw, chan->dir, int_clear,
drivers/dma/dw-edma/dw-edma-v0-core.c
218
FIELD_PREP(EDMA_V0_ABORT_INT_MASK, BIT(chan->id)));
drivers/dma/dw-edma/dw-edma-v0-core.c
240
struct dw_edma_chan *chan;
drivers/dma/dw-edma/dw-edma-v0-core.c
257
chan = &dw->chan[pos + off];
drivers/dma/dw-edma/dw-edma-v0-core.c
259
dw_edma_v0_core_clear_done_int(chan);
drivers/dma/dw-edma/dw-edma-v0-core.c
260
done(chan);
drivers/dma/dw-edma/dw-edma-v0-core.c
268
chan = &dw->chan[pos + off];
drivers/dma/dw-edma/dw-edma-v0-core.c
270
dw_edma_v0_core_clear_abort_int(chan);
drivers/dma/dw-edma/dw-edma-v0-core.c
271
abort(chan);
drivers/dma/dw-edma/dw-edma-v0-core.c
284
if (chunk->chan->dw->chip->flags & DW_EDMA_CHIP_LOCAL) {
drivers/dma/dw-edma/dw-edma-v0-core.c
306
if (chunk->chan->dw->chip->flags & DW_EDMA_CHIP_LOCAL) {
drivers/dma/dw-edma/dw-edma-v0-core.c
322
struct dw_edma_chan *chan = chunk->chan;
drivers/dma/dw-edma/dw-edma-v0-core.c
334
if (!(chan->dw->chip->flags & DW_EDMA_CHIP_LOCAL))
drivers/dma/dw-edma/dw-edma-v0-core.c
359
if (!(chunk->chan->dw->chip->flags & DW_EDMA_CHIP_LOCAL))
drivers/dma/dw-edma/dw-edma-v0-core.c
365
struct dw_edma_chan *chan = chunk->chan;
drivers/dma/dw-edma/dw-edma-v0-core.c
366
struct dw_edma *dw = chan->dw;
drivers/dma/dw-edma/dw-edma-v0-core.c
374
SET_RW_32(dw, chan->dir, engine_en, BIT(0));
drivers/dma/dw-edma/dw-edma-v0-core.c
376
switch (chan->id) {
drivers/dma/dw-edma/dw-edma-v0-core.c
378
SET_RW_COMPAT(dw, chan->dir, ch0_pwr_en,
drivers/dma/dw-edma/dw-edma-v0-core.c
382
SET_RW_COMPAT(dw, chan->dir, ch1_pwr_en,
drivers/dma/dw-edma/dw-edma-v0-core.c
386
SET_RW_COMPAT(dw, chan->dir, ch2_pwr_en,
drivers/dma/dw-edma/dw-edma-v0-core.c
390
SET_RW_COMPAT(dw, chan->dir, ch3_pwr_en,
drivers/dma/dw-edma/dw-edma-v0-core.c
394
SET_RW_COMPAT(dw, chan->dir, ch4_pwr_en,
drivers/dma/dw-edma/dw-edma-v0-core.c
398
SET_RW_COMPAT(dw, chan->dir, ch5_pwr_en,
drivers/dma/dw-edma/dw-edma-v0-core.c
402
SET_RW_COMPAT(dw, chan->dir, ch6_pwr_en,
drivers/dma/dw-edma/dw-edma-v0-core.c
406
SET_RW_COMPAT(dw, chan->dir, ch7_pwr_en,
drivers/dma/dw-edma/dw-edma-v0-core.c
414
tmp = GET_RW_32(dw, chan->dir, int_mask);
drivers/dma/dw-edma/dw-edma-v0-core.c
415
tmp &= ~FIELD_PREP(EDMA_V0_DONE_INT_MASK, BIT(chan->id));
drivers/dma/dw-edma/dw-edma-v0-core.c
416
tmp &= ~FIELD_PREP(EDMA_V0_ABORT_INT_MASK, BIT(chan->id));
drivers/dma/dw-edma/dw-edma-v0-core.c
417
SET_RW_32(dw, chan->dir, int_mask, tmp);
drivers/dma/dw-edma/dw-edma-v0-core.c
419
tmp = GET_RW_32(dw, chan->dir, linked_list_err_en);
drivers/dma/dw-edma/dw-edma-v0-core.c
420
tmp |= FIELD_PREP(EDMA_V0_LINKED_LIST_ERR_MASK, BIT(chan->id));
drivers/dma/dw-edma/dw-edma-v0-core.c
421
SET_RW_32(dw, chan->dir, linked_list_err_en, tmp);
drivers/dma/dw-edma/dw-edma-v0-core.c
426
SET_CH_32(dw, chan->dir, chan->id, ch_control1,
drivers/dma/dw-edma/dw-edma-v0-core.c
430
SET_CH_32(dw, chan->dir, chan->id, llp.lsb,
drivers/dma/dw-edma/dw-edma-v0-core.c
432
SET_CH_32(dw, chan->dir, chan->id, llp.msb,
drivers/dma/dw-edma/dw-edma-v0-core.c
439
SET_RW_32(dw, chan->dir, doorbell,
drivers/dma/dw-edma/dw-edma-v0-core.c
440
FIELD_PREP(EDMA_V0_DOORBELL_CH_MASK, chan->id));
drivers/dma/dw-edma/dw-edma-v0-core.c
443
static void dw_edma_v0_core_ch_config(struct dw_edma_chan *chan)
drivers/dma/dw-edma/dw-edma-v0-core.c
445
struct dw_edma *dw = chan->dw;
drivers/dma/dw-edma/dw-edma-v0-core.c
449
SET_RW_32(dw, chan->dir, done_imwr.lsb, chan->msi.address_lo);
drivers/dma/dw-edma/dw-edma-v0-core.c
450
SET_RW_32(dw, chan->dir, done_imwr.msb, chan->msi.address_hi);
drivers/dma/dw-edma/dw-edma-v0-core.c
452
SET_RW_32(dw, chan->dir, abort_imwr.lsb, chan->msi.address_lo);
drivers/dma/dw-edma/dw-edma-v0-core.c
453
SET_RW_32(dw, chan->dir, abort_imwr.msb, chan->msi.address_hi);
drivers/dma/dw-edma/dw-edma-v0-core.c
455
switch (chan->id) {
drivers/dma/dw-edma/dw-edma-v0-core.c
458
tmp = GET_RW_32(dw, chan->dir, ch01_imwr_data);
drivers/dma/dw-edma/dw-edma-v0-core.c
463
tmp = GET_RW_32(dw, chan->dir, ch23_imwr_data);
drivers/dma/dw-edma/dw-edma-v0-core.c
468
tmp = GET_RW_32(dw, chan->dir, ch45_imwr_data);
drivers/dma/dw-edma/dw-edma-v0-core.c
473
tmp = GET_RW_32(dw, chan->dir, ch67_imwr_data);
drivers/dma/dw-edma/dw-edma-v0-core.c
477
if (chan->id & BIT(0)) {
drivers/dma/dw-edma/dw-edma-v0-core.c
481
chan->msi.data);
drivers/dma/dw-edma/dw-edma-v0-core.c
486
chan->msi.data);
drivers/dma/dw-edma/dw-edma-v0-core.c
489
switch (chan->id) {
drivers/dma/dw-edma/dw-edma-v0-core.c
492
SET_RW_32(dw, chan->dir, ch01_imwr_data, tmp);
drivers/dma/dw-edma/dw-edma-v0-core.c
497
SET_RW_32(dw, chan->dir, ch23_imwr_data, tmp);
drivers/dma/dw-edma/dw-edma-v0-core.c
502
SET_RW_32(dw, chan->dir, ch45_imwr_data, tmp);
drivers/dma/dw-edma/dw-edma-v0-core.c
507
SET_RW_32(dw, chan->dir, ch67_imwr_data, tmp);
drivers/dma/dw-edma/dw-hdma-v0-core.c
101
struct dw_edma *dw = chan->dw;
drivers/dma/dw-edma/dw-hdma-v0-core.c
103
SET_CH_32(dw, chan->dir, chan->id, int_clear, HDMA_V0_ABORT_INT_MASK);
drivers/dma/dw-edma/dw-hdma-v0-core.c
106
static u32 dw_hdma_v0_core_status_int(struct dw_edma_chan *chan)
drivers/dma/dw-edma/dw-hdma-v0-core.c
108
struct dw_edma *dw = chan->dw;
drivers/dma/dw-edma/dw-hdma-v0-core.c
110
return GET_CH_32(dw, chan->dir, chan->id, int_stat);
drivers/dma/dw-edma/dw-hdma-v0-core.c
120
struct dw_edma_chan *chan;
drivers/dma/dw-edma/dw-hdma-v0-core.c
134
chan = &dw->chan[pos + off];
drivers/dma/dw-edma/dw-hdma-v0-core.c
136
val = dw_hdma_v0_core_status_int(chan);
drivers/dma/dw-edma/dw-hdma-v0-core.c
138
dw_hdma_v0_core_clear_done_int(chan);
drivers/dma/dw-edma/dw-hdma-v0-core.c
139
done(chan);
drivers/dma/dw-edma/dw-hdma-v0-core.c
145
dw_hdma_v0_core_clear_abort_int(chan);
drivers/dma/dw-edma/dw-hdma-v0-core.c
146
abort(chan);
drivers/dma/dw-edma/dw-hdma-v0-core.c
160
if (chunk->chan->dw->chip->flags & DW_EDMA_CHIP_LOCAL) {
drivers/dma/dw-edma/dw-hdma-v0-core.c
182
if (chunk->chan->dw->chip->flags & DW_EDMA_CHIP_LOCAL) {
drivers/dma/dw-edma/dw-hdma-v0-core.c
224
if (!(chunk->chan->dw->chip->flags & DW_EDMA_CHIP_LOCAL))
drivers/dma/dw-edma/dw-hdma-v0-core.c
230
struct dw_edma_chan *chan = chunk->chan;
drivers/dma/dw-edma/dw-hdma-v0-core.c
231
struct dw_edma *dw = chan->dw;
drivers/dma/dw-edma/dw-hdma-v0-core.c
238
SET_CH_32(dw, chan->dir, chan->id, ch_en, BIT(0));
drivers/dma/dw-edma/dw-hdma-v0-core.c
240
tmp = GET_CH_32(dw, chan->dir, chan->id, int_setup);
drivers/dma/dw-edma/dw-hdma-v0-core.c
246
SET_CH_32(dw, chan->dir, chan->id, int_setup, tmp);
drivers/dma/dw-edma/dw-hdma-v0-core.c
248
SET_CH_32(dw, chan->dir, chan->id, control1, HDMA_V0_LINKLIST_EN);
drivers/dma/dw-edma/dw-hdma-v0-core.c
251
SET_CH_32(dw, chan->dir, chan->id, llp.lsb,
drivers/dma/dw-edma/dw-hdma-v0-core.c
253
SET_CH_32(dw, chan->dir, chan->id, llp.msb,
drivers/dma/dw-edma/dw-hdma-v0-core.c
256
SET_CH_32(dw, chan->dir, chan->id, cycle_sync,
drivers/dma/dw-edma/dw-hdma-v0-core.c
263
SET_CH_32(dw, chan->dir, chan->id, doorbell, HDMA_V0_DOORBELL_START);
drivers/dma/dw-edma/dw-hdma-v0-core.c
268
struct dw_edma_chan *chan = chunk->chan;
drivers/dma/dw-edma/dw-hdma-v0-core.c
269
struct dw_edma *dw = chan->dw;
drivers/dma/dw-edma/dw-hdma-v0-core.c
278
SET_CH_32(dw, chan->dir, chan->id, ch_en, HDMA_V0_CH_EN);
drivers/dma/dw-edma/dw-hdma-v0-core.c
281
SET_CH_32(dw, chan->dir, chan->id, sar.lsb,
drivers/dma/dw-edma/dw-hdma-v0-core.c
283
SET_CH_32(dw, chan->dir, chan->id, sar.msb,
drivers/dma/dw-edma/dw-hdma-v0-core.c
287
SET_CH_32(dw, chan->dir, chan->id, dar.lsb,
drivers/dma/dw-edma/dw-hdma-v0-core.c
289
SET_CH_32(dw, chan->dir, chan->id, dar.msb,
drivers/dma/dw-edma/dw-hdma-v0-core.c
293
SET_CH_32(dw, chan->dir, chan->id, transfer_size, child->sz);
drivers/dma/dw-edma/dw-hdma-v0-core.c
296
val = GET_CH_32(dw, chan->dir, chan->id, int_setup) |
drivers/dma/dw-edma/dw-hdma-v0-core.c
307
SET_CH_32(dw, chan->dir, chan->id, int_setup, val);
drivers/dma/dw-edma/dw-hdma-v0-core.c
310
val = GET_CH_32(dw, chan->dir, chan->id, control1);
drivers/dma/dw-edma/dw-hdma-v0-core.c
312
SET_CH_32(dw, chan->dir, chan->id, control1, val);
drivers/dma/dw-edma/dw-hdma-v0-core.c
314
SET_CH_32(dw, chan->dir, chan->id, doorbell,
drivers/dma/dw-edma/dw-hdma-v0-core.c
320
struct dw_edma_chan *chan = chunk->chan;
drivers/dma/dw-edma/dw-hdma-v0-core.c
322
if (chan->non_ll)
drivers/dma/dw-edma/dw-hdma-v0-core.c
328
static void dw_hdma_v0_core_ch_config(struct dw_edma_chan *chan)
drivers/dma/dw-edma/dw-hdma-v0-core.c
330
struct dw_edma *dw = chan->dw;
drivers/dma/dw-edma/dw-hdma-v0-core.c
333
SET_CH_32(dw, chan->dir, chan->id, msi_stop.lsb, chan->msi.address_lo);
drivers/dma/dw-edma/dw-hdma-v0-core.c
334
SET_CH_32(dw, chan->dir, chan->id, msi_stop.msb, chan->msi.address_hi);
drivers/dma/dw-edma/dw-hdma-v0-core.c
336
SET_CH_32(dw, chan->dir, chan->id, msi_abort.lsb, chan->msi.address_lo);
drivers/dma/dw-edma/dw-hdma-v0-core.c
337
SET_CH_32(dw, chan->dir, chan->id, msi_abort.msb, chan->msi.address_hi);
drivers/dma/dw-edma/dw-hdma-v0-core.c
339
SET_CH_32(dw, chan->dir, chan->id, msi_msgdata, chan->msi.data);
drivers/dma/dw-edma/dw-hdma-v0-core.c
76
static enum dma_status dw_hdma_v0_core_ch_status(struct dw_edma_chan *chan)
drivers/dma/dw-edma/dw-hdma-v0-core.c
78
struct dw_edma *dw = chan->dw;
drivers/dma/dw-edma/dw-hdma-v0-core.c
82
GET_CH_32(dw, chan->id, chan->dir, ch_stat));
drivers/dma/dw-edma/dw-hdma-v0-core.c
92
static void dw_hdma_v0_core_clear_done_int(struct dw_edma_chan *chan)
drivers/dma/dw-edma/dw-hdma-v0-core.c
94
struct dw_edma *dw = chan->dw;
drivers/dma/dw-edma/dw-hdma-v0-core.c
96
SET_CH_32(dw, chan->dir, chan->id, int_clear, HDMA_V0_STOP_INT_MASK);
drivers/dma/dw-edma/dw-hdma-v0-core.c
99
static void dw_hdma_v0_core_clear_abort_int(struct dw_edma_chan *chan)
drivers/dma/dw/acpi.c
11
struct dw_dma *dw = to_dw_dma(chan->device);
drivers/dma/dw/acpi.c
22
return dw_dma_filter(chan, &slave);
drivers/dma/dw/acpi.c
9
static bool dw_dma_acpi_filter(struct dma_chan *chan, void *param)
drivers/dma/dw/core.c
1008
dwc_tx_status(struct dma_chan *chan,
drivers/dma/dw/core.c
1012
struct dw_dma_chan *dwc = to_dw_dma_chan(chan);
drivers/dma/dw/core.c
1015
ret = dma_cookie_status(chan, cookie, txstate);
drivers/dma/dw/core.c
1019
dwc_scan_descriptors(to_dw_dma(chan->device), dwc);
drivers/dma/dw/core.c
1021
ret = dma_cookie_status(chan, cookie, txstate);
drivers/dma/dw/core.c
1029
static void dwc_issue_pending(struct dma_chan *chan)
drivers/dma/dw/core.c
1031
struct dw_dma_chan *dwc = to_dw_dma_chan(chan);
drivers/dma/dw/core.c
1061
static int dwc_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/dw/core.c
1063
struct dw_dma_chan *dwc = to_dw_dma_chan(chan);
drivers/dma/dw/core.c
1064
struct dw_dma *dw = to_dw_dma(chan->device);
drivers/dma/dw/core.c
1066
dev_vdbg(chan2dev(chan), "%s\n", __func__);
drivers/dma/dw/core.c
1070
dev_dbg(chan2dev(chan), "DMA channel not idle?\n");
drivers/dma/dw/core.c
1074
dma_cookie_init(chan);
drivers/dma/dw/core.c
1085
if (chan->private && !dw_dma_filter(chan, chan->private)) {
drivers/dma/dw/core.c
1086
dev_warn(chan2dev(chan), "Wrong controller-specific data\n");
drivers/dma/dw/core.c
1098
static void dwc_free_chan_resources(struct dma_chan *chan)
drivers/dma/dw/core.c
1100
struct dw_dma_chan *dwc = to_dw_dma_chan(chan);
drivers/dma/dw/core.c
1101
struct dw_dma *dw = to_dw_dma(chan->device);
drivers/dma/dw/core.c
1104
dev_dbg(chan2dev(chan), "%s: descs allocated=%u\n", __func__,
drivers/dma/dw/core.c
1110
BUG_ON(dma_readl(to_dw_dma(chan->device), CH_EN) & dwc->mask);
drivers/dma/dw/core.c
1129
dev_vdbg(chan2dev(chan), "%s: done\n", __func__);
drivers/dma/dw/core.c
1132
static void dwc_caps(struct dma_chan *chan, struct dma_slave_caps *caps)
drivers/dma/dw/core.c
1134
struct dw_dma_chan *dwc = to_dw_dma_chan(chan);
drivers/dma/dw/core.c
117
struct dw_dma *dw = to_dw_dma(dwc->chan.device);
drivers/dma/dw/core.c
1203
dw->chan = devm_kcalloc(chip->dev, pdata->nr_channels, sizeof(*dw->chan),
drivers/dma/dw/core.c
1205
if (!dw->chan) {
drivers/dma/dw/core.c
1237
struct dw_dma_chan *dwc = &dw->chan[i];
drivers/dma/dw/core.c
1239
dwc->chan.device = &dw->dma;
drivers/dma/dw/core.c
1240
dma_cookie_init(&dwc->chan);
drivers/dma/dw/core.c
1242
list_add_tail(&dwc->chan.device_node,
drivers/dma/dw/core.c
1245
list_add(&dwc->chan.device_node, &dw->dma.channels);
drivers/dma/dw/core.c
130
dev_err(chan2dev(&dwc->chan),
drivers/dma/dw/core.c
1342
dma_set_max_seg_size(dw->dma.dev, dw->chan[0].block_size);
drivers/dma/dw/core.c
1376
chan.device_node) {
drivers/dma/dw/core.c
1377
list_del(&dwc->chan.device_node);
drivers/dma/dw/core.c
152
struct dw_dma *dw = to_dw_dma(dwc->chan.device);
drivers/dma/dw/core.c
174
struct dw_dma *dw = to_dw_dma(dwc->chan.device);
drivers/dma/dw/core.c
180
dev_err(chan2dev(&dwc->chan),
drivers/dma/dw/core.c
193
dev_err(chan2dev(&dwc->chan),
drivers/dma/dw/core.c
226
dev_vdbg(chan2dev(&dwc->chan), "%s: started %u\n", __func__, desc->txd.cookie);
drivers/dma/dw/core.c
241
dev_vdbg(chan2dev(&dwc->chan), "descriptor %u complete\n", txd->cookie);
drivers/dma/dw/core.c
268
dev_err(chan2dev(&dwc->chan),
drivers/dma/dw/core.c
291
struct dw_dma *dw = to_dw_dma(dwc->chan.device);
drivers/dma/dw/core.c
356
dev_vdbg(chan2dev(&dwc->chan), "%s: soft LLP mode\n", __func__);
drivers/dma/dw/core.c
361
dev_vdbg(chan2dev(&dwc->chan), "%s: llp=%pad\n", __func__, &llp);
drivers/dma/dw/core.c
401
dev_err(chan2dev(&dwc->chan),
drivers/dma/dw/core.c
413
dev_crit(chan2dev(&dwc->chan), " desc: s0x%x d0x%x l0x%x c0x%x:%x\n",
drivers/dma/dw/core.c
44
static struct device *chan2dev(struct dma_chan *chan)
drivers/dma/dw/core.c
452
dev_WARN(chan2dev(&dwc->chan), "Bad descriptor submitted for DMA!\n"
drivers/dma/dw/core.c
46
return &chan->dev->device;
drivers/dma/dw/core.c
478
dwc = &dw->chan[i];
drivers/dma/dw/core.c
538
dwc_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dest, dma_addr_t src,
drivers/dma/dw/core.c
541
struct dw_dma_chan *dwc = to_dw_dma_chan(chan);
drivers/dma/dw/core.c
542
struct dw_dma *dw = to_dw_dma(chan->device);
drivers/dma/dw/core.c
555
dev_vdbg(chan2dev(chan),
drivers/dma/dw/core.c
560
dev_dbg(chan2dev(chan), "%s: length is zero!\n", __func__);
drivers/dma/dw/core.c
57
struct dw_dma_chan *dwc = to_dw_dma_chan(tx->chan);
drivers/dma/dw/core.c
615
dwc_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
drivers/dma/dw/core.c
619
struct dw_dma_chan *dwc = to_dw_dma_chan(chan);
drivers/dma/dw/core.c
620
struct dw_dma *dw = to_dw_dma(chan->device);
drivers/dma/dw/core.c
633
dev_vdbg(chan2dev(chan), "%s\n", __func__);
drivers/dma/dw/core.c
72
dev_vdbg(chan2dev(tx->chan), "%s: queued %u\n",
drivers/dma/dw/core.c
757
dev_err(chan2dev(chan),
drivers/dma/dw/core.c
763
bool dw_dma_filter(struct dma_chan *chan, void *param)
drivers/dma/dw/core.c
765
struct dw_dma_chan *dwc = to_dw_dma_chan(chan);
drivers/dma/dw/core.c
768
if (dws->dma_dev != chan->device->dev)
drivers/dma/dw/core.c
782
static int dwc_verify_maxburst(struct dma_chan *chan)
drivers/dma/dw/core.c
784
struct dw_dma_chan *dwc = to_dw_dma_chan(chan);
drivers/dma/dw/core.c
799
static int dwc_verify_p_buswidth(struct dma_chan *chan)
drivers/dma/dw/core.c
80
struct dw_dma *dw = to_dw_dma(dwc->chan.device);
drivers/dma/dw/core.c
801
struct dw_dma_chan *dwc = to_dw_dma_chan(chan);
drivers/dma/dw/core.c
802
struct dw_dma *dw = to_dw_dma(chan->device);
drivers/dma/dw/core.c
831
static int dwc_verify_m_buswidth(struct dma_chan *chan)
drivers/dma/dw/core.c
833
struct dw_dma_chan *dwc = to_dw_dma_chan(chan);
drivers/dma/dw/core.c
834
struct dw_dma *dw = to_dw_dma(chan->device);
drivers/dma/dw/core.c
866
static int dwc_config(struct dma_chan *chan, struct dma_slave_config *sconfig)
drivers/dma/dw/core.c
868
struct dw_dma_chan *dwc = to_dw_dma_chan(chan);
drivers/dma/dw/core.c
873
ret = dwc_verify_maxburst(chan);
drivers/dma/dw/core.c
877
ret = dwc_verify_p_buswidth(chan);
drivers/dma/dw/core.c
881
ret = dwc_verify_m_buswidth(chan);
drivers/dma/dw/core.c
890
struct dw_dma *dw = to_dw_dma(dwc->chan.device);
drivers/dma/dw/core.c
90
dma_async_tx_descriptor_init(&desc->txd, &dwc->chan);
drivers/dma/dw/core.c
901
static int dwc_pause(struct dma_chan *chan)
drivers/dma/dw/core.c
903
struct dw_dma_chan *dwc = to_dw_dma_chan(chan);
drivers/dma/dw/core.c
915
struct dw_dma *dw = to_dw_dma(dwc->chan.device);
drivers/dma/dw/core.c
922
static int dwc_resume(struct dma_chan *chan)
drivers/dma/dw/core.c
924
struct dw_dma_chan *dwc = to_dw_dma_chan(chan);
drivers/dma/dw/core.c
937
static int dwc_terminate_all(struct dma_chan *chan)
drivers/dma/dw/core.c
939
struct dw_dma_chan *dwc = to_dw_dma_chan(chan);
drivers/dma/dw/core.c
940
struct dw_dma *dw = to_dw_dma(chan->device);
drivers/dma/dw/core.c
99
struct dw_dma *dw = to_dw_dma(dwc->chan.device);
drivers/dma/dw/dw.c
16
struct dw_dma *dw = to_dw_dma(dwc->chan.device);
drivers/dma/dw/idma32.c
109
writel(value, misc + DMA_XBAR_SEL(dwc->chan.chan_id));
drivers/dma/dw/idma32.c
114
dst_id = dwc->chan.chan_id;
drivers/dma/dw/idma32.c
119
src_id = dwc->chan.chan_id;
drivers/dma/dw/idma32.c
38
struct device *slave = dwc->chan.slave;
drivers/dma/dw/idma32.c
48
struct dw_dma *dw = to_dw_dma(dwc->chan.device);
drivers/dma/dw/idma32.c
58
value |= dwc->chan.chan_id;
drivers/dma/dw/idma32.c
63
value = readl(misc + DMA_CTL_CH(dwc->chan.chan_id));
drivers/dma/dw/idma32.c
88
writel(value, misc + DMA_CTL_CH(dwc->chan.chan_id));
drivers/dma/dw/idma32.c
91
value = readl(misc + DMA_XBAR_SEL(dwc->chan.chan_id));
drivers/dma/dw/internal.h
24
extern bool dw_dma_filter(struct dma_chan *chan, void *param);
drivers/dma/dw/regs.h
267
struct dma_chan chan;
drivers/dma/dw/regs.h
308
static inline struct dw_dma_chan *to_dw_dma_chan(struct dma_chan *chan)
drivers/dma/dw/regs.h
310
return container_of(chan, struct dw_dma_chan, chan);
drivers/dma/dw/regs.h
321
struct dw_dma_chan *chan;
drivers/dma/dw/rzn1-dmamux.c
47
unsigned int dmac_idx, chan, val;
drivers/dma/dw/rzn1-dmamux.c
62
chan = dma_spec->args[0];
drivers/dma/dw/rzn1-dmamux.c
67
if (chan >= RZN1_DMAMUX_LINES_PER_CTLR) {
drivers/dma/dw/rzn1-dmamux.c
68
dev_err(&pdev->dev, "Invalid DMA request line: %u\n", chan);
drivers/dma/dw/rzn1-dmamux.c
74
(map->req_idx % RZN1_DMAMUX_LINES_PER_CTLR) != chan) {
drivers/dma/dw/rzn1-dmamux.c
89
map->req_idx, dmac_idx, chan);
drivers/dma/ep93xx_dma.c
1000
static void ep93xx_dma_free_chan_resources(struct dma_chan *chan)
drivers/dma/ep93xx_dma.c
1002
struct ep93xx_dma_chan *edmac = to_ep93xx_dma_chan(chan);
drivers/dma/ep93xx_dma.c
1036
ep93xx_dma_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dest,
drivers/dma/ep93xx_dma.c
1039
struct ep93xx_dma_chan *edmac = to_ep93xx_dma_chan(chan);
drivers/dma/ep93xx_dma.c
1084
ep93xx_dma_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
drivers/dma/ep93xx_dma.c
1088
struct ep93xx_dma_chan *edmac = to_ep93xx_dma_chan(chan);
drivers/dma/ep93xx_dma.c
1093
if (!edmac->edma->m2m && dir != ep93xx_dma_chan_direction(chan)) {
drivers/dma/ep93xx_dma.c
1105
ep93xx_dma_slave_config_write(chan, dir, &edmac->slave_config);
drivers/dma/ep93xx_dma.c
1166
ep93xx_dma_prep_dma_cyclic(struct dma_chan *chan, dma_addr_t dma_addr,
drivers/dma/ep93xx_dma.c
1170
struct ep93xx_dma_chan *edmac = to_ep93xx_dma_chan(chan);
drivers/dma/ep93xx_dma.c
1174
if (!edmac->edma->m2m && dir != ep93xx_dma_chan_direction(chan)) {
drivers/dma/ep93xx_dma.c
1192
ep93xx_dma_slave_config_write(chan, dir, &edmac->slave_config);
drivers/dma/ep93xx_dma.c
1240
static void ep93xx_dma_synchronize(struct dma_chan *chan)
drivers/dma/ep93xx_dma.c
1242
struct ep93xx_dma_chan *edmac = to_ep93xx_dma_chan(chan);
drivers/dma/ep93xx_dma.c
1255
static int ep93xx_dma_terminate_all(struct dma_chan *chan)
drivers/dma/ep93xx_dma.c
1257
struct ep93xx_dma_chan *edmac = to_ep93xx_dma_chan(chan);
drivers/dma/ep93xx_dma.c
1281
static int ep93xx_dma_slave_config(struct dma_chan *chan,
drivers/dma/ep93xx_dma.c
1284
struct ep93xx_dma_chan *edmac = to_ep93xx_dma_chan(chan);
drivers/dma/ep93xx_dma.c
1291
static int ep93xx_dma_slave_config_write(struct dma_chan *chan,
drivers/dma/ep93xx_dma.c
1295
struct ep93xx_dma_chan *edmac = to_ep93xx_dma_chan(chan);
drivers/dma/ep93xx_dma.c
133
static int ep93xx_dma_slave_config_write(struct dma_chan *chan,
drivers/dma/ep93xx_dma.c
1348
static enum dma_status ep93xx_dma_tx_status(struct dma_chan *chan,
drivers/dma/ep93xx_dma.c
1352
return dma_cookie_status(chan, cookie, state);
drivers/dma/ep93xx_dma.c
1362
static void ep93xx_dma_issue_pending(struct dma_chan *chan)
drivers/dma/ep93xx_dma.c
1364
ep93xx_dma_advance_work(to_ep93xx_dma_chan(chan));
drivers/dma/ep93xx_dma.c
1394
edmac->chan.device = dma_dev;
drivers/dma/ep93xx_dma.c
1425
list_add_tail(&edmac->chan.device_node,
drivers/dma/ep93xx_dma.c
1432
static bool ep93xx_m2p_dma_filter(struct dma_chan *chan, void *filter_param)
drivers/dma/ep93xx_dma.c
1434
struct ep93xx_dma_chan *echan = to_ep93xx_dma_chan(chan);
drivers/dma/ep93xx_dma.c
1437
if (cfg->dir != ep93xx_dma_chan_direction(chan))
drivers/dma/ep93xx_dma.c
1465
static bool ep93xx_m2m_dma_filter(struct dma_chan *chan, void *filter_param)
drivers/dma/ep93xx_dma.c
1467
struct ep93xx_dma_chan *echan = to_ep93xx_dma_chan(chan);
drivers/dma/ep93xx_dma.c
193
struct dma_chan chan;
drivers/dma/ep93xx_dma.c
255
return &edmac->chan.dev->device;
drivers/dma/ep93xx_dma.c
258
static struct ep93xx_dma_chan *to_ep93xx_dma_chan(struct dma_chan *chan)
drivers/dma/ep93xx_dma.c
260
return container_of(chan, struct ep93xx_dma_chan, chan);
drivers/dma/ep93xx_dma.c
263
static inline bool ep93xx_dma_chan_is_m2p(struct dma_chan *chan)
drivers/dma/ep93xx_dma.c
265
if (device_is_compatible(chan->device->dev, "cirrus,ep9301-dma-m2p"))
drivers/dma/ep93xx_dma.c
268
return !strcmp(dev_name(chan->device->dev), "ep93xx-dma-m2p");
drivers/dma/ep93xx_dma.c
279
ep93xx_dma_chan_direction(struct dma_chan *chan)
drivers/dma/ep93xx_dma.c
281
if (!ep93xx_dma_chan_is_m2p(chan))
drivers/dma/ep93xx_dma.c
285
return (chan->chan_id % 2 == 0) ? DMA_MEM_TO_DEV : DMA_DEV_TO_MEM;
drivers/dma/ep93xx_dma.c
432
if (ep93xx_dma_chan_direction(&edmac->chan) == DMA_MEM_TO_DEV)
drivers/dma/ep93xx_dma.c
889
struct ep93xx_dma_chan *edmac = to_ep93xx_dma_chan(tx->chan);
drivers/dma/ep93xx_dma.c
923
static int ep93xx_dma_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/ep93xx_dma.c
925
struct ep93xx_dma_chan *edmac = to_ep93xx_dma_chan(chan);
drivers/dma/ep93xx_dma.c
926
const char *name = dma_chan_name(chan);
drivers/dma/ep93xx_dma.c
933
if (edmac->dma_cfg.dir != ep93xx_dma_chan_direction(chan))
drivers/dma/ep93xx_dma.c
958
dma_cookie_init(&edmac->chan);
drivers/dma/ep93xx_dma.c
976
dma_async_tx_descriptor_init(&desc->txd, chan);
drivers/dma/fsl-dpaa2-qdma/dpaa2-qdma.c
19
static struct dpaa2_qdma_chan *to_dpaa2_qdma_chan(struct dma_chan *chan)
drivers/dma/fsl-dpaa2-qdma/dpaa2-qdma.c
21
return container_of(chan, struct dpaa2_qdma_chan, vchan.chan);
drivers/dma/fsl-dpaa2-qdma/dpaa2-qdma.c
241
*dpaa2_qdma_prep_memcpy(struct dma_chan *chan, dma_addr_t dst,
drivers/dma/fsl-dpaa2-qdma/dpaa2-qdma.c
244
struct dpaa2_qdma_chan *dpaa2_chan = to_dpaa2_qdma_chan(chan);
drivers/dma/fsl-dpaa2-qdma/dpaa2-qdma.c
272
static void dpaa2_qdma_issue_pending(struct dma_chan *chan)
drivers/dma/fsl-dpaa2-qdma/dpaa2-qdma.c
274
struct dpaa2_qdma_chan *dpaa2_chan = to_dpaa2_qdma_chan(chan);
drivers/dma/fsl-dpaa2-qdma/dpaa2-qdma.c
29
static int dpaa2_qdma_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/fsl-dpaa2-qdma/dpaa2-qdma.c
31
struct dpaa2_qdma_chan *dpaa2_chan = to_dpaa2_qdma_chan(chan);
drivers/dma/fsl-dpaa2-qdma/dpaa2-qdma.c
65
static void dpaa2_qdma_free_chan_resources(struct dma_chan *chan)
drivers/dma/fsl-dpaa2-qdma/dpaa2-qdma.c
67
struct dpaa2_qdma_chan *dpaa2_chan = to_dpaa2_qdma_chan(chan);
drivers/dma/fsl-edma-common.c
105
u32 ch = fsl_chan->vchan.chan.chan_id;
drivers/dma/fsl-edma-common.c
139
u32 ch = fsl_chan->vchan.chan.chan_id;
drivers/dma/fsl-edma-common.c
185
u32 ch = fsl_chan->vchan.chan.chan_id;
drivers/dma/fsl-edma-common.c
195
ch_off = fsl_chan->vchan.chan.chan_id % chans_per_mux;
drivers/dma/fsl-edma-common.c
236
int fsl_edma_terminate_all(struct dma_chan *chan)
drivers/dma/fsl-edma-common.c
238
struct fsl_edma_chan *fsl_chan = to_fsl_edma_chan(chan);
drivers/dma/fsl-edma-common.c
256
int fsl_edma_pause(struct dma_chan *chan)
drivers/dma/fsl-edma-common.c
258
struct fsl_edma_chan *fsl_chan = to_fsl_edma_chan(chan);
drivers/dma/fsl-edma-common.c
270
int fsl_edma_resume(struct dma_chan *chan)
drivers/dma/fsl-edma-common.c
272
struct fsl_edma_chan *fsl_chan = to_fsl_edma_chan(chan);
drivers/dma/fsl-edma-common.c
287
dma_unmap_resource(fsl_chan->vchan.chan.device->dev,
drivers/dma/fsl-edma-common.c
297
struct device *dev = fsl_chan->vchan.chan.device->dev;
drivers/dma/fsl-edma-common.c
333
int fsl_edma_slave_config(struct dma_chan *chan,
drivers/dma/fsl-edma-common.c
336
struct fsl_edma_chan *fsl_chan = to_fsl_edma_chan(chan);
drivers/dma/fsl-edma-common.c
399
enum dma_status fsl_edma_tx_status(struct dma_chan *chan,
drivers/dma/fsl-edma-common.c
402
struct fsl_edma_chan *fsl_chan = to_fsl_edma_chan(chan);
drivers/dma/fsl-edma-common.c
407
status = dma_cookie_status(chan, cookie, txstate);
drivers/dma/fsl-edma-common.c
591
struct dma_chan *chan, dma_addr_t dma_addr, size_t buf_len,
drivers/dma/fsl-edma-common.c
595
struct fsl_edma_chan *fsl_chan = to_fsl_edma_chan(chan);
drivers/dma/fsl-edma-common.c
677
struct dma_chan *chan, struct scatterlist *sgl,
drivers/dma/fsl-edma-common.c
681
struct fsl_edma_chan *fsl_chan = to_fsl_edma_chan(chan);
drivers/dma/fsl-edma-common.c
779
struct dma_async_tx_descriptor *fsl_edma_prep_memcpy(struct dma_chan *chan,
drivers/dma/fsl-edma-common.c
783
struct fsl_edma_chan *fsl_chan = to_fsl_edma_chan(chan);
drivers/dma/fsl-edma-common.c
823
void fsl_edma_issue_pending(struct dma_chan *chan)
drivers/dma/fsl-edma-common.c
825
struct fsl_edma_chan *fsl_chan = to_fsl_edma_chan(chan);
drivers/dma/fsl-edma-common.c
842
int fsl_edma_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/fsl-edma-common.c
844
struct fsl_edma_chan *fsl_chan = to_fsl_edma_chan(chan);
drivers/dma/fsl-edma-common.c
850
fsl_chan->tcd_pool = dma_pool_create("tcd_pool", chan->device->dev,
drivers/dma/fsl-edma-common.c
881
void fsl_edma_free_chan_resources(struct dma_chan *chan)
drivers/dma/fsl-edma-common.c
883
struct fsl_edma_chan *fsl_chan = to_fsl_edma_chan(chan);
drivers/dma/fsl-edma-common.c
913
struct fsl_edma_chan *chan, *_chan;
drivers/dma/fsl-edma-common.c
915
list_for_each_entry_safe(chan, _chan,
drivers/dma/fsl-edma-common.c
916
&dmadev->channels, vchan.chan.device_node) {
drivers/dma/fsl-edma-common.c
917
list_del(&chan->vchan.chan.device_node);
drivers/dma/fsl-edma-common.c
918
tasklet_kill(&chan->vchan.task);
drivers/dma/fsl-edma-common.h
277
#define edma_read_tcdreg_c(chan, _tcd, __name) \
drivers/dma/fsl-edma-common.h
279
__iomem __le64 : edma_readq(chan->edma, &(_tcd)->__name), \
drivers/dma/fsl-edma-common.h
280
__iomem __le32 : edma_readl(chan->edma, &(_tcd)->__name), \
drivers/dma/fsl-edma-common.h
281
__iomem __le16 : edma_readw(chan->edma, &(_tcd)->__name) \
drivers/dma/fsl-edma-common.h
284
#define edma_read_tcdreg(chan, __name) \
drivers/dma/fsl-edma-common.h
285
((fsl_edma_drvflags(chan) & FSL_EDMA_DRV_TCD64) ? \
drivers/dma/fsl-edma-common.h
286
edma_read_tcdreg_c(chan, ((struct fsl_edma_hw_tcd64 __iomem *)chan->tcd), __name) : \
drivers/dma/fsl-edma-common.h
287
edma_read_tcdreg_c(chan, ((struct fsl_edma_hw_tcd __iomem *)chan->tcd), __name) \
drivers/dma/fsl-edma-common.h
290
#define edma_write_tcdreg_c(chan, _tcd, _val, __name) \
drivers/dma/fsl-edma-common.h
292
__iomem __le64 : edma_writeq(chan->edma, (u64 __force)(_val), &_tcd->__name), \
drivers/dma/fsl-edma-common.h
293
__iomem __le32 : edma_writel(chan->edma, (u32 __force)(_val), &_tcd->__name), \
drivers/dma/fsl-edma-common.h
294
__iomem __le16 : edma_writew(chan->edma, (u16 __force)(_val), &_tcd->__name), \
drivers/dma/fsl-edma-common.h
295
__iomem u8 : edma_writeb(chan->edma, _val, &_tcd->__name) \
drivers/dma/fsl-edma-common.h
298
#define edma_write_tcdreg(chan, val, __name) \
drivers/dma/fsl-edma-common.h
300
struct fsl_edma_hw_tcd64 __iomem *tcd64_r = (struct fsl_edma_hw_tcd64 __iomem *)chan->tcd; \
drivers/dma/fsl-edma-common.h
301
struct fsl_edma_hw_tcd __iomem *tcd_r = (struct fsl_edma_hw_tcd __iomem *)chan->tcd; \
drivers/dma/fsl-edma-common.h
303
if (fsl_edma_drvflags(chan) & FSL_EDMA_DRV_TCD64) \
drivers/dma/fsl-edma-common.h
304
edma_write_tcdreg_c(chan, tcd64_r, val, __name); \
drivers/dma/fsl-edma-common.h
306
edma_write_tcdreg_c(chan, tcd_r, val, __name); \
drivers/dma/fsl-edma-common.h
309
#define edma_cp_tcd_to_reg(chan, __tcd, __name) \
drivers/dma/fsl-edma-common.h
311
struct fsl_edma_hw_tcd64 __iomem *tcd64_r = (struct fsl_edma_hw_tcd64 __iomem *)chan->tcd; \
drivers/dma/fsl-edma-common.h
312
struct fsl_edma_hw_tcd __iomem *tcd_r = (struct fsl_edma_hw_tcd __iomem *)chan->tcd; \
drivers/dma/fsl-edma-common.h
316
if (fsl_edma_drvflags(chan) & FSL_EDMA_DRV_TCD64) \
drivers/dma/fsl-edma-common.h
317
edma_write_tcdreg_c(chan, tcd64_r, tcd64_m->__name, __name); \
drivers/dma/fsl-edma-common.h
319
edma_write_tcdreg_c(chan, tcd_r, tcd_m->__name, __name); \
drivers/dma/fsl-edma-common.h
322
#define edma_readl_chreg(chan, __name) \
drivers/dma/fsl-edma-common.h
323
edma_readl(chan->edma, \
drivers/dma/fsl-edma-common.h
324
(void __iomem *)&(container_of(((__force void *)chan->tcd),\
drivers/dma/fsl-edma-common.h
327
#define edma_writel_chreg(chan, val, __name) \
drivers/dma/fsl-edma-common.h
328
edma_writel(chan->edma, val, \
drivers/dma/fsl-edma-common.h
329
(void __iomem *)&(container_of(((__force void *)chan->tcd),\
drivers/dma/fsl-edma-common.h
468
static inline struct fsl_edma_chan *to_fsl_edma_chan(struct dma_chan *chan)
drivers/dma/fsl-edma-common.h
470
return container_of(chan, struct fsl_edma_chan, vchan.chan);
drivers/dma/fsl-edma-common.h
488
int fsl_edma_terminate_all(struct dma_chan *chan);
drivers/dma/fsl-edma-common.h
489
int fsl_edma_pause(struct dma_chan *chan);
drivers/dma/fsl-edma-common.h
490
int fsl_edma_resume(struct dma_chan *chan);
drivers/dma/fsl-edma-common.h
491
int fsl_edma_slave_config(struct dma_chan *chan,
drivers/dma/fsl-edma-common.h
493
enum dma_status fsl_edma_tx_status(struct dma_chan *chan,
drivers/dma/fsl-edma-common.h
496
struct dma_chan *chan, dma_addr_t dma_addr, size_t buf_len,
drivers/dma/fsl-edma-common.h
500
struct dma_chan *chan, struct scatterlist *sgl,
drivers/dma/fsl-edma-common.h
504
struct dma_chan *chan, dma_addr_t dma_dst, dma_addr_t dma_src,
drivers/dma/fsl-edma-common.h
507
void fsl_edma_issue_pending(struct dma_chan *chan);
drivers/dma/fsl-edma-common.h
508
int fsl_edma_alloc_chan_resources(struct dma_chan *chan);
drivers/dma/fsl-edma-common.h
509
void fsl_edma_free_chan_resources(struct dma_chan *chan);
drivers/dma/fsl-edma-main.c
157
struct fsl_edma_chan *chan;
drivers/dma/fsl-edma-main.c
163
chan = &fsl_edma->chans[i];
drivers/dma/fsl-edma-main.c
165
fsl_edma3_tx_handler(irq, chan);
drivers/dma/fsl-edma-main.c
186
struct fsl_edma_chan *chan;
drivers/dma/fsl-edma-main.c
193
chan = &fsl_edma->chans[ch];
drivers/dma/fsl-edma-main.c
195
ch_es = edma_readl_chreg(chan, ch_es);
drivers/dma/fsl-edma-main.c
199
edma_writel_chreg(chan, EDMA_V3_CH_ES_ERR, ch_es);
drivers/dma/fsl-edma-main.c
200
fsl_edma_disable_request(chan);
drivers/dma/fsl-edma-main.c
255
struct dma_chan *chan, *_chan;
drivers/dma/fsl-edma-main.c
265
list_for_each_entry_safe(chan, _chan, &fsl_edma->dma_dev.channels, device_node) {
drivers/dma/fsl-edma-main.c
266
if (chan->client_count)
drivers/dma/fsl-edma-main.c
27
static void fsl_edma_synchronize(struct dma_chan *chan)
drivers/dma/fsl-edma-main.c
272
if ((chan->chan_id / chans_per_mux) == dma_spec->args[0]) {
drivers/dma/fsl-edma-main.c
273
chan = dma_get_slave_channel(chan);
drivers/dma/fsl-edma-main.c
274
if (chan) {
drivers/dma/fsl-edma-main.c
275
chan->device->privatecnt++;
drivers/dma/fsl-edma-main.c
276
fsl_chan = to_fsl_edma_chan(chan);
drivers/dma/fsl-edma-main.c
287
return chan;
drivers/dma/fsl-edma-main.c
29
struct fsl_edma_chan *fsl_chan = to_fsl_edma_chan(chan);
drivers/dma/fsl-edma-main.c
298
struct dma_chan *chan, *_chan;
drivers/dma/fsl-edma-main.c
309
list_for_each_entry_safe(chan, _chan, &fsl_edma->dma_dev.channels,
drivers/dma/fsl-edma-main.c
312
if (chan->client_count)
drivers/dma/fsl-edma-main.c
315
fsl_chan = to_fsl_edma_chan(chan);
drivers/dma/fsl-edma-main.c
335
chan = dma_get_slave_channel(chan);
drivers/dma/fsl-edma-main.c
336
chan->device->privatecnt++;
drivers/dma/fsl-edma-main.c
337
return chan;
drivers/dma/fsl-edma-trace.h
118
TP_PROTO(struct fsl_edma_chan *chan, void *tcd),
drivers/dma/fsl-edma-trace.h
119
TP_ARGS(chan, tcd)
drivers/dma/fsl-edma-trace.h
63
TP_PROTO(struct fsl_edma_chan *chan, void *tcd),
drivers/dma/fsl-edma-trace.h
64
TP_ARGS(chan, tcd),
drivers/dma/fsl-edma-trace.h
80
__entry->saddr = fsl_edma_get_tcd_to_cpu(chan, tcd, saddr),
drivers/dma/fsl-edma-trace.h
81
__entry->soff = fsl_edma_get_tcd_to_cpu(chan, tcd, soff),
drivers/dma/fsl-edma-trace.h
82
__entry->attr = fsl_edma_get_tcd_to_cpu(chan, tcd, attr),
drivers/dma/fsl-edma-trace.h
83
__entry->nbytes = fsl_edma_get_tcd_to_cpu(chan, tcd, nbytes),
drivers/dma/fsl-edma-trace.h
84
__entry->slast = fsl_edma_get_tcd_to_cpu(chan, tcd, slast),
drivers/dma/fsl-edma-trace.h
85
__entry->daddr = fsl_edma_get_tcd_to_cpu(chan, tcd, daddr),
drivers/dma/fsl-edma-trace.h
86
__entry->doff = fsl_edma_get_tcd_to_cpu(chan, tcd, doff),
drivers/dma/fsl-edma-trace.h
87
__entry->citer = fsl_edma_get_tcd_to_cpu(chan, tcd, citer),
drivers/dma/fsl-edma-trace.h
88
__entry->dlast_sga = fsl_edma_get_tcd_to_cpu(chan, tcd, dlast_sga),
drivers/dma/fsl-edma-trace.h
89
__entry->csr = fsl_edma_get_tcd_to_cpu(chan, tcd, csr),
drivers/dma/fsl-edma-trace.h
90
__entry->biter = fsl_edma_get_tcd_to_cpu(chan, tcd, biter);
drivers/dma/fsl-qdma.c
1035
static void fsl_qdma_issue_pending(struct dma_chan *chan)
drivers/dma/fsl-qdma.c
1038
struct fsl_qdma_chan *fsl_chan = to_fsl_qdma_chan(chan);
drivers/dma/fsl-qdma.c
1049
static void fsl_qdma_synchronize(struct dma_chan *chan)
drivers/dma/fsl-qdma.c
1051
struct fsl_qdma_chan *fsl_chan = to_fsl_qdma_chan(chan);
drivers/dma/fsl-qdma.c
1056
static int fsl_qdma_terminate_all(struct dma_chan *chan)
drivers/dma/fsl-qdma.c
1060
struct fsl_qdma_chan *fsl_chan = to_fsl_qdma_chan(chan);
drivers/dma/fsl-qdma.c
1069
static int fsl_qdma_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/fsl-qdma.c
1072
struct fsl_qdma_chan *fsl_chan = to_fsl_qdma_chan(chan);
drivers/dma/fsl-qdma.c
1086
chan->device->dev,
drivers/dma/fsl-qdma.c
1097
chan->device->dev,
drivers/dma/fsl-qdma.c
1105
dev_err(chan->device->dev,
drivers/dma/fsl-qdma.c
1253
struct fsl_qdma_chan *chan, *_chan;
drivers/dma/fsl-qdma.c
1255
list_for_each_entry_safe(chan, _chan,
drivers/dma/fsl-qdma.c
1256
&dmadev->channels, vchan.chan.device_node) {
drivers/dma/fsl-qdma.c
1257
list_del(&chan->vchan.chan.device_node);
drivers/dma/fsl-qdma.c
1258
tasklet_kill(&chan->vchan.task);
drivers/dma/fsl-qdma.c
302
static struct fsl_qdma_chan *to_fsl_qdma_chan(struct dma_chan *chan)
drivers/dma/fsl-qdma.c
304
return container_of(chan, struct fsl_qdma_chan, vchan.chan);
drivers/dma/fsl-qdma.c
312
static void fsl_qdma_free_chan_resources(struct dma_chan *chan)
drivers/dma/fsl-qdma.c
314
struct fsl_qdma_chan *fsl_chan = to_fsl_qdma_chan(chan);
drivers/dma/fsl-qdma.c
975
fsl_qdma_prep_memcpy(struct dma_chan *chan, dma_addr_t dst,
drivers/dma/fsl-qdma.c
979
struct fsl_qdma_chan *fsl_chan = to_fsl_qdma_chan(chan);
drivers/dma/fsl_raid.c
106
static void fsl_re_issue_pending(struct dma_chan *chan)
drivers/dma/fsl_raid.c
113
re_chan = container_of(chan, struct fsl_re_chan, chan);
drivers/dma/fsl_raid.c
155
fsl_re_issue_pending(&re_chan->chan);
drivers/dma/fsl_raid.c
232
static enum dma_status fsl_re_tx_status(struct dma_chan *chan,
drivers/dma/fsl_raid.c
236
return dma_cookie_status(chan, cookie, txstate);
drivers/dma/fsl_raid.c
256
dma_async_tx_descriptor_init(&desc->async_tx, &re_chan->chan);
drivers/dma/fsl_raid.c
316
struct dma_chan *chan, dma_addr_t dest, dma_addr_t *src,
drivers/dma/fsl_raid.c
329
re_chan = container_of(chan, struct fsl_re_chan, chan);
drivers/dma/fsl_raid.c
391
struct dma_chan *chan, dma_addr_t dest, dma_addr_t *src,
drivers/dma/fsl_raid.c
395
return fsl_re_prep_dma_genq(chan, dest, src, src_cnt, NULL, len, flags);
drivers/dma/fsl_raid.c
403
struct dma_chan *chan, dma_addr_t *dest, dma_addr_t *src,
drivers/dma/fsl_raid.c
416
re_chan = container_of(chan, struct fsl_re_chan, chan);
drivers/dma/fsl_raid.c
437
tx = fsl_re_prep_dma_genq(chan, dest[1], dma_src, 2, coef, len,
drivers/dma/fsl_raid.c
454
return fsl_re_prep_dma_genq(chan, dest[1], src, src_cnt,
drivers/dma/fsl_raid.c
526
struct dma_chan *chan, dma_addr_t dest, dma_addr_t src,
drivers/dma/fsl_raid.c
536
re_chan = container_of(chan, struct fsl_re_chan, chan);
drivers/dma/fsl_raid.c
572
static int fsl_re_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/fsl_raid.c
580
re_chan = container_of(chan, struct fsl_re_chan, chan);
drivers/dma/fsl_raid.c
602
static void fsl_re_free_chan_resources(struct dma_chan *chan)
drivers/dma/fsl_raid.c
607
re_chan = container_of(chan, struct fsl_re_chan, chan);
drivers/dma/fsl_raid.c
628
struct fsl_re_chan *chan;
drivers/dma/fsl_raid.c
639
chan = devm_kzalloc(dev, sizeof(*chan), GFP_KERNEL);
drivers/dma/fsl_raid.c
640
if (!chan)
drivers/dma/fsl_raid.c
659
chan->jrregs = (struct fsl_re_chan_cfg *)((u8 *)re_priv->re_regs +
drivers/dma/fsl_raid.c
663
chan->irq = irq_of_parse_and_map(np, 0);
drivers/dma/fsl_raid.c
664
if (!chan->irq) {
drivers/dma/fsl_raid.c
670
snprintf(chan->name, sizeof(chan->name), "re_jr%02d", q);
drivers/dma/fsl_raid.c
673
tasklet_setup(&chan->irqtask, fsl_re_dequeue);
drivers/dma/fsl_raid.c
675
ret = request_irq(chan->irq, fsl_re_isr, 0, chan->name, chandev);
drivers/dma/fsl_raid.c
682
re_priv->re_jrs[q] = chan;
drivers/dma/fsl_raid.c
683
chan->chan.device = dma_dev;
drivers/dma/fsl_raid.c
684
chan->chan.private = chan;
drivers/dma/fsl_raid.c
685
chan->dev = chandev;
drivers/dma/fsl_raid.c
686
chan->re_dev = re_priv;
drivers/dma/fsl_raid.c
688
spin_lock_init(&chan->desc_lock);
drivers/dma/fsl_raid.c
689
INIT_LIST_HEAD(&chan->ack_q);
drivers/dma/fsl_raid.c
690
INIT_LIST_HEAD(&chan->active_q);
drivers/dma/fsl_raid.c
691
INIT_LIST_HEAD(&chan->submit_q);
drivers/dma/fsl_raid.c
692
INIT_LIST_HEAD(&chan->free_q);
drivers/dma/fsl_raid.c
694
chan->inb_ring_virt_addr = dma_pool_alloc(chan->re_dev->hw_desc_pool,
drivers/dma/fsl_raid.c
695
GFP_KERNEL, &chan->inb_phys_addr);
drivers/dma/fsl_raid.c
696
if (!chan->inb_ring_virt_addr) {
drivers/dma/fsl_raid.c
702
chan->oub_ring_virt_addr = dma_pool_alloc(chan->re_dev->hw_desc_pool,
drivers/dma/fsl_raid.c
703
GFP_KERNEL, &chan->oub_phys_addr);
drivers/dma/fsl_raid.c
704
if (!chan->oub_ring_virt_addr) {
drivers/dma/fsl_raid.c
711
out_be32(&chan->jrregs->inbring_base_h,
drivers/dma/fsl_raid.c
712
chan->inb_phys_addr & FSL_RE_ADDR_BIT_MASK);
drivers/dma/fsl_raid.c
713
out_be32(&chan->jrregs->oubring_base_h,
drivers/dma/fsl_raid.c
714
chan->oub_phys_addr & FSL_RE_ADDR_BIT_MASK);
drivers/dma/fsl_raid.c
715
out_be32(&chan->jrregs->inbring_base_l,
drivers/dma/fsl_raid.c
716
chan->inb_phys_addr >> FSL_RE_ADDR_BIT_SHIFT);
drivers/dma/fsl_raid.c
717
out_be32(&chan->jrregs->oubring_base_l,
drivers/dma/fsl_raid.c
718
chan->oub_phys_addr >> FSL_RE_ADDR_BIT_SHIFT);
drivers/dma/fsl_raid.c
719
out_be32(&chan->jrregs->inbring_size,
drivers/dma/fsl_raid.c
721
out_be32(&chan->jrregs->oubring_size,
drivers/dma/fsl_raid.c
725
status = in_be32(&chan->jrregs->jr_config_1) & FSL_RE_REG_LIODN_MASK;
drivers/dma/fsl_raid.c
728
out_be32(&chan->jrregs->jr_config_1,
drivers/dma/fsl_raid.c
731
dev_set_drvdata(chandev, chan);
drivers/dma/fsl_raid.c
734
out_be32(&chan->jrregs->jr_command, FSL_RE_ENABLE);
drivers/dma/fsl_raid.c
739
dma_pool_free(chan->re_dev->hw_desc_pool, chan->inb_ring_virt_addr,
drivers/dma/fsl_raid.c
740
chan->inb_phys_addr);
drivers/dma/fsl_raid.c
847
static void fsl_re_remove_chan(struct fsl_re_chan *chan)
drivers/dma/fsl_raid.c
849
tasklet_kill(&chan->irqtask);
drivers/dma/fsl_raid.c
851
dma_pool_free(chan->re_dev->hw_desc_pool, chan->inb_ring_virt_addr,
drivers/dma/fsl_raid.c
852
chan->inb_phys_addr);
drivers/dma/fsl_raid.c
854
dma_pool_free(chan->re_dev->hw_desc_pool, chan->oub_ring_virt_addr,
drivers/dma/fsl_raid.c
855
chan->oub_phys_addr);
drivers/dma/fsl_raid.c
95
re_chan = container_of(tx->chan, struct fsl_re_chan, chan);
drivers/dma/fsl_raid.h
275
struct dma_chan chan;
drivers/dma/fsldma.c
100
static void set_desc_src(struct fsldma_chan *chan,
drivers/dma/fsldma.c
1002
struct fsldma_chan *chan;
drivers/dma/fsldma.c
1013
chan = fdev->chan[i];
drivers/dma/fsldma.c
1014
if (!chan)
drivers/dma/fsldma.c
1018
dev_dbg(fdev->dev, "IRQ: chan %d\n", chan->id);
drivers/dma/fsldma.c
1019
fsldma_chan_irq(irq, chan);
drivers/dma/fsldma.c
1032
struct fsldma_chan *chan;
drivers/dma/fsldma.c
1042
chan = fdev->chan[i];
drivers/dma/fsldma.c
1043
if (chan && chan->irq) {
drivers/dma/fsldma.c
1044
chan_dbg(chan, "free per-channel IRQ\n");
drivers/dma/fsldma.c
1045
free_irq(chan->irq, chan);
drivers/dma/fsldma.c
105
snoop_bits = ((chan->feature & FSL_DMA_IP_MASK) == FSL_DMA_IP_85XX)
drivers/dma/fsldma.c
1052
struct fsldma_chan *chan;
drivers/dma/fsldma.c
1066
chan = fdev->chan[i];
drivers/dma/fsldma.c
1067
if (!chan)
drivers/dma/fsldma.c
107
hw->src_addr = CPU_TO_DMA(chan, snoop_bits | src, 64);
drivers/dma/fsldma.c
1070
if (!chan->irq) {
drivers/dma/fsldma.c
1071
chan_err(chan, "interrupts property missing in device tree\n");
drivers/dma/fsldma.c
1076
chan_dbg(chan, "request per-channel IRQ\n");
drivers/dma/fsldma.c
1077
ret = request_irq(chan->irq, fsldma_chan_irq, IRQF_SHARED,
drivers/dma/fsldma.c
1078
"fsldma-chan", chan);
drivers/dma/fsldma.c
1080
chan_err(chan, "unable to request per-channel IRQ\n");
drivers/dma/fsldma.c
1089
chan = fdev->chan[i];
drivers/dma/fsldma.c
1090
if (!chan)
drivers/dma/fsldma.c
1093
if (!chan->irq)
drivers/dma/fsldma.c
1096
free_irq(chan->irq, chan);
drivers/dma/fsldma.c
110
static void set_desc_dst(struct fsldma_chan *chan,
drivers/dma/fsldma.c
1109
struct fsldma_chan *chan;
drivers/dma/fsldma.c
1114
chan = kzalloc_obj(*chan);
drivers/dma/fsldma.c
1115
if (!chan) {
drivers/dma/fsldma.c
1121
chan->regs = of_iomap(node, 0);
drivers/dma/fsldma.c
1122
if (!chan->regs) {
drivers/dma/fsldma.c
1134
chan->feature = feature;
drivers/dma/fsldma.c
1136
fdev->feature = chan->feature;
drivers/dma/fsldma.c
1142
WARN_ON(fdev->feature != chan->feature);
drivers/dma/fsldma.c
1144
chan->dev = fdev->dev;
drivers/dma/fsldma.c
1145
chan->id = (res.start & 0xfff) < 0x300 ?
drivers/dma/fsldma.c
1148
if (chan->id >= FSL_DMA_MAX_CHANS_PER_DEVICE) {
drivers/dma/fsldma.c
115
snoop_bits = ((chan->feature & FSL_DMA_IP_MASK) == FSL_DMA_IP_85XX)
drivers/dma/fsldma.c
1154
fdev->chan[chan->id] = chan;
drivers/dma/fsldma.c
1155
tasklet_setup(&chan->tasklet, dma_do_tasklet);
drivers/dma/fsldma.c
1156
snprintf(chan->name, sizeof(chan->name), "chan%d", chan->id);
drivers/dma/fsldma.c
1159
dma_init(chan);
drivers/dma/fsldma.c
1162
set_cdar(chan, 0);
drivers/dma/fsldma.c
1164
switch (chan->feature & FSL_DMA_IP_MASK) {
drivers/dma/fsldma.c
1166
chan->toggle_ext_pause = fsl_chan_toggle_ext_pause;
drivers/dma/fsldma.c
1169
chan->toggle_ext_start = fsl_chan_toggle_ext_start;
drivers/dma/fsldma.c
117
hw->dst_addr = CPU_TO_DMA(chan, snoop_bits | dst, 64);
drivers/dma/fsldma.c
1170
chan->set_src_loop_size = fsl_chan_set_src_loop_size;
drivers/dma/fsldma.c
1171
chan->set_dst_loop_size = fsl_chan_set_dst_loop_size;
drivers/dma/fsldma.c
1172
chan->set_request_count = fsl_chan_set_request_count;
drivers/dma/fsldma.c
1175
spin_lock_init(&chan->desc_lock);
drivers/dma/fsldma.c
1176
INIT_LIST_HEAD(&chan->ld_pending);
drivers/dma/fsldma.c
1177
INIT_LIST_HEAD(&chan->ld_running);
drivers/dma/fsldma.c
1178
INIT_LIST_HEAD(&chan->ld_completed);
drivers/dma/fsldma.c
1179
chan->idle = true;
drivers/dma/fsldma.c
1181
chan->pm_state = RUNNING;
drivers/dma/fsldma.c
1184
chan->common.device = &fdev->common;
drivers/dma/fsldma.c
1185
dma_cookie_init(&chan->common);
drivers/dma/fsldma.c
1188
chan->irq = irq_of_parse_and_map(node, 0);
drivers/dma/fsldma.c
1191
list_add_tail(&chan->common.device_node, &fdev->common.channels);
drivers/dma/fsldma.c
1193
dev_info(fdev->dev, "#%d (%s), irq %d\n", chan->id, compatible,
drivers/dma/fsldma.c
1194
chan->irq ? chan->irq : fdev->irq);
drivers/dma/fsldma.c
1199
iounmap(chan->regs);
drivers/dma/fsldma.c
120
static void set_desc_next(struct fsldma_chan *chan,
drivers/dma/fsldma.c
1201
kfree(chan);
drivers/dma/fsldma.c
1206
static void fsl_dma_chan_remove(struct fsldma_chan *chan)
drivers/dma/fsldma.c
1208
irq_dispose_mapping(chan->irq);
drivers/dma/fsldma.c
1209
list_del(&chan->common.device_node);
drivers/dma/fsldma.c
1210
iounmap(chan->regs);
drivers/dma/fsldma.c
1211
kfree(chan);
drivers/dma/fsldma.c
125
snoop_bits = ((chan->feature & FSL_DMA_IP_MASK) == FSL_DMA_IP_83XX)
drivers/dma/fsldma.c
127
hw->next_ln_addr = CPU_TO_DMA(chan, snoop_bits | next, 64);
drivers/dma/fsldma.c
130
static void set_ld_eol(struct fsldma_chan *chan, struct fsl_desc_sw *desc)
drivers/dma/fsldma.c
1300
if (fdev->chan[i])
drivers/dma/fsldma.c
1301
fsl_dma_chan_remove(fdev->chan[i]);
drivers/dma/fsldma.c
1322
if (fdev->chan[i])
drivers/dma/fsldma.c
1323
fsl_dma_chan_remove(fdev->chan[i]);
drivers/dma/fsldma.c
1335
struct fsldma_chan *chan;
drivers/dma/fsldma.c
1339
chan = fdev->chan[i];
drivers/dma/fsldma.c
134
snoop_bits = ((chan->feature & FSL_DMA_IP_MASK) == FSL_DMA_IP_83XX)
drivers/dma/fsldma.c
1340
if (!chan)
drivers/dma/fsldma.c
1343
spin_lock_bh(&chan->desc_lock);
drivers/dma/fsldma.c
1344
if (unlikely(!chan->idle))
drivers/dma/fsldma.c
1346
chan->regs_save.mr = get_mr(chan);
drivers/dma/fsldma.c
1347
chan->pm_state = SUSPENDED;
drivers/dma/fsldma.c
1348
spin_unlock_bh(&chan->desc_lock);
drivers/dma/fsldma.c
1354
chan = fdev->chan[i];
drivers/dma/fsldma.c
1355
if (!chan)
drivers/dma/fsldma.c
1357
chan->pm_state = RUNNING;
drivers/dma/fsldma.c
1358
spin_unlock_bh(&chan->desc_lock);
drivers/dma/fsldma.c
1366
struct fsldma_chan *chan;
drivers/dma/fsldma.c
137
desc->hw.next_ln_addr = CPU_TO_DMA(chan,
drivers/dma/fsldma.c
1371
chan = fdev->chan[i];
drivers/dma/fsldma.c
1372
if (!chan)
drivers/dma/fsldma.c
1375
spin_lock_bh(&chan->desc_lock);
drivers/dma/fsldma.c
1376
mode = chan->regs_save.mr
drivers/dma/fsldma.c
1378
set_mr(chan, mode);
drivers/dma/fsldma.c
1379
chan->pm_state = RUNNING;
drivers/dma/fsldma.c
138
DMA_TO_CPU(chan, desc->hw.next_ln_addr, 64) | FSL_DMA_EOL
drivers/dma/fsldma.c
1380
spin_unlock_bh(&chan->desc_lock);
drivers/dma/fsldma.c
146
static void dma_init(struct fsldma_chan *chan)
drivers/dma/fsldma.c
149
set_mr(chan, 0);
drivers/dma/fsldma.c
151
switch (chan->feature & FSL_DMA_IP_MASK) {
drivers/dma/fsldma.c
158
set_mr(chan, FSL_DMA_MR_BWC | FSL_DMA_MR_EIE
drivers/dma/fsldma.c
166
set_mr(chan, FSL_DMA_MR_EOTIE | FSL_DMA_MR_PRC_RM);
drivers/dma/fsldma.c
171
static int dma_is_idle(struct fsldma_chan *chan)
drivers/dma/fsldma.c
173
u32 sr = get_sr(chan);
drivers/dma/fsldma.c
184
static void dma_start(struct fsldma_chan *chan)
drivers/dma/fsldma.c
188
mode = get_mr(chan);
drivers/dma/fsldma.c
190
if (chan->feature & FSL_DMA_CHAN_PAUSE_EXT) {
drivers/dma/fsldma.c
191
set_bcr(chan, 0);
drivers/dma/fsldma.c
197
if (chan->feature & FSL_DMA_CHAN_START_EXT) {
drivers/dma/fsldma.c
204
set_mr(chan, mode);
drivers/dma/fsldma.c
207
static void dma_halt(struct fsldma_chan *chan)
drivers/dma/fsldma.c
213
mode = get_mr(chan);
drivers/dma/fsldma.c
220
if ((chan->feature & FSL_DMA_IP_MASK) == FSL_DMA_IP_85XX) {
drivers/dma/fsldma.c
222
set_mr(chan, mode);
drivers/dma/fsldma.c
229
set_mr(chan, mode);
drivers/dma/fsldma.c
233
if (dma_is_idle(chan))
drivers/dma/fsldma.c
239
if (!dma_is_idle(chan))
drivers/dma/fsldma.c
240
chan_err(chan, "DMA halt timeout!\n");
drivers/dma/fsldma.c
254
static void fsl_chan_set_src_loop_size(struct fsldma_chan *chan, int size)
drivers/dma/fsldma.c
258
mode = get_mr(chan);
drivers/dma/fsldma.c
273
set_mr(chan, mode);
drivers/dma/fsldma.c
287
static void fsl_chan_set_dst_loop_size(struct fsldma_chan *chan, int size)
drivers/dma/fsldma.c
291
mode = get_mr(chan);
drivers/dma/fsldma.c
306
set_mr(chan, mode);
drivers/dma/fsldma.c
321
static void fsl_chan_set_request_count(struct fsldma_chan *chan, int size)
drivers/dma/fsldma.c
327
mode = get_mr(chan);
drivers/dma/fsldma.c
331
set_mr(chan, mode);
drivers/dma/fsldma.c
343
static void fsl_chan_toggle_ext_pause(struct fsldma_chan *chan, int enable)
drivers/dma/fsldma.c
346
chan->feature |= FSL_DMA_CHAN_PAUSE_EXT;
drivers/dma/fsldma.c
348
chan->feature &= ~FSL_DMA_CHAN_PAUSE_EXT;
drivers/dma/fsldma.c
361
static void fsl_chan_toggle_ext_start(struct fsldma_chan *chan, int enable)
drivers/dma/fsldma.c
364
chan->feature |= FSL_DMA_CHAN_START_EXT;
drivers/dma/fsldma.c
366
chan->feature &= ~FSL_DMA_CHAN_START_EXT;
drivers/dma/fsldma.c
371
struct fsldma_chan *chan;
drivers/dma/fsldma.c
376
chan = to_fsl_chan(dchan);
drivers/dma/fsldma.c
378
fsl_chan_toggle_ext_start(chan, enable);
drivers/dma/fsldma.c
383
static void append_ld_queue(struct fsldma_chan *chan, struct fsl_desc_sw *desc)
drivers/dma/fsldma.c
385
struct fsl_desc_sw *tail = to_fsl_desc(chan->ld_pending.prev);
drivers/dma/fsldma.c
387
if (list_empty(&chan->ld_pending))
drivers/dma/fsldma.c
39
#define chan_dbg(chan, fmt, arg...) \
drivers/dma/fsldma.c
397
set_desc_next(chan, &tail->hw, desc->async_tx.phys);
drivers/dma/fsldma.c
40
dev_dbg(chan->dev, "%s: " fmt, chan->name, ##arg)
drivers/dma/fsldma.c
404
list_splice_tail_init(&desc->tx_list, &chan->ld_pending);
drivers/dma/fsldma.c
409
struct fsldma_chan *chan = to_fsl_chan(tx->chan);
drivers/dma/fsldma.c
41
#define chan_err(chan, fmt, arg...) \
drivers/dma/fsldma.c
414
spin_lock_bh(&chan->desc_lock);
drivers/dma/fsldma.c
417
if (unlikely(chan->pm_state != RUNNING)) {
drivers/dma/fsldma.c
418
chan_dbg(chan, "cannot submit due to suspend\n");
drivers/dma/fsldma.c
419
spin_unlock_bh(&chan->desc_lock);
drivers/dma/fsldma.c
42
dev_err(chan->dev, "%s: " fmt, chan->name, ##arg)
drivers/dma/fsldma.c
433
append_ld_queue(chan, desc);
drivers/dma/fsldma.c
435
spin_unlock_bh(&chan->desc_lock);
drivers/dma/fsldma.c
445
static void fsl_dma_free_descriptor(struct fsldma_chan *chan,
drivers/dma/fsldma.c
449
chan_dbg(chan, "LD %p free\n", desc);
drivers/dma/fsldma.c
450
dma_pool_free(chan->desc_pool, desc, desc->async_tx.phys);
drivers/dma/fsldma.c
459
static struct fsl_desc_sw *fsl_dma_alloc_descriptor(struct fsldma_chan *chan)
drivers/dma/fsldma.c
464
desc = dma_pool_zalloc(chan->desc_pool, GFP_ATOMIC, &pdesc);
drivers/dma/fsldma.c
466
chan_dbg(chan, "out of memory for link descriptor\n");
drivers/dma/fsldma.c
471
dma_async_tx_descriptor_init(&desc->async_tx, &chan->common);
drivers/dma/fsldma.c
475
chan_dbg(chan, "LD %p allocated\n", desc);
drivers/dma/fsldma.c
488
static void fsldma_clean_completed_descriptor(struct fsldma_chan *chan)
drivers/dma/fsldma.c
493
list_for_each_entry_safe(desc, _desc, &chan->ld_completed, node)
drivers/dma/fsldma.c
495
fsl_dma_free_descriptor(chan, desc);
drivers/dma/fsldma.c
50
static void set_sr(struct fsldma_chan *chan, u32 val)
drivers/dma/fsldma.c
507
static dma_cookie_t fsldma_run_tx_complete_actions(struct fsldma_chan *chan,
drivers/dma/fsldma.c
52
FSL_DMA_OUT(chan, &chan->regs->sr, val, 32);
drivers/dma/fsldma.c
538
static void fsldma_clean_running_descriptor(struct fsldma_chan *chan,
drivers/dma/fsldma.c
55
static u32 get_sr(struct fsldma_chan *chan)
drivers/dma/fsldma.c
553
list_add_tail(&desc->node, &chan->ld_completed);
drivers/dma/fsldma.c
557
dma_pool_free(chan->desc_pool, desc, desc->async_tx.phys);
drivers/dma/fsldma.c
567
static void fsl_chan_xfer_ld_queue(struct fsldma_chan *chan)
drivers/dma/fsldma.c
57
return FSL_DMA_IN(chan, &chan->regs->sr, 32);
drivers/dma/fsldma.c
575
if (list_empty(&chan->ld_pending)) {
drivers/dma/fsldma.c
576
chan_dbg(chan, "no pending LDs\n");
drivers/dma/fsldma.c
585
if (!chan->idle) {
drivers/dma/fsldma.c
586
chan_dbg(chan, "DMA controller still busy\n");
drivers/dma/fsldma.c
599
chan_dbg(chan, "idle, starting controller\n");
drivers/dma/fsldma.c
60
static void set_mr(struct fsldma_chan *chan, u32 val)
drivers/dma/fsldma.c
600
desc = list_first_entry(&chan->ld_pending, struct fsl_desc_sw, node);
drivers/dma/fsldma.c
601
list_splice_tail_init(&chan->ld_pending, &chan->ld_running);
drivers/dma/fsldma.c
608
if ((chan->feature & FSL_DMA_IP_MASK) == FSL_DMA_IP_85XX) {
drivers/dma/fsldma.c
611
mode = get_mr(chan);
drivers/dma/fsldma.c
613
set_mr(chan, mode);
drivers/dma/fsldma.c
62
FSL_DMA_OUT(chan, &chan->regs->mr, val, 32);
drivers/dma/fsldma.c
620
set_cdar(chan, desc->async_tx.phys);
drivers/dma/fsldma.c
621
get_cdar(chan);
drivers/dma/fsldma.c
623
dma_start(chan);
drivers/dma/fsldma.c
624
chan->idle = false;
drivers/dma/fsldma.c
636
static void fsldma_cleanup_descriptors(struct fsldma_chan *chan)
drivers/dma/fsldma.c
640
dma_addr_t curr_phys = get_cdar(chan);
drivers/dma/fsldma.c
643
fsldma_clean_completed_descriptor(chan);
drivers/dma/fsldma.c
646
list_for_each_entry_safe(desc, _desc, &chan->ld_running, node) {
drivers/dma/fsldma.c
65
static u32 get_mr(struct fsldma_chan *chan)
drivers/dma/fsldma.c
661
if (!dma_is_idle(chan))
drivers/dma/fsldma.c
665
cookie = fsldma_run_tx_complete_actions(chan, desc, cookie);
drivers/dma/fsldma.c
667
fsldma_clean_running_descriptor(chan, desc);
drivers/dma/fsldma.c
67
return FSL_DMA_IN(chan, &chan->regs->mr, 32);
drivers/dma/fsldma.c
676
fsl_chan_xfer_ld_queue(chan);
drivers/dma/fsldma.c
679
chan->common.completed_cookie = cookie;
drivers/dma/fsldma.c
692
struct fsldma_chan *chan = to_fsl_chan(dchan);
drivers/dma/fsldma.c
695
if (chan->desc_pool)
drivers/dma/fsldma.c
70
static void set_cdar(struct fsldma_chan *chan, dma_addr_t addr)
drivers/dma/fsldma.c
702
chan->desc_pool = dma_pool_create(chan->name, chan->dev,
drivers/dma/fsldma.c
705
if (!chan->desc_pool) {
drivers/dma/fsldma.c
706
chan_err(chan, "unable to allocate descriptor pool\n");
drivers/dma/fsldma.c
72
FSL_DMA_OUT(chan, &chan->regs->cdar, addr | FSL_DMA_SNEN, 64);
drivers/dma/fsldma.c
721
static void fsldma_free_desc_list(struct fsldma_chan *chan,
drivers/dma/fsldma.c
727
fsl_dma_free_descriptor(chan, desc);
drivers/dma/fsldma.c
730
static void fsldma_free_desc_list_reverse(struct fsldma_chan *chan,
drivers/dma/fsldma.c
736
fsl_dma_free_descriptor(chan, desc);
drivers/dma/fsldma.c
745
struct fsldma_chan *chan = to_fsl_chan(dchan);
drivers/dma/fsldma.c
747
chan_dbg(chan, "free all channel resources\n");
drivers/dma/fsldma.c
748
spin_lock_bh(&chan->desc_lock);
drivers/dma/fsldma.c
749
fsldma_cleanup_descriptors(chan);
drivers/dma/fsldma.c
75
static dma_addr_t get_cdar(struct fsldma_chan *chan)
drivers/dma/fsldma.c
750
fsldma_free_desc_list(chan, &chan->ld_pending);
drivers/dma/fsldma.c
751
fsldma_free_desc_list(chan, &chan->ld_running);
drivers/dma/fsldma.c
752
fsldma_free_desc_list(chan, &chan->ld_completed);
drivers/dma/fsldma.c
753
spin_unlock_bh(&chan->desc_lock);
drivers/dma/fsldma.c
755
dma_pool_destroy(chan->desc_pool);
drivers/dma/fsldma.c
756
chan->desc_pool = NULL;
drivers/dma/fsldma.c
764
struct fsldma_chan *chan;
drivers/dma/fsldma.c
77
return FSL_DMA_IN(chan, &chan->regs->cdar, 64) & ~FSL_DMA_SNEN;
drivers/dma/fsldma.c
774
chan = to_fsl_chan(dchan);
drivers/dma/fsldma.c
779
new = fsl_dma_alloc_descriptor(chan);
drivers/dma/fsldma.c
781
chan_err(chan, "%s\n", msg_ld_oom);
drivers/dma/fsldma.c
787
set_desc_cnt(chan, &new->hw, copy);
drivers/dma/fsldma.c
788
set_desc_src(chan, &new->hw, dma_src);
drivers/dma/fsldma.c
789
set_desc_dst(chan, &new->hw, dma_dst);
drivers/dma/fsldma.c
794
set_desc_next(chan, &prev->hw, new->async_tx.phys);
drivers/dma/fsldma.c
80
static void set_bcr(struct fsldma_chan *chan, u32 val)
drivers/dma/fsldma.c
812
set_ld_eol(chan, new);
drivers/dma/fsldma.c
82
FSL_DMA_OUT(chan, &chan->regs->bcr, val, 32);
drivers/dma/fsldma.c
820
fsldma_free_desc_list_reverse(chan, &first->tx_list);
drivers/dma/fsldma.c
826
struct fsldma_chan *chan;
drivers/dma/fsldma.c
831
chan = to_fsl_chan(dchan);
drivers/dma/fsldma.c
833
spin_lock_bh(&chan->desc_lock);
drivers/dma/fsldma.c
836
dma_halt(chan);
drivers/dma/fsldma.c
839
fsldma_free_desc_list(chan, &chan->ld_pending);
drivers/dma/fsldma.c
840
fsldma_free_desc_list(chan, &chan->ld_running);
drivers/dma/fsldma.c
841
fsldma_free_desc_list(chan, &chan->ld_completed);
drivers/dma/fsldma.c
842
chan->idle = true;
drivers/dma/fsldma.c
844
spin_unlock_bh(&chan->desc_lock);
drivers/dma/fsldma.c
85
static u32 get_bcr(struct fsldma_chan *chan)
drivers/dma/fsldma.c
851
struct fsldma_chan *chan;
drivers/dma/fsldma.c
857
chan = to_fsl_chan(dchan);
drivers/dma/fsldma.c
860
if (!chan->set_request_count)
drivers/dma/fsldma.c
869
chan->set_request_count(chan, size);
drivers/dma/fsldma.c
87
return FSL_DMA_IN(chan, &chan->regs->bcr, 32);
drivers/dma/fsldma.c
880
struct fsldma_chan *chan = to_fsl_chan(dchan);
drivers/dma/fsldma.c
882
spin_lock_bh(&chan->desc_lock);
drivers/dma/fsldma.c
883
fsl_chan_xfer_ld_queue(chan);
drivers/dma/fsldma.c
884
spin_unlock_bh(&chan->desc_lock);
drivers/dma/fsldma.c
895
struct fsldma_chan *chan = to_fsl_chan(dchan);
drivers/dma/fsldma.c
902
spin_lock_bh(&chan->desc_lock);
drivers/dma/fsldma.c
903
fsldma_cleanup_descriptors(chan);
drivers/dma/fsldma.c
904
spin_unlock_bh(&chan->desc_lock);
drivers/dma/fsldma.c
915
struct fsldma_chan *chan = data;
drivers/dma/fsldma.c
919
stat = get_sr(chan);
drivers/dma/fsldma.c
920
set_sr(chan, stat);
drivers/dma/fsldma.c
921
chan_dbg(chan, "irq: stat = 0x%x\n", stat);
drivers/dma/fsldma.c
929
chan_err(chan, "Transfer Error!\n");
drivers/dma/fsldma.c
937
chan_dbg(chan, "irq: Programming Error INT\n");
drivers/dma/fsldma.c
939
if (get_bcr(chan) != 0)
drivers/dma/fsldma.c
94
static void set_desc_cnt(struct fsldma_chan *chan,
drivers/dma/fsldma.c
940
chan_err(chan, "Programming Error!\n");
drivers/dma/fsldma.c
948
chan_dbg(chan, "irq: End-of-Chain link INT\n");
drivers/dma/fsldma.c
958
chan_dbg(chan, "irq: End-of-link INT\n");
drivers/dma/fsldma.c
963
if (!dma_is_idle(chan))
drivers/dma/fsldma.c
964
chan_err(chan, "irq: controller not idle!\n");
drivers/dma/fsldma.c
968
chan_err(chan, "irq: unhandled sr 0x%08x\n", stat);
drivers/dma/fsldma.c
97
hw->count = CPU_TO_DMA(chan, count, 32);
drivers/dma/fsldma.c
975
tasklet_schedule(&chan->tasklet);
drivers/dma/fsldma.c
976
chan_dbg(chan, "irq: Exit\n");
drivers/dma/fsldma.c
982
struct fsldma_chan *chan = from_tasklet(chan, t, tasklet);
drivers/dma/fsldma.c
984
chan_dbg(chan, "tasklet entry\n");
drivers/dma/fsldma.c
986
spin_lock(&chan->desc_lock);
drivers/dma/fsldma.c
989
chan->idle = true;
drivers/dma/fsldma.c
992
fsldma_cleanup_descriptors(chan);
drivers/dma/fsldma.c
994
spin_unlock(&chan->desc_lock);
drivers/dma/fsldma.c
996
chan_dbg(chan, "tasklet exit\n");
drivers/dma/fsldma.h
124
struct fsldma_chan *chan[FSL_DMA_MAX_CHANS_PER_DEVICE];
drivers/dma/fsldma.h
191
#define to_fsl_chan(chan) container_of(chan, struct fsldma_chan, common)
drivers/dma/hisi_dma.c
166
struct hisi_dma_chan chan[] __counted_by(chan_num);
drivers/dma/hisi_dma.c
322
return container_of(c, struct hisi_dma_chan, vc.chan);
drivers/dma/hisi_dma.c
420
static void hisi_dma_reset_or_disable_hw_chan(struct hisi_dma_chan *chan,
drivers/dma/hisi_dma.c
423
struct hisi_dma_dev *hdma_dev = chan->hdma_dev;
drivers/dma/hisi_dma.c
424
u32 index = chan->qp_num, tmp;
drivers/dma/hisi_dma.c
463
struct hisi_dma_chan *chan = to_hisi_dma_chan(c);
drivers/dma/hisi_dma.c
464
struct hisi_dma_dev *hdma_dev = chan->hdma_dev;
drivers/dma/hisi_dma.c
466
hisi_dma_reset_or_disable_hw_chan(chan, false);
drivers/dma/hisi_dma.c
467
vchan_free_chan_resources(&chan->vc);
drivers/dma/hisi_dma.c
469
memset(chan->sq, 0, sizeof(struct hisi_dma_sqe) * hdma_dev->chan_depth);
drivers/dma/hisi_dma.c
470
memset(chan->cq, 0, sizeof(struct hisi_dma_cqe) * hdma_dev->chan_depth);
drivers/dma/hisi_dma.c
471
chan->sq_tail = 0;
drivers/dma/hisi_dma.c
472
chan->cq_head = 0;
drivers/dma/hisi_dma.c
473
chan->status = DISABLE;
drivers/dma/hisi_dma.c
485
struct hisi_dma_chan *chan = to_hisi_dma_chan(c);
drivers/dma/hisi_dma.c
496
return vchan_tx_prep(&chan->vc, &desc->vd, flags);
drivers/dma/hisi_dma.c
506
static void hisi_dma_start_transfer(struct hisi_dma_chan *chan)
drivers/dma/hisi_dma.c
508
struct hisi_dma_sqe *sqe = chan->sq + chan->sq_tail;
drivers/dma/hisi_dma.c
509
struct hisi_dma_dev *hdma_dev = chan->hdma_dev;
drivers/dma/hisi_dma.c
513
vd = vchan_next_desc(&chan->vc);
drivers/dma/hisi_dma.c
515
chan->desc = NULL;
drivers/dma/hisi_dma.c
520
chan->desc = desc;
drivers/dma/hisi_dma.c
532
chan->sq_tail = (chan->sq_tail + 1) % hdma_dev->chan_depth;
drivers/dma/hisi_dma.c
536
chan->qp_num, chan->sq_tail);
drivers/dma/hisi_dma.c
541
struct hisi_dma_chan *chan = to_hisi_dma_chan(c);
drivers/dma/hisi_dma.c
544
spin_lock_irqsave(&chan->vc.lock, flags);
drivers/dma/hisi_dma.c
546
if (vchan_issue_pending(&chan->vc) && !chan->desc)
drivers/dma/hisi_dma.c
547
hisi_dma_start_transfer(chan);
drivers/dma/hisi_dma.c
549
spin_unlock_irqrestore(&chan->vc.lock, flags);
drivers/dma/hisi_dma.c
554
struct hisi_dma_chan *chan = to_hisi_dma_chan(c);
drivers/dma/hisi_dma.c
558
spin_lock_irqsave(&chan->vc.lock, flags);
drivers/dma/hisi_dma.c
560
hisi_dma_pause_dma(chan->hdma_dev, chan->qp_num, true);
drivers/dma/hisi_dma.c
561
if (chan->desc) {
drivers/dma/hisi_dma.c
562
vchan_terminate_vdesc(&chan->desc->vd);
drivers/dma/hisi_dma.c
563
chan->desc = NULL;
drivers/dma/hisi_dma.c
566
vchan_get_all_descriptors(&chan->vc, &head);
drivers/dma/hisi_dma.c
568
spin_unlock_irqrestore(&chan->vc.lock, flags);
drivers/dma/hisi_dma.c
570
vchan_dma_desc_free_list(&chan->vc, &head);
drivers/dma/hisi_dma.c
571
hisi_dma_pause_dma(chan->hdma_dev, chan->qp_num, false);
drivers/dma/hisi_dma.c
578
struct hisi_dma_chan *chan = to_hisi_dma_chan(c);
drivers/dma/hisi_dma.c
580
vchan_synchronize(&chan->vc);
drivers/dma/hisi_dma.c
588
struct hisi_dma_chan *chan;
drivers/dma/hisi_dma.c
592
chan = &hdma_dev->chan[i];
drivers/dma/hisi_dma.c
593
chan->sq = dmam_alloc_coherent(dev, sq_size, &chan->sq_dma,
drivers/dma/hisi_dma.c
595
if (!chan->sq)
drivers/dma/hisi_dma.c
598
chan->cq = dmam_alloc_coherent(dev, cq_size, &chan->cq_dma,
drivers/dma/hisi_dma.c
600
if (!chan->cq)
drivers/dma/hisi_dma.c
609
struct hisi_dma_chan *chan = &hdma_dev->chan[index];
drivers/dma/hisi_dma.c
617
lower_32_bits(chan->sq_dma));
drivers/dma/hisi_dma.c
619
upper_32_bits(chan->sq_dma));
drivers/dma/hisi_dma.c
621
lower_32_bits(chan->cq_dma));
drivers/dma/hisi_dma.c
623
upper_32_bits(chan->cq_dma));
drivers/dma/hisi_dma.c
701
hisi_dma_reset_or_disable_hw_chan(&hdma_dev->chan[qp_index], true);
drivers/dma/hisi_dma.c
709
hdma_dev->chan[i].qp_num = i;
drivers/dma/hisi_dma.c
710
hdma_dev->chan[i].hdma_dev = hdma_dev;
drivers/dma/hisi_dma.c
711
hdma_dev->chan[i].vc.desc_free = hisi_dma_desc_free;
drivers/dma/hisi_dma.c
712
vchan_init(&hdma_dev->chan[i].vc, &hdma_dev->dma_dev);
drivers/dma/hisi_dma.c
723
tasklet_kill(&hdma_dev->chan[i].vc.task);
drivers/dma/hisi_dma.c
729
struct hisi_dma_chan *chan = data;
drivers/dma/hisi_dma.c
730
struct hisi_dma_dev *hdma_dev = chan->hdma_dev;
drivers/dma/hisi_dma.c
735
spin_lock(&chan->vc.lock);
drivers/dma/hisi_dma.c
737
desc = chan->desc;
drivers/dma/hisi_dma.c
738
cqe = chan->cq + chan->cq_head;
drivers/dma/hisi_dma.c
741
chan->cq_head = (chan->cq_head + 1) % hdma_dev->chan_depth;
drivers/dma/hisi_dma.c
743
chan->qp_num, chan->cq_head);
drivers/dma/hisi_dma.c
746
hisi_dma_start_transfer(chan);
drivers/dma/hisi_dma.c
752
spin_unlock(&chan->vc.lock);
drivers/dma/hisi_dma.c
765
&hdma_dev->chan[i]);
drivers/dma/hisi_dma.c
983
hdma_dev = devm_kzalloc(dev, struct_size(hdma_dev, chan, chan_num),
drivers/dma/hsu/hsu.c
162
hsuc = &chip->hsu->chan[nr];
drivers/dma/hsu/hsu.c
221
hsuc = &chip->hsu->chan[nr];
drivers/dma/hsu/hsu.c
222
stat = this_cpu_ptr(hsuc->vchan.chan.local);
drivers/dma/hsu/hsu.c
270
struct dma_chan *chan, struct scatterlist *sgl,
drivers/dma/hsu/hsu.c
274
struct hsu_dma_chan *hsuc = to_hsu_dma_chan(chan);
drivers/dma/hsu/hsu.c
298
static void hsu_dma_issue_pending(struct dma_chan *chan)
drivers/dma/hsu/hsu.c
300
struct hsu_dma_chan *hsuc = to_hsu_dma_chan(chan);
drivers/dma/hsu/hsu.c
326
static enum dma_status hsu_dma_tx_status(struct dma_chan *chan,
drivers/dma/hsu/hsu.c
329
struct hsu_dma_chan *hsuc = to_hsu_dma_chan(chan);
drivers/dma/hsu/hsu.c
335
status = dma_cookie_status(chan, cookie, state);
drivers/dma/hsu/hsu.c
354
static int hsu_dma_slave_config(struct dma_chan *chan,
drivers/dma/hsu/hsu.c
357
struct hsu_dma_chan *hsuc = to_hsu_dma_chan(chan);
drivers/dma/hsu/hsu.c
364
static int hsu_dma_pause(struct dma_chan *chan)
drivers/dma/hsu/hsu.c
366
struct hsu_dma_chan *hsuc = to_hsu_dma_chan(chan);
drivers/dma/hsu/hsu.c
379
static int hsu_dma_resume(struct dma_chan *chan)
drivers/dma/hsu/hsu.c
381
struct hsu_dma_chan *hsuc = to_hsu_dma_chan(chan);
drivers/dma/hsu/hsu.c
394
static int hsu_dma_terminate_all(struct dma_chan *chan)
drivers/dma/hsu/hsu.c
396
struct hsu_dma_chan *hsuc = to_hsu_dma_chan(chan);
drivers/dma/hsu/hsu.c
415
static void hsu_dma_free_chan_resources(struct dma_chan *chan)
drivers/dma/hsu/hsu.c
417
vchan_free_chan_resources(to_virt_chan(chan));
drivers/dma/hsu/hsu.c
420
static void hsu_dma_synchronize(struct dma_chan *chan)
drivers/dma/hsu/hsu.c
422
struct hsu_dma_chan *hsuc = to_hsu_dma_chan(chan);
drivers/dma/hsu/hsu.c
443
hsu->chan = devm_kcalloc(chip->dev, hsu->nr_channels,
drivers/dma/hsu/hsu.c
444
sizeof(*hsu->chan), GFP_KERNEL);
drivers/dma/hsu/hsu.c
445
if (!hsu->chan)
drivers/dma/hsu/hsu.c
450
struct hsu_dma_chan *hsuc = &hsu->chan[i];
drivers/dma/hsu/hsu.c
501
struct hsu_dma_chan *hsuc = &hsu->chan[i];
drivers/dma/hsu/hsu.h
100
return container_of(chan, struct hsu_dma_chan, vchan.chan);
drivers/dma/hsu/hsu.h
118
struct hsu_dma_chan *chan;
drivers/dma/hsu/hsu.h
98
static inline struct hsu_dma_chan *to_hsu_dma_chan(struct dma_chan *chan)
drivers/dma/idma64.c
107
struct idma64 *idma64 = to_idma64(idma64c->vchan.chan.device);
drivers/dma/idma64.c
114
struct idma64 *idma64 = to_idma64(idma64c->vchan.chan.device);
drivers/dma/idma64.c
139
struct idma64_chan *idma64c = &idma64->chan[c];
drivers/dma/idma64.c
143
stat = this_cpu_ptr(idma64c->vchan.chan.local);
drivers/dma/idma64.c
232
struct idma64_chan *idma64c = to_idma64_chan(vdesc->tx.chan);
drivers/dma/idma64.c
28
static struct device *chan2dev(struct dma_chan *chan)
drivers/dma/idma64.c
30
return &chan->dev->device;
drivers/dma/idma64.c
301
struct dma_chan *chan, struct scatterlist *sgl,
drivers/dma/idma64.c
305
struct idma64_chan *idma64c = to_idma64_chan(chan);
drivers/dma/idma64.c
337
static void idma64_issue_pending(struct dma_chan *chan)
drivers/dma/idma64.c
339
struct idma64_chan *idma64c = to_idma64_chan(chan);
drivers/dma/idma64.c
373
static enum dma_status idma64_tx_status(struct dma_chan *chan,
drivers/dma/idma64.c
376
struct idma64_chan *idma64c = to_idma64_chan(chan);
drivers/dma/idma64.c
382
status = dma_cookie_status(chan, cookie, state);
drivers/dma/idma64.c
409
static int idma64_slave_config(struct dma_chan *chan,
drivers/dma/idma64.c
412
struct idma64_chan *idma64c = to_idma64_chan(chan);
drivers/dma/idma64.c
448
static int idma64_pause(struct dma_chan *chan)
drivers/dma/idma64.c
450
struct idma64_chan *idma64c = to_idma64_chan(chan);
drivers/dma/idma64.c
463
static int idma64_resume(struct dma_chan *chan)
drivers/dma/idma64.c
465
struct idma64_chan *idma64c = to_idma64_chan(chan);
drivers/dma/idma64.c
478
static int idma64_terminate_all(struct dma_chan *chan)
drivers/dma/idma64.c
480
struct idma64_chan *idma64c = to_idma64_chan(chan);
drivers/dma/idma64.c
498
static void idma64_synchronize(struct dma_chan *chan)
drivers/dma/idma64.c
500
struct idma64_chan *idma64c = to_idma64_chan(chan);
drivers/dma/idma64.c
505
static int idma64_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/idma64.c
507
struct idma64_chan *idma64c = to_idma64_chan(chan);
drivers/dma/idma64.c
510
idma64c->pool = dma_pool_create(dev_name(chan2dev(chan)),
drivers/dma/idma64.c
511
chan->device->dev,
drivers/dma/idma64.c
514
dev_err(chan2dev(chan), "No memory for descriptors\n");
drivers/dma/idma64.c
521
static void idma64_free_chan_resources(struct dma_chan *chan)
drivers/dma/idma64.c
523
struct idma64_chan *idma64c = to_idma64_chan(chan);
drivers/dma/idma64.c
525
vchan_free_chan_resources(to_virt_chan(chan));
drivers/dma/idma64.c
551
idma64->chan = devm_kcalloc(chip->dev, nr_chan, sizeof(*idma64->chan),
drivers/dma/idma64.c
553
if (!idma64->chan)
drivers/dma/idma64.c
568
struct idma64_chan *idma64c = &idma64->chan[i];
drivers/dma/idma64.c
625
struct idma64_chan *idma64c = &idma64->chan[i];
drivers/dma/idma64.h
141
static inline struct idma64_chan *to_idma64_chan(struct dma_chan *chan)
drivers/dma/idma64.h
143
return container_of(chan, struct idma64_chan, vchan.chan);
drivers/dma/idma64.h
190
struct idma64_chan *chan;
drivers/dma/idxd/dma.c
135
static int idxd_dma_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/idxd/dma.c
137
struct idxd_wq *wq = to_idxd_wq(chan);
drivers/dma/idxd/dma.c
146
static void idxd_dma_free_chan_resources(struct dma_chan *chan)
drivers/dma/idxd/dma.c
148
struct idxd_wq *wq = to_idxd_wq(chan);
drivers/dma/idxd/dma.c
173
struct dma_chan *c = tx->chan;
drivers/dma/idxd/dma.c
19
idxd_chan = container_of(c, struct idxd_dma_chan, chan);
drivers/dma/idxd/dma.c
272
struct dma_chan *chan;
drivers/dma/idxd/dma.c
279
chan = &idxd_chan->chan;
drivers/dma/idxd/dma.c
280
chan->device = dma;
drivers/dma/idxd/dma.c
281
list_add_tail(&chan->device_node, &dma->channels);
drivers/dma/idxd/dma.c
286
dma_async_tx_descriptor_init(&desc->txd, chan);
drivers/dma/idxd/dma.c
290
rc = dma_async_device_channel_register(dma, chan, NULL);
drivers/dma/idxd/dma.c
306
struct dma_chan *chan = &idxd_chan->chan;
drivers/dma/idxd/dma.c
309
dma_async_device_channel_unregister(&idxd_dma->dma, chan);
drivers/dma/idxd/dma.c
310
list_del(&chan->device_node);
drivers/dma/idxd/idxd.h
186
struct dma_chan chan;
drivers/dma/img-mdc-dma.c
1029
vc.chan.device_node) {
drivers/dma/img-mdc-dma.c
1030
list_del(&mchan->vc.chan.device_node);
drivers/dma/img-mdc-dma.c
104
struct mdc_chan *chan;
drivers/dma/img-mdc-dma.c
261
struct mdc_dma *mdma = mdesc->chan->mdma;
drivers/dma/img-mdc-dma.c
285
struct dma_chan *chan, dma_addr_t dest, dma_addr_t src, size_t len,
drivers/dma/img-mdc-dma.c
288
struct mdc_chan *mchan = to_mdc_chan(chan);
drivers/dma/img-mdc-dma.c
300
mdesc->chan = mchan;
drivers/dma/img-mdc-dma.c
366
struct dma_chan *chan, dma_addr_t buf_addr, size_t buf_len,
drivers/dma/img-mdc-dma.c
370
struct mdc_chan *mchan = to_mdc_chan(chan);
drivers/dma/img-mdc-dma.c
388
mdesc->chan = mchan;
drivers/dma/img-mdc-dma.c
447
struct dma_chan *chan, struct scatterlist *sgl,
drivers/dma/img-mdc-dma.c
451
struct mdc_chan *mchan = to_mdc_chan(chan);
drivers/dma/img-mdc-dma.c
471
mdesc->chan = mchan;
drivers/dma/img-mdc-dma.c
559
static void mdc_issue_pending(struct dma_chan *chan)
drivers/dma/img-mdc-dma.c
561
struct mdc_chan *mchan = to_mdc_chan(chan);
drivers/dma/img-mdc-dma.c
570
static enum dma_status mdc_tx_status(struct dma_chan *chan,
drivers/dma/img-mdc-dma.c
573
struct mdc_chan *mchan = to_mdc_chan(chan);
drivers/dma/img-mdc-dma.c
580
ret = dma_cookie_status(chan, cookie, txstate);
drivers/dma/img-mdc-dma.c
690
static int mdc_terminate_all(struct dma_chan *chan)
drivers/dma/img-mdc-dma.c
692
struct mdc_chan *mchan = to_mdc_chan(chan);
drivers/dma/img-mdc-dma.c
716
static void mdc_synchronize(struct dma_chan *chan)
drivers/dma/img-mdc-dma.c
718
struct mdc_chan *mchan = to_mdc_chan(chan);
drivers/dma/img-mdc-dma.c
723
static int mdc_slave_config(struct dma_chan *chan,
drivers/dma/img-mdc-dma.c
726
struct mdc_chan *mchan = to_mdc_chan(chan);
drivers/dma/img-mdc-dma.c
736
static int mdc_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/img-mdc-dma.c
738
struct mdc_chan *mchan = to_mdc_chan(chan);
drivers/dma/img-mdc-dma.c
744
static void mdc_free_chan_resources(struct dma_chan *chan)
drivers/dma/img-mdc-dma.c
746
struct mdc_chan *mchan = to_mdc_chan(chan);
drivers/dma/img-mdc-dma.c
750
mdc_terminate_all(chan);
drivers/dma/img-mdc-dma.c
811
struct dma_chan *chan;
drivers/dma/img-mdc-dma.c
816
list_for_each_entry(chan, &mdma->dma_dev.channels, device_node) {
drivers/dma/img-mdc-dma.c
817
struct mdc_chan *mchan = to_mdc_chan(chan);
drivers/dma/img-mdc-dma.c
821
if (dma_get_slave_channel(chan)) {
drivers/dma/img-mdc-dma.c
824
return chan;
drivers/dma/imx-dma.c
1004
static bool imxdma_filter_fn(struct dma_chan *chan, void *param)
drivers/dma/imx-dma.c
1007
struct imxdma_channel *imxdma_chan = to_imxdma_chan(chan);
drivers/dma/imx-dma.c
1009
if (chan->device->dev != fdata->imxdma->dev)
drivers/dma/imx-dma.c
1013
chan->private = NULL;
drivers/dma/imx-dma.c
1146
imxdmac->chan.device = &imxdma->dma_device;
drivers/dma/imx-dma.c
1147
dma_cookie_init(&imxdmac->chan);
drivers/dma/imx-dma.c
1151
list_add_tail(&imxdmac->chan.device_node,
drivers/dma/imx-dma.c
156
struct dma_chan chan;
drivers/dma/imx-dma.c
215
static struct imxdma_channel *to_imxdma_chan(struct dma_chan *chan)
drivers/dma/imx-dma.c
217
return container_of(chan, struct imxdma_channel, chan);
drivers/dma/imx-dma.c
261
struct imxdma_channel *imxdmac = to_imxdma_chan(d->desc.chan);
drivers/dma/imx-dma.c
288
struct imxdma_channel *imxdmac = to_imxdma_chan(d->desc.chan);
drivers/dma/imx-dma.c
492
struct imxdma_channel *imxdmac = to_imxdma_chan(d->desc.chan);
drivers/dma/imx-dma.c
642
static int imxdma_terminate_all(struct dma_chan *chan)
drivers/dma/imx-dma.c
644
struct imxdma_channel *imxdmac = to_imxdma_chan(chan);
drivers/dma/imx-dma.c
657
static int imxdma_config_write(struct dma_chan *chan,
drivers/dma/imx-dma.c
661
struct imxdma_channel *imxdmac = to_imxdma_chan(chan);
drivers/dma/imx-dma.c
706
static int imxdma_config(struct dma_chan *chan,
drivers/dma/imx-dma.c
709
struct imxdma_channel *imxdmac = to_imxdma_chan(chan);
drivers/dma/imx-dma.c
716
static enum dma_status imxdma_tx_status(struct dma_chan *chan,
drivers/dma/imx-dma.c
720
return dma_cookie_status(chan, cookie, txstate);
drivers/dma/imx-dma.c
725
struct imxdma_channel *imxdmac = to_imxdma_chan(tx->chan);
drivers/dma/imx-dma.c
738
static int imxdma_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/imx-dma.c
740
struct imxdma_channel *imxdmac = to_imxdma_chan(chan);
drivers/dma/imx-dma.c
741
struct imx_dma_data *data = chan->private;
drivers/dma/imx-dma.c
752
dma_async_tx_descriptor_init(&desc->desc, chan);
drivers/dma/imx-dma.c
768
static void imxdma_free_chan_resources(struct dma_chan *chan)
drivers/dma/imx-dma.c
770
struct imxdma_channel *imxdmac = to_imxdma_chan(chan);
drivers/dma/imx-dma.c
794
struct dma_chan *chan, struct scatterlist *sgl,
drivers/dma/imx-dma.c
798
struct imxdma_channel *imxdmac = to_imxdma_chan(chan);
drivers/dma/imx-dma.c
813
imxdma_config_write(chan, &imxdmac->config, direction);
drivers/dma/imx-dma.c
847
struct dma_chan *chan, dma_addr_t dma_addr, size_t buf_len,
drivers/dma/imx-dma.c
851
struct imxdma_channel *imxdmac = to_imxdma_chan(chan);
drivers/dma/imx-dma.c
899
imxdma_config_write(chan, &imxdmac->config, direction);
drivers/dma/imx-dma.c
905
struct dma_chan *chan, dma_addr_t dest,
drivers/dma/imx-dma.c
908
struct imxdma_channel *imxdmac = to_imxdma_chan(chan);
drivers/dma/imx-dma.c
936
struct dma_chan *chan, struct dma_interleaved_template *xt,
drivers/dma/imx-dma.c
939
struct imxdma_channel *imxdmac = to_imxdma_chan(chan);
drivers/dma/imx-dma.c
979
static void imxdma_issue_pending(struct dma_chan *chan)
drivers/dma/imx-dma.c
981
struct imxdma_channel *imxdmac = to_imxdma_chan(chan);
drivers/dma/imx-sdma.c
1170
static struct sdma_channel *to_sdma_chan(struct dma_chan *chan)
drivers/dma/imx-sdma.c
1172
return container_of(chan, struct sdma_channel, vc.chan);
drivers/dma/imx-sdma.c
1175
static int sdma_disable_channel(struct dma_chan *chan)
drivers/dma/imx-sdma.c
1177
struct sdma_channel *sdmac = to_sdma_chan(chan);
drivers/dma/imx-sdma.c
1201
static int sdma_terminate_all(struct dma_chan *chan)
drivers/dma/imx-sdma.c
1203
struct sdma_channel *sdmac = to_sdma_chan(chan);
drivers/dma/imx-sdma.c
1208
sdma_disable_channel(chan);
drivers/dma/imx-sdma.c
1228
static void sdma_channel_synchronize(struct dma_chan *chan)
drivers/dma/imx-sdma.c
1230
struct sdma_channel *sdmac = to_sdma_chan(chan);
drivers/dma/imx-sdma.c
1315
static int sdma_config_channel(struct dma_chan *chan)
drivers/dma/imx-sdma.c
1317
struct sdma_channel *sdmac = to_sdma_chan(chan);
drivers/dma/imx-sdma.c
1320
sdma_disable_channel(chan);
drivers/dma/imx-sdma.c
1450
static int sdma_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/imx-sdma.c
1452
struct sdma_channel *sdmac = to_sdma_chan(chan);
drivers/dma/imx-sdma.c
1453
struct imx_dma_data *data = chan->private;
drivers/dma/imx-sdma.c
1515
static void sdma_free_chan_resources(struct dma_chan *chan)
drivers/dma/imx-sdma.c
1517
struct sdma_channel *sdmac = to_sdma_chan(chan);
drivers/dma/imx-sdma.c
1520
sdma_terminate_all(chan);
drivers/dma/imx-sdma.c
1522
sdma_channel_synchronize(chan);
drivers/dma/imx-sdma.c
1583
struct dma_chan *chan, dma_addr_t dma_dst,
drivers/dma/imx-sdma.c
1586
struct sdma_channel *sdmac = to_sdma_chan(chan);
drivers/dma/imx-sdma.c
1594
if (!chan || !len)
drivers/dma/imx-sdma.c
1639
struct dma_chan *chan, struct scatterlist *sgl,
drivers/dma/imx-sdma.c
1643
struct sdma_channel *sdmac = to_sdma_chan(chan);
drivers/dma/imx-sdma.c
1650
sdma_config_write(chan, &sdmac->slave_config, direction);
drivers/dma/imx-sdma.c
1726
struct dma_chan *chan, dma_addr_t dma_addr, size_t buf_len,
drivers/dma/imx-sdma.c
1730
struct sdma_channel *sdmac = to_sdma_chan(chan);
drivers/dma/imx-sdma.c
1742
sdma_config_write(chan, &sdmac->slave_config, direction);
drivers/dma/imx-sdma.c
1802
static int sdma_config_write(struct dma_chan *chan,
drivers/dma/imx-sdma.c
1806
struct sdma_channel *sdmac = to_sdma_chan(chan);
drivers/dma/imx-sdma.c
1832
return sdma_config_channel(chan);
drivers/dma/imx-sdma.c
1835
static int sdma_config(struct dma_chan *chan,
drivers/dma/imx-sdma.c
1838
struct sdma_channel *sdmac = to_sdma_chan(chan);
drivers/dma/imx-sdma.c
1873
static enum dma_status sdma_tx_status(struct dma_chan *chan,
drivers/dma/imx-sdma.c
1877
struct sdma_channel *sdmac = to_sdma_chan(chan);
drivers/dma/imx-sdma.c
1884
ret = dma_cookie_status(chan, cookie, txstate);
drivers/dma/imx-sdma.c
1908
dma_set_tx_state(txstate, chan->completed_cookie, chan->cookie,
drivers/dma/imx-sdma.c
1914
static void sdma_issue_pending(struct dma_chan *chan)
drivers/dma/imx-sdma.c
1916
struct sdma_channel *sdmac = to_sdma_chan(chan);
drivers/dma/imx-sdma.c
2195
static bool sdma_filter_fn(struct dma_chan *chan, void *fn_param)
drivers/dma/imx-sdma.c
2197
struct sdma_channel *sdmac = to_sdma_chan(chan);
drivers/dma/imx-sdma.c
2200
if (!imx_dma_is_general_purpose(chan))
drivers/dma/imx-sdma.c
2204
chan->private = &sdmac->data;
drivers/dma/imx-sdma.c
2407
sdma_free_chan_resources(&sdmac->vc.chan);
drivers/dma/imx-sdma.c
548
static int sdma_config_write(struct dma_chan *chan,
drivers/dma/ioat/dma.c
312
struct dma_chan *c = tx->chan;
drivers/dma/ioat/dma.c
337
ioat_alloc_ring_ent(struct dma_chan *chan, int idx, gfp_t flags)
drivers/dma/ioat/dma.c
341
struct ioatdma_chan *ioat_chan = to_ioat_chan(chan);
drivers/dma/ioat/dma.c
359
dma_async_tx_descriptor_init(&desc->txd, chan);
drivers/dma/ioat/dma.c
366
void ioat_free_ring_ent(struct ioat_ring_ent *desc, struct dma_chan *chan)
drivers/dma/ioat/dma.h
355
ioat_prep_xor(struct dma_chan *chan, dma_addr_t dest, dma_addr_t *src,
drivers/dma/ioat/dma.h
358
ioat_prep_xor_val(struct dma_chan *chan, dma_addr_t *src,
drivers/dma/ioat/dma.h
362
ioat_prep_pq(struct dma_chan *chan, dma_addr_t *dst, dma_addr_t *src,
drivers/dma/ioat/dma.h
366
ioat_prep_pq_val(struct dma_chan *chan, dma_addr_t *pq, dma_addr_t *src,
drivers/dma/ioat/dma.h
370
ioat_prep_pqxor(struct dma_chan *chan, dma_addr_t dst, dma_addr_t *src,
drivers/dma/ioat/dma.h
373
ioat_prep_pqxor_val(struct dma_chan *chan, dma_addr_t *src,
drivers/dma/ioat/dma.h
383
void ioat_free_ring_ent(struct ioat_ring_ent *desc, struct dma_chan *chan);
drivers/dma/ioat/dma.h
391
void ioat_issue_pending(struct dma_chan *chan);
drivers/dma/ioat/prep.c
245
ioat_prep_xor(struct dma_chan *chan, dma_addr_t dest, dma_addr_t *src,
drivers/dma/ioat/prep.c
248
struct ioatdma_chan *ioat_chan = to_ioat_chan(chan);
drivers/dma/ioat/prep.c
253
return __ioat_prep_xor_lock(chan, NULL, dest, src, src_cnt, len, flags);
drivers/dma/ioat/prep.c
257
ioat_prep_xor_val(struct dma_chan *chan, dma_addr_t *src,
drivers/dma/ioat/prep.c
261
struct ioatdma_chan *ioat_chan = to_ioat_chan(chan);
drivers/dma/ioat/prep.c
271
return __ioat_prep_xor_lock(chan, result, src[0], &src[1],
drivers/dma/ioat/prep.c
574
ioat_prep_pq(struct dma_chan *chan, dma_addr_t *dst, dma_addr_t *src,
drivers/dma/ioat/prep.c
578
struct ioatdma_chan *ioat_chan = to_ioat_chan(chan);
drivers/dma/ioat/prep.c
603
__ioat_prep_pq16_lock(chan, NULL, dst, single_source,
drivers/dma/ioat/prep.c
606
__ioat_prep_pq_lock(chan, NULL, dst, single_source, 2,
drivers/dma/ioat/prep.c
611
__ioat_prep_pq16_lock(chan, NULL, dst, src, src_cnt,
drivers/dma/ioat/prep.c
613
__ioat_prep_pq_lock(chan, NULL, dst, src, src_cnt,
drivers/dma/ioat/prep.c
619
ioat_prep_pq_val(struct dma_chan *chan, dma_addr_t *pq, dma_addr_t *src,
drivers/dma/ioat/prep.c
623
struct ioatdma_chan *ioat_chan = to_ioat_chan(chan);
drivers/dma/ioat/prep.c
640
__ioat_prep_pq16_lock(chan, pqres, pq, src, src_cnt, scf, len,
drivers/dma/ioat/prep.c
642
__ioat_prep_pq_lock(chan, pqres, pq, src, src_cnt, scf, len,
drivers/dma/ioat/prep.c
647
ioat_prep_pqxor(struct dma_chan *chan, dma_addr_t dst, dma_addr_t *src,
drivers/dma/ioat/prep.c
652
struct ioatdma_chan *ioat_chan = to_ioat_chan(chan);
drivers/dma/ioat/prep.c
666
__ioat_prep_pq16_lock(chan, NULL, pq, src, src_cnt, scf, len,
drivers/dma/ioat/prep.c
668
__ioat_prep_pq_lock(chan, NULL, pq, src, src_cnt, scf, len,
drivers/dma/ioat/prep.c
673
ioat_prep_pqxor_val(struct dma_chan *chan, dma_addr_t *src,
drivers/dma/ioat/prep.c
679
struct ioatdma_chan *ioat_chan = to_ioat_chan(chan);
drivers/dma/ioat/prep.c
698
__ioat_prep_pq16_lock(chan, result, pq, &src[1], src_cnt - 1,
drivers/dma/ioat/prep.c
700
__ioat_prep_pq_lock(chan, result, pq, &src[1], src_cnt - 1,
drivers/dma/k3dma.c
124
static int k3_dma_config_write(struct dma_chan *chan,
drivers/dma/k3dma.c
128
static struct k3_dma_chan *to_k3_chan(struct dma_chan *chan)
drivers/dma/k3dma.c
130
return container_of(chan, struct k3_dma_chan, vc.chan);
drivers/dma/k3dma.c
265
struct k3_dma_dev *d = to_k3_dma(c->vc.chan.device);
drivers/dma/k3dma.c
306
list_for_each_entry_safe(c, cn, &d->slave.channels, vc.chan.device_node) {
drivers/dma/k3dma.c
359
static void k3_dma_free_chan_resources(struct dma_chan *chan)
drivers/dma/k3dma.c
361
struct k3_dma_chan *c = to_k3_chan(chan);
drivers/dma/k3dma.c
362
struct k3_dma_dev *d = to_k3_dma(chan->device);
drivers/dma/k3dma.c
373
static enum dma_status k3_dma_tx_status(struct dma_chan *chan,
drivers/dma/k3dma.c
376
struct k3_dma_chan *c = to_k3_chan(chan);
drivers/dma/k3dma.c
377
struct k3_dma_dev *d = to_k3_dma(chan->device);
drivers/dma/k3dma.c
384
ret = dma_cookie_status(&c->vc.chan, cookie, state);
drivers/dma/k3dma.c
421
static void k3_dma_issue_pending(struct dma_chan *chan)
drivers/dma/k3dma.c
423
struct k3_dma_chan *c = to_k3_chan(chan);
drivers/dma/k3dma.c
424
struct k3_dma_dev *d = to_k3_dma(chan->device);
drivers/dma/k3dma.c
461
struct dma_chan *chan)
drivers/dma/k3dma.c
463
struct k3_dma_chan *c = to_k3_chan(chan);
drivers/dma/k3dma.c
465
struct k3_dma_dev *d = to_k3_dma(chan->device);
drivers/dma/k3dma.c
469
dev_dbg(chan->device->dev, "vch %p: sg num %d exceed max %d\n",
drivers/dma/k3dma.c
480
dev_dbg(chan->device->dev, "vch %p: dma alloc fail\n", &c->vc);
drivers/dma/k3dma.c
489
struct dma_chan *chan, dma_addr_t dst, dma_addr_t src,
drivers/dma/k3dma.c
492
struct k3_dma_chan *c = to_k3_chan(chan);
drivers/dma/k3dma.c
502
ds = k3_dma_alloc_desc_resource(num, chan);
drivers/dma/k3dma.c
531
struct dma_chan *chan, struct scatterlist *sgl, unsigned int sglen,
drivers/dma/k3dma.c
534
struct k3_dma_chan *c = to_k3_chan(chan);
drivers/dma/k3dma.c
547
ds = k3_dma_alloc_desc_resource(num, chan);
drivers/dma/k3dma.c
551
k3_dma_config_write(chan, dir, &c->slave_config);
drivers/dma/k3dma.c
582
k3_dma_prep_dma_cyclic(struct dma_chan *chan, dma_addr_t buf_addr,
drivers/dma/k3dma.c
587
struct k3_dma_chan *c = to_k3_chan(chan);
drivers/dma/k3dma.c
595
dev_dbg(chan->device->dev, "%s: buf %pad, dst %pad, buf len %zu, period_len = %zu, dir %d\n",
drivers/dma/k3dma.c
596
__func__, &buf_addr, &to_k3_chan(chan)->dev_addr,
drivers/dma/k3dma.c
603
ds = k3_dma_alloc_desc_resource(num, chan);
drivers/dma/k3dma.c
612
k3_dma_config_write(chan, dir, &c->slave_config);
drivers/dma/k3dma.c
649
static int k3_dma_config(struct dma_chan *chan,
drivers/dma/k3dma.c
652
struct k3_dma_chan *c = to_k3_chan(chan);
drivers/dma/k3dma.c
659
static int k3_dma_config_write(struct dma_chan *chan,
drivers/dma/k3dma.c
663
struct k3_dma_chan *c = to_k3_chan(chan);
drivers/dma/k3dma.c
699
c->ccfg |= c->vc.chan.chan_id << 4;
drivers/dma/k3dma.c
708
struct k3_dma_dev *d = to_k3_dma(vd->tx.chan->device);
drivers/dma/k3dma.c
714
static int k3_dma_terminate_all(struct dma_chan *chan)
drivers/dma/k3dma.c
716
struct k3_dma_chan *c = to_k3_chan(chan);
drivers/dma/k3dma.c
717
struct k3_dma_dev *d = to_k3_dma(chan->device);
drivers/dma/k3dma.c
749
static void k3_dma_synchronize(struct dma_chan *chan)
drivers/dma/k3dma.c
751
struct k3_dma_chan *c = to_k3_chan(chan);
drivers/dma/k3dma.c
756
static int k3_dma_transfer_pause(struct dma_chan *chan)
drivers/dma/k3dma.c
758
struct k3_dma_chan *c = to_k3_chan(chan);
drivers/dma/k3dma.c
759
struct k3_dma_dev *d = to_k3_dma(chan->device);
drivers/dma/k3dma.c
777
static int k3_dma_transfer_resume(struct dma_chan *chan)
drivers/dma/k3dma.c
779
struct k3_dma_chan *c = to_k3_chan(chan);
drivers/dma/k3dma.c
780
struct k3_dma_dev *d = to_k3_dma(chan->device);
drivers/dma/k3dma.c
829
return dma_get_slave_channel(&(d->chans[request].vc.chan));
drivers/dma/k3dma.c
977
list_for_each_entry_safe(c, cn, &d->slave.channels, vc.chan.device_node) {
drivers/dma/k3dma.c
978
list_del(&c->vc.chan.device_node);
drivers/dma/lgm/lgm-dma.c
1004
struct ldma_dev *d = to_ldma_dev(c->vchan.chan.device);
drivers/dma/lgm/lgm-dma.c
1014
static void ldma_issue_pending(struct dma_chan *chan)
drivers/dma/lgm/lgm-dma.c
1016
struct ldma_chan *c = to_ldma_chan(chan);
drivers/dma/lgm/lgm-dma.c
1017
struct ldma_dev *d = to_ldma_dev(c->vchan.chan.device);
drivers/dma/lgm/lgm-dma.c
1042
static void ldma_synchronize(struct dma_chan *chan)
drivers/dma/lgm/lgm-dma.c
1044
struct ldma_chan *c = to_ldma_chan(chan);
drivers/dma/lgm/lgm-dma.c
1056
static int ldma_terminate_all(struct dma_chan *chan)
drivers/dma/lgm/lgm-dma.c
1058
struct ldma_chan *c = to_ldma_chan(chan);
drivers/dma/lgm/lgm-dma.c
1070
static int ldma_resume_chan(struct dma_chan *chan)
drivers/dma/lgm/lgm-dma.c
1072
struct ldma_chan *c = to_ldma_chan(chan);
drivers/dma/lgm/lgm-dma.c
1079
static int ldma_pause_chan(struct dma_chan *chan)
drivers/dma/lgm/lgm-dma.c
1081
struct ldma_chan *c = to_ldma_chan(chan);
drivers/dma/lgm/lgm-dma.c
1087
ldma_tx_status(struct dma_chan *chan, dma_cookie_t cookie,
drivers/dma/lgm/lgm-dma.c
1090
struct ldma_chan *c = to_ldma_chan(chan);
drivers/dma/lgm/lgm-dma.c
1091
struct ldma_dev *d = to_ldma_dev(c->vchan.chan.device);
drivers/dma/lgm/lgm-dma.c
1095
status = dma_cookie_status(chan, cookie, txstate);
drivers/dma/lgm/lgm-dma.c
1103
struct ldma_dev *d = to_ldma_dev(c->vchan.chan.device);
drivers/dma/lgm/lgm-dma.c
1157
ldma_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
drivers/dma/lgm/lgm-dma.c
1161
struct ldma_chan *c = to_ldma_chan(chan);
drivers/dma/lgm/lgm-dma.c
1162
struct ldma_dev *d = to_ldma_dev(c->vchan.chan.device);
drivers/dma/lgm/lgm-dma.c
1174
return ldma_chan_desc_cfg(chan, sgl->dma_address, sglen);
drivers/dma/lgm/lgm-dma.c
1255
ldma_slave_config(struct dma_chan *chan, struct dma_slave_config *cfg)
drivers/dma/lgm/lgm-dma.c
1257
struct ldma_chan *c = to_ldma_chan(chan);
drivers/dma/lgm/lgm-dma.c
1264
static int ldma_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/lgm/lgm-dma.c
1266
struct ldma_chan *c = to_ldma_chan(chan);
drivers/dma/lgm/lgm-dma.c
1267
struct ldma_dev *d = to_ldma_dev(c->vchan.chan.device);
drivers/dma/lgm/lgm-dma.c
1268
struct device *dev = c->vchan.chan.device->dev;
drivers/dma/lgm/lgm-dma.c
1291
static void ldma_free_chan_resources(struct dma_chan *chan)
drivers/dma/lgm/lgm-dma.c
1293
struct ldma_chan *c = to_ldma_chan(chan);
drivers/dma/lgm/lgm-dma.c
1294
struct ldma_dev *d = to_ldma_dev(c->vchan.chan.device);
drivers/dma/lgm/lgm-dma.c
1299
vchan_free_chan_resources(to_virt_chan(chan));
drivers/dma/lgm/lgm-dma.c
1396
return dma_get_slave_channel(&d->chans[chan_id].vchan.chan);
drivers/dma/lgm/lgm-dma.c
271
struct ldma_chan *chan;
drivers/dma/lgm/lgm-dma.c
290
static inline struct ldma_chan *to_ldma_chan(struct dma_chan *chan)
drivers/dma/lgm/lgm-dma.c
292
return container_of(chan, struct ldma_chan, vchan.chan);
drivers/dma/lgm/lgm-dma.c
521
struct ldma_dev *d = to_ldma_dev(c->vchan.chan.device);
drivers/dma/lgm/lgm-dma.c
550
struct ldma_dev *d = to_ldma_dev(c->vchan.chan.device);
drivers/dma/lgm/lgm-dma.c
578
struct ldma_dev *d = to_ldma_dev(c->vchan.chan.device);
drivers/dma/lgm/lgm-dma.c
596
struct ldma_dev *d = to_ldma_dev(c->vchan.chan.device);
drivers/dma/lgm/lgm-dma.c
615
struct ldma_dev *d = to_ldma_dev(c->vchan.chan.device);
drivers/dma/lgm/lgm-dma.c
638
struct ldma_dev *d = to_ldma_dev(c->vchan.chan.device);
drivers/dma/lgm/lgm-dma.c
659
ldma_chan_desc_cfg(struct dma_chan *chan, dma_addr_t desc_base, int desc_num)
drivers/dma/lgm/lgm-dma.c
661
struct ldma_chan *c = to_ldma_chan(chan);
drivers/dma/lgm/lgm-dma.c
662
struct ldma_dev *d = to_ldma_dev(c->vchan.chan.device);
drivers/dma/lgm/lgm-dma.c
689
dma_async_tx_descriptor_init(tx, chan);
drivers/dma/lgm/lgm-dma.c
696
struct ldma_dev *d = to_ldma_dev(c->vchan.chan.device);
drivers/dma/lgm/lgm-dma.c
723
struct ldma_dev *d = to_ldma_dev(c->vchan.chan.device);
drivers/dma/lgm/lgm-dma.c
739
struct ldma_dev *d = to_ldma_dev(c->vchan.chan.device);
drivers/dma/lgm/lgm-dma.c
755
struct ldma_dev *d = to_ldma_dev(c->vchan.chan.device);
drivers/dma/lgm/lgm-dma.c
770
struct ldma_dev *d = to_ldma_dev(c->vchan.chan.device);
drivers/dma/lgm/lgm-dma.c
789
struct ldma_dev *d = to_ldma_dev(c->vchan.chan.device);
drivers/dma/lgm/lgm-dma.c
805
struct ldma_dev *d = to_ldma_dev(c->vchan.chan.device);
drivers/dma/lgm/lgm-dma.c
862
struct ldma_dev *d = to_ldma_dev(c->vchan.chan.device);
drivers/dma/lgm/lgm-dma.c
968
struct ldma_chan *c = ds->chan;
drivers/dma/lgm/lgm-dma.c
977
struct device *dev = c->vchan.chan.device->dev;
drivers/dma/lgm/lgm-dma.c
989
ds->chan = c;
drivers/dma/loongson/loongson1-apb-dma.c
100
struct dma_chan *dchan = &chan->vc.chan;
drivers/dma/loongson/loongson1-apb-dma.c
106
writel(val, chan->reg_base + LS1X_DMA_CTRL);
drivers/dma/loongson/loongson1-apb-dma.c
107
ret = readl_poll_timeout_atomic(chan->reg_base + LS1X_DMA_CTRL, val,
drivers/dma/loongson/loongson1-apb-dma.c
115
static inline int ls1x_dma_start(struct ls1x_dma_chan *chan,
drivers/dma/loongson/loongson1-apb-dma.c
118
struct dma_chan *dchan = &chan->vc.chan;
drivers/dma/loongson/loongson1-apb-dma.c
125
writel(val, chan->reg_base + LS1X_DMA_CTRL);
drivers/dma/loongson/loongson1-apb-dma.c
126
ret = readl_poll_timeout(chan->reg_base + LS1X_DMA_CTRL, val,
drivers/dma/loongson/loongson1-apb-dma.c
136
static inline void ls1x_dma_stop(struct ls1x_dma_chan *chan)
drivers/dma/loongson/loongson1-apb-dma.c
138
int val = readl(chan->reg_base + LS1X_DMA_CTRL);
drivers/dma/loongson/loongson1-apb-dma.c
140
writel(val | LS1X_DMA_STOP, chan->reg_base + LS1X_DMA_CTRL);
drivers/dma/loongson/loongson1-apb-dma.c
145
struct ls1x_dma_chan *chan = to_ls1x_dma_chan(dchan);
drivers/dma/loongson/loongson1-apb-dma.c
149
chan->curr_lli, chan->curr_lli->phys);
drivers/dma/loongson/loongson1-apb-dma.c
150
dma_pool_destroy(chan->lli_pool);
drivers/dma/loongson/loongson1-apb-dma.c
151
chan->lli_pool = NULL;
drivers/dma/loongson/loongson1-apb-dma.c
152
devm_free_irq(dev, chan->irq, chan);
drivers/dma/loongson/loongson1-apb-dma.c
153
vchan_free_chan_resources(&chan->vc);
drivers/dma/loongson/loongson1-apb-dma.c
158
struct ls1x_dma_chan *chan = to_ls1x_dma_chan(dchan);
drivers/dma/loongson/loongson1-apb-dma.c
163
ret = devm_request_irq(dev, chan->irq, ls1x_dma_irq_handler,
drivers/dma/loongson/loongson1-apb-dma.c
164
IRQF_SHARED, dma_chan_name(dchan), chan);
drivers/dma/loongson/loongson1-apb-dma.c
166
dev_err(dev, "failed to request IRQ %d\n", chan->irq);
drivers/dma/loongson/loongson1-apb-dma.c
170
chan->lli_pool = dma_pool_create(dma_chan_name(dchan), dev,
drivers/dma/loongson/loongson1-apb-dma.c
173
if (!chan->lli_pool)
drivers/dma/loongson/loongson1-apb-dma.c
178
chan->curr_lli = dma_alloc_coherent(dev, sizeof(struct ls1x_dma_lli),
drivers/dma/loongson/loongson1-apb-dma.c
180
if (!chan->curr_lli) {
drivers/dma/loongson/loongson1-apb-dma.c
181
dma_pool_destroy(chan->lli_pool);
drivers/dma/loongson/loongson1-apb-dma.c
184
chan->curr_lli->phys = phys;
drivers/dma/loongson/loongson1-apb-dma.c
192
struct ls1x_dma_chan *chan = to_ls1x_dma_chan(vd->tx.chan);
drivers/dma/loongson/loongson1-apb-dma.c
197
dma_pool_free(chan->lli_pool, lli, lli->phys);
drivers/dma/loongson/loongson1-apb-dma.c
220
struct ls1x_dma_chan *chan = to_ls1x_dma_chan(dchan);
drivers/dma/loongson/loongson1-apb-dma.c
229
dev_addr = chan->dst_addr;
drivers/dma/loongson/loongson1-apb-dma.c
230
chan->bus_width = chan->dst_addr_width;
drivers/dma/loongson/loongson1-apb-dma.c
234
dev_addr = chan->src_addr;
drivers/dma/loongson/loongson1-apb-dma.c
235
chan->bus_width = chan->src_addr_width;
drivers/dma/loongson/loongson1-apb-dma.c
255
lli = dma_pool_zalloc(chan->lli_pool, GFP_NOWAIT, &phys);
drivers/dma/loongson/loongson1-apb-dma.c
265
lli->hw[LS1X_DMADESC_LENGTH] = buf_len / chan->bus_width;
drivers/dma/loongson/loongson1-apb-dma.c
283
chan->is_cyclic = is_cyclic;
drivers/dma/loongson/loongson1-apb-dma.c
364
struct ls1x_dma_chan *chan = to_ls1x_dma_chan(dchan);
drivers/dma/loongson/loongson1-apb-dma.c
366
chan->src_addr = config->src_addr;
drivers/dma/loongson/loongson1-apb-dma.c
367
chan->src_addr_width = config->src_addr_width;
drivers/dma/loongson/loongson1-apb-dma.c
368
chan->dst_addr = config->dst_addr;
drivers/dma/loongson/loongson1-apb-dma.c
369
chan->dst_addr_width = config->dst_addr_width;
drivers/dma/loongson/loongson1-apb-dma.c
376
struct ls1x_dma_chan *chan = to_ls1x_dma_chan(dchan);
drivers/dma/loongson/loongson1-apb-dma.c
379
guard(spinlock_irqsave)(&chan->vc.lock);
drivers/dma/loongson/loongson1-apb-dma.c
381
ret = ls1x_dma_query(chan, &chan->curr_lli->phys);
drivers/dma/loongson/loongson1-apb-dma.c
383
ls1x_dma_stop(chan);
drivers/dma/loongson/loongson1-apb-dma.c
390
struct ls1x_dma_chan *chan = to_ls1x_dma_chan(dchan);
drivers/dma/loongson/loongson1-apb-dma.c
392
guard(spinlock_irqsave)(&chan->vc.lock);
drivers/dma/loongson/loongson1-apb-dma.c
394
return ls1x_dma_start(chan, &chan->curr_lli->phys);
drivers/dma/loongson/loongson1-apb-dma.c
399
struct ls1x_dma_chan *chan = to_ls1x_dma_chan(dchan);
drivers/dma/loongson/loongson1-apb-dma.c
403
ls1x_dma_stop(chan);
drivers/dma/loongson/loongson1-apb-dma.c
405
scoped_guard(spinlock_irqsave, &chan->vc.lock) {
drivers/dma/loongson/loongson1-apb-dma.c
406
vd = vchan_next_desc(&chan->vc);
drivers/dma/loongson/loongson1-apb-dma.c
410
vchan_get_all_descriptors(&chan->vc, &head);
drivers/dma/loongson/loongson1-apb-dma.c
413
vchan_dma_desc_free_list(&chan->vc, &head);
drivers/dma/loongson/loongson1-apb-dma.c
427
struct ls1x_dma_chan *chan = to_ls1x_dma_chan(dchan);
drivers/dma/loongson/loongson1-apb-dma.c
436
scoped_guard(spinlock_irqsave, &chan->vc.lock) {
drivers/dma/loongson/loongson1-apb-dma.c
437
vd = vchan_find_desc(&chan->vc, cookie);
drivers/dma/loongson/loongson1-apb-dma.c
444
if (ls1x_dma_query(chan, &chan->curr_lli->phys))
drivers/dma/loongson/loongson1-apb-dma.c
448
next_phys = chan->curr_lli->hw[LS1X_DMADESC_NEXT];
drivers/dma/loongson/loongson1-apb-dma.c
459
chan->bus_width;
drivers/dma/loongson/loongson1-apb-dma.c
470
struct ls1x_dma_chan *chan = to_ls1x_dma_chan(dchan);
drivers/dma/loongson/loongson1-apb-dma.c
472
guard(spinlock_irqsave)(&chan->vc.lock);
drivers/dma/loongson/loongson1-apb-dma.c
474
if (vchan_issue_pending(&chan->vc)) {
drivers/dma/loongson/loongson1-apb-dma.c
475
struct virt_dma_desc *vd = vchan_next_desc(&chan->vc);
drivers/dma/loongson/loongson1-apb-dma.c
483
ls1x_dma_start(chan, &lli->phys);
drivers/dma/loongson/loongson1-apb-dma.c
490
struct ls1x_dma_chan *chan = data;
drivers/dma/loongson/loongson1-apb-dma.c
491
struct dma_chan *dchan = &chan->vc.chan;
drivers/dma/loongson/loongson1-apb-dma.c
495
scoped_guard(spinlock, &chan->vc.lock) {
drivers/dma/loongson/loongson1-apb-dma.c
496
vd = vchan_next_desc(&chan->vc);
drivers/dma/loongson/loongson1-apb-dma.c
504
if (chan->is_cyclic) {
drivers/dma/loongson/loongson1-apb-dma.c
528
struct ls1x_dma_chan *chan = &dma->chan[id];
drivers/dma/loongson/loongson1-apb-dma.c
532
chan->irq = platform_get_irq_byname(pdev, pdev_irqname);
drivers/dma/loongson/loongson1-apb-dma.c
533
if (chan->irq < 0)
drivers/dma/loongson/loongson1-apb-dma.c
534
return dev_err_probe(&pdev->dev, chan->irq,
drivers/dma/loongson/loongson1-apb-dma.c
538
chan->reg_base = reg_base;
drivers/dma/loongson/loongson1-apb-dma.c
539
chan->vc.desc_free = ls1x_dma_free_desc;
drivers/dma/loongson/loongson1-apb-dma.c
540
vchan_init(&chan->vc, &dma->ddev);
drivers/dma/loongson/loongson1-apb-dma.c
551
struct ls1x_dma_chan *chan = &dma->chan[id];
drivers/dma/loongson/loongson1-apb-dma.c
553
if (chan->vc.chan.device == &dma->ddev) {
drivers/dma/loongson/loongson1-apb-dma.c
554
list_del(&chan->vc.chan.device_node);
drivers/dma/loongson/loongson1-apb-dma.c
555
tasklet_kill(&chan->vc.task);
drivers/dma/loongson/loongson1-apb-dma.c
573
dma = devm_kzalloc(dev, struct_size(dma, chan, ret), GFP_KERNEL);
drivers/dma/loongson/loongson1-apb-dma.c
81
struct ls1x_dma_chan chan[];
drivers/dma/loongson/loongson1-apb-dma.c
87
container_of(dchan, struct ls1x_dma_chan, vc.chan)
drivers/dma/loongson/loongson1-apb-dma.c
92
static inline struct device *chan2dev(struct dma_chan *chan)
drivers/dma/loongson/loongson1-apb-dma.c
94
return &chan->dev->device;
drivers/dma/loongson/loongson1-apb-dma.c
97
static inline int ls1x_dma_query(struct ls1x_dma_chan *chan,
drivers/dma/loongson/loongson2-apb-cmc-dma.c
104
struct loongson2_cmc_dma_chan chan[] __counted_by(nr_channels);
drivers/dma/loongson/loongson2-apb-cmc-dma.c
124
return container_of(lchan->vchan.chan.device, struct loongson2_cmc_dma_dev, ddev);
drivers/dma/loongson/loongson2-apb-cmc-dma.c
127
static struct loongson2_cmc_dma_chan *to_lmdma_chan(struct dma_chan *chan)
drivers/dma/loongson/loongson2-apb-cmc-dma.c
129
return container_of(chan, struct loongson2_cmc_dma_chan, vchan.chan);
drivers/dma/loongson/loongson2-apb-cmc-dma.c
139
return &lchan->vchan.chan.dev->device;
drivers/dma/loongson/loongson2-apb-cmc-dma.c
164
static int loongson2_cmc_dma_slave_config(struct dma_chan *chan, struct dma_slave_config *config)
drivers/dma/loongson/loongson2-apb-cmc-dma.c
166
struct loongson2_cmc_dma_chan *lchan = to_lmdma_chan(chan);
drivers/dma/loongson/loongson2-apb-cmc-dma.c
194
static int loongson2_cmc_dma_terminate_all(struct dma_chan *chan)
drivers/dma/loongson/loongson2-apb-cmc-dma.c
196
struct loongson2_cmc_dma_chan *lchan = to_lmdma_chan(chan);
drivers/dma/loongson/loongson2-apb-cmc-dma.c
214
static void loongson2_cmc_dma_synchronize(struct dma_chan *chan)
drivers/dma/loongson/loongson2-apb-cmc-dma.c
216
struct loongson2_cmc_dma_chan *lchan = to_lmdma_chan(chan);
drivers/dma/loongson/loongson2-apb-cmc-dma.c
333
static void loongson2_cmc_dma_issue_pending(struct dma_chan *chan)
drivers/dma/loongson/loongson2-apb-cmc-dma.c
335
struct loongson2_cmc_dma_chan *lchan = to_lmdma_chan(chan);
drivers/dma/loongson/loongson2-apb-cmc-dma.c
390
loongson2_cmc_dma_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl, u32 sg_len,
drivers/dma/loongson/loongson2-apb-cmc-dma.c
394
struct loongson2_cmc_dma_chan *lchan = to_lmdma_chan(chan);
drivers/dma/loongson/loongson2-apb-cmc-dma.c
431
loongson2_cmc_dma_prep_dma_cyclic(struct dma_chan *chan, dma_addr_t buf_addr, size_t buf_len,
drivers/dma/loongson/loongson2-apb-cmc-dma.c
435
struct loongson2_cmc_dma_chan *lchan = to_lmdma_chan(chan);
drivers/dma/loongson/loongson2-apb-cmc-dma.c
499
static enum dma_status loongson2_cmc_dma_tx_status(struct dma_chan *chan, dma_cookie_t cookie,
drivers/dma/loongson/loongson2-apb-cmc-dma.c
502
struct loongson2_cmc_dma_chan *lchan = to_lmdma_chan(chan);
drivers/dma/loongson/loongson2-apb-cmc-dma.c
506
status = dma_cookie_status(chan, cookie, state);
drivers/dma/loongson/loongson2-apb-cmc-dma.c
523
static void loongson2_cmc_dma_free_chan_resources(struct dma_chan *chan)
drivers/dma/loongson/loongson2-apb-cmc-dma.c
525
vchan_free_chan_resources(to_virt_chan(chan));
drivers/dma/loongson/loongson2-apb-cmc-dma.c
533
static bool loongson2_cmc_dma_acpi_filter(struct dma_chan *chan, void *param)
drivers/dma/loongson/loongson2-apb-cmc-dma.c
535
struct loongson2_cmc_dma_chan *lchan = to_lmdma_chan(chan);
drivers/dma/loongson/loongson2-apb-cmc-dma.c
569
struct dma_chan *chan;
drivers/dma/loongson/loongson2-apb-cmc-dma.c
579
lchan = &lddev->chan[dma_spec->args[0]];
drivers/dma/loongson/loongson2-apb-cmc-dma.c
580
chan = dma_get_slave_channel(&lchan->vchan.chan);
drivers/dma/loongson/loongson2-apb-cmc-dma.c
581
if (!chan) {
drivers/dma/loongson/loongson2-apb-cmc-dma.c
589
return chan;
drivers/dma/loongson/loongson2-apb-cmc-dma.c
622
lddev = devm_kzalloc(dev, struct_size(lddev, chan, nr_chans), GFP_KERNEL);
drivers/dma/loongson/loongson2-apb-cmc-dma.c
662
lchan = &lddev->chan[i];
drivers/dma/loongson/loongson2-apb-cmc-dma.c
674
lchan = &lddev->chan[i];
drivers/dma/loongson/loongson2-apb-dma.c
154
static inline struct ls2x_dma_chan *to_ldma_chan(struct dma_chan *chan)
drivers/dma/loongson/loongson2-apb-dma.c
156
return container_of(chan, struct ls2x_dma_chan, vchan.chan);
drivers/dma/loongson/loongson2-apb-dma.c
164
static struct device *chan2dev(struct dma_chan *chan)
drivers/dma/loongson/loongson2-apb-dma.c
166
return &chan->dev->device;
drivers/dma/loongson/loongson2-apb-dma.c
171
struct ls2x_dma_chan *lchan = to_ldma_chan(vdesc->tx.chan);
drivers/dma/loongson/loongson2-apb-dma.c
186
struct ls2x_dma_priv *priv = to_ldma_priv(lchan->vchan.chan.device);
drivers/dma/loongson/loongson2-apb-dma.c
196
struct ls2x_dma_priv *priv = to_ldma_priv(lchan->vchan.chan.device);
drivers/dma/loongson/loongson2-apb-dma.c
280
static int ls2x_dma_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/loongson/loongson2-apb-dma.c
282
struct ls2x_dma_chan *lchan = to_ldma_chan(chan);
drivers/dma/loongson/loongson2-apb-dma.c
285
lchan->pool = dma_pool_create(dev_name(chan2dev(chan)),
drivers/dma/loongson/loongson2-apb-dma.c
286
chan->device->dev, PAGE_SIZE,
drivers/dma/loongson/loongson2-apb-dma.c
289
dev_err(chan2dev(chan), "No memory for descriptors\n");
drivers/dma/loongson/loongson2-apb-dma.c
300
static void ls2x_dma_free_chan_resources(struct dma_chan *chan)
drivers/dma/loongson/loongson2-apb-dma.c
302
struct ls2x_dma_chan *lchan = to_ldma_chan(chan);
drivers/dma/loongson/loongson2-apb-dma.c
304
vchan_free_chan_resources(to_virt_chan(chan));
drivers/dma/loongson/loongson2-apb-dma.c
321
ls2x_dma_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
drivers/dma/loongson/loongson2-apb-dma.c
325
struct ls2x_dma_chan *lchan = to_ldma_chan(chan);
drivers/dma/loongson/loongson2-apb-dma.c
382
ls2x_dma_prep_dma_cyclic(struct dma_chan *chan, dma_addr_t buf_addr, size_t buf_len,
drivers/dma/loongson/loongson2-apb-dma.c
386
struct ls2x_dma_chan *lchan = to_ldma_chan(chan);
drivers/dma/loongson/loongson2-apb-dma.c
445
static int ls2x_dma_slave_config(struct dma_chan *chan,
drivers/dma/loongson/loongson2-apb-dma.c
448
struct ls2x_dma_chan *lchan = to_ldma_chan(chan);
drivers/dma/loongson/loongson2-apb-dma.c
461
static void ls2x_dma_issue_pending(struct dma_chan *chan)
drivers/dma/loongson/loongson2-apb-dma.c
463
struct ls2x_dma_chan *lchan = to_ldma_chan(chan);
drivers/dma/loongson/loongson2-apb-dma.c
477
static int ls2x_dma_terminate_all(struct dma_chan *chan)
drivers/dma/loongson/loongson2-apb-dma.c
479
struct ls2x_dma_chan *lchan = to_ldma_chan(chan);
drivers/dma/loongson/loongson2-apb-dma.c
502
static void ls2x_dma_synchronize(struct dma_chan *chan)
drivers/dma/loongson/loongson2-apb-dma.c
504
struct ls2x_dma_chan *lchan = to_ldma_chan(chan);
drivers/dma/loongson/loongson2-apb-dma.c
509
static int ls2x_dma_pause(struct dma_chan *chan)
drivers/dma/loongson/loongson2-apb-dma.c
511
struct ls2x_dma_chan *lchan = to_ldma_chan(chan);
drivers/dma/loongson/loongson2-apb-dma.c
523
static int ls2x_dma_resume(struct dma_chan *chan)
drivers/dma/loongson/loongson2-apb-dma.c
525
struct ls2x_dma_chan *lchan = to_ldma_chan(chan);
drivers/dma/mcf-edma-main.c
273
bool mcf_edma_filter_fn(struct dma_chan *chan, void *param)
drivers/dma/mcf-edma-main.c
275
if (chan->device->dev->driver == &mcf_edma_driver.driver) {
drivers/dma/mcf-edma-main.c
276
struct fsl_edma_chan *mcf_chan = to_fsl_edma_chan(chan);
drivers/dma/mediatek/mtk-cqdma.c
148
static struct mtk_cqdma_device *to_cqdma_dev(struct dma_chan *chan)
drivers/dma/mediatek/mtk-cqdma.c
150
return container_of(chan->device, struct mtk_cqdma_device, ddev);
drivers/dma/mediatek/mtk-cqdma.c
153
static struct mtk_cqdma_vchan *to_cqdma_vchan(struct dma_chan *chan)
drivers/dma/mediatek/mtk-cqdma.c
155
return container_of(chan, struct mtk_cqdma_vchan, vc.chan);
drivers/dma/mediatek/mtk-cqdma.c
897
list_del(&vc->vc.chan.device_node);
drivers/dma/mediatek/mtk-hsdma.c
1022
list_del(&vc->vc.chan.device_node);
drivers/dma/mediatek/mtk-hsdma.c
248
static struct mtk_hsdma_device *to_hsdma_dev(struct dma_chan *chan)
drivers/dma/mediatek/mtk-hsdma.c
250
return container_of(chan->device, struct mtk_hsdma_device, ddev);
drivers/dma/mediatek/mtk-hsdma.c
253
static inline struct mtk_hsdma_vchan *to_hsdma_vchan(struct dma_chan *chan)
drivers/dma/mediatek/mtk-hsdma.c
255
return container_of(chan, struct mtk_hsdma_vchan, vc.chan);
drivers/dma/mediatek/mtk-hsdma.c
583
hvc = to_hsdma_vchan(cb->vd->tx.chan);
drivers/dma/mediatek/mtk-uart-apdma.c
111
return container_of(c, struct mtk_chan, vc.chan);
drivers/dma/mediatek/mtk-uart-apdma.c
139
to_mtk_uart_apdma_dev(c->vc.chan.device);
drivers/dma/mediatek/mtk-uart-apdma.c
157
dev_err(c->vc.chan.device->dev, "Enable TX fail\n");
drivers/dma/mediatek/mtk-uart-apdma.c
182
to_mtk_uart_apdma_dev(c->vc.chan.device);
drivers/dma/mediatek/mtk-uart-apdma.c
201
dev_err(c->vc.chan.device->dev, "Enable RX fail\n");
drivers/dma/mediatek/mtk-uart-apdma.c
254
struct dma_chan *chan = (struct dma_chan *)dev_id;
drivers/dma/mediatek/mtk-uart-apdma.c
255
struct mtk_chan *c = to_mtk_uart_apdma_chan(chan);
drivers/dma/mediatek/mtk-uart-apdma.c
269
static int mtk_uart_apdma_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/mediatek/mtk-uart-apdma.c
271
struct mtk_uart_apdmadev *mtkd = to_mtk_uart_apdma_dev(chan->device);
drivers/dma/mediatek/mtk-uart-apdma.c
272
struct mtk_chan *c = to_mtk_uart_apdma_chan(chan);
drivers/dma/mediatek/mtk-uart-apdma.c
278
pm_runtime_put_noidle(chan->device->dev);
drivers/dma/mediatek/mtk-uart-apdma.c
293
IRQF_TRIGGER_NONE, KBUILD_MODNAME, chan);
drivers/dma/mediatek/mtk-uart-apdma.c
295
dev_err(chan->device->dev, "Can't request dma IRQ\n");
drivers/dma/mediatek/mtk-uart-apdma.c
308
static void mtk_uart_apdma_free_chan_resources(struct dma_chan *chan)
drivers/dma/mediatek/mtk-uart-apdma.c
310
struct mtk_uart_apdmadev *mtkd = to_mtk_uart_apdma_dev(chan->device);
drivers/dma/mediatek/mtk-uart-apdma.c
311
struct mtk_chan *c = to_mtk_uart_apdma_chan(chan);
drivers/dma/mediatek/mtk-uart-apdma.c
313
free_irq(c->irq, chan);
drivers/dma/mediatek/mtk-uart-apdma.c
322
static enum dma_status mtk_uart_apdma_tx_status(struct dma_chan *chan,
drivers/dma/mediatek/mtk-uart-apdma.c
326
struct mtk_chan *c = to_mtk_uart_apdma_chan(chan);
drivers/dma/mediatek/mtk-uart-apdma.c
329
ret = dma_cookie_status(chan, cookie, txstate);
drivers/dma/mediatek/mtk-uart-apdma.c
343
(struct dma_chan *chan, struct scatterlist *sgl,
drivers/dma/mediatek/mtk-uart-apdma.c
347
struct mtk_chan *c = to_mtk_uart_apdma_chan(chan);
drivers/dma/mediatek/mtk-uart-apdma.c
365
static void mtk_uart_apdma_issue_pending(struct dma_chan *chan)
drivers/dma/mediatek/mtk-uart-apdma.c
367
struct mtk_chan *c = to_mtk_uart_apdma_chan(chan);
drivers/dma/mediatek/mtk-uart-apdma.c
385
static int mtk_uart_apdma_slave_config(struct dma_chan *chan,
drivers/dma/mediatek/mtk-uart-apdma.c
388
struct mtk_chan *c = to_mtk_uart_apdma_chan(chan);
drivers/dma/mediatek/mtk-uart-apdma.c
395
static int mtk_uart_apdma_terminate_all(struct dma_chan *chan)
drivers/dma/mediatek/mtk-uart-apdma.c
397
struct mtk_chan *c = to_mtk_uart_apdma_chan(chan);
drivers/dma/mediatek/mtk-uart-apdma.c
408
dev_err(c->vc.chan.device->dev, "flush: fail, status=0x%x\n",
drivers/dma/mediatek/mtk-uart-apdma.c
421
dev_err(c->vc.chan.device->dev, "stop: fail, status=0x%x\n",
drivers/dma/mediatek/mtk-uart-apdma.c
443
static int mtk_uart_apdma_device_pause(struct dma_chan *chan)
drivers/dma/mediatek/mtk-uart-apdma.c
445
struct mtk_chan *c = to_mtk_uart_apdma_chan(chan);
drivers/dma/mediatek/mtk-uart-apdma.c
463
struct mtk_chan, vc.chan.device_node);
drivers/dma/mediatek/mtk-uart-apdma.c
465
list_del(&c->vc.chan.device_node);
drivers/dma/milbeaut-hdmac.c
207
static void milbeaut_hdmac_free_chan_resources(struct dma_chan *chan)
drivers/dma/milbeaut-hdmac.c
209
vchan_free_chan_resources(to_virt_chan(chan));
drivers/dma/milbeaut-hdmac.c
213
milbeaut_hdmac_chan_config(struct dma_chan *chan, struct dma_slave_config *cfg)
drivers/dma/milbeaut-hdmac.c
215
struct virt_dma_chan *vc = to_virt_chan(chan);
drivers/dma/milbeaut-hdmac.c
225
static int milbeaut_hdmac_chan_pause(struct dma_chan *chan)
drivers/dma/milbeaut-hdmac.c
227
struct virt_dma_chan *vc = to_virt_chan(chan);
drivers/dma/milbeaut-hdmac.c
240
static int milbeaut_hdmac_chan_resume(struct dma_chan *chan)
drivers/dma/milbeaut-hdmac.c
242
struct virt_dma_chan *vc = to_virt_chan(chan);
drivers/dma/milbeaut-hdmac.c
256
milbeaut_hdmac_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
drivers/dma/milbeaut-hdmac.c
261
struct virt_dma_chan *vc = to_virt_chan(chan);
drivers/dma/milbeaut-hdmac.c
287
static int milbeaut_hdmac_terminate_all(struct dma_chan *chan)
drivers/dma/milbeaut-hdmac.c
289
struct virt_dma_chan *vc = to_virt_chan(chan);
drivers/dma/milbeaut-hdmac.c
316
static void milbeaut_hdmac_synchronize(struct dma_chan *chan)
drivers/dma/milbeaut-hdmac.c
318
vchan_synchronize(to_virt_chan(chan));
drivers/dma/milbeaut-hdmac.c
321
static enum dma_status milbeaut_hdmac_tx_status(struct dma_chan *chan,
drivers/dma/milbeaut-hdmac.c
333
stat = dma_cookie_status(chan, cookie, txstate);
drivers/dma/milbeaut-hdmac.c
338
vc = to_virt_chan(chan);
drivers/dma/milbeaut-hdmac.c
380
static void milbeaut_hdmac_issue_pending(struct dma_chan *chan)
drivers/dma/milbeaut-hdmac.c
382
struct virt_dma_chan *vc = to_virt_chan(chan);
drivers/dma/milbeaut-hdmac.c
408
struct dma_chan *chan;
drivers/dma/milbeaut-hdmac.c
413
chan = dma_get_any_slave_channel(&mdev->ddev);
drivers/dma/milbeaut-hdmac.c
414
if (!chan)
drivers/dma/milbeaut-hdmac.c
417
vc = to_virt_chan(chan);
drivers/dma/milbeaut-hdmac.c
421
return chan;
drivers/dma/milbeaut-hdmac.c
537
struct dma_chan *chan;
drivers/dma/milbeaut-hdmac.c
547
list_for_each_entry(chan, &mdev->ddev.channels, device_node) {
drivers/dma/milbeaut-hdmac.c
548
ret = dmaengine_terminate_sync(chan);
drivers/dma/milbeaut-hdmac.c
555
chan->chan_id, ERR_PTR(ret));
drivers/dma/milbeaut-hdmac.c
558
milbeaut_hdmac_free_chan_resources(chan);
drivers/dma/milbeaut-xdmac.c
183
static void milbeaut_xdmac_free_chan_resources(struct dma_chan *chan)
drivers/dma/milbeaut-xdmac.c
185
vchan_free_chan_resources(to_virt_chan(chan));
drivers/dma/milbeaut-xdmac.c
189
milbeaut_xdmac_prep_memcpy(struct dma_chan *chan, dma_addr_t dst,
drivers/dma/milbeaut-xdmac.c
192
struct virt_dma_chan *vc = to_virt_chan(chan);
drivers/dma/milbeaut-xdmac.c
206
static int milbeaut_xdmac_terminate_all(struct dma_chan *chan)
drivers/dma/milbeaut-xdmac.c
208
struct virt_dma_chan *vc = to_virt_chan(chan);
drivers/dma/milbeaut-xdmac.c
237
static void milbeaut_xdmac_synchronize(struct dma_chan *chan)
drivers/dma/milbeaut-xdmac.c
239
vchan_synchronize(to_virt_chan(chan));
drivers/dma/milbeaut-xdmac.c
242
static void milbeaut_xdmac_issue_pending(struct dma_chan *chan)
drivers/dma/milbeaut-xdmac.c
244
struct virt_dma_chan *vc = to_virt_chan(chan);
drivers/dma/milbeaut-xdmac.c
374
struct dma_chan *chan;
drivers/dma/milbeaut-xdmac.c
384
list_for_each_entry(chan, &mdev->ddev.channels, device_node) {
drivers/dma/milbeaut-xdmac.c
385
ret = dmaengine_terminate_sync(chan);
drivers/dma/milbeaut-xdmac.c
392
chan->chan_id, ERR_PTR(ret));
drivers/dma/milbeaut-xdmac.c
395
milbeaut_xdmac_free_chan_resources(chan);
drivers/dma/mmp_pdma.c
1007
spin_unlock_irqrestore(&chan->desc_lock, flags);
drivers/dma/mmp_pdma.c
1015
spin_unlock_irqrestore(&chan->desc_lock, flags);
drivers/dma/mmp_pdma.c
1025
struct mmp_pdma_chan *chan = to_mmp_pdma_chan(dchan);
drivers/dma/mmp_pdma.c
1030
dma_set_residue(txstate, mmp_pdma_residue(chan, cookie));
drivers/dma/mmp_pdma.c
1041
struct mmp_pdma_chan *chan = to_mmp_pdma_chan(dchan);
drivers/dma/mmp_pdma.c
1044
spin_lock_irqsave(&chan->desc_lock, flags);
drivers/dma/mmp_pdma.c
1045
start_pending_queue(chan);
drivers/dma/mmp_pdma.c
1046
spin_unlock_irqrestore(&chan->desc_lock, flags);
drivers/dma/mmp_pdma.c
1056
struct mmp_pdma_chan *chan = from_tasklet(chan, t, tasklet);
drivers/dma/mmp_pdma.c
1062
if (chan->cyclic_first) {
drivers/dma/mmp_pdma.c
1063
spin_lock_irqsave(&chan->desc_lock, flags);
drivers/dma/mmp_pdma.c
1064
desc = chan->cyclic_first;
drivers/dma/mmp_pdma.c
1066
spin_unlock_irqrestore(&chan->desc_lock, flags);
drivers/dma/mmp_pdma.c
1074
spin_lock_irqsave(&chan->desc_lock, flags);
drivers/dma/mmp_pdma.c
1076
list_for_each_entry_safe(desc, _desc, &chan->chain_running, node) {
drivers/dma/mmp_pdma.c
109
struct dma_chan chan;
drivers/dma/mmp_pdma.c
1091
dev_dbg(chan->dev, "completed_cookie=%d\n", cookie);
drivers/dma/mmp_pdma.c
1100
chan->idle = list_empty(&chan->chain_running);
drivers/dma/mmp_pdma.c
1103
start_pending_queue(chan);
drivers/dma/mmp_pdma.c
1104
spin_unlock_irqrestore(&chan->desc_lock, flags);
drivers/dma/mmp_pdma.c
1116
dma_pool_free(chan->desc_pool, desc, txd->phys);
drivers/dma/mmp_pdma.c
1151
struct mmp_pdma_chan *chan;
drivers/dma/mmp_pdma.c
1154
chan = devm_kzalloc(pdev->dev, sizeof(*chan), GFP_KERNEL);
drivers/dma/mmp_pdma.c
1155
if (chan == NULL)
drivers/dma/mmp_pdma.c
1170
spin_lock_init(&chan->desc_lock);
drivers/dma/mmp_pdma.c
1171
chan->dev = pdev->dev;
drivers/dma/mmp_pdma.c
1172
chan->chan.device = &pdev->device;
drivers/dma/mmp_pdma.c
1173
tasklet_setup(&chan->tasklet, dma_do_tasklet);
drivers/dma/mmp_pdma.c
1174
INIT_LIST_HEAD(&chan->chain_pending);
drivers/dma/mmp_pdma.c
1175
INIT_LIST_HEAD(&chan->chain_running);
drivers/dma/mmp_pdma.c
1178
list_add_tail(&chan->chan.device_node, &pdev->device.channels);
drivers/dma/mmp_pdma.c
1245
struct dma_chan *chan;
drivers/dma/mmp_pdma.c
1247
chan = dma_get_any_slave_channel(&d->device);
drivers/dma/mmp_pdma.c
1248
if (!chan)
drivers/dma/mmp_pdma.c
1251
to_mmp_pdma_chan(chan)->drcmr = dma_spec->args[0];
drivers/dma/mmp_pdma.c
1253
return chan;
drivers/dma/mmp_pdma.c
199
container_of(dchan, struct mmp_pdma_chan, chan)
drivers/dma/mmp_pdma.c
314
pdev = to_mmp_pdma_dev(phy->vchan->chan.device);
drivers/dma/mmp_pdma.c
344
pdev = to_mmp_pdma_dev(phy->vchan->chan.device);
drivers/dma/mmp_pdma.c
411
struct mmp_pdma_device *pdev = to_mmp_pdma_dev(pchan->chan.device);
drivers/dma/mmp_pdma.c
444
struct mmp_pdma_device *pdev = to_mmp_pdma_dev(pchan->chan.device);
drivers/dma/mmp_pdma.c
465
static void start_pending_queue(struct mmp_pdma_chan *chan)
drivers/dma/mmp_pdma.c
468
struct mmp_pdma_device *pdev = to_mmp_pdma_dev(chan->chan.device);
drivers/dma/mmp_pdma.c
471
if (!chan->idle) {
drivers/dma/mmp_pdma.c
472
dev_dbg(chan->dev, "DMA controller still busy\n");
drivers/dma/mmp_pdma.c
476
if (list_empty(&chan->chain_pending)) {
drivers/dma/mmp_pdma.c
478
mmp_pdma_free_phy(chan);
drivers/dma/mmp_pdma.c
479
dev_dbg(chan->dev, "no pending list\n");
drivers/dma/mmp_pdma.c
483
if (!chan->phy) {
drivers/dma/mmp_pdma.c
484
chan->phy = lookup_phy(chan);
drivers/dma/mmp_pdma.c
485
if (!chan->phy) {
drivers/dma/mmp_pdma.c
486
dev_dbg(chan->dev, "no free dma channel\n");
drivers/dma/mmp_pdma.c
495
desc = list_first_entry(&chan->chain_pending,
drivers/dma/mmp_pdma.c
497
list_splice_tail_init(&chan->chain_pending, &chan->chain_running);
drivers/dma/mmp_pdma.c
503
pdev->ops->write_next_addr(chan->phy, desc->async_tx.phys);
drivers/dma/mmp_pdma.c
504
enable_chan(chan->phy);
drivers/dma/mmp_pdma.c
505
chan->idle = false;
drivers/dma/mmp_pdma.c
512
struct mmp_pdma_chan *chan = to_mmp_pdma_chan(tx->chan);
drivers/dma/mmp_pdma.c
518
spin_lock_irqsave(&chan->desc_lock, flags);
drivers/dma/mmp_pdma.c
525
list_splice_tail_init(&desc->tx_list, &chan->chain_pending);
drivers/dma/mmp_pdma.c
527
spin_unlock_irqrestore(&chan->desc_lock, flags);
drivers/dma/mmp_pdma.c
533
mmp_pdma_alloc_descriptor(struct mmp_pdma_chan *chan)
drivers/dma/mmp_pdma.c
538
desc = dma_pool_zalloc(chan->desc_pool, GFP_ATOMIC, &pdesc);
drivers/dma/mmp_pdma.c
540
dev_err(chan->dev, "out of memory for link descriptor\n");
drivers/dma/mmp_pdma.c
545
dma_async_tx_descriptor_init(&desc->async_tx, &chan->chan);
drivers/dma/mmp_pdma.c
563
struct mmp_pdma_chan *chan = to_mmp_pdma_chan(dchan);
drivers/dma/mmp_pdma.c
565
if (chan->desc_pool)
drivers/dma/mmp_pdma.c
568
chan->desc_pool = dma_pool_create(dev_name(&dchan->dev->device),
drivers/dma/mmp_pdma.c
569
chan->dev,
drivers/dma/mmp_pdma.c
573
if (!chan->desc_pool) {
drivers/dma/mmp_pdma.c
574
dev_err(chan->dev, "unable to allocate descriptor pool\n");
drivers/dma/mmp_pdma.c
578
mmp_pdma_free_phy(chan);
drivers/dma/mmp_pdma.c
579
chan->idle = true;
drivers/dma/mmp_pdma.c
580
chan->dev_addr = 0;
drivers/dma/mmp_pdma.c
584
static void mmp_pdma_free_desc_list(struct mmp_pdma_chan *chan,
drivers/dma/mmp_pdma.c
591
dma_pool_free(chan->desc_pool, desc, desc->async_tx.phys);
drivers/dma/mmp_pdma.c
597
struct mmp_pdma_chan *chan = to_mmp_pdma_chan(dchan);
drivers/dma/mmp_pdma.c
600
spin_lock_irqsave(&chan->desc_lock, flags);
drivers/dma/mmp_pdma.c
601
mmp_pdma_free_desc_list(chan, &chan->chain_pending);
drivers/dma/mmp_pdma.c
602
mmp_pdma_free_desc_list(chan, &chan->chain_running);
drivers/dma/mmp_pdma.c
603
spin_unlock_irqrestore(&chan->desc_lock, flags);
drivers/dma/mmp_pdma.c
605
dma_pool_destroy(chan->desc_pool);
drivers/dma/mmp_pdma.c
606
chan->desc_pool = NULL;
drivers/dma/mmp_pdma.c
607
chan->idle = true;
drivers/dma/mmp_pdma.c
608
chan->dev_addr = 0;
drivers/dma/mmp_pdma.c
609
mmp_pdma_free_phy(chan);
drivers/dma/mmp_pdma.c
618
struct mmp_pdma_chan *chan;
drivers/dma/mmp_pdma.c
627
chan = to_mmp_pdma_chan(dchan);
drivers/dma/mmp_pdma.c
628
chan->byte_align = false;
drivers/dma/mmp_pdma.c
630
if (!chan->dir) {
drivers/dma/mmp_pdma.c
631
chan->dir = DMA_MEM_TO_MEM;
drivers/dma/mmp_pdma.c
632
chan->dcmd = DCMD_INCTRGADDR | DCMD_INCSRCADDR;
drivers/dma/mmp_pdma.c
633
chan->dcmd |= DCMD_BURST32;
drivers/dma/mmp_pdma.c
638
new = mmp_pdma_alloc_descriptor(chan);
drivers/dma/mmp_pdma.c
640
dev_err(chan->dev, "no memory for desc\n");
drivers/dma/mmp_pdma.c
646
chan->byte_align = true;
drivers/dma/mmp_pdma.c
648
new->desc.dcmd = chan->dcmd | (DCMD_LENGTH & copy);
drivers/dma/mmp_pdma.c
664
if (chan->dir == DMA_MEM_TO_DEV) {
drivers/dma/mmp_pdma.c
666
} else if (chan->dir == DMA_DEV_TO_MEM) {
drivers/dma/mmp_pdma.c
668
} else if (chan->dir == DMA_MEM_TO_MEM) {
drivers/dma/mmp_pdma.c
684
chan->cyclic_first = NULL;
drivers/dma/mmp_pdma.c
690
mmp_pdma_free_desc_list(chan, &first->tx_list);
drivers/dma/mmp_pdma.c
699
struct mmp_pdma_chan *chan = to_mmp_pdma_chan(dchan);
drivers/dma/mmp_pdma.c
710
chan->byte_align = false;
drivers/dma/mmp_pdma.c
712
mmp_pdma_config_write(dchan, &chan->slave_config, dir);
drivers/dma/mmp_pdma.c
721
chan->byte_align = true;
drivers/dma/mmp_pdma.c
724
new = mmp_pdma_alloc_descriptor(chan);
drivers/dma/mmp_pdma.c
726
dev_err(chan->dev, "no memory for desc\n");
drivers/dma/mmp_pdma.c
730
new->desc.dcmd = chan->dcmd | (DCMD_LENGTH & len);
drivers/dma/mmp_pdma.c
733
new->desc.dtadr = chan->dev_addr;
drivers/dma/mmp_pdma.c
735
new->desc.dsadr = chan->dev_addr;
drivers/dma/mmp_pdma.c
765
chan->dir = dir;
drivers/dma/mmp_pdma.c
766
chan->cyclic_first = NULL;
drivers/dma/mmp_pdma.c
772
mmp_pdma_free_desc_list(chan, &first->tx_list);
drivers/dma/mmp_pdma.c
782
struct mmp_pdma_chan *chan;
drivers/dma/mmp_pdma.c
799
chan = to_mmp_pdma_chan(dchan);
drivers/dma/mmp_pdma.c
800
mmp_pdma_config_write(dchan, &chan->slave_config, direction);
drivers/dma/mmp_pdma.c
805
dma_dst = chan->dev_addr;
drivers/dma/mmp_pdma.c
809
dma_src = chan->dev_addr;
drivers/dma/mmp_pdma.c
812
dev_err(chan->dev, "Unsupported direction for cyclic DMA\n");
drivers/dma/mmp_pdma.c
816
chan->dir = direction;
drivers/dma/mmp_pdma.c
820
new = mmp_pdma_alloc_descriptor(chan);
drivers/dma/mmp_pdma.c
822
dev_err(chan->dev, "no memory for desc\n");
drivers/dma/mmp_pdma.c
826
new->desc.dcmd = (chan->dcmd | DCMD_ENDIRQEN |
drivers/dma/mmp_pdma.c
843
if (chan->dir == DMA_MEM_TO_DEV)
drivers/dma/mmp_pdma.c
857
chan->cyclic_first = first;
drivers/dma/mmp_pdma.c
863
mmp_pdma_free_desc_list(chan, &first->tx_list);
drivers/dma/mmp_pdma.c
871
struct mmp_pdma_chan *chan = to_mmp_pdma_chan(dchan);
drivers/dma/mmp_pdma.c
879
chan->dcmd = DCMD_INCTRGADDR | DCMD_FLOWSRC;
drivers/dma/mmp_pdma.c
884
chan->dcmd = DCMD_INCSRCADDR | DCMD_FLOWTRG;
drivers/dma/mmp_pdma.c
891
chan->dcmd |= DCMD_WIDTH1;
drivers/dma/mmp_pdma.c
893
chan->dcmd |= DCMD_WIDTH2;
drivers/dma/mmp_pdma.c
895
chan->dcmd |= DCMD_WIDTH4;
drivers/dma/mmp_pdma.c
898
chan->dcmd |= DCMD_BURST8;
drivers/dma/mmp_pdma.c
900
chan->dcmd |= DCMD_BURST16;
drivers/dma/mmp_pdma.c
902
chan->dcmd |= DCMD_BURST32;
drivers/dma/mmp_pdma.c
904
chan->dir = direction;
drivers/dma/mmp_pdma.c
905
chan->dev_addr = addr;
drivers/dma/mmp_pdma.c
913
struct mmp_pdma_chan *chan = to_mmp_pdma_chan(dchan);
drivers/dma/mmp_pdma.c
915
memcpy(&chan->slave_config, cfg, sizeof(*cfg));
drivers/dma/mmp_pdma.c
921
struct mmp_pdma_chan *chan = to_mmp_pdma_chan(dchan);
drivers/dma/mmp_pdma.c
927
disable_chan(chan->phy);
drivers/dma/mmp_pdma.c
928
mmp_pdma_free_phy(chan);
drivers/dma/mmp_pdma.c
929
spin_lock_irqsave(&chan->desc_lock, flags);
drivers/dma/mmp_pdma.c
930
mmp_pdma_free_desc_list(chan, &chan->chain_pending);
drivers/dma/mmp_pdma.c
931
mmp_pdma_free_desc_list(chan, &chan->chain_running);
drivers/dma/mmp_pdma.c
932
spin_unlock_irqrestore(&chan->desc_lock, flags);
drivers/dma/mmp_pdma.c
933
chan->idle = true;
drivers/dma/mmp_pdma.c
938
static unsigned int mmp_pdma_residue(struct mmp_pdma_chan *chan,
drivers/dma/mmp_pdma.c
942
struct mmp_pdma_device *pdev = to_mmp_pdma_dev(chan->chan.device);
drivers/dma/mmp_pdma.c
947
bool cyclic = chan->cyclic_first != NULL;
drivers/dma/mmp_pdma.c
953
if (!chan->phy)
drivers/dma/mmp_pdma.c
956
if (chan->dir == DMA_DEV_TO_MEM)
drivers/dma/mmp_pdma.c
957
curr = pdev->ops->read_dst_addr(chan->phy);
drivers/dma/mmp_pdma.c
959
curr = pdev->ops->read_src_addr(chan->phy);
drivers/dma/mmp_pdma.c
961
spin_lock_irqsave(&chan->desc_lock, flags);
drivers/dma/mmp_pdma.c
963
list_for_each_entry(sw, &chan->chain_running, node) {
drivers/dma/mmp_pdma.c
967
if (chan->dir == DMA_DEV_TO_MEM)
drivers/dma/mmp_tdma.c
103
struct dma_chan chan;
drivers/dma/mmp_tdma.c
137
#define to_mmp_tdma_chan(dchan) container_of(dchan, struct mmp_tdma_chan, chan)
drivers/dma/mmp_tdma.c
139
static int mmp_tdma_config_write(struct dma_chan *chan,
drivers/dma/mmp_tdma.c
166
static int mmp_tdma_disable_chan(struct dma_chan *chan)
drivers/dma/mmp_tdma.c
168
struct mmp_tdma_chan *tdmac = to_mmp_tdma_chan(chan);
drivers/dma/mmp_tdma.c
181
static int mmp_tdma_resume_chan(struct dma_chan *chan)
drivers/dma/mmp_tdma.c
183
struct mmp_tdma_chan *tdmac = to_mmp_tdma_chan(chan);
drivers/dma/mmp_tdma.c
192
static int mmp_tdma_pause_chan(struct dma_chan *chan)
drivers/dma/mmp_tdma.c
194
struct mmp_tdma_chan *tdmac = to_mmp_tdma_chan(chan);
drivers/dma/mmp_tdma.c
203
static int mmp_tdma_config_chan(struct dma_chan *chan)
drivers/dma/mmp_tdma.c
205
struct mmp_tdma_chan *tdmac = to_mmp_tdma_chan(chan);
drivers/dma/mmp_tdma.c
208
mmp_tdma_disable_chan(chan);
drivers/dma/mmp_tdma.c
374
struct mmp_tdma_chan *tdmac = to_mmp_tdma_chan(tx->chan);
drivers/dma/mmp_tdma.c
381
static int mmp_tdma_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/mmp_tdma.c
383
struct mmp_tdma_chan *tdmac = to_mmp_tdma_chan(chan);
drivers/dma/mmp_tdma.c
386
dma_async_tx_descriptor_init(&tdmac->desc, chan);
drivers/dma/mmp_tdma.c
398
static void mmp_tdma_free_chan_resources(struct dma_chan *chan)
drivers/dma/mmp_tdma.c
400
struct mmp_tdma_chan *tdmac = to_mmp_tdma_chan(chan);
drivers/dma/mmp_tdma.c
423
struct dma_chan *chan, dma_addr_t dma_addr, size_t buf_len,
drivers/dma/mmp_tdma.c
427
struct mmp_tdma_chan *tdmac = to_mmp_tdma_chan(chan);
drivers/dma/mmp_tdma.c
455
if (mmp_tdma_config_write(chan, direction, &tdmac->slave_config))
drivers/dma/mmp_tdma.c
495
static int mmp_tdma_terminate_all(struct dma_chan *chan)
drivers/dma/mmp_tdma.c
497
struct mmp_tdma_chan *tdmac = to_mmp_tdma_chan(chan);
drivers/dma/mmp_tdma.c
499
mmp_tdma_disable_chan(chan);
drivers/dma/mmp_tdma.c
506
static int mmp_tdma_config(struct dma_chan *chan,
drivers/dma/mmp_tdma.c
509
struct mmp_tdma_chan *tdmac = to_mmp_tdma_chan(chan);
drivers/dma/mmp_tdma.c
516
static int mmp_tdma_config_write(struct dma_chan *chan,
drivers/dma/mmp_tdma.c
520
struct mmp_tdma_chan *tdmac = to_mmp_tdma_chan(chan);
drivers/dma/mmp_tdma.c
533
return mmp_tdma_config_chan(chan);
drivers/dma/mmp_tdma.c
536
static enum dma_status mmp_tdma_tx_status(struct dma_chan *chan,
drivers/dma/mmp_tdma.c
539
struct mmp_tdma_chan *tdmac = to_mmp_tdma_chan(chan);
drivers/dma/mmp_tdma.c
542
dma_set_tx_state(txstate, chan->completed_cookie, chan->cookie,
drivers/dma/mmp_tdma.c
548
static void mmp_tdma_issue_pending(struct dma_chan *chan)
drivers/dma/mmp_tdma.c
550
struct mmp_tdma_chan *tdmac = to_mmp_tdma_chan(chan);
drivers/dma/mmp_tdma.c
579
tdmac->chan.device = &tdev->device;
drivers/dma/mmp_tdma.c
589
list_add_tail(&tdmac->chan.device_node,
drivers/dma/mmp_tdma.c
598
static bool mmp_tdma_filter_fn(struct dma_chan *chan, void *fn_param)
drivers/dma/mmp_tdma.c
602
if (chan->chan_id != param->chan_id)
drivers/dma/moxart-dma.c
157
static struct device *chan2dev(struct dma_chan *chan)
drivers/dma/moxart-dma.c
159
return &chan->dev->device;
drivers/dma/moxart-dma.c
164
return container_of(c, struct moxart_chan, vc.chan);
drivers/dma/moxart-dma.c
178
static int moxart_terminate_all(struct dma_chan *chan)
drivers/dma/moxart-dma.c
180
struct moxart_chan *ch = to_moxart_dma_chan(chan);
drivers/dma/moxart-dma.c
185
dev_dbg(chan2dev(chan), "%s: ch=%p\n", __func__, ch);
drivers/dma/moxart-dma.c
205
static int moxart_slave_config(struct dma_chan *chan,
drivers/dma/moxart-dma.c
208
struct moxart_chan *ch = to_moxart_dma_chan(chan);
drivers/dma/moxart-dma.c
262
struct dma_chan *chan, struct scatterlist *sgl,
drivers/dma/moxart-dma.c
266
struct moxart_chan *ch = to_moxart_dma_chan(chan);
drivers/dma/moxart-dma.c
275
dev_err(chan2dev(chan), "%s: invalid DMA direction\n",
drivers/dma/moxart-dma.c
299
dev_err(chan2dev(chan), "%s: unsupported data width (%u)\n",
drivers/dma/moxart-dma.c
327
struct dma_chan *chan;
drivers/dma/moxart-dma.c
330
chan = dma_get_any_slave_channel(&mdc->dma_slave);
drivers/dma/moxart-dma.c
331
if (!chan)
drivers/dma/moxart-dma.c
334
ch = to_moxart_dma_chan(chan);
drivers/dma/moxart-dma.c
337
return chan;
drivers/dma/moxart-dma.c
340
static int moxart_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/moxart-dma.c
342
struct moxart_chan *ch = to_moxart_dma_chan(chan);
drivers/dma/moxart-dma.c
344
dev_dbg(chan2dev(chan), "%s: allocating channel #%u\n",
drivers/dma/moxart-dma.c
351
static void moxart_free_chan_resources(struct dma_chan *chan)
drivers/dma/moxart-dma.c
353
struct moxart_chan *ch = to_moxart_dma_chan(chan);
drivers/dma/moxart-dma.c
357
dev_dbg(chan2dev(chan), "%s: freeing channel #%u\n",
drivers/dma/moxart-dma.c
382
dev_dbg(chan2dev(&ch->vc.chan), "%s: set %u DMA cycles (len=%u)\n",
drivers/dma/moxart-dma.c
410
static void moxart_dma_start_desc(struct dma_chan *chan)
drivers/dma/moxart-dma.c
412
struct moxart_chan *ch = to_moxart_dma_chan(chan);
drivers/dma/moxart-dma.c
430
static void moxart_issue_pending(struct dma_chan *chan)
drivers/dma/moxart-dma.c
432
struct moxart_chan *ch = to_moxart_dma_chan(chan);
drivers/dma/moxart-dma.c
437
moxart_dma_start_desc(chan);
drivers/dma/moxart-dma.c
463
dev_dbg(chan2dev(&ch->vc.chan), "%s: size=%zu\n", __func__, size);
drivers/dma/moxart-dma.c
468
static enum dma_status moxart_tx_status(struct dma_chan *chan,
drivers/dma/moxart-dma.c
472
struct moxart_chan *ch = to_moxart_dma_chan(chan);
drivers/dma/moxart-dma.c
481
ret = dma_cookie_status(chan, cookie, txstate);
drivers/dma/moxart-dma.c
520
dev_dbg(chan2dev(&ch->vc.chan), "%s\n", __func__);
drivers/dma/moxart-dma.c
528
dev_dbg(chan2dev(&ch->vc.chan), "%s: ch=%p ch->base=%p ctrl=%x\n",
drivers/dma/moxart-dma.c
539
moxart_dma_start_desc(&ch->vc.chan);
drivers/dma/mpc512x_dma.c
1000
mchan->chan.device = dma;
drivers/dma/mpc512x_dma.c
1001
dma_cookie_init(&mchan->chan);
drivers/dma/mpc512x_dma.c
1010
list_add_tail(&mchan->chan.device_node, &dma->channels);
drivers/dma/mpc512x_dma.c
194
struct dma_chan chan;
drivers/dma/mpc512x_dma.c
235
return container_of(c, struct mpc_dma_chan, chan);
drivers/dma/mpc512x_dma.c
256
struct mpc_dma *mdma = dma_chan_to_mpc_dma(&mchan->chan);
drivers/dma/mpc512x_dma.c
260
int cid = mchan->chan.chan_id;
drivers/dma/mpc512x_dma.c
411
mchan->chan.completed_cookie = last_cookie;
drivers/dma/mpc512x_dma.c
462
struct mpc_dma_chan *mchan = dma_chan_to_mpc_dma_chan(txd->chan);
drivers/dma/mpc512x_dma.c
486
static int mpc_dma_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/mpc512x_dma.c
488
struct mpc_dma *mdma = dma_chan_to_mpc_dma(chan);
drivers/dma/mpc512x_dma.c
489
struct mpc_dma_chan *mchan = dma_chan_to_mpc_dma_chan(chan);
drivers/dma/mpc512x_dma.c
513
dma_async_tx_descriptor_init(&mdesc->desc, chan);
drivers/dma/mpc512x_dma.c
538
out_8(&mdma->regs->dmaseei, chan->chan_id);
drivers/dma/mpc512x_dma.c
544
static void mpc_dma_free_chan_resources(struct dma_chan *chan)
drivers/dma/mpc512x_dma.c
546
struct mpc_dma *mdma = dma_chan_to_mpc_dma(chan);
drivers/dma/mpc512x_dma.c
547
struct mpc_dma_chan *mchan = dma_chan_to_mpc_dma_chan(chan);
drivers/dma/mpc512x_dma.c
579
out_8(&mdma->regs->dmaceei, chan->chan_id);
drivers/dma/mpc512x_dma.c
583
static void mpc_dma_issue_pending(struct dma_chan *chan)
drivers/dma/mpc512x_dma.c
593
mpc_dma_tx_status(struct dma_chan *chan, dma_cookie_t cookie,
drivers/dma/mpc512x_dma.c
596
return dma_cookie_status(chan, cookie, txstate);
drivers/dma/mpc512x_dma.c
601
mpc_dma_prep_memcpy(struct dma_chan *chan, dma_addr_t dst, dma_addr_t src,
drivers/dma/mpc512x_dma.c
604
struct mpc_dma *mdma = dma_chan_to_mpc_dma(chan);
drivers/dma/mpc512x_dma.c
605
struct mpc_dma_chan *mchan = dma_chan_to_mpc_dma_chan(chan);
drivers/dma/mpc512x_dma.c
684
mpc_dma_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
drivers/dma/mpc512x_dma.c
688
struct mpc_dma *mdma = dma_chan_to_mpc_dma(chan);
drivers/dma/mpc512x_dma.c
689
struct mpc_dma_chan *mchan = dma_chan_to_mpc_dma_chan(chan);
drivers/dma/mpc512x_dma.c
829
static int mpc_dma_device_config(struct dma_chan *chan,
drivers/dma/mpc512x_dma.c
832
struct mpc_dma_chan *mchan = dma_chan_to_mpc_dma_chan(chan);
drivers/dma/mpc512x_dma.c
833
struct mpc_dma *mdma = dma_chan_to_mpc_dma(&mchan->chan);
drivers/dma/mpc512x_dma.c
879
static int mpc_dma_device_terminate_all(struct dma_chan *chan)
drivers/dma/mpc512x_dma.c
881
struct mpc_dma_chan *mchan = dma_chan_to_mpc_dma_chan(chan);
drivers/dma/mpc512x_dma.c
882
struct mpc_dma *mdma = dma_chan_to_mpc_dma(chan);
drivers/dma/mpc512x_dma.c
888
out_8(&mdma->regs->dmacerq, chan->chan_id);
drivers/dma/mv_xor.c
100
return readl_relaxed(XOR_CURR_DESC(chan));
drivers/dma/mv_xor.c
1011
struct dma_chan *chan, *_chan;
drivers/dma/mv_xor.c
1023
list_for_each_entry_safe(chan, _chan, &mv_chan->dmadev.channels,
drivers/dma/mv_xor.c
1025
list_del(&chan->device_node);
drivers/dma/mv_xor.c
103
static void mv_chan_set_next_descriptor(struct mv_xor_chan *chan,
drivers/dma/mv_xor.c
106
writel_relaxed(next_desc_addr, XOR_NEXT_DESC(chan));
drivers/dma/mv_xor.c
109
static void mv_chan_unmask_interrupts(struct mv_xor_chan *chan)
drivers/dma/mv_xor.c
111
u32 val = readl_relaxed(XOR_INTR_MASK(chan));
drivers/dma/mv_xor.c
112
val |= XOR_INTR_MASK_VALUE << (chan->idx * 16);
drivers/dma/mv_xor.c
113
writel_relaxed(val, XOR_INTR_MASK(chan));
drivers/dma/mv_xor.c
116
static u32 mv_chan_get_intr_cause(struct mv_xor_chan *chan)
drivers/dma/mv_xor.c
118
u32 intr_cause = readl_relaxed(XOR_INTR_CAUSE(chan));
drivers/dma/mv_xor.c
119
intr_cause = (intr_cause >> (chan->idx * 16)) & 0xFFFF;
drivers/dma/mv_xor.c
123
static void mv_chan_clear_eoc_cause(struct mv_xor_chan *chan)
drivers/dma/mv_xor.c
128
val = ~(val << (chan->idx * 16));
drivers/dma/mv_xor.c
129
dev_dbg(mv_chan_to_devp(chan), "%s, val 0x%08x\n", __func__, val);
drivers/dma/mv_xor.c
130
writel_relaxed(val, XOR_INTR_CAUSE(chan));
drivers/dma/mv_xor.c
133
static void mv_chan_clear_err_status(struct mv_xor_chan *chan)
drivers/dma/mv_xor.c
135
u32 val = 0xFFFF0000 >> (chan->idx * 16);
drivers/dma/mv_xor.c
136
writel_relaxed(val, XOR_INTR_CAUSE(chan));
drivers/dma/mv_xor.c
139
static void mv_chan_set_mode(struct mv_xor_chan *chan,
drivers/dma/mv_xor.c
1392
struct mv_xor_chan *chan;
drivers/dma/mv_xor.c
1410
chan = mv_xor_channel_add(xordev, pdev, i,
drivers/dma/mv_xor.c
1412
if (IS_ERR(chan)) {
drivers/dma/mv_xor.c
1413
ret = PTR_ERR(chan);
drivers/dma/mv_xor.c
1418
xordev->channels[i] = chan;
drivers/dma/mv_xor.c
142
u32 config = readl_relaxed(XOR_CONFIG(chan));
drivers/dma/mv_xor.c
1424
struct mv_xor_chan *chan;
drivers/dma/mv_xor.c
1434
chan = mv_xor_channel_add(xordev, pdev, i,
drivers/dma/mv_xor.c
1436
if (IS_ERR(chan)) {
drivers/dma/mv_xor.c
1437
ret = PTR_ERR(chan);
drivers/dma/mv_xor.c
1441
xordev->channels[i] = chan;
drivers/dma/mv_xor.c
153
writel_relaxed(config, XOR_CONFIG(chan));
drivers/dma/mv_xor.c
156
static void mv_chan_activate(struct mv_xor_chan *chan)
drivers/dma/mv_xor.c
158
dev_dbg(mv_chan_to_devp(chan), " activate chan.\n");
drivers/dma/mv_xor.c
161
writel(BIT(0), XOR_ACTIVATION(chan));
drivers/dma/mv_xor.c
164
static char mv_chan_is_busy(struct mv_xor_chan *chan)
drivers/dma/mv_xor.c
166
u32 state = readl_relaxed(XOR_ACTIVATION(chan));
drivers/dma/mv_xor.c
341
struct mv_xor_chan *chan = from_tasklet(chan, t, irq_tasklet);
drivers/dma/mv_xor.c
343
spin_lock(&chan->lock);
drivers/dma/mv_xor.c
344
mv_chan_slot_cleanup(chan);
drivers/dma/mv_xor.c
345
spin_unlock(&chan->lock);
drivers/dma/mv_xor.c
37
static void mv_xor_issue_pending(struct dma_chan *chan);
drivers/dma/mv_xor.c
385
struct mv_xor_chan *mv_chan = to_mv_xor_chan(tx->chan);
drivers/dma/mv_xor.c
39
#define to_mv_xor_chan(chan) \
drivers/dma/mv_xor.c
40
container_of(chan, struct mv_xor_chan, dmachan)
drivers/dma/mv_xor.c
434
static int mv_xor_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/mv_xor.c
439
struct mv_xor_chan *mv_chan = to_mv_xor_chan(chan);
drivers/dma/mv_xor.c
45
#define mv_chan_to_devp(chan) \
drivers/dma/mv_xor.c
456
dma_async_tx_descriptor_init(&slot->async_tx, chan);
drivers/dma/mv_xor.c
46
((chan)->dmadev.dev)
drivers/dma/mv_xor.c
555
mv_xor_prep_dma_xor(struct dma_chan *chan, dma_addr_t dest, dma_addr_t *src,
drivers/dma/mv_xor.c
558
struct mv_xor_chan *mv_chan = to_mv_xor_chan(chan);
drivers/dma/mv_xor.c
599
mv_xor_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dest, dma_addr_t src,
drivers/dma/mv_xor.c
606
return mv_xor_prep_dma_xor(chan, dest, &src, 1, len, flags);
drivers/dma/mv_xor.c
610
mv_xor_prep_dma_interrupt(struct dma_chan *chan, unsigned long flags)
drivers/dma/mv_xor.c
612
struct mv_xor_chan *mv_chan = to_mv_xor_chan(chan);
drivers/dma/mv_xor.c
624
return mv_xor_prep_dma_xor(chan, dest, &src, 1, len, flags);
drivers/dma/mv_xor.c
627
static void mv_xor_free_chan_resources(struct dma_chan *chan)
drivers/dma/mv_xor.c
629
struct mv_xor_chan *mv_chan = to_mv_xor_chan(chan);
drivers/dma/mv_xor.c
674
static enum dma_status mv_xor_status(struct dma_chan *chan,
drivers/dma/mv_xor.c
678
struct mv_xor_chan *mv_chan = to_mv_xor_chan(chan);
drivers/dma/mv_xor.c
681
ret = dma_cookie_status(chan, cookie, txstate);
drivers/dma/mv_xor.c
689
return dma_cookie_status(chan, cookie, txstate);
drivers/dma/mv_xor.c
692
static void mv_chan_dump_regs(struct mv_xor_chan *chan)
drivers/dma/mv_xor.c
696
val = readl_relaxed(XOR_CONFIG(chan));
drivers/dma/mv_xor.c
697
dev_err(mv_chan_to_devp(chan), "config 0x%08x\n", val);
drivers/dma/mv_xor.c
699
val = readl_relaxed(XOR_ACTIVATION(chan));
drivers/dma/mv_xor.c
700
dev_err(mv_chan_to_devp(chan), "activation 0x%08x\n", val);
drivers/dma/mv_xor.c
702
val = readl_relaxed(XOR_INTR_CAUSE(chan));
drivers/dma/mv_xor.c
703
dev_err(mv_chan_to_devp(chan), "intr cause 0x%08x\n", val);
drivers/dma/mv_xor.c
705
val = readl_relaxed(XOR_INTR_MASK(chan));
drivers/dma/mv_xor.c
706
dev_err(mv_chan_to_devp(chan), "intr mask 0x%08x\n", val);
drivers/dma/mv_xor.c
708
val = readl_relaxed(XOR_ERROR_CAUSE(chan));
drivers/dma/mv_xor.c
709
dev_err(mv_chan_to_devp(chan), "error cause 0x%08x\n", val);
drivers/dma/mv_xor.c
711
val = readl_relaxed(XOR_ERROR_ADDR(chan));
drivers/dma/mv_xor.c
712
dev_err(mv_chan_to_devp(chan), "error addr 0x%08x\n", val);
drivers/dma/mv_xor.c
715
static void mv_chan_err_interrupt_handler(struct mv_xor_chan *chan,
drivers/dma/mv_xor.c
719
dev_dbg(mv_chan_to_devp(chan), "ignoring address decode error\n");
drivers/dma/mv_xor.c
723
dev_err(mv_chan_to_devp(chan), "error on chan %d. intr cause 0x%08x\n",
drivers/dma/mv_xor.c
724
chan->idx, intr_cause);
drivers/dma/mv_xor.c
726
mv_chan_dump_regs(chan);
drivers/dma/mv_xor.c
732
struct mv_xor_chan *chan = data;
drivers/dma/mv_xor.c
733
u32 intr_cause = mv_chan_get_intr_cause(chan);
drivers/dma/mv_xor.c
735
dev_dbg(mv_chan_to_devp(chan), "intr cause %x\n", intr_cause);
drivers/dma/mv_xor.c
738
mv_chan_err_interrupt_handler(chan, intr_cause);
drivers/dma/mv_xor.c
740
tasklet_schedule(&chan->irq_tasklet);
drivers/dma/mv_xor.c
742
mv_chan_clear_eoc_cause(chan);
drivers/dma/mv_xor.c
747
static void mv_xor_issue_pending(struct dma_chan *chan)
drivers/dma/mv_xor.c
749
struct mv_xor_chan *mv_chan = to_mv_xor_chan(chan);
drivers/dma/mv_xor.c
98
static u32 mv_chan_get_current_desc(struct mv_xor_chan *chan)
drivers/dma/mv_xor.h
36
#define XOR_CURR_DESC(chan) (chan->mmr_high_base + 0x10 + (chan->idx * 4))
drivers/dma/mv_xor.h
37
#define XOR_NEXT_DESC(chan) (chan->mmr_high_base + 0x00 + (chan->idx * 4))
drivers/dma/mv_xor.h
38
#define XOR_BYTE_COUNT(chan) (chan->mmr_high_base + 0x20 + (chan->idx * 4))
drivers/dma/mv_xor.h
39
#define XOR_DEST_POINTER(chan) (chan->mmr_high_base + 0xB0 + (chan->idx * 4))
drivers/dma/mv_xor.h
40
#define XOR_BLOCK_SIZE(chan) (chan->mmr_high_base + 0xC0 + (chan->idx * 4))
drivers/dma/mv_xor.h
41
#define XOR_INIT_VALUE_LOW(chan) (chan->mmr_high_base + 0xE0)
drivers/dma/mv_xor.h
42
#define XOR_INIT_VALUE_HIGH(chan) (chan->mmr_high_base + 0xE4)
drivers/dma/mv_xor.h
44
#define XOR_CONFIG(chan) (chan->mmr_base + 0x10 + (chan->idx * 4))
drivers/dma/mv_xor.h
45
#define XOR_ACTIVATION(chan) (chan->mmr_base + 0x20 + (chan->idx * 4))
drivers/dma/mv_xor.h
46
#define XOR_INTR_CAUSE(chan) (chan->mmr_base + 0x30)
drivers/dma/mv_xor.h
47
#define XOR_INTR_MASK(chan) (chan->mmr_base + 0x40)
drivers/dma/mv_xor.h
48
#define XOR_ERROR_CAUSE(chan) (chan->mmr_base + 0x50)
drivers/dma/mv_xor.h
49
#define XOR_ERROR_ADDR(chan) (chan->mmr_base + 0x60)
drivers/dma/mv_xor.h
72
#define WINDOW_BAR_ENABLE(chan) (0x40 + ((chan) << 2))
drivers/dma/mv_xor.h
73
#define WINDOW_OVERRIDE_CTRL(chan) (0xA0 + ((chan) << 2))
drivers/dma/mv_xor_v2.c
310
container_of(tx->chan, struct mv_xor_v2_device, dmachan);
drivers/dma/mv_xor_v2.c
378
mv_xor_v2_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dest,
drivers/dma/mv_xor_v2.c
385
xor_dev = container_of(chan, struct mv_xor_v2_device, dmachan);
drivers/dma/mv_xor_v2.c
431
mv_xor_v2_prep_dma_xor(struct dma_chan *chan, dma_addr_t dest, dma_addr_t *src,
drivers/dma/mv_xor_v2.c
437
container_of(chan, struct mv_xor_v2_device, dmachan);
drivers/dma/mv_xor_v2.c
490
mv_xor_v2_prep_dma_interrupt(struct dma_chan *chan, unsigned long flags)
drivers/dma/mv_xor_v2.c
495
container_of(chan, struct mv_xor_v2_device, dmachan);
drivers/dma/mv_xor_v2.c
519
static void mv_xor_v2_issue_pending(struct dma_chan *chan)
drivers/dma/mv_xor_v2.c
522
container_of(chan, struct mv_xor_v2_device, dmachan);
drivers/dma/mxs-dma.c
110
struct dma_chan chan;
drivers/dma/mxs-dma.c
178
static struct mxs_dma_chan *to_mxs_dma_chan(struct dma_chan *chan)
drivers/dma/mxs-dma.c
180
return container_of(chan, struct mxs_dma_chan, chan);
drivers/dma/mxs-dma.c
183
static void mxs_dma_reset_chan(struct dma_chan *chan)
drivers/dma/mxs-dma.c
185
struct mxs_dma_chan *mxs_chan = to_mxs_dma_chan(chan);
drivers/dma/mxs-dma.c
187
int chan_id = mxs_chan->chan.chan_id;
drivers/dma/mxs-dma.c
232
static void mxs_dma_enable_chan(struct dma_chan *chan)
drivers/dma/mxs-dma.c
234
struct mxs_dma_chan *mxs_chan = to_mxs_dma_chan(chan);
drivers/dma/mxs-dma.c
236
int chan_id = mxs_chan->chan.chan_id;
drivers/dma/mxs-dma.c
255
static void mxs_dma_disable_chan(struct dma_chan *chan)
drivers/dma/mxs-dma.c
257
struct mxs_dma_chan *mxs_chan = to_mxs_dma_chan(chan);
drivers/dma/mxs-dma.c
262
static int mxs_dma_pause_chan(struct dma_chan *chan)
drivers/dma/mxs-dma.c
264
struct mxs_dma_chan *mxs_chan = to_mxs_dma_chan(chan);
drivers/dma/mxs-dma.c
266
int chan_id = mxs_chan->chan.chan_id;
drivers/dma/mxs-dma.c
280
static int mxs_dma_resume_chan(struct dma_chan *chan)
drivers/dma/mxs-dma.c
282
struct mxs_dma_chan *mxs_chan = to_mxs_dma_chan(chan);
drivers/dma/mxs-dma.c
284
int chan_id = mxs_chan->chan.chan_id;
drivers/dma/mxs-dma.c
327
int chan = mxs_dma_irq_to_chan(mxs_dma, irq);
drivers/dma/mxs-dma.c
329
if (chan < 0)
drivers/dma/mxs-dma.c
334
completed = (completed >> chan) & 0x1;
drivers/dma/mxs-dma.c
337
writel((1 << chan),
drivers/dma/mxs-dma.c
342
err &= (1 << (MXS_DMA_CHANNELS + chan)) | (1 << chan);
drivers/dma/mxs-dma.c
349
err = (err >> (MXS_DMA_CHANNELS + chan)) + (err >> chan);
drivers/dma/mxs-dma.c
352
writel((1 << chan),
drivers/dma/mxs-dma.c
364
mxs_chan = &mxs_dma->mxs_chans[chan];
drivers/dma/mxs-dma.c
369
chan);
drivers/dma/mxs-dma.c
371
mxs_dma_reset_chan(&mxs_chan->chan);
drivers/dma/mxs-dma.c
377
HW_APBHX_CHn_SEMA(mxs_dma, chan));
drivers/dma/mxs-dma.c
395
static int mxs_dma_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/mxs-dma.c
397
struct mxs_dma_chan *mxs_chan = to_mxs_dma_chan(chan);
drivers/dma/mxs-dma.c
418
mxs_dma_reset_chan(chan);
drivers/dma/mxs-dma.c
420
dma_async_tx_descriptor_init(&mxs_chan->desc, chan);
drivers/dma/mxs-dma.c
437
static void mxs_dma_free_chan_resources(struct dma_chan *chan)
drivers/dma/mxs-dma.c
439
struct mxs_dma_chan *mxs_chan = to_mxs_dma_chan(chan);
drivers/dma/mxs-dma.c
442
mxs_dma_disable_chan(chan);
drivers/dma/mxs-dma.c
475
struct dma_chan *chan, struct scatterlist *sgl,
drivers/dma/mxs-dma.c
479
struct mxs_dma_chan *mxs_chan = to_mxs_dma_chan(chan);
drivers/dma/mxs-dma.c
574
struct dma_chan *chan, dma_addr_t dma_addr, size_t buf_len,
drivers/dma/mxs-dma.c
578
struct mxs_dma_chan *mxs_chan = to_mxs_dma_chan(chan);
drivers/dma/mxs-dma.c
638
static int mxs_dma_terminate_all(struct dma_chan *chan)
drivers/dma/mxs-dma.c
640
mxs_dma_reset_chan(chan);
drivers/dma/mxs-dma.c
641
mxs_dma_disable_chan(chan);
drivers/dma/mxs-dma.c
646
static enum dma_status mxs_dma_tx_status(struct dma_chan *chan,
drivers/dma/mxs-dma.c
649
struct mxs_dma_chan *mxs_chan = to_mxs_dma_chan(chan);
drivers/dma/mxs-dma.c
662
HW_APBHX_CHn_BAR(mxs_dma, chan->chan_id));
drivers/dma/mxs-dma.c
666
dma_set_tx_state(txstate, chan->completed_cookie, chan->cookie,
drivers/dma/mxs-dma.c
705
static bool mxs_dma_filter_fn(struct dma_chan *chan, void *fn_param)
drivers/dma/mxs-dma.c
708
struct mxs_dma_chan *mxs_chan = to_mxs_dma_chan(chan);
drivers/dma/mxs-dma.c
712
if (chan->chan_id != param->chan_id)
drivers/dma/mxs-dma.c
781
mxs_chan->chan.device = &mxs_dma->dma_device;
drivers/dma/mxs-dma.c
782
dma_cookie_init(&mxs_chan->chan);
drivers/dma/mxs-dma.c
788
list_add_tail(&mxs_chan->chan.device_node,
drivers/dma/nbpfaxi.c
1005
struct nbpf_channel *chan = nbpf_to_chan(dchan);
drivers/dma/nbpfaxi.c
1021
return nbpf_prep_sg(chan, &src_sg, &dst_sg, 1,
drivers/dma/nbpfaxi.c
1029
struct nbpf_channel *chan = nbpf_to_chan(dchan);
drivers/dma/nbpfaxi.c
1038
sg_dma_address(&slave_sg) = chan->slave_dst_addr;
drivers/dma/nbpfaxi.c
1039
return nbpf_prep_sg(chan, sgl, &slave_sg, sg_len,
drivers/dma/nbpfaxi.c
1043
sg_dma_address(&slave_sg) = chan->slave_src_addr;
drivers/dma/nbpfaxi.c
1044
return nbpf_prep_sg(chan, &slave_sg, sgl, sg_len,
drivers/dma/nbpfaxi.c
1054
struct nbpf_channel *chan = nbpf_to_chan(dchan);
drivers/dma/nbpfaxi.c
1057
INIT_LIST_HEAD(&chan->free);
drivers/dma/nbpfaxi.c
1058
INIT_LIST_HEAD(&chan->free_links);
drivers/dma/nbpfaxi.c
1059
INIT_LIST_HEAD(&chan->queued);
drivers/dma/nbpfaxi.c
1060
INIT_LIST_HEAD(&chan->active);
drivers/dma/nbpfaxi.c
1061
INIT_LIST_HEAD(&chan->done);
drivers/dma/nbpfaxi.c
1063
ret = nbpf_desc_page_alloc(chan);
drivers/dma/nbpfaxi.c
1068
chan->terminal);
drivers/dma/nbpfaxi.c
1070
nbpf_chan_configure(chan);
drivers/dma/nbpfaxi.c
1077
struct nbpf_channel *chan = nbpf_to_chan(dchan);
drivers/dma/nbpfaxi.c
1082
nbpf_chan_halt(chan);
drivers/dma/nbpfaxi.c
1083
nbpf_chan_idle(chan);
drivers/dma/nbpfaxi.c
1085
nbpf_chan_prepare_default(chan);
drivers/dma/nbpfaxi.c
1087
list_for_each_entry_safe(dpage, tmp, &chan->desc_page, node) {
drivers/dma/nbpfaxi.c
1105
struct nbpf_channel *chan;
drivers/dma/nbpfaxi.c
1117
chan = nbpf_to_chan(dchan);
drivers/dma/nbpfaxi.c
1119
chan->terminal = dma_spec->args[0];
drivers/dma/nbpfaxi.c
1120
chan->flags = dma_spec->args[1];
drivers/dma/nbpfaxi.c
1122
nbpf_chan_prepare(chan);
drivers/dma/nbpfaxi.c
1123
nbpf_chan_configure(chan);
drivers/dma/nbpfaxi.c
1130
struct nbpf_channel *chan = from_tasklet(chan, t, tasklet);
drivers/dma/nbpfaxi.c
1134
while (!list_empty(&chan->done)) {
drivers/dma/nbpfaxi.c
1137
spin_lock_irq(&chan->lock);
drivers/dma/nbpfaxi.c
1139
list_for_each_entry_safe(desc, tmp, &chan->done, node) {
drivers/dma/nbpfaxi.c
1150
spin_unlock_irq(&chan->lock);
drivers/dma/nbpfaxi.c
1162
spin_unlock_irq(&chan->lock);
drivers/dma/nbpfaxi.c
1183
spin_unlock_irq(&chan->lock);
drivers/dma/nbpfaxi.c
1194
struct nbpf_channel *chan = dev;
drivers/dma/nbpfaxi.c
1195
bool done = nbpf_status_get(chan);
drivers/dma/nbpfaxi.c
1203
nbpf_status_ack(chan);
drivers/dma/nbpfaxi.c
1205
dev_dbg(&chan->dma_chan.dev->device, "%s()\n", __func__);
drivers/dma/nbpfaxi.c
1207
spin_lock(&chan->lock);
drivers/dma/nbpfaxi.c
1208
desc = chan->running;
drivers/dma/nbpfaxi.c
1217
list_move_tail(&desc->node, &chan->done);
drivers/dma/nbpfaxi.c
1218
chan->running = NULL;
drivers/dma/nbpfaxi.c
1220
if (!list_empty(&chan->active)) {
drivers/dma/nbpfaxi.c
1221
desc = list_first_entry(&chan->active,
drivers/dma/nbpfaxi.c
1224
chan->running = desc;
drivers/dma/nbpfaxi.c
1228
spin_unlock(&chan->lock);
drivers/dma/nbpfaxi.c
1231
tasklet_schedule(&chan->tasklet);
drivers/dma/nbpfaxi.c
1247
struct nbpf_channel *chan = nbpf_error_get_channel(nbpf, error);
drivers/dma/nbpfaxi.c
1249
nbpf_error_clear(chan);
drivers/dma/nbpfaxi.c
1250
nbpf_chan_idle(chan);
drivers/dma/nbpfaxi.c
1260
struct nbpf_channel *chan = nbpf->chan + n;
drivers/dma/nbpfaxi.c
1263
chan->nbpf = nbpf;
drivers/dma/nbpfaxi.c
1264
chan->base = nbpf->base + NBPF_REG_CHAN_OFFSET + NBPF_REG_CHAN_SIZE * n;
drivers/dma/nbpfaxi.c
1265
INIT_LIST_HEAD(&chan->desc_page);
drivers/dma/nbpfaxi.c
1266
spin_lock_init(&chan->lock);
drivers/dma/nbpfaxi.c
1267
chan->dma_chan.device = dma_dev;
drivers/dma/nbpfaxi.c
1268
dma_cookie_init(&chan->dma_chan);
drivers/dma/nbpfaxi.c
1269
nbpf_chan_prepare_default(chan);
drivers/dma/nbpfaxi.c
1271
dev_dbg(dma_dev->dev, "%s(): channel %d: -> %p\n", __func__, n, chan->base);
drivers/dma/nbpfaxi.c
1273
snprintf(chan->name, sizeof(chan->name), "nbpf %d", n);
drivers/dma/nbpfaxi.c
1275
tasklet_setup(&chan->tasklet, nbpf_chan_tasklet);
drivers/dma/nbpfaxi.c
1276
ret = devm_request_irq(dma_dev->dev, chan->irq,
drivers/dma/nbpfaxi.c
1278
chan->name, chan);
drivers/dma/nbpfaxi.c
1283
list_add_tail(&chan->dma_chan.device_node,
drivers/dma/nbpfaxi.c
1324
nbpf = devm_kzalloc(dev, struct_size(nbpf, chan, num_channels),
drivers/dma/nbpfaxi.c
1368
nbpf->chan[i].irq = irqbuf[0];
drivers/dma/nbpfaxi.c
1375
struct nbpf_channel *chan;
drivers/dma/nbpfaxi.c
1377
for (i = 0, chan = nbpf->chan; i < num_channels;
drivers/dma/nbpfaxi.c
1378
i++, chan++) {
drivers/dma/nbpfaxi.c
1384
chan->irq = irqbuf[i];
drivers/dma/nbpfaxi.c
1394
nbpf->chan[i].irq = irq;
drivers/dma/nbpfaxi.c
1477
struct nbpf_channel *chan = nbpf->chan + i;
drivers/dma/nbpfaxi.c
1479
devm_free_irq(&pdev->dev, chan->irq, chan);
drivers/dma/nbpfaxi.c
1481
tasklet_kill(&chan->tasklet);
drivers/dma/nbpfaxi.c
154
struct nbpf_channel *chan;
drivers/dma/nbpfaxi.c
236
struct nbpf_channel chan[];
drivers/dma/nbpfaxi.c
304
static inline u32 nbpf_chan_read(struct nbpf_channel *chan,
drivers/dma/nbpfaxi.c
307
u32 data = ioread32(chan->base + offset);
drivers/dma/nbpfaxi.c
308
dev_dbg(chan->dma_chan.device->dev, "%s(0x%p + 0x%x) = 0x%x\n",
drivers/dma/nbpfaxi.c
309
__func__, chan->base, offset, data);
drivers/dma/nbpfaxi.c
313
static inline void nbpf_chan_write(struct nbpf_channel *chan,
drivers/dma/nbpfaxi.c
316
iowrite32(data, chan->base + offset);
drivers/dma/nbpfaxi.c
317
dev_dbg(chan->dma_chan.device->dev, "%s(0x%p + 0x%x) = 0x%x\n",
drivers/dma/nbpfaxi.c
318
__func__, chan->base, offset, data);
drivers/dma/nbpfaxi.c
338
static void nbpf_chan_halt(struct nbpf_channel *chan)
drivers/dma/nbpfaxi.c
340
nbpf_chan_write(chan, NBPF_CHAN_CTRL, NBPF_CHAN_CTRL_CLREN);
drivers/dma/nbpfaxi.c
343
static bool nbpf_status_get(struct nbpf_channel *chan)
drivers/dma/nbpfaxi.c
345
u32 status = nbpf_read(chan->nbpf, NBPF_DSTAT_END);
drivers/dma/nbpfaxi.c
347
return status & BIT(chan - chan->nbpf->chan);
drivers/dma/nbpfaxi.c
350
static void nbpf_status_ack(struct nbpf_channel *chan)
drivers/dma/nbpfaxi.c
352
nbpf_chan_write(chan, NBPF_CHAN_CTRL, NBPF_CHAN_CTRL_CLREND);
drivers/dma/nbpfaxi.c
362
return nbpf->chan + __ffs(error);
drivers/dma/nbpfaxi.c
365
static void nbpf_error_clear(struct nbpf_channel *chan)
drivers/dma/nbpfaxi.c
371
nbpf_chan_halt(chan);
drivers/dma/nbpfaxi.c
374
status = nbpf_chan_read(chan, NBPF_CHAN_STAT);
drivers/dma/nbpfaxi.c
381
dev_err(chan->dma_chan.device->dev,
drivers/dma/nbpfaxi.c
384
nbpf_chan_write(chan, NBPF_CHAN_CTRL, NBPF_CHAN_CTRL_SWRST);
drivers/dma/nbpfaxi.c
389
struct nbpf_channel *chan = desc->chan;
drivers/dma/nbpfaxi.c
392
nbpf_chan_write(chan, NBPF_CHAN_NXLA, (u32)ldesc->hwdesc_dma_addr);
drivers/dma/nbpfaxi.c
393
nbpf_chan_write(chan, NBPF_CHAN_CTRL, NBPF_CHAN_CTRL_SETEN | NBPF_CHAN_CTRL_CLRSUS);
drivers/dma/nbpfaxi.c
394
chan->paused = false;
drivers/dma/nbpfaxi.c
398
nbpf_chan_write(chan, NBPF_CHAN_CTRL, NBPF_CHAN_CTRL_STG);
drivers/dma/nbpfaxi.c
400
dev_dbg(chan->nbpf->dma_dev.dev, "%s(): next 0x%x, cur 0x%x\n", __func__,
drivers/dma/nbpfaxi.c
401
nbpf_chan_read(chan, NBPF_CHAN_NXLA), nbpf_chan_read(chan, NBPF_CHAN_CRLA));
drivers/dma/nbpfaxi.c
406
static void nbpf_chan_prepare(struct nbpf_channel *chan)
drivers/dma/nbpfaxi.c
408
chan->dmarq_cfg = (chan->flags & NBPF_SLAVE_RQ_HIGH ? NBPF_CHAN_CFG_HIEN : 0) |
drivers/dma/nbpfaxi.c
409
(chan->flags & NBPF_SLAVE_RQ_LOW ? NBPF_CHAN_CFG_LOEN : 0) |
drivers/dma/nbpfaxi.c
410
(chan->flags & NBPF_SLAVE_RQ_LEVEL ?
drivers/dma/nbpfaxi.c
412
chan->terminal;
drivers/dma/nbpfaxi.c
415
static void nbpf_chan_prepare_default(struct nbpf_channel *chan)
drivers/dma/nbpfaxi.c
418
chan->dmarq_cfg = NBPF_CHAN_CFG_AM & 0x400;
drivers/dma/nbpfaxi.c
419
chan->terminal = 0;
drivers/dma/nbpfaxi.c
420
chan->flags = 0;
drivers/dma/nbpfaxi.c
423
static void nbpf_chan_configure(struct nbpf_channel *chan)
drivers/dma/nbpfaxi.c
430
nbpf_chan_write(chan, NBPF_CHAN_CFG, NBPF_CHAN_CFG_DMS | chan->dmarq_cfg);
drivers/dma/nbpfaxi.c
511
struct nbpf_channel *chan = desc->chan;
drivers/dma/nbpfaxi.c
512
struct device *dev = chan->dma_chan.device->dev;
drivers/dma/nbpfaxi.c
539
mem_xfer = nbpf_xfer_ds(chan->nbpf, size, direction);
drivers/dma/nbpfaxi.c
543
can_burst = chan->slave_src_width >= 3;
drivers/dma/nbpfaxi.c
545
chan->slave_src_burst : chan->slave_src_width);
drivers/dma/nbpfaxi.c
550
if (mem_xfer > chan->slave_src_burst && !can_burst)
drivers/dma/nbpfaxi.c
551
mem_xfer = chan->slave_src_burst;
drivers/dma/nbpfaxi.c
559
slave_xfer = min(mem_xfer, chan->slave_dst_width >= 3 ?
drivers/dma/nbpfaxi.c
560
chan->slave_dst_burst : chan->slave_dst_width);
drivers/dma/nbpfaxi.c
575
hwdesc->config |= chan->dmarq_cfg | (last ? 0 : NBPF_CHAN_CFG_DEM) |
drivers/dma/nbpfaxi.c
588
static size_t nbpf_bytes_left(struct nbpf_channel *chan)
drivers/dma/nbpfaxi.c
590
return nbpf_chan_read(chan, NBPF_CHAN_CUR_TR_BYTE);
drivers/dma/nbpfaxi.c
603
struct nbpf_channel *chan = nbpf_to_chan(dchan);
drivers/dma/nbpfaxi.c
608
spin_lock_irqsave(&chan->lock, flags);
drivers/dma/nbpfaxi.c
609
if (list_empty(&chan->queued))
drivers/dma/nbpfaxi.c
612
list_splice_tail_init(&chan->queued, &chan->active);
drivers/dma/nbpfaxi.c
614
if (!chan->running) {
drivers/dma/nbpfaxi.c
615
struct nbpf_desc *desc = list_first_entry(&chan->active,
drivers/dma/nbpfaxi.c
618
chan->running = desc;
drivers/dma/nbpfaxi.c
622
spin_unlock_irqrestore(&chan->lock, flags);
drivers/dma/nbpfaxi.c
628
struct nbpf_channel *chan = nbpf_to_chan(dchan);
drivers/dma/nbpfaxi.c
635
spin_lock_irqsave(&chan->lock, flags);
drivers/dma/nbpfaxi.c
636
running = chan->running ? chan->running->async_tx.cookie : -EINVAL;
drivers/dma/nbpfaxi.c
639
state->residue = nbpf_bytes_left(chan);
drivers/dma/nbpfaxi.c
646
list_for_each_entry(desc, &chan->active, node)
drivers/dma/nbpfaxi.c
653
list_for_each_entry(desc, &chan->queued, node)
drivers/dma/nbpfaxi.c
663
spin_unlock_irqrestore(&chan->lock, flags);
drivers/dma/nbpfaxi.c
666
if (chan->paused)
drivers/dma/nbpfaxi.c
675
struct nbpf_channel *chan = desc->chan;
drivers/dma/nbpfaxi.c
679
spin_lock_irqsave(&chan->lock, flags);
drivers/dma/nbpfaxi.c
681
list_add_tail(&desc->node, &chan->queued);
drivers/dma/nbpfaxi.c
682
spin_unlock_irqrestore(&chan->lock, flags);
drivers/dma/nbpfaxi.c
684
dev_dbg(chan->dma_chan.device->dev, "Entry %s(%d)\n", __func__, cookie);
drivers/dma/nbpfaxi.c
689
static int nbpf_desc_page_alloc(struct nbpf_channel *chan)
drivers/dma/nbpfaxi.c
691
struct dma_chan *dchan = &chan->dma_chan;
drivers/dma/nbpfaxi.c
727
desc->chan = chan;
drivers/dma/nbpfaxi.c
736
spin_lock_irq(&chan->lock);
drivers/dma/nbpfaxi.c
737
list_splice_tail(&lhead, &chan->free_links);
drivers/dma/nbpfaxi.c
738
list_splice_tail(&head, &chan->free);
drivers/dma/nbpfaxi.c
739
list_add(&dpage->node, &chan->desc_page);
drivers/dma/nbpfaxi.c
740
spin_unlock_irq(&chan->lock);
drivers/dma/nbpfaxi.c
757
struct nbpf_channel *chan = desc->chan;
drivers/dma/nbpfaxi.c
761
spin_lock_irqsave(&chan->lock, flags);
drivers/dma/nbpfaxi.c
763
list_move(&ldesc->node, &chan->free_links);
drivers/dma/nbpfaxi.c
765
list_add(&desc->node, &chan->free);
drivers/dma/nbpfaxi.c
766
spin_unlock_irqrestore(&chan->lock, flags);
drivers/dma/nbpfaxi.c
769
static void nbpf_scan_acked(struct nbpf_channel *chan)
drivers/dma/nbpfaxi.c
775
spin_lock_irqsave(&chan->lock, flags);
drivers/dma/nbpfaxi.c
776
list_for_each_entry_safe(desc, tmp, &chan->done, node)
drivers/dma/nbpfaxi.c
781
spin_unlock_irqrestore(&chan->lock, flags);
drivers/dma/nbpfaxi.c
795
static struct nbpf_desc *nbpf_desc_get(struct nbpf_channel *chan, size_t len)
drivers/dma/nbpfaxi.c
800
nbpf_scan_acked(chan);
drivers/dma/nbpfaxi.c
802
spin_lock_irq(&chan->lock);
drivers/dma/nbpfaxi.c
807
if (list_empty(&chan->free)) {
drivers/dma/nbpfaxi.c
809
spin_unlock_irq(&chan->lock);
drivers/dma/nbpfaxi.c
810
ret = nbpf_desc_page_alloc(chan);
drivers/dma/nbpfaxi.c
813
spin_lock_irq(&chan->lock);
drivers/dma/nbpfaxi.c
816
desc = list_first_entry(&chan->free, struct nbpf_desc, node);
drivers/dma/nbpfaxi.c
820
if (list_empty(&chan->free_links)) {
drivers/dma/nbpfaxi.c
822
spin_unlock_irq(&chan->lock);
drivers/dma/nbpfaxi.c
823
ret = nbpf_desc_page_alloc(chan);
drivers/dma/nbpfaxi.c
828
spin_lock_irq(&chan->lock);
drivers/dma/nbpfaxi.c
832
ldesc = list_first_entry(&chan->free_links,
drivers/dma/nbpfaxi.c
847
spin_unlock_irq(&chan->lock);
drivers/dma/nbpfaxi.c
852
static void nbpf_chan_idle(struct nbpf_channel *chan)
drivers/dma/nbpfaxi.c
858
spin_lock_irqsave(&chan->lock, flags);
drivers/dma/nbpfaxi.c
860
list_splice_init(&chan->done, &head);
drivers/dma/nbpfaxi.c
861
list_splice_init(&chan->active, &head);
drivers/dma/nbpfaxi.c
862
list_splice_init(&chan->queued, &head);
drivers/dma/nbpfaxi.c
864
chan->running = NULL;
drivers/dma/nbpfaxi.c
866
spin_unlock_irqrestore(&chan->lock, flags);
drivers/dma/nbpfaxi.c
869
dev_dbg(chan->nbpf->dma_dev.dev, "%s(): force-free desc %p cookie %d\n",
drivers/dma/nbpfaxi.c
878
struct nbpf_channel *chan = nbpf_to_chan(dchan);
drivers/dma/nbpfaxi.c
882
chan->paused = true;
drivers/dma/nbpfaxi.c
883
nbpf_chan_write(chan, NBPF_CHAN_CTRL, NBPF_CHAN_CTRL_SETSUS);
drivers/dma/nbpfaxi.c
885
nbpf_chan_write(chan, NBPF_CHAN_CTRL, NBPF_CHAN_CTRL_CLREN);
drivers/dma/nbpfaxi.c
892
struct nbpf_channel *chan = nbpf_to_chan(dchan);
drivers/dma/nbpfaxi.c
897
nbpf_chan_halt(chan);
drivers/dma/nbpfaxi.c
898
nbpf_chan_idle(chan);
drivers/dma/nbpfaxi.c
906
struct nbpf_channel *chan = nbpf_to_chan(dchan);
drivers/dma/nbpfaxi.c
916
chan->slave_dst_addr = config->dst_addr;
drivers/dma/nbpfaxi.c
917
chan->slave_dst_width = nbpf_xfer_size(chan->nbpf,
drivers/dma/nbpfaxi.c
919
chan->slave_dst_burst = nbpf_xfer_size(chan->nbpf,
drivers/dma/nbpfaxi.c
922
chan->slave_src_addr = config->src_addr;
drivers/dma/nbpfaxi.c
923
chan->slave_src_width = nbpf_xfer_size(chan->nbpf,
drivers/dma/nbpfaxi.c
925
chan->slave_src_burst = nbpf_xfer_size(chan->nbpf,
drivers/dma/nbpfaxi.c
932
static struct dma_async_tx_descriptor *nbpf_prep_sg(struct nbpf_channel *chan,
drivers/dma/nbpfaxi.c
964
desc = nbpf_desc_get(chan, len);
drivers/dma/of-dma.c
102
return chan;
drivers/dma/of-dma.c
256
struct dma_chan *chan;
drivers/dma/of-dma.c
292
chan = ofdma->of_dma_xlate(&dma_spec, ofdma);
drivers/dma/of-dma.c
295
chan = NULL;
drivers/dma/of-dma.c
302
if (chan)
drivers/dma/of-dma.c
303
return chan;
drivers/dma/of-dma.c
355
struct dma_chan *chan, *candidate = NULL;
drivers/dma/of-dma.c
360
list_for_each_entry(chan, &dev->channels, device_node)
drivers/dma/of-dma.c
361
if (chan->chan_id == dma_spec->args[0]) {
drivers/dma/of-dma.c
362
candidate = chan;
drivers/dma/of-dma.c
58
struct dma_chan *chan;
drivers/dma/of-dma.c
73
chan = ERR_PTR(-EPROBE_DEFER);
drivers/dma/of-dma.c
77
chan = ofdma_target->of_dma_xlate(&dma_spec_target, ofdma_target);
drivers/dma/of-dma.c
78
if (IS_ERR_OR_NULL(chan)) {
drivers/dma/of-dma.c
84
chan->router = ofdma->dma_router;
drivers/dma/of-dma.c
85
chan->route_data = route_data;
drivers/dma/of-dma.c
87
if (chan->device->device_router_config)
drivers/dma/of-dma.c
88
ret = chan->device->device_router_config(chan);
drivers/dma/of-dma.c
91
dma_release_channel(chan);
drivers/dma/of-dma.c
92
chan = ERR_PTR(ret);
drivers/dma/owl-dma.c
1006
dev_warn(chan2dev(chan), "failed to allocate lli");
drivers/dma/owl-dma.c
1021
dev_warn(chan2dev(chan), "failed to config lli");
drivers/dma/owl-dma.c
1042
static void owl_dma_free_chan_resources(struct dma_chan *chan)
drivers/dma/owl-dma.c
1044
struct owl_dma_vchan *vchan = to_owl_vchan(chan);
drivers/dma/owl-dma.c
1056
next, &od->dma.channels, vc.chan.device_node) {
drivers/dma/owl-dma.c
1057
list_del(&vchan->vc.chan.device_node);
drivers/dma/owl-dma.c
1067
struct dma_chan *chan;
drivers/dma/owl-dma.c
1073
chan = dma_get_any_slave_channel(&od->dma);
drivers/dma/owl-dma.c
1074
if (!chan)
drivers/dma/owl-dma.c
1077
vchan = to_owl_vchan(chan);
drivers/dma/owl-dma.c
1080
return chan;
drivers/dma/owl-dma.c
295
static struct device *chan2dev(struct dma_chan *chan)
drivers/dma/owl-dma.c
297
return &chan->dev->device;
drivers/dma/owl-dma.c
300
static inline struct owl_dma_vchan *to_owl_vchan(struct dma_chan *chan)
drivers/dma/owl-dma.c
302
return container_of(chan, struct owl_dma_vchan, vc.chan);
drivers/dma/owl-dma.c
388
struct owl_dma *od = to_owl_dma(vchan->vc.chan.device);
drivers/dma/owl-dma.c
537
struct owl_dma *od = to_owl_dma(vchan->vc.chan.device);
drivers/dma/owl-dma.c
576
dev_dbg(chan2dev(&vchan->vc.chan), "starting pchan %d\n", pchan->id);
drivers/dma/owl-dma.c
691
struct owl_dma *od = to_owl_dma(vd->tx.chan->device);
drivers/dma/owl-dma.c
697
static int owl_dma_terminate_all(struct dma_chan *chan)
drivers/dma/owl-dma.c
699
struct owl_dma *od = to_owl_dma(chan->device);
drivers/dma/owl-dma.c
700
struct owl_dma_vchan *vchan = to_owl_vchan(chan);
drivers/dma/owl-dma.c
723
static int owl_dma_config(struct dma_chan *chan,
drivers/dma/owl-dma.c
726
struct owl_dma_vchan *vchan = to_owl_vchan(chan);
drivers/dma/owl-dma.c
738
static int owl_dma_pause(struct dma_chan *chan)
drivers/dma/owl-dma.c
740
struct owl_dma_vchan *vchan = to_owl_vchan(chan);
drivers/dma/owl-dma.c
752
static int owl_dma_resume(struct dma_chan *chan)
drivers/dma/owl-dma.c
754
struct owl_dma_vchan *vchan = to_owl_vchan(chan);
drivers/dma/owl-dma.c
760
dev_dbg(chan2dev(chan), "vchan %p: resume\n", &vchan->vc);
drivers/dma/owl-dma.c
804
static enum dma_status owl_dma_tx_status(struct dma_chan *chan,
drivers/dma/owl-dma.c
808
struct owl_dma_vchan *vchan = to_owl_vchan(chan);
drivers/dma/owl-dma.c
816
ret = dma_cookie_status(chan, cookie, state);
drivers/dma/owl-dma.c
840
struct owl_dma *od = to_owl_dma(vchan->vc.chan.device);
drivers/dma/owl-dma.c
853
static void owl_dma_issue_pending(struct dma_chan *chan)
drivers/dma/owl-dma.c
855
struct owl_dma_vchan *vchan = to_owl_vchan(chan);
drivers/dma/owl-dma.c
867
*owl_dma_prep_memcpy(struct dma_chan *chan,
drivers/dma/owl-dma.c
871
struct owl_dma *od = to_owl_dma(chan->device);
drivers/dma/owl-dma.c
872
struct owl_dma_vchan *vchan = to_owl_vchan(chan);
drivers/dma/owl-dma.c
891
dev_warn(chan2dev(chan), "failed to allocate lli\n");
drivers/dma/owl-dma.c
901
dev_warn(chan2dev(chan), "failed to config lli\n");
drivers/dma/owl-dma.c
916
*owl_dma_prep_slave_sg(struct dma_chan *chan,
drivers/dma/owl-dma.c
922
struct owl_dma *od = to_owl_dma(chan->device);
drivers/dma/owl-dma.c
923
struct owl_dma_vchan *vchan = to_owl_vchan(chan);
drivers/dma/owl-dma.c
950
dev_err(chan2dev(chan), "failed to allocate lli");
drivers/dma/owl-dma.c
965
dev_warn(chan2dev(chan), "failed to config lli");
drivers/dma/owl-dma.c
981
*owl_prep_dma_cyclic(struct dma_chan *chan,
drivers/dma/owl-dma.c
987
struct owl_dma *od = to_owl_dma(chan->device);
drivers/dma/owl-dma.c
988
struct owl_dma_vchan *vchan = to_owl_vchan(chan);
drivers/dma/pch_dma.c
143
static inline struct pch_dma_chan *to_pd_chan(struct dma_chan *chan)
drivers/dma/pch_dma.c
145
return container_of(chan, struct pch_dma_chan, chan);
drivers/dma/pch_dma.c
153
static inline struct device *chan2dev(struct dma_chan *chan)
drivers/dma/pch_dma.c
155
return &chan->dev->device;
drivers/dma/pch_dma.c
172
static void pdc_enable_irq(struct dma_chan *chan, int enable)
drivers/dma/pch_dma.c
174
struct pch_dma *pd = to_pd(chan->device);
drivers/dma/pch_dma.c
178
if (chan->chan_id < 8)
drivers/dma/pch_dma.c
179
pos = chan->chan_id;
drivers/dma/pch_dma.c
181
pos = chan->chan_id + 8;
drivers/dma/pch_dma.c
192
dev_dbg(chan2dev(chan), "pdc_enable_irq: chan %d -> %x\n",
drivers/dma/pch_dma.c
193
chan->chan_id, val);
drivers/dma/pch_dma.c
196
static void pdc_set_dir(struct dma_chan *chan)
drivers/dma/pch_dma.c
198
struct pch_dma_chan *pd_chan = to_pd_chan(chan);
drivers/dma/pch_dma.c
199
struct pch_dma *pd = to_pd(chan->device);
drivers/dma/pch_dma.c
204
if (chan->chan_id < 8) {
drivers/dma/pch_dma.c
208
(DMA_CTL0_BITS_PER_CH * chan->chan_id);
drivers/dma/pch_dma.c
210
(DMA_CTL0_BITS_PER_CH * chan->chan_id));
drivers/dma/pch_dma.c
213
val |= 0x1 << (DMA_CTL0_BITS_PER_CH * chan->chan_id +
drivers/dma/pch_dma.c
216
val &= ~(0x1 << (DMA_CTL0_BITS_PER_CH * chan->chan_id +
drivers/dma/pch_dma.c
222
int ch = chan->chan_id - 8; /* ch8-->0 ch9-->1 ... ch11->3 */
drivers/dma/pch_dma.c
240
dev_dbg(chan2dev(chan), "pdc_set_dir: chan %d -> %x\n",
drivers/dma/pch_dma.c
241
chan->chan_id, val);
drivers/dma/pch_dma.c
244
static void pdc_set_mode(struct dma_chan *chan, u32 mode)
drivers/dma/pch_dma.c
246
struct pch_dma *pd = to_pd(chan->device);
drivers/dma/pch_dma.c
251
if (chan->chan_id < 8) {
drivers/dma/pch_dma.c
253
(DMA_CTL0_BITS_PER_CH * chan->chan_id));
drivers/dma/pch_dma.c
254
mask_dir = 1 << (DMA_CTL0_BITS_PER_CH * chan->chan_id +\
drivers/dma/pch_dma.c
258
val |= mode << (DMA_CTL0_BITS_PER_CH * chan->chan_id);
drivers/dma/pch_dma.c
262
int ch = chan->chan_id - 8; /* ch8-->0 ch9-->1 ... ch11->3 */
drivers/dma/pch_dma.c
274
dev_dbg(chan2dev(chan), "pdc_set_mode: chan %d -> %x\n",
drivers/dma/pch_dma.c
275
chan->chan_id, val);
drivers/dma/pch_dma.c
280
struct pch_dma *pd = to_pd(pd_chan->chan.device);
drivers/dma/pch_dma.c
285
DMA_STATUS_BITS_PER_CH * pd_chan->chan.chan_id));
drivers/dma/pch_dma.c
290
struct pch_dma *pd = to_pd(pd_chan->chan.device);
drivers/dma/pch_dma.c
295
DMA_STATUS_BITS_PER_CH * (pd_chan->chan.chan_id - 8)));
drivers/dma/pch_dma.c
302
if (pd_chan->chan.chan_id < 8)
drivers/dma/pch_dma.c
317
dev_err(chan2dev(&pd_chan->chan),
drivers/dma/pch_dma.c
322
dev_dbg(chan2dev(&pd_chan->chan), "chan %d -> dev_addr: %x\n",
drivers/dma/pch_dma.c
323
pd_chan->chan.chan_id, desc->regs.dev_addr);
drivers/dma/pch_dma.c
324
dev_dbg(chan2dev(&pd_chan->chan), "chan %d -> mem_addr: %x\n",
drivers/dma/pch_dma.c
325
pd_chan->chan.chan_id, desc->regs.mem_addr);
drivers/dma/pch_dma.c
326
dev_dbg(chan2dev(&pd_chan->chan), "chan %d -> size: %x\n",
drivers/dma/pch_dma.c
327
pd_chan->chan.chan_id, desc->regs.size);
drivers/dma/pch_dma.c
328
dev_dbg(chan2dev(&pd_chan->chan), "chan %d -> next: %x\n",
drivers/dma/pch_dma.c
329
pd_chan->chan.chan_id, desc->regs.next);
drivers/dma/pch_dma.c
336
pdc_set_mode(&pd_chan->chan, DMA_CTL0_ONESHOT);
drivers/dma/pch_dma.c
339
pdc_set_mode(&pd_chan->chan, DMA_CTL0_SG);
drivers/dma/pch_dma.c
385
dev_crit(chan2dev(&pd_chan->chan), "Bad descriptor submitted\n");
drivers/dma/pch_dma.c
386
dev_crit(chan2dev(&pd_chan->chan), "descriptor cookie: %d\n",
drivers/dma/pch_dma.c
406
struct pch_dma_chan *pd_chan = to_pd_chan(txd->chan);
drivers/dma/pch_dma.c
421
static struct pch_dma_desc *pdc_alloc_desc(struct dma_chan *chan, gfp_t flags)
drivers/dma/pch_dma.c
424
struct pch_dma *pd = to_pd(chan->device);
drivers/dma/pch_dma.c
430
dma_async_tx_descriptor_init(&desc->txd, chan);
drivers/dma/pch_dma.c
453
dev_dbg(chan2dev(&pd_chan->chan), "desc %p not ACKed\n", desc);
drivers/dma/pch_dma.c
456
dev_dbg(chan2dev(&pd_chan->chan), "scanned %d descriptors\n", i);
drivers/dma/pch_dma.c
459
ret = pdc_alloc_desc(&pd_chan->chan, GFP_ATOMIC);
drivers/dma/pch_dma.c
465
dev_err(chan2dev(&pd_chan->chan),
drivers/dma/pch_dma.c
484
static int pd_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/pch_dma.c
486
struct pch_dma_chan *pd_chan = to_pd_chan(chan);
drivers/dma/pch_dma.c
492
dev_dbg(chan2dev(chan), "DMA channel not idle ?\n");
drivers/dma/pch_dma.c
500
desc = pdc_alloc_desc(chan, GFP_KERNEL);
drivers/dma/pch_dma.c
503
dev_warn(chan2dev(chan),
drivers/dma/pch_dma.c
514
dma_cookie_init(chan);
drivers/dma/pch_dma.c
517
pdc_enable_irq(chan, 1);
drivers/dma/pch_dma.c
522
static void pd_free_chan_resources(struct dma_chan *chan)
drivers/dma/pch_dma.c
524
struct pch_dma_chan *pd_chan = to_pd_chan(chan);
drivers/dma/pch_dma.c
525
struct pch_dma *pd = to_pd(chan->device);
drivers/dma/pch_dma.c
541
pdc_enable_irq(chan, 0);
drivers/dma/pch_dma.c
544
static enum dma_status pd_tx_status(struct dma_chan *chan, dma_cookie_t cookie,
drivers/dma/pch_dma.c
547
return dma_cookie_status(chan, cookie, txstate);
drivers/dma/pch_dma.c
550
static void pd_issue_pending(struct dma_chan *chan)
drivers/dma/pch_dma.c
552
struct pch_dma_chan *pd_chan = to_pd_chan(chan);
drivers/dma/pch_dma.c
561
static struct dma_async_tx_descriptor *pd_prep_slave_sg(struct dma_chan *chan,
drivers/dma/pch_dma.c
566
struct pch_dma_chan *pd_chan = to_pd_chan(chan);
drivers/dma/pch_dma.c
567
struct pch_dma_slave *pd_slave = chan->private;
drivers/dma/pch_dma.c
576
dev_info(chan2dev(chan), "prep_slave_sg: length is zero!\n");
drivers/dma/pch_dma.c
588
pdc_set_dir(chan);
drivers/dma/pch_dma.c
642
dev_err(chan2dev(chan), "failed to get desc or wrong parameters\n");
drivers/dma/pch_dma.c
647
static int pd_device_terminate_all(struct dma_chan *chan)
drivers/dma/pch_dma.c
649
struct pch_dma_chan *pd_chan = to_pd_chan(chan);
drivers/dma/pch_dma.c
655
pdc_set_mode(&pd_chan->chan, DMA_CTL0_DISABLE);
drivers/dma/pch_dma.c
674
dev_err(chan2dev(&pd_chan->chan),
drivers/dma/pch_dma.c
736
struct dma_chan *chan, *_c;
drivers/dma/pch_dma.c
744
list_for_each_entry_safe(chan, _c, &pd->dma.channels, device_node) {
drivers/dma/pch_dma.c
745
pd_chan = to_pd_chan(chan);
drivers/dma/pch_dma.c
759
struct dma_chan *chan, *_c;
drivers/dma/pch_dma.c
767
list_for_each_entry_safe(chan, _c, &pd->dma.channels, device_node) {
drivers/dma/pch_dma.c
768
pd_chan = to_pd_chan(chan);
drivers/dma/pch_dma.c
869
pd_chan->chan.device = &pd->dma;
drivers/dma/pch_dma.c
870
dma_cookie_init(&pd_chan->chan);
drivers/dma/pch_dma.c
881
list_add_tail(&pd_chan->chan.device_node, &pd->dma.channels);
drivers/dma/pch_dma.c
91
struct dma_chan chan;
drivers/dma/pch_dma.c
922
struct dma_chan *chan, *_c;
drivers/dma/pch_dma.c
929
list_for_each_entry_safe(chan, _c, &pd->dma.channels,
drivers/dma/pch_dma.c
931
pd_chan = to_pd_chan(chan);
drivers/dma/pl330.c
1043
go.chan = thrd->id;
drivers/dma/pl330.c
2032
return container_of(ch, struct dma_pl330_chan, chan);
drivers/dma/pl330.c
2156
return dma_get_slave_channel(&pl330->peripherals[chan_id].chan);
drivers/dma/pl330.c
2159
static int pl330_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/pl330.c
2161
struct dma_pl330_chan *pch = to_pchan(chan);
drivers/dma/pl330.c
2167
dma_cookie_init(chan);
drivers/dma/pl330.c
2205
dma_unmap_resource(pch->chan.device->dev, pch->fifo_dma,
drivers/dma/pl330.c
2214
struct device *dev = pch->chan.device->dev;
drivers/dma/pl330.c
2241
static int pl330_config_write(struct dma_chan *chan,
drivers/dma/pl330.c
2245
struct dma_pl330_chan *pch = to_pchan(chan);
drivers/dma/pl330.c
2267
static int pl330_config(struct dma_chan *chan,
drivers/dma/pl330.c
2270
struct dma_pl330_chan *pch = to_pchan(chan);
drivers/dma/pl330.c
2277
static int pl330_terminate_all(struct dma_chan *chan)
drivers/dma/pl330.c
2279
struct dma_pl330_chan *pch = to_pchan(chan);
drivers/dma/pl330.c
2327
static int pl330_pause(struct dma_chan *chan)
drivers/dma/pl330.c
2329
struct dma_pl330_chan *pch = to_pchan(chan);
drivers/dma/pl330.c
2351
static void pl330_free_chan_resources(struct dma_chan *chan)
drivers/dma/pl330.c
2353
struct dma_pl330_chan *pch = to_pchan(chan);
drivers/dma/pl330.c
2401
pl330_tx_status(struct dma_chan *chan, dma_cookie_t cookie,
drivers/dma/pl330.c
2407
struct dma_pl330_chan *pch = to_pchan(chan);
drivers/dma/pl330.c
2410
ret = dma_cookie_status(chan, cookie, txstate);
drivers/dma/pl330.c
2474
static void pl330_issue_pending(struct dma_chan *chan)
drivers/dma/pl330.c
2476
struct dma_pl330_chan *pch = to_pchan(chan);
drivers/dma/pl330.c
2504
struct dma_pl330_chan *pch = to_pchan(tx->chan);
drivers/dma/pl330.c
2593
u8 *peri_id = pch->chan.private;
drivers/dma/pl330.c
2616
desc->peri = peri_id ? pch->chan.chan_id : 0;
drivers/dma/pl330.c
2619
dma_async_tx_descriptor_init(&desc->txd, &pch->chan);
drivers/dma/pl330.c
2678
struct dma_chan *chan, dma_addr_t dma_addr, size_t len,
drivers/dma/pl330.c
2683
struct dma_pl330_chan *pch = to_pchan(chan);
drivers/dma/pl330.c
2698
pl330_config_write(chan, &pch->slave_config, direction);
drivers/dma/pl330.c
2769
pl330_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dst,
drivers/dma/pl330.c
2773
struct dma_pl330_chan *pch = to_pchan(chan);
drivers/dma/pl330.c
2841
pl330_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
drivers/dma/pl330.c
2846
struct dma_pl330_chan *pch = to_pchan(chan);
drivers/dma/pl330.c
2853
pl330_config_write(chan, &pch->slave_config, direction);
drivers/dma/pl330.c
3104
pch->chan.private = adev->dev.of_node;
drivers/dma/pl330.c
3110
pch->chan.device = pd;
drivers/dma/pl330.c
3115
list_add_tail(&pch->chan.device_node, &pd->channels);
drivers/dma/pl330.c
3179
chan.device_node) {
drivers/dma/pl330.c
3182
list_del(&pch->chan.device_node);
drivers/dma/pl330.c
3186
pl330_terminate_all(&pch->chan);
drivers/dma/pl330.c
3187
pl330_free_chan_resources(&pch->chan);
drivers/dma/pl330.c
3222
chan.device_node) {
drivers/dma/pl330.c
3225
list_del(&pch->chan.device_node);
drivers/dma/pl330.c
3229
pl330_terminate_all(&pch->chan);
drivers/dma/pl330.c
3230
pl330_free_chan_resources(&pch->chan);
drivers/dma/pl330.c
424
struct dma_chan chan;
drivers/dma/pl330.c
555
static int pl330_config_write(struct dma_chan *chan,
drivers/dma/pl330.c
842
u8 chan;
drivers/dma/pl330.c
850
u8 chan = arg->chan;
drivers/dma/pl330.c
859
buf[1] = chan & 0x7;
drivers/dma/plx_dma.c
303
struct plx_dma_dev *plxdev = chan_to_plx_dma_dev(desc->chan);
drivers/dma/plx_dma.c
322
static enum dma_status plx_dma_tx_status(struct dma_chan *chan,
drivers/dma/plx_dma.c
325
struct plx_dma_dev *plxdev = chan_to_plx_dma_dev(chan);
drivers/dma/plx_dma.c
328
ret = dma_cookie_status(chan, cookie, txstate);
drivers/dma/plx_dma.c
334
return dma_cookie_status(chan, cookie, txstate);
drivers/dma/plx_dma.c
337
static void plx_dma_issue_pending(struct dma_chan *chan)
drivers/dma/plx_dma.c
339
struct plx_dma_dev *plxdev = chan_to_plx_dma_dev(chan);
drivers/dma/plx_dma.c
406
static int plx_dma_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/plx_dma.c
408
struct plx_dma_dev *plxdev = chan_to_plx_dma_dev(chan);
drivers/dma/plx_dma.c
451
static void plx_dma_free_chan_resources(struct dma_chan *chan)
drivers/dma/plx_dma.c
453
struct plx_dma_dev *plxdev = chan_to_plx_dma_dev(chan);
drivers/dma/plx_dma.c
500
struct dma_chan *chan;
drivers/dma/plx_dma.c
531
chan = &plxdev->dma_chan;
drivers/dma/plx_dma.c
532
chan->device = dma;
drivers/dma/plx_dma.c
533
dma_cookie_init(chan);
drivers/dma/plx_dma.c
534
list_add_tail(&chan->device_node, &dma->channels);
drivers/dma/ppc4xx/adma.c
1008
ppc440spe_chan_append(chan);
drivers/dma/ppc4xx/adma.c
1016
static int ppc440spe_chan_is_busy(struct ppc440spe_adma_chan *chan)
drivers/dma/ppc4xx/adma.c
1022
switch (chan->device->id) {
drivers/dma/ppc4xx/adma.c
1025
dma_reg = chan->device->dma_reg;
drivers/dma/ppc4xx/adma.c
1036
xor_reg = chan->device->xor_reg;
drivers/dma/ppc4xx/adma.c
1048
struct ppc440spe_adma_chan *chan,
drivers/dma/ppc4xx/adma.c
1051
struct xor_regs *xor_reg = chan->device->xor_reg;
drivers/dma/ppc4xx/adma.c
1067
chan->hw_chain_inited = 1;
drivers/dma/ppc4xx/adma.c
1074
static void ppc440spe_dma_put_desc(struct ppc440spe_adma_chan *chan,
drivers/dma/ppc4xx/adma.c
1078
struct dma_regs *dma_reg = chan->device->dma_reg;
drivers/dma/ppc4xx/adma.c
1084
chan_last_sub[chan->device->id] = desc;
drivers/dma/ppc4xx/adma.c
1086
ADMA_LL_DBG(print_cb(chan, desc->hw_desc));
drivers/dma/ppc4xx/adma.c
1094
static void ppc440spe_chan_append(struct ppc440spe_adma_chan *chan)
drivers/dma/ppc4xx/adma.c
1104
switch (chan->device->id) {
drivers/dma/ppc4xx/adma.c
1107
cur_desc = ppc440spe_chan_get_current_descriptor(chan);
drivers/dma/ppc4xx/adma.c
1110
iter = chan_last_sub[chan->device->id];
drivers/dma/ppc4xx/adma.c
1114
iter = chan_first_cdb[chan->device->id];
drivers/dma/ppc4xx/adma.c
1116
ppc440spe_dma_put_desc(chan, iter);
drivers/dma/ppc4xx/adma.c
1117
chan->hw_chain_inited = 1;
drivers/dma/ppc4xx/adma.c
1125
list_for_each_entry_continue(iter, &chan->chain, chain_node) {
drivers/dma/ppc4xx/adma.c
1126
ppc440spe_dma_put_desc(chan, iter);
drivers/dma/ppc4xx/adma.c
1136
xor_reg = chan->device->xor_reg;
drivers/dma/ppc4xx/adma.c
1151
ADMA_LL_DBG(print_cb_list(chan,
drivers/dma/ppc4xx/adma.c
1173
ppc440spe_chan_get_current_descriptor(struct ppc440spe_adma_chan *chan)
drivers/dma/ppc4xx/adma.c
1178
if (unlikely(!chan->hw_chain_inited))
drivers/dma/ppc4xx/adma.c
1182
switch (chan->device->id) {
drivers/dma/ppc4xx/adma.c
1185
dma_reg = chan->device->dma_reg;
drivers/dma/ppc4xx/adma.c
1188
xor_reg = chan->device->xor_reg;
drivers/dma/ppc4xx/adma.c
1197
static void ppc440spe_chan_run(struct ppc440spe_adma_chan *chan)
drivers/dma/ppc4xx/adma.c
1201
switch (chan->device->id) {
drivers/dma/ppc4xx/adma.c
1208
xor_reg = chan->device->xor_reg;
drivers/dma/ppc4xx/adma.c
1221
static void ppc440spe_chan_start_null_xor(struct ppc440spe_adma_chan *chan);
drivers/dma/ppc4xx/adma.c
1222
static int ppc440spe_adma_alloc_chan_resources(struct dma_chan *chan);
drivers/dma/ppc4xx/adma.c
129
static void print_cb(struct ppc440spe_adma_chan *chan, void *block)
drivers/dma/ppc4xx/adma.c
1326
static int ppc440spe_adma_estimate(struct dma_chan *chan,
drivers/dma/ppc4xx/adma.c
1349
if (cap == DMA_PQ && chan->chan_id == PPC440SPE_XOR_ID) {
drivers/dma/ppc4xx/adma.c
135
switch (chan->device->id) {
drivers/dma/ppc4xx/adma.c
1361
!ppc440spe_chan_is_busy(to_ppc440spe_adma_chan(chan)))
drivers/dma/ppc4xx/adma.c
1400
if (dma_has_cap(cap, ref->chan->device->cap_mask)) {
drivers/dma/ppc4xx/adma.c
1403
rank = ppc440spe_adma_estimate(ref->chan, cap, dst_lst,
drivers/dma/ppc4xx/adma.c
1407
best_chan = ref->chan;
drivers/dma/ppc4xx/adma.c
1445
struct ppc440spe_adma_chan *chan)
drivers/dma/ppc4xx/adma.c
145
cdb, chan->device->id,
drivers/dma/ppc4xx/adma.c
1463
struct ppc440spe_adma_chan *chan,
drivers/dma/ppc4xx/adma.c
1488
struct ppc440spe_adma_chan *chan)
drivers/dma/ppc4xx/adma.c
1499
if (list_is_last(&desc->chain_node, &chan->chain) ||
drivers/dma/ppc4xx/adma.c
1500
desc->phys == ppc440spe_chan_get_current_descriptor(chan))
drivers/dma/ppc4xx/adma.c
1503
if (chan->device->id != PPC440SPE_XOR_ID) {
drivers/dma/ppc4xx/adma.c
1518
dev_dbg(chan->device->common.dev, "\tfree slot %llx: %d stride: %d\n",
drivers/dma/ppc4xx/adma.c
1522
ppc440spe_adma_free_slots(desc, chan);
drivers/dma/ppc4xx/adma.c
1533
static void __ppc440spe_adma_slot_cleanup(struct ppc440spe_adma_chan *chan)
drivers/dma/ppc4xx/adma.c
1537
u32 current_desc = ppc440spe_chan_get_current_descriptor(chan);
drivers/dma/ppc4xx/adma.c
1538
int busy = ppc440spe_chan_is_busy(chan);
drivers/dma/ppc4xx/adma.c
1541
dev_dbg(chan->device->common.dev, "ppc440spe adma%d: %s\n",
drivers/dma/ppc4xx/adma.c
1542
chan->device->id, __func__);
drivers/dma/ppc4xx/adma.c
1554
list_for_each_entry_safe(iter, _iter, &chan->chain,
drivers/dma/ppc4xx/adma.c
1556
dev_dbg(chan->device->common.dev, "\tcookie: %d slot: %d "
drivers/dma/ppc4xx/adma.c
1560
ppc440spe_desc_get_link(iter, chan), current_desc,
drivers/dma/ppc4xx/adma.c
1578
if (busy || ppc440spe_desc_get_link(iter, chan)) {
drivers/dma/ppc4xx/adma.c
159
cb, chan->device->id,
drivers/dma/ppc4xx/adma.c
1611
&chan->chain, chain_node) {
drivers/dma/ppc4xx/adma.c
1614
grp_iter, chan, cookie);
drivers/dma/ppc4xx/adma.c
1618
grp_iter, chan);
drivers/dma/ppc4xx/adma.c
1622
chan->common.completed_cookie = cookie;
drivers/dma/ppc4xx/adma.c
1642
cookie = ppc440spe_adma_run_tx_complete_actions(iter, chan,
drivers/dma/ppc4xx/adma.c
1645
if (ppc440spe_adma_clean_slot(iter, chan))
drivers/dma/ppc4xx/adma.c
1652
chan->common.completed_cookie = cookie;
drivers/dma/ppc4xx/adma.c
1663
struct ppc440spe_adma_chan *chan = from_tasklet(chan, t, irq_tasklet);
drivers/dma/ppc4xx/adma.c
1665
spin_lock_nested(&chan->lock, SINGLE_DEPTH_NESTING);
drivers/dma/ppc4xx/adma.c
1666
__ppc440spe_adma_slot_cleanup(chan);
drivers/dma/ppc4xx/adma.c
1667
spin_unlock(&chan->lock);
drivers/dma/ppc4xx/adma.c
1673
static void ppc440spe_adma_slot_cleanup(struct ppc440spe_adma_chan *chan)
drivers/dma/ppc4xx/adma.c
1675
spin_lock_bh(&chan->lock);
drivers/dma/ppc4xx/adma.c
1676
__ppc440spe_adma_slot_cleanup(chan);
drivers/dma/ppc4xx/adma.c
1677
spin_unlock_bh(&chan->lock);
drivers/dma/ppc4xx/adma.c
1684
struct ppc440spe_adma_chan *chan, int num_slots,
drivers/dma/ppc4xx/adma.c
1701
iter = chan->last_used;
drivers/dma/ppc4xx/adma.c
1703
iter = list_entry(&chan->all_slots,
drivers/dma/ppc4xx/adma.c
1706
list_for_each_entry_safe_continue(iter, _iter, &chan->all_slots,
drivers/dma/ppc4xx/adma.c
173
static void print_cb_list(struct ppc440spe_adma_chan *chan,
drivers/dma/ppc4xx/adma.c
1749
chan->last_used = last_used;
drivers/dma/ppc4xx/adma.c
1757
tasklet_schedule(&chan->irq_tasklet);
drivers/dma/ppc4xx/adma.c
1764
static int ppc440spe_adma_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/ppc4xx/adma.c
177
print_cb(chan, iter->hw_desc);
drivers/dma/ppc4xx/adma.c
1772
ppc440spe_chan = to_ppc440spe_adma_chan(chan);
drivers/dma/ppc4xx/adma.c
1774
chan->chan_id = ppc440spe_chan->device->id;
drivers/dma/ppc4xx/adma.c
1793
dma_async_tx_descriptor_init(&slot->async_tx, chan);
drivers/dma/ppc4xx/adma.c
1878
static void ppc440spe_adma_check_threshold(struct ppc440spe_adma_chan *chan)
drivers/dma/ppc4xx/adma.c
1880
dev_dbg(chan->device->common.dev, "ppc440spe adma%d: pending: %d\n",
drivers/dma/ppc4xx/adma.c
1881
chan->device->id, chan->pending);
drivers/dma/ppc4xx/adma.c
1883
if (chan->pending >= PPC440SPE_ADMA_THRESHOLD) {
drivers/dma/ppc4xx/adma.c
1884
chan->pending = 0;
drivers/dma/ppc4xx/adma.c
1885
ppc440spe_chan_append(chan);
drivers/dma/ppc4xx/adma.c
1897
struct ppc440spe_adma_chan *chan = to_ppc440spe_adma_chan(tx->chan);
drivers/dma/ppc4xx/adma.c
1909
spin_lock_bh(&chan->lock);
drivers/dma/ppc4xx/adma.c
1912
if (unlikely(list_empty(&chan->chain))) {
drivers/dma/ppc4xx/adma.c
1914
list_splice_init(&sw_desc->group_list, &chan->chain);
drivers/dma/ppc4xx/adma.c
1915
chan_first_cdb[chan->device->id] = group_start;
drivers/dma/ppc4xx/adma.c
1918
old_chain_tail = list_entry(chan->chain.prev,
drivers/dma/ppc4xx/adma.c
1924
ppc440spe_desc_set_link(chan, old_chain_tail, group_start);
drivers/dma/ppc4xx/adma.c
1928
chan->pending += slot_cnt / slots_per_op;
drivers/dma/ppc4xx/adma.c
1929
ppc440spe_adma_check_threshold(chan);
drivers/dma/ppc4xx/adma.c
1930
spin_unlock_bh(&chan->lock);
drivers/dma/ppc4xx/adma.c
1932
dev_dbg(chan->device->common.dev,
drivers/dma/ppc4xx/adma.c
1934
chan->device->id, __func__,
drivers/dma/ppc4xx/adma.c
1944
struct dma_chan *chan, unsigned long flags)
drivers/dma/ppc4xx/adma.c
1950
ppc440spe_chan = to_ppc440spe_adma_chan(chan);
drivers/dma/ppc4xx/adma.c
1975
struct dma_chan *chan, dma_addr_t dma_dest,
drivers/dma/ppc4xx/adma.c
1982
ppc440spe_chan = to_ppc440spe_adma_chan(chan);
drivers/dma/ppc4xx/adma.c
2016
struct dma_chan *chan, dma_addr_t dma_dest,
drivers/dma/ppc4xx/adma.c
2024
ppc440spe_chan = to_ppc440spe_adma_chan(chan);
drivers/dma/ppc4xx/adma.c
2099
struct ppc440spe_adma_chan *chan;
drivers/dma/ppc4xx/adma.c
2103
chan = to_ppc440spe_adma_chan(sw_desc->async_tx.chan);
drivers/dma/ppc4xx/adma.c
2122
ppc440spe_desc_set_dest_addr(iter, chan,
drivers/dma/ppc4xx/adma.c
2124
ppc440spe_desc_set_dest_addr(iter, chan, 0, dst[1], 1);
drivers/dma/ppc4xx/adma.c
2125
ppc440spe_desc_set_src_addr(iter, chan, 0, DMA_CUED_XOR_HB,
drivers/dma/ppc4xx/adma.c
2146
ppc440spe_desc_set_src_addr(iter, chan, 0,
drivers/dma/ppc4xx/adma.c
2148
ppc440spe_desc_set_dest_addr(iter, chan,
drivers/dma/ppc4xx/adma.c
2151
ppc440spe_desc_set_src_mult(iter, chan, DMA_CUED_MULT1_OFF,
drivers/dma/ppc4xx/adma.c
2185
struct ppc440spe_adma_chan *chan;
drivers/dma/ppc4xx/adma.c
2189
chan = to_ppc440spe_adma_chan(sw_desc->async_tx.chan);
drivers/dma/ppc4xx/adma.c
2205
ppc440spe_desc_set_dest_addr(iter, chan, DMA_CUED_XOR_BASE,
drivers/dma/ppc4xx/adma.c
2207
ppc440spe_desc_set_dest_addr(iter, chan, 0,
drivers/dma/ppc4xx/adma.c
2209
ppc440spe_desc_set_src_addr(iter, chan, 0, DMA_CUED_XOR_HB,
drivers/dma/ppc4xx/adma.c
2231
ppc440spe_desc_set_src_addr(iter, chan, 0, DMA_CUED_XOR_HB,
drivers/dma/ppc4xx/adma.c
2233
ppc440spe_desc_set_dest_addr(iter, chan, DMA_CUED_XOR_BASE,
drivers/dma/ppc4xx/adma.c
2235
ppc440spe_desc_set_src_mult(iter, chan, DMA_CUED_MULT1_OFF,
drivers/dma/ppc4xx/adma.c
2256
ppc440spe_desc_set_src_addr(iter, chan, 0, DMA_CUED_XOR_HB,
drivers/dma/ppc4xx/adma.c
2258
ppc440spe_desc_set_dest_addr(iter, chan, DMA_CUED_XOR_BASE,
drivers/dma/ppc4xx/adma.c
2260
ppc440spe_desc_set_src_mult(iter, chan, DMA_CUED_MULT1_OFF,
drivers/dma/ppc4xx/adma.c
232
struct ppc440spe_adma_chan *chan)
drivers/dma/ppc4xx/adma.c
236
switch (chan->device->id) {
drivers/dma/ppc4xx/adma.c
250
printk(KERN_ERR "Unsupported id %d in %s\n", chan->device->id,
drivers/dma/ppc4xx/adma.c
2507
struct dma_chan *chan, dma_addr_t *dst, dma_addr_t *src,
drivers/dma/ppc4xx/adma.c
2515
ppc440spe_chan = to_ppc440spe_adma_chan(chan);
drivers/dma/ppc4xx/adma.c
2583
struct dma_chan *chan, dma_addr_t *pq, dma_addr_t *src,
drivers/dma/ppc4xx/adma.c
2592
ppc440spe_chan = to_ppc440spe_adma_chan(chan);
drivers/dma/ppc4xx/adma.c
2634
struct ppc440spe_adma_chan *chan;
drivers/dma/ppc4xx/adma.c
2637
chan = to_ppc440spe_adma_chan(iter->async_tx.chan);
drivers/dma/ppc4xx/adma.c
2646
ppc440spe_desc_set_dest_addr(iter, chan, 0,
drivers/dma/ppc4xx/adma.c
2648
ppc440spe_desc_set_src_addr(iter, chan, 0, 0, pdest);
drivers/dma/ppc4xx/adma.c
2657
struct ppc440spe_adma_chan *chan;
drivers/dma/ppc4xx/adma.c
2662
chan = to_ppc440spe_adma_chan(iter->async_tx.chan);
drivers/dma/ppc4xx/adma.c
2678
ppc440spe_desc_set_dest_addr(iter, chan, 0,
drivers/dma/ppc4xx/adma.c
2680
ppc440spe_desc_set_src_addr(iter, chan, 0, 0, qdest);
drivers/dma/ppc4xx/adma.c
2734
struct ppc440spe_adma_chan *chan;
drivers/dma/ppc4xx/adma.c
2737
chan = to_ppc440spe_adma_chan(iter->async_tx.chan);
drivers/dma/ppc4xx/adma.c
2738
ppc440spe_desc_set_src_addr(iter, chan, 0,
drivers/dma/ppc4xx/adma.c
2744
ppc440spe_desc_set_src_mult(iter, chan,
drivers/dma/ppc4xx/adma.c
2762
struct dma_chan *chan, dma_addr_t *src, unsigned int src_cnt,
drivers/dma/ppc4xx/adma.c
2773
tx = ppc440spe_adma_prep_dma_pqzero_sum(chan, pq, &src[1],
drivers/dma/ppc4xx/adma.c
2785
struct ppc440spe_adma_chan *chan;
drivers/dma/ppc4xx/adma.c
2789
chan = to_ppc440spe_adma_chan(sw_desc->async_tx.chan);
drivers/dma/ppc4xx/adma.c
2791
switch (chan->device->id) {
drivers/dma/ppc4xx/adma.c
2798
chan, 0, addr, index);
drivers/dma/ppc4xx/adma.c
2803
chan, 0, addr, index);
drivers/dma/ppc4xx/adma.c
2809
struct ppc440spe_adma_chan *chan, dma_addr_t addr)
drivers/dma/ppc4xx/adma.c
2815
ppc440spe_desc_set_dest_addr(iter, chan, DMA_CUED_XOR_BASE, addr, 0);
drivers/dma/ppc4xx/adma.c
2818
ppc440spe_desc_set_src_addr(iter, chan, 0, DMA_CUED_XOR_HB, addr);
drivers/dma/ppc4xx/adma.c
2821
ppc440spe_desc_set_src_mult(iter, chan, DMA_CUED_MULT1_OFF,
drivers/dma/ppc4xx/adma.c
2833
struct ppc440spe_adma_chan *chan;
drivers/dma/ppc4xx/adma.c
2838
chan = to_ppc440spe_adma_chan(sw_desc->async_tx.chan);
drivers/dma/ppc4xx/adma.c
2853
switch (chan->device->id) {
drivers/dma/ppc4xx/adma.c
2871
ppc440spe_desc_set_dest_addr(iter, chan,
drivers/dma/ppc4xx/adma.c
2877
ppc440spe_desc_set_dest_addr(iter, chan,
drivers/dma/ppc4xx/adma.c
2879
ppc440spe_desc_set_dest_addr(iter, chan,
drivers/dma/ppc4xx/adma.c
2893
ppc440spe_adma_pq_zero_op(iter, chan,
drivers/dma/ppc4xx/adma.c
2901
ppc440spe_adma_pq_zero_op(iter, chan,
drivers/dma/ppc4xx/adma.c
2924
ppc440spe_desc_set_dest_addr(iter, chan,
drivers/dma/ppc4xx/adma.c
2931
ppc440spe_desc_set_dest_addr(iter, chan,
drivers/dma/ppc4xx/adma.c
2947
iter, chan,
drivers/dma/ppc4xx/adma.c
2957
iter, chan,
drivers/dma/ppc4xx/adma.c
2961
iter, chan,
drivers/dma/ppc4xx/adma.c
2989
ppc440spe_desc_set_dest_addr(iter, chan,
drivers/dma/ppc4xx/adma.c
3003
chan, qpath, qaddr, 0);
drivers/dma/ppc4xx/adma.c
3023
struct ppc440spe_adma_chan *chan;
drivers/dma/ppc4xx/adma.c
3027
chan = to_ppc440spe_adma_chan(sw_desc->async_tx.chan);
drivers/dma/ppc4xx/adma.c
3049
ppc440spe_desc_set_dest_addr(iter, chan,
drivers/dma/ppc4xx/adma.c
3051
ppc440spe_desc_set_dest_addr(iter, chan,
drivers/dma/ppc4xx/adma.c
3061
ppc440spe_desc_set_dest_addr(iter, chan,
drivers/dma/ppc4xx/adma.c
3070
ppc440spe_desc_set_src_addr(end, chan, 0, 0, addr ? addr : paddr);
drivers/dma/ppc4xx/adma.c
3075
ppc440spe_desc_set_src_addr(end, chan, 0, 0, qaddr);
drivers/dma/ppc4xx/adma.c
3098
struct ppc440spe_adma_chan *chan;
drivers/dma/ppc4xx/adma.c
3102
chan = to_ppc440spe_adma_chan(sw_desc->async_tx.chan);
drivers/dma/ppc4xx/adma.c
3104
switch (chan->device->id) {
drivers/dma/ppc4xx/adma.c
3170
ppc440spe_desc_set_src_addr(iter, chan, 0, haddr, addr);
drivers/dma/ppc4xx/adma.c
3179
ppc440spe_desc_set_src_addr(iter, chan, 0,
drivers/dma/ppc4xx/adma.c
3208
struct ppc440spe_adma_chan *chan;
drivers/dma/ppc4xx/adma.c
3210
chan = to_ppc440spe_adma_chan(sw_desc->async_tx.chan);
drivers/dma/ppc4xx/adma.c
3214
ppc440spe_desc_set_src_addr(sw_desc, chan, index, 0, addr);
drivers/dma/ppc4xx/adma.c
3449
struct ppc440spe_adma_chan *chan;
drivers/dma/ppc4xx/adma.c
3453
chan = to_ppc440spe_adma_chan(sw_desc->async_tx.chan);
drivers/dma/ppc4xx/adma.c
3455
switch (chan->device->id) {
drivers/dma/ppc4xx/adma.c
3499
ppc440spe_desc_set_src_mult(iter, chan,
drivers/dma/ppc4xx/adma.c
3506
ppc440spe_desc_set_src_mult(iter1, chan,
drivers/dma/ppc4xx/adma.c
3531
static void ppc440spe_adma_free_chan_resources(struct dma_chan *chan)
drivers/dma/ppc4xx/adma.c
3537
ppc440spe_chan = to_ppc440spe_adma_chan(chan);
drivers/dma/ppc4xx/adma.c
3572
static enum dma_status ppc440spe_adma_tx_status(struct dma_chan *chan,
drivers/dma/ppc4xx/adma.c
3578
ppc440spe_chan = to_ppc440spe_adma_chan(chan);
drivers/dma/ppc4xx/adma.c
3579
ret = dma_cookie_status(chan, cookie, txstate);
drivers/dma/ppc4xx/adma.c
3585
return dma_cookie_status(chan, cookie, txstate);
drivers/dma/ppc4xx/adma.c
3593
struct ppc440spe_adma_chan *chan = data;
drivers/dma/ppc4xx/adma.c
3595
dev_dbg(chan->device->common.dev,
drivers/dma/ppc4xx/adma.c
3596
"ppc440spe adma%d: %s\n", chan->device->id, __func__);
drivers/dma/ppc4xx/adma.c
3598
tasklet_schedule(&chan->irq_tasklet);
drivers/dma/ppc4xx/adma.c
3599
ppc440spe_adma_device_clear_eot_status(chan);
drivers/dma/ppc4xx/adma.c
3610
struct ppc440spe_adma_chan *chan = data;
drivers/dma/ppc4xx/adma.c
3612
dev_dbg(chan->device->common.dev,
drivers/dma/ppc4xx/adma.c
3613
"ppc440spe adma%d: %s\n", chan->device->id, __func__);
drivers/dma/ppc4xx/adma.c
3615
tasklet_schedule(&chan->irq_tasklet);
drivers/dma/ppc4xx/adma.c
3616
ppc440spe_adma_device_clear_eot_status(chan);
drivers/dma/ppc4xx/adma.c
3632
static void ppc440spe_adma_issue_pending(struct dma_chan *chan)
drivers/dma/ppc4xx/adma.c
3636
ppc440spe_chan = to_ppc440spe_adma_chan(chan);
drivers/dma/ppc4xx/adma.c
3652
static void ppc440spe_chan_start_null_xor(struct ppc440spe_adma_chan *chan)
drivers/dma/ppc4xx/adma.c
3658
dev_dbg(chan->device->common.dev,
drivers/dma/ppc4xx/adma.c
3659
"ppc440spe adma%d: %s\n", chan->device->id, __func__);
drivers/dma/ppc4xx/adma.c
3661
spin_lock_bh(&chan->lock);
drivers/dma/ppc4xx/adma.c
3663
sw_desc = ppc440spe_adma_alloc_slots(chan, slot_cnt, slots_per_op);
drivers/dma/ppc4xx/adma.c
3666
list_splice_init(&sw_desc->group_list, &chan->chain);
drivers/dma/ppc4xx/adma.c
3675
chan->common.completed_cookie = cookie - 1;
drivers/dma/ppc4xx/adma.c
3678
BUG_ON(ppc440spe_chan_is_busy(chan));
drivers/dma/ppc4xx/adma.c
3681
ppc440spe_chan_set_first_xor_descriptor(chan, sw_desc);
drivers/dma/ppc4xx/adma.c
3684
ppc440spe_chan_run(chan);
drivers/dma/ppc4xx/adma.c
3688
chan->device->id);
drivers/dma/ppc4xx/adma.c
3689
spin_unlock_bh(&chan->lock);
drivers/dma/ppc4xx/adma.c
3698
static int ppc440spe_test_raid6(struct ppc440spe_adma_chan *chan)
drivers/dma/ppc4xx/adma.c
3713
spin_lock_bh(&chan->lock);
drivers/dma/ppc4xx/adma.c
3714
sw_desc = ppc440spe_adma_alloc_slots(chan, 1, 1);
drivers/dma/ppc4xx/adma.c
3719
ppc440spe_desc_set_byte_count(iter, chan, PAGE_SIZE);
drivers/dma/ppc4xx/adma.c
3724
spin_unlock_bh(&chan->lock);
drivers/dma/ppc4xx/adma.c
3727
spin_unlock_bh(&chan->lock);
drivers/dma/ppc4xx/adma.c
3731
dma_addr = dma_map_page(chan->device->dev, pg, 0,
drivers/dma/ppc4xx/adma.c
3748
ppc440spe_adma_issue_pending(&chan->common);
drivers/dma/ppc4xx/adma.c
3864
struct ppc440spe_adma_chan *chan,
drivers/dma/ppc4xx/adma.c
3896
0, dev_driver_string(adev->dev), chan);
drivers/dma/ppc4xx/adma.c
3914
chan);
drivers/dma/ppc4xx/adma.c
3959
free_irq(adev->irq, chan);
drivers/dma/ppc4xx/adma.c
3971
struct ppc440spe_adma_chan *chan)
drivers/dma/ppc4xx/adma.c
3989
free_irq(adev->irq, chan);
drivers/dma/ppc4xx/adma.c
3992
free_irq(adev->err_irq, chan);
drivers/dma/ppc4xx/adma.c
4008
struct ppc440spe_adma_chan *chan;
drivers/dma/ppc4xx/adma.c
4126
chan = kzalloc_obj(*chan);
drivers/dma/ppc4xx/adma.c
4127
if (!chan) {
drivers/dma/ppc4xx/adma.c
4133
spin_lock_init(&chan->lock);
drivers/dma/ppc4xx/adma.c
4134
INIT_LIST_HEAD(&chan->chain);
drivers/dma/ppc4xx/adma.c
4135
INIT_LIST_HEAD(&chan->all_slots);
drivers/dma/ppc4xx/adma.c
4136
chan->device = adev;
drivers/dma/ppc4xx/adma.c
4137
chan->common.device = &adev->common;
drivers/dma/ppc4xx/adma.c
4138
dma_cookie_init(&chan->common);
drivers/dma/ppc4xx/adma.c
4139
list_add_tail(&chan->common.device_node, &adev->common.channels);
drivers/dma/ppc4xx/adma.c
4140
tasklet_setup(&chan->irq_tasklet, ppc440spe_adma_tasklet);
drivers/dma/ppc4xx/adma.c
4146
chan->pdest_page = alloc_page(GFP_KERNEL);
drivers/dma/ppc4xx/adma.c
4147
chan->qdest_page = alloc_page(GFP_KERNEL);
drivers/dma/ppc4xx/adma.c
4148
if (!chan->pdest_page ||
drivers/dma/ppc4xx/adma.c
4149
!chan->qdest_page) {
drivers/dma/ppc4xx/adma.c
4150
if (chan->pdest_page)
drivers/dma/ppc4xx/adma.c
4151
__free_page(chan->pdest_page);
drivers/dma/ppc4xx/adma.c
4152
if (chan->qdest_page)
drivers/dma/ppc4xx/adma.c
4153
__free_page(chan->qdest_page);
drivers/dma/ppc4xx/adma.c
4157
chan->pdest = dma_map_page(&ofdev->dev, chan->pdest_page, 0,
drivers/dma/ppc4xx/adma.c
4159
chan->qdest = dma_map_page(&ofdev->dev, chan->qdest_page, 0,
drivers/dma/ppc4xx/adma.c
4165
ref->chan = &chan->common;
drivers/dma/ppc4xx/adma.c
4174
ret = ppc440spe_adma_setup_irqs(adev, chan, &initcode);
drivers/dma/ppc4xx/adma.c
4190
ppc440spe_adma_release_irqs(adev, chan);
drivers/dma/ppc4xx/adma.c
4193
if (chan == to_ppc440spe_adma_chan(ref->chan)) {
drivers/dma/ppc4xx/adma.c
4200
dma_unmap_page(&ofdev->dev, chan->pdest,
drivers/dma/ppc4xx/adma.c
4202
dma_unmap_page(&ofdev->dev, chan->qdest,
drivers/dma/ppc4xx/adma.c
4204
__free_page(chan->pdest_page);
drivers/dma/ppc4xx/adma.c
4205
__free_page(chan->qdest_page);
drivers/dma/ppc4xx/adma.c
4208
kfree(chan);
drivers/dma/ppc4xx/adma.c
4237
struct dma_chan *chan, *_chan;
drivers/dma/ppc4xx/adma.c
4246
list_for_each_entry_safe(chan, _chan, &adev->common.channels,
drivers/dma/ppc4xx/adma.c
4248
ppc440spe_chan = to_ppc440spe_adma_chan(chan);
drivers/dma/ppc4xx/adma.c
4262
to_ppc440spe_adma_chan(ref->chan)) {
drivers/dma/ppc4xx/adma.c
4267
list_del(&chan->device_node);
drivers/dma/ppc4xx/adma.c
523
struct ppc440spe_adma_chan *chan,
drivers/dma/ppc4xx/adma.c
531
switch (chan->device->id) {
drivers/dma/ppc4xx/adma.c
558
struct ppc440spe_adma_chan *chan, u32 mult_index,
drivers/dma/ppc4xx/adma.c
564
switch (chan->device->id) {
drivers/dma/ppc4xx/adma.c
602
struct ppc440spe_adma_chan *chan,
drivers/dma/ppc4xx/adma.c
611
switch (chan->device->id) {
drivers/dma/ppc4xx/adma.c
643
struct ppc440spe_adma_chan *chan,
drivers/dma/ppc4xx/adma.c
649
switch (chan->device->id) {
drivers/dma/ppc4xx/adma.c
67
struct dma_chan *chan;
drivers/dma/ppc4xx/adma.c
678
struct ppc440spe_adma_chan *chan, u8 *qword)
drivers/dma/ppc4xx/adma.c
682
switch (chan->device->id) {
drivers/dma/ppc4xx/adma.c
721
static void ppc440spe_desc_set_link(struct ppc440spe_adma_chan *chan,
drivers/dma/ppc4xx/adma.c
745
switch (chan->device->id) {
drivers/dma/ppc4xx/adma.c
770
struct ppc440spe_adma_chan *chan)
drivers/dma/ppc4xx/adma.c
890
ppc440spe_chan_get_current_descriptor(struct ppc440spe_adma_chan *chan);
drivers/dma/ppc4xx/adma.c
891
static void ppc440spe_chan_append(struct ppc440spe_adma_chan *chan);
drivers/dma/ppc4xx/adma.c
897
struct ppc440spe_adma_chan *chan)
drivers/dma/ppc4xx/adma.c
901
u8 *p = chan->device->dma_desc_pool_virt;
drivers/dma/ppc4xx/adma.c
905
switch (chan->device->id) {
drivers/dma/ppc4xx/adma.c
909
dma_reg = chan->device->dma_reg;
drivers/dma/ppc4xx/adma.c
913
(u32)chan->device->dma_desc_pool];
drivers/dma/ppc4xx/adma.c
945
list_for_each_entry(iter, &chan->chain,
drivers/dma/ppc4xx/adma.c
954
BUG_ON(&iter->chain_node == &chan->chain);
drivers/dma/ppc4xx/adma.c
975
chan->device->id, rv);
drivers/dma/ppc4xx/adma.c
982
xor_reg = chan->device->xor_reg;
drivers/dma/ppc4xx/adma.h
15
#define to_ppc440spe_adma_chan(chan) \
drivers/dma/ppc4xx/adma.h
16
container_of(chan, struct ppc440spe_adma_chan, common)
drivers/dma/pxa_dma.c
1006
return pxad_tx_prep(&chan->vc, &sw_desc->vd, flags);
drivers/dma/pxa_dma.c
1014
struct pxad_chan *chan = to_pxad_chan(dchan);
drivers/dma/pxa_dma.c
1024
dev_err(&chan->vc.chan.dev->device,
drivers/dma/pxa_dma.c
1033
pxad_get_config(chan, dir, &dcmd, &dsadr, &dtadr);
drivers/dma/pxa_dma.c
1035
dev_dbg(&chan->vc.chan.dev->device,
drivers/dma/pxa_dma.c
1041
sw_desc = pxad_alloc_desc(chan, nb_desc + 1);
drivers/dma/pxa_dma.c
1059
return pxad_tx_prep(&chan->vc, &sw_desc->vd, flags);
drivers/dma/pxa_dma.c
1065
struct pxad_chan *chan = to_pxad_chan(dchan);
drivers/dma/pxa_dma.c
1070
chan->cfg = *cfg;
drivers/dma/pxa_dma.c
1076
struct pxad_chan *chan = to_pxad_chan(dchan);
drivers/dma/pxa_dma.c
1077
struct pxad_device *pdev = to_pxad_dev(chan->vc.chan.device);
drivers/dma/pxa_dma.c
1083
dev_dbg(&chan->vc.chan.dev->device,
drivers/dma/pxa_dma.c
1084
"%s(): vchan %p: terminate all\n", __func__, &chan->vc);
drivers/dma/pxa_dma.c
1086
spin_lock_irqsave(&chan->vc.lock, flags);
drivers/dma/pxa_dma.c
1087
vchan_get_all_descriptors(&chan->vc, &head);
drivers/dma/pxa_dma.c
1090
dev_dbg(&chan->vc.chan.dev->device,
drivers/dma/pxa_dma.c
1095
phy = chan->phy;
drivers/dma/pxa_dma.c
1097
phy_disable(chan->phy);
drivers/dma/pxa_dma.c
1098
pxad_free_phy(chan);
drivers/dma/pxa_dma.c
1099
chan->phy = NULL;
drivers/dma/pxa_dma.c
1104
spin_unlock_irqrestore(&chan->vc.lock, flags);
drivers/dma/pxa_dma.c
1105
vchan_dma_desc_free_list(&chan->vc, &head);
drivers/dma/pxa_dma.c
1110
static unsigned int pxad_residue(struct pxad_chan *chan,
drivers/dma/pxa_dma.c
1125
if (!chan->phy)
drivers/dma/pxa_dma.c
1128
spin_lock_irqsave(&chan->vc.lock, flags);
drivers/dma/pxa_dma.c
1130
vd = vchan_find_desc(&chan->vc, cookie);
drivers/dma/pxa_dma.c
1136
curr = phy_readl_relaxed(chan->phy, DSADR);
drivers/dma/pxa_dma.c
1138
curr = phy_readl_relaxed(chan->phy, DTADR);
drivers/dma/pxa_dma.c
1179
spin_unlock_irqrestore(&chan->vc.lock, flags);
drivers/dma/pxa_dma.c
1180
dev_dbg(&chan->vc.chan.dev->device,
drivers/dma/pxa_dma.c
1190
struct pxad_chan *chan = to_pxad_chan(dchan);
drivers/dma/pxa_dma.c
1193
if (cookie == chan->bus_error)
drivers/dma/pxa_dma.c
1198
dma_set_residue(txstate, pxad_residue(chan, cookie));
drivers/dma/pxa_dma.c
1205
struct pxad_chan *chan = to_pxad_chan(dchan);
drivers/dma/pxa_dma.c
1207
wait_event(chan->wq_state, !is_chan_running(chan));
drivers/dma/pxa_dma.c
1208
vchan_synchronize(&chan->vc);
drivers/dma/pxa_dma.c
1216
vc.chan.device_node) {
drivers/dma/pxa_dma.c
1217
list_del(&c->vc.chan.device_node);
drivers/dma/pxa_dma.c
1284
struct dma_chan *chan;
drivers/dma/pxa_dma.c
1286
chan = dma_get_any_slave_channel(&d->slave);
drivers/dma/pxa_dma.c
1287
if (!chan)
drivers/dma/pxa_dma.c
1290
to_pxad_chan(chan)->drcmr = dma_spec->args[0];
drivers/dma/pxa_dma.c
1291
to_pxad_chan(chan)->prio = dma_spec->args[1];
drivers/dma/pxa_dma.c
1293
return chan;
drivers/dma/pxa_dma.c
140
container_of(dchan, struct pxad_chan, vc.chan)
drivers/dma/pxa_dma.c
1445
static bool pxad_filter_fn(struct dma_chan *chan, void *param)
drivers/dma/pxa_dma.c
1447
struct pxad_chan *c = to_pxad_chan(chan);
drivers/dma/pxa_dma.c
1450
if (chan->device->dev->driver != &pxad_driver.driver)
drivers/dma/pxa_dma.c
152
dev_vdbg(&phy->vchan->vc.chan.dev->device, \
drivers/dma/pxa_dma.c
160
dev_vdbg(&phy->vchan->vc.chan.dev->device, \
drivers/dma/pxa_dma.c
167
dev_vdbg(&phy->vchan->vc.chan.dev->device, \
drivers/dma/pxa_dma.c
179
static bool pxad_filter_fn(struct dma_chan *chan, void *param);
drivers/dma/pxa_dma.c
325
struct dentry *chan;
drivers/dma/pxa_dma.c
329
chan = debugfs_create_dir(chan_name, chandir);
drivers/dma/pxa_dma.c
332
debugfs_create_file("state", 0400, chan, dt, &chan_state_fops);
drivers/dma/pxa_dma.c
333
debugfs_create_file("descriptors", 0400, chan, dt, &descriptors_fops);
drivers/dma/pxa_dma.c
334
debugfs_create_file("requesters", 0400, chan, dt, &requester_chan_fops);
drivers/dma/pxa_dma.c
336
return chan;
drivers/dma/pxa_dma.c
371
struct pxad_device *pdev = to_pxad_dev(pchan->vc.chan.device);
drivers/dma/pxa_dma.c
399
dev_dbg(&pchan->vc.chan.dev->device,
drivers/dma/pxa_dma.c
406
static void pxad_free_phy(struct pxad_chan *chan)
drivers/dma/pxa_dma.c
408
struct pxad_device *pdev = to_pxad_dev(chan->vc.chan.device);
drivers/dma/pxa_dma.c
412
dev_dbg(&chan->vc.chan.dev->device,
drivers/dma/pxa_dma.c
414
if (!chan->phy)
drivers/dma/pxa_dma.c
418
if (chan->drcmr <= pdev->nr_requestors) {
drivers/dma/pxa_dma.c
419
reg = pxad_drcmr(chan->drcmr);
drivers/dma/pxa_dma.c
420
writel_relaxed(0, chan->phy->base + reg);
drivers/dma/pxa_dma.c
424
chan->phy->vchan = NULL;
drivers/dma/pxa_dma.c
425
chan->phy = NULL;
drivers/dma/pxa_dma.c
429
static bool is_chan_running(struct pxad_chan *chan)
drivers/dma/pxa_dma.c
432
struct pxad_phy *phy = chan->phy;
drivers/dma/pxa_dma.c
440
static bool is_running_chan_misaligned(struct pxad_chan *chan)
drivers/dma/pxa_dma.c
444
BUG_ON(!chan->phy);
drivers/dma/pxa_dma.c
445
dalgn = phy_readl_relaxed(chan->phy, DALGN);
drivers/dma/pxa_dma.c
446
return dalgn & (BIT(chan->phy->idx));
drivers/dma/pxa_dma.c
457
dev_dbg(&phy->vchan->vc.chan.dev->device,
drivers/dma/pxa_dma.c
461
pdev = to_pxad_dev(phy->vchan->vc.chan.device);
drivers/dma/pxa_dma.c
486
dev_dbg(&phy->vchan->vc.chan.dev->device,
drivers/dma/pxa_dma.c
491
static void pxad_launch_chan(struct pxad_chan *chan,
drivers/dma/pxa_dma.c
494
dev_dbg(&chan->vc.chan.dev->device,
drivers/dma/pxa_dma.c
496
if (!chan->phy) {
drivers/dma/pxa_dma.c
497
chan->phy = lookup_phy(chan);
drivers/dma/pxa_dma.c
498
if (!chan->phy) {
drivers/dma/pxa_dma.c
499
dev_dbg(&chan->vc.chan.dev->device,
drivers/dma/pxa_dma.c
504
chan->bus_error = 0;
drivers/dma/pxa_dma.c
510
phy_writel(chan->phy, desc->first, DDADR);
drivers/dma/pxa_dma.c
511
phy_enable(chan->phy, chan->misaligned);
drivers/dma/pxa_dma.c
512
wake_up(&chan->wq_state);
drivers/dma/pxa_dma.c
557
struct pxad_chan *chan = to_pxad_chan(&vc->chan);
drivers/dma/pxa_dma.c
566
if (is_chan_running(chan)) {
drivers/dma/pxa_dma.c
569
if (!is_running_chan_misaligned(chan) &&
drivers/dma/pxa_dma.c
576
if (is_chan_running(chan) || is_desc_completed(vd))
drivers/dma/pxa_dma.c
595
dev_warn(&phy->vchan->vc.chan.dev->device,
drivers/dma/pxa_dma.c
605
struct pxad_chan *chan = phy->vchan;
drivers/dma/pxa_dma.c
611
BUG_ON(!chan);
drivers/dma/pxa_dma.c
617
spin_lock(&chan->vc.lock);
drivers/dma/pxa_dma.c
618
list_for_each_entry_safe(vd, tmp, &chan->vc.desc_issued, node) {
drivers/dma/pxa_dma.c
620
dev_dbg(&chan->vc.chan.dev->device,
drivers/dma/pxa_dma.c
638
chan->bus_error = last_started;
drivers/dma/pxa_dma.c
642
if (!chan->bus_error && dcsr & PXA_DCSR_STOPSTATE) {
drivers/dma/pxa_dma.c
643
dev_dbg(&chan->vc.chan.dev->device,
drivers/dma/pxa_dma.c
646
list_empty(&chan->vc.desc_submitted),
drivers/dma/pxa_dma.c
647
list_empty(&chan->vc.desc_issued));
drivers/dma/pxa_dma.c
650
if (list_empty(&chan->vc.desc_issued)) {
drivers/dma/pxa_dma.c
651
chan->misaligned =
drivers/dma/pxa_dma.c
652
!list_empty(&chan->vc.desc_submitted);
drivers/dma/pxa_dma.c
654
vd = list_first_entry(&chan->vc.desc_issued,
drivers/dma/pxa_dma.c
656
pxad_launch_chan(chan, to_pxad_sw_desc(vd));
drivers/dma/pxa_dma.c
659
spin_unlock(&chan->vc.lock);
drivers/dma/pxa_dma.c
660
wake_up(&chan->wq_state);
drivers/dma/pxa_dma.c
685
struct pxad_chan *chan = to_pxad_chan(dchan);
drivers/dma/pxa_dma.c
686
struct pxad_device *pdev = to_pxad_dev(chan->vc.chan.device);
drivers/dma/pxa_dma.c
688
if (chan->desc_pool)
drivers/dma/pxa_dma.c
691
chan->desc_pool = dma_pool_create(dma_chan_name(dchan),
drivers/dma/pxa_dma.c
696
if (!chan->desc_pool) {
drivers/dma/pxa_dma.c
697
dev_err(&chan->vc.chan.dev->device,
drivers/dma/pxa_dma.c
708
struct pxad_chan *chan = to_pxad_chan(dchan);
drivers/dma/pxa_dma.c
710
vchan_free_chan_resources(&chan->vc);
drivers/dma/pxa_dma.c
711
dma_pool_destroy(chan->desc_pool);
drivers/dma/pxa_dma.c
712
chan->desc_pool = NULL;
drivers/dma/pxa_dma.c
714
chan->drcmr = U32_MAX;
drivers/dma/pxa_dma.c
715
chan->prio = PXAD_PRIO_LOWEST;
drivers/dma/pxa_dma.c
737
pxad_alloc_desc(struct pxad_chan *chan, unsigned int nb_hw_desc)
drivers/dma/pxa_dma.c
747
sw_desc->desc_pool = chan->desc_pool;
drivers/dma/pxa_dma.c
752
dev_err(&chan->vc.chan.dev->device,
drivers/dma/pxa_dma.c
775
struct virt_dma_chan *vc = to_virt_chan(tx->chan);
drivers/dma/pxa_dma.c
776
struct pxad_chan *chan = to_pxad_chan(&vc->chan);
drivers/dma/pxa_dma.c
789
dev_dbg(&chan->vc.chan.dev->device,
drivers/dma/pxa_dma.c
807
if (chan->misaligned || !to_pxad_sw_desc(vd)->misaligned)
drivers/dma/pxa_dma.c
812
dev_dbg(&chan->vc.chan.dev->device,
drivers/dma/pxa_dma.c
816
chan->misaligned |= to_pxad_sw_desc(vd)->misaligned;
drivers/dma/pxa_dma.c
825
struct pxad_chan *chan = to_pxad_chan(dchan);
drivers/dma/pxa_dma.c
829
spin_lock_irqsave(&chan->vc.lock, flags);
drivers/dma/pxa_dma.c
830
if (list_empty(&chan->vc.desc_submitted))
drivers/dma/pxa_dma.c
833
vd_first = list_first_entry(&chan->vc.desc_submitted,
drivers/dma/pxa_dma.c
835
dev_dbg(&chan->vc.chan.dev->device,
drivers/dma/pxa_dma.c
838
vchan_issue_pending(&chan->vc);
drivers/dma/pxa_dma.c
839
if (!pxad_try_hotchain(&chan->vc, vd_first))
drivers/dma/pxa_dma.c
840
pxad_launch_chan(chan, to_pxad_sw_desc(vd_first));
drivers/dma/pxa_dma.c
842
spin_unlock_irqrestore(&chan->vc.lock, flags);
drivers/dma/pxa_dma.c
850
struct pxad_chan *chan = container_of(vc, struct pxad_chan, vc);
drivers/dma/pxa_dma.c
855
dev_dbg(&chan->vc.chan.dev->device,
drivers/dma/pxa_dma.c
863
static void pxad_get_config(struct pxad_chan *chan,
drivers/dma/pxa_dma.c
869
struct pxad_device *pdev = to_pxad_dev(chan->vc.chan.device);
drivers/dma/pxa_dma.c
873
maxburst = chan->cfg.src_maxburst;
drivers/dma/pxa_dma.c
874
width = chan->cfg.src_addr_width;
drivers/dma/pxa_dma.c
875
dev_addr = chan->cfg.src_addr;
drivers/dma/pxa_dma.c
878
if (chan->drcmr <= pdev->nr_requestors)
drivers/dma/pxa_dma.c
882
maxburst = chan->cfg.dst_maxburst;
drivers/dma/pxa_dma.c
883
width = chan->cfg.dst_addr_width;
drivers/dma/pxa_dma.c
884
dev_addr = chan->cfg.dst_addr;
drivers/dma/pxa_dma.c
887
if (chan->drcmr <= pdev->nr_requestors)
drivers/dma/pxa_dma.c
894
dev_dbg(&chan->vc.chan.dev->device,
drivers/dma/pxa_dma.c
918
struct pxad_chan *chan = to_pxad_chan(dchan);
drivers/dma/pxa_dma.c
928
dev_dbg(&chan->vc.chan.dev->device,
drivers/dma/pxa_dma.c
932
pxad_get_config(chan, DMA_MEM_TO_MEM, &dcmd, NULL, NULL);
drivers/dma/pxa_dma.c
935
sw_desc = pxad_alloc_desc(chan, nb_desc + 1);
drivers/dma/pxa_dma.c
957
return pxad_tx_prep(&chan->vc, &sw_desc->vd, flags);
drivers/dma/pxa_dma.c
965
struct pxad_chan *chan = to_pxad_chan(dchan);
drivers/dma/pxa_dma.c
976
pxad_get_config(chan, dir, &dcmd, &dsadr, &dtadr);
drivers/dma/pxa_dma.c
977
dev_dbg(&chan->vc.chan.dev->device,
drivers/dma/pxa_dma.c
981
sw_desc = pxad_alloc_desc(chan, nb_desc + 1);
drivers/dma/qcom/bam_dma.c
1152
static void bam_issue_pending(struct dma_chan *chan)
drivers/dma/qcom/bam_dma.c
1154
struct bam_chan *bchan = to_bam_chan(chan);
drivers/dma/qcom/bam_dma.c
1190
return dma_get_slave_channel(&(bdev->channels[request].vc.chan));
drivers/dma/qcom/bam_dma.c
1415
bam_dma_terminate_all(&bdev->channels[i].vc.chan);
drivers/dma/qcom/bam_dma.c
374
#define IS_BUSY(chan) (CIRC_SPACE(bchan->tail, bchan->head,\
drivers/dma/qcom/bam_dma.c
407
return container_of(common, struct bam_chan, vc.chan);
drivers/dma/qcom/bam_dma.c
568
static int bam_alloc_chan(struct dma_chan *chan)
drivers/dma/qcom/bam_dma.c
570
struct bam_chan *bchan = to_bam_chan(chan);
drivers/dma/qcom/bam_dma.c
598
static void bam_free_chan(struct dma_chan *chan)
drivers/dma/qcom/bam_dma.c
600
struct bam_chan *bchan = to_bam_chan(chan);
drivers/dma/qcom/bam_dma.c
609
vchan_free_chan_resources(to_virt_chan(chan));
drivers/dma/qcom/bam_dma.c
651
static int bam_slave_config(struct dma_chan *chan,
drivers/dma/qcom/bam_dma.c
654
struct bam_chan *bchan = to_bam_chan(chan);
drivers/dma/qcom/bam_dma.c
674
static struct dma_async_tx_descriptor *bam_prep_slave_sg(struct dma_chan *chan,
drivers/dma/qcom/bam_dma.c
679
struct bam_chan *bchan = to_bam_chan(chan);
drivers/dma/qcom/bam_dma.c
746
static int bam_dma_terminate_all(struct dma_chan *chan)
drivers/dma/qcom/bam_dma.c
748
struct bam_chan *bchan = to_bam_chan(chan);
drivers/dma/qcom/bam_dma.c
792
static int bam_pause(struct dma_chan *chan)
drivers/dma/qcom/bam_dma.c
794
struct bam_chan *bchan = to_bam_chan(chan);
drivers/dma/qcom/bam_dma.c
817
static int bam_resume(struct dma_chan *chan)
drivers/dma/qcom/bam_dma.c
819
struct bam_chan *bchan = to_bam_chan(chan);
drivers/dma/qcom/bam_dma.c
959
static enum dma_status bam_tx_status(struct dma_chan *chan, dma_cookie_t cookie,
drivers/dma/qcom/bam_dma.c
962
struct bam_chan *bchan = to_bam_chan(chan);
drivers/dma/qcom/bam_dma.c
969
ret = dma_cookie_status(chan, cookie, txstate);
drivers/dma/qcom/gpi.c
1252
static int gpi_alloc_chan(struct gchan *chan, bool send_alloc_cmd)
drivers/dma/qcom/gpi.c
1254
struct gpii *gpii = chan->gpii;
drivers/dma/qcom/gpi.c
1255
struct gpi_ring *ring = &chan->ch_ring;
drivers/dma/qcom/gpi.c
1258
u32 chid = chan->chid;
drivers/dma/qcom/gpi.c
1262
ret = gpi_send_cmd(gpii, chan, GPI_CH_CMD_ALLOCATE);
drivers/dma/qcom/gpi.c
1270
gpi_write_reg(gpii, chan->ch_cntxt_base_reg + CNTXT_0_CONFIG,
drivers/dma/qcom/gpi.c
1271
GPII_n_CH_k_CNTXT_0(ring->el_size, 0, chan->dir, GPI_CHTYPE_PROTO_GPI));
drivers/dma/qcom/gpi.c
1272
gpi_write_reg(gpii, chan->ch_cntxt_base_reg + CNTXT_1_R_LENGTH, ring->len);
drivers/dma/qcom/gpi.c
1273
gpi_write_reg(gpii, chan->ch_cntxt_base_reg + CNTXT_2_RING_BASE_LSB, ring->phys_addr);
drivers/dma/qcom/gpi.c
1274
gpi_write_reg(gpii, chan->ch_cntxt_base_reg + CNTXT_3_RING_BASE_MSB,
drivers/dma/qcom/gpi.c
1276
gpi_write_reg(gpii, chan->ch_cntxt_db_reg + CNTXT_5_RING_RP_MSB - CNTXT_4_RING_RP_LSB,
drivers/dma/qcom/gpi.c
1279
GPII_n_CH_k_SCRATCH_0(pair_chid, chan->protocol, chan->seid));
drivers/dma/qcom/gpi.c
1458
static int gpi_terminate_all(struct dma_chan *chan)
drivers/dma/qcom/gpi.c
1460
struct gchan *gchan = to_gchan(chan);
drivers/dma/qcom/gpi.c
1522
static int gpi_pause(struct dma_chan *chan)
drivers/dma/qcom/gpi.c
1524
struct gchan *gchan = to_gchan(chan);
drivers/dma/qcom/gpi.c
1563
static int gpi_resume(struct dma_chan *chan)
drivers/dma/qcom/gpi.c
1565
struct gchan *gchan = to_gchan(chan);
drivers/dma/qcom/gpi.c
1605
gpi_peripheral_config(struct dma_chan *chan, struct dma_slave_config *config)
drivers/dma/qcom/gpi.c
1607
struct gchan *gchan = to_gchan(chan);
drivers/dma/qcom/gpi.c
1623
static int gpi_create_i2c_tre(struct gchan *chan, struct gpi_desc *desc,
drivers/dma/qcom/gpi.c
1627
struct gpi_i2c_config *i2c = chan->config;
drivers/dma/qcom/gpi.c
1628
struct device *dev = chan->gpii->gpi_dev->dev;
drivers/dma/qcom/gpi.c
1702
static int gpi_create_spi_tre(struct gchan *chan, struct gpi_desc *desc,
drivers/dma/qcom/gpi.c
1705
struct gpi_spi_config *spi = chan->config;
drivers/dma/qcom/gpi.c
1706
struct device *dev = chan->gpii->gpi_dev->dev;
drivers/dma/qcom/gpi.c
1798
gpi_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
drivers/dma/qcom/gpi.c
1802
struct gchan *gchan = to_gchan(chan);
drivers/dma/qcom/gpi.c
1863
static void gpi_issue_pending(struct dma_chan *chan)
drivers/dma/qcom/gpi.c
1865
struct gchan *gchan = to_gchan(chan);
drivers/dma/qcom/gpi.c
1983
static void gpi_free_chan_resources(struct dma_chan *chan)
drivers/dma/qcom/gpi.c
1985
struct gchan *gchan = to_gchan(chan);
drivers/dma/qcom/gpi.c
2053
static int gpi_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/qcom/gpi.c
2055
struct gchan *gchan = to_gchan(chan);
drivers/dma/qcom/gpi.c
2091
if (rx_chan->vc.chan.client_count && rx_chan->seid == seid)
drivers/dma/qcom/gpi.c
2093
if (tx_chan->vc.chan.client_count && tx_chan->seid == seid)
drivers/dma/qcom/gpi.c
2106
if (tx_chan->vc.chan.client_count ||
drivers/dma/qcom/gpi.c
2107
rx_chan->vc.chan.client_count)
drivers/dma/qcom/gpi.c
2149
if (gchan->vc.chan.client_count) {
drivers/dma/qcom/gpi.c
2158
return dma_get_slave_channel(&gchan->vc.chan);
drivers/dma/qcom/gpi.c
2212
int chan;
drivers/dma/qcom/gpi.c
2231
for (chan = 0; chan < MAX_CHANNELS_PER_GPII; chan++) {
drivers/dma/qcom/gpi.c
2232
struct gchan *gchan = &gpii->gchan[chan];
drivers/dma/qcom/gpi.c
2236
GPII_n_CH_k_CNTXT_0_OFFS(i, chan);
drivers/dma/qcom/gpi.c
2238
GPII_n_CH_k_DOORBELL_0_OFFS(i, chan);
drivers/dma/qcom/gpi.c
2244
gchan->chid = chan;
drivers/dma/qcom/gpi.c
2246
gchan->dir = GPII_CHAN_DIR[chan];
drivers/dma/qcom/gpi.c
543
return container_of(dma_chan, struct gchan, vc.chan);
drivers/dma/qcom/hidma.c
108
struct dma_device *ddev = mchan->chan.device;
drivers/dma/qcom/hidma.c
166
struct hidma_chan *mchan = to_hidma_chan(mdesc->desc.chan);
drivers/dma/qcom/hidma.c
167
struct dma_device *ddev = mchan->chan.device;
drivers/dma/qcom/hidma.c
204
mchan->chan.device = ddev;
drivers/dma/qcom/hidma.c
205
dma_cookie_init(&mchan->chan);
drivers/dma/qcom/hidma.c
214
list_add_tail(&mchan->chan.device_node, &ddev->channels);
drivers/dma/qcom/hidma.c
310
struct hidma_chan *mchan = to_hidma_chan(txd->chan);
drivers/dma/qcom/hidma.c
467
static int hidma_terminate_channel(struct dma_chan *chan)
drivers/dma/qcom/hidma.c
469
struct hidma_chan *mchan = to_hidma_chan(chan);
drivers/dma/qcom/hidma.c
470
struct hidma_dev *dmadev = to_hidma_dev(mchan->chan.device);
drivers/dma/qcom/hidma.c
514
static int hidma_terminate_all(struct dma_chan *chan)
drivers/dma/qcom/hidma.c
516
struct hidma_chan *mchan = to_hidma_chan(chan);
drivers/dma/qcom/hidma.c
517
struct hidma_dev *dmadev = to_hidma_dev(mchan->chan.device);
drivers/dma/qcom/hidma.c
520
rc = hidma_terminate_channel(chan);
drivers/dma/qcom/hidma.c
559
static int hidma_pause(struct dma_chan *chan)
drivers/dma/qcom/hidma.c
564
mchan = to_hidma_chan(chan);
drivers/dma/qcom/hidma.c
565
dmadev = to_hidma_dev(mchan->chan.device);
drivers/dma/qcom/hidma.c
577
static int hidma_resume(struct dma_chan *chan)
drivers/dma/qcom/hidma.c
583
mchan = to_hidma_chan(chan);
drivers/dma/qcom/hidma.c
584
dmadev = to_hidma_dev(mchan->chan.device);
drivers/dma/qcom/hidma.c
88
return container_of(dmach, struct hidma_chan, chan);
drivers/dma/qcom/hidma.h
99
struct dma_chan chan;
drivers/dma/qcom/hidma_dbg.c
151
struct hidma_chan *chan;
drivers/dma/qcom/hidma_dbg.c
153
chan = list_entry(position, struct hidma_chan,
drivers/dma/qcom/hidma_dbg.c
154
chan.device_node);
drivers/dma/qcom/hidma_dbg.c
155
sprintf(chan->dbg_name, "chan%d", chidx);
drivers/dma/qcom/hidma_dbg.c
156
dir = debugfs_create_dir(chan->dbg_name,
drivers/dma/qcom/hidma_dbg.c
158
debugfs_create_file("stats", S_IRUGO, dir, chan,
drivers/dma/qcom/qcom_adm.c
154
return container_of(common, struct adm_chan, vc.chan);
drivers/dma/qcom/qcom_adm.c
183
static void adm_free_chan(struct dma_chan *chan)
drivers/dma/qcom/qcom_adm.c
186
vchan_free_chan_resources(to_virt_chan(chan));
drivers/dma/qcom/qcom_adm.c
34
#define ADM_CHAN_OFFS(chan) (ADM_CHAN_MULTI * (chan))
drivers/dma/qcom/qcom_adm.c
346
static struct dma_async_tx_descriptor *adm_prep_slave_sg(struct dma_chan *chan,
drivers/dma/qcom/qcom_adm.c
353
struct adm_chan *achan = to_adm_chan(chan);
drivers/dma/qcom/qcom_adm.c
36
#define ADM_CHAN_EE_OFFS(chan, ee) (ADM_CHAN_OFFS(chan) + ADM_EE_OFFS(ee))
drivers/dma/qcom/qcom_adm.c
37
#define ADM_CHAN_OFFS(chan) (ADM_CHAN_MULTI * (chan))
drivers/dma/qcom/qcom_adm.c
39
#define ADM_CH_CMD_PTR(chan, ee) (ADM_CHAN_EE_OFFS(chan, ee))
drivers/dma/qcom/qcom_adm.c
40
#define ADM_CH_RSLT(chan, ee) (0x40 + ADM_CHAN_EE_OFFS(chan, ee))
drivers/dma/qcom/qcom_adm.c
41
#define ADM_CH_FLUSH_STATE0(chan, ee) (0x80 + ADM_CHAN_EE_OFFS(chan, ee))
drivers/dma/qcom/qcom_adm.c
42
#define ADM_CH_STATUS_SD(chan, ee) (0x200 + ADM_CHAN_EE_OFFS(chan, ee))
drivers/dma/qcom/qcom_adm.c
43
#define ADM_CH_CONF(chan) (0x240 + ADM_CHAN_OFFS(chan))
drivers/dma/qcom/qcom_adm.c
44
#define ADM_CH_RSLT_CONF(chan, ee) (0x300 + ADM_CHAN_EE_OFFS(chan, ee))
drivers/dma/qcom/qcom_adm.c
473
static int adm_terminate_all(struct dma_chan *chan)
drivers/dma/qcom/qcom_adm.c
475
struct adm_chan *achan = to_adm_chan(chan);
drivers/dma/qcom/qcom_adm.c
494
static int adm_slave_config(struct dma_chan *chan, struct dma_slave_config *cfg)
drivers/dma/qcom/qcom_adm.c
496
struct adm_chan *achan = to_adm_chan(chan);
drivers/dma/qcom/qcom_adm.c
628
static enum dma_status adm_tx_status(struct dma_chan *chan, dma_cookie_t cookie,
drivers/dma/qcom/qcom_adm.c
631
struct adm_chan *achan = to_adm_chan(chan);
drivers/dma/qcom/qcom_adm.c
637
ret = dma_cookie_status(chan, cookie, txstate);
drivers/dma/qcom/qcom_adm.c
668
static void adm_issue_pending(struct dma_chan *chan)
drivers/dma/qcom/qcom_adm.c
670
struct adm_chan *achan = to_adm_chan(chan);
drivers/dma/qcom/qcom_adm.c
721
struct dma_chan *chan, *candidate = NULL;
drivers/dma/qcom/qcom_adm.c
727
list_for_each_entry(chan, &dev->channels, device_node)
drivers/dma/qcom/qcom_adm.c
728
if (chan->chan_id == dma_spec->args[0]) {
drivers/dma/qcom/qcom_adm.c
729
candidate = chan;
drivers/dma/qcom/qcom_adm.c
922
adm_terminate_all(&adev->channels[i].vc.chan);
drivers/dma/sa11x0-dma.c
126
static struct sa11x0_dma_chan *to_sa11x0_dma_chan(struct dma_chan *chan)
drivers/dma/sa11x0-dma.c
128
return container_of(chan, struct sa11x0_dma_chan, vc.chan);
drivers/dma/sa11x0-dma.c
335
list_for_each_entry(c, &d->slave.channels, vc.chan.device_node) {
drivers/dma/sa11x0-dma.c
388
static void sa11x0_dma_free_chan_resources(struct dma_chan *chan)
drivers/dma/sa11x0-dma.c
390
struct sa11x0_dma_chan *c = to_sa11x0_dma_chan(chan);
drivers/dma/sa11x0-dma.c
391
struct sa11x0_dma_dev *d = to_sa11x0_dma(chan->device);
drivers/dma/sa11x0-dma.c
417
static enum dma_status sa11x0_dma_tx_status(struct dma_chan *chan,
drivers/dma/sa11x0-dma.c
420
struct sa11x0_dma_chan *c = to_sa11x0_dma_chan(chan);
drivers/dma/sa11x0-dma.c
421
struct sa11x0_dma_dev *d = to_sa11x0_dma(chan->device);
drivers/dma/sa11x0-dma.c
427
ret = dma_cookie_status(&c->vc.chan, cookie, state);
drivers/dma/sa11x0-dma.c
500
static void sa11x0_dma_issue_pending(struct dma_chan *chan)
drivers/dma/sa11x0-dma.c
502
struct sa11x0_dma_chan *c = to_sa11x0_dma_chan(chan);
drivers/dma/sa11x0-dma.c
503
struct sa11x0_dma_dev *d = to_sa11x0_dma(chan->device);
drivers/dma/sa11x0-dma.c
523
struct dma_chan *chan, struct scatterlist *sg, unsigned int sglen,
drivers/dma/sa11x0-dma.c
526
struct sa11x0_dma_chan *c = to_sa11x0_dma_chan(chan);
drivers/dma/sa11x0-dma.c
534
dev_err(chan->device->dev, "vchan %p: bad DMA direction: DDAR:%08x dir:%u\n",
drivers/dma/sa11x0-dma.c
547
dev_dbg(chan->device->dev, "vchan %p: bad buffer alignment: %pad\n",
drivers/dma/sa11x0-dma.c
556
dev_dbg(chan->device->dev, "vchan %p: kzalloc failed\n", &c->vc);
drivers/dma/sa11x0-dma.c
596
dev_dbg(chan->device->dev, "vchan %p: txd %p: size %zu nr %u\n",
drivers/dma/sa11x0-dma.c
603
struct dma_chan *chan, dma_addr_t addr, size_t size, size_t period,
drivers/dma/sa11x0-dma.c
606
struct sa11x0_dma_chan *c = to_sa11x0_dma_chan(chan);
drivers/dma/sa11x0-dma.c
612
dev_err(chan->device->dev, "vchan %p: bad DMA direction: DDAR:%08x dir:%u\n",
drivers/dma/sa11x0-dma.c
626
dev_dbg(chan->device->dev, "vchan %p: kzalloc failed\n", &c->vc);
drivers/dma/sa11x0-dma.c
661
static int sa11x0_dma_device_config(struct dma_chan *chan,
drivers/dma/sa11x0-dma.c
664
struct sa11x0_dma_chan *c = to_sa11x0_dma_chan(chan);
drivers/dma/sa11x0-dma.c
690
dev_dbg(c->vc.chan.device->dev, "vchan %p: dma_slave_config addr %pad width %u burst %u\n",
drivers/dma/sa11x0-dma.c
698
static int sa11x0_dma_device_pause(struct dma_chan *chan)
drivers/dma/sa11x0-dma.c
700
struct sa11x0_dma_chan *c = to_sa11x0_dma_chan(chan);
drivers/dma/sa11x0-dma.c
701
struct sa11x0_dma_dev *d = to_sa11x0_dma(chan->device);
drivers/dma/sa11x0-dma.c
724
static int sa11x0_dma_device_resume(struct dma_chan *chan)
drivers/dma/sa11x0-dma.c
726
struct sa11x0_dma_chan *c = to_sa11x0_dma_chan(chan);
drivers/dma/sa11x0-dma.c
727
struct sa11x0_dma_dev *d = to_sa11x0_dma(chan->device);
drivers/dma/sa11x0-dma.c
750
static int sa11x0_dma_device_terminate_all(struct dma_chan *chan)
drivers/dma/sa11x0-dma.c
752
struct sa11x0_dma_chan *c = to_sa11x0_dma_chan(chan);
drivers/dma/sa11x0-dma.c
753
struct sa11x0_dma_dev *d = to_sa11x0_dma(chan->device);
drivers/dma/sa11x0-dma.c
825
static bool sa11x0_dma_filter_fn(struct dma_chan *chan, void *param)
drivers/dma/sa11x0-dma.c
827
struct sa11x0_dma_chan *c = to_sa11x0_dma_chan(chan);
drivers/dma/sa11x0-dma.c
892
list_for_each_entry_safe(c, cn, &dmadev->channels, vc.chan.device_node) {
drivers/dma/sa11x0-dma.c
893
list_del(&c->vc.chan.device_node);
drivers/dma/sf-pdma/sf-pdma.c
102
desc->async_tx = vchan_tx_prep(&chan->vchan, &desc->vdesc, flags);
drivers/dma/sf-pdma/sf-pdma.c
104
spin_lock_irqsave(&chan->vchan.lock, iflags);
drivers/dma/sf-pdma/sf-pdma.c
106
spin_unlock_irqrestore(&chan->vchan.lock, iflags);
drivers/dma/sf-pdma/sf-pdma.c
114
struct sf_pdma_chan *chan = to_sf_pdma_chan(dchan);
drivers/dma/sf-pdma/sf-pdma.c
116
memcpy(&chan->cfg, cfg, sizeof(*cfg));
drivers/dma/sf-pdma/sf-pdma.c
123
struct sf_pdma_chan *chan = to_sf_pdma_chan(dchan);
drivers/dma/sf-pdma/sf-pdma.c
124
struct pdma_regs *regs = &chan->regs;
drivers/dma/sf-pdma/sf-pdma.c
132
static void sf_pdma_disable_request(struct sf_pdma_chan *chan)
drivers/dma/sf-pdma/sf-pdma.c
134
struct pdma_regs *regs = &chan->regs;
drivers/dma/sf-pdma/sf-pdma.c
141
struct sf_pdma_chan *chan = to_sf_pdma_chan(dchan);
drivers/dma/sf-pdma/sf-pdma.c
145
spin_lock_irqsave(&chan->vchan.lock, flags);
drivers/dma/sf-pdma/sf-pdma.c
146
sf_pdma_disable_request(chan);
drivers/dma/sf-pdma/sf-pdma.c
147
kfree(chan->desc);
drivers/dma/sf-pdma/sf-pdma.c
148
chan->desc = NULL;
drivers/dma/sf-pdma/sf-pdma.c
149
vchan_get_all_descriptors(&chan->vchan, &head);
drivers/dma/sf-pdma/sf-pdma.c
150
sf_pdma_disclaim_chan(chan);
drivers/dma/sf-pdma/sf-pdma.c
151
spin_unlock_irqrestore(&chan->vchan.lock, flags);
drivers/dma/sf-pdma/sf-pdma.c
152
vchan_dma_desc_free_list(&chan->vchan, &head);
drivers/dma/sf-pdma/sf-pdma.c
155
static size_t sf_pdma_desc_residue(struct sf_pdma_chan *chan,
drivers/dma/sf-pdma/sf-pdma.c
159
struct pdma_regs *regs = &chan->regs;
drivers/dma/sf-pdma/sf-pdma.c
165
spin_lock_irqsave(&chan->vchan.lock, flags);
drivers/dma/sf-pdma/sf-pdma.c
167
list_for_each_entry(vd, &chan->vchan.desc_submitted, node)
drivers/dma/sf-pdma/sf-pdma.c
174
if (cookie == tx->chan->completed_cookie)
drivers/dma/sf-pdma/sf-pdma.c
180
vd = vchan_find_desc(&chan->vchan, cookie);
drivers/dma/sf-pdma/sf-pdma.c
189
spin_unlock_irqrestore(&chan->vchan.lock, flags);
drivers/dma/sf-pdma/sf-pdma.c
198
struct sf_pdma_chan *chan = to_sf_pdma_chan(dchan);
drivers/dma/sf-pdma/sf-pdma.c
204
dma_set_residue(txstate, sf_pdma_desc_residue(chan, cookie));
drivers/dma/sf-pdma/sf-pdma.c
211
struct sf_pdma_chan *chan = to_sf_pdma_chan(dchan);
drivers/dma/sf-pdma/sf-pdma.c
215
spin_lock_irqsave(&chan->vchan.lock, flags);
drivers/dma/sf-pdma/sf-pdma.c
216
sf_pdma_disable_request(chan);
drivers/dma/sf-pdma/sf-pdma.c
217
kfree(chan->desc);
drivers/dma/sf-pdma/sf-pdma.c
218
chan->desc = NULL;
drivers/dma/sf-pdma/sf-pdma.c
219
chan->xfer_err = false;
drivers/dma/sf-pdma/sf-pdma.c
220
vchan_get_all_descriptors(&chan->vchan, &head);
drivers/dma/sf-pdma/sf-pdma.c
221
spin_unlock_irqrestore(&chan->vchan.lock, flags);
drivers/dma/sf-pdma/sf-pdma.c
222
vchan_dma_desc_free_list(&chan->vchan, &head);
drivers/dma/sf-pdma/sf-pdma.c
227
static void sf_pdma_enable_request(struct sf_pdma_chan *chan)
drivers/dma/sf-pdma/sf-pdma.c
229
struct pdma_regs *regs = &chan->regs;
drivers/dma/sf-pdma/sf-pdma.c
240
static struct sf_pdma_desc *sf_pdma_get_first_pending_desc(struct sf_pdma_chan *chan)
drivers/dma/sf-pdma/sf-pdma.c
242
struct virt_dma_chan *vchan = &chan->vchan;
drivers/dma/sf-pdma/sf-pdma.c
253
static void sf_pdma_xfer_desc(struct sf_pdma_chan *chan)
drivers/dma/sf-pdma/sf-pdma.c
255
struct sf_pdma_desc *desc = chan->desc;
drivers/dma/sf-pdma/sf-pdma.c
256
struct pdma_regs *regs = &chan->regs;
drivers/dma/sf-pdma/sf-pdma.c
259
dev_err(chan->pdma->dma_dev.dev, "NULL desc.\n");
drivers/dma/sf-pdma/sf-pdma.c
268
chan->desc = desc;
drivers/dma/sf-pdma/sf-pdma.c
269
chan->status = DMA_IN_PROGRESS;
drivers/dma/sf-pdma/sf-pdma.c
270
sf_pdma_enable_request(chan);
drivers/dma/sf-pdma/sf-pdma.c
275
struct sf_pdma_chan *chan = to_sf_pdma_chan(dchan);
drivers/dma/sf-pdma/sf-pdma.c
278
spin_lock_irqsave(&chan->vchan.lock, flags);
drivers/dma/sf-pdma/sf-pdma.c
280
if (!chan->desc && vchan_issue_pending(&chan->vchan)) {
drivers/dma/sf-pdma/sf-pdma.c
282
chan->desc = sf_pdma_get_first_pending_desc(chan);
drivers/dma/sf-pdma/sf-pdma.c
283
sf_pdma_xfer_desc(chan);
drivers/dma/sf-pdma/sf-pdma.c
286
spin_unlock_irqrestore(&chan->vchan.lock, flags);
drivers/dma/sf-pdma/sf-pdma.c
299
struct sf_pdma_chan *chan = from_tasklet(chan, t, done_tasklet);
drivers/dma/sf-pdma/sf-pdma.c
302
spin_lock_irqsave(&chan->lock, flags);
drivers/dma/sf-pdma/sf-pdma.c
303
if (chan->xfer_err) {
drivers/dma/sf-pdma/sf-pdma.c
304
chan->retries = MAX_RETRY;
drivers/dma/sf-pdma/sf-pdma.c
305
chan->status = DMA_COMPLETE;
drivers/dma/sf-pdma/sf-pdma.c
306
chan->xfer_err = false;
drivers/dma/sf-pdma/sf-pdma.c
308
spin_unlock_irqrestore(&chan->lock, flags);
drivers/dma/sf-pdma/sf-pdma.c
310
spin_lock_irqsave(&chan->vchan.lock, flags);
drivers/dma/sf-pdma/sf-pdma.c
311
list_del(&chan->desc->vdesc.node);
drivers/dma/sf-pdma/sf-pdma.c
312
vchan_cookie_complete(&chan->desc->vdesc);
drivers/dma/sf-pdma/sf-pdma.c
314
chan->desc = sf_pdma_get_first_pending_desc(chan);
drivers/dma/sf-pdma/sf-pdma.c
315
if (chan->desc)
drivers/dma/sf-pdma/sf-pdma.c
316
sf_pdma_xfer_desc(chan);
drivers/dma/sf-pdma/sf-pdma.c
318
spin_unlock_irqrestore(&chan->vchan.lock, flags);
drivers/dma/sf-pdma/sf-pdma.c
323
struct sf_pdma_chan *chan = from_tasklet(chan, t, err_tasklet);
drivers/dma/sf-pdma/sf-pdma.c
324
struct sf_pdma_desc *desc = chan->desc;
drivers/dma/sf-pdma/sf-pdma.c
327
spin_lock_irqsave(&chan->lock, flags);
drivers/dma/sf-pdma/sf-pdma.c
328
if (chan->retries <= 0) {
drivers/dma/sf-pdma/sf-pdma.c
330
spin_unlock_irqrestore(&chan->lock, flags);
drivers/dma/sf-pdma/sf-pdma.c
334
chan->retries--;
drivers/dma/sf-pdma/sf-pdma.c
335
chan->xfer_err = true;
drivers/dma/sf-pdma/sf-pdma.c
336
chan->status = DMA_ERROR;
drivers/dma/sf-pdma/sf-pdma.c
338
sf_pdma_enable_request(chan);
drivers/dma/sf-pdma/sf-pdma.c
339
spin_unlock_irqrestore(&chan->lock, flags);
drivers/dma/sf-pdma/sf-pdma.c
345
struct sf_pdma_chan *chan = dev_id;
drivers/dma/sf-pdma/sf-pdma.c
346
struct pdma_regs *regs = &chan->regs;
drivers/dma/sf-pdma/sf-pdma.c
349
spin_lock(&chan->vchan.lock);
drivers/dma/sf-pdma/sf-pdma.c
354
tasklet_hi_schedule(&chan->done_tasklet);
drivers/dma/sf-pdma/sf-pdma.c
357
struct sf_pdma_desc *desc = chan->desc;
drivers/dma/sf-pdma/sf-pdma.c
363
sf_pdma_xfer_desc(chan);
drivers/dma/sf-pdma/sf-pdma.c
366
spin_unlock(&chan->vchan.lock);
drivers/dma/sf-pdma/sf-pdma.c
373
struct sf_pdma_chan *chan = dev_id;
drivers/dma/sf-pdma/sf-pdma.c
374
struct pdma_regs *regs = &chan->regs;
drivers/dma/sf-pdma/sf-pdma.c
376
spin_lock(&chan->lock);
drivers/dma/sf-pdma/sf-pdma.c
378
spin_unlock(&chan->lock);
drivers/dma/sf-pdma/sf-pdma.c
380
tasklet_schedule(&chan->err_tasklet);
drivers/dma/sf-pdma/sf-pdma.c
403
struct sf_pdma_chan *chan;
drivers/dma/sf-pdma/sf-pdma.c
406
chan = &pdma->chans[i];
drivers/dma/sf-pdma/sf-pdma.c
413
dev_name(&pdev->dev), (void *)chan);
drivers/dma/sf-pdma/sf-pdma.c
419
chan->txirq = irq;
drivers/dma/sf-pdma/sf-pdma.c
426
dev_name(&pdev->dev), (void *)chan);
drivers/dma/sf-pdma/sf-pdma.c
432
chan->errirq = irq;
drivers/dma/sf-pdma/sf-pdma.c
453
struct sf_pdma_chan *chan;
drivers/dma/sf-pdma/sf-pdma.c
458
chan = &pdma->chans[i];
drivers/dma/sf-pdma/sf-pdma.c
46
return container_of(dchan, struct sf_pdma_chan, vchan.chan);
drivers/dma/sf-pdma/sf-pdma.c
460
chan->regs.ctrl =
drivers/dma/sf-pdma/sf-pdma.c
462
chan->regs.xfer_type =
drivers/dma/sf-pdma/sf-pdma.c
464
chan->regs.xfer_size =
drivers/dma/sf-pdma/sf-pdma.c
466
chan->regs.dst_addr =
drivers/dma/sf-pdma/sf-pdma.c
468
chan->regs.src_addr =
drivers/dma/sf-pdma/sf-pdma.c
470
chan->regs.act_type =
drivers/dma/sf-pdma/sf-pdma.c
472
chan->regs.residue =
drivers/dma/sf-pdma/sf-pdma.c
474
chan->regs.cur_dst_addr =
drivers/dma/sf-pdma/sf-pdma.c
476
chan->regs.cur_src_addr =
drivers/dma/sf-pdma/sf-pdma.c
479
chan->pdma = pdma;
drivers/dma/sf-pdma/sf-pdma.c
480
chan->pm_state = RUNNING;
drivers/dma/sf-pdma/sf-pdma.c
481
chan->slave_id = i;
drivers/dma/sf-pdma/sf-pdma.c
482
chan->xfer_err = false;
drivers/dma/sf-pdma/sf-pdma.c
483
spin_lock_init(&chan->lock);
drivers/dma/sf-pdma/sf-pdma.c
485
chan->vchan.desc_free = sf_pdma_free_desc;
drivers/dma/sf-pdma/sf-pdma.c
486
vchan_init(&chan->vchan, &pdma->dma_dev);
drivers/dma/sf-pdma/sf-pdma.c
488
writel(PDMA_CLEAR_CTRL, chan->regs.ctrl);
drivers/dma/sf-pdma/sf-pdma.c
490
tasklet_setup(&chan->done_tasklet, sf_pdma_donebh_tasklet);
drivers/dma/sf-pdma/sf-pdma.c
491
tasklet_setup(&chan->err_tasklet, sf_pdma_errbh_tasklet);
drivers/dma/sf-pdma/sf-pdma.c
54
static struct sf_pdma_desc *sf_pdma_alloc_desc(struct sf_pdma_chan *chan)
drivers/dma/sf-pdma/sf-pdma.c
604
list_del(&ch->vchan.chan.device_node);
drivers/dma/sf-pdma/sf-pdma.c
62
desc->chan = chan;
drivers/dma/sf-pdma/sf-pdma.c
70
desc->xfer_type = desc->chan->pdma->transfer_type;
drivers/dma/sf-pdma/sf-pdma.c
76
static void sf_pdma_disclaim_chan(struct sf_pdma_chan *chan)
drivers/dma/sf-pdma/sf-pdma.c
78
struct pdma_regs *regs = &chan->regs;
drivers/dma/sf-pdma/sf-pdma.c
87
struct sf_pdma_chan *chan = to_sf_pdma_chan(dchan);
drivers/dma/sf-pdma/sf-pdma.c
91
if (chan && (!len || !dest || !src)) {
drivers/dma/sf-pdma/sf-pdma.c
92
dev_err(chan->pdma->dma_dev.dev,
drivers/dma/sf-pdma/sf-pdma.c
97
desc = sf_pdma_alloc_desc(chan);
drivers/dma/sf-pdma/sf-pdma.h
81
struct sf_pdma_chan *chan;
drivers/dma/sh/rcar-dmac.c
1000
rcar_dmac_desc_put(chan, desc);
drivers/dma/sh/rcar-dmac.c
1014
dev_dbg(chan->chan.device->dev,
drivers/dma/sh/rcar-dmac.c
1016
chan->index, chunk, desc, i, sg, size, len,
drivers/dma/sh/rcar-dmac.c
1043
if (rcar_dmac_fill_hwdesc(chan, desc) < 0)
drivers/dma/sh/rcar-dmac.c
1054
static int rcar_dmac_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/sh/rcar-dmac.c
1056
struct rcar_dmac_chan *rchan = to_rcar_dmac_chan(chan);
drivers/dma/sh/rcar-dmac.c
1071
return pm_runtime_get_sync(chan->device->dev);
drivers/dma/sh/rcar-dmac.c
1074
static void rcar_dmac_free_chan_resources(struct dma_chan *chan)
drivers/dma/sh/rcar-dmac.c
1076
struct rcar_dmac_chan *rchan = to_rcar_dmac_chan(chan);
drivers/dma/sh/rcar-dmac.c
1077
struct rcar_dmac *dmac = to_rcar_dmac(chan->device);
drivers/dma/sh/rcar-dmac.c
1118
dma_unmap_resource(chan->device->dev, map->addr,
drivers/dma/sh/rcar-dmac.c
1123
pm_runtime_put(chan->device->dev);
drivers/dma/sh/rcar-dmac.c
1127
rcar_dmac_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dma_dest,
drivers/dma/sh/rcar-dmac.c
1130
struct rcar_dmac_chan *rchan = to_rcar_dmac_chan(chan);
drivers/dma/sh/rcar-dmac.c
1146
static int rcar_dmac_map_slave_addr(struct dma_chan *chan,
drivers/dma/sh/rcar-dmac.c
1149
struct rcar_dmac_chan *rchan = to_rcar_dmac_chan(chan);
drivers/dma/sh/rcar-dmac.c
1173
dma_unmap_resource(chan->device->dev, map->addr,
drivers/dma/sh/rcar-dmac.c
1178
map->addr = dma_map_resource(chan->device->dev, dev_addr, dev_size,
drivers/dma/sh/rcar-dmac.c
1181
if (dma_mapping_error(chan->device->dev, map->addr)) {
drivers/dma/sh/rcar-dmac.c
1182
dev_err(chan->device->dev,
drivers/dma/sh/rcar-dmac.c
1188
dev_dbg(chan->device->dev, "chan%u: map %zx@%pap to %pad dir: %s\n",
drivers/dma/sh/rcar-dmac.c
1200
rcar_dmac_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
drivers/dma/sh/rcar-dmac.c
1204
struct rcar_dmac_chan *rchan = to_rcar_dmac_chan(chan);
drivers/dma/sh/rcar-dmac.c
1208
dev_warn(chan->device->dev,
drivers/dma/sh/rcar-dmac.c
1214
if (rcar_dmac_map_slave_addr(chan, dir))
drivers/dma/sh/rcar-dmac.c
1224
rcar_dmac_prep_dma_cyclic(struct dma_chan *chan, dma_addr_t buf_addr,
drivers/dma/sh/rcar-dmac.c
1228
struct rcar_dmac_chan *rchan = to_rcar_dmac_chan(chan);
drivers/dma/sh/rcar-dmac.c
1236
dev_warn(chan->device->dev,
drivers/dma/sh/rcar-dmac.c
1242
if (rcar_dmac_map_slave_addr(chan, dir))
drivers/dma/sh/rcar-dmac.c
1247
dev_err(chan->device->dev,
drivers/dma/sh/rcar-dmac.c
1279
static int rcar_dmac_device_config(struct dma_chan *chan,
drivers/dma/sh/rcar-dmac.c
1282
struct rcar_dmac_chan *rchan = to_rcar_dmac_chan(chan);
drivers/dma/sh/rcar-dmac.c
1296
static int rcar_dmac_chan_terminate_all(struct dma_chan *chan)
drivers/dma/sh/rcar-dmac.c
1298
struct rcar_dmac_chan *rchan = to_rcar_dmac_chan(chan);
drivers/dma/sh/rcar-dmac.c
1315
static unsigned int rcar_dmac_chan_get_residue(struct rcar_dmac_chan *chan,
drivers/dma/sh/rcar-dmac.c
1318
struct rcar_dmac_desc *desc = chan->desc.running;
drivers/dma/sh/rcar-dmac.c
1337
status = dma_cookie_status(&chan->chan, cookie, NULL);
drivers/dma/sh/rcar-dmac.c
1352
list_for_each_entry(desc, &chan->desc.done, node) {
drivers/dma/sh/rcar-dmac.c
1356
list_for_each_entry(desc, &chan->desc.pending, node) {
drivers/dma/sh/rcar-dmac.c
1360
list_for_each_entry(desc, &chan->desc.active, node) {
drivers/dma/sh/rcar-dmac.c
1382
chcrb = rcar_dmac_chan_read(chan, RCAR_DMACHCRB) &
drivers/dma/sh/rcar-dmac.c
1384
tcrb = rcar_dmac_chan_read(chan, RCAR_DMATCRB);
drivers/dma/sh/rcar-dmac.c
1386
if (chcrb == (rcar_dmac_chan_read(chan, RCAR_DMACHCRB) &
drivers/dma/sh/rcar-dmac.c
1422
static enum dma_status rcar_dmac_tx_status(struct dma_chan *chan,
drivers/dma/sh/rcar-dmac.c
1426
struct rcar_dmac_chan *rchan = to_rcar_dmac_chan(chan);
drivers/dma/sh/rcar-dmac.c
1432
status = dma_cookie_status(chan, cookie, txstate);
drivers/dma/sh/rcar-dmac.c
1450
static void rcar_dmac_issue_pending(struct dma_chan *chan)
drivers/dma/sh/rcar-dmac.c
1452
struct rcar_dmac_chan *rchan = to_rcar_dmac_chan(chan);
drivers/dma/sh/rcar-dmac.c
1481
static void rcar_dmac_device_synchronize(struct dma_chan *chan)
drivers/dma/sh/rcar-dmac.c
1483
struct rcar_dmac_chan *rchan = to_rcar_dmac_chan(chan);
drivers/dma/sh/rcar-dmac.c
1492
static irqreturn_t rcar_dmac_isr_desc_stage_end(struct rcar_dmac_chan *chan)
drivers/dma/sh/rcar-dmac.c
1494
struct rcar_dmac_desc *desc = chan->desc.running;
drivers/dma/sh/rcar-dmac.c
1507
stage = (rcar_dmac_chan_read(chan, RCAR_DMACHCRB) &
drivers/dma/sh/rcar-dmac.c
1509
rcar_dmac_chan_write(chan, RCAR_DMADPCR, RCAR_DMADPCR_DIPT(stage));
drivers/dma/sh/rcar-dmac.c
1514
static irqreturn_t rcar_dmac_isr_transfer_end(struct rcar_dmac_chan *chan)
drivers/dma/sh/rcar-dmac.c
1516
struct rcar_dmac_desc *desc = chan->desc.running;
drivers/dma/sh/rcar-dmac.c
1560
list_move_tail(&desc->node, &chan->desc.done);
drivers/dma/sh/rcar-dmac.c
1563
if (!list_empty(&chan->desc.active))
drivers/dma/sh/rcar-dmac.c
1564
chan->desc.running = list_first_entry(&chan->desc.active,
drivers/dma/sh/rcar-dmac.c
1568
chan->desc.running = NULL;
drivers/dma/sh/rcar-dmac.c
1571
if (chan->desc.running)
drivers/dma/sh/rcar-dmac.c
1572
rcar_dmac_chan_start_xfer(chan);
drivers/dma/sh/rcar-dmac.c
1580
struct rcar_dmac_chan *chan = dev;
drivers/dma/sh/rcar-dmac.c
1585
spin_lock(&chan->lock);
drivers/dma/sh/rcar-dmac.c
1587
chcr = rcar_dmac_chan_read(chan, RCAR_DMACHCR);
drivers/dma/sh/rcar-dmac.c
1589
struct rcar_dmac *dmac = to_rcar_dmac(chan->chan.device);
drivers/dma/sh/rcar-dmac.c
1596
rcar_dmac_chan_clear(dmac, chan);
drivers/dma/sh/rcar-dmac.c
1597
rcar_dmac_chcr_de_barrier(chan);
drivers/dma/sh/rcar-dmac.c
160
struct dma_chan chan;
drivers/dma/sh/rcar-dmac.c
1604
rcar_dmac_chan_write(chan, RCAR_DMACHCR, chcr & ~mask);
drivers/dma/sh/rcar-dmac.c
1606
rcar_dmac_chcr_de_barrier(chan);
drivers/dma/sh/rcar-dmac.c
1609
ret |= rcar_dmac_isr_desc_stage_end(chan);
drivers/dma/sh/rcar-dmac.c
1612
ret |= rcar_dmac_isr_transfer_end(chan);
drivers/dma/sh/rcar-dmac.c
1615
spin_unlock(&chan->lock);
drivers/dma/sh/rcar-dmac.c
1618
dev_err(chan->chan.device->dev, "Channel Address Error\n");
drivers/dma/sh/rcar-dmac.c
1620
rcar_dmac_chan_reinit(chan);
drivers/dma/sh/rcar-dmac.c
1629
struct rcar_dmac_chan *chan = dev;
drivers/dma/sh/rcar-dmac.c
1633
spin_lock_irq(&chan->lock);
drivers/dma/sh/rcar-dmac.c
1636
if (chan->desc.running && chan->desc.running->cyclic) {
drivers/dma/sh/rcar-dmac.c
1637
desc = chan->desc.running;
drivers/dma/sh/rcar-dmac.c
1641
spin_unlock_irq(&chan->lock);
drivers/dma/sh/rcar-dmac.c
1643
spin_lock_irq(&chan->lock);
drivers/dma/sh/rcar-dmac.c
1651
while (!list_empty(&chan->desc.done)) {
drivers/dma/sh/rcar-dmac.c
1652
desc = list_first_entry(&chan->desc.done, struct rcar_dmac_desc,
drivers/dma/sh/rcar-dmac.c
1659
spin_unlock_irq(&chan->lock);
drivers/dma/sh/rcar-dmac.c
1666
spin_lock_irq(&chan->lock);
drivers/dma/sh/rcar-dmac.c
1669
list_add_tail(&desc->node, &chan->desc.wait);
drivers/dma/sh/rcar-dmac.c
1672
spin_unlock_irq(&chan->lock);
drivers/dma/sh/rcar-dmac.c
1675
rcar_dmac_desc_recycle_acked(chan);
drivers/dma/sh/rcar-dmac.c
1684
static bool rcar_dmac_chan_filter(struct dma_chan *chan, void *arg)
drivers/dma/sh/rcar-dmac.c
1686
struct rcar_dmac *dmac = to_rcar_dmac(chan->device);
drivers/dma/sh/rcar-dmac.c
1696
if (chan->device->device_config != rcar_dmac_device_config)
drivers/dma/sh/rcar-dmac.c
1706
struct dma_chan *chan;
drivers/dma/sh/rcar-dmac.c
1716
chan = __dma_request_channel(&mask, rcar_dmac_chan_filter, dma_spec,
drivers/dma/sh/rcar-dmac.c
1718
if (!chan)
drivers/dma/sh/rcar-dmac.c
1721
rchan = to_rcar_dmac_chan(chan);
drivers/dma/sh/rcar-dmac.c
1724
return chan;
drivers/dma/sh/rcar-dmac.c
1757
struct dma_chan *chan = &rchan->chan;
drivers/dma/sh/rcar-dmac.c
1787
chan->device = &dmac->engine;
drivers/dma/sh/rcar-dmac.c
1788
dma_cookie_init(chan);
drivers/dma/sh/rcar-dmac.c
1790
list_add_tail(&chan->device_node, &dmac->engine.channels);
drivers/dma/sh/rcar-dmac.c
1846
struct rcar_dmac_chan *chan;
drivers/dma/sh/rcar-dmac.c
186
#define to_rcar_dmac_chan(c) container_of(c, struct rcar_dmac_chan, chan)
drivers/dma/sh/rcar-dmac.c
1904
for_each_rcar_dmac_chan(i, dmac, chan) {
drivers/dma/sh/rcar-dmac.c
1905
chan->index = i;
drivers/dma/sh/rcar-dmac.c
1906
chan->iomem = chan_base + i * data->chan_offset_stride;
drivers/dma/sh/rcar-dmac.c
1953
for_each_rcar_dmac_chan(i, dmac, chan) {
drivers/dma/sh/rcar-dmac.c
1954
ret = rcar_dmac_chan_probe(dmac, chan);
drivers/dma/sh/rcar-dmac.c
214
#define for_each_rcar_dmac_chan(i, dmac, chan) \
drivers/dma/sh/rcar-dmac.c
215
for (i = 0, chan = &(dmac)->channels[0]; i < (dmac)->n_channels; i++, chan++) \
drivers/dma/sh/rcar-dmac.c
328
static u32 rcar_dmac_chan_read(struct rcar_dmac_chan *chan, u32 reg)
drivers/dma/sh/rcar-dmac.c
331
return readw(chan->iomem + reg);
drivers/dma/sh/rcar-dmac.c
333
return readl(chan->iomem + reg);
drivers/dma/sh/rcar-dmac.c
336
static void rcar_dmac_chan_write(struct rcar_dmac_chan *chan, u32 reg, u32 data)
drivers/dma/sh/rcar-dmac.c
339
writew(data, chan->iomem + reg);
drivers/dma/sh/rcar-dmac.c
341
writel(data, chan->iomem + reg);
drivers/dma/sh/rcar-dmac.c
345
struct rcar_dmac_chan *chan)
drivers/dma/sh/rcar-dmac.c
348
rcar_dmac_chan_write(chan, RCAR_GEN4_DMACHCLR, 1);
drivers/dma/sh/rcar-dmac.c
350
rcar_dmac_write(dmac, RCAR_DMACHCLR, BIT(chan->index));
drivers/dma/sh/rcar-dmac.c
355
struct rcar_dmac_chan *chan;
drivers/dma/sh/rcar-dmac.c
359
for_each_rcar_dmac_chan(i, dmac, chan)
drivers/dma/sh/rcar-dmac.c
360
rcar_dmac_chan_write(chan, RCAR_GEN4_DMACHCLR, 1);
drivers/dma/sh/rcar-dmac.c
370
static bool rcar_dmac_chan_is_busy(struct rcar_dmac_chan *chan)
drivers/dma/sh/rcar-dmac.c
372
u32 chcr = rcar_dmac_chan_read(chan, RCAR_DMACHCR);
drivers/dma/sh/rcar-dmac.c
377
static void rcar_dmac_chan_start_xfer(struct rcar_dmac_chan *chan)
drivers/dma/sh/rcar-dmac.c
379
struct rcar_dmac_desc *desc = chan->desc.running;
drivers/dma/sh/rcar-dmac.c
382
WARN_ON_ONCE(rcar_dmac_chan_is_busy(chan));
drivers/dma/sh/rcar-dmac.c
384
if (chan->mid_rid >= 0)
drivers/dma/sh/rcar-dmac.c
385
rcar_dmac_chan_write(chan, RCAR_DMARS, chan->mid_rid);
drivers/dma/sh/rcar-dmac.c
392
dev_dbg(chan->chan.device->dev,
drivers/dma/sh/rcar-dmac.c
394
chan->index, desc, desc->nchunks, &desc->hwdescs.dma);
drivers/dma/sh/rcar-dmac.c
397
rcar_dmac_chan_write(chan, RCAR_DMAFIXSAR,
drivers/dma/sh/rcar-dmac.c
399
rcar_dmac_chan_write(chan, RCAR_DMAFIXDAR,
drivers/dma/sh/rcar-dmac.c
401
rcar_dmac_chan_write(chan, RCAR_DMAFIXDPBASE,
drivers/dma/sh/rcar-dmac.c
404
rcar_dmac_chan_write(chan, RCAR_DMADPBASE,
drivers/dma/sh/rcar-dmac.c
407
rcar_dmac_chan_write(chan, RCAR_DMACHCRB,
drivers/dma/sh/rcar-dmac.c
418
rcar_dmac_chan_write(chan, RCAR_DMADAR,
drivers/dma/sh/rcar-dmac.c
425
rcar_dmac_chan_write(chan, RCAR_DMADPCR, RCAR_DMADPCR_DIPT(1));
drivers/dma/sh/rcar-dmac.c
451
dev_dbg(chan->chan.device->dev,
drivers/dma/sh/rcar-dmac.c
453
chan->index, chunk, chunk->size, &chunk->src_addr,
drivers/dma/sh/rcar-dmac.c
457
rcar_dmac_chan_write(chan, RCAR_DMAFIXSAR,
drivers/dma/sh/rcar-dmac.c
459
rcar_dmac_chan_write(chan, RCAR_DMAFIXDAR,
drivers/dma/sh/rcar-dmac.c
462
rcar_dmac_chan_write(chan, RCAR_DMASAR,
drivers/dma/sh/rcar-dmac.c
464
rcar_dmac_chan_write(chan, RCAR_DMADAR,
drivers/dma/sh/rcar-dmac.c
466
rcar_dmac_chan_write(chan, RCAR_DMATCR,
drivers/dma/sh/rcar-dmac.c
472
rcar_dmac_chan_write(chan, RCAR_DMACHCR,
drivers/dma/sh/rcar-dmac.c
500
struct rcar_dmac_chan *chan = to_rcar_dmac_chan(tx->chan);
drivers/dma/sh/rcar-dmac.c
505
spin_lock_irqsave(&chan->lock, flags);
drivers/dma/sh/rcar-dmac.c
509
dev_dbg(chan->chan.device->dev, "chan%u: submit #%d@%p\n",
drivers/dma/sh/rcar-dmac.c
510
chan->index, tx->cookie, desc);
drivers/dma/sh/rcar-dmac.c
512
list_add_tail(&desc->node, &chan->desc.pending);
drivers/dma/sh/rcar-dmac.c
516
spin_unlock_irqrestore(&chan->lock, flags);
drivers/dma/sh/rcar-dmac.c
530
static int rcar_dmac_desc_alloc(struct rcar_dmac_chan *chan, gfp_t gfp)
drivers/dma/sh/rcar-dmac.c
544
dma_async_tx_descriptor_init(&desc->async_tx, &chan->chan);
drivers/dma/sh/rcar-dmac.c
551
spin_lock_irqsave(&chan->lock, flags);
drivers/dma/sh/rcar-dmac.c
552
list_splice_tail(&list, &chan->desc.free);
drivers/dma/sh/rcar-dmac.c
553
list_add_tail(&page->node, &chan->desc.pages);
drivers/dma/sh/rcar-dmac.c
554
spin_unlock_irqrestore(&chan->lock, flags);
drivers/dma/sh/rcar-dmac.c
571
static void rcar_dmac_desc_put(struct rcar_dmac_chan *chan,
drivers/dma/sh/rcar-dmac.c
576
spin_lock_irqsave(&chan->lock, flags);
drivers/dma/sh/rcar-dmac.c
577
list_splice_tail_init(&desc->chunks, &chan->desc.chunks_free);
drivers/dma/sh/rcar-dmac.c
578
list_add(&desc->node, &chan->desc.free);
drivers/dma/sh/rcar-dmac.c
579
spin_unlock_irqrestore(&chan->lock, flags);
drivers/dma/sh/rcar-dmac.c
582
static void rcar_dmac_desc_recycle_acked(struct rcar_dmac_chan *chan)
drivers/dma/sh/rcar-dmac.c
594
spin_lock_irqsave(&chan->lock, flags);
drivers/dma/sh/rcar-dmac.c
595
list_splice_init(&chan->desc.wait, &list);
drivers/dma/sh/rcar-dmac.c
596
spin_unlock_irqrestore(&chan->lock, flags);
drivers/dma/sh/rcar-dmac.c
601
rcar_dmac_desc_put(chan, desc);
drivers/dma/sh/rcar-dmac.c
609
spin_lock_irqsave(&chan->lock, flags);
drivers/dma/sh/rcar-dmac.c
610
list_splice(&list, &chan->desc.wait);
drivers/dma/sh/rcar-dmac.c
611
spin_unlock_irqrestore(&chan->lock, flags);
drivers/dma/sh/rcar-dmac.c
623
static struct rcar_dmac_desc *rcar_dmac_desc_get(struct rcar_dmac_chan *chan)
drivers/dma/sh/rcar-dmac.c
630
rcar_dmac_desc_recycle_acked(chan);
drivers/dma/sh/rcar-dmac.c
632
spin_lock_irqsave(&chan->lock, flags);
drivers/dma/sh/rcar-dmac.c
634
while (list_empty(&chan->desc.free)) {
drivers/dma/sh/rcar-dmac.c
641
spin_unlock_irqrestore(&chan->lock, flags);
drivers/dma/sh/rcar-dmac.c
642
ret = rcar_dmac_desc_alloc(chan, GFP_NOWAIT);
drivers/dma/sh/rcar-dmac.c
645
spin_lock_irqsave(&chan->lock, flags);
drivers/dma/sh/rcar-dmac.c
648
desc = list_first_entry(&chan->desc.free, struct rcar_dmac_desc, node);
drivers/dma/sh/rcar-dmac.c
651
spin_unlock_irqrestore(&chan->lock, flags);
drivers/dma/sh/rcar-dmac.c
661
static int rcar_dmac_xfer_chunk_alloc(struct rcar_dmac_chan *chan, gfp_t gfp)
drivers/dma/sh/rcar-dmac.c
678
spin_lock_irqsave(&chan->lock, flags);
drivers/dma/sh/rcar-dmac.c
679
list_splice_tail(&list, &chan->desc.chunks_free);
drivers/dma/sh/rcar-dmac.c
680
list_add_tail(&page->node, &chan->desc.pages);
drivers/dma/sh/rcar-dmac.c
681
spin_unlock_irqrestore(&chan->lock, flags);
drivers/dma/sh/rcar-dmac.c
696
rcar_dmac_xfer_chunk_get(struct rcar_dmac_chan *chan)
drivers/dma/sh/rcar-dmac.c
702
spin_lock_irqsave(&chan->lock, flags);
drivers/dma/sh/rcar-dmac.c
704
while (list_empty(&chan->desc.chunks_free)) {
drivers/dma/sh/rcar-dmac.c
711
spin_unlock_irqrestore(&chan->lock, flags);
drivers/dma/sh/rcar-dmac.c
712
ret = rcar_dmac_xfer_chunk_alloc(chan, GFP_NOWAIT);
drivers/dma/sh/rcar-dmac.c
715
spin_lock_irqsave(&chan->lock, flags);
drivers/dma/sh/rcar-dmac.c
718
chunk = list_first_entry(&chan->desc.chunks_free,
drivers/dma/sh/rcar-dmac.c
722
spin_unlock_irqrestore(&chan->lock, flags);
drivers/dma/sh/rcar-dmac.c
727
static void rcar_dmac_realloc_hwdesc(struct rcar_dmac_chan *chan,
drivers/dma/sh/rcar-dmac.c
742
dma_free_coherent(chan->chan.device->dev, desc->hwdescs.size,
drivers/dma/sh/rcar-dmac.c
751
desc->hwdescs.mem = dma_alloc_coherent(chan->chan.device->dev, size,
drivers/dma/sh/rcar-dmac.c
759
static int rcar_dmac_fill_hwdesc(struct rcar_dmac_chan *chan,
drivers/dma/sh/rcar-dmac.c
765
rcar_dmac_realloc_hwdesc(chan, desc, desc->nchunks * sizeof(*hwdesc));
drivers/dma/sh/rcar-dmac.c
784
static void rcar_dmac_chcr_de_barrier(struct rcar_dmac_chan *chan)
drivers/dma/sh/rcar-dmac.c
794
chcr = rcar_dmac_chan_read(chan, RCAR_DMACHCR);
drivers/dma/sh/rcar-dmac.c
800
dev_err(chan->chan.device->dev, "CHCR DE check error\n");
drivers/dma/sh/rcar-dmac.c
803
static void rcar_dmac_clear_chcr_de(struct rcar_dmac_chan *chan)
drivers/dma/sh/rcar-dmac.c
805
u32 chcr = rcar_dmac_chan_read(chan, RCAR_DMACHCR);
drivers/dma/sh/rcar-dmac.c
808
rcar_dmac_chan_write(chan, RCAR_DMACHCR, (chcr & ~RCAR_DMACHCR_DE));
drivers/dma/sh/rcar-dmac.c
811
rcar_dmac_chcr_de_barrier(chan);
drivers/dma/sh/rcar-dmac.c
814
static void rcar_dmac_chan_halt(struct rcar_dmac_chan *chan)
drivers/dma/sh/rcar-dmac.c
816
u32 chcr = rcar_dmac_chan_read(chan, RCAR_DMACHCR);
drivers/dma/sh/rcar-dmac.c
821
rcar_dmac_chan_write(chan, RCAR_DMACHCR, chcr);
drivers/dma/sh/rcar-dmac.c
822
rcar_dmac_chcr_de_barrier(chan);
drivers/dma/sh/rcar-dmac.c
825
static void rcar_dmac_chan_reinit(struct rcar_dmac_chan *chan)
drivers/dma/sh/rcar-dmac.c
831
spin_lock_irqsave(&chan->lock, flags);
drivers/dma/sh/rcar-dmac.c
834
list_splice_init(&chan->desc.pending, &descs);
drivers/dma/sh/rcar-dmac.c
835
list_splice_init(&chan->desc.active, &descs);
drivers/dma/sh/rcar-dmac.c
836
list_splice_init(&chan->desc.done, &descs);
drivers/dma/sh/rcar-dmac.c
837
list_splice_init(&chan->desc.wait, &descs);
drivers/dma/sh/rcar-dmac.c
839
chan->desc.running = NULL;
drivers/dma/sh/rcar-dmac.c
841
spin_unlock_irqrestore(&chan->lock, flags);
drivers/dma/sh/rcar-dmac.c
845
rcar_dmac_desc_put(chan, desc);
drivers/dma/sh/rcar-dmac.c
851
struct rcar_dmac_chan *chan;
drivers/dma/sh/rcar-dmac.c
855
for_each_rcar_dmac_chan(i, dmac, chan) {
drivers/dma/sh/rcar-dmac.c
857
spin_lock_irq(&chan->lock);
drivers/dma/sh/rcar-dmac.c
858
rcar_dmac_chan_halt(chan);
drivers/dma/sh/rcar-dmac.c
859
spin_unlock_irq(&chan->lock);
drivers/dma/sh/rcar-dmac.c
863
static int rcar_dmac_chan_pause(struct dma_chan *chan)
drivers/dma/sh/rcar-dmac.c
866
struct rcar_dmac_chan *rchan = to_rcar_dmac_chan(chan);
drivers/dma/sh/rcar-dmac.c
879
static void rcar_dmac_chan_configure_desc(struct rcar_dmac_chan *chan,
drivers/dma/sh/rcar-dmac.c
896
xfer_size = chan->src.xfer_size;
drivers/dma/sh/rcar-dmac.c
902
xfer_size = chan->dst.xfer_size;
drivers/dma/sh/rcar-dmac.c
928
rcar_dmac_chan_prep_sg(struct rcar_dmac_chan *chan, struct scatterlist *sgl,
drivers/dma/sh/rcar-dmac.c
946
desc = rcar_dmac_desc_get(chan);
drivers/dma/sh/rcar-dmac.c
956
rcar_dmac_chan_configure_desc(chan, desc);
drivers/dma/sh/rcar-dmac.c
998
chunk = rcar_dmac_xfer_chunk_get(chan);
drivers/dma/sh/rz-dmac.c
1020
static enum dma_status rz_dmac_tx_status(struct dma_chan *chan,
drivers/dma/sh/rz-dmac.c
1024
struct rz_dmac_chan *channel = to_rz_dmac_chan(chan);
drivers/dma/sh/rz-dmac.c
1025
struct rz_dmac *dmac = to_rz_dmac(chan->device);
drivers/dma/sh/rz-dmac.c
1032
status = dma_cookie_status(chan, cookie, txstate);
drivers/dma/sh/rz-dmac.c
1074
static int rz_dmac_device_pause(struct dma_chan *chan)
drivers/dma/sh/rz-dmac.c
1076
struct rz_dmac_chan *channel = to_rz_dmac_chan(chan);
drivers/dma/sh/rz-dmac.c
1077
struct rz_dmac *dmac = to_rz_dmac(chan->device);
drivers/dma/sh/rz-dmac.c
112
#define to_rz_dmac_chan(c) container_of(c, struct rz_dmac_chan, vc.chan)
drivers/dma/sh/rz-dmac.c
1147
static int rz_dmac_device_resume(struct dma_chan *chan)
drivers/dma/sh/rz-dmac.c
1149
struct rz_dmac_chan *channel = to_rz_dmac_chan(chan);
drivers/dma/sh/rz-dmac.c
1150
struct rz_dmac *dmac = to_rz_dmac(chan->device);
drivers/dma/sh/rz-dmac.c
1183
struct dma_chan *chan = &channel->vc.chan;
drivers/dma/sh/rz-dmac.c
1184
struct rz_dmac *dmac = to_rz_dmac(chan->device);
drivers/dma/sh/rz-dmac.c
1244
static bool rz_dmac_chan_filter(struct dma_chan *chan, void *arg)
drivers/dma/sh/rz-dmac.c
1246
struct rz_dmac_chan *channel = to_rz_dmac_chan(chan);
drivers/dma/sh/rz-dmac.c
1247
struct rz_dmac *dmac = to_rz_dmac(chan->device);
drivers/dma/sh/rz-dmac.c
1581
dma_chan_name(&channel->vc.chan));
drivers/dma/sh/rz-dmac.c
1652
dma_chan_name(&channel->vc.chan), ret);
drivers/dma/sh/rz-dmac.c
322
struct dma_chan *chan = &channel->vc.chan;
drivers/dma/sh/rz-dmac.c
323
struct rz_dmac *dmac = to_rz_dmac(chan->device);
drivers/dma/sh/rz-dmac.c
342
struct dma_chan *chan = &channel->vc.chan;
drivers/dma/sh/rz-dmac.c
343
struct rz_dmac *dmac = to_rz_dmac(chan->device);
drivers/dma/sh/rz-dmac.c
429
struct dma_chan *chan = &channel->vc.chan;
drivers/dma/sh/rz-dmac.c
430
struct rz_dmac *dmac = to_rz_dmac(chan->device);
drivers/dma/sh/rz-dmac.c
454
struct dma_chan *chan = &channel->vc.chan;
drivers/dma/sh/rz-dmac.c
455
struct rz_dmac *dmac = to_rz_dmac(chan->device);
drivers/dma/sh/rz-dmac.c
506
struct dma_chan *chan = &channel->vc.chan;
drivers/dma/sh/rz-dmac.c
507
struct rz_dmac *dmac = to_rz_dmac(chan->device);
drivers/dma/sh/rz-dmac.c
556
static void rz_dmac_xfer_desc(struct rz_dmac_chan *chan)
drivers/dma/sh/rz-dmac.c
560
vd = vchan_next_desc(&chan->vc);
drivers/dma/sh/rz-dmac.c
562
chan->desc = NULL;
drivers/dma/sh/rz-dmac.c
567
chan->desc = to_rz_dmac_desc(vd);
drivers/dma/sh/rz-dmac.c
569
switch (chan->desc->type) {
drivers/dma/sh/rz-dmac.c
571
rz_dmac_prepare_desc_for_memcpy(chan);
drivers/dma/sh/rz-dmac.c
575
rz_dmac_prepare_descs_for_slave_sg(chan);
drivers/dma/sh/rz-dmac.c
579
rz_dmac_prepare_descs_for_cyclic(chan);
drivers/dma/sh/rz-dmac.c
583
rz_dmac_enable_hw(chan);
drivers/dma/sh/rz-dmac.c
591
static int rz_dmac_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/sh/rz-dmac.c
593
struct rz_dmac_chan *channel = to_rz_dmac_chan(chan);
drivers/dma/sh/rz-dmac.c
613
static void rz_dmac_free_chan_resources(struct dma_chan *chan)
drivers/dma/sh/rz-dmac.c
615
struct rz_dmac_chan *channel = to_rz_dmac_chan(chan);
drivers/dma/sh/rz-dmac.c
616
struct rz_dmac *dmac = to_rz_dmac(chan->device);
drivers/dma/sh/rz-dmac.c
625
dma_chan_name(chan), ret);
drivers/dma/sh/rz-dmac.c
663
rz_dmac_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dest, dma_addr_t src,
drivers/dma/sh/rz-dmac.c
666
struct rz_dmac_chan *channel = to_rz_dmac_chan(chan);
drivers/dma/sh/rz-dmac.c
667
struct rz_dmac *dmac = to_rz_dmac(chan->device);
drivers/dma/sh/rz-dmac.c
691
rz_dmac_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
drivers/dma/sh/rz-dmac.c
696
struct rz_dmac_chan *channel = to_rz_dmac_chan(chan);
drivers/dma/sh/rz-dmac.c
728
rz_dmac_prep_dma_cyclic(struct dma_chan *chan, dma_addr_t buf_addr,
drivers/dma/sh/rz-dmac.c
733
struct rz_dmac_chan *channel = to_rz_dmac_chan(chan);
drivers/dma/sh/rz-dmac.c
776
static int rz_dmac_terminate_all(struct dma_chan *chan)
drivers/dma/sh/rz-dmac.c
778
struct rz_dmac_chan *channel = to_rz_dmac_chan(chan);
drivers/dma/sh/rz-dmac.c
779
struct rz_dmac *dmac = to_rz_dmac(chan->device);
drivers/dma/sh/rz-dmac.c
788
dma_chan_name(chan), ret);
drivers/dma/sh/rz-dmac.c
812
static void rz_dmac_issue_pending(struct dma_chan *chan)
drivers/dma/sh/rz-dmac.c
814
struct rz_dmac_chan *channel = to_rz_dmac_chan(chan);
drivers/dma/sh/rz-dmac.c
815
struct rz_dmac *dmac = to_rz_dmac(chan->device);
drivers/dma/sh/rz-dmac.c
858
static int rz_dmac_config(struct dma_chan *chan,
drivers/dma/sh/rz-dmac.c
861
struct rz_dmac_chan *channel = to_rz_dmac_chan(chan);
drivers/dma/sh/rz-dmac.c
889
struct rz_dmac_chan *channel = to_rz_dmac_chan(vd->tx.chan);
drivers/dma/sh/rz-dmac.c
890
struct virt_dma_chan *vc = to_virt_chan(vd->tx.chan);
drivers/dma/sh/rz-dmac.c
898
static void rz_dmac_device_synchronize(struct dma_chan *chan)
drivers/dma/sh/rz-dmac.c
900
struct rz_dmac_chan *channel = to_rz_dmac_chan(chan);
drivers/dma/sh/rz-dmac.c
901
struct rz_dmac *dmac = to_rz_dmac(chan->device);
drivers/dma/sh/rz-dmac.c
936
struct dma_chan *chan = &channel->vc.chan;
drivers/dma/sh/rz-dmac.c
937
struct rz_dmac *dmac = to_rz_dmac(chan->device);
drivers/dma/sh/shdma-base.c
216
static int shdma_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/sh/shdma-base.c
218
struct shdma_chan *schan = to_shdma_chan(chan);
drivers/dma/sh/shdma-base.c
222
struct shdma_slave *slave = chan->private;
drivers/dma/sh/shdma-base.c
264
chan->private = NULL;
drivers/dma/sh/shdma-base.c
287
bool shdma_chan_filter(struct dma_chan *chan, void *arg)
drivers/dma/sh/shdma-base.c
295
if (chan->device->device_alloc_chan_resources !=
drivers/dma/sh/shdma-base.c
299
schan = to_shdma_chan(chan);
drivers/dma/sh/shdma-base.c
300
sdev = to_shdma_dev(chan->device);
drivers/dma/sh/shdma-base.c
463
static void shdma_free_chan_resources(struct dma_chan *chan)
drivers/dma/sh/shdma-base.c
465
struct shdma_chan *schan = to_shdma_chan(chan);
drivers/dma/sh/shdma-base.c
466
struct shdma_dev *sdev = to_shdma_dev(chan->device);
drivers/dma/sh/shdma-base.c
484
chan->private = NULL;
drivers/dma/sh/shdma-base.c
652
struct dma_chan *chan, dma_addr_t dma_dest, dma_addr_t dma_src,
drivers/dma/sh/shdma-base.c
655
struct shdma_chan *schan = to_shdma_chan(chan);
drivers/dma/sh/shdma-base.c
658
if (!chan || !len)
drivers/dma/sh/shdma-base.c
674
struct dma_chan *chan, struct scatterlist *sgl, unsigned int sg_len,
drivers/dma/sh/shdma-base.c
677
struct shdma_chan *schan = to_shdma_chan(chan);
drivers/dma/sh/shdma-base.c
683
if (!chan)
drivers/dma/sh/shdma-base.c
704
struct dma_chan *chan, dma_addr_t buf_addr, size_t buf_len,
drivers/dma/sh/shdma-base.c
708
struct shdma_chan *schan = to_shdma_chan(chan);
drivers/dma/sh/shdma-base.c
718
if (!chan)
drivers/dma/sh/shdma-base.c
74
struct shdma_chan *schan = to_shdma_chan(tx->chan);
drivers/dma/sh/shdma-base.c
765
static int shdma_terminate_all(struct dma_chan *chan)
drivers/dma/sh/shdma-base.c
767
struct shdma_chan *schan = to_shdma_chan(chan);
drivers/dma/sh/shdma-base.c
768
struct shdma_dev *sdev = to_shdma_dev(chan->device);
drivers/dma/sh/shdma-base.c
789
static int shdma_config(struct dma_chan *chan,
drivers/dma/sh/shdma-base.c
792
struct shdma_chan *schan = to_shdma_chan(chan);
drivers/dma/sh/shdma-base.c
810
static void shdma_issue_pending(struct dma_chan *chan)
drivers/dma/sh/shdma-base.c
812
struct shdma_chan *schan = to_shdma_chan(chan);
drivers/dma/sh/shdma-base.c
822
static enum dma_status shdma_tx_status(struct dma_chan *chan,
drivers/dma/sh/shdma-base.c
826
struct shdma_chan *schan = to_shdma_chan(chan);
drivers/dma/sh/shdma-base.c
834
status = dma_cookie_status(chan, cookie, txstate);
drivers/dma/sh/shdma.h
35
struct sh_dmae_chan *chan[SH_DMAE_MAX_CHANNELS];
drivers/dma/sh/shdma.h
55
#define to_sh_chan(chan) container_of(chan, struct sh_dmae_chan, shdma_chan)
drivers/dma/sh/shdma.h
58
#define to_sh_dev(chan) container_of(chan->shdma_chan.dma_chan.device,\
drivers/dma/sh/shdmac.c
151
struct sh_dmae_chan *sh_chan = shdev->chan[i];
drivers/dma/sh/shdmac.c
563
shdev->chan[id] = sh_chan;
drivers/dma/sh/shdmac.c
620
struct sh_dmae_chan *sh_chan = shdev->chan[i];
drivers/dma/sh/usb-dmac.c
161
static u32 usb_dmac_chan_read(struct usb_dmac_chan *chan, u32 reg)
drivers/dma/sh/usb-dmac.c
163
return readl(chan->iomem + reg);
drivers/dma/sh/usb-dmac.c
166
static void usb_dmac_chan_write(struct usb_dmac_chan *chan, u32 reg, u32 data)
drivers/dma/sh/usb-dmac.c
168
writel(data, chan->iomem + reg);
drivers/dma/sh/usb-dmac.c
175
static bool usb_dmac_chan_is_busy(struct usb_dmac_chan *chan)
drivers/dma/sh/usb-dmac.c
177
u32 chcr = usb_dmac_chan_read(chan, USB_DMACHCR);
drivers/dma/sh/usb-dmac.c
193
static void usb_dmac_chan_start_sg(struct usb_dmac_chan *chan,
drivers/dma/sh/usb-dmac.c
196
struct usb_dmac_desc *desc = chan->desc;
drivers/dma/sh/usb-dmac.c
200
WARN_ON_ONCE(usb_dmac_chan_is_busy(chan));
drivers/dma/sh/usb-dmac.c
207
dev_dbg(chan->vc.chan.device->dev,
drivers/dma/sh/usb-dmac.c
209
chan->index, sg, sg->size, &src_addr, &dst_addr);
drivers/dma/sh/usb-dmac.c
211
usb_dmac_chan_write(chan, USB_DMASAR, src_addr & 0xffffffff);
drivers/dma/sh/usb-dmac.c
212
usb_dmac_chan_write(chan, USB_DMADAR, dst_addr & 0xffffffff);
drivers/dma/sh/usb-dmac.c
213
usb_dmac_chan_write(chan, USB_DMATCR,
drivers/dma/sh/usb-dmac.c
215
usb_dmac_chan_write(chan, USB_DMATEND, usb_dmac_calc_tend(sg->size));
drivers/dma/sh/usb-dmac.c
217
usb_dmac_chan_write(chan, USB_DMACHCR, USB_DMAC_CHCR_TS |
drivers/dma/sh/usb-dmac.c
222
static void usb_dmac_chan_start_desc(struct usb_dmac_chan *chan)
drivers/dma/sh/usb-dmac.c
226
vd = vchan_next_desc(&chan->vc);
drivers/dma/sh/usb-dmac.c
228
chan->desc = NULL;
drivers/dma/sh/usb-dmac.c
239
chan->desc = to_usb_dmac_desc(vd);
drivers/dma/sh/usb-dmac.c
240
chan->desc->sg_index = 0;
drivers/dma/sh/usb-dmac.c
241
usb_dmac_chan_start_sg(chan, 0);
drivers/dma/sh/usb-dmac.c
263
static int usb_dmac_desc_alloc(struct usb_dmac_chan *chan, unsigned int sg_len,
drivers/dma/sh/usb-dmac.c
276
spin_lock_irqsave(&chan->vc.lock, flags);
drivers/dma/sh/usb-dmac.c
277
list_add_tail(&desc->node, &chan->desc_freed);
drivers/dma/sh/usb-dmac.c
278
spin_unlock_irqrestore(&chan->vc.lock, flags);
drivers/dma/sh/usb-dmac.c
283
static void usb_dmac_desc_free(struct usb_dmac_chan *chan)
drivers/dma/sh/usb-dmac.c
288
list_splice_init(&chan->desc_freed, &list);
drivers/dma/sh/usb-dmac.c
289
list_splice_init(&chan->desc_got, &list);
drivers/dma/sh/usb-dmac.c
295
chan->descs_allocated = 0;
drivers/dma/sh/usb-dmac.c
298
static struct usb_dmac_desc *usb_dmac_desc_get(struct usb_dmac_chan *chan,
drivers/dma/sh/usb-dmac.c
305
spin_lock_irqsave(&chan->vc.lock, flags);
drivers/dma/sh/usb-dmac.c
306
list_for_each_entry(desc, &chan->desc_freed, node) {
drivers/dma/sh/usb-dmac.c
308
list_move_tail(&desc->node, &chan->desc_got);
drivers/dma/sh/usb-dmac.c
309
spin_unlock_irqrestore(&chan->vc.lock, flags);
drivers/dma/sh/usb-dmac.c
313
spin_unlock_irqrestore(&chan->vc.lock, flags);
drivers/dma/sh/usb-dmac.c
316
if (!usb_dmac_desc_alloc(chan, sg_len, gfp)) {
drivers/dma/sh/usb-dmac.c
318
spin_lock_irqsave(&chan->vc.lock, flags);
drivers/dma/sh/usb-dmac.c
319
desc = list_last_entry(&chan->desc_freed, struct usb_dmac_desc,
drivers/dma/sh/usb-dmac.c
321
list_move_tail(&desc->node, &chan->desc_got);
drivers/dma/sh/usb-dmac.c
322
spin_unlock_irqrestore(&chan->vc.lock, flags);
drivers/dma/sh/usb-dmac.c
329
static void usb_dmac_desc_put(struct usb_dmac_chan *chan,
drivers/dma/sh/usb-dmac.c
334
spin_lock_irqsave(&chan->vc.lock, flags);
drivers/dma/sh/usb-dmac.c
335
list_move_tail(&desc->node, &chan->desc_freed);
drivers/dma/sh/usb-dmac.c
336
spin_unlock_irqrestore(&chan->vc.lock, flags);
drivers/dma/sh/usb-dmac.c
345
struct dma_chan *chan = &uchan->vc.chan;
drivers/dma/sh/usb-dmac.c
346
struct usb_dmac *dmac = to_usb_dmac(chan->device);
drivers/dma/sh/usb-dmac.c
362
static void usb_dmac_chan_halt(struct usb_dmac_chan *chan)
drivers/dma/sh/usb-dmac.c
364
u32 chcr = usb_dmac_chan_read(chan, USB_DMACHCR);
drivers/dma/sh/usb-dmac.c
367
usb_dmac_chan_write(chan, USB_DMACHCR, chcr);
drivers/dma/sh/usb-dmac.c
369
usb_dmac_soft_reset(chan);
drivers/dma/sh/usb-dmac.c
381
static int usb_dmac_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/sh/usb-dmac.c
383
struct usb_dmac_chan *uchan = to_usb_dmac_chan(chan);
drivers/dma/sh/usb-dmac.c
396
return pm_runtime_get_sync(chan->device->dev);
drivers/dma/sh/usb-dmac.c
399
static void usb_dmac_free_chan_resources(struct dma_chan *chan)
drivers/dma/sh/usb-dmac.c
401
struct usb_dmac_chan *uchan = to_usb_dmac_chan(chan);
drivers/dma/sh/usb-dmac.c
412
pm_runtime_put(chan->device->dev);
drivers/dma/sh/usb-dmac.c
416
usb_dmac_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
drivers/dma/sh/usb-dmac.c
420
struct usb_dmac_chan *uchan = to_usb_dmac_chan(chan);
drivers/dma/sh/usb-dmac.c
426
dev_warn(chan->device->dev,
drivers/dma/sh/usb-dmac.c
445
static int usb_dmac_chan_terminate_all(struct dma_chan *chan)
drivers/dma/sh/usb-dmac.c
447
struct usb_dmac_chan *uchan = to_usb_dmac_chan(chan);
drivers/dma/sh/usb-dmac.c
467
static unsigned int usb_dmac_get_current_residue(struct usb_dmac_chan *chan,
drivers/dma/sh/usb-dmac.c
480
residue -= usb_dmac_chan_read(chan, USB_DMADAR) - mem_addr;
drivers/dma/sh/usb-dmac.c
482
residue -= usb_dmac_chan_read(chan, USB_DMASAR) - mem_addr;
drivers/dma/sh/usb-dmac.c
487
static u32 usb_dmac_chan_get_residue_if_complete(struct usb_dmac_chan *chan,
drivers/dma/sh/usb-dmac.c
493
list_for_each_entry_reverse(desc, &chan->desc_freed, node) {
drivers/dma/sh/usb-dmac.c
503
static u32 usb_dmac_chan_get_residue(struct usb_dmac_chan *chan,
drivers/dma/sh/usb-dmac.c
508
struct usb_dmac_desc *desc = chan->desc;
drivers/dma/sh/usb-dmac.c
512
vd = vchan_find_desc(&chan->vc, cookie);
drivers/dma/sh/usb-dmac.c
523
residue += usb_dmac_get_current_residue(chan, desc, desc->sg_index);
drivers/dma/sh/usb-dmac.c
528
static enum dma_status usb_dmac_tx_status(struct dma_chan *chan,
drivers/dma/sh/usb-dmac.c
532
struct usb_dmac_chan *uchan = to_usb_dmac_chan(chan);
drivers/dma/sh/usb-dmac.c
537
status = dma_cookie_status(chan, cookie, txstate);
drivers/dma/sh/usb-dmac.c
554
static void usb_dmac_issue_pending(struct dma_chan *chan)
drivers/dma/sh/usb-dmac.c
556
struct usb_dmac_chan *uchan = to_usb_dmac_chan(chan);
drivers/dma/sh/usb-dmac.c
568
struct usb_dmac_chan *chan = to_usb_dmac_chan(vd->tx.chan);
drivers/dma/sh/usb-dmac.c
570
usb_dmac_desc_put(chan, desc);
drivers/dma/sh/usb-dmac.c
577
static void usb_dmac_isr_transfer_end(struct usb_dmac_chan *chan)
drivers/dma/sh/usb-dmac.c
579
struct usb_dmac_desc *desc = chan->desc;
drivers/dma/sh/usb-dmac.c
584
usb_dmac_chan_start_sg(chan, desc->sg_index);
drivers/dma/sh/usb-dmac.c
586
desc->residue = usb_dmac_get_current_residue(chan, desc,
drivers/dma/sh/usb-dmac.c
594
usb_dmac_chan_start_desc(chan);
drivers/dma/sh/usb-dmac.c
600
struct usb_dmac_chan *chan = dev;
drivers/dma/sh/usb-dmac.c
606
spin_lock(&chan->vc.lock);
drivers/dma/sh/usb-dmac.c
608
chcr = usb_dmac_chan_read(chan, USB_DMACHCR);
drivers/dma/sh/usb-dmac.c
622
usb_dmac_chan_write(chan, USB_DMACHCR, chcr & ~mask);
drivers/dma/sh/usb-dmac.c
625
usb_dmac_isr_transfer_end(chan);
drivers/dma/sh/usb-dmac.c
627
spin_unlock(&chan->vc.lock);
drivers/dma/sh/usb-dmac.c
636
static bool usb_dmac_chan_filter(struct dma_chan *chan, void *arg)
drivers/dma/sh/usb-dmac.c
638
struct usb_dmac_chan *uchan = to_usb_dmac_chan(chan);
drivers/dma/sh/usb-dmac.c
651
struct dma_chan *chan;
drivers/dma/sh/usb-dmac.c
661
chan = __dma_request_channel(&mask, usb_dmac_chan_filter, dma_spec,
drivers/dma/sh/usb-dmac.c
663
if (!chan)
drivers/dma/sh/usb-dmac.c
666
return chan;
drivers/dma/sh/usb-dmac.c
87
#define to_usb_dmac_chan(c) container_of(c, struct usb_dmac_chan, vc.chan)
drivers/dma/sprd-dma.c
1019
ret = sprd_dma_fill_linklist_desc(chan, sglen, i, src, dst, len,
drivers/dma/sprd-dma.c
1027
ret = sprd_dma_fill_desc(chan, &sdesc->chn_hw, 0, 0, start_src,
drivers/dma/sprd-dma.c
1037
static int sprd_dma_slave_config(struct dma_chan *chan,
drivers/dma/sprd-dma.c
1040
struct sprd_dma_chn *schan = to_sprd_dma_chan(chan);
drivers/dma/sprd-dma.c
1047
static int sprd_dma_pause(struct dma_chan *chan)
drivers/dma/sprd-dma.c
1049
struct sprd_dma_chn *schan = to_sprd_dma_chan(chan);
drivers/dma/sprd-dma.c
1059
static int sprd_dma_resume(struct dma_chan *chan)
drivers/dma/sprd-dma.c
1061
struct sprd_dma_chn *schan = to_sprd_dma_chan(chan);
drivers/dma/sprd-dma.c
1071
static int sprd_dma_terminate_all(struct dma_chan *chan)
drivers/dma/sprd-dma.c
1073
struct sprd_dma_chn *schan = to_sprd_dma_chan(chan);
drivers/dma/sprd-dma.c
1101
static bool sprd_dma_filter_fn(struct dma_chan *chan, void *param)
drivers/dma/sprd-dma.c
1103
struct sprd_dma_chn *schan = to_sprd_dma_chan(chan);
drivers/dma/sprd-dma.c
1254
vc.chan.device_node) {
drivers/dma/sprd-dma.c
1255
list_del(&c->vc.chan.device_node);
drivers/dma/sprd-dma.c
219
static bool sprd_dma_filter_fn(struct dma_chan *chan, void *param);
drivers/dma/sprd-dma.c
226
return container_of(c, struct sprd_dma_chn, vc.chan);
drivers/dma/sprd-dma.c
292
struct sprd_dma_dev *sdev = to_sprd_dma_dev(&schan->vc.chan);
drivers/dma/sprd-dma.c
305
struct sprd_dma_dev *sdev = to_sprd_dma_dev(&schan->vc.chan);
drivers/dma/sprd-dma.c
342
struct sprd_dma_dev *sdev = to_sprd_dma_dev(&schan->vc.chan);
drivers/dma/sprd-dma.c
401
struct sprd_dma_dev *sdev = to_sprd_dma_dev(&schan->vc.chan);
drivers/dma/sprd-dma.c
436
struct sprd_dma_dev *sdev = to_sprd_dma_dev(&schan->vc.chan);
drivers/dma/sprd-dma.c
491
struct sprd_dma_dev *sdev = to_sprd_dma_dev(&schan->vc.chan);
drivers/dma/sprd-dma.c
634
static int sprd_dma_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/sprd-dma.c
636
return pm_runtime_get_sync(chan->device->dev);
drivers/dma/sprd-dma.c
639
static void sprd_dma_free_chan_resources(struct dma_chan *chan)
drivers/dma/sprd-dma.c
641
struct sprd_dma_chn *schan = to_sprd_dma_chan(chan);
drivers/dma/sprd-dma.c
656
pm_runtime_put(chan->device->dev);
drivers/dma/sprd-dma.c
659
static enum dma_status sprd_dma_tx_status(struct dma_chan *chan,
drivers/dma/sprd-dma.c
663
struct sprd_dma_chn *schan = to_sprd_dma_chan(chan);
drivers/dma/sprd-dma.c
669
ret = dma_cookie_status(chan, cookie, txstate);
drivers/dma/sprd-dma.c
703
static void sprd_dma_issue_pending(struct dma_chan *chan)
drivers/dma/sprd-dma.c
705
struct sprd_dma_chn *schan = to_sprd_dma_chan(chan);
drivers/dma/sprd-dma.c
742
static int sprd_dma_fill_desc(struct dma_chan *chan,
drivers/dma/sprd-dma.c
750
struct sprd_dma_dev *sdev = to_sprd_dma_dev(chan);
drivers/dma/sprd-dma.c
751
struct sprd_dma_chn *schan = to_sprd_dma_chan(chan);
drivers/dma/sprd-dma.c
874
static int sprd_dma_fill_linklist_desc(struct dma_chan *chan,
drivers/dma/sprd-dma.c
881
struct sprd_dma_chn *schan = to_sprd_dma_chan(chan);
drivers/dma/sprd-dma.c
890
return sprd_dma_fill_desc(chan, hw, sglen, sg_index, src, dst, len,
drivers/dma/sprd-dma.c
895
sprd_dma_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dest, dma_addr_t src,
drivers/dma/sprd-dma.c
898
struct sprd_dma_chn *schan = to_sprd_dma_chan(chan);
drivers/dma/sprd-dma.c
950
sprd_dma_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
drivers/dma/sprd-dma.c
954
struct sprd_dma_chn *schan = to_sprd_dma_chan(chan);
drivers/dma/st_fdma.c
102
int ch_id = fchan->vchan.chan.chan_id;
drivers/dma/st_fdma.c
171
struct dma_chan *chan;
drivers/dma/st_fdma.c
187
chan = dma_get_any_slave_channel(&fdev->dma_device);
drivers/dma/st_fdma.c
188
if (!chan)
drivers/dma/st_fdma.c
191
fchan = to_st_fdma_chan(chan);
drivers/dma/st_fdma.c
210
chan = ERR_PTR(fchan->dreq_line);
drivers/dma/st_fdma.c
218
return chan;
drivers/dma/st_fdma.c
222
return chan;
drivers/dma/st_fdma.c
25
return container_of(c, struct st_fdma_chan, vchan.chan);
drivers/dma/st_fdma.c
266
static int st_fdma_alloc_chan_res(struct dma_chan *chan)
drivers/dma/st_fdma.c
268
struct st_fdma_chan *fchan = to_st_fdma_chan(chan);
drivers/dma/st_fdma.c
271
fchan->node_pool = dma_pool_create(dev_name(&chan->dev->device),
drivers/dma/st_fdma.c
283
fchan->vchan.chan.chan_id, fchan->cfg.type);
drivers/dma/st_fdma.c
288
static void st_fdma_free_chan_res(struct dma_chan *chan)
drivers/dma/st_fdma.c
290
struct st_fdma_chan *fchan = to_st_fdma_chan(chan);
drivers/dma/st_fdma.c
295
__func__, fchan->vchan.chan.chan_id);
drivers/dma/st_fdma.c
312
struct dma_chan *chan, dma_addr_t dst, dma_addr_t src,
drivers/dma/st_fdma.c
322
fchan = to_st_fdma_chan(chan);
drivers/dma/st_fdma.c
352
int ch_id = fchan->vchan.chan.chan_id;
drivers/dma/st_fdma.c
430
static inline struct st_fdma_chan *st_fdma_prep_common(struct dma_chan *chan,
drivers/dma/st_fdma.c
435
if (!chan || !len)
drivers/dma/st_fdma.c
438
fchan = to_st_fdma_chan(chan);
drivers/dma/st_fdma.c
449
struct dma_chan *chan, dma_addr_t buf_addr, size_t len,
drivers/dma/st_fdma.c
457
fchan = st_fdma_prep_common(chan, len, direction);
drivers/dma/st_fdma.c
508
struct dma_chan *chan, struct scatterlist *sgl,
drivers/dma/st_fdma.c
518
fchan = st_fdma_prep_common(chan, sg_len, direction);
drivers/dma/st_fdma.c
581
static enum dma_status st_fdma_tx_status(struct dma_chan *chan,
drivers/dma/st_fdma.c
585
struct st_fdma_chan *fchan = to_st_fdma_chan(chan);
drivers/dma/st_fdma.c
590
ret = dma_cookie_status(chan, cookie, txstate);
drivers/dma/st_fdma.c
608
static void st_fdma_issue_pending(struct dma_chan *chan)
drivers/dma/st_fdma.c
610
struct st_fdma_chan *fchan = to_st_fdma_chan(chan);
drivers/dma/st_fdma.c
621
static int st_fdma_pause(struct dma_chan *chan)
drivers/dma/st_fdma.c
624
struct st_fdma_chan *fchan = to_st_fdma_chan(chan);
drivers/dma/st_fdma.c
625
int ch_id = fchan->vchan.chan.chan_id;
drivers/dma/st_fdma.c
638
static int st_fdma_resume(struct dma_chan *chan)
drivers/dma/st_fdma.c
642
struct st_fdma_chan *fchan = to_st_fdma_chan(chan);
drivers/dma/st_fdma.c
643
int ch_id = fchan->vchan.chan.chan_id;
drivers/dma/st_fdma.c
658
static int st_fdma_terminate_all(struct dma_chan *chan)
drivers/dma/st_fdma.c
662
struct st_fdma_chan *fchan = to_st_fdma_chan(chan);
drivers/dma/st_fdma.c
663
int ch_id = fchan->vchan.chan.chan_id;
drivers/dma/st_fdma.c
678
static int st_fdma_slave_config(struct dma_chan *chan,
drivers/dma/st_fdma.c
681
struct st_fdma_chan *fchan = to_st_fdma_chan(chan);
drivers/dma/st_fdma.c
735
list_del(&fchan->vchan.chan.device_node);
drivers/dma/st_fdma.c
86
cmd = FDMA_CMD_START(fchan->vchan.chan.chan_id);
drivers/dma/st_fdma.c
95
dev_dbg(fchan->fdev->dev, "start chan:%d\n", fchan->vchan.chan.chan_id);
drivers/dma/st_fdma.h
186
+ (fchan)->vchan.chan.chan_id * 0x4 \
drivers/dma/st_fdma.h
191
+ (fchan)->vchan.chan.chan_id * 0x4 \
drivers/dma/st_fdma.h
208
+ (fchan)->vchan.chan.chan_id * FDMA_NODE_SZ \
drivers/dma/st_fdma.h
213
+ (fchan)->vchan.chan.chan_id * FDMA_NODE_SZ \
drivers/dma/ste_dma40.c
1436
static int d40_pause(struct dma_chan *chan)
drivers/dma/ste_dma40.c
1438
struct d40_chan *d40c = container_of(chan, struct d40_chan, chan);
drivers/dma/ste_dma40.c
1460
static int d40_resume(struct dma_chan *chan)
drivers/dma/ste_dma40.c
1462
struct d40_chan *d40c = container_of(chan, struct d40_chan, chan);
drivers/dma/ste_dma40.c
1488
struct d40_chan *d40c = container_of(tx->chan,
drivers/dma/ste_dma40.c
1490
chan);
drivers/dma/ste_dma40.c
1664
long chan = -1;
drivers/dma/ste_dma40.c
1679
chan = find_next_bit((unsigned long *)regs,
drivers/dma/ste_dma40.c
1680
BITS_PER_LONG * il_size, chan + 1);
drivers/dma/ste_dma40.c
1683
if (chan == BITS_PER_LONG * il_size)
drivers/dma/ste_dma40.c
1686
row = chan / BITS_PER_LONG;
drivers/dma/ste_dma40.c
1687
idx = chan & (BITS_PER_LONG - 1);
drivers/dma/ste_dma40.c
1711
chan, il[row].offset, idx);
drivers/dma/ste_dma40.c
1980
dma_cap_mask_t cap = d40c->chan.device->cap_mask;
drivers/dma/ste_dma40.c
1984
d40c->dma_cfg.dev_type = dma40_memcpy_channels[d40c->chan.chan_id];
drivers/dma/ste_dma40.c
2111
static u32 stedma40_residue(struct dma_chan *chan)
drivers/dma/ste_dma40.c
2114
container_of(chan, struct d40_chan, chan);
drivers/dma/ste_dma40.c
2126
d40_prep_sg_log(struct d40_chan *chan, struct d40_desc *desc,
drivers/dma/ste_dma40.c
2131
struct stedma40_chan_cfg *cfg = &chan->dma_cfg;
drivers/dma/ste_dma40.c
2139
chan->log_def.lcsp1,
drivers/dma/ste_dma40.c
2146
chan->log_def.lcsp3,
drivers/dma/ste_dma40.c
2154
d40_prep_sg_phy(struct d40_chan *chan, struct d40_desc *desc,
drivers/dma/ste_dma40.c
2159
struct stedma40_chan_cfg *cfg = &chan->dma_cfg;
drivers/dma/ste_dma40.c
2171
chan->src_def_cfg,
drivers/dma/ste_dma40.c
2177
chan->dst_def_cfg,
drivers/dma/ste_dma40.c
2180
dma_sync_single_for_device(chan->base->dev, desc->lli_pool.dma_addr,
drivers/dma/ste_dma40.c
2187
d40_prep_desc(struct d40_chan *chan, struct scatterlist *sg,
drivers/dma/ste_dma40.c
2194
desc = d40_desc_get(chan);
drivers/dma/ste_dma40.c
2198
cfg = &chan->dma_cfg;
drivers/dma/ste_dma40.c
2202
chan_err(chan, "Unaligned size\n");
drivers/dma/ste_dma40.c
2206
ret = d40_pool_lli_alloc(chan, desc, desc->lli_len);
drivers/dma/ste_dma40.c
2208
chan_err(chan, "Could not allocate lli\n");
drivers/dma/ste_dma40.c
2216
dma_async_tx_descriptor_init(&desc->txd, &chan->chan);
drivers/dma/ste_dma40.c
2220
d40_desc_free(chan, desc);
drivers/dma/ste_dma40.c
2229
struct d40_chan *chan = container_of(dchan, struct d40_chan, chan);
drivers/dma/ste_dma40.c
2236
if (!chan->phy_chan) {
drivers/dma/ste_dma40.c
2237
chan_err(chan, "Cannot prepare unallocated channel\n");
drivers/dma/ste_dma40.c
2241
d40_set_runtime_config_write(dchan, &chan->slave_config, direction);
drivers/dma/ste_dma40.c
2243
spin_lock_irqsave(&chan->lock, flags);
drivers/dma/ste_dma40.c
2245
desc = d40_prep_desc(chan, sg_src, sg_len, dma_flags);
drivers/dma/ste_dma40.c
2255
src_dev_addr = chan->runtime_addr;
drivers/dma/ste_dma40.c
2257
dst_dev_addr = chan->runtime_addr;
drivers/dma/ste_dma40.c
2259
if (chan_is_logical(chan))
drivers/dma/ste_dma40.c
2260
ret = d40_prep_sg_log(chan, desc, sg_src, sg_dst,
drivers/dma/ste_dma40.c
2263
ret = d40_prep_sg_phy(chan, desc, sg_src, sg_dst,
drivers/dma/ste_dma40.c
2267
chan_err(chan, "Failed to prepare %s sg job: %d\n",
drivers/dma/ste_dma40.c
2268
chan_is_logical(chan) ? "log" : "phy", ret);
drivers/dma/ste_dma40.c
2276
list_add_tail(&desc->node, &chan->prepare_queue);
drivers/dma/ste_dma40.c
2278
spin_unlock_irqrestore(&chan->lock, flags);
drivers/dma/ste_dma40.c
2282
d40_desc_free(chan, desc);
drivers/dma/ste_dma40.c
2284
spin_unlock_irqrestore(&chan->lock, flags);
drivers/dma/ste_dma40.c
2288
static bool stedma40_filter(struct dma_chan *chan, void *data)
drivers/dma/ste_dma40.c
2292
container_of(chan, struct d40_chan, chan);
drivers/dma/ste_dma40.c
2404
static int d40_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/ste_dma40.c
2409
container_of(chan, struct d40_chan, chan);
drivers/dma/ste_dma40.c
2413
dma_cookie_init(chan);
drivers/dma/ste_dma40.c
2468
static void d40_free_chan_resources(struct dma_chan *chan)
drivers/dma/ste_dma40.c
2471
container_of(chan, struct d40_chan, chan);
drivers/dma/ste_dma40.c
2489
static struct dma_async_tx_descriptor *d40_prep_memcpy(struct dma_chan *chan,
drivers/dma/ste_dma40.c
2507
return d40_prep_sg(chan, &src_sg, &dst_sg, 1,
drivers/dma/ste_dma40.c
2512
d40_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
drivers/dma/ste_dma40.c
2519
return d40_prep_sg(chan, sgl, sgl, sg_len, direction, dma_flags);
drivers/dma/ste_dma40.c
2523
dma40_prep_dma_cyclic(struct dma_chan *chan, dma_addr_t dma_addr,
drivers/dma/ste_dma40.c
2544
txd = d40_prep_sg(chan, sg, sg, periods, direction,
drivers/dma/ste_dma40.c
2552
static enum dma_status d40_tx_status(struct dma_chan *chan,
drivers/dma/ste_dma40.c
2556
struct d40_chan *d40c = container_of(chan, struct d40_chan, chan);
drivers/dma/ste_dma40.c
2564
ret = dma_cookie_status(chan, cookie, txstate);
drivers/dma/ste_dma40.c
2566
dma_set_residue(txstate, stedma40_residue(chan));
drivers/dma/ste_dma40.c
2574
static void d40_issue_pending(struct dma_chan *chan)
drivers/dma/ste_dma40.c
2576
struct d40_chan *d40c = container_of(chan, struct d40_chan, chan);
drivers/dma/ste_dma40.c
2595
static int d40_terminate_all(struct dma_chan *chan)
drivers/dma/ste_dma40.c
2598
struct d40_chan *d40c = container_of(chan, struct d40_chan, chan);
drivers/dma/ste_dma40.c
2656
static int d40_set_runtime_config(struct dma_chan *chan,
drivers/dma/ste_dma40.c
2659
struct d40_chan *d40c = container_of(chan, struct d40_chan, chan);
drivers/dma/ste_dma40.c
2667
static int d40_set_runtime_config_write(struct dma_chan *chan,
drivers/dma/ste_dma40.c
2671
struct d40_chan *d40c = container_of(chan, struct d40_chan, chan);
drivers/dma/ste_dma40.c
2783
dma_chan_name(chan),
drivers/dma/ste_dma40.c
2805
d40c->chan.device = dma;
drivers/dma/ste_dma40.c
2820
list_add_tail(&d40c->chan.device_node,
drivers/dma/ste_dma40.c
3067
int chan = base->plat_data->disabled_channels[i];
drivers/dma/ste_dma40.c
3069
base->phy_res[chan].allocated_src = D40_ALLOC_PHY;
drivers/dma/ste_dma40.c
3070
base->phy_res[chan].allocated_dst = D40_ALLOC_PHY;
drivers/dma/ste_dma40.c
3071
base->phy_res[chan].reserved = true;
drivers/dma/ste_dma40.c
3072
gcc |= D40_DREG_GCC_EVTGRP_ENA(D40_PHYS_TO_GROUP(chan),
drivers/dma/ste_dma40.c
3074
gcc |= D40_DREG_GCC_EVTGRP_ENA(D40_PHYS_TO_GROUP(chan),
drivers/dma/ste_dma40.c
3081
int chan = base->plat_data->soft_lli_chans[i];
drivers/dma/ste_dma40.c
3083
base->phy_res[chan].use_soft_lli = true;
drivers/dma/ste_dma40.c
491
struct dma_chan chan;
drivers/dma/ste_dma40.c
62
#define D40_CHAN_POS(chan) (2 * (chan / 2))
drivers/dma/ste_dma40.c
628
return &d40c->chan.dev->device;
drivers/dma/ste_dma40.c
63
#define D40_CHAN_POS_MASK(chan) (0x3 << D40_CHAN_POS(chan))
drivers/dma/ste_dma40.c
631
static bool chan_is_physical(struct d40_chan *chan)
drivers/dma/ste_dma40.c
633
return chan->log_num == D40_PHY_CHAN;
drivers/dma/ste_dma40.c
636
static bool chan_is_logical(struct d40_chan *chan)
drivers/dma/ste_dma40.c
638
return !chan_is_physical(chan);
drivers/dma/ste_dma40.c
641
static void __iomem *chan_base(struct d40_chan *chan)
drivers/dma/ste_dma40.c
643
return chan->base->virtbase + D40_DREG_PCBASE +
drivers/dma/ste_dma40.c
644
chan->phy_chan->num * D40_DREG_PCDELTA;
drivers/dma/ste_dma40.c
653
static int d40_set_runtime_config_write(struct dma_chan *chan,
drivers/dma/ste_dma40.c
829
static void d40_phy_lli_load(struct d40_chan *chan, struct d40_desc *desc)
drivers/dma/ste_dma40.c
833
void __iomem *base = chan_base(chan);
drivers/dma/ste_dma40.c
851
static void d40_log_lli_to_lcxa(struct d40_chan *chan, struct d40_desc *desc)
drivers/dma/ste_dma40.c
853
struct d40_lcla_pool *pool = &chan->base->lcla_pool;
drivers/dma/ste_dma40.c
860
bool use_esram_lcla = chan->base->plat_data->use_esram_lcla;
drivers/dma/ste_dma40.c
880
if (!(chan->phy_chan->use_soft_lli &&
drivers/dma/ste_dma40.c
881
chan->dma_cfg.dir == DMA_DEV_TO_MEM))
drivers/dma/ste_dma40.c
882
curr_lcla = d40_lcla_alloc_one(chan, desc);
drivers/dma/ste_dma40.c
899
d40_log_lli_lcpa_write(chan->lcpa,
drivers/dma/ste_dma40.c
911
unsigned int lcla_offset = chan->phy_chan->num * 1024 +
drivers/dma/ste_dma40.c
918
next_lcla = d40_lcla_alloc_one(chan, desc);
drivers/dma/ste_dma40.c
927
d40_log_lli_lcpa_write(chan->lcpa,
drivers/dma/ste_dma40.c
947
dma_sync_single_range_for_device(chan->base->dev,
drivers/dma/stm32/stm32-dma.c
1000
chan->chan_reg.dma_spar = chan->dma_sconfig.dst_addr;
drivers/dma/stm32/stm32-dma.c
1006
src_bus_width = stm32_dma_get_width(chan, src_addr_width);
drivers/dma/stm32/stm32-dma.c
1015
chan->mem_burst = src_best_burst;
drivers/dma/stm32/stm32-dma.c
1016
src_burst_size = stm32_dma_get_burst(chan, src_best_burst);
drivers/dma/stm32/stm32-dma.c
1023
chan->mem_width = dst_addr_width;
drivers/dma/stm32/stm32-dma.c
1024
dst_bus_width = stm32_dma_get_width(chan, dst_addr_width);
drivers/dma/stm32/stm32-dma.c
1040
chan->mem_burst = dst_best_burst;
drivers/dma/stm32/stm32-dma.c
1041
dst_burst_size = stm32_dma_get_burst(chan, dst_best_burst);
drivers/dma/stm32/stm32-dma.c
1052
chan->chan_reg.dma_sfcr &= ~STM32_DMA_SFCR_FTH_MASK;
drivers/dma/stm32/stm32-dma.c
1054
chan->chan_reg.dma_sfcr |= FIELD_PREP(STM32_DMA_SFCR_FTH_MASK, fifoth);
drivers/dma/stm32/stm32-dma.c
1057
chan->chan_reg.dma_spar = chan->dma_sconfig.src_addr;
drivers/dma/stm32/stm32-dma.c
1058
*buswidth = chan->dma_sconfig.src_addr_width;
drivers/dma/stm32/stm32-dma.c
1062
dev_err(chan2dev(chan), "Dma direction is not supported\n");
drivers/dma/stm32/stm32-dma.c
1066
stm32_dma_set_fifo_config(chan, src_best_burst, dst_best_burst);
drivers/dma/stm32/stm32-dma.c
1069
chan->chan_reg.dma_scr &= ~(STM32_DMA_SCR_DIR_MASK |
drivers/dma/stm32/stm32-dma.c
1072
chan->chan_reg.dma_scr |= dma_scr;
drivers/dma/stm32/stm32-dma.c
1087
struct stm32_dma_chan *chan = to_stm32_dma_chan(c);
drivers/dma/stm32/stm32-dma.c
1094
if (!chan->config_init) {
drivers/dma/stm32/stm32-dma.c
1095
dev_err(chan2dev(chan), "dma channel is not configured\n");
drivers/dma/stm32/stm32-dma.c
1100
dev_err(chan2dev(chan), "Invalid segment length %d\n", sg_len);
drivers/dma/stm32/stm32-dma.c
1110
if (chan->dma_sconfig.device_fc)
drivers/dma/stm32/stm32-dma.c
1111
chan->chan_reg.dma_scr |= STM32_DMA_SCR_PFCTRL;
drivers/dma/stm32/stm32-dma.c
1113
chan->chan_reg.dma_scr &= ~STM32_DMA_SCR_PFCTRL;
drivers/dma/stm32/stm32-dma.c
1116
if (chan->trig_mdma && sg_len > 1) {
drivers/dma/stm32/stm32-dma.c
1117
chan->chan_reg.dma_scr |= STM32_DMA_SCR_DBM;
drivers/dma/stm32/stm32-dma.c
1118
chan->chan_reg.dma_scr &= ~STM32_DMA_SCR_CT;
drivers/dma/stm32/stm32-dma.c
1122
ret = stm32_dma_set_xfer_param(chan, direction, &buswidth,
drivers/dma/stm32/stm32-dma.c
1132
dev_err(chan2dev(chan), "nb items not supported\n");
drivers/dma/stm32/stm32-dma.c
1137
desc->sg_req[i].chan_reg.dma_scr = chan->chan_reg.dma_scr;
drivers/dma/stm32/stm32-dma.c
1138
desc->sg_req[i].chan_reg.dma_sfcr = chan->chan_reg.dma_sfcr;
drivers/dma/stm32/stm32-dma.c
1139
desc->sg_req[i].chan_reg.dma_spar = chan->chan_reg.dma_spar;
drivers/dma/stm32/stm32-dma.c
1142
if (chan->trig_mdma)
drivers/dma/stm32/stm32-dma.c
1148
return vchan_tx_prep(&chan->vchan, &desc->vdesc, flags);
drivers/dma/stm32/stm32-dma.c
1160
struct stm32_dma_chan *chan = to_stm32_dma_chan(c);
drivers/dma/stm32/stm32-dma.c
1167
dev_err(chan2dev(chan), "Invalid buffer/period len\n");
drivers/dma/stm32/stm32-dma.c
1171
if (!chan->config_init) {
drivers/dma/stm32/stm32-dma.c
1172
dev_err(chan2dev(chan), "dma channel is not configured\n");
drivers/dma/stm32/stm32-dma.c
1177
dev_err(chan2dev(chan), "buf_len not multiple of period_len\n");
drivers/dma/stm32/stm32-dma.c
1187
if (chan->busy) {
drivers/dma/stm32/stm32-dma.c
1188
dev_err(chan2dev(chan), "Request not allowed when dma busy\n");
drivers/dma/stm32/stm32-dma.c
1192
ret = stm32_dma_set_xfer_param(chan, direction, &buswidth, period_len,
drivers/dma/stm32/stm32-dma.c
1199
dev_err(chan2dev(chan), "number of items not supported\n");
drivers/dma/stm32/stm32-dma.c
1205
chan->chan_reg.dma_scr |= STM32_DMA_SCR_CIRC;
drivers/dma/stm32/stm32-dma.c
1207
chan->chan_reg.dma_scr |= STM32_DMA_SCR_DBM;
drivers/dma/stm32/stm32-dma.c
1208
chan->chan_reg.dma_scr &= ~STM32_DMA_SCR_CT;
drivers/dma/stm32/stm32-dma.c
1212
chan->chan_reg.dma_scr &= ~STM32_DMA_SCR_PFCTRL;
drivers/dma/stm32/stm32-dma.c
1225
desc->sg_req[i].chan_reg.dma_scr = chan->chan_reg.dma_scr;
drivers/dma/stm32/stm32-dma.c
1226
desc->sg_req[i].chan_reg.dma_sfcr = chan->chan_reg.dma_sfcr;
drivers/dma/stm32/stm32-dma.c
1227
desc->sg_req[i].chan_reg.dma_spar = chan->chan_reg.dma_spar;
drivers/dma/stm32/stm32-dma.c
1230
if (chan->trig_mdma)
drivers/dma/stm32/stm32-dma.c
1233
if (!chan->trig_mdma)
drivers/dma/stm32/stm32-dma.c
1238
return vchan_tx_prep(&chan->vchan, &desc->vdesc, flags);
drivers/dma/stm32/stm32-dma.c
1245
struct stm32_dma_chan *chan = to_stm32_dma_chan(c);
drivers/dma/stm32/stm32-dma.c
1258
threshold = chan->threshold;
drivers/dma/stm32/stm32-dma.c
1268
dma_burst = stm32_dma_get_burst(chan, best_burst);
drivers/dma/stm32/stm32-dma.c
1292
return vchan_tx_prep(&chan->vchan, &desc->vdesc, flags);
drivers/dma/stm32/stm32-dma.c
1295
static u32 stm32_dma_get_remaining_bytes(struct stm32_dma_chan *chan)
drivers/dma/stm32/stm32-dma.c
1298
struct stm32_dma_device *dmadev = stm32_dma_get_dev(chan);
drivers/dma/stm32/stm32-dma.c
1300
dma_scr = stm32_dma_read(dmadev, STM32_DMA_SCR(chan->id));
drivers/dma/stm32/stm32-dma.c
1302
ndtr = stm32_dma_read(dmadev, STM32_DMA_SNDTR(chan->id));
drivers/dma/stm32/stm32-dma.c
1319
static bool stm32_dma_is_current_sg(struct stm32_dma_chan *chan)
drivers/dma/stm32/stm32-dma.c
1321
struct stm32_dma_device *dmadev = stm32_dma_get_dev(chan);
drivers/dma/stm32/stm32-dma.c
1325
id = chan->id;
drivers/dma/stm32/stm32-dma.c
1332
sg_req = &chan->desc->sg_req[chan->next_sg];
drivers/dma/stm32/stm32-dma.c
1355
static size_t stm32_dma_desc_residue(struct stm32_dma_chan *chan,
drivers/dma/stm32/stm32-dma.c
1362
struct stm32_dma_sg_req *sg_req = &chan->desc->sg_req[chan->next_sg];
drivers/dma/stm32/stm32-dma.c
1390
residue = stm32_dma_get_remaining_bytes(chan);
drivers/dma/stm32/stm32-dma.c
1392
if ((chan->desc->cyclic || chan->trig_mdma) && !stm32_dma_is_current_sg(chan)) {
drivers/dma/stm32/stm32-dma.c
1394
if (n_sg == chan->desc->num_sgs)
drivers/dma/stm32/stm32-dma.c
1396
if (!chan->trig_mdma)
drivers/dma/stm32/stm32-dma.c
1407
if ((!chan->desc->cyclic && !chan->trig_mdma) || n_sg != 0)
drivers/dma/stm32/stm32-dma.c
1411
if (!chan->mem_burst)
drivers/dma/stm32/stm32-dma.c
1414
burst_size = chan->mem_burst * chan->mem_width;
drivers/dma/stm32/stm32-dma.c
1426
struct stm32_dma_chan *chan = to_stm32_dma_chan(c);
drivers/dma/stm32/stm32-dma.c
1436
status = chan->status;
drivers/dma/stm32/stm32-dma.c
1441
spin_lock_irqsave(&chan->vchan.lock, flags);
drivers/dma/stm32/stm32-dma.c
1442
vdesc = vchan_find_desc(&chan->vchan, cookie);
drivers/dma/stm32/stm32-dma.c
1443
if (chan->desc && cookie == chan->desc->vdesc.tx.cookie)
drivers/dma/stm32/stm32-dma.c
1444
residue = stm32_dma_desc_residue(chan, chan->desc,
drivers/dma/stm32/stm32-dma.c
1445
chan->next_sg);
drivers/dma/stm32/stm32-dma.c
1447
residue = stm32_dma_desc_residue(chan,
drivers/dma/stm32/stm32-dma.c
1451
spin_unlock_irqrestore(&chan->vchan.lock, flags);
drivers/dma/stm32/stm32-dma.c
1458
struct stm32_dma_chan *chan = to_stm32_dma_chan(c);
drivers/dma/stm32/stm32-dma.c
1459
struct stm32_dma_device *dmadev = stm32_dma_get_dev(chan);
drivers/dma/stm32/stm32-dma.c
1462
chan->config_init = false;
drivers/dma/stm32/stm32-dma.c
1468
ret = stm32_dma_disable_chan(chan);
drivers/dma/stm32/stm32-dma.c
1477
struct stm32_dma_chan *chan = to_stm32_dma_chan(c);
drivers/dma/stm32/stm32-dma.c
1478
struct stm32_dma_device *dmadev = stm32_dma_get_dev(chan);
drivers/dma/stm32/stm32-dma.c
1481
dev_dbg(chan2dev(chan), "Freeing channel %d\n", chan->id);
drivers/dma/stm32/stm32-dma.c
1483
if (chan->busy) {
drivers/dma/stm32/stm32-dma.c
1484
spin_lock_irqsave(&chan->vchan.lock, flags);
drivers/dma/stm32/stm32-dma.c
1485
stm32_dma_stop(chan);
drivers/dma/stm32/stm32-dma.c
1486
chan->desc = NULL;
drivers/dma/stm32/stm32-dma.c
1487
spin_unlock_irqrestore(&chan->vchan.lock, flags);
drivers/dma/stm32/stm32-dma.c
1493
stm32_dma_clear_reg(&chan->chan_reg);
drivers/dma/stm32/stm32-dma.c
1494
chan->threshold = 0;
drivers/dma/stm32/stm32-dma.c
1502
static void stm32_dma_set_config(struct stm32_dma_chan *chan,
drivers/dma/stm32/stm32-dma.c
1505
stm32_dma_clear_reg(&chan->chan_reg);
drivers/dma/stm32/stm32-dma.c
1507
chan->chan_reg.dma_scr = cfg->stream_config & STM32_DMA_SCR_CFG_MASK;
drivers/dma/stm32/stm32-dma.c
1508
chan->chan_reg.dma_scr |= FIELD_PREP(STM32_DMA_SCR_REQ_MASK, cfg->request_line);
drivers/dma/stm32/stm32-dma.c
1511
chan->chan_reg.dma_scr |= STM32_DMA_SCR_TEIE | STM32_DMA_SCR_TCIE;
drivers/dma/stm32/stm32-dma.c
1513
chan->threshold = FIELD_GET(STM32_DMA_THRESHOLD_FTR_MASK, cfg->features);
drivers/dma/stm32/stm32-dma.c
1515
chan->threshold = STM32_DMA_FIFO_THRESHOLD_NONE;
drivers/dma/stm32/stm32-dma.c
1517
chan->chan_reg.dma_scr |= STM32_DMA_SCR_TRBUFF;
drivers/dma/stm32/stm32-dma.c
1518
chan->mdma_config.stream_id = FIELD_GET(STM32_DMA_MDMA_STREAM_ID_MASK, cfg->features);
drivers/dma/stm32/stm32-dma.c
1527
struct stm32_dma_chan *chan;
drivers/dma/stm32/stm32-dma.c
1546
chan = &dmadev->chan[cfg.channel_id];
drivers/dma/stm32/stm32-dma.c
1548
c = dma_get_slave_channel(&chan->vchan.chan);
drivers/dma/stm32/stm32-dma.c
1554
stm32_dma_set_config(chan, &cfg);
drivers/dma/stm32/stm32-dma.c
1567
struct stm32_dma_chan *chan;
drivers/dma/stm32/stm32-dma.c
1646
chan = &dmadev->chan[i];
drivers/dma/stm32/stm32-dma.c
1647
chan->id = i;
drivers/dma/stm32/stm32-dma.c
1648
chan->vchan.desc_free = stm32_dma_desc_free;
drivers/dma/stm32/stm32-dma.c
1649
vchan_init(&chan->vchan, dd);
drivers/dma/stm32/stm32-dma.c
1651
chan->mdma_config.ifcr = res->start;
drivers/dma/stm32/stm32-dma.c
1652
chan->mdma_config.ifcr += STM32_DMA_IFCR(chan->id);
drivers/dma/stm32/stm32-dma.c
1654
chan->mdma_config.tcf = STM32_DMA_TCI;
drivers/dma/stm32/stm32-dma.c
1655
chan->mdma_config.tcf <<= STM32_DMA_FLAGS_SHIFT(chan->id);
drivers/dma/stm32/stm32-dma.c
1663
chan = &dmadev->chan[i];
drivers/dma/stm32/stm32-dma.c
1667
chan->irq = ret;
drivers/dma/stm32/stm32-dma.c
1669
ret = devm_request_irq(&pdev->dev, chan->irq,
drivers/dma/stm32/stm32-dma.c
1671
dev_name(chan2dev(chan)), chan);
drivers/dma/stm32/stm32-dma.c
232
struct stm32_dma_chan chan[STM32_DMA_MAX_CHANNELS];
drivers/dma/stm32/stm32-dma.c
235
static struct stm32_dma_device *stm32_dma_get_dev(struct stm32_dma_chan *chan)
drivers/dma/stm32/stm32-dma.c
237
return container_of(chan->vchan.chan.device, struct stm32_dma_device,
drivers/dma/stm32/stm32-dma.c
243
return container_of(c, struct stm32_dma_chan, vchan.chan);
drivers/dma/stm32/stm32-dma.c
251
static struct device *chan2dev(struct stm32_dma_chan *chan)
drivers/dma/stm32/stm32-dma.c
253
return &chan->vchan.chan.dev->device;
drivers/dma/stm32/stm32-dma.c
266
static int stm32_dma_get_width(struct stm32_dma_chan *chan,
drivers/dma/stm32/stm32-dma.c
277
dev_err(chan2dev(chan), "Dma bus width not supported\n");
drivers/dma/stm32/stm32-dma.c
364
static int stm32_dma_get_burst(struct stm32_dma_chan *chan, u32 maxburst)
drivers/dma/stm32/stm32-dma.c
377
dev_err(chan2dev(chan), "Dma burst size not supported\n");
drivers/dma/stm32/stm32-dma.c
382
static void stm32_dma_set_fifo_config(struct stm32_dma_chan *chan,
drivers/dma/stm32/stm32-dma.c
385
chan->chan_reg.dma_sfcr &= ~STM32_DMA_SFCR_MASK;
drivers/dma/stm32/stm32-dma.c
386
chan->chan_reg.dma_scr &= ~STM32_DMA_SCR_DMEIE;
drivers/dma/stm32/stm32-dma.c
390
chan->chan_reg.dma_scr |= STM32_DMA_SCR_DMEIE;
drivers/dma/stm32/stm32-dma.c
393
chan->chan_reg.dma_sfcr |= STM32_DMA_SFCR_MASK;
drivers/dma/stm32/stm32-dma.c
400
struct stm32_dma_chan *chan = to_stm32_dma_chan(c);
drivers/dma/stm32/stm32-dma.c
402
memcpy(&chan->dma_sconfig, config, sizeof(*config));
drivers/dma/stm32/stm32-dma.c
406
config->peripheral_config = &chan->mdma_config;
drivers/dma/stm32/stm32-dma.c
407
config->peripheral_size = sizeof(chan->mdma_config);
drivers/dma/stm32/stm32-dma.c
408
chan->trig_mdma = true;
drivers/dma/stm32/stm32-dma.c
411
chan->config_init = true;
drivers/dma/stm32/stm32-dma.c
416
static u32 stm32_dma_irq_status(struct stm32_dma_chan *chan)
drivers/dma/stm32/stm32-dma.c
418
struct stm32_dma_device *dmadev = stm32_dma_get_dev(chan);
drivers/dma/stm32/stm32-dma.c
426
dma_isr = stm32_dma_read(dmadev, STM32_DMA_ISR(chan->id));
drivers/dma/stm32/stm32-dma.c
427
flags = dma_isr >> STM32_DMA_FLAGS_SHIFT(chan->id);
drivers/dma/stm32/stm32-dma.c
432
static void stm32_dma_irq_clear(struct stm32_dma_chan *chan, u32 flags)
drivers/dma/stm32/stm32-dma.c
434
struct stm32_dma_device *dmadev = stm32_dma_get_dev(chan);
drivers/dma/stm32/stm32-dma.c
442
dma_ifcr = flags << STM32_DMA_FLAGS_SHIFT(chan->id);
drivers/dma/stm32/stm32-dma.c
444
stm32_dma_write(dmadev, STM32_DMA_IFCR(chan->id), dma_ifcr);
drivers/dma/stm32/stm32-dma.c
447
static int stm32_dma_disable_chan(struct stm32_dma_chan *chan)
drivers/dma/stm32/stm32-dma.c
449
struct stm32_dma_device *dmadev = stm32_dma_get_dev(chan);
drivers/dma/stm32/stm32-dma.c
452
id = chan->id;
drivers/dma/stm32/stm32-dma.c
468
static void stm32_dma_stop(struct stm32_dma_chan *chan)
drivers/dma/stm32/stm32-dma.c
470
struct stm32_dma_device *dmadev = stm32_dma_get_dev(chan);
drivers/dma/stm32/stm32-dma.c
475
dma_scr = stm32_dma_read(dmadev, STM32_DMA_SCR(chan->id));
drivers/dma/stm32/stm32-dma.c
477
stm32_dma_write(dmadev, STM32_DMA_SCR(chan->id), dma_scr);
drivers/dma/stm32/stm32-dma.c
478
dma_sfcr = stm32_dma_read(dmadev, STM32_DMA_SFCR(chan->id));
drivers/dma/stm32/stm32-dma.c
480
stm32_dma_write(dmadev, STM32_DMA_SFCR(chan->id), dma_sfcr);
drivers/dma/stm32/stm32-dma.c
483
ret = stm32_dma_disable_chan(chan);
drivers/dma/stm32/stm32-dma.c
488
status = stm32_dma_irq_status(chan);
drivers/dma/stm32/stm32-dma.c
490
dev_dbg(chan2dev(chan), "%s(): clearing interrupt: 0x%08x\n",
drivers/dma/stm32/stm32-dma.c
492
stm32_dma_irq_clear(chan, status);
drivers/dma/stm32/stm32-dma.c
495
chan->busy = false;
drivers/dma/stm32/stm32-dma.c
496
chan->status = DMA_COMPLETE;
drivers/dma/stm32/stm32-dma.c
501
struct stm32_dma_chan *chan = to_stm32_dma_chan(c);
drivers/dma/stm32/stm32-dma.c
505
spin_lock_irqsave(&chan->vchan.lock, flags);
drivers/dma/stm32/stm32-dma.c
507
if (chan->desc) {
drivers/dma/stm32/stm32-dma.c
508
dma_cookie_complete(&chan->desc->vdesc.tx);
drivers/dma/stm32/stm32-dma.c
509
vchan_terminate_vdesc(&chan->desc->vdesc);
drivers/dma/stm32/stm32-dma.c
510
if (chan->busy)
drivers/dma/stm32/stm32-dma.c
511
stm32_dma_stop(chan);
drivers/dma/stm32/stm32-dma.c
512
chan->desc = NULL;
drivers/dma/stm32/stm32-dma.c
515
vchan_get_all_descriptors(&chan->vchan, &head);
drivers/dma/stm32/stm32-dma.c
516
spin_unlock_irqrestore(&chan->vchan.lock, flags);
drivers/dma/stm32/stm32-dma.c
517
vchan_dma_desc_free_list(&chan->vchan, &head);
drivers/dma/stm32/stm32-dma.c
524
struct stm32_dma_chan *chan = to_stm32_dma_chan(c);
drivers/dma/stm32/stm32-dma.c
526
vchan_synchronize(&chan->vchan);
drivers/dma/stm32/stm32-dma.c
529
static void stm32_dma_dump_reg(struct stm32_dma_chan *chan)
drivers/dma/stm32/stm32-dma.c
531
struct stm32_dma_device *dmadev = stm32_dma_get_dev(chan);
drivers/dma/stm32/stm32-dma.c
532
u32 scr = stm32_dma_read(dmadev, STM32_DMA_SCR(chan->id));
drivers/dma/stm32/stm32-dma.c
533
u32 ndtr = stm32_dma_read(dmadev, STM32_DMA_SNDTR(chan->id));
drivers/dma/stm32/stm32-dma.c
534
u32 spar = stm32_dma_read(dmadev, STM32_DMA_SPAR(chan->id));
drivers/dma/stm32/stm32-dma.c
535
u32 sm0ar = stm32_dma_read(dmadev, STM32_DMA_SM0AR(chan->id));
drivers/dma/stm32/stm32-dma.c
536
u32 sm1ar = stm32_dma_read(dmadev, STM32_DMA_SM1AR(chan->id));
drivers/dma/stm32/stm32-dma.c
537
u32 sfcr = stm32_dma_read(dmadev, STM32_DMA_SFCR(chan->id));
drivers/dma/stm32/stm32-dma.c
539
dev_dbg(chan2dev(chan), "SCR: 0x%08x\n", scr);
drivers/dma/stm32/stm32-dma.c
540
dev_dbg(chan2dev(chan), "NDTR: 0x%08x\n", ndtr);
drivers/dma/stm32/stm32-dma.c
541
dev_dbg(chan2dev(chan), "SPAR: 0x%08x\n", spar);
drivers/dma/stm32/stm32-dma.c
542
dev_dbg(chan2dev(chan), "SM0AR: 0x%08x\n", sm0ar);
drivers/dma/stm32/stm32-dma.c
543
dev_dbg(chan2dev(chan), "SM1AR: 0x%08x\n", sm1ar);
drivers/dma/stm32/stm32-dma.c
544
dev_dbg(chan2dev(chan), "SFCR: 0x%08x\n", sfcr);
drivers/dma/stm32/stm32-dma.c
547
static void stm32_dma_sg_inc(struct stm32_dma_chan *chan)
drivers/dma/stm32/stm32-dma.c
549
chan->next_sg++;
drivers/dma/stm32/stm32-dma.c
550
if (chan->desc->cyclic && (chan->next_sg == chan->desc->num_sgs))
drivers/dma/stm32/stm32-dma.c
551
chan->next_sg = 0;
drivers/dma/stm32/stm32-dma.c
554
static void stm32_dma_configure_next_sg(struct stm32_dma_chan *chan);
drivers/dma/stm32/stm32-dma.c
556
static void stm32_dma_start_transfer(struct stm32_dma_chan *chan)
drivers/dma/stm32/stm32-dma.c
558
struct stm32_dma_device *dmadev = stm32_dma_get_dev(chan);
drivers/dma/stm32/stm32-dma.c
565
ret = stm32_dma_disable_chan(chan);
drivers/dma/stm32/stm32-dma.c
569
if (!chan->desc) {
drivers/dma/stm32/stm32-dma.c
570
vdesc = vchan_next_desc(&chan->vchan);
drivers/dma/stm32/stm32-dma.c
576
chan->desc = to_stm32_dma_desc(vdesc);
drivers/dma/stm32/stm32-dma.c
577
chan->next_sg = 0;
drivers/dma/stm32/stm32-dma.c
580
if (chan->next_sg == chan->desc->num_sgs)
drivers/dma/stm32/stm32-dma.c
581
chan->next_sg = 0;
drivers/dma/stm32/stm32-dma.c
583
sg_req = &chan->desc->sg_req[chan->next_sg];
drivers/dma/stm32/stm32-dma.c
587
if (chan->trig_mdma && chan->dma_sconfig.direction != DMA_MEM_TO_DEV)
drivers/dma/stm32/stm32-dma.c
591
stm32_dma_write(dmadev, STM32_DMA_SCR(chan->id), reg->dma_scr);
drivers/dma/stm32/stm32-dma.c
592
stm32_dma_write(dmadev, STM32_DMA_SPAR(chan->id), reg->dma_spar);
drivers/dma/stm32/stm32-dma.c
593
stm32_dma_write(dmadev, STM32_DMA_SM0AR(chan->id), reg->dma_sm0ar);
drivers/dma/stm32/stm32-dma.c
594
stm32_dma_write(dmadev, STM32_DMA_SFCR(chan->id), reg->dma_sfcr);
drivers/dma/stm32/stm32-dma.c
595
stm32_dma_write(dmadev, STM32_DMA_SM1AR(chan->id), reg->dma_sm1ar);
drivers/dma/stm32/stm32-dma.c
596
stm32_dma_write(dmadev, STM32_DMA_SNDTR(chan->id), reg->dma_sndtr);
drivers/dma/stm32/stm32-dma.c
598
stm32_dma_sg_inc(chan);
drivers/dma/stm32/stm32-dma.c
601
status = stm32_dma_irq_status(chan);
drivers/dma/stm32/stm32-dma.c
603
stm32_dma_irq_clear(chan, status);
drivers/dma/stm32/stm32-dma.c
605
if (chan->desc->cyclic)
drivers/dma/stm32/stm32-dma.c
606
stm32_dma_configure_next_sg(chan);
drivers/dma/stm32/stm32-dma.c
608
stm32_dma_dump_reg(chan);
drivers/dma/stm32/stm32-dma.c
611
chan->busy = true;
drivers/dma/stm32/stm32-dma.c
612
chan->status = DMA_IN_PROGRESS;
drivers/dma/stm32/stm32-dma.c
614
stm32_dma_write(dmadev, STM32_DMA_SCR(chan->id), reg->dma_scr);
drivers/dma/stm32/stm32-dma.c
616
dev_dbg(chan2dev(chan), "vchan %p: started\n", &chan->vchan);
drivers/dma/stm32/stm32-dma.c
619
static void stm32_dma_configure_next_sg(struct stm32_dma_chan *chan)
drivers/dma/stm32/stm32-dma.c
621
struct stm32_dma_device *dmadev = stm32_dma_get_dev(chan);
drivers/dma/stm32/stm32-dma.c
625
id = chan->id;
drivers/dma/stm32/stm32-dma.c
628
sg_req = &chan->desc->sg_req[chan->next_sg];
drivers/dma/stm32/stm32-dma.c
633
dev_dbg(chan2dev(chan), "CT=1 <=> SM0AR: 0x%08x\n",
drivers/dma/stm32/stm32-dma.c
638
dev_dbg(chan2dev(chan), "CT=0 <=> SM1AR: 0x%08x\n",
drivers/dma/stm32/stm32-dma.c
643
static void stm32_dma_handle_chan_paused(struct stm32_dma_chan *chan)
drivers/dma/stm32/stm32-dma.c
645
struct stm32_dma_device *dmadev = stm32_dma_get_dev(chan);
drivers/dma/stm32/stm32-dma.c
652
dma_scr = stm32_dma_read(dmadev, STM32_DMA_SCR(chan->id));
drivers/dma/stm32/stm32-dma.c
658
if (chan->desc && chan->desc->cyclic) {
drivers/dma/stm32/stm32-dma.c
659
if (chan->desc->num_sgs == 1)
drivers/dma/stm32/stm32-dma.c
664
chan->chan_reg.dma_scr = dma_scr;
drivers/dma/stm32/stm32-dma.c
670
if (chan->desc && chan->desc->cyclic) {
drivers/dma/stm32/stm32-dma.c
672
stm32_dma_write(dmadev, STM32_DMA_SCR(chan->id), dma_scr);
drivers/dma/stm32/stm32-dma.c
675
chan->chan_reg.dma_sndtr = stm32_dma_read(dmadev, STM32_DMA_SNDTR(chan->id));
drivers/dma/stm32/stm32-dma.c
677
chan->status = DMA_PAUSED;
drivers/dma/stm32/stm32-dma.c
679
dev_dbg(chan2dev(chan), "vchan %p: paused\n", &chan->vchan);
drivers/dma/stm32/stm32-dma.c
682
static void stm32_dma_post_resume_reconfigure(struct stm32_dma_chan *chan)
drivers/dma/stm32/stm32-dma.c
684
struct stm32_dma_device *dmadev = stm32_dma_get_dev(chan);
drivers/dma/stm32/stm32-dma.c
688
id = chan->id;
drivers/dma/stm32/stm32-dma.c
692
status = stm32_dma_irq_status(chan);
drivers/dma/stm32/stm32-dma.c
694
stm32_dma_irq_clear(chan, status);
drivers/dma/stm32/stm32-dma.c
696
if (!chan->next_sg)
drivers/dma/stm32/stm32-dma.c
697
sg_req = &chan->desc->sg_req[chan->desc->num_sgs - 1];
drivers/dma/stm32/stm32-dma.c
699
sg_req = &chan->desc->sg_req[chan->next_sg - 1];
drivers/dma/stm32/stm32-dma.c
702
stm32_dma_write(dmadev, STM32_DMA_SNDTR(chan->id), sg_req->chan_reg.dma_sndtr);
drivers/dma/stm32/stm32-dma.c
712
if (chan->chan_reg.dma_scr & STM32_DMA_SCR_DBM) {
drivers/dma/stm32/stm32-dma.c
715
if (chan->chan_reg.dma_scr & STM32_DMA_SCR_CT)
drivers/dma/stm32/stm32-dma.c
719
} else if (chan->chan_reg.dma_scr & STM32_DMA_SCR_CIRC) {
drivers/dma/stm32/stm32-dma.c
722
stm32_dma_write(dmadev, STM32_DMA_SCR(chan->id), dma_scr);
drivers/dma/stm32/stm32-dma.c
724
stm32_dma_configure_next_sg(chan);
drivers/dma/stm32/stm32-dma.c
726
stm32_dma_dump_reg(chan);
drivers/dma/stm32/stm32-dma.c
729
stm32_dma_write(dmadev, STM32_DMA_SCR(chan->id), dma_scr);
drivers/dma/stm32/stm32-dma.c
731
dev_dbg(chan2dev(chan), "vchan %p: reconfigured after pause/resume\n", &chan->vchan);
drivers/dma/stm32/stm32-dma.c
734
static void stm32_dma_handle_chan_done(struct stm32_dma_chan *chan, u32 scr)
drivers/dma/stm32/stm32-dma.c
736
if (!chan->desc)
drivers/dma/stm32/stm32-dma.c
739
if (chan->desc->cyclic) {
drivers/dma/stm32/stm32-dma.c
740
vchan_cyclic_callback(&chan->desc->vdesc);
drivers/dma/stm32/stm32-dma.c
741
if (chan->trig_mdma)
drivers/dma/stm32/stm32-dma.c
743
stm32_dma_sg_inc(chan);
drivers/dma/stm32/stm32-dma.c
746
stm32_dma_post_resume_reconfigure(chan);
drivers/dma/stm32/stm32-dma.c
747
else if (scr & STM32_DMA_SCR_DBM && chan->desc->num_sgs > 2)
drivers/dma/stm32/stm32-dma.c
748
stm32_dma_configure_next_sg(chan);
drivers/dma/stm32/stm32-dma.c
750
chan->busy = false;
drivers/dma/stm32/stm32-dma.c
751
chan->status = DMA_COMPLETE;
drivers/dma/stm32/stm32-dma.c
752
if (chan->next_sg == chan->desc->num_sgs) {
drivers/dma/stm32/stm32-dma.c
753
vchan_cookie_complete(&chan->desc->vdesc);
drivers/dma/stm32/stm32-dma.c
754
chan->desc = NULL;
drivers/dma/stm32/stm32-dma.c
756
stm32_dma_start_transfer(chan);
drivers/dma/stm32/stm32-dma.c
762
struct stm32_dma_chan *chan = devid;
drivers/dma/stm32/stm32-dma.c
763
struct stm32_dma_device *dmadev = stm32_dma_get_dev(chan);
drivers/dma/stm32/stm32-dma.c
766
spin_lock(&chan->vchan.lock);
drivers/dma/stm32/stm32-dma.c
768
status = stm32_dma_irq_status(chan);
drivers/dma/stm32/stm32-dma.c
769
scr = stm32_dma_read(dmadev, STM32_DMA_SCR(chan->id));
drivers/dma/stm32/stm32-dma.c
770
sfcr = stm32_dma_read(dmadev, STM32_DMA_SFCR(chan->id));
drivers/dma/stm32/stm32-dma.c
773
stm32_dma_irq_clear(chan, STM32_DMA_FEI);
drivers/dma/stm32/stm32-dma.c
778
dev_err(chan2dev(chan), "FIFO Error\n");
drivers/dma/stm32/stm32-dma.c
780
dev_dbg(chan2dev(chan), "FIFO over/underrun\n");
drivers/dma/stm32/stm32-dma.c
784
stm32_dma_irq_clear(chan, STM32_DMA_DMEI);
drivers/dma/stm32/stm32-dma.c
787
dev_dbg(chan2dev(chan), "Direct mode overrun\n");
drivers/dma/stm32/stm32-dma.c
791
stm32_dma_irq_clear(chan, STM32_DMA_TCI);
drivers/dma/stm32/stm32-dma.c
793
if (chan->status != DMA_PAUSED)
drivers/dma/stm32/stm32-dma.c
794
stm32_dma_handle_chan_done(chan, scr);
drivers/dma/stm32/stm32-dma.c
800
stm32_dma_irq_clear(chan, STM32_DMA_HTI);
drivers/dma/stm32/stm32-dma.c
805
stm32_dma_irq_clear(chan, status);
drivers/dma/stm32/stm32-dma.c
806
dev_err(chan2dev(chan), "DMA error: status=0x%08x\n", status);
drivers/dma/stm32/stm32-dma.c
808
dev_err(chan2dev(chan), "chan disabled by HW\n");
drivers/dma/stm32/stm32-dma.c
811
spin_unlock(&chan->vchan.lock);
drivers/dma/stm32/stm32-dma.c
818
struct stm32_dma_chan *chan = to_stm32_dma_chan(c);
drivers/dma/stm32/stm32-dma.c
821
spin_lock_irqsave(&chan->vchan.lock, flags);
drivers/dma/stm32/stm32-dma.c
822
if (vchan_issue_pending(&chan->vchan) && !chan->desc && !chan->busy) {
drivers/dma/stm32/stm32-dma.c
823
dev_dbg(chan2dev(chan), "vchan %p: issued\n", &chan->vchan);
drivers/dma/stm32/stm32-dma.c
824
stm32_dma_start_transfer(chan);
drivers/dma/stm32/stm32-dma.c
827
spin_unlock_irqrestore(&chan->vchan.lock, flags);
drivers/dma/stm32/stm32-dma.c
832
struct stm32_dma_chan *chan = to_stm32_dma_chan(c);
drivers/dma/stm32/stm32-dma.c
836
if (chan->status != DMA_IN_PROGRESS)
drivers/dma/stm32/stm32-dma.c
839
spin_lock_irqsave(&chan->vchan.lock, flags);
drivers/dma/stm32/stm32-dma.c
841
ret = stm32_dma_disable_chan(chan);
drivers/dma/stm32/stm32-dma.c
843
stm32_dma_handle_chan_paused(chan);
drivers/dma/stm32/stm32-dma.c
845
spin_unlock_irqrestore(&chan->vchan.lock, flags);
drivers/dma/stm32/stm32-dma.c
852
struct stm32_dma_chan *chan = to_stm32_dma_chan(c);
drivers/dma/stm32/stm32-dma.c
853
struct stm32_dma_device *dmadev = stm32_dma_get_dev(chan);
drivers/dma/stm32/stm32-dma.c
854
struct stm32_dma_chan_reg chan_reg = chan->chan_reg;
drivers/dma/stm32/stm32-dma.c
855
u32 id = chan->id, scr, ndtr, offset, spar, sm0ar, sm1ar;
drivers/dma/stm32/stm32-dma.c
859
if (chan->status != DMA_PAUSED)
drivers/dma/stm32/stm32-dma.c
866
spin_lock_irqsave(&chan->vchan.lock, flags);
drivers/dma/stm32/stm32-dma.c
869
if (!chan->next_sg)
drivers/dma/stm32/stm32-dma.c
870
sg_req = &chan->desc->sg_req[chan->desc->num_sgs - 1];
drivers/dma/stm32/stm32-dma.c
872
sg_req = &chan->desc->sg_req[chan->next_sg - 1];
drivers/dma/stm32/stm32-dma.c
914
stm32_dma_configure_next_sg(chan);
drivers/dma/stm32/stm32-dma.c
916
stm32_dma_dump_reg(chan);
drivers/dma/stm32/stm32-dma.c
919
chan->status = DMA_IN_PROGRESS;
drivers/dma/stm32/stm32-dma.c
923
spin_unlock_irqrestore(&chan->vchan.lock, flags);
drivers/dma/stm32/stm32-dma.c
925
dev_dbg(chan2dev(chan), "vchan %p: resumed\n", &chan->vchan);
drivers/dma/stm32/stm32-dma.c
930
static int stm32_dma_set_xfer_param(struct stm32_dma_chan *chan,
drivers/dma/stm32/stm32-dma.c
941
src_addr_width = chan->dma_sconfig.src_addr_width;
drivers/dma/stm32/stm32-dma.c
942
dst_addr_width = chan->dma_sconfig.dst_addr_width;
drivers/dma/stm32/stm32-dma.c
943
src_maxburst = chan->dma_sconfig.src_maxburst;
drivers/dma/stm32/stm32-dma.c
944
dst_maxburst = chan->dma_sconfig.dst_maxburst;
drivers/dma/stm32/stm32-dma.c
945
fifoth = chan->threshold;
drivers/dma/stm32/stm32-dma.c
950
dst_bus_width = stm32_dma_get_width(chan, dst_addr_width);
drivers/dma/stm32/stm32-dma.c
960
dst_burst_size = stm32_dma_get_burst(chan, dst_best_burst);
drivers/dma/stm32/stm32-dma.c
967
chan->mem_width = src_addr_width;
drivers/dma/stm32/stm32-dma.c
968
src_bus_width = stm32_dma_get_width(chan, src_addr_width);
drivers/dma/stm32/stm32-dma.c
984
src_burst_size = stm32_dma_get_burst(chan, src_best_burst);
drivers/dma/stm32/stm32-dma.c
995
chan->chan_reg.dma_sfcr &= ~STM32_DMA_SFCR_FTH_MASK;
drivers/dma/stm32/stm32-dma.c
997
chan->chan_reg.dma_sfcr |= FIELD_PREP(STM32_DMA_SFCR_FTH_MASK, fifoth);
drivers/dma/stm32/stm32-dma3.c
1002
static void stm32_dma3_chan_complete(struct stm32_dma3_chan *chan)
drivers/dma/stm32/stm32-dma3.c
1004
if (!chan->swdesc)
drivers/dma/stm32/stm32-dma3.c
1007
vchan_cookie_complete(&chan->swdesc->vdesc);
drivers/dma/stm32/stm32-dma3.c
1008
chan->swdesc = NULL;
drivers/dma/stm32/stm32-dma3.c
1009
stm32_dma3_chan_start(chan);
drivers/dma/stm32/stm32-dma3.c
1014
struct stm32_dma3_chan *chan = devid;
drivers/dma/stm32/stm32-dma3.c
1015
struct stm32_dma3_ddata *ddata = to_stm32_dma3_ddata(chan);
drivers/dma/stm32/stm32-dma3.c
1018
spin_lock(&chan->vchan.lock);
drivers/dma/stm32/stm32-dma3.c
1021
if (!(misr & MISR_MIS(chan->id))) {
drivers/dma/stm32/stm32-dma3.c
1022
spin_unlock(&chan->vchan.lock);
drivers/dma/stm32/stm32-dma3.c
1026
csr = readl_relaxed(ddata->base + STM32_DMA3_CSR(chan->id));
drivers/dma/stm32/stm32-dma3.c
1027
ccr = readl_relaxed(ddata->base + STM32_DMA3_CCR(chan->id)) & CCR_ALLIE;
drivers/dma/stm32/stm32-dma3.c
1030
if (chan->swdesc->cyclic)
drivers/dma/stm32/stm32-dma3.c
1031
vchan_cyclic_callback(&chan->swdesc->vdesc);
drivers/dma/stm32/stm32-dma3.c
1033
stm32_dma3_chan_complete(chan);
drivers/dma/stm32/stm32-dma3.c
1037
dev_err(chan2dev(chan), "User setting error\n");
drivers/dma/stm32/stm32-dma3.c
1038
chan->dma_status = DMA_ERROR;
drivers/dma/stm32/stm32-dma3.c
1040
stm32_dma3_check_user_setting(chan);
drivers/dma/stm32/stm32-dma3.c
1041
stm32_dma3_chan_reset(chan);
drivers/dma/stm32/stm32-dma3.c
1045
dev_err(chan2dev(chan), "Update link transfer error\n");
drivers/dma/stm32/stm32-dma3.c
1046
chan->dma_status = DMA_ERROR;
drivers/dma/stm32/stm32-dma3.c
1048
stm32_dma3_chan_reset(chan);
drivers/dma/stm32/stm32-dma3.c
1052
dev_err(chan2dev(chan), "Data transfer error\n");
drivers/dma/stm32/stm32-dma3.c
1053
chan->dma_status = DMA_ERROR;
drivers/dma/stm32/stm32-dma3.c
1055
stm32_dma3_chan_reset(chan);
drivers/dma/stm32/stm32-dma3.c
1065
writel_relaxed(csr, ddata->base + STM32_DMA3_CFCR(chan->id));
drivers/dma/stm32/stm32-dma3.c
1067
spin_unlock(&chan->vchan.lock);
drivers/dma/stm32/stm32-dma3.c
1072
static int stm32_dma3_get_chan_sem(struct stm32_dma3_chan *chan)
drivers/dma/stm32/stm32-dma3.c
1074
struct stm32_dma3_ddata *ddata = to_stm32_dma3_ddata(chan);
drivers/dma/stm32/stm32-dma3.c
1077
csemcr = readl_relaxed(ddata->base + STM32_DMA3_CSEMCR(chan->id));
drivers/dma/stm32/stm32-dma3.c
1080
writel_relaxed(CSEMCR_SEM_MUTEX, ddata->base + STM32_DMA3_CSEMCR(chan->id));
drivers/dma/stm32/stm32-dma3.c
1081
csemcr = readl_relaxed(ddata->base + STM32_DMA3_CSEMCR(chan->id));
drivers/dma/stm32/stm32-dma3.c
1089
chan->semaphore_taken = true;
drivers/dma/stm32/stm32-dma3.c
1090
dev_dbg(chan2dev(chan), "under CID1 control (semcr=0x%08x)\n", csemcr);
drivers/dma/stm32/stm32-dma3.c
1095
chan->semaphore_taken = false;
drivers/dma/stm32/stm32-dma3.c
1096
dev_err(chan2dev(chan), "not under CID1 control (in-use by CID%d)\n", ccid);
drivers/dma/stm32/stm32-dma3.c
1101
static void stm32_dma3_put_chan_sem(struct stm32_dma3_chan *chan)
drivers/dma/stm32/stm32-dma3.c
1103
struct stm32_dma3_ddata *ddata = to_stm32_dma3_ddata(chan);
drivers/dma/stm32/stm32-dma3.c
1105
if (chan->semaphore_taken) {
drivers/dma/stm32/stm32-dma3.c
1106
writel_relaxed(0, ddata->base + STM32_DMA3_CSEMCR(chan->id));
drivers/dma/stm32/stm32-dma3.c
1107
chan->semaphore_taken = false;
drivers/dma/stm32/stm32-dma3.c
1108
dev_dbg(chan2dev(chan), "no more under CID1 control\n");
drivers/dma/stm32/stm32-dma3.c
1114
struct stm32_dma3_chan *chan = to_stm32_dma3_chan(c);
drivers/dma/stm32/stm32-dma3.c
1115
struct stm32_dma3_ddata *ddata = to_stm32_dma3_ddata(chan);
drivers/dma/stm32/stm32-dma3.c
1123
if (chan->semaphore_mode &&
drivers/dma/stm32/stm32-dma3.c
1124
readl_relaxed(ddata->base + STM32_DMA3_CSEMCR(chan->id)) & CSEMCR_SEM_MUTEX) {
drivers/dma/stm32/stm32-dma3.c
1129
chan->lli_pool = dmam_pool_create(dev_name(&c->dev->device), c->device->dev,
drivers/dma/stm32/stm32-dma3.c
1132
if (!chan->lli_pool) {
drivers/dma/stm32/stm32-dma3.c
1133
dev_err(chan2dev(chan), "Failed to create LLI pool\n");
drivers/dma/stm32/stm32-dma3.c
1139
if (chan->semaphore_mode) {
drivers/dma/stm32/stm32-dma3.c
1140
ret = stm32_dma3_get_chan_sem(chan);
drivers/dma/stm32/stm32-dma3.c
1148
dmam_pool_destroy(chan->lli_pool);
drivers/dma/stm32/stm32-dma3.c
1149
chan->lli_pool = NULL;
drivers/dma/stm32/stm32-dma3.c
1159
struct stm32_dma3_chan *chan = to_stm32_dma3_chan(c);
drivers/dma/stm32/stm32-dma3.c
1160
struct stm32_dma3_ddata *ddata = to_stm32_dma3_ddata(chan);
drivers/dma/stm32/stm32-dma3.c
1164
spin_lock_irqsave(&chan->vchan.lock, flags);
drivers/dma/stm32/stm32-dma3.c
1165
stm32_dma3_chan_stop(chan);
drivers/dma/stm32/stm32-dma3.c
1166
chan->swdesc = NULL;
drivers/dma/stm32/stm32-dma3.c
1167
spin_unlock_irqrestore(&chan->vchan.lock, flags);
drivers/dma/stm32/stm32-dma3.c
1171
dmam_pool_destroy(chan->lli_pool);
drivers/dma/stm32/stm32-dma3.c
1172
chan->lli_pool = NULL;
drivers/dma/stm32/stm32-dma3.c
1175
if (chan->semaphore_mode)
drivers/dma/stm32/stm32-dma3.c
1176
stm32_dma3_put_chan_sem(chan);
drivers/dma/stm32/stm32-dma3.c
1181
memset(&chan->dt_config, 0, sizeof(chan->dt_config));
drivers/dma/stm32/stm32-dma3.c
1182
memset(&chan->dma_config, 0, sizeof(chan->dma_config));
drivers/dma/stm32/stm32-dma3.c
1183
chan->config_set = 0;
drivers/dma/stm32/stm32-dma3.c
1186
static u32 stm32_dma3_get_ll_count(struct stm32_dma3_chan *chan, size_t len, bool prevent_refactor)
drivers/dma/stm32/stm32-dma3.c
1196
if (len >= chan->max_burst) {
drivers/dma/stm32/stm32-dma3.c
1198
len -= (len / chan->max_burst) * chan->max_burst;
drivers/dma/stm32/stm32-dma3.c
1208
static void stm32_dma3_init_chan_config_for_memcpy(struct stm32_dma3_chan *chan,
drivers/dma/stm32/stm32-dma3.c
1211
struct stm32_dma3_ddata *ddata = to_stm32_dma3_ddata(chan);
drivers/dma/stm32/stm32-dma3.c
1212
u32 dw = get_chan_max_dw(ddata->ports_max_dw[0], chan->max_burst); /* port 0 by default */
drivers/dma/stm32/stm32-dma3.c
1213
u32 burst = chan->max_burst / dw;
drivers/dma/stm32/stm32-dma3.c
1216
if (!(chan->config_set & STM32_DMA3_CFG_SET_DT)) {
drivers/dma/stm32/stm32-dma3.c
1217
chan->dt_config.ch_conf = FIELD_PREP(STM32_DMA3_DT_PRIO, CCR_PRIO_VERY_HIGH);
drivers/dma/stm32/stm32-dma3.c
1218
chan->dt_config.ch_conf |= FIELD_PREP(STM32_DMA3_DT_FIFO, chan->fifo_size);
drivers/dma/stm32/stm32-dma3.c
1219
chan->dt_config.tr_conf = STM32_DMA3_DT_SINC | STM32_DMA3_DT_DINC;
drivers/dma/stm32/stm32-dma3.c
1220
chan->dt_config.tr_conf |= FIELD_PREP(STM32_DMA3_DT_TCEM, CTR2_TCEM_CHANNEL);
drivers/dma/stm32/stm32-dma3.c
1224
if (!(chan->config_set & STM32_DMA3_CFG_SET_DMA)) {
drivers/dma/stm32/stm32-dma3.c
1225
chan->dma_config.src_addr_width = dw;
drivers/dma/stm32/stm32-dma3.c
1226
chan->dma_config.dst_addr_width = dw;
drivers/dma/stm32/stm32-dma3.c
1227
chan->dma_config.src_maxburst = burst;
drivers/dma/stm32/stm32-dma3.c
1228
chan->dma_config.dst_maxburst = burst;
drivers/dma/stm32/stm32-dma3.c
1229
chan->dma_config.src_addr = src;
drivers/dma/stm32/stm32-dma3.c
1230
chan->dma_config.dst_addr = dst;
drivers/dma/stm32/stm32-dma3.c
1238
struct stm32_dma3_chan *chan = to_stm32_dma3_chan(c);
drivers/dma/stm32/stm32-dma3.c
1242
bool prevent_refactor = !!FIELD_GET(STM32_DMA3_DT_NOPACK, chan->dt_config.tr_conf) ||
drivers/dma/stm32/stm32-dma3.c
1243
!!FIELD_GET(STM32_DMA3_DT_NOREFACT, chan->dt_config.tr_conf);
drivers/dma/stm32/stm32-dma3.c
1246
if (chan->semaphore_mode && !chan->semaphore_taken)
drivers/dma/stm32/stm32-dma3.c
1249
count = stm32_dma3_get_ll_count(chan, len, prevent_refactor);
drivers/dma/stm32/stm32-dma3.c
1251
swdesc = stm32_dma3_chan_desc_alloc(chan, count);
drivers/dma/stm32/stm32-dma3.c
1255
if (chan->config_set != STM32_DMA3_CFG_SET_BOTH)
drivers/dma/stm32/stm32-dma3.c
1256
stm32_dma3_init_chan_config_for_memcpy(chan, dst, src);
drivers/dma/stm32/stm32-dma3.c
1266
(next_size < STM32_DMA3_MAX_BLOCK_SIZE && next_size >= chan->max_burst))
drivers/dma/stm32/stm32-dma3.c
1267
next_size = chan->max_burst * (remaining / chan->max_burst);
drivers/dma/stm32/stm32-dma3.c
1269
ret = stm32_dma3_chan_prep_hw(chan, DMA_MEM_TO_MEM, &swdesc->ccr, &ctr1, &ctr2,
drivers/dma/stm32/stm32-dma3.c
1274
stm32_dma3_chan_prep_hwdesc(chan, swdesc, i, src + offset, dst + offset, next_size,
drivers/dma/stm32/stm32-dma3.c
1285
return vchan_tx_prep(&chan->vchan, &swdesc->vdesc, flags);
drivers/dma/stm32/stm32-dma3.c
1288
stm32_dma3_chan_desc_free(chan, swdesc);
drivers/dma/stm32/stm32-dma3.c
1299
struct stm32_dma3_chan *chan = to_stm32_dma3_chan(c);
drivers/dma/stm32/stm32-dma3.c
1305
bool prevent_refactor = !!FIELD_GET(STM32_DMA3_DT_NOPACK, chan->dt_config.tr_conf) ||
drivers/dma/stm32/stm32-dma3.c
1306
!!FIELD_GET(STM32_DMA3_DT_NOREFACT, chan->dt_config.tr_conf);
drivers/dma/stm32/stm32-dma3.c
1310
if (chan->semaphore_mode && !chan->semaphore_taken)
drivers/dma/stm32/stm32-dma3.c
1315
count += stm32_dma3_get_ll_count(chan, sg_dma_len(sg), prevent_refactor);
drivers/dma/stm32/stm32-dma3.c
1317
swdesc = stm32_dma3_chan_desc_alloc(chan, count);
drivers/dma/stm32/stm32-dma3.c
1325
dev_addr = (dir == DMA_MEM_TO_DEV) ? chan->dma_config.dst_addr :
drivers/dma/stm32/stm32-dma3.c
1326
chan->dma_config.src_addr;
drivers/dma/stm32/stm32-dma3.c
1333
(chunk < STM32_DMA3_MAX_BLOCK_SIZE && chunk >= chan->max_burst))
drivers/dma/stm32/stm32-dma3.c
1334
chunk = chan->max_burst * (len / chan->max_burst);
drivers/dma/stm32/stm32-dma3.c
1340
ret = stm32_dma3_chan_prep_hw(chan, dir, &swdesc->ccr, &ctr1, &ctr2,
drivers/dma/stm32/stm32-dma3.c
1349
ret = stm32_dma3_chan_prep_hw(chan, dir, &swdesc->ccr, &ctr1, &ctr2,
drivers/dma/stm32/stm32-dma3.c
1359
stm32_dma3_chan_prep_hwdesc(chan, swdesc, j, src, dst, chunk,
drivers/dma/stm32/stm32-dma3.c
1368
if (count != sg_len && chan->tcem != CTR2_TCEM_CHANNEL)
drivers/dma/stm32/stm32-dma3.c
1369
dev_warn(chan2dev(chan), "Linked-list refactored, %d items instead of %d\n",
drivers/dma/stm32/stm32-dma3.c
1379
return vchan_tx_prep(&chan->vchan, &swdesc->vdesc, flags);
drivers/dma/stm32/stm32-dma3.c
1382
stm32_dma3_chan_desc_free(chan, swdesc);
drivers/dma/stm32/stm32-dma3.c
1393
struct stm32_dma3_chan *chan = to_stm32_dma3_chan(c);
drivers/dma/stm32/stm32-dma3.c
1400
if (chan->semaphore_mode && !chan->semaphore_taken)
drivers/dma/stm32/stm32-dma3.c
1404
dev_err(chan2dev(chan), "Invalid buffer/period length\n");
drivers/dma/stm32/stm32-dma3.c
1409
dev_err(chan2dev(chan), "Buffer length not multiple of period length\n");
drivers/dma/stm32/stm32-dma3.c
1414
swdesc = stm32_dma3_chan_desc_alloc(chan, count);
drivers/dma/stm32/stm32-dma3.c
1420
dst = chan->dma_config.dst_addr;
drivers/dma/stm32/stm32-dma3.c
1422
ret = stm32_dma3_chan_prep_hw(chan, DMA_MEM_TO_DEV, &swdesc->ccr, &ctr1, &ctr2,
drivers/dma/stm32/stm32-dma3.c
1425
src = chan->dma_config.src_addr;
drivers/dma/stm32/stm32-dma3.c
1428
ret = stm32_dma3_chan_prep_hw(chan, DMA_DEV_TO_MEM, &swdesc->ccr, &ctr1, &ctr2,
drivers/dma/stm32/stm32-dma3.c
1431
dev_err(chan2dev(chan), "Invalid direction\n");
drivers/dma/stm32/stm32-dma3.c
1441
dst = chan->dma_config.dst_addr;
drivers/dma/stm32/stm32-dma3.c
1443
src = chan->dma_config.src_addr;
drivers/dma/stm32/stm32-dma3.c
1447
stm32_dma3_chan_prep_hwdesc(chan, swdesc, i, src, dst, period_len,
drivers/dma/stm32/stm32-dma3.c
1458
return vchan_tx_prep(&chan->vchan, &swdesc->vdesc, flags);
drivers/dma/stm32/stm32-dma3.c
1461
stm32_dma3_chan_desc_free(chan, swdesc);
drivers/dma/stm32/stm32-dma3.c
1468
struct stm32_dma3_chan *chan = to_stm32_dma3_chan(c);
drivers/dma/stm32/stm32-dma3.c
1470
if (!chan->fifo_size) {
drivers/dma/stm32/stm32-dma3.c
1476
caps->max_burst = chan->max_burst;
drivers/dma/stm32/stm32-dma3.c
1486
struct stm32_dma3_chan *chan = to_stm32_dma3_chan(c);
drivers/dma/stm32/stm32-dma3.c
1488
memcpy(&chan->dma_config, config, sizeof(*config));
drivers/dma/stm32/stm32-dma3.c
1489
chan->config_set |= STM32_DMA3_CFG_SET_DMA;
drivers/dma/stm32/stm32-dma3.c
1496
struct stm32_dma3_chan *chan = to_stm32_dma3_chan(c);
drivers/dma/stm32/stm32-dma3.c
1499
ret = stm32_dma3_chan_suspend(chan, true);
drivers/dma/stm32/stm32-dma3.c
1503
chan->dma_status = DMA_PAUSED;
drivers/dma/stm32/stm32-dma3.c
1505
dev_dbg(chan2dev(chan), "vchan %p: paused\n", &chan->vchan);
drivers/dma/stm32/stm32-dma3.c
1512
struct stm32_dma3_chan *chan = to_stm32_dma3_chan(c);
drivers/dma/stm32/stm32-dma3.c
1514
stm32_dma3_chan_suspend(chan, false);
drivers/dma/stm32/stm32-dma3.c
1516
chan->dma_status = DMA_IN_PROGRESS;
drivers/dma/stm32/stm32-dma3.c
1518
dev_dbg(chan2dev(chan), "vchan %p: resumed\n", &chan->vchan);
drivers/dma/stm32/stm32-dma3.c
1525
struct stm32_dma3_chan *chan = to_stm32_dma3_chan(c);
drivers/dma/stm32/stm32-dma3.c
1529
spin_lock_irqsave(&chan->vchan.lock, flags);
drivers/dma/stm32/stm32-dma3.c
1531
if (chan->swdesc) {
drivers/dma/stm32/stm32-dma3.c
1532
vchan_terminate_vdesc(&chan->swdesc->vdesc);
drivers/dma/stm32/stm32-dma3.c
1533
chan->swdesc = NULL;
drivers/dma/stm32/stm32-dma3.c
1536
stm32_dma3_chan_stop(chan);
drivers/dma/stm32/stm32-dma3.c
1538
vchan_get_all_descriptors(&chan->vchan, &head);
drivers/dma/stm32/stm32-dma3.c
1540
spin_unlock_irqrestore(&chan->vchan.lock, flags);
drivers/dma/stm32/stm32-dma3.c
1541
vchan_dma_desc_free_list(&chan->vchan, &head);
drivers/dma/stm32/stm32-dma3.c
1543
dev_dbg(chan2dev(chan), "vchan %p: terminated\n", &chan->vchan);
drivers/dma/stm32/stm32-dma3.c
1550
struct stm32_dma3_chan *chan = to_stm32_dma3_chan(c);
drivers/dma/stm32/stm32-dma3.c
1552
vchan_synchronize(&chan->vchan);
drivers/dma/stm32/stm32-dma3.c
1558
struct stm32_dma3_chan *chan = to_stm32_dma3_chan(c);
drivers/dma/stm32/stm32-dma3.c
1569
return chan->dma_status;
drivers/dma/stm32/stm32-dma3.c
1571
spin_lock_irqsave(&chan->vchan.lock, flags);
drivers/dma/stm32/stm32-dma3.c
1573
vd = vchan_find_desc(&chan->vchan, cookie);
drivers/dma/stm32/stm32-dma3.c
1576
else if (chan->swdesc && chan->swdesc->vdesc.tx.cookie == cookie)
drivers/dma/stm32/stm32-dma3.c
1577
swdesc = chan->swdesc;
drivers/dma/stm32/stm32-dma3.c
1581
stm32_dma3_chan_set_residue(chan, swdesc, txstate);
drivers/dma/stm32/stm32-dma3.c
1583
spin_unlock_irqrestore(&chan->vchan.lock, flags);
drivers/dma/stm32/stm32-dma3.c
1585
return chan->dma_status;
drivers/dma/stm32/stm32-dma3.c
1590
struct stm32_dma3_chan *chan = to_stm32_dma3_chan(c);
drivers/dma/stm32/stm32-dma3.c
1593
spin_lock_irqsave(&chan->vchan.lock, flags);
drivers/dma/stm32/stm32-dma3.c
1595
if (vchan_issue_pending(&chan->vchan) && !chan->swdesc) {
drivers/dma/stm32/stm32-dma3.c
1596
dev_dbg(chan2dev(chan), "vchan %p: issued\n", &chan->vchan);
drivers/dma/stm32/stm32-dma3.c
1597
stm32_dma3_chan_start(chan);
drivers/dma/stm32/stm32-dma3.c
1600
spin_unlock_irqrestore(&chan->vchan.lock, flags);
drivers/dma/stm32/stm32-dma3.c
1605
struct stm32_dma3_chan *chan = to_stm32_dma3_chan(c);
drivers/dma/stm32/stm32-dma3.c
1606
struct stm32_dma3_ddata *ddata = to_stm32_dma3_ddata(chan);
drivers/dma/stm32/stm32-dma3.c
1615
if (!(mask & BIT(chan->id)))
drivers/dma/stm32/stm32-dma3.c
1621
semcr = readl_relaxed(ddata->base + STM32_DMA3_CSEMCR(chan->id));
drivers/dma/stm32/stm32-dma3.c
1629
if (FIELD_GET(STM32_DMA3_DT_FIFO, conf->ch_conf) != chan->fifo_size)
drivers/dma/stm32/stm32-dma3.c
1640
struct stm32_dma3_chan *chan;
drivers/dma/stm32/stm32-dma3.c
1664
chan = to_stm32_dma3_chan(c);
drivers/dma/stm32/stm32-dma3.c
1665
chan->dt_config = conf;
drivers/dma/stm32/stm32-dma3.c
1666
chan->config_set |= STM32_DMA3_CFG_SET_DT;
drivers/dma/stm32/stm32-dma3.c
1735
struct stm32_dma3_chan *chan;
drivers/dma/stm32/stm32-dma3.c
1860
chan = &ddata->chans[i];
drivers/dma/stm32/stm32-dma3.c
1861
chan->id = i;
drivers/dma/stm32/stm32-dma3.c
1862
chan->fifo_size = get_chan_hwcfg(i, G_FIFO_SIZE(i), hwcfgr);
drivers/dma/stm32/stm32-dma3.c
1864
chan->max_burst = (chan->fifo_size) ? (1 << (chan->fifo_size + 1)) / 2 : 0;
drivers/dma/stm32/stm32-dma3.c
1877
chan = &ddata->chans[i];
drivers/dma/stm32/stm32-dma3.c
1878
snprintf(name, sizeof(name), "dma%dchan%d", ddata->dma_dev.dev_id, chan->id);
drivers/dma/stm32/stm32-dma3.c
1880
chan->vchan.desc_free = stm32_dma3_chan_vdesc_free;
drivers/dma/stm32/stm32-dma3.c
1881
vchan_init(&chan->vchan, dma_dev);
drivers/dma/stm32/stm32-dma3.c
1883
ret = dma_async_device_channel_register(&ddata->dma_dev, &chan->vchan.chan, name);
drivers/dma/stm32/stm32-dma3.c
1892
chan->irq = ret;
drivers/dma/stm32/stm32-dma3.c
1894
ret = devm_request_irq(&pdev->dev, chan->irq, stm32_dma3_chan_irq, 0,
drivers/dma/stm32/stm32-dma3.c
1895
dev_name(chan2dev(chan)), chan);
drivers/dma/stm32/stm32-dma3.c
1898
dev_name(chan2dev(chan)));
drivers/dma/stm32/stm32-dma3.c
1965
struct stm32_dma3_chan *chan = to_stm32_dma3_chan(c);
drivers/dma/stm32/stm32-dma3.c
1967
ccr = readl_relaxed(ddata->base + STM32_DMA3_CCR(chan->id));
drivers/dma/stm32/stm32-dma3.c
2003
struct stm32_dma3_chan *chan = to_stm32_dma3_chan(c);
drivers/dma/stm32/stm32-dma3.c
2005
if (chan->semaphore_mode && chan->semaphore_taken)
drivers/dma/stm32/stm32-dma3.c
2006
stm32_dma3_get_chan_sem(chan);
drivers/dma/stm32/stm32-dma3.c
316
static inline struct stm32_dma3_ddata *to_stm32_dma3_ddata(struct stm32_dma3_chan *chan)
drivers/dma/stm32/stm32-dma3.c
318
return container_of(chan->vchan.chan.device, struct stm32_dma3_ddata, dma_dev);
drivers/dma/stm32/stm32-dma3.c
323
return container_of(c, struct stm32_dma3_chan, vchan.chan);
drivers/dma/stm32/stm32-dma3.c
331
static struct device *chan2dev(struct stm32_dma3_chan *chan)
drivers/dma/stm32/stm32-dma3.c
333
return &chan->vchan.chan.dev->device;
drivers/dma/stm32/stm32-dma3.c
341
static void stm32_dma3_chan_dump_reg(struct stm32_dma3_chan *chan)
drivers/dma/stm32/stm32-dma3.c
343
struct stm32_dma3_ddata *ddata = to_stm32_dma3_ddata(chan);
drivers/dma/stm32/stm32-dma3.c
344
struct device *dev = chan2dev(chan);
drivers/dma/stm32/stm32-dma3.c
345
u32 id = chan->id, offset;
drivers/dma/stm32/stm32-dma3.c
375
static void stm32_dma3_chan_dump_hwdesc(struct stm32_dma3_chan *chan,
drivers/dma/stm32/stm32-dma3.c
384
dev_dbg(chan2dev(chan), "V\n");
drivers/dma/stm32/stm32-dma3.c
385
dev_dbg(chan2dev(chan), "[%d]@%pad\n", i, &swdesc->lli[i].hwdesc_addr);
drivers/dma/stm32/stm32-dma3.c
386
dev_dbg(chan2dev(chan), "| C%dTR1: %08x\n", chan->id, hwdesc->ctr1);
drivers/dma/stm32/stm32-dma3.c
387
dev_dbg(chan2dev(chan), "| C%dTR2: %08x\n", chan->id, hwdesc->ctr2);
drivers/dma/stm32/stm32-dma3.c
388
dev_dbg(chan2dev(chan), "| C%dBR1: %08x\n", chan->id, hwdesc->cbr1);
drivers/dma/stm32/stm32-dma3.c
389
dev_dbg(chan2dev(chan), "| C%dSAR: %08x\n", chan->id, hwdesc->csar);
drivers/dma/stm32/stm32-dma3.c
390
dev_dbg(chan2dev(chan), "| C%dDAR: %08x\n", chan->id, hwdesc->cdar);
drivers/dma/stm32/stm32-dma3.c
391
dev_dbg(chan2dev(chan), "| C%dLLR: %08x\n", chan->id, hwdesc->cllr);
drivers/dma/stm32/stm32-dma3.c
395
dev_dbg(chan2dev(chan), "|\n");
drivers/dma/stm32/stm32-dma3.c
396
dev_dbg(chan2dev(chan), "-->[0]@%pad\n", &swdesc->lli[0].hwdesc_addr);
drivers/dma/stm32/stm32-dma3.c
398
dev_dbg(chan2dev(chan), "X\n");
drivers/dma/stm32/stm32-dma3.c
402
static struct stm32_dma3_swdesc *stm32_dma3_chan_desc_alloc(struct stm32_dma3_chan *chan, u32 count)
drivers/dma/stm32/stm32-dma3.c
404
struct stm32_dma3_ddata *ddata = to_stm32_dma3_ddata(chan);
drivers/dma/stm32/stm32-dma3.c
414
dev_err(chan2dev(chan), "Transfer is too big (> %luB)\n", STM32_DMA3_MAX_SEG_SIZE);
drivers/dma/stm32/stm32-dma3.c
424
swdesc->lli[i].hwdesc = dma_pool_zalloc(chan->lli_pool, GFP_NOWAIT,
drivers/dma/stm32/stm32-dma3.c
433
ddata->base + STM32_DMA3_CLBAR(chan->id));
drivers/dma/stm32/stm32-dma3.c
441
dev_err(chan2dev(chan), "Failed to alloc descriptors\n");
drivers/dma/stm32/stm32-dma3.c
443
dma_pool_free(chan->lli_pool, swdesc->lli[i].hwdesc, swdesc->lli[i].hwdesc_addr);
drivers/dma/stm32/stm32-dma3.c
449
static void stm32_dma3_chan_desc_free(struct stm32_dma3_chan *chan,
drivers/dma/stm32/stm32-dma3.c
455
dma_pool_free(chan->lli_pool, swdesc->lli[i].hwdesc, swdesc->lli[i].hwdesc_addr);
drivers/dma/stm32/stm32-dma3.c
463
struct stm32_dma3_chan *chan = to_stm32_dma3_chan(vdesc->tx.chan);
drivers/dma/stm32/stm32-dma3.c
465
stm32_dma3_chan_desc_free(chan, swdesc);
drivers/dma/stm32/stm32-dma3.c
468
static void stm32_dma3_check_user_setting(struct stm32_dma3_chan *chan)
drivers/dma/stm32/stm32-dma3.c
470
struct stm32_dma3_ddata *ddata = to_stm32_dma3_ddata(chan);
drivers/dma/stm32/stm32-dma3.c
471
struct device *dev = chan2dev(chan);
drivers/dma/stm32/stm32-dma3.c
472
u32 ctr1 = readl_relaxed(ddata->base + STM32_DMA3_CTR1(chan->id));
drivers/dma/stm32/stm32-dma3.c
473
u32 cbr1 = readl_relaxed(ddata->base + STM32_DMA3_CBR1(chan->id));
drivers/dma/stm32/stm32-dma3.c
474
u32 csar = readl_relaxed(ddata->base + STM32_DMA3_CSAR(chan->id));
drivers/dma/stm32/stm32-dma3.c
475
u32 cdar = readl_relaxed(ddata->base + STM32_DMA3_CDAR(chan->id));
drivers/dma/stm32/stm32-dma3.c
476
u32 cllr = readl_relaxed(ddata->base + STM32_DMA3_CLLR(chan->id));
drivers/dma/stm32/stm32-dma3.c
499
static void stm32_dma3_chan_prep_hwdesc(struct stm32_dma3_chan *chan,
drivers/dma/stm32/stm32-dma3.c
568
static int stm32_dma3_chan_prep_hw(struct stm32_dma3_chan *chan, enum dma_transfer_direction dir,
drivers/dma/stm32/stm32-dma3.c
572
struct stm32_dma3_ddata *ddata = to_stm32_dma3_ddata(chan);
drivers/dma/stm32/stm32-dma3.c
577
u32 ch_conf = chan->dt_config.ch_conf;
drivers/dma/stm32/stm32-dma3.c
578
u32 tr_conf = chan->dt_config.tr_conf;
drivers/dma/stm32/stm32-dma3.c
582
dev_dbg(chan2dev(chan), "%s from %pad to %pad\n",
drivers/dma/stm32/stm32-dma3.c
585
sdw = chan->dma_config.src_addr_width ? : get_chan_max_dw(sap, chan->max_burst);
drivers/dma/stm32/stm32-dma3.c
586
ddw = chan->dma_config.dst_addr_width ? : get_chan_max_dw(dap, chan->max_burst);
drivers/dma/stm32/stm32-dma3.c
587
sbl_max = chan->dma_config.src_maxburst ? : 1;
drivers/dma/stm32/stm32-dma3.c
588
dbl_max = chan->dma_config.dst_maxburst ? : 1;
drivers/dma/stm32/stm32-dma3.c
592
dev_err(chan2dev(chan), "Bus width (src=%u, dst=%u) not supported\n", sdw, ddw);
drivers/dma/stm32/stm32-dma3.c
597
dev_err(chan2dev(chan), "Only one master port, port 1 is not supported\n");
drivers/dma/stm32/stm32-dma3.c
605
dev_err(chan2dev(chan),
drivers/dma/stm32/stm32-dma3.c
624
_ctr2 |= FIELD_PREP(CTR2_REQSEL, chan->dt_config.req_line) & ~CTR2_SWREQ;
drivers/dma/stm32/stm32-dma3.c
633
chan->tcem = tcem;
drivers/dma/stm32/stm32-dma3.c
635
chan->dma_config.direction = dir;
drivers/dma/stm32/stm32-dma3.c
640
ddw = min_t(u32, ddw, stm32_dma3_get_max_dw(chan->max_burst, dap_max_dw,
drivers/dma/stm32/stm32-dma3.c
642
dbl_max = min_t(u32, dbl_max, stm32_dma3_get_max_burst(len, ddw, chan->max_burst,
drivers/dma/stm32/stm32-dma3.c
646
sdw = stm32_dma3_get_max_dw(chan->max_burst, sap_max_dw, len, src_addr);
drivers/dma/stm32/stm32-dma3.c
647
sbl_max = stm32_dma3_get_max_burst(len, sdw, chan->max_burst, src_max_burst);
drivers/dma/stm32/stm32-dma3.c
662
dev_err(chan2dev(chan),
drivers/dma/stm32/stm32-dma3.c
675
sdw = min_t(u32, sdw, stm32_dma3_get_max_dw(chan->max_burst, sap_max_dw,
drivers/dma/stm32/stm32-dma3.c
677
sbl_max = min_t(u32, sbl_max, stm32_dma3_get_max_burst(len, sdw, chan->max_burst,
drivers/dma/stm32/stm32-dma3.c
681
ddw = stm32_dma3_get_max_dw(chan->max_burst, dap_max_dw, len, dst_addr);
drivers/dma/stm32/stm32-dma3.c
682
dbl_max = stm32_dma3_get_max_burst(len, ddw, chan->max_burst, dst_max_burst);
drivers/dma/stm32/stm32-dma3.c
698
dev_err(chan2dev(chan),
drivers/dma/stm32/stm32-dma3.c
713
sdw = stm32_dma3_get_max_dw(chan->max_burst, sap_max_dw, len, src_addr);
drivers/dma/stm32/stm32-dma3.c
714
sbl_max = stm32_dma3_get_max_burst(len, sdw, chan->max_burst, src_max_burst);
drivers/dma/stm32/stm32-dma3.c
715
if (chan->config_set & STM32_DMA3_CFG_SET_DMA) {
drivers/dma/stm32/stm32-dma3.c
718
chan->max_burst,
drivers/dma/stm32/stm32-dma3.c
725
ddw = stm32_dma3_get_max_dw(chan->max_burst, dap_max_dw, len, dst_addr);
drivers/dma/stm32/stm32-dma3.c
726
dbl_max = stm32_dma3_get_max_burst(len, ddw, chan->max_burst, dst_max_burst);
drivers/dma/stm32/stm32-dma3.c
727
if (chan->config_set & STM32_DMA3_CFG_SET_DMA) {
drivers/dma/stm32/stm32-dma3.c
730
chan->max_burst,
drivers/dma/stm32/stm32-dma3.c
743
dev_err(chan2dev(chan),
drivers/dma/stm32/stm32-dma3.c
755
dev_err(chan2dev(chan), "Direction %s not supported\n",
drivers/dma/stm32/stm32-dma3.c
764
dev_dbg(chan2dev(chan), "%s: sdw=%u bytes sbl=%u beats ddw=%u bytes dbl=%u beats\n",
drivers/dma/stm32/stm32-dma3.c
770
static void stm32_dma3_chan_start(struct stm32_dma3_chan *chan)
drivers/dma/stm32/stm32-dma3.c
772
struct stm32_dma3_ddata *ddata = to_stm32_dma3_ddata(chan);
drivers/dma/stm32/stm32-dma3.c
775
u32 id = chan->id;
drivers/dma/stm32/stm32-dma3.c
778
vdesc = vchan_next_desc(&chan->vchan);
drivers/dma/stm32/stm32-dma3.c
780
chan->swdesc = NULL;
drivers/dma/stm32/stm32-dma3.c
785
chan->swdesc = to_stm32_dma3_swdesc(vdesc);
drivers/dma/stm32/stm32-dma3.c
786
hwdesc = chan->swdesc->lli[0].hwdesc;
drivers/dma/stm32/stm32-dma3.c
788
stm32_dma3_chan_dump_hwdesc(chan, chan->swdesc);
drivers/dma/stm32/stm32-dma3.c
790
writel_relaxed(chan->swdesc->ccr, ddata->base + STM32_DMA3_CCR(id));
drivers/dma/stm32/stm32-dma3.c
803
stm32_dma3_chan_dump_reg(chan);
drivers/dma/stm32/stm32-dma3.c
808
chan->dma_status = DMA_IN_PROGRESS;
drivers/dma/stm32/stm32-dma3.c
810
dev_dbg(chan2dev(chan), "vchan %p: started\n", &chan->vchan);
drivers/dma/stm32/stm32-dma3.c
813
static int stm32_dma3_chan_suspend(struct stm32_dma3_chan *chan, bool susp)
drivers/dma/stm32/stm32-dma3.c
815
struct stm32_dma3_ddata *ddata = to_stm32_dma3_ddata(chan);
drivers/dma/stm32/stm32-dma3.c
816
u32 csr, ccr = readl_relaxed(ddata->base + STM32_DMA3_CCR(chan->id)) & ~CCR_EN;
drivers/dma/stm32/stm32-dma3.c
824
writel_relaxed(ccr, ddata->base + STM32_DMA3_CCR(chan->id));
drivers/dma/stm32/stm32-dma3.c
827
ret = readl_relaxed_poll_timeout_atomic(ddata->base + STM32_DMA3_CSR(chan->id), csr,
drivers/dma/stm32/stm32-dma3.c
830
writel_relaxed(CFCR_SUSPF, ddata->base + STM32_DMA3_CFCR(chan->id));
drivers/dma/stm32/stm32-dma3.c
832
stm32_dma3_chan_dump_reg(chan);
drivers/dma/stm32/stm32-dma3.c
838
static void stm32_dma3_chan_reset(struct stm32_dma3_chan *chan)
drivers/dma/stm32/stm32-dma3.c
840
struct stm32_dma3_ddata *ddata = to_stm32_dma3_ddata(chan);
drivers/dma/stm32/stm32-dma3.c
841
u32 ccr = readl_relaxed(ddata->base + STM32_DMA3_CCR(chan->id)) & ~CCR_EN;
drivers/dma/stm32/stm32-dma3.c
843
writel_relaxed(ccr |= CCR_RESET, ddata->base + STM32_DMA3_CCR(chan->id));
drivers/dma/stm32/stm32-dma3.c
869
static void stm32_dma3_chan_set_residue(struct stm32_dma3_chan *chan,
drivers/dma/stm32/stm32-dma3.c
873
struct stm32_dma3_ddata *ddata = to_stm32_dma3_ddata(chan);
drivers/dma/stm32/stm32-dma3.c
874
struct device *dev = chan2dev(chan);
drivers/dma/stm32/stm32-dma3.c
880
csr = readl_relaxed(ddata->base + STM32_DMA3_CSR(chan->id));
drivers/dma/stm32/stm32-dma3.c
881
if (!(csr & CSR_IDLEF) && chan->dma_status != DMA_PAUSED) {
drivers/dma/stm32/stm32-dma3.c
883
writel_relaxed(swdesc->ccr | CCR_SUSP, ddata->base + STM32_DMA3_CCR(chan->id));
drivers/dma/stm32/stm32-dma3.c
884
ret = readl_relaxed_poll_timeout_atomic(ddata->base + STM32_DMA3_CSR(chan->id), csr,
drivers/dma/stm32/stm32-dma3.c
888
writel_relaxed(CFCR_SUSPF, ddata->base + STM32_DMA3_CFCR(chan->id));
drivers/dma/stm32/stm32-dma3.c
889
writel_relaxed(swdesc->ccr, ddata->base + STM32_DMA3_CCR(chan->id));
drivers/dma/stm32/stm32-dma3.c
907
cllr = readl_relaxed(ddata->base + STM32_DMA3_CLLR(chan->id));
drivers/dma/stm32/stm32-dma3.c
908
cbr1 = readl_relaxed(ddata->base + STM32_DMA3_CBR1(chan->id));
drivers/dma/stm32/stm32-dma3.c
909
cdar = readl_relaxed(ddata->base + STM32_DMA3_CDAR(chan->id));
drivers/dma/stm32/stm32-dma3.c
913
writel_relaxed(CFCR_SUSPF, ddata->base + STM32_DMA3_CFCR(chan->id));
drivers/dma/stm32/stm32-dma3.c
914
writel_relaxed(swdesc->ccr, ddata->base + STM32_DMA3_CCR(chan->id));
drivers/dma/stm32/stm32-dma3.c
924
dev_err(chan2dev(chan), "Can't get residue: current hwdesc not found\n");
drivers/dma/stm32/stm32-dma3.c
933
if (fifol == (1 << (chan->fifo_size + 1)))
drivers/dma/stm32/stm32-dma3.c
960
dev_dbg(chan2dev(chan), "%u byte(s) in the FIFO\n", fifol);
drivers/dma/stm32/stm32-dma3.c
968
if (chan->dma_config.direction == DMA_DEV_TO_MEM)
drivers/dma/stm32/stm32-dma3.c
974
static int stm32_dma3_chan_stop(struct stm32_dma3_chan *chan)
drivers/dma/stm32/stm32-dma3.c
976
struct stm32_dma3_ddata *ddata = to_stm32_dma3_ddata(chan);
drivers/dma/stm32/stm32-dma3.c
980
chan->dma_status = DMA_COMPLETE;
drivers/dma/stm32/stm32-dma3.c
983
ccr = readl_relaxed(ddata->base + STM32_DMA3_CCR(chan->id));
drivers/dma/stm32/stm32-dma3.c
984
writel_relaxed(ccr & ~(CCR_ALLIE | CCR_EN), ddata->base + STM32_DMA3_CCR(chan->id));
drivers/dma/stm32/stm32-dma3.c
988
ret = stm32_dma3_chan_suspend(chan, true);
drivers/dma/stm32/stm32-dma3.c
990
dev_warn(chan2dev(chan), "%s: timeout, data might be lost\n", __func__);
drivers/dma/stm32/stm32-dma3.c
997
stm32_dma3_chan_reset(chan);
drivers/dma/stm32/stm32-mdma.c
1017
src_bus_width = stm32_mdma_get_width(chan, max_width);
drivers/dma/stm32/stm32-mdma.c
1030
dst_bus_width = stm32_mdma_get_width(chan, max_width);
drivers/dma/stm32/stm32-mdma.c
1056
stm32_mdma_dump_hwdesc(chan, &desc->node[0]);
drivers/dma/stm32/stm32-mdma.c
1071
src_bus_width = stm32_mdma_get_width(chan, max_width);
drivers/dma/stm32/stm32-mdma.c
1085
dst_bus_width = stm32_mdma_get_width(chan, max_width);
drivers/dma/stm32/stm32-mdma.c
1101
stm32_mdma_setup_hwdesc(chan, desc, DMA_MEM_TO_MEM, i,
drivers/dma/stm32/stm32-mdma.c
1112
return vchan_tx_prep(&chan->vchan, &desc->vdesc, flags);
drivers/dma/stm32/stm32-mdma.c
1115
static void stm32_mdma_dump_reg(struct stm32_mdma_chan *chan)
drivers/dma/stm32/stm32-mdma.c
1117
struct stm32_mdma_device *dmadev = stm32_mdma_get_dev(chan);
drivers/dma/stm32/stm32-mdma.c
1119
dev_dbg(chan2dev(chan), "CCR: 0x%08x\n",
drivers/dma/stm32/stm32-mdma.c
1120
stm32_mdma_read(dmadev, STM32_MDMA_CCR(chan->id)));
drivers/dma/stm32/stm32-mdma.c
1121
dev_dbg(chan2dev(chan), "CTCR: 0x%08x\n",
drivers/dma/stm32/stm32-mdma.c
1122
stm32_mdma_read(dmadev, STM32_MDMA_CTCR(chan->id)));
drivers/dma/stm32/stm32-mdma.c
1123
dev_dbg(chan2dev(chan), "CBNDTR: 0x%08x\n",
drivers/dma/stm32/stm32-mdma.c
1124
stm32_mdma_read(dmadev, STM32_MDMA_CBNDTR(chan->id)));
drivers/dma/stm32/stm32-mdma.c
1125
dev_dbg(chan2dev(chan), "CSAR: 0x%08x\n",
drivers/dma/stm32/stm32-mdma.c
1126
stm32_mdma_read(dmadev, STM32_MDMA_CSAR(chan->id)));
drivers/dma/stm32/stm32-mdma.c
1127
dev_dbg(chan2dev(chan), "CDAR: 0x%08x\n",
drivers/dma/stm32/stm32-mdma.c
1128
stm32_mdma_read(dmadev, STM32_MDMA_CDAR(chan->id)));
drivers/dma/stm32/stm32-mdma.c
1129
dev_dbg(chan2dev(chan), "CBRUR: 0x%08x\n",
drivers/dma/stm32/stm32-mdma.c
1130
stm32_mdma_read(dmadev, STM32_MDMA_CBRUR(chan->id)));
drivers/dma/stm32/stm32-mdma.c
1131
dev_dbg(chan2dev(chan), "CLAR: 0x%08x\n",
drivers/dma/stm32/stm32-mdma.c
1132
stm32_mdma_read(dmadev, STM32_MDMA_CLAR(chan->id)));
drivers/dma/stm32/stm32-mdma.c
1133
dev_dbg(chan2dev(chan), "CTBR: 0x%08x\n",
drivers/dma/stm32/stm32-mdma.c
1134
stm32_mdma_read(dmadev, STM32_MDMA_CTBR(chan->id)));
drivers/dma/stm32/stm32-mdma.c
1135
dev_dbg(chan2dev(chan), "CMAR: 0x%08x\n",
drivers/dma/stm32/stm32-mdma.c
1136
stm32_mdma_read(dmadev, STM32_MDMA_CMAR(chan->id)));
drivers/dma/stm32/stm32-mdma.c
1137
dev_dbg(chan2dev(chan), "CMDR: 0x%08x\n",
drivers/dma/stm32/stm32-mdma.c
1138
stm32_mdma_read(dmadev, STM32_MDMA_CMDR(chan->id)));
drivers/dma/stm32/stm32-mdma.c
1141
static void stm32_mdma_start_transfer(struct stm32_mdma_chan *chan)
drivers/dma/stm32/stm32-mdma.c
1143
struct stm32_mdma_device *dmadev = stm32_mdma_get_dev(chan);
drivers/dma/stm32/stm32-mdma.c
1146
u32 id = chan->id;
drivers/dma/stm32/stm32-mdma.c
1149
vdesc = vchan_next_desc(&chan->vchan);
drivers/dma/stm32/stm32-mdma.c
1151
chan->desc = NULL;
drivers/dma/stm32/stm32-mdma.c
1157
chan->desc = to_stm32_mdma_desc(vdesc);
drivers/dma/stm32/stm32-mdma.c
1158
hwdesc = chan->desc->node[0].hwdesc;
drivers/dma/stm32/stm32-mdma.c
1159
chan->curr_hwdesc = 0;
drivers/dma/stm32/stm32-mdma.c
1161
stm32_mdma_write(dmadev, STM32_MDMA_CCR(id), chan->desc->ccr);
drivers/dma/stm32/stm32-mdma.c
1177
stm32_mdma_dump_reg(chan);
drivers/dma/stm32/stm32-mdma.c
1188
chan->busy = true;
drivers/dma/stm32/stm32-mdma.c
1190
dev_dbg(chan2dev(chan), "vchan %p: started\n", &chan->vchan);
drivers/dma/stm32/stm32-mdma.c
1195
struct stm32_mdma_chan *chan = to_stm32_mdma_chan(c);
drivers/dma/stm32/stm32-mdma.c
1198
spin_lock_irqsave(&chan->vchan.lock, flags);
drivers/dma/stm32/stm32-mdma.c
1200
if (!vchan_issue_pending(&chan->vchan))
drivers/dma/stm32/stm32-mdma.c
1203
dev_dbg(chan2dev(chan), "vchan %p: issued\n", &chan->vchan);
drivers/dma/stm32/stm32-mdma.c
1205
if (!chan->desc && !chan->busy)
drivers/dma/stm32/stm32-mdma.c
1206
stm32_mdma_start_transfer(chan);
drivers/dma/stm32/stm32-mdma.c
1209
spin_unlock_irqrestore(&chan->vchan.lock, flags);
drivers/dma/stm32/stm32-mdma.c
1214
struct stm32_mdma_chan *chan = to_stm32_mdma_chan(c);
drivers/dma/stm32/stm32-mdma.c
1218
spin_lock_irqsave(&chan->vchan.lock, flags);
drivers/dma/stm32/stm32-mdma.c
1219
ret = stm32_mdma_disable_chan(chan);
drivers/dma/stm32/stm32-mdma.c
1220
spin_unlock_irqrestore(&chan->vchan.lock, flags);
drivers/dma/stm32/stm32-mdma.c
1223
dev_dbg(chan2dev(chan), "vchan %p: pause\n", &chan->vchan);
drivers/dma/stm32/stm32-mdma.c
1230
struct stm32_mdma_chan *chan = to_stm32_mdma_chan(c);
drivers/dma/stm32/stm32-mdma.c
1231
struct stm32_mdma_device *dmadev = stm32_mdma_get_dev(chan);
drivers/dma/stm32/stm32-mdma.c
1237
if (!chan->desc || (stm32_mdma_read(dmadev, STM32_MDMA_CCR(chan->id)) & STM32_MDMA_CCR_EN))
drivers/dma/stm32/stm32-mdma.c
1240
hwdesc = chan->desc->node[chan->curr_hwdesc].hwdesc;
drivers/dma/stm32/stm32-mdma.c
1242
spin_lock_irqsave(&chan->vchan.lock, flags);
drivers/dma/stm32/stm32-mdma.c
1245
stm32_mdma_write(dmadev, STM32_MDMA_CCR(chan->id), chan->desc->ccr);
drivers/dma/stm32/stm32-mdma.c
1248
status = stm32_mdma_read(dmadev, STM32_MDMA_CISR(chan->id));
drivers/dma/stm32/stm32-mdma.c
1250
stm32_mdma_set_bits(dmadev, STM32_MDMA_CIFCR(chan->id), status);
drivers/dma/stm32/stm32-mdma.c
1252
stm32_mdma_dump_reg(chan);
drivers/dma/stm32/stm32-mdma.c
1255
reg = STM32_MDMA_CCR(chan->id);
drivers/dma/stm32/stm32-mdma.c
1262
spin_unlock_irqrestore(&chan->vchan.lock, flags);
drivers/dma/stm32/stm32-mdma.c
1264
dev_dbg(chan2dev(chan), "vchan %p: resume\n", &chan->vchan);
drivers/dma/stm32/stm32-mdma.c
1271
struct stm32_mdma_chan *chan = to_stm32_mdma_chan(c);
drivers/dma/stm32/stm32-mdma.c
1275
spin_lock_irqsave(&chan->vchan.lock, flags);
drivers/dma/stm32/stm32-mdma.c
1276
if (chan->desc) {
drivers/dma/stm32/stm32-mdma.c
1277
vchan_terminate_vdesc(&chan->desc->vdesc);
drivers/dma/stm32/stm32-mdma.c
1278
if (chan->busy)
drivers/dma/stm32/stm32-mdma.c
1279
stm32_mdma_stop(chan);
drivers/dma/stm32/stm32-mdma.c
1280
chan->desc = NULL;
drivers/dma/stm32/stm32-mdma.c
1282
vchan_get_all_descriptors(&chan->vchan, &head);
drivers/dma/stm32/stm32-mdma.c
1283
spin_unlock_irqrestore(&chan->vchan.lock, flags);
drivers/dma/stm32/stm32-mdma.c
1285
vchan_dma_desc_free_list(&chan->vchan, &head);
drivers/dma/stm32/stm32-mdma.c
1292
struct stm32_mdma_chan *chan = to_stm32_mdma_chan(c);
drivers/dma/stm32/stm32-mdma.c
1294
vchan_synchronize(&chan->vchan);
drivers/dma/stm32/stm32-mdma.c
1300
struct stm32_mdma_chan *chan = to_stm32_mdma_chan(c);
drivers/dma/stm32/stm32-mdma.c
1302
memcpy(&chan->dma_config, config, sizeof(*config));
drivers/dma/stm32/stm32-mdma.c
1308
mdma_config = (struct stm32_mdma_dma_config *)chan->dma_config.peripheral_config;
drivers/dma/stm32/stm32-mdma.c
1309
chan->chan_config.request = mdma_config->request;
drivers/dma/stm32/stm32-mdma.c
1310
chan->chan_config.mask_addr = mdma_config->cmar;
drivers/dma/stm32/stm32-mdma.c
1311
chan->chan_config.mask_data = mdma_config->cmdr;
drivers/dma/stm32/stm32-mdma.c
1312
chan->chan_config.m2m_hw = true;
drivers/dma/stm32/stm32-mdma.c
1318
static size_t stm32_mdma_desc_residue(struct stm32_mdma_chan *chan,
drivers/dma/stm32/stm32-mdma.c
1323
struct stm32_mdma_device *dmadev = stm32_mdma_get_dev(chan);
drivers/dma/stm32/stm32-mdma.c
1328
cisr = stm32_mdma_read(dmadev, STM32_MDMA_CISR(chan->id));
drivers/dma/stm32/stm32-mdma.c
1332
clar = stm32_mdma_read(dmadev, STM32_MDMA_CLAR(chan->id));
drivers/dma/stm32/stm32-mdma.c
1342
cbndtr = stm32_mdma_read(dmadev, STM32_MDMA_CBNDTR(chan->id));
drivers/dma/stm32/stm32-mdma.c
1346
if (chan->chan_config.m2m_hw && (cisr & STM32_MDMA_CISR_CRQA))
drivers/dma/stm32/stm32-mdma.c
1349
if (!chan->mem_burst)
drivers/dma/stm32/stm32-mdma.c
1352
burst_size = chan->mem_burst * chan->mem_width;
drivers/dma/stm32/stm32-mdma.c
1364
struct stm32_mdma_chan *chan = to_stm32_mdma_chan(c);
drivers/dma/stm32/stm32-mdma.c
1374
spin_lock_irqsave(&chan->vchan.lock, flags);
drivers/dma/stm32/stm32-mdma.c
1376
vdesc = vchan_find_desc(&chan->vchan, cookie);
drivers/dma/stm32/stm32-mdma.c
1377
if (chan->desc && cookie == chan->desc->vdesc.tx.cookie)
drivers/dma/stm32/stm32-mdma.c
1378
residue = stm32_mdma_desc_residue(chan, chan->desc, chan->curr_hwdesc, state);
drivers/dma/stm32/stm32-mdma.c
1380
residue = stm32_mdma_desc_residue(chan, to_stm32_mdma_desc(vdesc), 0, state);
drivers/dma/stm32/stm32-mdma.c
1384
spin_unlock_irqrestore(&chan->vchan.lock, flags);
drivers/dma/stm32/stm32-mdma.c
1389
static void stm32_mdma_xfer_end(struct stm32_mdma_chan *chan)
drivers/dma/stm32/stm32-mdma.c
1391
vchan_cookie_complete(&chan->desc->vdesc);
drivers/dma/stm32/stm32-mdma.c
1392
chan->desc = NULL;
drivers/dma/stm32/stm32-mdma.c
1393
chan->busy = false;
drivers/dma/stm32/stm32-mdma.c
1396
stm32_mdma_start_transfer(chan);
drivers/dma/stm32/stm32-mdma.c
1402
struct stm32_mdma_chan *chan;
drivers/dma/stm32/stm32-mdma.c
1412
chan = &dmadev->chan[id];
drivers/dma/stm32/stm32-mdma.c
1415
spin_lock(&chan->vchan.lock);
drivers/dma/stm32/stm32-mdma.c
1423
spin_unlock(&chan->vchan.lock);
drivers/dma/stm32/stm32-mdma.c
1424
if (chan->busy)
drivers/dma/stm32/stm32-mdma.c
1425
dev_warn(chan2dev(chan),
drivers/dma/stm32/stm32-mdma.c
1428
dev_dbg(chan2dev(chan),
drivers/dma/stm32/stm32-mdma.c
1436
dev_err(chan2dev(chan), "Transfer Err: stat=0x%08x\n",
drivers/dma/stm32/stm32-mdma.c
1445
stm32_mdma_xfer_end(chan);
drivers/dma/stm32/stm32-mdma.c
1456
chan->curr_hwdesc++;
drivers/dma/stm32/stm32-mdma.c
1457
if (chan->desc && chan->desc->cyclic) {
drivers/dma/stm32/stm32-mdma.c
1458
if (chan->curr_hwdesc == chan->desc->count)
drivers/dma/stm32/stm32-mdma.c
1459
chan->curr_hwdesc = 0;
drivers/dma/stm32/stm32-mdma.c
1460
vchan_cyclic_callback(&chan->desc->vdesc);
drivers/dma/stm32/stm32-mdma.c
1471
dev_err(chan2dev(chan), "DMA error: status=0x%08x\n", status);
drivers/dma/stm32/stm32-mdma.c
1473
dev_err(chan2dev(chan), "chan disabled by HW\n");
drivers/dma/stm32/stm32-mdma.c
1476
spin_unlock(&chan->vchan.lock);
drivers/dma/stm32/stm32-mdma.c
1483
struct stm32_mdma_chan *chan = to_stm32_mdma_chan(c);
drivers/dma/stm32/stm32-mdma.c
1484
struct stm32_mdma_device *dmadev = stm32_mdma_get_dev(chan);
drivers/dma/stm32/stm32-mdma.c
1487
chan->desc_pool = dmam_pool_create(dev_name(&c->dev->device),
drivers/dma/stm32/stm32-mdma.c
1492
if (!chan->desc_pool) {
drivers/dma/stm32/stm32-mdma.c
1493
dev_err(chan2dev(chan), "failed to allocate descriptor pool\n");
drivers/dma/stm32/stm32-mdma.c
1501
ret = stm32_mdma_disable_chan(chan);
drivers/dma/stm32/stm32-mdma.c
1510
struct stm32_mdma_chan *chan = to_stm32_mdma_chan(c);
drivers/dma/stm32/stm32-mdma.c
1511
struct stm32_mdma_device *dmadev = stm32_mdma_get_dev(chan);
drivers/dma/stm32/stm32-mdma.c
1514
dev_dbg(chan2dev(chan), "Freeing channel %d\n", chan->id);
drivers/dma/stm32/stm32-mdma.c
1516
if (chan->busy) {
drivers/dma/stm32/stm32-mdma.c
1517
spin_lock_irqsave(&chan->vchan.lock, flags);
drivers/dma/stm32/stm32-mdma.c
1518
stm32_mdma_stop(chan);
drivers/dma/stm32/stm32-mdma.c
1519
chan->desc = NULL;
drivers/dma/stm32/stm32-mdma.c
1520
spin_unlock_irqrestore(&chan->vchan.lock, flags);
drivers/dma/stm32/stm32-mdma.c
1525
dmam_pool_destroy(chan->desc_pool);
drivers/dma/stm32/stm32-mdma.c
1526
chan->desc_pool = NULL;
drivers/dma/stm32/stm32-mdma.c
1531
struct stm32_mdma_chan *chan = to_stm32_mdma_chan(c);
drivers/dma/stm32/stm32-mdma.c
1532
struct stm32_mdma_device *dmadev = stm32_mdma_get_dev(chan);
drivers/dma/stm32/stm32-mdma.c
1535
if (dmadev->chan_reserved & BIT(chan->id))
drivers/dma/stm32/stm32-mdma.c
1546
struct stm32_mdma_chan *chan;
drivers/dma/stm32/stm32-mdma.c
1578
chan = to_stm32_mdma_chan(c);
drivers/dma/stm32/stm32-mdma.c
1579
chan->chan_config = config;
drivers/dma/stm32/stm32-mdma.c
1592
struct stm32_mdma_chan *chan;
drivers/dma/stm32/stm32-mdma.c
1698
chan = &dmadev->chan[i];
drivers/dma/stm32/stm32-mdma.c
1699
chan->id = i;
drivers/dma/stm32/stm32-mdma.c
1704
chan->vchan.desc_free = stm32_mdma_desc_free;
drivers/dma/stm32/stm32-mdma.c
1705
vchan_init(&chan->vchan, dd);
drivers/dma/stm32/stm32-mdma.c
258
struct stm32_mdma_chan chan[STM32_MDMA_MAX_CHANNELS];
drivers/dma/stm32/stm32-mdma.c
263
struct stm32_mdma_chan *chan)
drivers/dma/stm32/stm32-mdma.c
265
return container_of(chan->vchan.chan.device, struct stm32_mdma_device,
drivers/dma/stm32/stm32-mdma.c
271
return container_of(c, struct stm32_mdma_chan, vchan.chan);
drivers/dma/stm32/stm32-mdma.c
279
static struct device *chan2dev(struct stm32_mdma_chan *chan)
drivers/dma/stm32/stm32-mdma.c
281
return &chan->vchan.chan.dev->device;
drivers/dma/stm32/stm32-mdma.c
316
struct stm32_mdma_chan *chan, u32 count)
drivers/dma/stm32/stm32-mdma.c
328
dma_pool_alloc(chan->desc_pool, GFP_NOWAIT,
drivers/dma/stm32/stm32-mdma.c
337
dev_err(chan2dev(chan), "Failed to allocate descriptor\n");
drivers/dma/stm32/stm32-mdma.c
339
dma_pool_free(chan->desc_pool, desc->node[i].hwdesc,
drivers/dma/stm32/stm32-mdma.c
348
struct stm32_mdma_chan *chan = to_stm32_mdma_chan(vdesc->tx.chan);
drivers/dma/stm32/stm32-mdma.c
352
dma_pool_free(chan->desc_pool, desc->node[i].hwdesc,
drivers/dma/stm32/stm32-mdma.c
357
static int stm32_mdma_get_width(struct stm32_mdma_chan *chan,
drivers/dma/stm32/stm32-mdma.c
367
dev_err(chan2dev(chan), "Dma bus width %i not supported\n",
drivers/dma/stm32/stm32-mdma.c
404
static int stm32_mdma_disable_chan(struct stm32_mdma_chan *chan)
drivers/dma/stm32/stm32-mdma.c
406
struct stm32_mdma_device *dmadev = stm32_mdma_get_dev(chan);
drivers/dma/stm32/stm32-mdma.c
410
id = chan->id;
drivers/dma/stm32/stm32-mdma.c
425
dev_err(chan2dev(chan), "%s: timeout!\n", __func__);
drivers/dma/stm32/stm32-mdma.c
433
static void stm32_mdma_stop(struct stm32_mdma_chan *chan)
drivers/dma/stm32/stm32-mdma.c
435
struct stm32_mdma_device *dmadev = stm32_mdma_get_dev(chan);
drivers/dma/stm32/stm32-mdma.c
440
ret = stm32_mdma_disable_chan(chan);
drivers/dma/stm32/stm32-mdma.c
445
status = stm32_mdma_read(dmadev, STM32_MDMA_CISR(chan->id));
drivers/dma/stm32/stm32-mdma.c
447
dev_dbg(chan2dev(chan), "%s(): clearing interrupt: 0x%08x\n",
drivers/dma/stm32/stm32-mdma.c
449
stm32_mdma_set_bits(dmadev, STM32_MDMA_CIFCR(chan->id), status);
drivers/dma/stm32/stm32-mdma.c
452
chan->busy = false;
drivers/dma/stm32/stm32-mdma.c
472
static int stm32_mdma_set_xfer_param(struct stm32_mdma_chan *chan,
drivers/dma/stm32/stm32-mdma.c
478
struct stm32_mdma_device *dmadev = stm32_mdma_get_dev(chan);
drivers/dma/stm32/stm32-mdma.c
479
struct stm32_mdma_chan_config *chan_config = &chan->chan_config;
drivers/dma/stm32/stm32-mdma.c
486
src_addr_width = chan->dma_config.src_addr_width;
drivers/dma/stm32/stm32-mdma.c
487
dst_addr_width = chan->dma_config.dst_addr_width;
drivers/dma/stm32/stm32-mdma.c
488
src_maxburst = chan->dma_config.src_maxburst;
drivers/dma/stm32/stm32-mdma.c
489
dst_maxburst = chan->dma_config.dst_maxburst;
drivers/dma/stm32/stm32-mdma.c
491
ccr = stm32_mdma_read(dmadev, STM32_MDMA_CCR(chan->id)) & ~STM32_MDMA_CCR_EN;
drivers/dma/stm32/stm32-mdma.c
492
ctcr = stm32_mdma_read(dmadev, STM32_MDMA_CTCR(chan->id));
drivers/dma/stm32/stm32-mdma.c
493
ctbr = stm32_mdma_read(dmadev, STM32_MDMA_CTBR(chan->id));
drivers/dma/stm32/stm32-mdma.c
516
dev_err(chan2dev(chan),
drivers/dma/stm32/stm32-mdma.c
524
dev_err(chan2dev(chan), "burst size must be a power of 2\n");
drivers/dma/stm32/stm32-mdma.c
544
dst_addr = chan->dma_config.dst_addr;
drivers/dma/stm32/stm32-mdma.c
550
dst_bus_width = stm32_mdma_get_width(chan, dst_addr_width);
drivers/dma/stm32/stm32-mdma.c
567
chan->mem_burst = dst_best_burst;
drivers/dma/stm32/stm32-mdma.c
573
chan->mem_width = src_addr_width;
drivers/dma/stm32/stm32-mdma.c
574
src_bus_width = stm32_mdma_get_width(chan, src_addr_width);
drivers/dma/stm32/stm32-mdma.c
587
chan->mem_burst = src_best_burst;
drivers/dma/stm32/stm32-mdma.c
599
stm32_mdma_write(dmadev, STM32_MDMA_CDAR(chan->id), dst_addr);
drivers/dma/stm32/stm32-mdma.c
603
src_addr = chan->dma_config.src_addr;
drivers/dma/stm32/stm32-mdma.c
610
src_bus_width = stm32_mdma_get_width(chan, src_addr_width);
drivers/dma/stm32/stm32-mdma.c
632
chan->mem_width = dst_addr_width;
drivers/dma/stm32/stm32-mdma.c
633
dst_bus_width = stm32_mdma_get_width(chan, dst_addr_width);
drivers/dma/stm32/stm32-mdma.c
657
stm32_mdma_write(dmadev, STM32_MDMA_CSAR(chan->id), src_addr);
drivers/dma/stm32/stm32-mdma.c
661
dev_err(chan2dev(chan), "Dma direction is not supported\n");
drivers/dma/stm32/stm32-mdma.c
672
static void stm32_mdma_dump_hwdesc(struct stm32_mdma_chan *chan,
drivers/dma/stm32/stm32-mdma.c
675
dev_dbg(chan2dev(chan), "hwdesc: %pad\n", &node->hwdesc_phys);
drivers/dma/stm32/stm32-mdma.c
676
dev_dbg(chan2dev(chan), "CTCR: 0x%08x\n", node->hwdesc->ctcr);
drivers/dma/stm32/stm32-mdma.c
677
dev_dbg(chan2dev(chan), "CBNDTR: 0x%08x\n", node->hwdesc->cbndtr);
drivers/dma/stm32/stm32-mdma.c
678
dev_dbg(chan2dev(chan), "CSAR: 0x%08x\n", node->hwdesc->csar);
drivers/dma/stm32/stm32-mdma.c
679
dev_dbg(chan2dev(chan), "CDAR: 0x%08x\n", node->hwdesc->cdar);
drivers/dma/stm32/stm32-mdma.c
680
dev_dbg(chan2dev(chan), "CBRUR: 0x%08x\n", node->hwdesc->cbrur);
drivers/dma/stm32/stm32-mdma.c
681
dev_dbg(chan2dev(chan), "CLAR: 0x%08x\n", node->hwdesc->clar);
drivers/dma/stm32/stm32-mdma.c
682
dev_dbg(chan2dev(chan), "CTBR: 0x%08x\n", node->hwdesc->ctbr);
drivers/dma/stm32/stm32-mdma.c
683
dev_dbg(chan2dev(chan), "CMAR: 0x%08x\n", node->hwdesc->cmar);
drivers/dma/stm32/stm32-mdma.c
684
dev_dbg(chan2dev(chan), "CMDR: 0x%08x\n\n", node->hwdesc->cmdr);
drivers/dma/stm32/stm32-mdma.c
687
static void stm32_mdma_setup_hwdesc(struct stm32_mdma_chan *chan,
drivers/dma/stm32/stm32-mdma.c
694
struct stm32_mdma_chan_config *config = &chan->chan_config;
drivers/dma/stm32/stm32-mdma.c
721
stm32_mdma_dump_hwdesc(chan, &desc->node[count]);
drivers/dma/stm32/stm32-mdma.c
724
static int stm32_mdma_setup_xfer(struct stm32_mdma_chan *chan,
drivers/dma/stm32/stm32-mdma.c
729
struct stm32_mdma_device *dmadev = stm32_mdma_get_dev(chan);
drivers/dma/stm32/stm32-mdma.c
730
struct dma_slave_config *dma_config = &chan->dma_config;
drivers/dma/stm32/stm32-mdma.c
731
struct stm32_mdma_chan_config *chan_config = &chan->chan_config;
drivers/dma/stm32/stm32-mdma.c
742
dev_err(chan2dev(chan), "Invalid block len\n");
drivers/dma/stm32/stm32-mdma.c
751
ret = stm32_mdma_set_xfer_param(chan, direction, &ccr,
drivers/dma/stm32/stm32-mdma.c
761
ret = stm32_mdma_set_xfer_param(chan, direction, &ccr,
drivers/dma/stm32/stm32-mdma.c
771
stm32_mdma_setup_hwdesc(chan, desc, direction, i, src_addr,
drivers/dma/stm32/stm32-mdma.c
789
struct stm32_mdma_chan *chan = to_stm32_mdma_chan(c);
drivers/dma/stm32/stm32-mdma.c
790
struct stm32_mdma_chan_config *chan_config = &chan->chan_config;
drivers/dma/stm32/stm32-mdma.c
799
if (chan->desc && chan->desc->cyclic) {
drivers/dma/stm32/stm32-mdma.c
800
dev_err(chan2dev(chan),
drivers/dma/stm32/stm32-mdma.c
805
desc = stm32_mdma_alloc_desc(chan, sg_len);
drivers/dma/stm32/stm32-mdma.c
809
ret = stm32_mdma_setup_xfer(chan, desc, sgl, sg_len, direction);
drivers/dma/stm32/stm32-mdma.c
830
return vchan_tx_prep(&chan->vchan, &desc->vdesc, flags);
drivers/dma/stm32/stm32-mdma.c
834
dma_pool_free(chan->desc_pool, desc->node[i].hwdesc,
drivers/dma/stm32/stm32-mdma.c
846
struct stm32_mdma_chan *chan = to_stm32_mdma_chan(c);
drivers/dma/stm32/stm32-mdma.c
847
struct stm32_mdma_device *dmadev = stm32_mdma_get_dev(chan);
drivers/dma/stm32/stm32-mdma.c
848
struct dma_slave_config *dma_config = &chan->dma_config;
drivers/dma/stm32/stm32-mdma.c
849
struct stm32_mdma_chan_config *chan_config = &chan->chan_config;
drivers/dma/stm32/stm32-mdma.c
860
if (chan->desc && chan->desc->cyclic) {
drivers/dma/stm32/stm32-mdma.c
861
dev_err(chan2dev(chan),
drivers/dma/stm32/stm32-mdma.c
867
dev_err(chan2dev(chan), "Invalid buffer/period len\n");
drivers/dma/stm32/stm32-mdma.c
872
dev_err(chan2dev(chan), "buf_len not multiple of period_len\n");
drivers/dma/stm32/stm32-mdma.c
878
desc = stm32_mdma_alloc_desc(chan, count);
drivers/dma/stm32/stm32-mdma.c
885
ret = stm32_mdma_set_xfer_param(chan, direction, &ccr, &ctcr,
drivers/dma/stm32/stm32-mdma.c
891
ret = stm32_mdma_set_xfer_param(chan, direction, &ccr, &ctcr,
drivers/dma/stm32/stm32-mdma.c
919
stm32_mdma_setup_hwdesc(chan, desc, direction, i, src_addr,
drivers/dma/stm32/stm32-mdma.c
926
return vchan_tx_prep(&chan->vchan, &desc->vdesc, flags);
drivers/dma/stm32/stm32-mdma.c
930
dma_pool_free(chan->desc_pool, desc->node[i].hwdesc,
drivers/dma/stm32/stm32-mdma.c
940
struct stm32_mdma_chan *chan = to_stm32_mdma_chan(c);
drivers/dma/stm32/stm32-mdma.c
941
struct stm32_mdma_device *dmadev = stm32_mdma_get_dev(chan);
drivers/dma/stm32/stm32-mdma.c
956
if (chan->desc && chan->desc->cyclic) {
drivers/dma/stm32/stm32-mdma.c
957
dev_err(chan2dev(chan),
drivers/dma/stm32/stm32-mdma.c
963
desc = stm32_mdma_alloc_desc(chan, count);
drivers/dma/stm32/stm32-mdma.c
967
ccr = stm32_mdma_read(dmadev, STM32_MDMA_CCR(chan->id)) & ~STM32_MDMA_CCR_EN;
drivers/dma/stm32/stm32-mdma.c
968
ctcr = stm32_mdma_read(dmadev, STM32_MDMA_CTCR(chan->id));
drivers/dma/stm32/stm32-mdma.c
969
ctbr = stm32_mdma_read(dmadev, STM32_MDMA_CTBR(chan->id));
drivers/dma/stm32/stm32-mdma.c
970
cbndtr = stm32_mdma_read(dmadev, STM32_MDMA_CBNDTR(chan->id));
drivers/dma/sun4i-dma.c
1010
static int sun4i_dma_config(struct dma_chan *chan,
drivers/dma/sun4i-dma.c
1013
struct sun4i_dma_vchan *vchan = to_sun4i_dma_vchan(chan);
drivers/dma/sun4i-dma.c
1025
struct dma_chan *chan;
drivers/dma/sun4i-dma.c
1038
chan = dma_get_any_slave_channel(&priv->slave);
drivers/dma/sun4i-dma.c
1039
if (!chan)
drivers/dma/sun4i-dma.c
1043
vchan = to_sun4i_dma_vchan(chan);
drivers/dma/sun4i-dma.c
1047
return chan;
drivers/dma/sun4i-dma.c
1050
static enum dma_status sun4i_dma_tx_status(struct dma_chan *chan,
drivers/dma/sun4i-dma.c
1054
struct sun4i_dma_vchan *vchan = to_sun4i_dma_vchan(chan);
drivers/dma/sun4i-dma.c
1063
ret = dma_cookie_status(chan, cookie, state);
drivers/dma/sun4i-dma.c
1099
static void sun4i_dma_issue_pending(struct dma_chan *chan)
drivers/dma/sun4i-dma.c
1101
struct sun4i_dma_dev *priv = to_sun4i_dma_dev(chan->device);
drivers/dma/sun4i-dma.c
1102
struct sun4i_dma_vchan *vchan = to_sun4i_dma_vchan(chan);
drivers/dma/sun4i-dma.c
239
static struct sun4i_dma_vchan *to_sun4i_dma_vchan(struct dma_chan *chan)
drivers/dma/sun4i-dma.c
241
return container_of(chan, struct sun4i_dma_vchan, vc.chan);
drivers/dma/sun4i-dma.c
249
static struct device *chan2dev(struct dma_chan *chan)
drivers/dma/sun4i-dma.c
251
return &chan->dev->device;
drivers/dma/sun4i-dma.c
301
static void sun4i_dma_free_chan_resources(struct dma_chan *chan)
drivers/dma/sun4i-dma.c
303
struct sun4i_dma_vchan *vchan = to_sun4i_dma_vchan(chan);
drivers/dma/sun4i-dma.c
431
dev_dbg(chan2dev(&vchan->vc.chan),
drivers/dma/sun4i-dma.c
441
dev_dbg(chan2dev(&vchan->vc.chan),
drivers/dma/sun4i-dma.c
452
dev_dbg(chan2dev(&vchan->vc.chan),
drivers/dma/sun4i-dma.c
523
generate_ndma_promise(struct dma_chan *chan, dma_addr_t src, dma_addr_t dest,
drivers/dma/sun4i-dma.c
527
struct sun4i_dma_dev *priv = to_sun4i_dma_dev(chan->device);
drivers/dma/sun4i-dma.c
545
dev_dbg(chan2dev(chan),
drivers/dma/sun4i-dma.c
591
generate_ddma_promise(struct dma_chan *chan, dma_addr_t src, dma_addr_t dest,
drivers/dma/sun4i-dma.c
594
struct sun4i_dma_dev *priv = to_sun4i_dma_dev(chan->device);
drivers/dma/sun4i-dma.c
704
sun4i_dma_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dest,
drivers/dma/sun4i-dma.c
707
struct sun4i_dma_dev *priv = to_sun4i_dma_dev(chan->device);
drivers/dma/sun4i-dma.c
708
struct sun4i_dma_vchan *vchan = to_sun4i_dma_vchan(chan);
drivers/dma/sun4i-dma.c
728
promise = generate_ddma_promise(chan, src, dest, len, sconfig);
drivers/dma/sun4i-dma.c
730
promise = generate_ndma_promise(chan, src, dest, len, sconfig,
drivers/dma/sun4i-dma.c
757
sun4i_dma_prep_dma_cyclic(struct dma_chan *chan, dma_addr_t buf, size_t len,
drivers/dma/sun4i-dma.c
761
struct sun4i_dma_dev *priv = to_sun4i_dma_dev(chan->device);
drivers/dma/sun4i-dma.c
762
struct sun4i_dma_vchan *vchan = to_sun4i_dma_vchan(chan);
drivers/dma/sun4i-dma.c
772
dev_err(chan2dev(chan), "Invalid DMA direction\n");
drivers/dma/sun4i-dma.c
857
promise = generate_ddma_promise(chan, src, dest,
drivers/dma/sun4i-dma.c
860
promise = generate_ndma_promise(chan, src, dest,
drivers/dma/sun4i-dma.c
878
sun4i_dma_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
drivers/dma/sun4i-dma.c
882
struct sun4i_dma_dev *priv = to_sun4i_dma_dev(chan->device);
drivers/dma/sun4i-dma.c
883
struct sun4i_dma_vchan *vchan = to_sun4i_dma_vchan(chan);
drivers/dma/sun4i-dma.c
897
dev_err(chan2dev(chan), "Invalid DMA direction\n");
drivers/dma/sun4i-dma.c
949
promise = generate_ddma_promise(chan, srcaddr, dstaddr,
drivers/dma/sun4i-dma.c
953
promise = generate_ndma_promise(chan, srcaddr, dstaddr,
drivers/dma/sun4i-dma.c
974
static int sun4i_dma_terminate_all(struct dma_chan *chan)
drivers/dma/sun4i-dma.c
976
struct sun4i_dma_dev *priv = to_sun4i_dma_dev(chan->device);
drivers/dma/sun4i-dma.c
977
struct sun4i_dma_vchan *vchan = to_sun4i_dma_vchan(chan);
drivers/dma/sun6i-dma.c
1015
static void sun6i_dma_issue_pending(struct dma_chan *chan)
drivers/dma/sun6i-dma.c
1017
struct sun6i_dma_dev *sdev = to_sun6i_dma_dev(chan->device);
drivers/dma/sun6i-dma.c
1018
struct sun6i_vchan *vchan = to_sun6i_vchan(chan);
drivers/dma/sun6i-dma.c
1029
dev_dbg(chan2dev(chan), "vchan %p: issued\n",
drivers/dma/sun6i-dma.c
1035
dev_dbg(chan2dev(chan), "vchan %p: nothing to issue\n",
drivers/dma/sun6i-dma.c
1042
static void sun6i_dma_free_chan_resources(struct dma_chan *chan)
drivers/dma/sun6i-dma.c
1044
struct sun6i_dma_dev *sdev = to_sun6i_dma_dev(chan->device);
drivers/dma/sun6i-dma.c
1045
struct sun6i_vchan *vchan = to_sun6i_vchan(chan);
drivers/dma/sun6i-dma.c
1060
struct dma_chan *chan;
drivers/dma/sun6i-dma.c
1066
chan = dma_get_any_slave_channel(&sdev->slave);
drivers/dma/sun6i-dma.c
1067
if (!chan)
drivers/dma/sun6i-dma.c
1070
vchan = to_sun6i_vchan(chan);
drivers/dma/sun6i-dma.c
1073
return chan;
drivers/dma/sun6i-dma.c
1099
list_del(&vchan->vc.chan.device_node);
drivers/dma/sun6i-dma.c
216
static struct device *chan2dev(struct dma_chan *chan)
drivers/dma/sun6i-dma.c
218
return &chan->dev->device;
drivers/dma/sun6i-dma.c
226
static inline struct sun6i_vchan *to_sun6i_vchan(struct dma_chan *chan)
drivers/dma/sun6i-dma.c
228
return container_of(chan, struct sun6i_vchan, vc.chan);
drivers/dma/sun6i-dma.c
400
dev_dbg(chan2dev(&vchan->vc.chan),
drivers/dma/sun6i-dma.c
412
struct sun6i_dma_dev *sdev = to_sun6i_dma_dev(vd->tx.chan->device);
drivers/dma/sun6i-dma.c
437
struct sun6i_dma_dev *sdev = to_sun6i_dma_dev(vchan->vc.chan.device);
drivers/dma/sun6i-dma.c
486
list_for_each_entry(vchan, &sdev->slave.channels, vc.chan.device_node) {
drivers/dma/sun6i-dma.c
664
struct dma_chan *chan, dma_addr_t dest, dma_addr_t src,
drivers/dma/sun6i-dma.c
667
struct sun6i_dma_dev *sdev = to_sun6i_dma_dev(chan->device);
drivers/dma/sun6i-dma.c
668
struct sun6i_vchan *vchan = to_sun6i_vchan(chan);
drivers/dma/sun6i-dma.c
674
dev_dbg(chan2dev(chan),
drivers/dma/sun6i-dma.c
676
__func__, vchan->vc.chan.chan_id, &dest, &src, len, flags);
drivers/dma/sun6i-dma.c
716
struct dma_chan *chan, struct scatterlist *sgl,
drivers/dma/sun6i-dma.c
720
struct sun6i_dma_dev *sdev = to_sun6i_dma_dev(chan->device);
drivers/dma/sun6i-dma.c
721
struct sun6i_vchan *vchan = to_sun6i_vchan(chan);
drivers/dma/sun6i-dma.c
735
dev_err(chan2dev(chan), "Invalid DMA configuration\n");
drivers/dma/sun6i-dma.c
759
dev_dbg(chan2dev(chan),
drivers/dma/sun6i-dma.c
761
__func__, vchan->vc.chan.chan_id,
drivers/dma/sun6i-dma.c
773
dev_dbg(chan2dev(chan),
drivers/dma/sun6i-dma.c
775
__func__, vchan->vc.chan.chan_id,
drivers/dma/sun6i-dma.c
783
dev_dbg(chan2dev(chan), "First: %pad\n", &txd->p_lli);
drivers/dma/sun6i-dma.c
799
struct dma_chan *chan,
drivers/dma/sun6i-dma.c
806
struct sun6i_dma_dev *sdev = to_sun6i_dma_dev(chan->device);
drivers/dma/sun6i-dma.c
807
struct sun6i_vchan *vchan = to_sun6i_vchan(chan);
drivers/dma/sun6i-dma.c
818
dev_err(chan2dev(chan), "Invalid DMA configuration\n");
drivers/dma/sun6i-dma.c
843
dev_dbg(chan2dev(chan),
drivers/dma/sun6i-dma.c
845
__func__, vchan->vc.chan.chan_id,
drivers/dma/sun6i-dma.c
855
dev_dbg(chan2dev(chan),
drivers/dma/sun6i-dma.c
857
__func__, vchan->vc.chan.chan_id,
drivers/dma/sun6i-dma.c
879
static int sun6i_dma_config(struct dma_chan *chan,
drivers/dma/sun6i-dma.c
882
struct sun6i_vchan *vchan = to_sun6i_vchan(chan);
drivers/dma/sun6i-dma.c
889
static int sun6i_dma_pause(struct dma_chan *chan)
drivers/dma/sun6i-dma.c
891
struct sun6i_dma_dev *sdev = to_sun6i_dma_dev(chan->device);
drivers/dma/sun6i-dma.c
892
struct sun6i_vchan *vchan = to_sun6i_vchan(chan);
drivers/dma/sun6i-dma.c
895
dev_dbg(chan2dev(chan), "vchan %p: pause\n", &vchan->vc);
drivers/dma/sun6i-dma.c
909
static int sun6i_dma_resume(struct dma_chan *chan)
drivers/dma/sun6i-dma.c
911
struct sun6i_dma_dev *sdev = to_sun6i_dma_dev(chan->device);
drivers/dma/sun6i-dma.c
912
struct sun6i_vchan *vchan = to_sun6i_vchan(chan);
drivers/dma/sun6i-dma.c
916
dev_dbg(chan2dev(chan), "vchan %p: resume\n", &vchan->vc);
drivers/dma/sun6i-dma.c
934
static int sun6i_dma_terminate_all(struct dma_chan *chan)
drivers/dma/sun6i-dma.c
936
struct sun6i_dma_dev *sdev = to_sun6i_dma_dev(chan->device);
drivers/dma/sun6i-dma.c
937
struct sun6i_vchan *vchan = to_sun6i_vchan(chan);
drivers/dma/sun6i-dma.c
977
static enum dma_status sun6i_dma_tx_status(struct dma_chan *chan,
drivers/dma/sun6i-dma.c
981
struct sun6i_vchan *vchan = to_sun6i_vchan(chan);
drivers/dma/sun6i-dma.c
990
ret = dma_cookie_status(chan, cookie, state);
drivers/dma/switchtec_dma.c
1001
dma_cookie_init(chan);
drivers/dma/switchtec_dma.c
1012
dev_dbg(&chan->dev->device, "Burst Size: 0x%x\n",
drivers/dma/switchtec_dma.c
1015
dev_dbg(&chan->dev->device, "Burst Scale: 0x%x\n",
drivers/dma/switchtec_dma.c
1018
dev_dbg(&chan->dev->device, "Interval: 0x%x\n",
drivers/dma/switchtec_dma.c
1021
dev_dbg(&chan->dev->device, "Arb Weight: 0x%x\n",
drivers/dma/switchtec_dma.c
1024
dev_dbg(&chan->dev->device, "MRRS: 0x%x\n",
drivers/dma/switchtec_dma.c
1030
static void switchtec_dma_free_chan_resources(struct dma_chan *chan)
drivers/dma/switchtec_dma.c
1033
container_of(chan, struct switchtec_dma_chan, dma_chan);
drivers/dma/switchtec_dma.c
1057
struct dma_chan *chan;
drivers/dma/switchtec_dma.c
1116
chan = &swdma_chan->dma_chan;
drivers/dma/switchtec_dma.c
1117
chan->device = dma;
drivers/dma/switchtec_dma.c
1118
dma_cookie_init(chan);
drivers/dma/switchtec_dma.c
1120
list_add_tail(&chan->device_node, &dma->channels);
drivers/dma/switchtec_dma.c
1220
struct dma_chan *chan;
drivers/dma/switchtec_dma.c
1291
list_for_each_entry(chan, &dma->channels, device_node)
drivers/dma/switchtec_dma.c
1292
pci_dbg(pdev, "%s\n", dma_chan_name(chan));
drivers/dma/switchtec_dma.c
568
static int switchtec_dma_terminate_all(struct dma_chan *chan)
drivers/dma/switchtec_dma.c
571
container_of(chan, struct switchtec_dma_chan, dma_chan);
drivers/dma/switchtec_dma.c
580
static void switchtec_dma_synchronize(struct dma_chan *chan)
drivers/dma/switchtec_dma.c
583
container_of(chan, struct switchtec_dma_chan, dma_chan);
drivers/dma/switchtec_dma.c
611
dma_cookie_init(chan);
drivers/dma/switchtec_dma.c
704
container_of(desc->chan, struct switchtec_dma_chan, dma_chan);
drivers/dma/switchtec_dma.c
723
static enum dma_status switchtec_dma_tx_status(struct dma_chan *chan,
drivers/dma/switchtec_dma.c
727
container_of(chan, struct switchtec_dma_chan, dma_chan);
drivers/dma/switchtec_dma.c
730
ret = dma_cookie_status(chan, cookie, txstate);
drivers/dma/switchtec_dma.c
745
return dma_cookie_status(chan, cookie, txstate);
drivers/dma/switchtec_dma.c
748
static void switchtec_dma_issue_pending(struct dma_chan *chan)
drivers/dma/switchtec_dma.c
751
container_of(chan, struct switchtec_dma_chan, dma_chan);
drivers/dma/switchtec_dma.c
773
static int switchtec_dma_pause(struct dma_chan *chan)
drivers/dma/switchtec_dma.c
776
container_of(chan, struct switchtec_dma_chan, dma_chan);
drivers/dma/switchtec_dma.c
798
static int switchtec_dma_resume(struct dma_chan *chan)
drivers/dma/switchtec_dma.c
801
container_of(chan, struct switchtec_dma_chan, dma_chan);
drivers/dma/switchtec_dma.c
830
static irqreturn_t switchtec_dma_isr(int irq, void *chan)
drivers/dma/switchtec_dma.c
832
struct switchtec_dma_chan *swdma_chan = chan;
drivers/dma/switchtec_dma.c
847
struct dma_chan *chan;
drivers/dma/switchtec_dma.c
851
list_for_each_entry(chan, &dma_dev->channels, device_node) {
drivers/dma/switchtec_dma.c
852
swdma_chan = container_of(chan, struct switchtec_dma_chan,
drivers/dma/switchtec_dma.c
973
static int switchtec_dma_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/switchtec_dma.c
976
container_of(chan, struct switchtec_dma_chan, dma_chan);
drivers/dma/tegra186-gpc-dma.c
1265
dma_cookie_init(&tdc->vc.chan);
drivers/dma/tegra186-gpc-dma.c
1301
struct dma_chan *chan;
drivers/dma/tegra186-gpc-dma.c
1303
chan = dma_get_any_slave_channel(&tdma->dma_dev);
drivers/dma/tegra186-gpc-dma.c
1304
if (!chan)
drivers/dma/tegra186-gpc-dma.c
1307
tdc = to_tegra_dma_chan(chan);
drivers/dma/tegra186-gpc-dma.c
1310
return chan;
drivers/dma/tegra186-gpc-dma.c
1423
struct dma_chan *chan;
drivers/dma/tegra186-gpc-dma.c
1539
list_for_each_entry(chan, &tdma->dma_dev.channels, device_node) {
drivers/dma/tegra186-gpc-dma.c
1540
chdev = &chan->dev->device;
drivers/dma/tegra186-gpc-dma.c
1541
tdc = to_tegra_dma_chan(chan);
drivers/dma/tegra186-gpc-dma.c
1557
chan->dev->chan_dma_dev = true;
drivers/dma/tegra186-gpc-dma.c
259
return container_of(dc, struct tegra_dma_channel, vc.chan);
drivers/dma/tegra186-gpc-dma.c
269
return tdc->vc.chan.device->dev;
drivers/dma/tegra20-apb-dma.c
1350
struct dma_chan *chan;
drivers/dma/tegra20-apb-dma.c
1357
chan = dma_get_any_slave_channel(&tdma->dma_dev);
drivers/dma/tegra20-apb-dma.c
1358
if (!chan)
drivers/dma/tegra20-apb-dma.c
1361
tdc = to_tegra_dma_chan(chan);
drivers/dma/tegra20-apb-dma.c
1364
return chan;
drivers/dma/tegra20-apb-dma.c
689
struct tegra_dma_channel *tdc = to_tegra_dma_chan(txd->chan);
drivers/dma/tegra210-adma.c
234
return container_of(dc, struct tegra_adma_chan, vc.chan);
drivers/dma/tegra210-adma.c
371
dma_chan_name(&tdc->vc.chan));
drivers/dma/tegra210-adma.c
399
dma_chan_name(&tdc->vc.chan));
drivers/dma/tegra210-adma.c
803
dma_cookie_init(&tdc->vc.chan);
drivers/dma/tegra210-adma.c
827
struct dma_chan *chan;
drivers/dma/tegra210-adma.c
840
chan = dma_get_any_slave_channel(&tdma->dma_dev);
drivers/dma/tegra210-adma.c
841
if (!chan)
drivers/dma/tegra210-adma.c
844
tdc = to_tegra_adma_chan(chan);
drivers/dma/tegra210-adma.c
847
return chan;
drivers/dma/ti/cppi41.c
1192
list_for_each_entry(c, &cdd->ddev.channels, chan.device_node)
drivers/dma/ti/cppi41.c
251
return container_of(c, struct cppi41_channel, chan);
drivers/dma/ti/cppi41.c
371
static int cppi41_dma_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/ti/cppi41.c
373
struct cppi41_channel *c = to_cpp41_chan(chan);
drivers/dma/ti/cppi41.c
386
dma_cookie_init(chan);
drivers/dma/ti/cppi41.c
387
dma_async_tx_descriptor_init(&c->txd, chan);
drivers/dma/ti/cppi41.c
398
static void cppi41_dma_free_chan_resources(struct dma_chan *chan)
drivers/dma/ti/cppi41.c
400
struct cppi41_channel *c = to_cpp41_chan(chan);
drivers/dma/ti/cppi41.c
416
static enum dma_status cppi41_dma_tx_status(struct dma_chan *chan,
drivers/dma/ti/cppi41.c
419
struct cppi41_channel *c = to_cpp41_chan(chan);
drivers/dma/ti/cppi41.c
422
ret = dma_cookie_status(chan, cookie, txstate);
drivers/dma/ti/cppi41.c
488
static void cppi41_dma_issue_pending(struct dma_chan *chan)
drivers/dma/ti/cppi41.c
490
struct cppi41_channel *c = to_cpp41_chan(chan);
drivers/dma/ti/cppi41.c
582
struct dma_chan *chan, struct scatterlist *sgl, unsigned sg_len,
drivers/dma/ti/cppi41.c
585
struct cppi41_channel *c = to_cpp41_chan(chan);
drivers/dma/ti/cppi41.c
732
static int cppi41_stop_chan(struct dma_chan *chan)
drivers/dma/ti/cppi41.c
734
struct cppi41_channel *c = to_cpp41_chan(chan);
drivers/dma/ti/cppi41.c
803
cchan->chan.device = &cdd->ddev;
drivers/dma/ti/cppi41.c
804
list_add_tail(&cchan->chan.device_node, &cdd->ddev.channels);
drivers/dma/ti/cppi41.c
86
struct dma_chan chan;
drivers/dma/ti/cppi41.c
942
static bool cpp41_dma_filter_fn(struct dma_chan *chan, void *param)
drivers/dma/ti/cppi41.c
949
if (chan->device->dev->driver != &cpp41_dma_driver.driver)
drivers/dma/ti/cppi41.c
952
cchan = to_cpp41_chan(chan);
drivers/dma/ti/edma.c
1010
struct dma_chan *chan, struct scatterlist *sgl,
drivers/dma/ti/edma.c
1014
struct edma_chan *echan = to_edma_chan(chan);
drivers/dma/ti/edma.c
1015
struct device *dev = chan->device->dev;
drivers/dma/ti/edma.c
1077
ret = edma_config_pset(chan, &edesc->pset[i], src_addr,
drivers/dma/ti/edma.c
1106
struct dma_chan *chan, dma_addr_t dest, dma_addr_t src,
drivers/dma/ti/edma.c
1111
struct device *dev = chan->device->dev;
drivers/dma/ti/edma.c
1112
struct edma_chan *echan = to_edma_chan(chan);
drivers/dma/ti/edma.c
1170
ret = edma_config_pset(chan, &edesc->pset[0], src, dest, 1,
drivers/dma/ti/edma.c
1202
ret = edma_config_pset(chan, &edesc->pset[1], src, dest, 1,
drivers/dma/ti/edma.c
1222
edma_prep_dma_interleaved(struct dma_chan *chan,
drivers/dma/ti/edma.c
1226
struct device *dev = chan->device->dev;
drivers/dma/ti/edma.c
1227
struct edma_chan *echan = to_edma_chan(chan);
drivers/dma/ti/edma.c
1297
struct dma_chan *chan, dma_addr_t buf_addr, size_t buf_len,
drivers/dma/ti/edma.c
1301
struct edma_chan *echan = to_edma_chan(chan);
drivers/dma/ti/edma.c
1302
struct device *dev = chan->device->dev;
drivers/dma/ti/edma.c
1396
ret = edma_config_pset(chan, &edesc->pset[i], src_addr,
drivers/dma/ti/edma.c
1455
struct device *dev = echan->vchan.chan.device->dev;
drivers/dma/ti/edma.c
1539
struct device *dev = echan->vchan.chan.device->dev;
drivers/dma/ti/edma.c
1665
static int edma_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/ti/edma.c
1667
struct edma_chan *echan = to_edma_chan(chan);
drivers/dma/ti/edma.c
1698
EDMA_CHAN_SLOT(echan->ch_num), chan->chan_id,
drivers/dma/ti/edma.c
1709
static void edma_free_chan_resources(struct dma_chan *chan)
drivers/dma/ti/edma.c
1711
struct edma_chan *echan = to_edma_chan(chan);
drivers/dma/ti/edma.c
1741
EDMA_CHAN_SLOT(echan->ch_num), chan->chan_id);
drivers/dma/ti/edma.c
1745
static void edma_issue_pending(struct dma_chan *chan)
drivers/dma/ti/edma.c
1747
struct edma_chan *echan = to_edma_chan(chan);
drivers/dma/ti/edma.c
1804
dev_dbg_ratelimited(echan->vchan.chan.device->dev,
drivers/dma/ti/edma.c
1855
static enum dma_status edma_tx_status(struct dma_chan *chan,
drivers/dma/ti/edma.c
1859
struct edma_chan *echan = to_edma_chan(chan);
drivers/dma/ti/edma.c
1864
ret = dma_cookie_status(chan, cookie, txstate);
drivers/dma/ti/edma.c
2233
struct dma_chan *chan = NULL;
drivers/dma/ti/edma.c
2243
chan = &echan->vchan.chan;
drivers/dma/ti/edma.c
2248
if (!chan)
drivers/dma/ti/edma.c
2268
return dma_get_slave_channel(chan);
drivers/dma/ti/edma.c
2284
static bool edma_filter_fn(struct dma_chan *chan, void *param);
drivers/dma/ti/edma.c
2561
&dmadev->channels, vchan.chan.device_node) {
drivers/dma/ti/edma.c
2562
list_del(&echan->vchan.chan.device_node);
drivers/dma/ti/edma.c
2665
static bool edma_filter_fn(struct dma_chan *chan, void *param)
drivers/dma/ti/edma.c
2669
if (chan->device->dev->driver == &edma_driver.driver) {
drivers/dma/ti/edma.c
2670
struct edma_chan *echan = to_edma_chan(chan);
drivers/dma/ti/edma.c
704
return container_of(c, struct edma_chan, vchan.chan);
drivers/dma/ti/edma.c
723
struct device *dev = echan->vchan.chan.device->dev;
drivers/dma/ti/edma.c
811
static int edma_terminate_all(struct dma_chan *chan)
drivers/dma/ti/edma.c
813
struct edma_chan *echan = to_edma_chan(chan);
drivers/dma/ti/edma.c
841
static void edma_synchronize(struct dma_chan *chan)
drivers/dma/ti/edma.c
843
struct edma_chan *echan = to_edma_chan(chan);
drivers/dma/ti/edma.c
848
static int edma_slave_config(struct dma_chan *chan,
drivers/dma/ti/edma.c
851
struct edma_chan *echan = to_edma_chan(chan);
drivers/dma/ti/edma.c
857
if (cfg->src_maxburst > chan->device->max_burst ||
drivers/dma/ti/edma.c
858
cfg->dst_maxburst > chan->device->max_burst)
drivers/dma/ti/edma.c
866
static int edma_dma_pause(struct dma_chan *chan)
drivers/dma/ti/edma.c
868
struct edma_chan *echan = to_edma_chan(chan);
drivers/dma/ti/edma.c
877
static int edma_dma_resume(struct dma_chan *chan)
drivers/dma/ti/edma.c
879
struct edma_chan *echan = to_edma_chan(chan);
drivers/dma/ti/edma.c
896
static int edma_config_pset(struct dma_chan *chan, struct edma_pset *epset,
drivers/dma/ti/edma.c
901
struct edma_chan *echan = to_edma_chan(chan);
drivers/dma/ti/edma.c
902
struct device *dev = chan->device->dev;
drivers/dma/ti/k3-udma.c
1619
k3_configure_chan_coherency(&uc->vc.chan, 0);
drivers/dma/ti/k3-udma.c
1647
k3_configure_chan_coherency(&uc->vc.chan, ud->asel);
drivers/dma/ti/k3-udma.c
1649
ring_cfg.dma_dev = dmaengine_get_dma_device(&uc->vc.chan);
drivers/dma/ti/k3-udma.c
1662
k3_configure_chan_coherency(&uc->vc.chan, 0);
drivers/dma/ti/k3-udma.c
1715
k3_configure_chan_coherency(&uc->vc.chan, uc->config.asel);
drivers/dma/ti/k3-udma.c
1717
ring_cfg.dma_dev = dmaengine_get_dma_device(&uc->vc.chan);
drivers/dma/ti/k3-udma.c
1812
k3_configure_chan_coherency(&uc->vc.chan, uc->config.asel);
drivers/dma/ti/k3-udma.c
1814
ring_cfg.dma_dev = dmaengine_get_dma_device(&uc->vc.chan);
drivers/dma/ti/k3-udma.c
2183
static int udma_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/ti/k3-udma.c
2185
struct udma_chan *uc = to_udma_chan(chan);
drivers/dma/ti/k3-udma.c
2186
struct udma_dev *ud = to_udma_dev(chan->device);
drivers/dma/ti/k3-udma.c
2388
static int bcdma_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/ti/k3-udma.c
2390
struct udma_chan *uc = to_udma_chan(chan);
drivers/dma/ti/k3-udma.c
2391
struct udma_dev *ud = to_udma_dev(chan->device);
drivers/dma/ti/k3-udma.c
2483
uc->dma_dev = dmaengine_get_dma_device(chan);
drivers/dma/ti/k3-udma.c
2582
static int bcdma_router_config(struct dma_chan *chan)
drivers/dma/ti/k3-udma.c
2584
struct k3_event_route_data *router_data = chan->route_data;
drivers/dma/ti/k3-udma.c
2585
struct udma_chan *uc = to_udma_chan(chan);
drivers/dma/ti/k3-udma.c
2600
static int pktdma_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/ti/k3-udma.c
2602
struct udma_chan *uc = to_udma_chan(chan);
drivers/dma/ti/k3-udma.c
2603
struct udma_dev *ud = to_udma_dev(chan->device);
drivers/dma/ti/k3-udma.c
2676
uc->dma_dev = dmaengine_get_dma_device(chan);
drivers/dma/ti/k3-udma.c
2751
static int udma_slave_config(struct dma_chan *chan,
drivers/dma/ti/k3-udma.c
2754
struct udma_chan *uc = to_udma_chan(chan);
drivers/dma/ti/k3-udma.c
324
return container_of(c, struct udma_chan, vc.chan);
drivers/dma/ti/k3-udma.c
3327
struct udma_chan *uc = to_udma_chan(desc->chan);
drivers/dma/ti/k3-udma.c
3363
struct udma_chan *uc = to_udma_chan(desc->chan);
drivers/dma/ti/k3-udma.c
3384
struct udma_chan *uc = to_udma_chan(desc->chan);
drivers/dma/ti/k3-udma.c
3418
udma_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
drivers/dma/ti/k3-udma.c
3422
struct udma_chan *uc = to_udma_chan(chan);
drivers/dma/ti/k3-udma.c
3429
dev_err(chan->device->dev,
drivers/dma/ti/k3-udma.c
3444
dev_err(chan->device->dev, "%s: bad direction?\n", __func__);
drivers/dma/ti/k3-udma.c
3644
udma_prep_dma_cyclic(struct dma_chan *chan, dma_addr_t buf_addr, size_t buf_len,
drivers/dma/ti/k3-udma.c
3648
struct udma_chan *uc = to_udma_chan(chan);
drivers/dma/ti/k3-udma.c
3654
dev_err(chan->device->dev,
drivers/dma/ti/k3-udma.c
3712
udma_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dest, dma_addr_t src,
drivers/dma/ti/k3-udma.c
3715
struct udma_chan *uc = to_udma_chan(chan);
drivers/dma/ti/k3-udma.c
3724
dev_err(chan->device->dev,
drivers/dma/ti/k3-udma.c
3802
static void udma_issue_pending(struct dma_chan *chan)
drivers/dma/ti/k3-udma.c
3804
struct udma_chan *uc = to_udma_chan(chan);
drivers/dma/ti/k3-udma.c
3824
static enum dma_status udma_tx_status(struct dma_chan *chan,
drivers/dma/ti/k3-udma.c
3828
struct udma_chan *uc = to_udma_chan(chan);
drivers/dma/ti/k3-udma.c
3834
ret = dma_cookie_status(chan, cookie, txstate);
drivers/dma/ti/k3-udma.c
3897
static int udma_pause(struct dma_chan *chan)
drivers/dma/ti/k3-udma.c
3899
struct udma_chan *uc = to_udma_chan(chan);
drivers/dma/ti/k3-udma.c
3925
static int udma_resume(struct dma_chan *chan)
drivers/dma/ti/k3-udma.c
3927
struct udma_chan *uc = to_udma_chan(chan);
drivers/dma/ti/k3-udma.c
3951
static int udma_terminate_all(struct dma_chan *chan)
drivers/dma/ti/k3-udma.c
3953
struct udma_chan *uc = to_udma_chan(chan);
drivers/dma/ti/k3-udma.c
3978
static void udma_synchronize(struct dma_chan *chan)
drivers/dma/ti/k3-udma.c
3980
struct udma_chan *uc = to_udma_chan(chan);
drivers/dma/ti/k3-udma.c
4008
struct udma_chan *uc = to_udma_chan(&vc->chan);
drivers/dma/ti/k3-udma.c
4083
static void udma_free_chan_resources(struct dma_chan *chan)
drivers/dma/ti/k3-udma.c
4085
struct udma_chan *uc = to_udma_chan(chan);
drivers/dma/ti/k3-udma.c
4086
struct udma_dev *ud = to_udma_dev(chan->device);
drivers/dma/ti/k3-udma.c
4088
udma_terminate_all(chan);
drivers/dma/ti/k3-udma.c
4139
static bool udma_dma_filter_fn(struct dma_chan *chan, void *param)
drivers/dma/ti/k3-udma.c
4147
if (chan->device->dev->driver != &udma_driver.driver &&
drivers/dma/ti/k3-udma.c
4148
chan->device->dev->driver != &bcdma_driver.driver &&
drivers/dma/ti/k3-udma.c
4149
chan->device->dev->driver != &pktdma_driver.driver)
drivers/dma/ti/k3-udma.c
4152
uc = to_udma_chan(chan);
drivers/dma/ti/k3-udma.c
423
static void k3_configure_chan_coherency(struct dma_chan *chan, u32 asel)
drivers/dma/ti/k3-udma.c
425
struct device *chan_dev = &chan->dev->device;
drivers/dma/ti/k3-udma.c
4257
struct dma_chan *chan;
drivers/dma/ti/k3-udma.c
4287
chan = __dma_request_channel(&ud->ddev.cap_mask, udma_dma_filter_fn, &filter_param,
drivers/dma/ti/k3-udma.c
4289
if (!chan) {
drivers/dma/ti/k3-udma.c
429
chan->dev->chan_dma_dev = false;
drivers/dma/ti/k3-udma.c
4294
return chan;
drivers/dma/ti/k3-udma.c
434
chan->dev->chan_dma_dev = true;
drivers/dma/ti/k3-udma.c
440
dev_warn(chan->device->dev, "Invalid ASEL value: %u\n", asel);
drivers/dma/ti/k3-udma.c
5302
struct dma_chan *chan)
drivers/dma/ti/k3-udma.c
5304
struct udma_chan *uc = to_udma_chan(chan);
drivers/dma/ti/k3-udma.c
5307
seq_printf(s, " %-13s| %s", dma_chan_name(chan),
drivers/dma/ti/k3-udma.c
5308
chan->dbg_client_name ?: "in-use");
drivers/dma/ti/k3-udma.c
5364
struct dma_chan *chan;
drivers/dma/ti/k3-udma.c
5366
list_for_each_entry(chan, &dma_dev->channels, device_node) {
drivers/dma/ti/k3-udma.c
5367
if (chan->client_count)
drivers/dma/ti/k3-udma.c
5368
udma_dbg_summary_show_chan(s, chan);
drivers/dma/ti/k3-udma.c
5660
struct dma_chan *chan;
drivers/dma/ti/k3-udma.c
5663
list_for_each_entry(chan, &dma_dev->channels, device_node) {
drivers/dma/ti/k3-udma.c
5664
if (chan->client_count) {
drivers/dma/ti/k3-udma.c
5665
uc = to_udma_chan(chan);
drivers/dma/ti/k3-udma.c
567
struct udma_chan *uc = to_udma_chan(vd->tx.chan);
drivers/dma/ti/k3-udma.c
5670
dma_chan_name(chan));
drivers/dma/ti/k3-udma.c
5671
ud->ddev.device_free_chan_resources(chan);
drivers/dma/ti/k3-udma.c
5682
struct dma_chan *chan;
drivers/dma/ti/k3-udma.c
5686
list_for_each_entry(chan, &dma_dev->channels, device_node) {
drivers/dma/ti/k3-udma.c
5687
if (chan->client_count) {
drivers/dma/ti/k3-udma.c
5688
uc = to_udma_chan(chan);
drivers/dma/ti/k3-udma.c
5693
dma_chan_name(chan));
drivers/dma/ti/k3-udma.c
5694
ret = ud->ddev.device_alloc_chan_resources(chan);
drivers/dma/ti/k3-udma.c
582
struct udma_dev *ud = to_udma_dev(vd->tx.chan->device);
drivers/dma/ti/k3-udma.c
583
struct udma_chan *uc = to_udma_chan(vd->tx.chan);
drivers/dma/ti/k3-udma.c
840
uc->ud->ddev.device_free_chan_resources(&uc->vc.chan);
drivers/dma/ti/k3-udma.c
844
ret = uc->ud->ddev.device_alloc_chan_resources(&uc->vc.chan);
drivers/dma/ti/omap-dma.c
1113
dev_err(chan->device->dev,
drivers/dma/ti/omap-dma.c
1141
struct dma_chan *chan, dma_addr_t buf_addr, size_t buf_len,
drivers/dma/ti/omap-dma.c
1144
struct omap_dmadev *od = to_omap_dma_dev(chan->device);
drivers/dma/ti/omap-dma.c
1145
struct omap_chan *c = to_omap_dma_chan(chan);
drivers/dma/ti/omap-dma.c
1161
dev_err(chan->device->dev, "%s: bad direction?\n", __func__);
drivers/dma/ti/omap-dma.c
1242
struct dma_chan *chan, dma_addr_t dest, dma_addr_t src,
drivers/dma/ti/omap-dma.c
1245
struct omap_chan *c = to_omap_dma_chan(chan);
drivers/dma/ti/omap-dma.c
1288
struct dma_chan *chan, struct dma_interleaved_template *xt,
drivers/dma/ti/omap-dma.c
1291
struct omap_chan *c = to_omap_dma_chan(chan);
drivers/dma/ti/omap-dma.c
1332
dev_err(chan->device->dev,
drivers/dma/ti/omap-dma.c
1347
dev_err(chan->device->dev,
drivers/dma/ti/omap-dma.c
1370
static int omap_dma_slave_config(struct dma_chan *chan, struct dma_slave_config *cfg)
drivers/dma/ti/omap-dma.c
1372
struct omap_chan *c = to_omap_dma_chan(chan);
drivers/dma/ti/omap-dma.c
1378
if (cfg->src_maxburst > chan->device->max_burst ||
drivers/dma/ti/omap-dma.c
1379
cfg->dst_maxburst > chan->device->max_burst)
drivers/dma/ti/omap-dma.c
1387
static int omap_dma_terminate_all(struct dma_chan *chan)
drivers/dma/ti/omap-dma.c
1389
struct omap_chan *c = to_omap_dma_chan(chan);
drivers/dma/ti/omap-dma.c
1418
static void omap_dma_synchronize(struct dma_chan *chan)
drivers/dma/ti/omap-dma.c
1420
struct omap_chan *c = to_omap_dma_chan(chan);
drivers/dma/ti/omap-dma.c
1425
static int omap_dma_pause(struct dma_chan *chan)
drivers/dma/ti/omap-dma.c
1427
struct omap_chan *c = to_omap_dma_chan(chan);
drivers/dma/ti/omap-dma.c
1428
struct omap_dmadev *od = to_omap_dma_dev(chan->device);
drivers/dma/ti/omap-dma.c
1478
static int omap_dma_resume(struct dma_chan *chan)
drivers/dma/ti/omap-dma.c
1480
struct omap_chan *c = to_omap_dma_chan(chan);
drivers/dma/ti/omap-dma.c
1481
struct omap_dmadev *od = to_omap_dma_dev(chan->device);
drivers/dma/ti/omap-dma.c
1521
struct omap_chan, vc.chan.device_node);
drivers/dma/ti/omap-dma.c
1523
list_del(&c->vc.chan.device_node);
drivers/dma/ti/omap-dma.c
1929
static bool omap_dma_filter_fn(struct dma_chan *chan, void *param)
drivers/dma/ti/omap-dma.c
1931
if (chan->device->dev->driver == &omap_dma_driver.driver) {
drivers/dma/ti/omap-dma.c
1932
struct omap_dmadev *od = to_omap_dma_dev(chan->device);
drivers/dma/ti/omap-dma.c
1933
struct omap_chan *c = to_omap_dma_chan(chan);
drivers/dma/ti/omap-dma.c
228
static bool omap_dma_filter_fn(struct dma_chan *chan, void *param);
drivers/dma/ti/omap-dma.c
240
return container_of(c, struct omap_chan, vc.chan);
drivers/dma/ti/omap-dma.c
253
struct omap_dmadev *od = to_omap_dma_dev(vd->tx.chan->device);
drivers/dma/ti/omap-dma.c
424
struct omap_dmadev *od = to_omap_dma_dev(c->vc.chan.device);
drivers/dma/ti/omap-dma.c
480
dev_err(c->vc.chan.device->dev,
drivers/dma/ti/omap-dma.c
487
struct omap_dmadev *od = to_omap_dma_dev(c->vc.chan.device);
drivers/dma/ti/omap-dma.c
707
static int omap_dma_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/ti/omap-dma.c
709
struct omap_dmadev *od = to_omap_dma_dev(chan->device);
drivers/dma/ti/omap-dma.c
710
struct omap_chan *c = to_omap_dma_chan(chan);
drivers/dma/ti/omap-dma.c
760
static void omap_dma_free_chan_resources(struct dma_chan *chan)
drivers/dma/ti/omap-dma.c
762
struct omap_dmadev *od = to_omap_dma_dev(chan->device);
drivers/dma/ti/omap-dma.c
763
struct omap_chan *c = to_omap_dma_chan(chan);
drivers/dma/ti/omap-dma.c
825
struct omap_dmadev *od = to_omap_dma_dev(c->vc.chan.device);
drivers/dma/ti/omap-dma.c
837
struct omap_dmadev *od = to_omap_dma_dev(c->vc.chan.device);
drivers/dma/ti/omap-dma.c
863
struct omap_dmadev *od = to_omap_dma_dev(c->vc.chan.device);
drivers/dma/ti/omap-dma.c
887
static enum dma_status omap_dma_tx_status(struct dma_chan *chan,
drivers/dma/ti/omap-dma.c
890
struct omap_chan *c = to_omap_dma_chan(chan);
drivers/dma/ti/omap-dma.c
895
ret = dma_cookie_status(chan, cookie, txstate);
drivers/dma/ti/omap-dma.c
948
static void omap_dma_issue_pending(struct dma_chan *chan)
drivers/dma/ti/omap-dma.c
950
struct omap_chan *c = to_omap_dma_chan(chan);
drivers/dma/ti/omap-dma.c
960
struct dma_chan *chan, struct scatterlist *sgl, unsigned sglen,
drivers/dma/ti/omap-dma.c
963
struct omap_dmadev *od = to_omap_dma_dev(chan->device);
drivers/dma/ti/omap-dma.c
964
struct omap_chan *c = to_omap_dma_chan(chan);
drivers/dma/ti/omap-dma.c
985
dev_err(chan->device->dev, "%s: bad direction?\n", __func__);
drivers/dma/timb_dma.c
100
return chan2dev(chan)->parent->parent;
drivers/dma/timb_dma.c
105
int id = td_chan->chan.chan_id;
drivers/dma/timb_dma.c
113
int id = td_chan->chan.chan_id;
drivers/dma/timb_dma.c
120
dev_dbg(chan2dev(&td_chan->chan), "Enabling irq: %d, IER: 0x%x\n", id,
drivers/dma/timb_dma.c
128
int id = td_chan->chan.chan_id;
drivers/dma/timb_dma.c
134
dev_dbg(chan2dev(&td_chan->chan), "Checking irq: %d, td: %p\n", id, td);
drivers/dma/timb_dma.c
149
dev_err(chan2dev(&td_chan->chan), "Too big sg element\n");
drivers/dma/timb_dma.c
155
dev_err(chan2dev(&td_chan->chan), "Incorrect length: %d\n",
drivers/dma/timb_dma.c
160
dev_dbg(chan2dev(&td_chan->chan), "desc: %p, addr: 0x%llx\n",
drivers/dma/timb_dma.c
183
dev_err(chan2dev(&td_chan->chan),
drivers/dma/timb_dma.c
191
dev_dbg(chan2dev(&td_chan->chan),
drivers/dma/timb_dma.c
193
td_chan, td_chan->chan.chan_id, td_chan->membase);
drivers/dma/timb_dma.c
233
dev_dbg(chan2dev(&td_chan->chan), "descriptor %u complete\n",
drivers/dma/timb_dma.c
287
dev_dbg(chan2dev(&td_chan->chan), "%s: started %u\n",
drivers/dma/timb_dma.c
298
struct timb_dma_chan *td_chan = container_of(txd->chan,
drivers/dma/timb_dma.c
299
struct timb_dma_chan, chan);
drivers/dma/timb_dma.c
306
dev_dbg(chan2dev(txd->chan), "%s: started %u\n", __func__,
drivers/dma/timb_dma.c
311
dev_dbg(chan2dev(txd->chan), "tx_submit: queued %u\n",
drivers/dma/timb_dma.c
324
struct dma_chan *chan = &td_chan->chan;
drivers/dma/timb_dma.c
338
dma_async_tx_descriptor_init(&td_desc->txd, chan);
drivers/dma/timb_dma.c
342
td_desc->txd.phys = dma_map_single(chan2dmadev(chan),
drivers/dma/timb_dma.c
345
err = dma_mapping_error(chan2dmadev(chan), td_desc->txd.phys);
drivers/dma/timb_dma.c
347
dev_err(chan2dev(chan), "DMA mapping error: %d\n", err);
drivers/dma/timb_dma.c
362
dev_dbg(chan2dev(td_desc->txd.chan), "Freeing desc: %p\n", td_desc);
drivers/dma/timb_dma.c
363
dma_unmap_single(chan2dmadev(td_desc->txd.chan), td_desc->txd.phys,
drivers/dma/timb_dma.c
373
dev_dbg(chan2dev(&td_chan->chan), "Putting desc: %p\n", td_desc);
drivers/dma/timb_dma.c
393
dev_dbg(chan2dev(&td_chan->chan), "desc %p not ACKed\n",
drivers/dma/timb_dma.c
401
static int td_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/timb_dma.c
404
container_of(chan, struct timb_dma_chan, chan);
drivers/dma/timb_dma.c
407
dev_dbg(chan2dev(chan), "%s: entry\n", __func__);
drivers/dma/timb_dma.c
416
dev_err(chan2dev(chan),
drivers/dma/timb_dma.c
426
dma_cookie_init(chan);
drivers/dma/timb_dma.c
432
static void td_free_chan_resources(struct dma_chan *chan)
drivers/dma/timb_dma.c
435
container_of(chan, struct timb_dma_chan, chan);
drivers/dma/timb_dma.c
439
dev_dbg(chan2dev(chan), "%s: Entry\n", __func__);
drivers/dma/timb_dma.c
450
dev_dbg(chan2dev(chan), "%s: Freeing desc: %p\n", __func__,
drivers/dma/timb_dma.c
456
static enum dma_status td_tx_status(struct dma_chan *chan, dma_cookie_t cookie,
drivers/dma/timb_dma.c
461
dev_dbg(chan2dev(chan), "%s: Entry\n", __func__);
drivers/dma/timb_dma.c
463
ret = dma_cookie_status(chan, cookie, txstate);
drivers/dma/timb_dma.c
465
dev_dbg(chan2dev(chan), "%s: exit, ret: %d\n", __func__, ret);
drivers/dma/timb_dma.c
470
static void td_issue_pending(struct dma_chan *chan)
drivers/dma/timb_dma.c
473
container_of(chan, struct timb_dma_chan, chan);
drivers/dma/timb_dma.c
475
dev_dbg(chan2dev(chan), "%s: Entry\n", __func__);
drivers/dma/timb_dma.c
489
static struct dma_async_tx_descriptor *td_prep_slave_sg(struct dma_chan *chan,
drivers/dma/timb_dma.c
495
container_of(chan, struct timb_dma_chan, chan);
drivers/dma/timb_dma.c
502
dev_err(chan2dev(chan), "%s: No SG list\n", __func__);
drivers/dma/timb_dma.c
508
dev_err(chan2dev(chan),
drivers/dma/timb_dma.c
515
dev_err(chan2dev(chan), "Not enough descriptors available\n");
drivers/dma/timb_dma.c
524
dev_err(chan2dev(chan), "No descriptor space\n");
drivers/dma/timb_dma.c
531
dev_err(chan2dev(chan), "Failed to update desc: %d\n",
drivers/dma/timb_dma.c
539
dma_sync_single_for_device(chan2dmadev(chan), td_desc->txd.phys,
drivers/dma/timb_dma.c
545
static int td_terminate_all(struct dma_chan *chan)
drivers/dma/timb_dma.c
548
container_of(chan, struct timb_dma_chan, chan);
drivers/dma/timb_dma.c
551
dev_dbg(chan2dev(chan), "%s: Entry\n", __func__);
drivers/dma/timb_dma.c
694
td_chan->chan.device = &td->dma;
drivers/dma/timb_dma.c
695
dma_cookie_init(&td_chan->chan);
drivers/dma/timb_dma.c
71
struct dma_chan chan;
drivers/dma/timb_dma.c
714
list_add_tail(&td_chan->chan.device_node, &td->dma.channels);
drivers/dma/timb_dma.c
94
static struct device *chan2dev(struct dma_chan *chan)
drivers/dma/timb_dma.c
96
return &chan->dev->device;
drivers/dma/timb_dma.c
98
static struct device *chan2dmadev(struct dma_chan *chan)
drivers/dma/txx9dmac.c
1005
if (chan->device->device_prep_dma_memcpy) {
drivers/dma/txx9dmac.c
1025
dev_info(chan2dev(chan),
drivers/dma/txx9dmac.c
1037
dev_dbg(chan2dev(chan),
drivers/dma/txx9dmac.c
1043
static void txx9dmac_free_chan_resources(struct dma_chan *chan)
drivers/dma/txx9dmac.c
1045
struct txx9dmac_chan *dc = to_txx9dmac_chan(chan);
drivers/dma/txx9dmac.c
1050
dev_dbg(chan2dev(chan), "free_chan_resources (descs allocated=%u)\n",
drivers/dma/txx9dmac.c
1064
dev_vdbg(chan2dev(chan), " freeing descriptor %p\n", desc);
drivers/dma/txx9dmac.c
1065
dma_unmap_single(chan2parent(chan), desc->txd.phys,
drivers/dma/txx9dmac.c
1070
dev_vdbg(chan2dev(chan), "free_chan_resources done\n");
drivers/dma/txx9dmac.c
1124
dc->ddev->chan[ch] = dc;
drivers/dma/txx9dmac.c
1125
dc->chan.device = &dc->dma;
drivers/dma/txx9dmac.c
1126
list_add_tail(&dc->chan.device_node, &dc->chan.device->channels);
drivers/dma/txx9dmac.c
1127
dma_cookie_init(&dc->chan);
drivers/dma/txx9dmac.c
1164
dc->ddev->chan[pdev->id % TXX9_DMA_MAX_NR_CHANNELS] = NULL;
drivers/dma/txx9dmac.c
129
static struct device *chan2dev(struct dma_chan *chan)
drivers/dma/txx9dmac.c
131
return &chan->dev->device;
drivers/dma/txx9dmac.c
133
static struct device *chan2parent(struct dma_chan *chan)
drivers/dma/txx9dmac.c
135
return chan->dev->device.parent;
drivers/dma/txx9dmac.c
19
static struct txx9dmac_chan *to_txx9dmac_chan(struct dma_chan *chan)
drivers/dma/txx9dmac.c
199
dma_async_tx_descriptor_init(&desc->txd, &dc->chan);
drivers/dma/txx9dmac.c
203
desc->txd.phys = dma_map_single(chan2parent(&dc->chan), &desc->hwdesc,
drivers/dma/txx9dmac.c
21
return container_of(chan, struct txx9dmac_chan, chan);
drivers/dma/txx9dmac.c
221
dev_dbg(chan2dev(&dc->chan), "desc %p not ACKed\n", desc);
drivers/dma/txx9dmac.c
226
dev_vdbg(chan2dev(&dc->chan), "scanned %u descriptors on freelist\n",
drivers/dma/txx9dmac.c
235
dev_err(chan2dev(&dc->chan),
drivers/dma/txx9dmac.c
248
dma_sync_single_for_cpu(chan2parent(&dc->chan),
drivers/dma/txx9dmac.c
251
dma_sync_single_for_cpu(chan2parent(&dc->chan),
drivers/dma/txx9dmac.c
270
dev_vdbg(chan2dev(&dc->chan),
drivers/dma/txx9dmac.c
274
dev_vdbg(chan2dev(&dc->chan), "moving desc %p to freelist\n",
drivers/dma/txx9dmac.c
286
dev_err(chan2dev(&dc->chan),
drivers/dma/txx9dmac.c
298
dev_err(chan2dev(&dc->chan),
drivers/dma/txx9dmac.c
333
struct txx9dmac_slave *ds = dc->chan.private;
drivers/dma/txx9dmac.c
336
dev_vdbg(chan2dev(&dc->chan), "dostart %u %p\n",
drivers/dma/txx9dmac.c
340
dev_err(chan2dev(&dc->chan),
drivers/dma/txx9dmac.c
405
dev_vdbg(chan2dev(&dc->chan), "descriptor %u %p complete\n",
drivers/dma/txx9dmac.c
435
dma_sync_single_for_device(chan2parent(&dc->chan),
drivers/dma/txx9dmac.c
472
dev_crit(chan2dev(&dc->chan),
drivers/dma/txx9dmac.c
476
dev_crit(chan2dev(&dc->chan),
drivers/dma/txx9dmac.c
485
dev_crit(chan2dev(&dc->chan),
drivers/dma/txx9dmac.c
489
dev_crit(chan2dev(&dc->chan),
drivers/dma/txx9dmac.c
509
dev_crit(chan2dev(&dc->chan), "Abnormal Chain Completion\n");
drivers/dma/txx9dmac.c
526
dev_crit(chan2dev(&dc->chan),
drivers/dma/txx9dmac.c
561
dev_vdbg(chan2dev(&dc->chan), "scan_descriptors: char=%#llx\n",
drivers/dma/txx9dmac.c
592
dev_err(chan2dev(&dc->chan),
drivers/dma/txx9dmac.c
612
dev_vdbg(chan2dev(&dc->chan), "tasklet: status=%x\n", csr);
drivers/dma/txx9dmac.c
628
dev_vdbg(chan2dev(&dc->chan), "interrupt: status=%#x\n",
drivers/dma/txx9dmac.c
652
dev_vdbg(ddev->chan[0]->dma.dev, "tasklet: mcr=%x\n", mcr);
drivers/dma/txx9dmac.c
655
dc = ddev->chan[i];
drivers/dma/txx9dmac.c
657
dev_vdbg(chan2dev(&dc->chan), "tasklet: status=%x\n",
drivers/dma/txx9dmac.c
675
dev_vdbg(ddev->chan[0]->dma.dev, "interrupt: status=%#x\n",
drivers/dma/txx9dmac.c
693
struct txx9dmac_chan *dc = to_txx9dmac_chan(tx->chan);
drivers/dma/txx9dmac.c
699
dev_vdbg(chan2dev(tx->chan), "tx_submit: queued %u %p\n",
drivers/dma/txx9dmac.c
709
txx9dmac_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dest, dma_addr_t src,
drivers/dma/txx9dmac.c
712
struct txx9dmac_chan *dc = to_txx9dmac_chan(chan);
drivers/dma/txx9dmac.c
720
dev_vdbg(chan2dev(chan), "prep_dma_memcpy d%#llx s%#llx l%#zx f%#lx\n",
drivers/dma/txx9dmac.c
724
dev_dbg(chan2dev(chan), "prep_dma_memcpy: length is zero!\n");
drivers/dma/txx9dmac.c
779
dma_sync_single_for_device(chan2parent(&dc->chan),
drivers/dma/txx9dmac.c
792
dma_sync_single_for_device(chan2parent(&dc->chan),
drivers/dma/txx9dmac.c
803
txx9dmac_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
drivers/dma/txx9dmac.c
807
struct txx9dmac_chan *dc = to_txx9dmac_chan(chan);
drivers/dma/txx9dmac.c
809
struct txx9dmac_slave *ds = chan->private;
drivers/dma/txx9dmac.c
815
dev_vdbg(chan2dev(chan), "prep_dma_slave\n");
drivers/dma/txx9dmac.c
873
dma_sync_single_for_device(chan2parent(&dc->chan),
drivers/dma/txx9dmac.c
887
dma_sync_single_for_device(chan2parent(&dc->chan),
drivers/dma/txx9dmac.c
897
static int txx9dmac_terminate_all(struct dma_chan *chan)
drivers/dma/txx9dmac.c
899
struct txx9dmac_chan *dc = to_txx9dmac_chan(chan);
drivers/dma/txx9dmac.c
903
dev_vdbg(chan2dev(chan), "terminate_all\n");
drivers/dma/txx9dmac.c
922
txx9dmac_tx_status(struct dma_chan *chan, dma_cookie_t cookie,
drivers/dma/txx9dmac.c
925
struct txx9dmac_chan *dc = to_txx9dmac_chan(chan);
drivers/dma/txx9dmac.c
928
ret = dma_cookie_status(chan, cookie, txstate);
drivers/dma/txx9dmac.c
936
return dma_cookie_status(chan, cookie, txstate);
drivers/dma/txx9dmac.c
950
dma_sync_single_for_device(chan2parent(&dc->chan),
drivers/dma/txx9dmac.c
960
static void txx9dmac_issue_pending(struct dma_chan *chan)
drivers/dma/txx9dmac.c
962
struct txx9dmac_chan *dc = to_txx9dmac_chan(chan);
drivers/dma/txx9dmac.c
984
static int txx9dmac_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/txx9dmac.c
986
struct txx9dmac_chan *dc = to_txx9dmac_chan(chan);
drivers/dma/txx9dmac.c
987
struct txx9dmac_slave *ds = chan->private;
drivers/dma/txx9dmac.c
991
dev_vdbg(chan2dev(chan), "alloc_chan_resources\n");
drivers/dma/txx9dmac.c
995
dev_dbg(chan2dev(chan), "DMA channel not idle?\n");
drivers/dma/txx9dmac.c
999
dma_cookie_init(chan);
drivers/dma/txx9dmac.h
161
struct dma_chan chan;
drivers/dma/txx9dmac.h
183
struct txx9dmac_chan *chan[TXX9_DMA_MAX_NR_CHANNELS];
drivers/dma/uniphier-mdmac.c
224
static void uniphier_mdmac_free_chan_resources(struct dma_chan *chan)
drivers/dma/uniphier-mdmac.c
226
vchan_free_chan_resources(to_virt_chan(chan));
drivers/dma/uniphier-mdmac.c
230
uniphier_mdmac_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
drivers/dma/uniphier-mdmac.c
235
struct virt_dma_chan *vc = to_virt_chan(chan);
drivers/dma/uniphier-mdmac.c
252
static int uniphier_mdmac_terminate_all(struct dma_chan *chan)
drivers/dma/uniphier-mdmac.c
254
struct virt_dma_chan *vc = to_virt_chan(chan);
drivers/dma/uniphier-mdmac.c
276
static void uniphier_mdmac_synchronize(struct dma_chan *chan)
drivers/dma/uniphier-mdmac.c
278
vchan_synchronize(to_virt_chan(chan));
drivers/dma/uniphier-mdmac.c
281
static enum dma_status uniphier_mdmac_tx_status(struct dma_chan *chan,
drivers/dma/uniphier-mdmac.c
293
stat = dma_cookie_status(chan, cookie, txstate);
drivers/dma/uniphier-mdmac.c
298
vc = to_virt_chan(chan);
drivers/dma/uniphier-mdmac.c
328
static void uniphier_mdmac_issue_pending(struct dma_chan *chan)
drivers/dma/uniphier-mdmac.c
330
struct virt_dma_chan *vc = to_virt_chan(chan);
drivers/dma/uniphier-mdmac.c
459
struct dma_chan *chan;
drivers/dma/uniphier-mdmac.c
469
list_for_each_entry(chan, &mdev->ddev.channels, device_node) {
drivers/dma/uniphier-mdmac.c
470
ret = dmaengine_terminate_sync(chan);
drivers/dma/uniphier-mdmac.c
477
chan->chan_id, ERR_PTR(ret));
drivers/dma/uniphier-mdmac.c
480
uniphier_mdmac_free_chan_resources(chan);
drivers/dma/uniphier-xdmac.c
275
static void uniphier_xdmac_free_chan_resources(struct dma_chan *chan)
drivers/dma/uniphier-xdmac.c
277
vchan_free_chan_resources(to_virt_chan(chan));
drivers/dma/uniphier-xdmac.c
281
uniphier_xdmac_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dst,
drivers/dma/uniphier-xdmac.c
284
struct virt_dma_chan *vc = to_virt_chan(chan);
drivers/dma/uniphier-xdmac.c
319
uniphier_xdmac_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
drivers/dma/uniphier-xdmac.c
324
struct virt_dma_chan *vc = to_virt_chan(chan);
drivers/dma/uniphier-xdmac.c
394
static int uniphier_xdmac_slave_config(struct dma_chan *chan,
drivers/dma/uniphier-xdmac.c
397
struct virt_dma_chan *vc = to_virt_chan(chan);
drivers/dma/uniphier-xdmac.c
405
static int uniphier_xdmac_terminate_all(struct dma_chan *chan)
drivers/dma/uniphier-xdmac.c
407
struct virt_dma_chan *vc = to_virt_chan(chan);
drivers/dma/uniphier-xdmac.c
430
static void uniphier_xdmac_synchronize(struct dma_chan *chan)
drivers/dma/uniphier-xdmac.c
432
vchan_synchronize(to_virt_chan(chan));
drivers/dma/uniphier-xdmac.c
435
static void uniphier_xdmac_issue_pending(struct dma_chan *chan)
drivers/dma/uniphier-xdmac.c
437
struct virt_dma_chan *vc = to_virt_chan(chan);
drivers/dma/uniphier-xdmac.c
478
return dma_get_slave_channel(&xdev->channels[chan_id].vc.chan);
drivers/dma/uniphier-xdmac.c
570
struct dma_chan *chan;
drivers/dma/uniphier-xdmac.c
580
list_for_each_entry(chan, &ddev->channels, device_node) {
drivers/dma/uniphier-xdmac.c
581
ret = dmaengine_terminate_sync(chan);
drivers/dma/uniphier-xdmac.c
588
chan->chan_id, ERR_PTR(ret));
drivers/dma/uniphier-xdmac.c
591
uniphier_xdmac_free_chan_resources(chan);
drivers/dma/virt-dma.c
125
dma_cookie_init(&vc->chan);
drivers/dma/virt-dma.c
136
vc->chan.device = dmadev;
drivers/dma/virt-dma.c
137
list_add_tail(&vc->chan.device_node, &dmadev->channels);
drivers/dma/virt-dma.c
21
struct virt_dma_chan *vc = to_virt_chan(tx->chan);
drivers/dma/virt-dma.c
32
dev_dbg(vc->chan.device->dev, "vchan %p: txd %p[%x]: submitted\n",
drivers/dma/virt-dma.c
51
struct virt_dma_chan *vc = to_virt_chan(tx->chan);
drivers/dma/virt-dma.c
59
dev_dbg(vc->chan.device->dev, "vchan %p: txd %p[%x]: freeing\n",
drivers/dma/virt-dma.h
105
dev_vdbg(vc->chan.device->dev, "txd %p[%x]: marked complete\n",
drivers/dma/virt-dma.h
118
struct virt_dma_chan *vc = to_virt_chan(vd->tx.chan);
drivers/dma/virt-dma.h
137
struct virt_dma_chan *vc = to_virt_chan(vd->tx.chan);
drivers/dma/virt-dma.h
151
struct virt_dma_chan *vc = to_virt_chan(vd->tx.chan);
drivers/dma/virt-dma.h
23
struct dma_chan chan;
drivers/dma/virt-dma.h
39
static inline struct virt_dma_chan *to_virt_chan(struct dma_chan *chan)
drivers/dma/virt-dma.h
41
return container_of(chan, struct virt_dma_chan, chan);
drivers/dma/virt-dma.h
61
dma_async_tx_descriptor_init(&vd->tx, &vc->chan);
drivers/dma/virt-dma.h
98
struct virt_dma_chan *vc = to_virt_chan(vd->tx.chan);
drivers/dma/xgene-dma.c
1006
tasklet_schedule(&chan->tasklet);
drivers/dma/xgene-dma.c
1135
static int xgene_dma_get_ring_size(struct xgene_dma_chan *chan,
drivers/dma/xgene-dma.c
1157
chan_err(chan, "Unsupported cfg ring size %d\n", cfgsize);
drivers/dma/xgene-dma.c
1177
static void xgene_dma_delete_chan_rings(struct xgene_dma_chan *chan)
drivers/dma/xgene-dma.c
1179
xgene_dma_delete_ring_one(&chan->rx_ring);
drivers/dma/xgene-dma.c
1180
xgene_dma_delete_ring_one(&chan->tx_ring);
drivers/dma/xgene-dma.c
1183
static int xgene_dma_create_ring_one(struct xgene_dma_chan *chan,
drivers/dma/xgene-dma.c
1190
ring->pdma = chan->pdma;
drivers/dma/xgene-dma.c
1192
ring->num = chan->pdma->ring_num++;
drivers/dma/xgene-dma.c
1195
ret = xgene_dma_get_ring_size(chan, cfgsize);
drivers/dma/xgene-dma.c
1201
ring->desc_vaddr = dma_alloc_coherent(chan->dev, ring->size,
drivers/dma/xgene-dma.c
1204
chan_err(chan, "Failed to allocate ring desc\n");
drivers/dma/xgene-dma.c
1215
static int xgene_dma_create_chan_rings(struct xgene_dma_chan *chan)
drivers/dma/xgene-dma.c
1217
struct xgene_dma_ring *rx_ring = &chan->rx_ring;
drivers/dma/xgene-dma.c
1218
struct xgene_dma_ring *tx_ring = &chan->tx_ring;
drivers/dma/xgene-dma.c
1223
rx_ring->buf_num = XGENE_DMA_CPU_BUFNUM + chan->id;
drivers/dma/xgene-dma.c
1225
ret = xgene_dma_create_ring_one(chan, rx_ring,
drivers/dma/xgene-dma.c
1230
chan_dbg(chan, "Rx ring id 0x%X num %d desc 0x%p\n",
drivers/dma/xgene-dma.c
1235
tx_ring->buf_num = XGENE_DMA_BUFNUM + chan->id;
drivers/dma/xgene-dma.c
1237
ret = xgene_dma_create_ring_one(chan, tx_ring,
drivers/dma/xgene-dma.c
1246
chan_dbg(chan,
drivers/dma/xgene-dma.c
1251
chan->max_outstanding = tx_ring->slots;
drivers/dma/xgene-dma.c
1261
ret = xgene_dma_create_chan_rings(&pdma->chan[i]);
drivers/dma/xgene-dma.c
1264
xgene_dma_delete_chan_rings(&pdma->chan[j]);
drivers/dma/xgene-dma.c
1432
struct xgene_dma_chan *chan;
drivers/dma/xgene-dma.c
1446
chan = &pdma->chan[i];
drivers/dma/xgene-dma.c
1447
irq_set_status_flags(chan->rx_irq, IRQ_DISABLE_UNLAZY);
drivers/dma/xgene-dma.c
1448
ret = devm_request_irq(chan->dev, chan->rx_irq,
drivers/dma/xgene-dma.c
1450
0, chan->name, chan);
drivers/dma/xgene-dma.c
1452
chan_err(chan, "Failed to register Rx IRQ %d\n",
drivers/dma/xgene-dma.c
1453
chan->rx_irq);
drivers/dma/xgene-dma.c
1457
chan = &pdma->chan[i];
drivers/dma/xgene-dma.c
1458
irq_clear_status_flags(chan->rx_irq, IRQ_DISABLE_UNLAZY);
drivers/dma/xgene-dma.c
1459
devm_free_irq(chan->dev, chan->rx_irq, chan);
drivers/dma/xgene-dma.c
1471
struct xgene_dma_chan *chan;
drivers/dma/xgene-dma.c
1478
chan = &pdma->chan[i];
drivers/dma/xgene-dma.c
1479
irq_clear_status_flags(chan->rx_irq, IRQ_DISABLE_UNLAZY);
drivers/dma/xgene-dma.c
1480
devm_free_irq(chan->dev, chan->rx_irq, chan);
drivers/dma/xgene-dma.c
1484
static void xgene_dma_set_caps(struct xgene_dma_chan *chan,
drivers/dma/xgene-dma.c
1501
if ((chan->id == XGENE_DMA_PQ_CHANNEL) &&
drivers/dma/xgene-dma.c
1502
is_pq_enabled(chan->pdma)) {
drivers/dma/xgene-dma.c
1505
} else if ((chan->id == XGENE_DMA_XOR_CHANNEL) &&
drivers/dma/xgene-dma.c
1506
!is_pq_enabled(chan->pdma)) {
drivers/dma/xgene-dma.c
1511
dma_dev->dev = chan->dev;
drivers/dma/xgene-dma.c
1532
struct xgene_dma_chan *chan = &pdma->chan[id];
drivers/dma/xgene-dma.c
1536
chan->dma_chan.device = dma_dev;
drivers/dma/xgene-dma.c
1538
spin_lock_init(&chan->lock);
drivers/dma/xgene-dma.c
1539
INIT_LIST_HEAD(&chan->ld_pending);
drivers/dma/xgene-dma.c
1540
INIT_LIST_HEAD(&chan->ld_running);
drivers/dma/xgene-dma.c
1541
INIT_LIST_HEAD(&chan->ld_completed);
drivers/dma/xgene-dma.c
1542
tasklet_setup(&chan->tasklet, xgene_dma_tasklet_cb);
drivers/dma/xgene-dma.c
1544
chan->pending = 0;
drivers/dma/xgene-dma.c
1545
chan->desc_pool = NULL;
drivers/dma/xgene-dma.c
1546
dma_cookie_init(&chan->dma_chan);
drivers/dma/xgene-dma.c
1549
xgene_dma_set_caps(chan, dma_dev);
drivers/dma/xgene-dma.c
1553
list_add_tail(&chan->dma_chan.device_node, &dma_dev->channels);
drivers/dma/xgene-dma.c
1558
chan_err(chan, "Failed to register async device %d", ret);
drivers/dma/xgene-dma.c
1559
tasklet_kill(&chan->tasklet);
drivers/dma/xgene-dma.c
1566
"%s: CAPABILITY ( %s%s)\n", dma_chan_name(&chan->dma_chan),
drivers/dma/xgene-dma.c
1582
tasklet_kill(&pdma->chan[j].tasklet);
drivers/dma/xgene-dma.c
1602
struct xgene_dma_chan *chan;
drivers/dma/xgene-dma.c
1608
chan = &pdma->chan[i];
drivers/dma/xgene-dma.c
1609
chan->dev = pdma->dev;
drivers/dma/xgene-dma.c
1610
chan->pdma = pdma;
drivers/dma/xgene-dma.c
1611
chan->id = i;
drivers/dma/xgene-dma.c
1612
snprintf(chan->name, sizeof(chan->name), "dmachan%d", chan->id);
drivers/dma/xgene-dma.c
1693
pdma->chan[i - 1].rx_irq = irq;
drivers/dma/xgene-dma.c
1768
xgene_dma_delete_chan_rings(&pdma->chan[i]);
drivers/dma/xgene-dma.c
1781
struct xgene_dma_chan *chan;
drivers/dma/xgene-dma.c
1792
chan = &pdma->chan[i];
drivers/dma/xgene-dma.c
1793
tasklet_kill(&chan->tasklet);
drivers/dma/xgene-dma.c
1794
xgene_dma_delete_chan_rings(chan);
drivers/dma/xgene-dma.c
193
#define chan_dbg(chan, fmt, arg...) \
drivers/dma/xgene-dma.c
194
dev_dbg(chan->dev, "%s: " fmt, chan->name, ##arg)
drivers/dma/xgene-dma.c
195
#define chan_err(chan, fmt, arg...) \
drivers/dma/xgene-dma.c
196
dev_err(chan->dev, "%s: " fmt, chan->name, ##arg)
drivers/dma/xgene-dma.c
311
struct xgene_dma_chan chan[XGENE_DMA_MAX_CHANNEL];
drivers/dma/xgene-dma.c
413
static void xgene_dma_prep_xor_desc(struct xgene_dma_chan *chan,
drivers/dma/xgene-dma.c
427
xgene_dma_init_desc(desc1, chan->tx_ring.dst_ring_num);
drivers/dma/xgene-dma.c
459
struct xgene_dma_chan *chan;
drivers/dma/xgene-dma.c
465
chan = to_dma_chan(tx->chan);
drivers/dma/xgene-dma.c
468
spin_lock_bh(&chan->lock);
drivers/dma/xgene-dma.c
473
list_splice_tail_init(&desc->tx_list, &chan->ld_pending);
drivers/dma/xgene-dma.c
475
spin_unlock_bh(&chan->lock);
drivers/dma/xgene-dma.c
480
static void xgene_dma_clean_descriptor(struct xgene_dma_chan *chan,
drivers/dma/xgene-dma.c
484
chan_dbg(chan, "LD %p free\n", desc);
drivers/dma/xgene-dma.c
485
dma_pool_free(chan->desc_pool, desc, desc->tx.phys);
drivers/dma/xgene-dma.c
489
struct xgene_dma_chan *chan)
drivers/dma/xgene-dma.c
494
desc = dma_pool_zalloc(chan->desc_pool, GFP_NOWAIT, &phys);
drivers/dma/xgene-dma.c
496
chan_err(chan, "Failed to allocate LDs\n");
drivers/dma/xgene-dma.c
503
dma_async_tx_descriptor_init(&desc->tx, &chan->dma_chan);
drivers/dma/xgene-dma.c
505
chan_dbg(chan, "LD %p allocated\n", desc);
drivers/dma/xgene-dma.c
517
static void xgene_dma_clean_completed_descriptor(struct xgene_dma_chan *chan)
drivers/dma/xgene-dma.c
522
list_for_each_entry_safe(desc, _desc, &chan->ld_completed, node) {
drivers/dma/xgene-dma.c
524
xgene_dma_clean_descriptor(chan, desc);
drivers/dma/xgene-dma.c
536
static void xgene_dma_run_tx_complete_actions(struct xgene_dma_chan *chan,
drivers/dma/xgene-dma.c
570
static void xgene_dma_clean_running_descriptor(struct xgene_dma_chan *chan,
drivers/dma/xgene-dma.c
585
list_add_tail(&desc->node, &chan->ld_completed);
drivers/dma/xgene-dma.c
589
chan_dbg(chan, "LD %p free\n", desc);
drivers/dma/xgene-dma.c
590
dma_pool_free(chan->desc_pool, desc, desc->tx.phys);
drivers/dma/xgene-dma.c
593
static void xgene_chan_xfer_request(struct xgene_dma_chan *chan,
drivers/dma/xgene-dma.c
596
struct xgene_dma_ring *ring = &chan->tx_ring;
drivers/dma/xgene-dma.c
626
chan->pending += ((desc_sw->flags &
drivers/dma/xgene-dma.c
640
static void xgene_chan_xfer_ld_pending(struct xgene_dma_chan *chan)
drivers/dma/xgene-dma.c
648
if (list_empty(&chan->ld_pending)) {
drivers/dma/xgene-dma.c
649
chan_dbg(chan, "No pending LDs\n");
drivers/dma/xgene-dma.c
657
list_for_each_entry_safe(desc_sw, _desc_sw, &chan->ld_pending, node) {
drivers/dma/xgene-dma.c
664
if (chan->pending >= chan->max_outstanding)
drivers/dma/xgene-dma.c
667
xgene_chan_xfer_request(chan, desc_sw);
drivers/dma/xgene-dma.c
673
list_move_tail(&desc_sw->node, &chan->ld_running);
drivers/dma/xgene-dma.c
686
static void xgene_dma_cleanup_descriptors(struct xgene_dma_chan *chan)
drivers/dma/xgene-dma.c
688
struct xgene_dma_ring *ring = &chan->rx_ring;
drivers/dma/xgene-dma.c
696
spin_lock(&chan->lock);
drivers/dma/xgene-dma.c
699
xgene_dma_clean_completed_descriptor(chan);
drivers/dma/xgene-dma.c
702
list_for_each_entry_safe(desc_sw, _desc_sw, &chan->ld_running, node) {
drivers/dma/xgene-dma.c
722
chan_err(chan, "%s\n", xgene_dma_desc_err[status]);
drivers/dma/xgene-dma.c
748
chan->pending -= ((desc_sw->flags &
drivers/dma/xgene-dma.c
763
xgene_chan_xfer_ld_pending(chan);
drivers/dma/xgene-dma.c
765
spin_unlock(&chan->lock);
drivers/dma/xgene-dma.c
769
xgene_dma_run_tx_complete_actions(chan, desc_sw);
drivers/dma/xgene-dma.c
770
xgene_dma_clean_running_descriptor(chan, desc_sw);
drivers/dma/xgene-dma.c
776
struct xgene_dma_chan *chan = to_dma_chan(dchan);
drivers/dma/xgene-dma.c
779
if (chan->desc_pool)
drivers/dma/xgene-dma.c
782
chan->desc_pool = dma_pool_create(chan->name, chan->dev,
drivers/dma/xgene-dma.c
785
if (!chan->desc_pool) {
drivers/dma/xgene-dma.c
786
chan_err(chan, "Failed to allocate descriptor pool\n");
drivers/dma/xgene-dma.c
790
chan_dbg(chan, "Allocate descriptor pool\n");
drivers/dma/xgene-dma.c
802
static void xgene_dma_free_desc_list(struct xgene_dma_chan *chan,
drivers/dma/xgene-dma.c
808
xgene_dma_clean_descriptor(chan, desc);
drivers/dma/xgene-dma.c
813
struct xgene_dma_chan *chan = to_dma_chan(dchan);
drivers/dma/xgene-dma.c
815
chan_dbg(chan, "Free all resources\n");
drivers/dma/xgene-dma.c
817
if (!chan->desc_pool)
drivers/dma/xgene-dma.c
821
xgene_dma_cleanup_descriptors(chan);
drivers/dma/xgene-dma.c
823
spin_lock_bh(&chan->lock);
drivers/dma/xgene-dma.c
826
xgene_dma_free_desc_list(chan, &chan->ld_pending);
drivers/dma/xgene-dma.c
827
xgene_dma_free_desc_list(chan, &chan->ld_running);
drivers/dma/xgene-dma.c
828
xgene_dma_free_desc_list(chan, &chan->ld_completed);
drivers/dma/xgene-dma.c
830
spin_unlock_bh(&chan->lock);
drivers/dma/xgene-dma.c
833
dma_pool_destroy(chan->desc_pool);
drivers/dma/xgene-dma.c
834
chan->desc_pool = NULL;
drivers/dma/xgene-dma.c
842
struct xgene_dma_chan *chan;
drivers/dma/xgene-dma.c
849
chan = to_dma_chan(dchan);
drivers/dma/xgene-dma.c
853
new = xgene_dma_alloc_descriptor(chan);
drivers/dma/xgene-dma.c
858
xgene_dma_prep_xor_desc(chan, new, &dst, src,
drivers/dma/xgene-dma.c
881
xgene_dma_free_desc_list(chan, &first->tx_list);
drivers/dma/xgene-dma.c
890
struct xgene_dma_chan *chan;
drivers/dma/xgene-dma.c
898
chan = to_dma_chan(dchan);
drivers/dma/xgene-dma.c
915
new = xgene_dma_alloc_descriptor(chan);
drivers/dma/xgene-dma.c
933
xgene_dma_prep_xor_desc(chan, new, &dst[0], src,
drivers/dma/xgene-dma.c
943
xgene_dma_prep_xor_desc(chan, new, &dst[1], _src,
drivers/dma/xgene-dma.c
958
xgene_dma_free_desc_list(chan, &first->tx_list);
drivers/dma/xgene-dma.c
964
struct xgene_dma_chan *chan = to_dma_chan(dchan);
drivers/dma/xgene-dma.c
966
spin_lock_bh(&chan->lock);
drivers/dma/xgene-dma.c
967
xgene_chan_xfer_ld_pending(chan);
drivers/dma/xgene-dma.c
968
spin_unlock_bh(&chan->lock);
drivers/dma/xgene-dma.c
980
struct xgene_dma_chan *chan = from_tasklet(chan, t, tasklet);
drivers/dma/xgene-dma.c
983
xgene_dma_cleanup_descriptors(chan);
drivers/dma/xgene-dma.c
986
enable_irq(chan->rx_irq);
drivers/dma/xgene-dma.c
991
struct xgene_dma_chan *chan = (struct xgene_dma_chan *)id;
drivers/dma/xgene-dma.c
993
BUG_ON(!chan);
drivers/dma/xgene-dma.c
999
disable_irq_nosync(chan->rx_irq);
drivers/dma/xilinx/xdma.c
1101
static bool xdma_filter_fn(struct dma_chan *chan, void *param)
drivers/dma/xilinx/xdma.c
1103
struct xdma_chan *xdma_chan = to_xdma_chan(chan);
drivers/dma/xilinx/xdma.c
209
static inline struct xdma_chan *to_xdma_chan(struct dma_chan *chan)
drivers/dma/xilinx/xdma.c
211
return container_of(chan, struct xdma_chan, vchan.chan);
drivers/dma/xilinx/xdma.c
223
static int xdma_channel_init(struct xdma_chan *chan)
drivers/dma/xilinx/xdma.c
225
struct xdma_device *xdev = chan->xdev_hdl;
drivers/dma/xilinx/xdma.c
228
ret = regmap_write(xdev->rmap, chan->base + XDMA_CHAN_CONTROL_W1C,
drivers/dma/xilinx/xdma.c
233
ret = regmap_write(xdev->rmap, chan->base + XDMA_CHAN_INTR_ENABLE,
drivers/dma/xilinx/xdma.c
254
dma_pool_free(sw_desc->chan->desc_pool,
drivers/dma/xilinx/xdma.c
269
xdma_alloc_desc(struct xdma_chan *chan, u32 desc_num, bool cyclic)
drivers/dma/xilinx/xdma.c
283
sw_desc->chan = chan;
drivers/dma/xilinx/xdma.c
300
addr = dma_pool_alloc(chan->desc_pool, GFP_NOWAIT, &dma_addr);
drivers/dma/xilinx/xdma.c
493
static void xdma_issue_pending(struct dma_chan *chan)
drivers/dma/xilinx/xdma.c
495
struct xdma_chan *xdma_chan = to_xdma_chan(chan);
drivers/dma/xilinx/xdma.c
508
static int xdma_terminate_all(struct dma_chan *chan)
drivers/dma/xilinx/xdma.c
510
struct xdma_chan *xdma_chan = to_xdma_chan(chan);
drivers/dma/xilinx/xdma.c
539
static void xdma_synchronize(struct dma_chan *chan)
drivers/dma/xilinx/xdma.c
541
struct xdma_chan *xdma_chan = to_xdma_chan(chan);
drivers/dma/xilinx/xdma.c
602
xdma_prep_device_sg(struct dma_chan *chan, struct scatterlist *sgl,
drivers/dma/xilinx/xdma.c
606
struct xdma_chan *xdma_chan = to_xdma_chan(chan);
drivers/dma/xilinx/xdma.c
660
xdma_prep_dma_cyclic(struct dma_chan *chan, dma_addr_t address,
drivers/dma/xilinx/xdma.c
665
struct xdma_chan *xdma_chan = to_xdma_chan(chan);
drivers/dma/xilinx/xdma.c
733
xdma_prep_interleaved_dma(struct dma_chan *chan,
drivers/dma/xilinx/xdma.c
740
struct xdma_chan *xchan = to_xdma_chan(chan);
drivers/dma/xilinx/xdma.c
782
static int xdma_device_config(struct dma_chan *chan,
drivers/dma/xilinx/xdma.c
785
struct xdma_chan *xdma_chan = to_xdma_chan(chan);
drivers/dma/xilinx/xdma.c
796
static void xdma_free_chan_resources(struct dma_chan *chan)
drivers/dma/xilinx/xdma.c
798
struct xdma_chan *xdma_chan = to_xdma_chan(chan);
drivers/dma/xilinx/xdma.c
809
static int xdma_alloc_chan_resources(struct dma_chan *chan)
drivers/dma/xilinx/xdma.c
811
struct xdma_chan *xdma_chan = to_xdma_chan(chan);
drivers/dma/xilinx/xdma.c
822
xdma_chan->desc_pool = dma_pool_create(dma_chan_name(chan), dev, XDMA_DESC_BLOCK_SIZE,
drivers/dma/xilinx/xdma.c
832
static enum dma_status xdma_tx_status(struct dma_chan *chan, dma_cookie_t cookie,
drivers/dma/xilinx/xdma.c
835
struct xdma_chan *xdma_chan = to_xdma_chan(chan);
drivers/dma/xilinx/xdma.c
843
ret = dma_cookie_status(chan, cookie, state);
drivers/dma/xilinx/xdma.c
97
struct xdma_chan *chan;
drivers/dma/xilinx/xilinx_dma.c
1000
residue += (cdma_hw->control & chan->xdev->max_buffer_len) -
drivers/dma/xilinx/xilinx_dma.c
1001
(cdma_hw->status & chan->xdev->max_buffer_len);
drivers/dma/xilinx/xilinx_dma.c
1002
} else if (chan->xdev->dma_config->dmatype ==
drivers/dma/xilinx/xilinx_dma.c
1008
residue += (axidma_hw->control & chan->xdev->max_buffer_len) -
drivers/dma/xilinx/xilinx_dma.c
1009
(axidma_hw->status & chan->xdev->max_buffer_len);
drivers/dma/xilinx/xilinx_dma.c
1017
(aximcdma_hw->control & chan->xdev->max_buffer_len) -
drivers/dma/xilinx/xilinx_dma.c
1018
(aximcdma_hw->status & chan->xdev->max_buffer_len);
drivers/dma/xilinx/xilinx_dma.c
1026
xilinx_dma_get_residue_axidma_direct_s2mm(struct xilinx_dma_chan *chan,
drivers/dma/xilinx/xilinx_dma.c
1033
finished_len = dma_ctrl_read(chan, XILINX_DMA_REG_BTT);
drivers/dma/xilinx/xilinx_dma.c
1049
static void xilinx_dma_chan_handle_cyclic(struct xilinx_dma_chan *chan,
drivers/dma/xilinx/xilinx_dma.c
1057
spin_unlock_irqrestore(&chan->lock, *flags);
drivers/dma/xilinx/xilinx_dma.c
1059
spin_lock_irqsave(&chan->lock, *flags);
drivers/dma/xilinx/xilinx_dma.c
1067
static void xilinx_dma_chan_desc_cleanup(struct xilinx_dma_chan *chan)
drivers/dma/xilinx/xilinx_dma.c
1072
spin_lock_irqsave(&chan->lock, flags);
drivers/dma/xilinx/xilinx_dma.c
1074
list_for_each_entry_safe(desc, next, &chan->done_list, node) {
drivers/dma/xilinx/xilinx_dma.c
1078
xilinx_dma_chan_handle_cyclic(chan, desc, &flags);
drivers/dma/xilinx/xilinx_dma.c
1086
if (chan->direction == DMA_DEV_TO_MEM)
drivers/dma/xilinx/xilinx_dma.c
1097
spin_unlock_irqrestore(&chan->lock, flags);
drivers/dma/xilinx/xilinx_dma.c
1099
spin_lock_irqsave(&chan->lock, flags);
drivers/dma/xilinx/xilinx_dma.c
1103
xilinx_dma_free_tx_descriptor(chan, desc);
drivers/dma/xilinx/xilinx_dma.c
1109
if (chan->terminating)
drivers/dma/xilinx/xilinx_dma.c
1113
spin_unlock_irqrestore(&chan->lock, flags);
drivers/dma/xilinx/xilinx_dma.c
1122
struct xilinx_dma_chan *chan = from_tasklet(chan, t, tasklet);
drivers/dma/xilinx/xilinx_dma.c
1124
xilinx_dma_chan_desc_cleanup(chan);
drivers/dma/xilinx/xilinx_dma.c
1135
struct xilinx_dma_chan *chan = to_xilinx_chan(dchan);
drivers/dma/xilinx/xilinx_dma.c
1139
if (chan->desc_pool)
drivers/dma/xilinx/xilinx_dma.c
1146
if (chan->xdev->dma_config->dmatype == XDMA_TYPE_AXIDMA) {
drivers/dma/xilinx/xilinx_dma.c
1148
chan->seg_v = dma_alloc_coherent(chan->dev,
drivers/dma/xilinx/xilinx_dma.c
1149
sizeof(*chan->seg_v) * XILINX_DMA_NUM_DESCS,
drivers/dma/xilinx/xilinx_dma.c
1150
&chan->seg_p, GFP_KERNEL);
drivers/dma/xilinx/xilinx_dma.c
1151
if (!chan->seg_v) {
drivers/dma/xilinx/xilinx_dma.c
1152
dev_err(chan->dev,
drivers/dma/xilinx/xilinx_dma.c
1154
chan->id);
drivers/dma/xilinx/xilinx_dma.c
1163
chan->cyclic_seg_v = dma_alloc_coherent(chan->dev,
drivers/dma/xilinx/xilinx_dma.c
1164
sizeof(*chan->cyclic_seg_v),
drivers/dma/xilinx/xilinx_dma.c
1165
&chan->cyclic_seg_p,
drivers/dma/xilinx/xilinx_dma.c
1167
if (!chan->cyclic_seg_v) {
drivers/dma/xilinx/xilinx_dma.c
1168
dev_err(chan->dev,
drivers/dma/xilinx/xilinx_dma.c
1170
dma_free_coherent(chan->dev, sizeof(*chan->seg_v) *
drivers/dma/xilinx/xilinx_dma.c
1171
XILINX_DMA_NUM_DESCS, chan->seg_v,
drivers/dma/xilinx/xilinx_dma.c
1172
chan->seg_p);
drivers/dma/xilinx/xilinx_dma.c
1175
chan->cyclic_seg_v->phys = chan->cyclic_seg_p;
drivers/dma/xilinx/xilinx_dma.c
1178
chan->seg_v[i].hw.next_desc =
drivers/dma/xilinx/xilinx_dma.c
1179
lower_32_bits(chan->seg_p + sizeof(*chan->seg_v) *
drivers/dma/xilinx/xilinx_dma.c
1181
chan->seg_v[i].hw.next_desc_msb =
drivers/dma/xilinx/xilinx_dma.c
1182
upper_32_bits(chan->seg_p + sizeof(*chan->seg_v) *
drivers/dma/xilinx/xilinx_dma.c
1184
chan->seg_v[i].phys = chan->seg_p +
drivers/dma/xilinx/xilinx_dma.c
1185
sizeof(*chan->seg_v) * i;
drivers/dma/xilinx/xilinx_dma.c
1186
list_add_tail(&chan->seg_v[i].node,
drivers/dma/xilinx/xilinx_dma.c
1187
&chan->free_seg_list);
drivers/dma/xilinx/xilinx_dma.c
1189
} else if (chan->xdev->dma_config->dmatype == XDMA_TYPE_AXIMCDMA) {
drivers/dma/xilinx/xilinx_dma.c
1191
chan->seg_mv = dma_alloc_coherent(chan->dev,
drivers/dma/xilinx/xilinx_dma.c
1192
sizeof(*chan->seg_mv) *
drivers/dma/xilinx/xilinx_dma.c
1194
&chan->seg_p, GFP_KERNEL);
drivers/dma/xilinx/xilinx_dma.c
1195
if (!chan->seg_mv) {
drivers/dma/xilinx/xilinx_dma.c
1196
dev_err(chan->dev,
drivers/dma/xilinx/xilinx_dma.c
1198
chan->id);
drivers/dma/xilinx/xilinx_dma.c
1202
chan->seg_mv[i].hw.next_desc =
drivers/dma/xilinx/xilinx_dma.c
1203
lower_32_bits(chan->seg_p + sizeof(*chan->seg_mv) *
drivers/dma/xilinx/xilinx_dma.c
1205
chan->seg_mv[i].hw.next_desc_msb =
drivers/dma/xilinx/xilinx_dma.c
1206
upper_32_bits(chan->seg_p + sizeof(*chan->seg_mv) *
drivers/dma/xilinx/xilinx_dma.c
1208
chan->seg_mv[i].phys = chan->seg_p +
drivers/dma/xilinx/xilinx_dma.c
1209
sizeof(*chan->seg_mv) * i;
drivers/dma/xilinx/xilinx_dma.c
1210
list_add_tail(&chan->seg_mv[i].node,
drivers/dma/xilinx/xilinx_dma.c
1211
&chan->free_seg_list);
drivers/dma/xilinx/xilinx_dma.c
1213
} else if (chan->xdev->dma_config->dmatype == XDMA_TYPE_CDMA) {
drivers/dma/xilinx/xilinx_dma.c
1214
chan->desc_pool = dma_pool_create("xilinx_cdma_desc_pool",
drivers/dma/xilinx/xilinx_dma.c
1215
chan->dev,
drivers/dma/xilinx/xilinx_dma.c
1220
chan->desc_pool = dma_pool_create("xilinx_vdma_desc_pool",
drivers/dma/xilinx/xilinx_dma.c
1221
chan->dev,
drivers/dma/xilinx/xilinx_dma.c
1227
if (!chan->desc_pool &&
drivers/dma/xilinx/xilinx_dma.c
1228
((chan->xdev->dma_config->dmatype != XDMA_TYPE_AXIDMA) &&
drivers/dma/xilinx/xilinx_dma.c
1229
chan->xdev->dma_config->dmatype != XDMA_TYPE_AXIMCDMA)) {
drivers/dma/xilinx/xilinx_dma.c
1230
dev_err(chan->dev,
drivers/dma/xilinx/xilinx_dma.c
1232
chan->id);
drivers/dma/xilinx/xilinx_dma.c
1238
if ((chan->xdev->dma_config->dmatype == XDMA_TYPE_CDMA) && chan->has_sg)
drivers/dma/xilinx/xilinx_dma.c
1239
dma_ctrl_set(chan, XILINX_DMA_REG_DMACR,
drivers/dma/xilinx/xilinx_dma.c
1253
static int xilinx_dma_calc_copysize(struct xilinx_dma_chan *chan,
drivers/dma/xilinx/xilinx_dma.c
1259
chan->xdev->max_buffer_len);
drivers/dma/xilinx/xilinx_dma.c
1262
chan->xdev->common.copy_align) {
drivers/dma/xilinx/xilinx_dma.c
1268
(1 << chan->xdev->common.copy_align));
drivers/dma/xilinx/xilinx_dma.c
1285
struct xilinx_dma_chan *chan = to_xilinx_chan(dchan);
drivers/dma/xilinx/xilinx_dma.c
1295
spin_lock_irqsave(&chan->lock, flags);
drivers/dma/xilinx/xilinx_dma.c
1296
if (!list_empty(&chan->active_list)) {
drivers/dma/xilinx/xilinx_dma.c
1297
desc = list_last_entry(&chan->active_list,
drivers/dma/xilinx/xilinx_dma.c
1303
if (chan->has_sg && chan->xdev->dma_config->dmatype != XDMA_TYPE_VDMA)
drivers/dma/xilinx/xilinx_dma.c
1304
residue = xilinx_dma_get_residue(chan, desc);
drivers/dma/xilinx/xilinx_dma.c
1306
spin_unlock_irqrestore(&chan->lock, flags);
drivers/dma/xilinx/xilinx_dma.c
1319
static int xilinx_dma_stop_transfer(struct xilinx_dma_chan *chan)
drivers/dma/xilinx/xilinx_dma.c
1323
dma_ctrl_clr(chan, XILINX_DMA_REG_DMACR, XILINX_DMA_DMACR_RUNSTOP);
drivers/dma/xilinx/xilinx_dma.c
1326
return xilinx_dma_poll_timeout(chan, XILINX_DMA_REG_DMASR, val,
drivers/dma/xilinx/xilinx_dma.c
1337
static int xilinx_cdma_stop_transfer(struct xilinx_dma_chan *chan)
drivers/dma/xilinx/xilinx_dma.c
1341
return xilinx_dma_poll_timeout(chan, XILINX_DMA_REG_DMASR, val,
drivers/dma/xilinx/xilinx_dma.c
1350
static void xilinx_dma_start(struct xilinx_dma_chan *chan)
drivers/dma/xilinx/xilinx_dma.c
1355
dma_ctrl_set(chan, XILINX_DMA_REG_DMACR, XILINX_DMA_DMACR_RUNSTOP);
drivers/dma/xilinx/xilinx_dma.c
1358
err = xilinx_dma_poll_timeout(chan, XILINX_DMA_REG_DMASR, val,
drivers/dma/xilinx/xilinx_dma.c
1363
dev_err(chan->dev, "Cannot start channel %p: %x\n",
drivers/dma/xilinx/xilinx_dma.c
1364
chan, dma_ctrl_read(chan, XILINX_DMA_REG_DMASR));
drivers/dma/xilinx/xilinx_dma.c
1366
chan->err = true;
drivers/dma/xilinx/xilinx_dma.c
1374
static void xilinx_vdma_start_transfer(struct xilinx_dma_chan *chan)
drivers/dma/xilinx/xilinx_dma.c
1376
struct xilinx_vdma_config *config = &chan->config;
drivers/dma/xilinx/xilinx_dma.c
1383
if (chan->err)
drivers/dma/xilinx/xilinx_dma.c
1386
if (!chan->idle)
drivers/dma/xilinx/xilinx_dma.c
1389
if (list_empty(&chan->pending_list))
drivers/dma/xilinx/xilinx_dma.c
1392
desc = list_first_entry(&chan->pending_list,
drivers/dma/xilinx/xilinx_dma.c
1396
if (chan->has_vflip) {
drivers/dma/xilinx/xilinx_dma.c
1397
reg = dma_read(chan, XILINX_VDMA_REG_ENABLE_VERTICAL_FLIP);
drivers/dma/xilinx/xilinx_dma.c
1400
dma_write(chan, XILINX_VDMA_REG_ENABLE_VERTICAL_FLIP,
drivers/dma/xilinx/xilinx_dma.c
1404
reg = dma_ctrl_read(chan, XILINX_DMA_REG_DMACR);
drivers/dma/xilinx/xilinx_dma.c
1417
dma_ctrl_write(chan, XILINX_DMA_REG_DMACR, reg);
drivers/dma/xilinx/xilinx_dma.c
1420
j = chan->desc_submitcount;
drivers/dma/xilinx/xilinx_dma.c
1421
reg = dma_read(chan, XILINX_DMA_REG_PARK_PTR);
drivers/dma/xilinx/xilinx_dma.c
1422
if (chan->direction == DMA_MEM_TO_DEV) {
drivers/dma/xilinx/xilinx_dma.c
1429
dma_write(chan, XILINX_DMA_REG_PARK_PTR, reg);
drivers/dma/xilinx/xilinx_dma.c
1433
xilinx_dma_start(chan);
drivers/dma/xilinx/xilinx_dma.c
1435
if (chan->err)
drivers/dma/xilinx/xilinx_dma.c
1439
if (chan->desc_submitcount < chan->num_frms)
drivers/dma/xilinx/xilinx_dma.c
1440
i = chan->desc_submitcount;
drivers/dma/xilinx/xilinx_dma.c
1443
if (chan->ext_addr)
drivers/dma/xilinx/xilinx_dma.c
1444
vdma_desc_write_64(chan,
drivers/dma/xilinx/xilinx_dma.c
1449
vdma_desc_write(chan,
drivers/dma/xilinx/xilinx_dma.c
1460
vdma_desc_write(chan, XILINX_DMA_REG_HSIZE, last->hw.hsize);
drivers/dma/xilinx/xilinx_dma.c
1461
vdma_desc_write(chan, XILINX_DMA_REG_FRMDLY_STRIDE,
drivers/dma/xilinx/xilinx_dma.c
1463
vdma_desc_write(chan, XILINX_DMA_REG_VSIZE, last->hw.vsize);
drivers/dma/xilinx/xilinx_dma.c
1465
chan->desc_submitcount++;
drivers/dma/xilinx/xilinx_dma.c
1466
chan->desc_pendingcount--;
drivers/dma/xilinx/xilinx_dma.c
1467
list_move_tail(&desc->node, &chan->active_list);
drivers/dma/xilinx/xilinx_dma.c
1468
if (chan->desc_submitcount == chan->num_frms)
drivers/dma/xilinx/xilinx_dma.c
1469
chan->desc_submitcount = 0;
drivers/dma/xilinx/xilinx_dma.c
1471
chan->idle = false;
drivers/dma/xilinx/xilinx_dma.c
1478
static void xilinx_cdma_start_transfer(struct xilinx_dma_chan *chan)
drivers/dma/xilinx/xilinx_dma.c
1482
u32 ctrl_reg = dma_read(chan, XILINX_DMA_REG_DMACR);
drivers/dma/xilinx/xilinx_dma.c
1484
if (chan->err)
drivers/dma/xilinx/xilinx_dma.c
1487
if (!chan->idle)
drivers/dma/xilinx/xilinx_dma.c
1490
if (list_empty(&chan->pending_list))
drivers/dma/xilinx/xilinx_dma.c
1493
head_desc = list_first_entry(&chan->pending_list,
drivers/dma/xilinx/xilinx_dma.c
1495
tail_desc = list_last_entry(&chan->pending_list,
drivers/dma/xilinx/xilinx_dma.c
1500
if (chan->desc_pendingcount <= XILINX_DMA_COALESCE_MAX) {
drivers/dma/xilinx/xilinx_dma.c
1502
ctrl_reg |= chan->desc_pendingcount <<
drivers/dma/xilinx/xilinx_dma.c
1504
dma_ctrl_write(chan, XILINX_DMA_REG_DMACR, ctrl_reg);
drivers/dma/xilinx/xilinx_dma.c
1507
if (chan->has_sg) {
drivers/dma/xilinx/xilinx_dma.c
1508
dma_ctrl_clr(chan, XILINX_DMA_REG_DMACR,
drivers/dma/xilinx/xilinx_dma.c
1511
dma_ctrl_set(chan, XILINX_DMA_REG_DMACR,
drivers/dma/xilinx/xilinx_dma.c
1514
xilinx_write(chan, XILINX_DMA_REG_CURDESC,
drivers/dma/xilinx/xilinx_dma.c
1518
xilinx_write(chan, XILINX_DMA_REG_TAILDESC,
drivers/dma/xilinx/xilinx_dma.c
1531
xilinx_write(chan, XILINX_CDMA_REG_SRCADDR,
drivers/dma/xilinx/xilinx_dma.c
1533
xilinx_write(chan, XILINX_CDMA_REG_DSTADDR,
drivers/dma/xilinx/xilinx_dma.c
1537
dma_ctrl_write(chan, XILINX_DMA_REG_BTT,
drivers/dma/xilinx/xilinx_dma.c
1538
hw->control & chan->xdev->max_buffer_len);
drivers/dma/xilinx/xilinx_dma.c
1541
list_splice_tail_init(&chan->pending_list, &chan->active_list);
drivers/dma/xilinx/xilinx_dma.c
1542
chan->desc_pendingcount = 0;
drivers/dma/xilinx/xilinx_dma.c
1543
chan->idle = false;
drivers/dma/xilinx/xilinx_dma.c
1550
static void xilinx_dma_start_transfer(struct xilinx_dma_chan *chan)
drivers/dma/xilinx/xilinx_dma.c
1556
if (chan->err)
drivers/dma/xilinx/xilinx_dma.c
1559
if (list_empty(&chan->pending_list)) {
drivers/dma/xilinx/xilinx_dma.c
1560
if (chan->cyclic) {
drivers/dma/xilinx/xilinx_dma.c
1564
desc = list_last_entry(&chan->done_list,
drivers/dma/xilinx/xilinx_dma.c
1576
list_splice_tail_init(&chan->done_list, &chan->active_list);
drivers/dma/xilinx/xilinx_dma.c
1577
chan->desc_pendingcount = 0;
drivers/dma/xilinx/xilinx_dma.c
1578
chan->idle = false;
drivers/dma/xilinx/xilinx_dma.c
1583
if (!chan->idle)
drivers/dma/xilinx/xilinx_dma.c
1586
head_desc = list_first_entry(&chan->pending_list,
drivers/dma/xilinx/xilinx_dma.c
1588
tail_desc = list_last_entry(&chan->pending_list,
drivers/dma/xilinx/xilinx_dma.c
1593
reg = dma_ctrl_read(chan, XILINX_DMA_REG_DMACR);
drivers/dma/xilinx/xilinx_dma.c
1595
if (chan->desc_pendingcount <= XILINX_DMA_COALESCE_MAX) {
drivers/dma/xilinx/xilinx_dma.c
1597
reg |= chan->desc_pendingcount <<
drivers/dma/xilinx/xilinx_dma.c
1599
dma_ctrl_write(chan, XILINX_DMA_REG_DMACR, reg);
drivers/dma/xilinx/xilinx_dma.c
1602
if (chan->has_sg)
drivers/dma/xilinx/xilinx_dma.c
1603
xilinx_write(chan, XILINX_DMA_REG_CURDESC,
drivers/dma/xilinx/xilinx_dma.c
1606
reg |= chan->irq_delay << XILINX_DMA_CR_DELAY_SHIFT;
drivers/dma/xilinx/xilinx_dma.c
1608
dma_ctrl_write(chan, XILINX_DMA_REG_DMACR, reg);
drivers/dma/xilinx/xilinx_dma.c
1610
xilinx_dma_start(chan);
drivers/dma/xilinx/xilinx_dma.c
1612
if (chan->err)
drivers/dma/xilinx/xilinx_dma.c
1616
if (chan->has_sg) {
drivers/dma/xilinx/xilinx_dma.c
1617
if (chan->cyclic)
drivers/dma/xilinx/xilinx_dma.c
1618
xilinx_write(chan, XILINX_DMA_REG_TAILDESC,
drivers/dma/xilinx/xilinx_dma.c
1619
chan->cyclic_seg_v->phys);
drivers/dma/xilinx/xilinx_dma.c
1621
xilinx_write(chan, XILINX_DMA_REG_TAILDESC,
drivers/dma/xilinx/xilinx_dma.c
1632
xilinx_write(chan, XILINX_DMA_REG_SRCDSTADDR,
drivers/dma/xilinx/xilinx_dma.c
1636
dma_ctrl_write(chan, XILINX_DMA_REG_BTT,
drivers/dma/xilinx/xilinx_dma.c
1637
hw->control & chan->xdev->max_buffer_len);
drivers/dma/xilinx/xilinx_dma.c
1640
list_splice_tail_init(&chan->pending_list, &chan->active_list);
drivers/dma/xilinx/xilinx_dma.c
1641
chan->desc_pendingcount = 0;
drivers/dma/xilinx/xilinx_dma.c
1642
chan->idle = false;
drivers/dma/xilinx/xilinx_dma.c
1649
static void xilinx_mcdma_start_transfer(struct xilinx_dma_chan *chan)
drivers/dma/xilinx/xilinx_dma.c
1660
if (chan->err)
drivers/dma/xilinx/xilinx_dma.c
1663
if (!chan->idle)
drivers/dma/xilinx/xilinx_dma.c
1666
if (list_empty(&chan->pending_list))
drivers/dma/xilinx/xilinx_dma.c
1669
head_desc = list_first_entry(&chan->pending_list,
drivers/dma/xilinx/xilinx_dma.c
1671
tail_desc = list_last_entry(&chan->pending_list,
drivers/dma/xilinx/xilinx_dma.c
1676
reg = dma_ctrl_read(chan, XILINX_MCDMA_CHAN_CR_OFFSET(chan->tdest));
drivers/dma/xilinx/xilinx_dma.c
1678
if (chan->desc_pendingcount <= XILINX_MCDMA_COALESCE_MAX) {
drivers/dma/xilinx/xilinx_dma.c
1680
reg |= chan->desc_pendingcount <<
drivers/dma/xilinx/xilinx_dma.c
1685
dma_ctrl_write(chan, XILINX_MCDMA_CHAN_CR_OFFSET(chan->tdest), reg);
drivers/dma/xilinx/xilinx_dma.c
1688
xilinx_write(chan, XILINX_MCDMA_CHAN_CDESC_OFFSET(chan->tdest),
drivers/dma/xilinx/xilinx_dma.c
1692
reg = dma_ctrl_read(chan, XILINX_MCDMA_CHEN_OFFSET);
drivers/dma/xilinx/xilinx_dma.c
1693
reg |= BIT(chan->tdest);
drivers/dma/xilinx/xilinx_dma.c
1694
dma_ctrl_write(chan, XILINX_MCDMA_CHEN_OFFSET, reg);
drivers/dma/xilinx/xilinx_dma.c
1697
reg = dma_ctrl_read(chan, XILINX_MCDMA_CHAN_CR_OFFSET(chan->tdest));
drivers/dma/xilinx/xilinx_dma.c
1699
dma_ctrl_write(chan, XILINX_MCDMA_CHAN_CR_OFFSET(chan->tdest), reg);
drivers/dma/xilinx/xilinx_dma.c
1701
xilinx_dma_start(chan);
drivers/dma/xilinx/xilinx_dma.c
1703
if (chan->err)
drivers/dma/xilinx/xilinx_dma.c
1707
xilinx_write(chan, XILINX_MCDMA_CHAN_TDESC_OFFSET(chan->tdest),
drivers/dma/xilinx/xilinx_dma.c
1710
list_splice_tail_init(&chan->pending_list, &chan->active_list);
drivers/dma/xilinx/xilinx_dma.c
1711
chan->desc_pendingcount = 0;
drivers/dma/xilinx/xilinx_dma.c
1712
chan->idle = false;
drivers/dma/xilinx/xilinx_dma.c
1721
struct xilinx_dma_chan *chan = to_xilinx_chan(dchan);
drivers/dma/xilinx/xilinx_dma.c
1724
spin_lock_irqsave(&chan->lock, flags);
drivers/dma/xilinx/xilinx_dma.c
1725
chan->start_transfer(chan);
drivers/dma/xilinx/xilinx_dma.c
1726
spin_unlock_irqrestore(&chan->lock, flags);
drivers/dma/xilinx/xilinx_dma.c
1748
static void xilinx_dma_complete_descriptor(struct xilinx_dma_chan *chan)
drivers/dma/xilinx/xilinx_dma.c
1753
if (list_empty(&chan->active_list))
drivers/dma/xilinx/xilinx_dma.c
1756
list_for_each_entry_safe(desc, next, &chan->active_list, node) {
drivers/dma/xilinx/xilinx_dma.c
1757
if (chan->xdev->dma_config->dmatype == XDMA_TYPE_AXIDMA) {
drivers/dma/xilinx/xilinx_dma.c
1762
if (!(seg->hw.status & XILINX_DMA_BD_COMP_MASK) && chan->has_sg)
drivers/dma/xilinx/xilinx_dma.c
1765
if (chan->has_sg && chan->xdev->dma_config->dmatype !=
drivers/dma/xilinx/xilinx_dma.c
1767
desc->residue = xilinx_dma_get_residue(chan, desc);
drivers/dma/xilinx/xilinx_dma.c
1768
else if (chan->xdev->dma_config->dmatype == XDMA_TYPE_AXIDMA &&
drivers/dma/xilinx/xilinx_dma.c
1769
chan->direction == DMA_DEV_TO_MEM && !chan->has_sg)
drivers/dma/xilinx/xilinx_dma.c
1770
desc->residue = xilinx_dma_get_residue_axidma_direct_s2mm(chan, desc);
drivers/dma/xilinx/xilinx_dma.c
1773
desc->err = chan->err;
drivers/dma/xilinx/xilinx_dma.c
1778
list_add_tail(&desc->node, &chan->done_list);
drivers/dma/xilinx/xilinx_dma.c
1788
static int xilinx_dma_reset(struct xilinx_dma_chan *chan)
drivers/dma/xilinx/xilinx_dma.c
1793
dma_ctrl_set(chan, XILINX_DMA_REG_DMACR, XILINX_DMA_DMACR_RESET);
drivers/dma/xilinx/xilinx_dma.c
1796
err = xilinx_dma_poll_timeout(chan, XILINX_DMA_REG_DMACR, tmp,
drivers/dma/xilinx/xilinx_dma.c
1801
dev_err(chan->dev, "reset timeout, cr %x, sr %x\n",
drivers/dma/xilinx/xilinx_dma.c
1802
dma_ctrl_read(chan, XILINX_DMA_REG_DMACR),
drivers/dma/xilinx/xilinx_dma.c
1803
dma_ctrl_read(chan, XILINX_DMA_REG_DMASR));
drivers/dma/xilinx/xilinx_dma.c
1807
chan->err = false;
drivers/dma/xilinx/xilinx_dma.c
1808
chan->idle = true;
drivers/dma/xilinx/xilinx_dma.c
1809
chan->desc_pendingcount = 0;
drivers/dma/xilinx/xilinx_dma.c
1810
chan->desc_submitcount = 0;
drivers/dma/xilinx/xilinx_dma.c
1821
static int xilinx_dma_chan_reset(struct xilinx_dma_chan *chan)
drivers/dma/xilinx/xilinx_dma.c
1826
err = xilinx_dma_reset(chan);
drivers/dma/xilinx/xilinx_dma.c
1831
dma_ctrl_set(chan, XILINX_DMA_REG_DMACR,
drivers/dma/xilinx/xilinx_dma.c
1846
struct xilinx_dma_chan *chan = data;
drivers/dma/xilinx/xilinx_dma.c
1849
if (chan->direction == DMA_DEV_TO_MEM)
drivers/dma/xilinx/xilinx_dma.c
1855
chan_sermask = dma_ctrl_read(chan, ser_offset);
drivers/dma/xilinx/xilinx_dma.c
1861
if (chan->direction == DMA_DEV_TO_MEM)
drivers/dma/xilinx/xilinx_dma.c
1862
chan_offset = chan->xdev->dma_config->max_channels / 2;
drivers/dma/xilinx/xilinx_dma.c
1865
chan = chan->xdev->chan[chan_offset];
drivers/dma/xilinx/xilinx_dma.c
1867
status = dma_ctrl_read(chan, XILINX_MCDMA_CHAN_SR_OFFSET(chan->tdest));
drivers/dma/xilinx/xilinx_dma.c
1871
dma_ctrl_write(chan, XILINX_MCDMA_CHAN_SR_OFFSET(chan->tdest),
drivers/dma/xilinx/xilinx_dma.c
1875
dev_err(chan->dev, "Channel %p has errors %x cdr %x tdr %x\n",
drivers/dma/xilinx/xilinx_dma.c
1876
chan,
drivers/dma/xilinx/xilinx_dma.c
1877
dma_ctrl_read(chan, XILINX_MCDMA_CH_ERR_OFFSET),
drivers/dma/xilinx/xilinx_dma.c
1878
dma_ctrl_read(chan, XILINX_MCDMA_CHAN_CDESC_OFFSET
drivers/dma/xilinx/xilinx_dma.c
1879
(chan->tdest)),
drivers/dma/xilinx/xilinx_dma.c
1880
dma_ctrl_read(chan, XILINX_MCDMA_CHAN_TDESC_OFFSET
drivers/dma/xilinx/xilinx_dma.c
1881
(chan->tdest)));
drivers/dma/xilinx/xilinx_dma.c
1882
chan->err = true;
drivers/dma/xilinx/xilinx_dma.c
1890
dev_dbg(chan->dev, "Inter-packet latency too long\n");
drivers/dma/xilinx/xilinx_dma.c
1894
spin_lock(&chan->lock);
drivers/dma/xilinx/xilinx_dma.c
1895
xilinx_dma_complete_descriptor(chan);
drivers/dma/xilinx/xilinx_dma.c
1896
chan->idle = true;
drivers/dma/xilinx/xilinx_dma.c
1897
chan->start_transfer(chan);
drivers/dma/xilinx/xilinx_dma.c
1898
spin_unlock(&chan->lock);
drivers/dma/xilinx/xilinx_dma.c
1901
tasklet_hi_schedule(&chan->tasklet);
drivers/dma/xilinx/xilinx_dma.c
1914
struct xilinx_dma_chan *chan = data;
drivers/dma/xilinx/xilinx_dma.c
1918
status = dma_ctrl_read(chan, XILINX_DMA_REG_DMASR);
drivers/dma/xilinx/xilinx_dma.c
1922
dma_ctrl_write(chan, XILINX_DMA_REG_DMASR,
drivers/dma/xilinx/xilinx_dma.c
1935
dma_ctrl_write(chan, XILINX_DMA_REG_DMASR,
drivers/dma/xilinx/xilinx_dma.c
1938
if (!chan->flush_on_fsync ||
drivers/dma/xilinx/xilinx_dma.c
1940
dev_err(chan->dev,
drivers/dma/xilinx/xilinx_dma.c
1942
chan, errors,
drivers/dma/xilinx/xilinx_dma.c
1943
dma_ctrl_read(chan, XILINX_DMA_REG_CURDESC),
drivers/dma/xilinx/xilinx_dma.c
1944
dma_ctrl_read(chan, XILINX_DMA_REG_TAILDESC));
drivers/dma/xilinx/xilinx_dma.c
1945
chan->err = true;
drivers/dma/xilinx/xilinx_dma.c
1951
spin_lock(&chan->lock);
drivers/dma/xilinx/xilinx_dma.c
1952
xilinx_dma_complete_descriptor(chan);
drivers/dma/xilinx/xilinx_dma.c
1953
chan->idle = true;
drivers/dma/xilinx/xilinx_dma.c
1954
chan->start_transfer(chan);
drivers/dma/xilinx/xilinx_dma.c
1955
spin_unlock(&chan->lock);
drivers/dma/xilinx/xilinx_dma.c
1958
tasklet_schedule(&chan->tasklet);
drivers/dma/xilinx/xilinx_dma.c
1967
static void append_desc_queue(struct xilinx_dma_chan *chan,
drivers/dma/xilinx/xilinx_dma.c
1976
if (list_empty(&chan->pending_list))
drivers/dma/xilinx/xilinx_dma.c
1983
tail_desc = list_last_entry(&chan->pending_list,
drivers/dma/xilinx/xilinx_dma.c
1985
if (chan->xdev->dma_config->dmatype == XDMA_TYPE_VDMA) {
drivers/dma/xilinx/xilinx_dma.c
1990
} else if (chan->xdev->dma_config->dmatype == XDMA_TYPE_CDMA) {
drivers/dma/xilinx/xilinx_dma.c
1995
} else if (chan->xdev->dma_config->dmatype == XDMA_TYPE_AXIDMA) {
drivers/dma/xilinx/xilinx_dma.c
2013
list_add_tail(&desc->node, &chan->pending_list);
drivers/dma/xilinx/xilinx_dma.c
2014
chan->desc_pendingcount++;
drivers/dma/xilinx/xilinx_dma.c
2016
if (chan->has_sg && (chan->xdev->dma_config->dmatype == XDMA_TYPE_VDMA)
drivers/dma/xilinx/xilinx_dma.c
2017
&& unlikely(chan->desc_pendingcount > chan->num_frms)) {
drivers/dma/xilinx/xilinx_dma.c
2018
dev_dbg(chan->dev, "desc pendingcount is too high\n");
drivers/dma/xilinx/xilinx_dma.c
2019
chan->desc_pendingcount = chan->num_frms;
drivers/dma/xilinx/xilinx_dma.c
2032
struct xilinx_dma_chan *chan = to_xilinx_chan(tx->chan);
drivers/dma/xilinx/xilinx_dma.c
2037
if (chan->cyclic) {
drivers/dma/xilinx/xilinx_dma.c
2038
xilinx_dma_free_tx_descriptor(chan, desc);
drivers/dma/xilinx/xilinx_dma.c
2042
if (chan->err) {
drivers/dma/xilinx/xilinx_dma.c
2047
err = xilinx_dma_chan_reset(chan);
drivers/dma/xilinx/xilinx_dma.c
2052
spin_lock_irqsave(&chan->lock, flags);
drivers/dma/xilinx/xilinx_dma.c
2057
append_desc_queue(chan, desc);
drivers/dma/xilinx/xilinx_dma.c
2060
chan->cyclic = true;
drivers/dma/xilinx/xilinx_dma.c
2062
chan->terminating = false;
drivers/dma/xilinx/xilinx_dma.c
2064
spin_unlock_irqrestore(&chan->lock, flags);
drivers/dma/xilinx/xilinx_dma.c
2083
struct xilinx_dma_chan *chan = to_xilinx_chan(dchan);
drivers/dma/xilinx/xilinx_dma.c
2102
desc = xilinx_dma_alloc_tx_descriptor(chan);
drivers/dma/xilinx/xilinx_dma.c
2106
dma_async_tx_descriptor_init(&desc->async_tx, &chan->common);
drivers/dma/xilinx/xilinx_dma.c
2111
segment = xilinx_vdma_alloc_tx_segment(chan);
drivers/dma/xilinx/xilinx_dma.c
2121
hw->stride |= chan->config.frm_dly <<
drivers/dma/xilinx/xilinx_dma.c
2125
if (chan->ext_addr) {
drivers/dma/xilinx/xilinx_dma.c
2132
if (chan->ext_addr) {
drivers/dma/xilinx/xilinx_dma.c
2151
xilinx_dma_free_tx_descriptor(chan, desc);
drivers/dma/xilinx/xilinx_dma.c
2169
struct xilinx_dma_chan *chan = to_xilinx_chan(dchan);
drivers/dma/xilinx/xilinx_dma.c
2174
if (!len || len > chan->xdev->max_buffer_len)
drivers/dma/xilinx/xilinx_dma.c
2177
desc = xilinx_dma_alloc_tx_descriptor(chan);
drivers/dma/xilinx/xilinx_dma.c
2181
dma_async_tx_descriptor_init(&desc->async_tx, &chan->common);
drivers/dma/xilinx/xilinx_dma.c
2185
segment = xilinx_cdma_alloc_tx_segment(chan);
drivers/dma/xilinx/xilinx_dma.c
2193
if (chan->ext_addr) {
drivers/dma/xilinx/xilinx_dma.c
2207
xilinx_dma_free_tx_descriptor(chan, desc);
drivers/dma/xilinx/xilinx_dma.c
2226
struct xilinx_dma_chan *chan = to_xilinx_chan(dchan);
drivers/dma/xilinx/xilinx_dma.c
2233
if (!is_slave_direction(direction) || direction != chan->direction)
drivers/dma/xilinx/xilinx_dma.c
2236
desc = xilinx_dma_alloc_tx_descriptor(chan);
drivers/dma/xilinx/xilinx_dma.c
2240
dma_async_tx_descriptor_init(&desc->async_tx, &chan->common);
drivers/dma/xilinx/xilinx_dma.c
2252
segment = xilinx_axidma_alloc_tx_segment(chan);
drivers/dma/xilinx/xilinx_dma.c
2260
copy = xilinx_dma_calc_copysize(chan, vecs[i].len,
drivers/dma/xilinx/xilinx_dma.c
2265
xilinx_axidma_buf(chan, hw, vecs[i].addr, sg_used, 0);
drivers/dma/xilinx/xilinx_dma.c
2286
if (chan->direction == DMA_MEM_TO_DEV) {
drivers/dma/xilinx/xilinx_dma.c
2294
if (chan->xdev->has_axistream_connected)
drivers/dma/xilinx/xilinx_dma.c
2300
xilinx_dma_free_tx_descriptor(chan, desc);
drivers/dma/xilinx/xilinx_dma.c
2320
struct xilinx_dma_chan *chan = to_xilinx_chan(dchan);
drivers/dma/xilinx/xilinx_dma.c
2333
desc = xilinx_dma_alloc_tx_descriptor(chan);
drivers/dma/xilinx/xilinx_dma.c
2337
dma_async_tx_descriptor_init(&desc->async_tx, &chan->common);
drivers/dma/xilinx/xilinx_dma.c
2349
segment = xilinx_axidma_alloc_tx_segment(chan);
drivers/dma/xilinx/xilinx_dma.c
2357
copy = xilinx_dma_calc_copysize(chan, sg_dma_len(sg),
drivers/dma/xilinx/xilinx_dma.c
2362
xilinx_axidma_buf(chan, hw, sg_dma_address(sg),
drivers/dma/xilinx/xilinx_dma.c
2367
if (chan->direction == DMA_MEM_TO_DEV) {
drivers/dma/xilinx/xilinx_dma.c
2388
if (chan->direction == DMA_MEM_TO_DEV) {
drivers/dma/xilinx/xilinx_dma.c
2396
if (chan->xdev->has_axistream_connected)
drivers/dma/xilinx/xilinx_dma.c
2402
xilinx_dma_free_tx_descriptor(chan, desc);
drivers/dma/xilinx/xilinx_dma.c
2422
struct xilinx_dma_chan *chan = to_xilinx_chan(dchan);
drivers/dma/xilinx/xilinx_dma.c
2442
desc = xilinx_dma_alloc_tx_descriptor(chan);
drivers/dma/xilinx/xilinx_dma.c
2446
chan->direction = direction;
drivers/dma/xilinx/xilinx_dma.c
2447
dma_async_tx_descriptor_init(&desc->async_tx, &chan->common);
drivers/dma/xilinx/xilinx_dma.c
2457
segment = xilinx_axidma_alloc_tx_segment(chan);
drivers/dma/xilinx/xilinx_dma.c
2465
copy = xilinx_dma_calc_copysize(chan, period_len,
drivers/dma/xilinx/xilinx_dma.c
2468
xilinx_axidma_buf(chan, hw, buf_addr, sg_used,
drivers/dma/xilinx/xilinx_dma.c
2491
reg = dma_ctrl_read(chan, XILINX_DMA_REG_DMACR);
drivers/dma/xilinx/xilinx_dma.c
2493
dma_ctrl_write(chan, XILINX_DMA_REG_DMACR, reg);
drivers/dma/xilinx/xilinx_dma.c
2509
xilinx_dma_free_tx_descriptor(chan, desc);
drivers/dma/xilinx/xilinx_dma.c
2530
struct xilinx_dma_chan *chan = to_xilinx_chan(dchan);
drivers/dma/xilinx/xilinx_dma.c
2543
desc = xilinx_dma_alloc_tx_descriptor(chan);
drivers/dma/xilinx/xilinx_dma.c
2547
dma_async_tx_descriptor_init(&desc->async_tx, &chan->common);
drivers/dma/xilinx/xilinx_dma.c
2559
segment = xilinx_aximcdma_alloc_tx_segment(chan);
drivers/dma/xilinx/xilinx_dma.c
2568
chan->xdev->max_buffer_len);
drivers/dma/xilinx/xilinx_dma.c
2572
xilinx_aximcdma_buf(chan, hw, sg_dma_address(sg),
drivers/dma/xilinx/xilinx_dma.c
2576
if (chan->direction == DMA_MEM_TO_DEV && app_w) {
drivers/dma/xilinx/xilinx_dma.c
2595
if (chan->direction == DMA_MEM_TO_DEV) {
drivers/dma/xilinx/xilinx_dma.c
2606
xilinx_dma_free_tx_descriptor(chan, desc);
drivers/dma/xilinx/xilinx_dma.c
2619
struct xilinx_dma_chan *chan = to_xilinx_chan(dchan);
drivers/dma/xilinx/xilinx_dma.c
2623
if (!chan->cyclic) {
drivers/dma/xilinx/xilinx_dma.c
2624
err = chan->stop_transfer(chan);
drivers/dma/xilinx/xilinx_dma.c
2626
dev_err(chan->dev, "Cannot stop channel %p: %x\n",
drivers/dma/xilinx/xilinx_dma.c
2627
chan, dma_ctrl_read(chan,
drivers/dma/xilinx/xilinx_dma.c
2629
chan->err = true;
drivers/dma/xilinx/xilinx_dma.c
2633
xilinx_dma_chan_reset(chan);
drivers/dma/xilinx/xilinx_dma.c
2635
chan->terminating = true;
drivers/dma/xilinx/xilinx_dma.c
2636
xilinx_dma_free_descriptors(chan);
drivers/dma/xilinx/xilinx_dma.c
2637
chan->idle = true;
drivers/dma/xilinx/xilinx_dma.c
2639
if (chan->cyclic) {
drivers/dma/xilinx/xilinx_dma.c
2640
reg = dma_ctrl_read(chan, XILINX_DMA_REG_DMACR);
drivers/dma/xilinx/xilinx_dma.c
2642
dma_ctrl_write(chan, XILINX_DMA_REG_DMACR, reg);
drivers/dma/xilinx/xilinx_dma.c
2643
chan->cyclic = false;
drivers/dma/xilinx/xilinx_dma.c
2646
if ((chan->xdev->dma_config->dmatype == XDMA_TYPE_CDMA) && chan->has_sg)
drivers/dma/xilinx/xilinx_dma.c
2647
dma_ctrl_clr(chan, XILINX_DMA_REG_DMACR,
drivers/dma/xilinx/xilinx_dma.c
2655
struct xilinx_dma_chan *chan = to_xilinx_chan(dchan);
drivers/dma/xilinx/xilinx_dma.c
2657
tasklet_kill(&chan->tasklet);
drivers/dma/xilinx/xilinx_dma.c
2676
struct xilinx_dma_chan *chan = to_xilinx_chan(dchan);
drivers/dma/xilinx/xilinx_dma.c
2680
return xilinx_dma_chan_reset(chan);
drivers/dma/xilinx/xilinx_dma.c
2682
dmacr = dma_ctrl_read(chan, XILINX_DMA_REG_DMACR);
drivers/dma/xilinx/xilinx_dma.c
2684
chan->config.frm_dly = cfg->frm_dly;
drivers/dma/xilinx/xilinx_dma.c
2685
chan->config.park = cfg->park;
drivers/dma/xilinx/xilinx_dma.c
2688
chan->config.gen_lock = cfg->gen_lock;
drivers/dma/xilinx/xilinx_dma.c
2689
chan->config.master = cfg->master;
drivers/dma/xilinx/xilinx_dma.c
2692
if (cfg->gen_lock && chan->genlock) {
drivers/dma/xilinx/xilinx_dma.c
2698
chan->config.frm_cnt_en = cfg->frm_cnt_en;
drivers/dma/xilinx/xilinx_dma.c
2699
chan->config.vflip_en = cfg->vflip_en;
drivers/dma/xilinx/xilinx_dma.c
2702
chan->config.park_frm = cfg->park_frm;
drivers/dma/xilinx/xilinx_dma.c
2704
chan->config.park_frm = -1;
drivers/dma/xilinx/xilinx_dma.c
2706
chan->config.coalesc = cfg->coalesc;
drivers/dma/xilinx/xilinx_dma.c
2707
chan->config.delay = cfg->delay;
drivers/dma/xilinx/xilinx_dma.c
2712
chan->config.coalesc = cfg->coalesc;
drivers/dma/xilinx/xilinx_dma.c
2718
chan->config.delay = cfg->delay;
drivers/dma/xilinx/xilinx_dma.c
2725
dma_ctrl_write(chan, XILINX_DMA_REG_DMACR, dmacr);
drivers/dma/xilinx/xilinx_dma.c
2739
static void xilinx_dma_chan_remove(struct xilinx_dma_chan *chan)
drivers/dma/xilinx/xilinx_dma.c
2742
dma_ctrl_clr(chan, XILINX_DMA_REG_DMACR,
drivers/dma/xilinx/xilinx_dma.c
2745
if (chan->irq > 0)
drivers/dma/xilinx/xilinx_dma.c
2746
free_irq(chan->irq, chan);
drivers/dma/xilinx/xilinx_dma.c
2748
tasklet_kill(&chan->tasklet);
drivers/dma/xilinx/xilinx_dma.c
2750
list_del(&chan->common.device_node);
drivers/dma/xilinx/xilinx_dma.c
2944
struct xilinx_dma_chan *chan;
drivers/dma/xilinx/xilinx_dma.c
2950
chan = devm_kzalloc(xdev->dev, sizeof(*chan), GFP_KERNEL);
drivers/dma/xilinx/xilinx_dma.c
2951
if (!chan)
drivers/dma/xilinx/xilinx_dma.c
2954
chan->dev = xdev->dev;
drivers/dma/xilinx/xilinx_dma.c
2955
chan->xdev = xdev;
drivers/dma/xilinx/xilinx_dma.c
2956
chan->desc_pendingcount = 0x0;
drivers/dma/xilinx/xilinx_dma.c
2957
chan->ext_addr = xdev->ext_addr;
drivers/dma/xilinx/xilinx_dma.c
2963
chan->idle = true;
drivers/dma/xilinx/xilinx_dma.c
2965
spin_lock_init(&chan->lock);
drivers/dma/xilinx/xilinx_dma.c
2966
INIT_LIST_HEAD(&chan->pending_list);
drivers/dma/xilinx/xilinx_dma.c
2967
INIT_LIST_HEAD(&chan->done_list);
drivers/dma/xilinx/xilinx_dma.c
2968
INIT_LIST_HEAD(&chan->active_list);
drivers/dma/xilinx/xilinx_dma.c
2969
INIT_LIST_HEAD(&chan->free_seg_list);
drivers/dma/xilinx/xilinx_dma.c
2974
of_property_read_u8(node, "xlnx,irq-delay", &chan->irq_delay);
drivers/dma/xilinx/xilinx_dma.c
2976
chan->genlock = of_property_read_bool(node, "xlnx,genlock-mode");
drivers/dma/xilinx/xilinx_dma.c
2995
chan->direction = DMA_MEM_TO_DEV;
drivers/dma/xilinx/xilinx_dma.c
2996
chan->id = xdev->mm2s_chan_id++;
drivers/dma/xilinx/xilinx_dma.c
2997
chan->tdest = chan->id;
drivers/dma/xilinx/xilinx_dma.c
2999
chan->ctrl_offset = XILINX_DMA_MM2S_CTRL_OFFSET;
drivers/dma/xilinx/xilinx_dma.c
3001
chan->desc_offset = XILINX_VDMA_MM2S_DESC_OFFSET;
drivers/dma/xilinx/xilinx_dma.c
3002
chan->config.park = 1;
drivers/dma/xilinx/xilinx_dma.c
3006
chan->flush_on_fsync = true;
drivers/dma/xilinx/xilinx_dma.c
3012
chan->direction = DMA_DEV_TO_MEM;
drivers/dma/xilinx/xilinx_dma.c
3013
chan->id = xdev->s2mm_chan_id++;
drivers/dma/xilinx/xilinx_dma.c
3014
chan->tdest = chan->id - xdev->dma_config->max_channels / 2;
drivers/dma/xilinx/xilinx_dma.c
3015
chan->has_vflip = of_property_read_bool(node,
drivers/dma/xilinx/xilinx_dma.c
3017
if (chan->has_vflip) {
drivers/dma/xilinx/xilinx_dma.c
3018
chan->config.vflip_en = dma_read(chan,
drivers/dma/xilinx/xilinx_dma.c
3024
chan->ctrl_offset = XILINX_MCDMA_S2MM_CTRL_OFFSET;
drivers/dma/xilinx/xilinx_dma.c
3026
chan->ctrl_offset = XILINX_DMA_S2MM_CTRL_OFFSET;
drivers/dma/xilinx/xilinx_dma.c
3029
chan->desc_offset = XILINX_VDMA_S2MM_DESC_OFFSET;
drivers/dma/xilinx/xilinx_dma.c
3030
chan->config.park = 1;
drivers/dma/xilinx/xilinx_dma.c
3034
chan->flush_on_fsync = true;
drivers/dma/xilinx/xilinx_dma.c
3041
xdev->common.directions |= BIT(chan->direction);
drivers/dma/xilinx/xilinx_dma.c
3044
chan->irq = of_irq_get(node, chan->tdest);
drivers/dma/xilinx/xilinx_dma.c
3045
if (chan->irq < 0)
drivers/dma/xilinx/xilinx_dma.c
3046
return dev_err_probe(xdev->dev, chan->irq, "failed to get irq\n");
drivers/dma/xilinx/xilinx_dma.c
3047
err = request_irq(chan->irq, xdev->dma_config->irq_handler,
drivers/dma/xilinx/xilinx_dma.c
3048
IRQF_SHARED, "xilinx-dma-controller", chan);
drivers/dma/xilinx/xilinx_dma.c
3050
dev_err(xdev->dev, "unable to request IRQ %d\n", chan->irq);
drivers/dma/xilinx/xilinx_dma.c
3055
chan->start_transfer = xilinx_dma_start_transfer;
drivers/dma/xilinx/xilinx_dma.c
3056
chan->stop_transfer = xilinx_dma_stop_transfer;
drivers/dma/xilinx/xilinx_dma.c
3058
chan->start_transfer = xilinx_mcdma_start_transfer;
drivers/dma/xilinx/xilinx_dma.c
3059
chan->stop_transfer = xilinx_dma_stop_transfer;
drivers/dma/xilinx/xilinx_dma.c
3061
chan->start_transfer = xilinx_cdma_start_transfer;
drivers/dma/xilinx/xilinx_dma.c
3062
chan->stop_transfer = xilinx_cdma_stop_transfer;
drivers/dma/xilinx/xilinx_dma.c
3064
chan->start_transfer = xilinx_vdma_start_transfer;
drivers/dma/xilinx/xilinx_dma.c
3065
chan->stop_transfer = xilinx_dma_stop_transfer;
drivers/dma/xilinx/xilinx_dma.c
3071
dma_ctrl_read(chan, XILINX_DMA_REG_DMASR) &
drivers/dma/xilinx/xilinx_dma.c
3073
chan->has_sg = true;
drivers/dma/xilinx/xilinx_dma.c
3074
dev_dbg(chan->dev, "ch %d: SG %s\n", chan->id,
drivers/dma/xilinx/xilinx_dma.c
3075
str_enabled_disabled(chan->has_sg));
drivers/dma/xilinx/xilinx_dma.c
3079
tasklet_setup(&chan->tasklet, xilinx_dma_do_tasklet);
drivers/dma/xilinx/xilinx_dma.c
3085
chan->common.device = &xdev->common;
drivers/dma/xilinx/xilinx_dma.c
3087
list_add_tail(&chan->common.device_node, &xdev->common.channels);
drivers/dma/xilinx/xilinx_dma.c
3088
xdev->chan[chan->id] = chan;
drivers/dma/xilinx/xilinx_dma.c
3091
err = xilinx_dma_chan_reset(chan);
drivers/dma/xilinx/xilinx_dma.c
3142
if (chan_id >= xdev->dma_config->max_channels || !xdev->chan[chan_id])
drivers/dma/xilinx/xilinx_dma.c
3145
return dma_get_slave_channel(&xdev->chan[chan_id]->common);
drivers/dma/xilinx/xilinx_dma.c
3345
if (xdev->chan[i])
drivers/dma/xilinx/xilinx_dma.c
3346
xdev->chan[i]->num_frms = num_frames;
drivers/dma/xilinx/xilinx_dma.c
3377
if (xdev->chan[i])
drivers/dma/xilinx/xilinx_dma.c
3378
xilinx_dma_chan_remove(xdev->chan[i]);
drivers/dma/xilinx/xilinx_dma.c
3399
if (xdev->chan[i])
drivers/dma/xilinx/xilinx_dma.c
3400
xilinx_dma_chan_remove(xdev->chan[i]);
drivers/dma/xilinx/xilinx_dma.c
455
void (*start_transfer)(struct xilinx_dma_chan *chan);
drivers/dma/xilinx/xilinx_dma.c
456
int (*stop_transfer)(struct xilinx_dma_chan *chan);
drivers/dma/xilinx/xilinx_dma.c
511
struct xilinx_dma_chan *chan[XILINX_MCDMA_MAX_CHANS_PER_DEVICE];
drivers/dma/xilinx/xilinx_dma.c
528
#define to_xilinx_chan(chan) \
drivers/dma/xilinx/xilinx_dma.c
529
container_of(chan, struct xilinx_dma_chan, common)
drivers/dma/xilinx/xilinx_dma.c
532
#define xilinx_dma_poll_timeout(chan, reg, val, cond, delay_us, timeout_us) \
drivers/dma/xilinx/xilinx_dma.c
533
readl_poll_timeout_atomic(chan->xdev->regs + chan->ctrl_offset + reg, \
drivers/dma/xilinx/xilinx_dma.c
537
static inline u32 dma_read(struct xilinx_dma_chan *chan, u32 reg)
drivers/dma/xilinx/xilinx_dma.c
539
return ioread32(chan->xdev->regs + reg);
drivers/dma/xilinx/xilinx_dma.c
542
static inline void dma_write(struct xilinx_dma_chan *chan, u32 reg, u32 value)
drivers/dma/xilinx/xilinx_dma.c
544
iowrite32(value, chan->xdev->regs + reg);
drivers/dma/xilinx/xilinx_dma.c
547
static inline void vdma_desc_write(struct xilinx_dma_chan *chan, u32 reg,
drivers/dma/xilinx/xilinx_dma.c
550
dma_write(chan, chan->desc_offset + reg, value);
drivers/dma/xilinx/xilinx_dma.c
553
static inline u32 dma_ctrl_read(struct xilinx_dma_chan *chan, u32 reg)
drivers/dma/xilinx/xilinx_dma.c
555
return dma_read(chan, chan->ctrl_offset + reg);
drivers/dma/xilinx/xilinx_dma.c
558
static inline void dma_ctrl_write(struct xilinx_dma_chan *chan, u32 reg,
drivers/dma/xilinx/xilinx_dma.c
561
dma_write(chan, chan->ctrl_offset + reg, value);
drivers/dma/xilinx/xilinx_dma.c
564
static inline void dma_ctrl_clr(struct xilinx_dma_chan *chan, u32 reg,
drivers/dma/xilinx/xilinx_dma.c
567
dma_ctrl_write(chan, reg, dma_ctrl_read(chan, reg) & ~clr);
drivers/dma/xilinx/xilinx_dma.c
570
static inline void dma_ctrl_set(struct xilinx_dma_chan *chan, u32 reg,
drivers/dma/xilinx/xilinx_dma.c
573
dma_ctrl_write(chan, reg, dma_ctrl_read(chan, reg) | set);
drivers/dma/xilinx/xilinx_dma.c
587
static inline void vdma_desc_write_64(struct xilinx_dma_chan *chan, u32 reg,
drivers/dma/xilinx/xilinx_dma.c
591
writel(value_lsb, chan->xdev->regs + chan->desc_offset + reg);
drivers/dma/xilinx/xilinx_dma.c
594
writel(value_msb, chan->xdev->regs + chan->desc_offset + reg + 4);
drivers/dma/xilinx/xilinx_dma.c
597
static inline void dma_writeq(struct xilinx_dma_chan *chan, u32 reg, u64 value)
drivers/dma/xilinx/xilinx_dma.c
599
lo_hi_writeq(value, chan->xdev->regs + chan->ctrl_offset + reg);
drivers/dma/xilinx/xilinx_dma.c
602
static inline void xilinx_write(struct xilinx_dma_chan *chan, u32 reg,
drivers/dma/xilinx/xilinx_dma.c
605
if (chan->ext_addr)
drivers/dma/xilinx/xilinx_dma.c
606
dma_writeq(chan, reg, addr);
drivers/dma/xilinx/xilinx_dma.c
608
dma_ctrl_write(chan, reg, addr);
drivers/dma/xilinx/xilinx_dma.c
611
static inline void xilinx_axidma_buf(struct xilinx_dma_chan *chan,
drivers/dma/xilinx/xilinx_dma.c
616
if (chan->ext_addr) {
drivers/dma/xilinx/xilinx_dma.c
625
static inline void xilinx_aximcdma_buf(struct xilinx_dma_chan *chan,
drivers/dma/xilinx/xilinx_dma.c
629
if (chan->ext_addr) {
drivers/dma/xilinx/xilinx_dma.c
671
xilinx_vdma_alloc_tx_segment(struct xilinx_dma_chan *chan)
drivers/dma/xilinx/xilinx_dma.c
676
segment = dma_pool_zalloc(chan->desc_pool, GFP_ATOMIC, &phys);
drivers/dma/xilinx/xilinx_dma.c
692
xilinx_cdma_alloc_tx_segment(struct xilinx_dma_chan *chan)
drivers/dma/xilinx/xilinx_dma.c
697
segment = dma_pool_zalloc(chan->desc_pool, GFP_ATOMIC, &phys);
drivers/dma/xilinx/xilinx_dma.c
713
xilinx_axidma_alloc_tx_segment(struct xilinx_dma_chan *chan)
drivers/dma/xilinx/xilinx_dma.c
718
spin_lock_irqsave(&chan->lock, flags);
drivers/dma/xilinx/xilinx_dma.c
719
if (!list_empty(&chan->free_seg_list)) {
drivers/dma/xilinx/xilinx_dma.c
720
segment = list_first_entry(&chan->free_seg_list,
drivers/dma/xilinx/xilinx_dma.c
725
spin_unlock_irqrestore(&chan->lock, flags);
drivers/dma/xilinx/xilinx_dma.c
728
dev_dbg(chan->dev, "Could not find free tx segment\n");
drivers/dma/xilinx/xilinx_dma.c
740
xilinx_aximcdma_alloc_tx_segment(struct xilinx_dma_chan *chan)
drivers/dma/xilinx/xilinx_dma.c
745
spin_lock_irqsave(&chan->lock, flags);
drivers/dma/xilinx/xilinx_dma.c
746
if (!list_empty(&chan->free_seg_list)) {
drivers/dma/xilinx/xilinx_dma.c
747
segment = list_first_entry(&chan->free_seg_list,
drivers/dma/xilinx/xilinx_dma.c
752
spin_unlock_irqrestore(&chan->lock, flags);
drivers/dma/xilinx/xilinx_dma.c
784
static void xilinx_dma_free_tx_segment(struct xilinx_dma_chan *chan,
drivers/dma/xilinx/xilinx_dma.c
789
list_add_tail(&segment->node, &chan->free_seg_list);
drivers/dma/xilinx/xilinx_dma.c
797
static void xilinx_mcdma_free_tx_segment(struct xilinx_dma_chan *chan,
drivers/dma/xilinx/xilinx_dma.c
803
list_add_tail(&segment->node, &chan->free_seg_list);
drivers/dma/xilinx/xilinx_dma.c
811
static void xilinx_cdma_free_tx_segment(struct xilinx_dma_chan *chan,
drivers/dma/xilinx/xilinx_dma.c
814
dma_pool_free(chan->desc_pool, segment, segment->phys);
drivers/dma/xilinx/xilinx_dma.c
822
static void xilinx_vdma_free_tx_segment(struct xilinx_dma_chan *chan,
drivers/dma/xilinx/xilinx_dma.c
825
dma_pool_free(chan->desc_pool, segment, segment->phys);
drivers/dma/xilinx/xilinx_dma.c
835
xilinx_dma_alloc_tx_descriptor(struct xilinx_dma_chan *chan)
drivers/dma/xilinx/xilinx_dma.c
854
xilinx_dma_free_tx_descriptor(struct xilinx_dma_chan *chan,
drivers/dma/xilinx/xilinx_dma.c
865
if (chan->xdev->dma_config->dmatype == XDMA_TYPE_VDMA) {
drivers/dma/xilinx/xilinx_dma.c
868
xilinx_vdma_free_tx_segment(chan, segment);
drivers/dma/xilinx/xilinx_dma.c
870
} else if (chan->xdev->dma_config->dmatype == XDMA_TYPE_CDMA) {
drivers/dma/xilinx/xilinx_dma.c
874
xilinx_cdma_free_tx_segment(chan, cdma_segment);
drivers/dma/xilinx/xilinx_dma.c
876
} else if (chan->xdev->dma_config->dmatype == XDMA_TYPE_AXIDMA) {
drivers/dma/xilinx/xilinx_dma.c
880
xilinx_dma_free_tx_segment(chan, axidma_segment);
drivers/dma/xilinx/xilinx_dma.c
886
xilinx_mcdma_free_tx_segment(chan, aximcdma_segment);
drivers/dma/xilinx/xilinx_dma.c
900
static void xilinx_dma_free_desc_list(struct xilinx_dma_chan *chan,
drivers/dma/xilinx/xilinx_dma.c
907
xilinx_dma_free_tx_descriptor(chan, desc);
drivers/dma/xilinx/xilinx_dma.c
915
static void xilinx_dma_free_descriptors(struct xilinx_dma_chan *chan)
drivers/dma/xilinx/xilinx_dma.c
919
spin_lock_irqsave(&chan->lock, flags);
drivers/dma/xilinx/xilinx_dma.c
921
xilinx_dma_free_desc_list(chan, &chan->pending_list);
drivers/dma/xilinx/xilinx_dma.c
922
xilinx_dma_free_desc_list(chan, &chan->done_list);
drivers/dma/xilinx/xilinx_dma.c
923
xilinx_dma_free_desc_list(chan, &chan->active_list);
drivers/dma/xilinx/xilinx_dma.c
925
spin_unlock_irqrestore(&chan->lock, flags);
drivers/dma/xilinx/xilinx_dma.c
934
struct xilinx_dma_chan *chan = to_xilinx_chan(dchan);
drivers/dma/xilinx/xilinx_dma.c
937
dev_dbg(chan->dev, "Free all channel resources.\n");
drivers/dma/xilinx/xilinx_dma.c
939
xilinx_dma_free_descriptors(chan);
drivers/dma/xilinx/xilinx_dma.c
941
if (chan->xdev->dma_config->dmatype == XDMA_TYPE_AXIDMA) {
drivers/dma/xilinx/xilinx_dma.c
942
spin_lock_irqsave(&chan->lock, flags);
drivers/dma/xilinx/xilinx_dma.c
943
INIT_LIST_HEAD(&chan->free_seg_list);
drivers/dma/xilinx/xilinx_dma.c
944
spin_unlock_irqrestore(&chan->lock, flags);
drivers/dma/xilinx/xilinx_dma.c
947
dma_free_coherent(chan->dev, sizeof(*chan->seg_v) *
drivers/dma/xilinx/xilinx_dma.c
948
XILINX_DMA_NUM_DESCS, chan->seg_v,
drivers/dma/xilinx/xilinx_dma.c
949
chan->seg_p);
drivers/dma/xilinx/xilinx_dma.c
952
dma_free_coherent(chan->dev, sizeof(*chan->cyclic_seg_v),
drivers/dma/xilinx/xilinx_dma.c
953
chan->cyclic_seg_v, chan->cyclic_seg_p);
drivers/dma/xilinx/xilinx_dma.c
956
if (chan->xdev->dma_config->dmatype == XDMA_TYPE_AXIMCDMA) {
drivers/dma/xilinx/xilinx_dma.c
957
spin_lock_irqsave(&chan->lock, flags);
drivers/dma/xilinx/xilinx_dma.c
958
INIT_LIST_HEAD(&chan->free_seg_list);
drivers/dma/xilinx/xilinx_dma.c
959
spin_unlock_irqrestore(&chan->lock, flags);
drivers/dma/xilinx/xilinx_dma.c
962
dma_free_coherent(chan->dev, sizeof(*chan->seg_mv) *
drivers/dma/xilinx/xilinx_dma.c
963
XILINX_DMA_NUM_DESCS, chan->seg_mv,
drivers/dma/xilinx/xilinx_dma.c
964
chan->seg_p);
drivers/dma/xilinx/xilinx_dma.c
967
if (chan->xdev->dma_config->dmatype != XDMA_TYPE_AXIDMA &&
drivers/dma/xilinx/xilinx_dma.c
968
chan->xdev->dma_config->dmatype != XDMA_TYPE_AXIMCDMA) {
drivers/dma/xilinx/xilinx_dma.c
969
dma_pool_destroy(chan->desc_pool);
drivers/dma/xilinx/xilinx_dma.c
970
chan->desc_pool = NULL;
drivers/dma/xilinx/xilinx_dma.c
982
static u32 xilinx_dma_get_residue(struct xilinx_dma_chan *chan,
drivers/dma/xilinx/xilinx_dma.c
995
if (chan->xdev->dma_config->dmatype == XDMA_TYPE_CDMA) {
drivers/dma/xilinx/xilinx_dpdma.c
1001
static int xilinx_dpdma_chan_notify_no_ostand(struct xilinx_dpdma_chan *chan)
drivers/dma/xilinx/xilinx_dpdma.c
1005
cnt = xilinx_dpdma_chan_ostand(chan);
drivers/dma/xilinx/xilinx_dpdma.c
1007
dev_dbg(chan->xdev->dev,
drivers/dma/xilinx/xilinx_dpdma.c
1009
chan->id, cnt);
drivers/dma/xilinx/xilinx_dpdma.c
1014
dpdma_write(chan->xdev->reg, XILINX_DPDMA_IDS,
drivers/dma/xilinx/xilinx_dpdma.c
1015
XILINX_DPDMA_INTR_NO_OSTAND(chan->id));
drivers/dma/xilinx/xilinx_dpdma.c
1016
wake_up(&chan->wait_to_stop);
drivers/dma/xilinx/xilinx_dpdma.c
1031
static int xilinx_dpdma_chan_wait_no_ostand(struct xilinx_dpdma_chan *chan)
drivers/dma/xilinx/xilinx_dpdma.c
1036
ret = wait_event_interruptible_timeout(chan->wait_to_stop,
drivers/dma/xilinx/xilinx_dpdma.c
1037
!xilinx_dpdma_chan_ostand(chan),
drivers/dma/xilinx/xilinx_dpdma.c
1040
dpdma_write(chan->xdev->reg, XILINX_DPDMA_IEN,
drivers/dma/xilinx/xilinx_dpdma.c
1041
XILINX_DPDMA_INTR_NO_OSTAND(chan->id));
drivers/dma/xilinx/xilinx_dpdma.c
1045
dev_err(chan->xdev->dev, "chan%u: not ready to stop: %d trans\n",
drivers/dma/xilinx/xilinx_dpdma.c
1046
chan->id, xilinx_dpdma_chan_ostand(chan));
drivers/dma/xilinx/xilinx_dpdma.c
1064
static int xilinx_dpdma_chan_poll_no_ostand(struct xilinx_dpdma_chan *chan)
drivers/dma/xilinx/xilinx_dpdma.c
1070
cnt = xilinx_dpdma_chan_ostand(chan);
drivers/dma/xilinx/xilinx_dpdma.c
1075
dpdma_write(chan->xdev->reg, XILINX_DPDMA_IEN,
drivers/dma/xilinx/xilinx_dpdma.c
1076
XILINX_DPDMA_INTR_NO_OSTAND(chan->id));
drivers/dma/xilinx/xilinx_dpdma.c
1080
dev_err(chan->xdev->dev, "chan%u: not ready to stop: %d trans\n",
drivers/dma/xilinx/xilinx_dpdma.c
1081
chan->id, xilinx_dpdma_chan_ostand(chan));
drivers/dma/xilinx/xilinx_dpdma.c
1095
static int xilinx_dpdma_chan_stop(struct xilinx_dpdma_chan *chan)
drivers/dma/xilinx/xilinx_dpdma.c
1100
ret = xilinx_dpdma_chan_wait_no_ostand(chan);
drivers/dma/xilinx/xilinx_dpdma.c
1104
spin_lock_irqsave(&chan->lock, flags);
drivers/dma/xilinx/xilinx_dpdma.c
1105
xilinx_dpdma_chan_disable(chan);
drivers/dma/xilinx/xilinx_dpdma.c
1106
chan->running = false;
drivers/dma/xilinx/xilinx_dpdma.c
1107
spin_unlock_irqrestore(&chan->lock, flags);
drivers/dma/xilinx/xilinx_dpdma.c
1121
static void xilinx_dpdma_chan_done_irq(struct xilinx_dpdma_chan *chan)
drivers/dma/xilinx/xilinx_dpdma.c
1125
spin_lock(&chan->lock);
drivers/dma/xilinx/xilinx_dpdma.c
1127
xilinx_dpdma_debugfs_desc_done_irq(chan);
drivers/dma/xilinx/xilinx_dpdma.c
1129
active = chan->desc.active;
drivers/dma/xilinx/xilinx_dpdma.c
1133
dev_warn(chan->xdev->dev,
drivers/dma/xilinx/xilinx_dpdma.c
1135
chan->id);
drivers/dma/xilinx/xilinx_dpdma.c
1137
spin_unlock(&chan->lock);
drivers/dma/xilinx/xilinx_dpdma.c
1148
static void xilinx_dpdma_chan_vsync_irq(struct xilinx_dpdma_chan *chan)
drivers/dma/xilinx/xilinx_dpdma.c
1154
spin_lock(&chan->lock);
drivers/dma/xilinx/xilinx_dpdma.c
1156
pending = chan->desc.pending;
drivers/dma/xilinx/xilinx_dpdma.c
1157
if (!chan->running || !pending)
drivers/dma/xilinx/xilinx_dpdma.c
1160
desc_id = dpdma_read(chan->reg, XILINX_DPDMA_CH_DESC_ID)
drivers/dma/xilinx/xilinx_dpdma.c
1167
dev_dbg(chan->xdev->dev,
drivers/dma/xilinx/xilinx_dpdma.c
1169
chan->id, sw_desc->hw.desc_id, desc_id);
drivers/dma/xilinx/xilinx_dpdma.c
1177
spin_lock(&chan->vchan.lock);
drivers/dma/xilinx/xilinx_dpdma.c
1178
if (chan->desc.active)
drivers/dma/xilinx/xilinx_dpdma.c
1179
vchan_cookie_complete(&chan->desc.active->vdesc);
drivers/dma/xilinx/xilinx_dpdma.c
1180
chan->desc.active = pending;
drivers/dma/xilinx/xilinx_dpdma.c
1181
chan->desc.pending = NULL;
drivers/dma/xilinx/xilinx_dpdma.c
1183
xilinx_dpdma_chan_queue_transfer(chan);
drivers/dma/xilinx/xilinx_dpdma.c
1184
spin_unlock(&chan->vchan.lock);
drivers/dma/xilinx/xilinx_dpdma.c
1187
spin_unlock(&chan->lock);
drivers/dma/xilinx/xilinx_dpdma.c
1199
xilinx_dpdma_chan_err(struct xilinx_dpdma_chan *chan, u32 isr, u32 eisr)
drivers/dma/xilinx/xilinx_dpdma.c
1201
if (!chan)
drivers/dma/xilinx/xilinx_dpdma.c
1204
if (chan->running &&
drivers/dma/xilinx/xilinx_dpdma.c
1205
((isr & (XILINX_DPDMA_INTR_CHAN_ERR_MASK << chan->id)) ||
drivers/dma/xilinx/xilinx_dpdma.c
1206
(eisr & (XILINX_DPDMA_EINTR_CHAN_ERR_MASK << chan->id))))
drivers/dma/xilinx/xilinx_dpdma.c
1221
static void xilinx_dpdma_chan_handle_err(struct xilinx_dpdma_chan *chan)
drivers/dma/xilinx/xilinx_dpdma.c
1223
struct xilinx_dpdma_device *xdev = chan->xdev;
drivers/dma/xilinx/xilinx_dpdma.c
1227
spin_lock_irqsave(&chan->lock, flags);
drivers/dma/xilinx/xilinx_dpdma.c
1230
chan->id,
drivers/dma/xilinx/xilinx_dpdma.c
1231
dpdma_read(chan->reg, XILINX_DPDMA_CH_DESC_START_ADDRE),
drivers/dma/xilinx/xilinx_dpdma.c
1232
dpdma_read(chan->reg, XILINX_DPDMA_CH_DESC_START_ADDR));
drivers/dma/xilinx/xilinx_dpdma.c
1234
chan->id,
drivers/dma/xilinx/xilinx_dpdma.c
1235
dpdma_read(chan->reg, XILINX_DPDMA_CH_PYLD_CUR_ADDRE),
drivers/dma/xilinx/xilinx_dpdma.c
1236
dpdma_read(chan->reg, XILINX_DPDMA_CH_PYLD_CUR_ADDR));
drivers/dma/xilinx/xilinx_dpdma.c
1238
xilinx_dpdma_chan_disable(chan);
drivers/dma/xilinx/xilinx_dpdma.c
1239
chan->running = false;
drivers/dma/xilinx/xilinx_dpdma.c
1241
if (!chan->desc.active)
drivers/dma/xilinx/xilinx_dpdma.c
1244
active = chan->desc.active;
drivers/dma/xilinx/xilinx_dpdma.c
1245
chan->desc.active = NULL;
drivers/dma/xilinx/xilinx_dpdma.c
1247
xilinx_dpdma_chan_dump_tx_desc(chan, active);
drivers/dma/xilinx/xilinx_dpdma.c
1251
chan->id);
drivers/dma/xilinx/xilinx_dpdma.c
1254
if (!chan->desc.pending &&
drivers/dma/xilinx/xilinx_dpdma.c
1255
list_empty(&chan->vchan.desc_issued)) {
drivers/dma/xilinx/xilinx_dpdma.c
1258
&chan->vchan.desc_issued);
drivers/dma/xilinx/xilinx_dpdma.c
1264
spin_unlock_irqrestore(&chan->lock, flags);
drivers/dma/xilinx/xilinx_dpdma.c
1276
struct xilinx_dpdma_chan *chan = to_xilinx_chan(dchan);
drivers/dma/xilinx/xilinx_dpdma.c
1284
return xilinx_dpdma_chan_prep_cyclic(chan, buf_addr, buf_len,
drivers/dma/xilinx/xilinx_dpdma.c
1293
struct xilinx_dpdma_chan *chan = to_xilinx_chan(dchan);
drivers/dma/xilinx/xilinx_dpdma.c
1305
desc = xilinx_dpdma_chan_prep_interleaved_dma(chan, xt);
drivers/dma/xilinx/xilinx_dpdma.c
1309
vchan_tx_prep(&chan->vchan, &desc->vdesc, flags | DMA_CTRL_ACK);
drivers/dma/xilinx/xilinx_dpdma.c
1324
struct xilinx_dpdma_chan *chan = to_xilinx_chan(dchan);
drivers/dma/xilinx/xilinx_dpdma.c
1327
chan->desc_pool = dma_pool_create(dev_name(chan->xdev->dev),
drivers/dma/xilinx/xilinx_dpdma.c
1328
chan->xdev->dev,
drivers/dma/xilinx/xilinx_dpdma.c
1331
if (!chan->desc_pool) {
drivers/dma/xilinx/xilinx_dpdma.c
1332
dev_err(chan->xdev->dev,
drivers/dma/xilinx/xilinx_dpdma.c
1334
chan->id);
drivers/dma/xilinx/xilinx_dpdma.c
1350
struct xilinx_dpdma_chan *chan = to_xilinx_chan(dchan);
drivers/dma/xilinx/xilinx_dpdma.c
1352
vchan_free_chan_resources(&chan->vchan);
drivers/dma/xilinx/xilinx_dpdma.c
1354
dma_pool_destroy(chan->desc_pool);
drivers/dma/xilinx/xilinx_dpdma.c
1355
chan->desc_pool = NULL;
drivers/dma/xilinx/xilinx_dpdma.c
1360
struct xilinx_dpdma_chan *chan = to_xilinx_chan(dchan);
drivers/dma/xilinx/xilinx_dpdma.c
1363
spin_lock_irqsave(&chan->lock, flags);
drivers/dma/xilinx/xilinx_dpdma.c
1364
spin_lock(&chan->vchan.lock);
drivers/dma/xilinx/xilinx_dpdma.c
1365
if (vchan_issue_pending(&chan->vchan))
drivers/dma/xilinx/xilinx_dpdma.c
1366
xilinx_dpdma_chan_queue_transfer(chan);
drivers/dma/xilinx/xilinx_dpdma.c
1367
spin_unlock(&chan->vchan.lock);
drivers/dma/xilinx/xilinx_dpdma.c
1368
spin_unlock_irqrestore(&chan->lock, flags);
drivers/dma/xilinx/xilinx_dpdma.c
1374
struct xilinx_dpdma_chan *chan = to_xilinx_chan(dchan);
drivers/dma/xilinx/xilinx_dpdma.c
1394
spin_lock_irqsave(&chan->lock, flags);
drivers/dma/xilinx/xilinx_dpdma.c
1395
if (chan->id <= ZYNQMP_DPDMA_VIDEO2 && pconfig)
drivers/dma/xilinx/xilinx_dpdma.c
1396
chan->video_group = pconfig->video_group;
drivers/dma/xilinx/xilinx_dpdma.c
1397
spin_unlock_irqrestore(&chan->lock, flags);
drivers/dma/xilinx/xilinx_dpdma.c
1433
struct xilinx_dpdma_chan *chan = to_xilinx_chan(dchan);
drivers/dma/xilinx/xilinx_dpdma.c
1434
struct xilinx_dpdma_device *xdev = chan->xdev;
drivers/dma/xilinx/xilinx_dpdma.c
1440
if (chan->video_group) {
drivers/dma/xilinx/xilinx_dpdma.c
1442
if (xdev->chan[i]->video_group &&
drivers/dma/xilinx/xilinx_dpdma.c
1443
xdev->chan[i]->running) {
drivers/dma/xilinx/xilinx_dpdma.c
1444
xilinx_dpdma_chan_pause(xdev->chan[i]);
drivers/dma/xilinx/xilinx_dpdma.c
1445
xdev->chan[i]->video_group = false;
drivers/dma/xilinx/xilinx_dpdma.c
1449
xilinx_dpdma_chan_pause(chan);
drivers/dma/xilinx/xilinx_dpdma.c
1453
spin_lock_irqsave(&chan->vchan.lock, flags);
drivers/dma/xilinx/xilinx_dpdma.c
1454
vchan_get_all_descriptors(&chan->vchan, &descriptors);
drivers/dma/xilinx/xilinx_dpdma.c
1455
spin_unlock_irqrestore(&chan->vchan.lock, flags);
drivers/dma/xilinx/xilinx_dpdma.c
1457
vchan_dma_desc_free_list(&chan->vchan, &descriptors);
drivers/dma/xilinx/xilinx_dpdma.c
1477
struct xilinx_dpdma_chan *chan = to_xilinx_chan(dchan);
drivers/dma/xilinx/xilinx_dpdma.c
1480
xilinx_dpdma_chan_stop(chan);
drivers/dma/xilinx/xilinx_dpdma.c
1482
spin_lock_irqsave(&chan->vchan.lock, flags);
drivers/dma/xilinx/xilinx_dpdma.c
1483
if (chan->desc.pending) {
drivers/dma/xilinx/xilinx_dpdma.c
1484
vchan_terminate_vdesc(&chan->desc.pending->vdesc);
drivers/dma/xilinx/xilinx_dpdma.c
1485
chan->desc.pending = NULL;
drivers/dma/xilinx/xilinx_dpdma.c
1487
if (chan->desc.active) {
drivers/dma/xilinx/xilinx_dpdma.c
1488
vchan_terminate_vdesc(&chan->desc.active->vdesc);
drivers/dma/xilinx/xilinx_dpdma.c
1489
chan->desc.active = NULL;
drivers/dma/xilinx/xilinx_dpdma.c
1491
spin_unlock_irqrestore(&chan->vchan.lock, flags);
drivers/dma/xilinx/xilinx_dpdma.c
1493
vchan_synchronize(&chan->vchan);
drivers/dma/xilinx/xilinx_dpdma.c
1542
for (i = 0; i < ARRAY_SIZE(xdev->chan); i++)
drivers/dma/xilinx/xilinx_dpdma.c
1543
if (err || xilinx_dpdma_chan_err(xdev->chan[i], isr, eisr))
drivers/dma/xilinx/xilinx_dpdma.c
1544
tasklet_schedule(&xdev->chan[i]->err_task);
drivers/dma/xilinx/xilinx_dpdma.c
1581
struct xilinx_dpdma_chan *chan = from_tasklet(chan, t, err_task);
drivers/dma/xilinx/xilinx_dpdma.c
1582
struct xilinx_dpdma_device *xdev = chan->xdev;
drivers/dma/xilinx/xilinx_dpdma.c
1586
xilinx_dpdma_chan_poll_no_ostand(chan);
drivers/dma/xilinx/xilinx_dpdma.c
1588
xilinx_dpdma_chan_handle_err(chan);
drivers/dma/xilinx/xilinx_dpdma.c
1591
XILINX_DPDMA_INTR_CHAN_ERR_MASK << chan->id);
drivers/dma/xilinx/xilinx_dpdma.c
1593
XILINX_DPDMA_EINTR_CHAN_ERR_MASK << chan->id);
drivers/dma/xilinx/xilinx_dpdma.c
1595
spin_lock_irqsave(&chan->lock, flags);
drivers/dma/xilinx/xilinx_dpdma.c
1596
spin_lock(&chan->vchan.lock);
drivers/dma/xilinx/xilinx_dpdma.c
1597
xilinx_dpdma_chan_queue_transfer(chan);
drivers/dma/xilinx/xilinx_dpdma.c
1598
spin_unlock(&chan->vchan.lock);
drivers/dma/xilinx/xilinx_dpdma.c
1599
spin_unlock_irqrestore(&chan->lock, flags);
drivers/dma/xilinx/xilinx_dpdma.c
1623
for (i = 0; i < ARRAY_SIZE(xdev->chan); i++) {
drivers/dma/xilinx/xilinx_dpdma.c
1624
struct xilinx_dpdma_chan *chan = xdev->chan[i];
drivers/dma/xilinx/xilinx_dpdma.c
1626
if (chan)
drivers/dma/xilinx/xilinx_dpdma.c
1627
xilinx_dpdma_chan_vsync_irq(chan);
drivers/dma/xilinx/xilinx_dpdma.c
1633
for_each_set_bit(i, &mask, ARRAY_SIZE(xdev->chan))
drivers/dma/xilinx/xilinx_dpdma.c
1634
xilinx_dpdma_chan_done_irq(xdev->chan[i]);
drivers/dma/xilinx/xilinx_dpdma.c
1639
for_each_set_bit(i, &mask, ARRAY_SIZE(xdev->chan))
drivers/dma/xilinx/xilinx_dpdma.c
1640
xilinx_dpdma_chan_notify_no_ostand(xdev->chan[i]);
drivers/dma/xilinx/xilinx_dpdma.c
1657
struct xilinx_dpdma_chan *chan;
drivers/dma/xilinx/xilinx_dpdma.c
1659
chan = devm_kzalloc(xdev->dev, sizeof(*chan), GFP_KERNEL);
drivers/dma/xilinx/xilinx_dpdma.c
1660
if (!chan)
drivers/dma/xilinx/xilinx_dpdma.c
1663
chan->id = chan_id;
drivers/dma/xilinx/xilinx_dpdma.c
1664
chan->reg = xdev->reg + XILINX_DPDMA_CH_BASE
drivers/dma/xilinx/xilinx_dpdma.c
1665
+ XILINX_DPDMA_CH_OFFSET * chan->id;
drivers/dma/xilinx/xilinx_dpdma.c
1666
chan->running = false;
drivers/dma/xilinx/xilinx_dpdma.c
1667
chan->xdev = xdev;
drivers/dma/xilinx/xilinx_dpdma.c
1669
spin_lock_init(&chan->lock);
drivers/dma/xilinx/xilinx_dpdma.c
1670
init_waitqueue_head(&chan->wait_to_stop);
drivers/dma/xilinx/xilinx_dpdma.c
1672
tasklet_setup(&chan->err_task, xilinx_dpdma_chan_err_task);
drivers/dma/xilinx/xilinx_dpdma.c
1674
chan->vchan.desc_free = xilinx_dpdma_chan_free_tx_desc;
drivers/dma/xilinx/xilinx_dpdma.c
1675
vchan_init(&chan->vchan, &xdev->common);
drivers/dma/xilinx/xilinx_dpdma.c
1677
xdev->chan[chan->id] = chan;
drivers/dma/xilinx/xilinx_dpdma.c
1682
static void xilinx_dpdma_chan_remove(struct xilinx_dpdma_chan *chan)
drivers/dma/xilinx/xilinx_dpdma.c
1684
if (!chan)
drivers/dma/xilinx/xilinx_dpdma.c
1687
tasklet_kill(&chan->err_task);
drivers/dma/xilinx/xilinx_dpdma.c
1688
list_del(&chan->vchan.chan.device_node);
drivers/dma/xilinx/xilinx_dpdma.c
1697
if (chan_id >= ARRAY_SIZE(xdev->chan))
drivers/dma/xilinx/xilinx_dpdma.c
1700
if (!xdev->chan[chan_id])
drivers/dma/xilinx/xilinx_dpdma.c
1703
return dma_get_slave_channel(&xdev->chan[chan_id]->vchan.chan);
drivers/dma/xilinx/xilinx_dpdma.c
1715
for (i = 0; i < ARRAY_SIZE(xdev->chan); i++) {
drivers/dma/xilinx/xilinx_dpdma.c
1792
for (i = 0; i < ARRAY_SIZE(xdev->chan); ++i) {
drivers/dma/xilinx/xilinx_dpdma.c
1833
for (i = 0; i < ARRAY_SIZE(xdev->chan); i++)
drivers/dma/xilinx/xilinx_dpdma.c
1834
xilinx_dpdma_chan_remove(xdev->chan[i]);
drivers/dma/xilinx/xilinx_dpdma.c
1854
for (i = 0; i < ARRAY_SIZE(xdev->chan); i++)
drivers/dma/xilinx/xilinx_dpdma.c
1855
xilinx_dpdma_chan_remove(xdev->chan[i]);
drivers/dma/xilinx/xilinx_dpdma.c
200
struct xilinx_dpdma_chan *chan;
drivers/dma/xilinx/xilinx_dpdma.c
249
container_of(_chan, struct xilinx_dpdma_chan, vchan.chan)
drivers/dma/xilinx/xilinx_dpdma.c
268
struct xilinx_dpdma_chan *chan[XILINX_DPDMA_NUM_CHAN];
drivers/dma/xilinx/xilinx_dpdma.c
299
static void xilinx_dpdma_debugfs_desc_done_irq(struct xilinx_dpdma_chan *chan)
drivers/dma/xilinx/xilinx_dpdma.c
301
if (IS_ENABLED(CONFIG_DEBUG_FS) && chan->id == dpdma_debugfs.chan_id)
drivers/dma/xilinx/xilinx_dpdma.c
554
xilinx_dpdma_chan_alloc_sw_desc(struct xilinx_dpdma_chan *chan)
drivers/dma/xilinx/xilinx_dpdma.c
559
sw_desc = dma_pool_zalloc(chan->desc_pool, GFP_ATOMIC, &dma_addr);
drivers/dma/xilinx/xilinx_dpdma.c
576
xilinx_dpdma_chan_free_sw_desc(struct xilinx_dpdma_chan *chan,
drivers/dma/xilinx/xilinx_dpdma.c
579
dma_pool_free(chan->desc_pool, sw_desc, sw_desc->dma_addr);
drivers/dma/xilinx/xilinx_dpdma.c
589
static void xilinx_dpdma_chan_dump_tx_desc(struct xilinx_dpdma_chan *chan,
drivers/dma/xilinx/xilinx_dpdma.c
593
struct device *dev = chan->xdev->dev;
drivers/dma/xilinx/xilinx_dpdma.c
597
dev_dbg(dev, "------- channel ID = %d -------\n", chan->id);
drivers/dma/xilinx/xilinx_dpdma.c
634
xilinx_dpdma_chan_alloc_tx_desc(struct xilinx_dpdma_chan *chan)
drivers/dma/xilinx/xilinx_dpdma.c
643
tx_desc->chan = chan;
drivers/dma/xilinx/xilinx_dpdma.c
667
xilinx_dpdma_chan_free_sw_desc(desc->chan, sw_desc);
drivers/dma/xilinx/xilinx_dpdma.c
687
xilinx_dpdma_chan_prep_cyclic(struct xilinx_dpdma_chan *chan,
drivers/dma/xilinx/xilinx_dpdma.c
696
tx_desc = xilinx_dpdma_chan_alloc_tx_desc(chan);
drivers/dma/xilinx/xilinx_dpdma.c
704
dev_err(chan->xdev->dev,
drivers/dma/xilinx/xilinx_dpdma.c
710
sw_desc = xilinx_dpdma_chan_alloc_sw_desc(chan);
drivers/dma/xilinx/xilinx_dpdma.c
714
xilinx_dpdma_sw_desc_set_dma_addrs(chan->xdev, sw_desc, last,
drivers/dma/xilinx/xilinx_dpdma.c
736
if (chan->xdev->ext_addr)
drivers/dma/xilinx/xilinx_dpdma.c
743
return vchan_tx_prep(&chan->vchan, &tx_desc->vdesc, flags);
drivers/dma/xilinx/xilinx_dpdma.c
763
xilinx_dpdma_chan_prep_interleaved_dma(struct xilinx_dpdma_chan *chan,
drivers/dma/xilinx/xilinx_dpdma.c
773
dev_err(chan->xdev->dev,
drivers/dma/xilinx/xilinx_dpdma.c
775
chan->id, XILINX_DPDMA_ALIGN_BYTES);
drivers/dma/xilinx/xilinx_dpdma.c
779
tx_desc = xilinx_dpdma_chan_alloc_tx_desc(chan);
drivers/dma/xilinx/xilinx_dpdma.c
783
sw_desc = xilinx_dpdma_chan_alloc_sw_desc(chan);
drivers/dma/xilinx/xilinx_dpdma.c
789
xilinx_dpdma_sw_desc_set_dma_addrs(chan->xdev, sw_desc, sw_desc,
drivers/dma/xilinx/xilinx_dpdma.c
819
static void xilinx_dpdma_chan_enable(struct xilinx_dpdma_chan *chan)
drivers/dma/xilinx/xilinx_dpdma.c
823
reg = (XILINX_DPDMA_INTR_CHAN_MASK << chan->id)
drivers/dma/xilinx/xilinx_dpdma.c
825
dpdma_write(chan->xdev->reg, XILINX_DPDMA_IEN, reg);
drivers/dma/xilinx/xilinx_dpdma.c
826
reg = (XILINX_DPDMA_EINTR_CHAN_ERR_MASK << chan->id)
drivers/dma/xilinx/xilinx_dpdma.c
828
dpdma_write(chan->xdev->reg, XILINX_DPDMA_EIEN, reg);
drivers/dma/xilinx/xilinx_dpdma.c
837
dpdma_set(chan->reg, XILINX_DPDMA_CH_CNTL, reg);
drivers/dma/xilinx/xilinx_dpdma.c
846
static void xilinx_dpdma_chan_disable(struct xilinx_dpdma_chan *chan)
drivers/dma/xilinx/xilinx_dpdma.c
850
reg = XILINX_DPDMA_INTR_CHAN_MASK << chan->id;
drivers/dma/xilinx/xilinx_dpdma.c
851
dpdma_write(chan->xdev->reg, XILINX_DPDMA_IEN, reg);
drivers/dma/xilinx/xilinx_dpdma.c
852
reg = XILINX_DPDMA_EINTR_CHAN_ERR_MASK << chan->id;
drivers/dma/xilinx/xilinx_dpdma.c
853
dpdma_write(chan->xdev->reg, XILINX_DPDMA_EIEN, reg);
drivers/dma/xilinx/xilinx_dpdma.c
855
dpdma_clr(chan->reg, XILINX_DPDMA_CH_CNTL, XILINX_DPDMA_CH_CNTL_ENABLE);
drivers/dma/xilinx/xilinx_dpdma.c
864
static void xilinx_dpdma_chan_pause(struct xilinx_dpdma_chan *chan)
drivers/dma/xilinx/xilinx_dpdma.c
866
dpdma_set(chan->reg, XILINX_DPDMA_CH_CNTL, XILINX_DPDMA_CH_CNTL_PAUSE);
drivers/dma/xilinx/xilinx_dpdma.c
875
static void xilinx_dpdma_chan_unpause(struct xilinx_dpdma_chan *chan)
drivers/dma/xilinx/xilinx_dpdma.c
877
dpdma_clr(chan->reg, XILINX_DPDMA_CH_CNTL, XILINX_DPDMA_CH_CNTL_PAUSE);
drivers/dma/xilinx/xilinx_dpdma.c
880
static u32 xilinx_dpdma_chan_video_group_ready(struct xilinx_dpdma_chan *chan)
drivers/dma/xilinx/xilinx_dpdma.c
882
struct xilinx_dpdma_device *xdev = chan->xdev;
drivers/dma/xilinx/xilinx_dpdma.c
887
if (xdev->chan[i]->video_group && !xdev->chan[i]->running)
drivers/dma/xilinx/xilinx_dpdma.c
890
if (xdev->chan[i]->video_group)
drivers/dma/xilinx/xilinx_dpdma.c
904
static void xilinx_dpdma_chan_queue_transfer(struct xilinx_dpdma_chan *chan)
drivers/dma/xilinx/xilinx_dpdma.c
906
struct xilinx_dpdma_device *xdev = chan->xdev;
drivers/dma/xilinx/xilinx_dpdma.c
913
lockdep_assert_held(&chan->lock);
drivers/dma/xilinx/xilinx_dpdma.c
915
if (chan->desc.pending)
drivers/dma/xilinx/xilinx_dpdma.c
918
if (!chan->running) {
drivers/dma/xilinx/xilinx_dpdma.c
919
xilinx_dpdma_chan_unpause(chan);
drivers/dma/xilinx/xilinx_dpdma.c
920
xilinx_dpdma_chan_enable(chan);
drivers/dma/xilinx/xilinx_dpdma.c
921
chan->first_frame = true;
drivers/dma/xilinx/xilinx_dpdma.c
922
chan->running = true;
drivers/dma/xilinx/xilinx_dpdma.c
925
vdesc = vchan_next_desc(&chan->vchan);
drivers/dma/xilinx/xilinx_dpdma.c
930
chan->desc.pending = desc;
drivers/dma/xilinx/xilinx_dpdma.c
943
dpdma_write(chan->reg, XILINX_DPDMA_CH_DESC_START_ADDR,
drivers/dma/xilinx/xilinx_dpdma.c
946
dpdma_write(chan->reg, XILINX_DPDMA_CH_DESC_START_ADDRE,
drivers/dma/xilinx/xilinx_dpdma.c
950
first_frame = chan->first_frame;
drivers/dma/xilinx/xilinx_dpdma.c
951
chan->first_frame = false;
drivers/dma/xilinx/xilinx_dpdma.c
953
if (chan->video_group) {
drivers/dma/xilinx/xilinx_dpdma.c
954
channels = xilinx_dpdma_chan_video_group_ready(chan);
drivers/dma/xilinx/xilinx_dpdma.c
962
channels = BIT(chan->id);
drivers/dma/xilinx/xilinx_dpdma.c
981
static u32 xilinx_dpdma_chan_ostand(struct xilinx_dpdma_chan *chan)
drivers/dma/xilinx/xilinx_dpdma.c
984
dpdma_read(chan->reg, XILINX_DPDMA_CH_STATUS));
drivers/dma/xilinx/zynqmp_dma.c
1129
p->dst_addr_widths = BIT(zdev->chan->bus_width / 8);
drivers/dma/xilinx/zynqmp_dma.c
1130
p->src_addr_widths = BIT(zdev->chan->bus_width / 8);
drivers/dma/xilinx/zynqmp_dma.c
1151
zynqmp_dma_chan_remove(zdev->chan);
drivers/dma/xilinx/zynqmp_dma.c
1172
zynqmp_dma_chan_remove(zdev->chan);
drivers/dma/xilinx/zynqmp_dma.c
141
#define ZYNQMP_DMA_DESC_SIZE(chan) (chan->desc_size)
drivers/dma/xilinx/zynqmp_dma.c
143
#define to_chan(chan) container_of(chan, struct zynqmp_dma_chan, \
drivers/dma/xilinx/zynqmp_dma.c
25
#define ZYNQMP_DMA_ISR (chan->irq_offset + 0x100)
drivers/dma/xilinx/zynqmp_dma.c
256
struct zynqmp_dma_chan *chan;
drivers/dma/xilinx/zynqmp_dma.c
26
#define ZYNQMP_DMA_IMR (chan->irq_offset + 0x104)
drivers/dma/xilinx/zynqmp_dma.c
269
static inline void zynqmp_dma_writeq(struct zynqmp_dma_chan *chan, u32 reg,
drivers/dma/xilinx/zynqmp_dma.c
27
#define ZYNQMP_DMA_IER (chan->irq_offset + 0x108)
drivers/dma/xilinx/zynqmp_dma.c
272
lo_hi_writeq(value, chan->regs + reg);
drivers/dma/xilinx/zynqmp_dma.c
28
#define ZYNQMP_DMA_IDS (chan->irq_offset + 0x10c)
drivers/dma/xilinx/zynqmp_dma.c
280
static void zynqmp_dma_update_desc_to_ctrlr(struct zynqmp_dma_chan *chan,
drivers/dma/xilinx/zynqmp_dma.c
286
zynqmp_dma_writeq(chan, ZYNQMP_DMA_SRC_START_LSB, addr);
drivers/dma/xilinx/zynqmp_dma.c
288
zynqmp_dma_writeq(chan, ZYNQMP_DMA_DST_START_LSB, addr);
drivers/dma/xilinx/zynqmp_dma.c
296
static void zynqmp_dma_desc_config_eod(struct zynqmp_dma_chan *chan,
drivers/dma/xilinx/zynqmp_dma.c
315
static void zynqmp_dma_config_sg_ll_desc(struct zynqmp_dma_chan *chan,
drivers/dma/xilinx/zynqmp_dma.c
327
if (chan->is_dmacoherent) {
drivers/dma/xilinx/zynqmp_dma.c
333
dma_addr_t addr = chan->desc_pool_p +
drivers/dma/xilinx/zynqmp_dma.c
334
((uintptr_t)sdesc - (uintptr_t)chan->desc_pool_v);
drivers/dma/xilinx/zynqmp_dma.c
337
ddesc->nxtdscraddr = addr + ZYNQMP_DMA_DESC_SIZE(chan);
drivers/dma/xilinx/zynqmp_dma.c
345
static void zynqmp_dma_init(struct zynqmp_dma_chan *chan)
drivers/dma/xilinx/zynqmp_dma.c
349
writel(ZYNQMP_DMA_IDS_DEFAULT_MASK, chan->regs + ZYNQMP_DMA_IDS);
drivers/dma/xilinx/zynqmp_dma.c
350
val = readl(chan->regs + ZYNQMP_DMA_ISR);
drivers/dma/xilinx/zynqmp_dma.c
351
writel(val, chan->regs + ZYNQMP_DMA_ISR);
drivers/dma/xilinx/zynqmp_dma.c
353
if (chan->is_dmacoherent) {
drivers/dma/xilinx/zynqmp_dma.c
357
writel(val, chan->regs + ZYNQMP_DMA_DSCR_ATTR);
drivers/dma/xilinx/zynqmp_dma.c
360
val = readl(chan->regs + ZYNQMP_DMA_DATA_ATTR);
drivers/dma/xilinx/zynqmp_dma.c
361
if (chan->is_dmacoherent) {
drivers/dma/xilinx/zynqmp_dma.c
367
writel(val, chan->regs + ZYNQMP_DMA_DATA_ATTR);
drivers/dma/xilinx/zynqmp_dma.c
370
val = readl(chan->regs + ZYNQMP_DMA_IRQ_SRC_ACCT);
drivers/dma/xilinx/zynqmp_dma.c
371
val = readl(chan->regs + ZYNQMP_DMA_IRQ_DST_ACCT);
drivers/dma/xilinx/zynqmp_dma.c
373
chan->idle = true;
drivers/dma/xilinx/zynqmp_dma.c
384
struct zynqmp_dma_chan *chan = to_chan(tx->chan);
drivers/dma/xilinx/zynqmp_dma.c
390
spin_lock_irqsave(&chan->lock, irqflags);
drivers/dma/xilinx/zynqmp_dma.c
393
if (!list_empty(&chan->pending_list)) {
drivers/dma/xilinx/zynqmp_dma.c
394
desc = list_last_entry(&chan->pending_list,
drivers/dma/xilinx/zynqmp_dma.c
405
list_add_tail(&new->node, &chan->pending_list);
drivers/dma/xilinx/zynqmp_dma.c
406
spin_unlock_irqrestore(&chan->lock, irqflags);
drivers/dma/xilinx/zynqmp_dma.c
418
zynqmp_dma_get_descriptor(struct zynqmp_dma_chan *chan)
drivers/dma/xilinx/zynqmp_dma.c
423
spin_lock_irqsave(&chan->lock, irqflags);
drivers/dma/xilinx/zynqmp_dma.c
424
desc = list_first_entry(&chan->free_list,
drivers/dma/xilinx/zynqmp_dma.c
427
spin_unlock_irqrestore(&chan->lock, irqflags);
drivers/dma/xilinx/zynqmp_dma.c
431
memset((void *)desc->src_v, 0, ZYNQMP_DMA_DESC_SIZE(chan));
drivers/dma/xilinx/zynqmp_dma.c
432
memset((void *)desc->dst_v, 0, ZYNQMP_DMA_DESC_SIZE(chan));
drivers/dma/xilinx/zynqmp_dma.c
442
static void zynqmp_dma_free_descriptor(struct zynqmp_dma_chan *chan,
drivers/dma/xilinx/zynqmp_dma.c
447
chan->desc_free_cnt++;
drivers/dma/xilinx/zynqmp_dma.c
448
list_move_tail(&sdesc->node, &chan->free_list);
drivers/dma/xilinx/zynqmp_dma.c
450
chan->desc_free_cnt++;
drivers/dma/xilinx/zynqmp_dma.c
451
list_move_tail(&child->node, &chan->free_list);
drivers/dma/xilinx/zynqmp_dma.c
460
static void zynqmp_dma_free_desc_list(struct zynqmp_dma_chan *chan,
drivers/dma/xilinx/zynqmp_dma.c
466
zynqmp_dma_free_descriptor(chan, desc);
drivers/dma/xilinx/zynqmp_dma.c
477
struct zynqmp_dma_chan *chan = to_chan(dchan);
drivers/dma/xilinx/zynqmp_dma.c
481
ret = pm_runtime_resume_and_get(chan->dev);
drivers/dma/xilinx/zynqmp_dma.c
485
chan->sw_desc_pool = kzalloc_objs(*desc, ZYNQMP_DMA_NUM_DESCS);
drivers/dma/xilinx/zynqmp_dma.c
486
if (!chan->sw_desc_pool)
drivers/dma/xilinx/zynqmp_dma.c
489
chan->idle = true;
drivers/dma/xilinx/zynqmp_dma.c
490
chan->desc_free_cnt = ZYNQMP_DMA_NUM_DESCS;
drivers/dma/xilinx/zynqmp_dma.c
492
INIT_LIST_HEAD(&chan->free_list);
drivers/dma/xilinx/zynqmp_dma.c
495
desc = chan->sw_desc_pool + i;
drivers/dma/xilinx/zynqmp_dma.c
496
dma_async_tx_descriptor_init(&desc->async_tx, &chan->common);
drivers/dma/xilinx/zynqmp_dma.c
498
list_add_tail(&desc->node, &chan->free_list);
drivers/dma/xilinx/zynqmp_dma.c
501
chan->desc_pool_v = dma_alloc_coherent(chan->dev,
drivers/dma/xilinx/zynqmp_dma.c
502
(2 * ZYNQMP_DMA_DESC_SIZE(chan) *
drivers/dma/xilinx/zynqmp_dma.c
504
&chan->desc_pool_p, GFP_KERNEL);
drivers/dma/xilinx/zynqmp_dma.c
505
if (!chan->desc_pool_v)
drivers/dma/xilinx/zynqmp_dma.c
509
desc = chan->sw_desc_pool + i;
drivers/dma/xilinx/zynqmp_dma.c
510
desc->src_v = (struct zynqmp_dma_desc_ll *) (chan->desc_pool_v +
drivers/dma/xilinx/zynqmp_dma.c
511
(i * ZYNQMP_DMA_DESC_SIZE(chan) * 2));
drivers/dma/xilinx/zynqmp_dma.c
513
desc->src_p = chan->desc_pool_p +
drivers/dma/xilinx/zynqmp_dma.c
514
(i * ZYNQMP_DMA_DESC_SIZE(chan) * 2);
drivers/dma/xilinx/zynqmp_dma.c
515
desc->dst_p = desc->src_p + ZYNQMP_DMA_DESC_SIZE(chan);
drivers/dma/xilinx/zynqmp_dma.c
525
static void zynqmp_dma_start(struct zynqmp_dma_chan *chan)
drivers/dma/xilinx/zynqmp_dma.c
527
writel(ZYNQMP_DMA_INT_EN_DEFAULT_MASK, chan->regs + ZYNQMP_DMA_IER);
drivers/dma/xilinx/zynqmp_dma.c
528
writel(0, chan->regs + ZYNQMP_DMA_TOTAL_BYTE);
drivers/dma/xilinx/zynqmp_dma.c
529
chan->idle = false;
drivers/dma/xilinx/zynqmp_dma.c
530
writel(ZYNQMP_DMA_ENABLE, chan->regs + ZYNQMP_DMA_CTRL2);
drivers/dma/xilinx/zynqmp_dma.c
538
static void zynqmp_dma_handle_ovfl_int(struct zynqmp_dma_chan *chan, u32 status)
drivers/dma/xilinx/zynqmp_dma.c
541
writel(0, chan->regs + ZYNQMP_DMA_TOTAL_BYTE);
drivers/dma/xilinx/zynqmp_dma.c
543
readl(chan->regs + ZYNQMP_DMA_IRQ_DST_ACCT);
drivers/dma/xilinx/zynqmp_dma.c
545
readl(chan->regs + ZYNQMP_DMA_IRQ_SRC_ACCT);
drivers/dma/xilinx/zynqmp_dma.c
548
static void zynqmp_dma_config(struct zynqmp_dma_chan *chan)
drivers/dma/xilinx/zynqmp_dma.c
552
val = readl(chan->regs + ZYNQMP_DMA_CTRL0);
drivers/dma/xilinx/zynqmp_dma.c
554
writel(val, chan->regs + ZYNQMP_DMA_CTRL0);
drivers/dma/xilinx/zynqmp_dma.c
556
val = readl(chan->regs + ZYNQMP_DMA_DATA_ATTR);
drivers/dma/xilinx/zynqmp_dma.c
557
burst_val = __ilog2_u32(chan->src_burst_len);
drivers/dma/xilinx/zynqmp_dma.c
560
burst_val = __ilog2_u32(chan->dst_burst_len);
drivers/dma/xilinx/zynqmp_dma.c
563
writel(val, chan->regs + ZYNQMP_DMA_DATA_ATTR);
drivers/dma/xilinx/zynqmp_dma.c
576
struct zynqmp_dma_chan *chan = to_chan(dchan);
drivers/dma/xilinx/zynqmp_dma.c
578
chan->src_burst_len = clamp(config->src_maxburst, 1U,
drivers/dma/xilinx/zynqmp_dma.c
580
chan->dst_burst_len = clamp(config->dst_maxburst, 1U,
drivers/dma/xilinx/zynqmp_dma.c
590
static void zynqmp_dma_start_transfer(struct zynqmp_dma_chan *chan)
drivers/dma/xilinx/zynqmp_dma.c
594
if (!chan->idle)
drivers/dma/xilinx/zynqmp_dma.c
597
zynqmp_dma_config(chan);
drivers/dma/xilinx/zynqmp_dma.c
599
desc = list_first_entry_or_null(&chan->pending_list,
drivers/dma/xilinx/zynqmp_dma.c
604
list_splice_tail_init(&chan->pending_list, &chan->active_list);
drivers/dma/xilinx/zynqmp_dma.c
605
zynqmp_dma_update_desc_to_ctrlr(chan, desc);
drivers/dma/xilinx/zynqmp_dma.c
606
zynqmp_dma_start(chan);
drivers/dma/xilinx/zynqmp_dma.c
614
static void zynqmp_dma_chan_desc_cleanup(struct zynqmp_dma_chan *chan)
drivers/dma/xilinx/zynqmp_dma.c
619
spin_lock_irqsave(&chan->lock, irqflags);
drivers/dma/xilinx/zynqmp_dma.c
621
list_for_each_entry_safe(desc, next, &chan->done_list, node) {
drivers/dma/xilinx/zynqmp_dma.c
626
spin_unlock_irqrestore(&chan->lock, irqflags);
drivers/dma/xilinx/zynqmp_dma.c
628
spin_lock_irqsave(&chan->lock, irqflags);
drivers/dma/xilinx/zynqmp_dma.c
632
zynqmp_dma_free_descriptor(chan, desc);
drivers/dma/xilinx/zynqmp_dma.c
635
spin_unlock_irqrestore(&chan->lock, irqflags);
drivers/dma/xilinx/zynqmp_dma.c
642
static void zynqmp_dma_complete_descriptor(struct zynqmp_dma_chan *chan)
drivers/dma/xilinx/zynqmp_dma.c
646
desc = list_first_entry_or_null(&chan->active_list,
drivers/dma/xilinx/zynqmp_dma.c
652
list_add_tail(&desc->node, &chan->done_list);
drivers/dma/xilinx/zynqmp_dma.c
661
struct zynqmp_dma_chan *chan = to_chan(dchan);
drivers/dma/xilinx/zynqmp_dma.c
664
spin_lock_irqsave(&chan->lock, irqflags);
drivers/dma/xilinx/zynqmp_dma.c
665
zynqmp_dma_start_transfer(chan);
drivers/dma/xilinx/zynqmp_dma.c
666
spin_unlock_irqrestore(&chan->lock, irqflags);
drivers/dma/xilinx/zynqmp_dma.c
673
static void zynqmp_dma_free_descriptors(struct zynqmp_dma_chan *chan)
drivers/dma/xilinx/zynqmp_dma.c
677
spin_lock_irqsave(&chan->lock, irqflags);
drivers/dma/xilinx/zynqmp_dma.c
678
zynqmp_dma_free_desc_list(chan, &chan->active_list);
drivers/dma/xilinx/zynqmp_dma.c
679
zynqmp_dma_free_desc_list(chan, &chan->pending_list);
drivers/dma/xilinx/zynqmp_dma.c
680
zynqmp_dma_free_desc_list(chan, &chan->done_list);
drivers/dma/xilinx/zynqmp_dma.c
681
spin_unlock_irqrestore(&chan->lock, irqflags);
drivers/dma/xilinx/zynqmp_dma.c
690
struct zynqmp_dma_chan *chan = to_chan(dchan);
drivers/dma/xilinx/zynqmp_dma.c
692
zynqmp_dma_free_descriptors(chan);
drivers/dma/xilinx/zynqmp_dma.c
693
dma_free_coherent(chan->dev,
drivers/dma/xilinx/zynqmp_dma.c
694
(2 * ZYNQMP_DMA_DESC_SIZE(chan) * ZYNQMP_DMA_NUM_DESCS),
drivers/dma/xilinx/zynqmp_dma.c
695
chan->desc_pool_v, chan->desc_pool_p);
drivers/dma/xilinx/zynqmp_dma.c
696
kfree(chan->sw_desc_pool);
drivers/dma/xilinx/zynqmp_dma.c
697
pm_runtime_put_autosuspend(chan->dev);
drivers/dma/xilinx/zynqmp_dma.c
704
static void zynqmp_dma_reset(struct zynqmp_dma_chan *chan)
drivers/dma/xilinx/zynqmp_dma.c
708
writel(ZYNQMP_DMA_IDS_DEFAULT_MASK, chan->regs + ZYNQMP_DMA_IDS);
drivers/dma/xilinx/zynqmp_dma.c
710
spin_lock_irqsave(&chan->lock, irqflags);
drivers/dma/xilinx/zynqmp_dma.c
711
zynqmp_dma_complete_descriptor(chan);
drivers/dma/xilinx/zynqmp_dma.c
712
spin_unlock_irqrestore(&chan->lock, irqflags);
drivers/dma/xilinx/zynqmp_dma.c
713
zynqmp_dma_chan_desc_cleanup(chan);
drivers/dma/xilinx/zynqmp_dma.c
714
zynqmp_dma_free_descriptors(chan);
drivers/dma/xilinx/zynqmp_dma.c
716
zynqmp_dma_init(chan);
drivers/dma/xilinx/zynqmp_dma.c
728
struct zynqmp_dma_chan *chan = (struct zynqmp_dma_chan *)data;
drivers/dma/xilinx/zynqmp_dma.c
732
isr = readl(chan->regs + ZYNQMP_DMA_ISR);
drivers/dma/xilinx/zynqmp_dma.c
733
imr = readl(chan->regs + ZYNQMP_DMA_IMR);
drivers/dma/xilinx/zynqmp_dma.c
736
writel(isr, chan->regs + ZYNQMP_DMA_ISR);
drivers/dma/xilinx/zynqmp_dma.c
738
tasklet_schedule(&chan->tasklet);
drivers/dma/xilinx/zynqmp_dma.c
743
chan->idle = true;
drivers/dma/xilinx/zynqmp_dma.c
746
chan->err = true;
drivers/dma/xilinx/zynqmp_dma.c
747
tasklet_schedule(&chan->tasklet);
drivers/dma/xilinx/zynqmp_dma.c
748
dev_err(chan->dev, "Channel %p has errors\n", chan);
drivers/dma/xilinx/zynqmp_dma.c
753
zynqmp_dma_handle_ovfl_int(chan, status);
drivers/dma/xilinx/zynqmp_dma.c
754
dev_dbg(chan->dev, "Channel %p overflow interrupt\n", chan);
drivers/dma/xilinx/zynqmp_dma.c
767
struct zynqmp_dma_chan *chan = from_tasklet(chan, t, tasklet);
drivers/dma/xilinx/zynqmp_dma.c
771
if (chan->err) {
drivers/dma/xilinx/zynqmp_dma.c
772
zynqmp_dma_reset(chan);
drivers/dma/xilinx/zynqmp_dma.c
773
chan->err = false;
drivers/dma/xilinx/zynqmp_dma.c
777
spin_lock_irqsave(&chan->lock, irqflags);
drivers/dma/xilinx/zynqmp_dma.c
778
count = readl(chan->regs + ZYNQMP_DMA_IRQ_DST_ACCT);
drivers/dma/xilinx/zynqmp_dma.c
780
zynqmp_dma_complete_descriptor(chan);
drivers/dma/xilinx/zynqmp_dma.c
783
spin_unlock_irqrestore(&chan->lock, irqflags);
drivers/dma/xilinx/zynqmp_dma.c
785
zynqmp_dma_chan_desc_cleanup(chan);
drivers/dma/xilinx/zynqmp_dma.c
787
if (chan->idle) {
drivers/dma/xilinx/zynqmp_dma.c
788
spin_lock_irqsave(&chan->lock, irqflags);
drivers/dma/xilinx/zynqmp_dma.c
789
zynqmp_dma_start_transfer(chan);
drivers/dma/xilinx/zynqmp_dma.c
790
spin_unlock_irqrestore(&chan->lock, irqflags);
drivers/dma/xilinx/zynqmp_dma.c
802
struct zynqmp_dma_chan *chan = to_chan(dchan);
drivers/dma/xilinx/zynqmp_dma.c
804
writel(ZYNQMP_DMA_IDS_DEFAULT_MASK, chan->regs + ZYNQMP_DMA_IDS);
drivers/dma/xilinx/zynqmp_dma.c
805
zynqmp_dma_free_descriptors(chan);
drivers/dma/xilinx/zynqmp_dma.c
816
struct zynqmp_dma_chan *chan = to_chan(dchan);
drivers/dma/xilinx/zynqmp_dma.c
818
tasklet_kill(&chan->tasklet);
drivers/dma/xilinx/zynqmp_dma.c
835
struct zynqmp_dma_chan *chan;
drivers/dma/xilinx/zynqmp_dma.c
842
chan = to_chan(dchan);
drivers/dma/xilinx/zynqmp_dma.c
846
spin_lock_irqsave(&chan->lock, irqflags);
drivers/dma/xilinx/zynqmp_dma.c
847
if (desc_cnt > chan->desc_free_cnt) {
drivers/dma/xilinx/zynqmp_dma.c
848
spin_unlock_irqrestore(&chan->lock, irqflags);
drivers/dma/xilinx/zynqmp_dma.c
849
dev_dbg(chan->dev, "chan %p descs are not available\n", chan);
drivers/dma/xilinx/zynqmp_dma.c
852
chan->desc_free_cnt = chan->desc_free_cnt - desc_cnt;
drivers/dma/xilinx/zynqmp_dma.c
853
spin_unlock_irqrestore(&chan->lock, irqflags);
drivers/dma/xilinx/zynqmp_dma.c
857
new = zynqmp_dma_get_descriptor(chan);
drivers/dma/xilinx/zynqmp_dma.c
861
zynqmp_dma_config_sg_ll_desc(chan, desc, dma_src,
drivers/dma/xilinx/zynqmp_dma.c
873
zynqmp_dma_desc_config_eod(chan, desc);
drivers/dma/xilinx/zynqmp_dma.c
883
static void zynqmp_dma_chan_remove(struct zynqmp_dma_chan *chan)
drivers/dma/xilinx/zynqmp_dma.c
885
if (!chan)
drivers/dma/xilinx/zynqmp_dma.c
888
if (chan->irq)
drivers/dma/xilinx/zynqmp_dma.c
889
devm_free_irq(chan->zdev->dev, chan->irq, chan);
drivers/dma/xilinx/zynqmp_dma.c
890
tasklet_kill(&chan->tasklet);
drivers/dma/xilinx/zynqmp_dma.c
891
list_del(&chan->common.device_node);
drivers/dma/xilinx/zynqmp_dma.c
904
struct zynqmp_dma_chan *chan;
drivers/dma/xilinx/zynqmp_dma.c
909
chan = devm_kzalloc(zdev->dev, sizeof(*chan), GFP_KERNEL);
drivers/dma/xilinx/zynqmp_dma.c
910
if (!chan)
drivers/dma/xilinx/zynqmp_dma.c
912
chan->dev = zdev->dev;
drivers/dma/xilinx/zynqmp_dma.c
913
chan->zdev = zdev;
drivers/dma/xilinx/zynqmp_dma.c
915
chan->regs = devm_platform_ioremap_resource(pdev, 0);
drivers/dma/xilinx/zynqmp_dma.c
916
if (IS_ERR(chan->regs))
drivers/dma/xilinx/zynqmp_dma.c
917
return PTR_ERR(chan->regs);
drivers/dma/xilinx/zynqmp_dma.c
919
chan->bus_width = ZYNQMP_DMA_BUS_WIDTH_64;
drivers/dma/xilinx/zynqmp_dma.c
920
chan->dst_burst_len = ZYNQMP_DMA_MAX_DST_BURST_LEN;
drivers/dma/xilinx/zynqmp_dma.c
921
chan->src_burst_len = ZYNQMP_DMA_MAX_SRC_BURST_LEN;
drivers/dma/xilinx/zynqmp_dma.c
922
err = of_property_read_u32(node, "xlnx,bus-width", &chan->bus_width);
drivers/dma/xilinx/zynqmp_dma.c
928
if (chan->bus_width != ZYNQMP_DMA_BUS_WIDTH_64 &&
drivers/dma/xilinx/zynqmp_dma.c
929
chan->bus_width != ZYNQMP_DMA_BUS_WIDTH_128) {
drivers/dma/xilinx/zynqmp_dma.c
936
chan->irq_offset = match_data->offset;
drivers/dma/xilinx/zynqmp_dma.c
938
chan->is_dmacoherent = of_property_read_bool(node, "dma-coherent");
drivers/dma/xilinx/zynqmp_dma.c
939
zdev->chan = chan;
drivers/dma/xilinx/zynqmp_dma.c
940
tasklet_setup(&chan->tasklet, zynqmp_dma_do_tasklet);
drivers/dma/xilinx/zynqmp_dma.c
941
spin_lock_init(&chan->lock);
drivers/dma/xilinx/zynqmp_dma.c
942
INIT_LIST_HEAD(&chan->active_list);
drivers/dma/xilinx/zynqmp_dma.c
943
INIT_LIST_HEAD(&chan->pending_list);
drivers/dma/xilinx/zynqmp_dma.c
944
INIT_LIST_HEAD(&chan->done_list);
drivers/dma/xilinx/zynqmp_dma.c
945
INIT_LIST_HEAD(&chan->free_list);
drivers/dma/xilinx/zynqmp_dma.c
947
dma_cookie_init(&chan->common);
drivers/dma/xilinx/zynqmp_dma.c
948
chan->common.device = &zdev->common;
drivers/dma/xilinx/zynqmp_dma.c
949
list_add_tail(&chan->common.device_node, &zdev->common.channels);
drivers/dma/xilinx/zynqmp_dma.c
951
zynqmp_dma_init(chan);
drivers/dma/xilinx/zynqmp_dma.c
952
chan->irq = platform_get_irq(pdev, 0);
drivers/dma/xilinx/zynqmp_dma.c
953
if (chan->irq < 0)
drivers/dma/xilinx/zynqmp_dma.c
955
err = devm_request_irq(&pdev->dev, chan->irq, zynqmp_dma_irq_handler, 0,
drivers/dma/xilinx/zynqmp_dma.c
956
"zynqmp-dma", chan);
drivers/dma/xilinx/zynqmp_dma.c
960
chan->desc_size = sizeof(struct zynqmp_dma_desc_ll);
drivers/dma/xilinx/zynqmp_dma.c
961
chan->idle = true;
drivers/dma/xilinx/zynqmp_dma.c
977
return dma_get_slave_channel(&zdev->chan->common);
drivers/dpll/zl3073x/chan.c
102
for (i = 0; i < ARRAY_SIZE(chan->ref_prio); i++) {
drivers/dpll/zl3073x/chan.c
104
&chan->ref_prio[i]);
drivers/dpll/zl3073x/chan.c
122
return &zldev->chan[index];
drivers/dpll/zl3073x/chan.c
139
const struct zl3073x_chan *chan)
drivers/dpll/zl3073x/chan.c
141
struct zl3073x_chan *dchan = &zldev->chan[index];
drivers/dpll/zl3073x/chan.c
145
if (!memcmp(&dchan->cfg, &chan->cfg, sizeof(chan->cfg)))
drivers/dpll/zl3073x/chan.c
149
if (dchan->mode_refsel != chan->mode_refsel) {
drivers/dpll/zl3073x/chan.c
151
chan->mode_refsel);
drivers/dpll/zl3073x/chan.c
154
dchan->mode_refsel = chan->mode_refsel;
drivers/dpll/zl3073x/chan.c
158
if (!memcmp(dchan->ref_prio, chan->ref_prio, sizeof(chan->ref_prio))) {
drivers/dpll/zl3073x/chan.c
159
dchan->cfg = chan->cfg;
drivers/dpll/zl3073x/chan.c
172
for (i = 0; i < ARRAY_SIZE(chan->ref_prio); i++) {
drivers/dpll/zl3073x/chan.c
173
if (dchan->ref_prio[i] != chan->ref_prio[i]) {
drivers/dpll/zl3073x/chan.c
176
chan->ref_prio[i]);
drivers/dpll/zl3073x/chan.c
189
dchan->cfg = chan->cfg;
drivers/dpll/zl3073x/chan.c
20
struct zl3073x_chan *chan = &zldev->chan[index];
drivers/dpll/zl3073x/chan.c
25
&chan->mon_status);
drivers/dpll/zl3073x/chan.c
30
&chan->refsel_status);
drivers/dpll/zl3073x/chan.c
54
chan->df_offset = sign_extend64(val, 47);
drivers/dpll/zl3073x/chan.c
71
struct zl3073x_chan *chan = &zldev->chan[index];
drivers/dpll/zl3073x/chan.c
75
&chan->mode_refsel);
drivers/dpll/zl3073x/chan.c
80
zl3073x_chan_mode_get(chan), zl3073x_chan_ref_get(chan));
drivers/dpll/zl3073x/chan.c
88
index, zl3073x_chan_lock_state_get(chan),
drivers/dpll/zl3073x/chan.c
89
zl3073x_chan_is_ho_ready(chan) ? 1 : 0,
drivers/dpll/zl3073x/chan.c
90
zl3073x_chan_refsel_state_get(chan),
drivers/dpll/zl3073x/chan.c
91
zl3073x_chan_refsel_ref_get(chan));
drivers/dpll/zl3073x/chan.h
104
zl3073x_chan_ref_prio_get(const struct zl3073x_chan *chan, u8 ref)
drivers/dpll/zl3073x/chan.h
106
u8 val = chan->ref_prio[ref / 2];
drivers/dpll/zl3073x/chan.h
121
zl3073x_chan_ref_prio_set(struct zl3073x_chan *chan, u8 ref, u8 prio)
drivers/dpll/zl3073x/chan.h
123
u8 *val = &chan->ref_prio[ref / 2];
drivers/dpll/zl3073x/chan.h
139
zl3073x_chan_ref_is_selectable(const struct zl3073x_chan *chan, u8 ref)
drivers/dpll/zl3073x/chan.h
141
return zl3073x_chan_ref_prio_get(chan, ref) != ZL_DPLL_REF_PRIO_NONE;
drivers/dpll/zl3073x/chan.h
150
static inline u8 zl3073x_chan_lock_state_get(const struct zl3073x_chan *chan)
drivers/dpll/zl3073x/chan.h
152
return FIELD_GET(ZL_DPLL_MON_STATUS_STATE, chan->mon_status);
drivers/dpll/zl3073x/chan.h
161
static inline bool zl3073x_chan_is_ho_ready(const struct zl3073x_chan *chan)
drivers/dpll/zl3073x/chan.h
163
return !!FIELD_GET(ZL_DPLL_MON_STATUS_HO_READY, chan->mon_status);
drivers/dpll/zl3073x/chan.h
172
static inline u8 zl3073x_chan_refsel_state_get(const struct zl3073x_chan *chan)
drivers/dpll/zl3073x/chan.h
174
return FIELD_GET(ZL_DPLL_REFSEL_STATUS_STATE, chan->refsel_status);
drivers/dpll/zl3073x/chan.h
183
static inline u8 zl3073x_chan_refsel_ref_get(const struct zl3073x_chan *chan)
drivers/dpll/zl3073x/chan.h
185
return FIELD_GET(ZL_DPLL_REFSEL_STATUS_REFSEL, chan->refsel_status);
drivers/dpll/zl3073x/chan.h
38
const struct zl3073x_chan *chan);
drivers/dpll/zl3073x/chan.h
49
zl3073x_chan_df_offset_get(const struct zl3073x_chan *chan)
drivers/dpll/zl3073x/chan.h
51
return chan->df_offset;
drivers/dpll/zl3073x/chan.h
60
static inline u8 zl3073x_chan_mode_get(const struct zl3073x_chan *chan)
drivers/dpll/zl3073x/chan.h
62
return FIELD_GET(ZL_DPLL_MODE_REFSEL_MODE, chan->mode_refsel);
drivers/dpll/zl3073x/chan.h
71
static inline u8 zl3073x_chan_ref_get(const struct zl3073x_chan *chan)
drivers/dpll/zl3073x/chan.h
73
return FIELD_GET(ZL_DPLL_MODE_REFSEL_REF, chan->mode_refsel);
drivers/dpll/zl3073x/chan.h
81
static inline void zl3073x_chan_mode_set(struct zl3073x_chan *chan, u8 mode)
drivers/dpll/zl3073x/chan.h
83
FIELD_MODIFY(ZL_DPLL_MODE_REFSEL_MODE, &chan->mode_refsel, mode);
drivers/dpll/zl3073x/chan.h
91
static inline void zl3073x_chan_ref_set(struct zl3073x_chan *chan, u8 ref)
drivers/dpll/zl3073x/chan.h
93
FIELD_MODIFY(ZL_DPLL_MODE_REFSEL_REF, &chan->mode_refsel, ref);
drivers/dpll/zl3073x/core.h
72
struct zl3073x_chan chan[ZL3073X_MAX_CHANNELS];
drivers/dpll/zl3073x/dpll.c
1017
const struct zl3073x_chan *chan;
drivers/dpll/zl3073x/dpll.c
1019
chan = zl3073x_chan_state_get(zldpll->dev, zldpll->id);
drivers/dpll/zl3073x/dpll.c
1021
switch (zl3073x_chan_mode_get(chan)) {
drivers/dpll/zl3073x/dpll.c
1032
switch (zl3073x_chan_lock_state_get(chan)) {
drivers/dpll/zl3073x/dpll.c
1034
if (zl3073x_chan_is_ho_ready(chan))
drivers/dpll/zl3073x/dpll.c
1046
chan->mon_status);
drivers/dpll/zl3073x/dpll.c
1060
const struct zl3073x_chan *chan;
drivers/dpll/zl3073x/dpll.c
1062
chan = zl3073x_chan_state_get(zldpll->dev, zldpll->id);
drivers/dpll/zl3073x/dpll.c
1069
if (zl3073x_chan_mode_get(chan) != ZL_DPLL_MODE_REFSEL_MODE_NCO)
drivers/dpll/zl3073x/dpll.c
1082
const struct zl3073x_chan *chan;
drivers/dpll/zl3073x/dpll.c
1084
chan = zl3073x_chan_state_get(zldpll->dev, zldpll->id);
drivers/dpll/zl3073x/dpll.c
1086
switch (zl3073x_chan_mode_get(chan)) {
drivers/dpll/zl3073x/dpll.c
1158
struct zl3073x_chan chan;
drivers/dpll/zl3073x/dpll.c
1162
chan = *zl3073x_chan_state_get(zldpll->dev, zldpll->id);
drivers/dpll/zl3073x/dpll.c
1163
ref = zl3073x_chan_refsel_ref_get(&chan);
drivers/dpll/zl3073x/dpll.c
1187
!zl3073x_chan_ref_is_selectable(&chan, ref)) {
drivers/dpll/zl3073x/dpll.c
1193
zl3073x_chan_ref_prio_set(&chan, ref,
drivers/dpll/zl3073x/dpll.c
1201
zl3073x_chan_mode_set(&chan, hw_mode);
drivers/dpll/zl3073x/dpll.c
1203
zl3073x_chan_ref_set(&chan, ref);
drivers/dpll/zl3073x/dpll.c
1205
rc = zl3073x_chan_state_set(zldpll->dev, zldpll->id, &chan);
drivers/dpll/zl3073x/dpll.c
1401
const struct zl3073x_chan *chan;
drivers/dpll/zl3073x/dpll.c
1404
chan = zl3073x_chan_state_get(zldpll->dev, zldpll->id);
drivers/dpll/zl3073x/dpll.c
1406
pin->prio = zl3073x_chan_ref_prio_get(chan, ref);
drivers/dpll/zl3073x/dpll.c
1515
const struct zl3073x_chan *chan;
drivers/dpll/zl3073x/dpll.c
1519
chan = zl3073x_chan_state_get(zldev, zldpll->id);
drivers/dpll/zl3073x/dpll.c
1526
if (zl3073x_chan_mode_get(chan) == ZL_DPLL_MODE_REFSEL_MODE_NCO)
drivers/dpll/zl3073x/dpll.c
1752
const struct zl3073x_chan *chan;
drivers/dpll/zl3073x/dpll.c
1758
chan = zl3073x_chan_state_get(zldpll->dev, zldpll->id);
drivers/dpll/zl3073x/dpll.c
1759
ffo = mul_s64_u64_shr(zl3073x_chan_df_offset_get(chan),
drivers/dpll/zl3073x/dpll.c
234
struct zl3073x_chan chan;
drivers/dpll/zl3073x/dpll.c
286
chan = *zl3073x_chan_state_get(zldev, zldpll->id);
drivers/dpll/zl3073x/dpll.c
287
zl3073x_chan_ref_prio_set(&chan, sync_ref_id,
drivers/dpll/zl3073x/dpll.c
289
return zl3073x_chan_state_set(zldev, zldpll->id, &chan);
drivers/dpll/zl3073x/dpll.c
378
const struct zl3073x_chan *chan = zl3073x_chan_state_get(zldpll->dev,
drivers/dpll/zl3073x/dpll.c
383
state = zl3073x_chan_refsel_state_get(chan);
drivers/dpll/zl3073x/dpll.c
385
return zl3073x_chan_refsel_ref_get(chan);
drivers/dpll/zl3073x/dpll.c
556
const struct zl3073x_chan *chan;
drivers/dpll/zl3073x/dpll.c
559
chan = zl3073x_chan_state_get(zldpll->dev, zldpll->id);
drivers/dpll/zl3073x/dpll.c
561
mode = zl3073x_chan_mode_get(chan);
drivers/dpll/zl3073x/dpll.c
565
if (ref == zl3073x_chan_ref_get(chan))
drivers/dpll/zl3073x/dpll.c
571
if (zl3073x_chan_ref_is_selectable(chan, ref))
drivers/dpll/zl3073x/dpll.c
607
struct zl3073x_chan chan;
drivers/dpll/zl3073x/dpll.c
611
chan = *zl3073x_chan_state_get(zldpll->dev, zldpll->id);
drivers/dpll/zl3073x/dpll.c
613
mode = zl3073x_chan_mode_get(&chan);
drivers/dpll/zl3073x/dpll.c
619
zl3073x_chan_ref_set(&chan, ref);
drivers/dpll/zl3073x/dpll.c
631
zl3073x_chan_mode_set(&chan, mode);
drivers/dpll/zl3073x/dpll.c
640
zl3073x_chan_ref_set(&chan, ref);
drivers/dpll/zl3073x/dpll.c
642
zl3073x_chan_mode_set(&chan,
drivers/dpll/zl3073x/dpll.c
650
if (zl3073x_chan_ref_is_selectable(&chan, ref))
drivers/dpll/zl3073x/dpll.c
654
zl3073x_chan_ref_prio_set(&chan, ref, pin->prio);
drivers/dpll/zl3073x/dpll.c
656
if (!zl3073x_chan_ref_is_selectable(&chan, ref))
drivers/dpll/zl3073x/dpll.c
660
zl3073x_chan_ref_prio_set(&chan, ref,
drivers/dpll/zl3073x/dpll.c
674
rc = zl3073x_chan_state_set(zldpll->dev, zldpll->id, &chan);
drivers/dpll/zl3073x/dpll.c
703
struct zl3073x_chan chan;
drivers/dpll/zl3073x/dpll.c
711
chan = *zl3073x_chan_state_get(zldpll->dev, zldpll->id);
drivers/dpll/zl3073x/dpll.c
713
if (zl3073x_chan_ref_is_selectable(&chan, ref)) {
drivers/dpll/zl3073x/dpll.c
714
zl3073x_chan_ref_prio_set(&chan, ref, prio);
drivers/dpll/zl3073x/dpll.c
715
rc = zl3073x_chan_state_set(zldpll->dev, zldpll->id, &chan);
drivers/edac/amd64_edac.c
1161
static void debug_dump_dramcfg_low(struct amd64_pvt *pvt, u32 dclr, int chan)
drivers/edac/amd64_edac.c
1163
edac_dbg(1, "F2x%d90 (DRAM Cfg Low): 0x%08x\n", chan, dclr);
drivers/edac/amd64_edac.c
1166
u32 dcsm = pvt->csels[chan].csmasks[0];
drivers/edac/edac_mc.c
1058
if (chan == -1)
drivers/edac/edac_mc.c
1059
chan = dimm->cschannel;
drivers/edac/edac_mc.c
1060
else if (chan >= 0 && chan != dimm->cschannel)
drivers/edac/edac_mc.c
1061
chan = -2;
drivers/edac/edac_mc.c
1069
edac_inc_csrow(e, row, chan);
drivers/edac/edac_mc.c
238
struct rank_info *chan;
drivers/edac/edac_mc.c
240
chan = kzalloc_obj(**csr->channels);
drivers/edac/edac_mc.c
241
if (!chan)
drivers/edac/edac_mc.c
244
csr->channels[chn] = chan;
drivers/edac/edac_mc.c
245
chan->chan_idx = chn;
drivers/edac/edac_mc.c
246
chan->csrow = csr;
drivers/edac/edac_mc.c
272
struct rank_info *chan;
drivers/edac/edac_mc.c
275
chan = mci->csrows[row]->channels[chn];
drivers/edac/edac_mc.c
302
chan->dimm = dimm;
drivers/edac/edac_mc.c
82
static void edac_mc_dump_channel(struct rank_info *chan)
drivers/edac/edac_mc.c
84
edac_dbg(4, " channel->chan_idx = %d\n", chan->chan_idx);
drivers/edac/edac_mc.c
85
edac_dbg(4, " channel = %p\n", chan);
drivers/edac/edac_mc.c
86
edac_dbg(4, " channel->csrow = %p\n", chan->csrow);
drivers/edac/edac_mc.c
87
edac_dbg(4, " channel->dimm = %p\n", chan->dimm);
drivers/edac/edac_mc.c
893
static void edac_inc_csrow(struct edac_raw_error_desc *e, int row, int chan)
drivers/edac/edac_mc.c
902
edac_dbg(4, "csrow/channel to increment: (%d,%d)\n", row, chan);
drivers/edac/edac_mc.c
906
if (chan >= 0)
drivers/edac/edac_mc.c
907
mci->csrows[row]->channels[chan]->ce_count += count;
drivers/edac/edac_mc.c
953
int row = -1, chan = -1;
drivers/edac/edac_mc_sysfs.c
317
int row, chan;
drivers/edac/edac_mc_sysfs.c
330
for (chan = 0; chan < ri->nr_channels; chan++)
drivers/edac/edac_mc_sysfs.c
331
ri->channels[chan]->ce_count = 0;
drivers/edac/i10nm_base.c
852
static bool i10nm_check_ecc(struct skx_imc *imc, int chan)
drivers/edac/i10nm_base.c
856
mcmtr = I10NM_GET_MCMTR(imc, chan);
drivers/edac/i10nm_base.c
857
edac_dbg(1, "ch%d mcmtr reg %x\n", chan, mcmtr);
drivers/edac/i10nm_base.c
862
static bool i10nm_channel_disabled(struct skx_imc *imc, int chan)
drivers/edac/i10nm_base.c
864
u32 mcmtr = I10NM_GET_MCMTR(imc, chan);
drivers/edac/i10nm_base.c
866
edac_dbg(1, "mc%d ch%d mcmtr reg %x\n", imc->mc, chan, mcmtr);
drivers/edac/i5100_edac.c
357
int chan, int rank)
drivers/edac/i5100_edac.c
364
const int numrank = priv->dimm_numrank[chan][i];
drivers/edac/i5100_edac.c
368
return i * 2 + chan;
drivers/edac/i5100_edac.c
428
int chan,
drivers/edac/i5100_edac.c
445
chan, rank, -1,
drivers/edac/i5100_edac.c
450
int chan,
drivers/edac/i5100_edac.c
467
chan, rank, -1,
drivers/edac/i5100_edac.c
471
static void i5100_read_log(struct mem_ctl_info *mci, int chan,
drivers/edac/i5100_edac.c
475
struct pci_dev *pdev = (chan) ? priv->ch1mm : priv->ch0mm;
drivers/edac/i5100_edac.c
512
i5100_handle_ce(mci, chan, bank, rank, syndrome, cas, ras, msg);
drivers/edac/i5100_edac.c
534
i5100_handle_ue(mci, chan, bank, rank, syndrome, cas, ras, msg);
drivers/edac/i5100_edac.c
650
const unsigned int chan = i5100_csrow_to_chan(mci, csrow);
drivers/edac/i5100_edac.c
654
if (!priv->mtr[chan][chan_rank].present)
drivers/edac/i5100_edac.c
659
priv->mtr[chan][chan_rank].numcol +
drivers/edac/i5100_edac.c
660
priv->mtr[chan][chan_rank].numrow +
drivers/edac/i5100_edac.c
661
priv->mtr[chan][chan_rank].numbank;
drivers/edac/i5100_edac.c
842
const unsigned int chan = i5100_csrow_to_chan(mci, dimm->idx);
drivers/edac/i5100_edac.c
850
dimm->dtype = (priv->mtr[chan][rank].width == 4) ?
drivers/edac/i5100_edac.c
855
i5100_rank_to_slot(mci, chan, rank));
drivers/edac/i5100_edac.c
858
chan, rank, (long)PAGES_TO_MiB(npages));
drivers/edac/i7core_edac.c
1524
const int chan,
drivers/edac/i7core_edac.c
1535
add2 = new2 - pvt->rdimm_last_ce_count[chan][2];
drivers/edac/i7core_edac.c
1536
add1 = new1 - pvt->rdimm_last_ce_count[chan][1];
drivers/edac/i7core_edac.c
1537
add0 = new0 - pvt->rdimm_last_ce_count[chan][0];
drivers/edac/i7core_edac.c
1541
pvt->rdimm_ce_count[chan][2] += add2;
drivers/edac/i7core_edac.c
1545
pvt->rdimm_ce_count[chan][1] += add1;
drivers/edac/i7core_edac.c
1549
pvt->rdimm_ce_count[chan][0] += add0;
drivers/edac/i7core_edac.c
1554
pvt->rdimm_last_ce_count[chan][2] = new2;
drivers/edac/i7core_edac.c
1555
pvt->rdimm_last_ce_count[chan][1] = new1;
drivers/edac/i7core_edac.c
1556
pvt->rdimm_last_ce_count[chan][0] = new0;
drivers/edac/i7core_edac.c
1562
chan, 0, -1, "error", "");
drivers/edac/i7core_edac.c
1566
chan, 1, -1, "error", "");
drivers/edac/i7core_edac.c
1570
chan, 2, -1, "error", "");
drivers/edac/i82975x_edac.c
222
u8 chan; /* the channel is bit 0 of EAP */
drivers/edac/i82975x_edac.c
280
int row, chan;
drivers/edac/i82975x_edac.c
310
chan = (mci->csrows[row]->nr_channels == 1) ? 0 : info->eap & 1;
drivers/edac/i82975x_edac.c
313
(1 << mci->csrows[row]->channels[chan]->dimm->grain));
drivers/edac/i82975x_edac.c
323
row, chan ? chan : 0, -1,
drivers/edac/i82975x_edac.c
367
int index, chan;
drivers/edac/i82975x_edac.c
406
for (chan = 0; chan < csrow->nr_channels; chan++) {
drivers/edac/i82975x_edac.c
407
dimm = mci->csrows[index]->channels[chan]->dimm;
drivers/edac/i82975x_edac.c
411
snprintf(csrow->channels[chan]->dimm->label, EDAC_MC_LABEL_LEN, "DIMM %c%d",
drivers/edac/i82975x_edac.c
412
(chan == 0) ? 'A' : 'B',
drivers/edac/igen6_edac.c
1002
val = readl(imc->window + MAD_INTRA_CH0_OFFSET + chan * 4);
drivers/edac/igen6_edac.c
1003
imc->dimm_l_map[chan] = MAD_INTRA_CH_DIMM_L_MAP(val);
drivers/edac/igen6_edac.c
1005
val = readl(imc->window + MAD_DIMM_CH0_OFFSET + chan * 4);
drivers/edac/igen6_edac.c
1006
imc->dimm_l_size[chan] = MAD_DIMM_CH_DIMM_L_SIZE(val);
drivers/edac/igen6_edac.c
1007
imc->dimm_s_size[chan] = MAD_DIMM_CH_DIMM_S_SIZE(val);
drivers/edac/igen6_edac.c
172
enum dev_type (*get_dev_type)(struct igen6_imc *imc, int chan, int dimm_l);
drivers/edac/igen6_edac.c
176
void (*set_dimm_params)(struct igen6_imc *imc, int chan);
drivers/edac/igen6_edac.c
551
static enum dev_type ptl_h_get_dev_type(struct igen6_imc *imc, int chan, int dimm)
drivers/edac/igen6_edac.c
555
val = readl(imc->window + MAD_INTRA_CH0_OFFSET + chan * 4);
drivers/edac/igen6_edac.c
566
static u64 ptl_h_get_chan_size(struct igen6_imc *imc, int chan)
drivers/edac/igen6_edac.c
570
return field_get(res_cfg->reg_mad_inter_size_mask[chan], val) *
drivers/edac/igen6_edac.c
574
static u64 ptl_h_get_dimm_size(struct igen6_imc *imc, int chan, int dimm)
drivers/edac/igen6_edac.c
576
u32 val = readl(imc->window + MAD_INTRA_CH0_OFFSET + chan * 4);
drivers/edac/igen6_edac.c
582
enum dev_type dtype = ptl_h_get_dev_type(imc, chan, dimm);
drivers/edac/igen6_edac.c
627
static void ptl_h_set_dimm_params(struct igen6_imc *imc, int chan)
drivers/edac/igen6_edac.c
629
u64 dimm0_size = ptl_h_get_dimm_size(imc, chan, 0);
drivers/edac/igen6_edac.c
630
u64 dimm1_size = ptl_h_get_dimm_size(imc, chan, 1);
drivers/edac/igen6_edac.c
633
imc->dimm_s_size[chan] = dimm0_size;
drivers/edac/igen6_edac.c
634
imc->dimm_l_size[chan] = dimm1_size;
drivers/edac/igen6_edac.c
635
imc->dimm_l_map[chan] = 1;
drivers/edac/igen6_edac.c
637
imc->dimm_s_size[chan] = dimm1_size;
drivers/edac/igen6_edac.c
638
imc->dimm_l_size[chan] = dimm0_size;
drivers/edac/igen6_edac.c
639
imc->dimm_l_map[chan] = 0;
drivers/edac/igen6_edac.c
943
static bool large_dimm(struct igen6_imc *imc, int chan, int dimm)
drivers/edac/igen6_edac.c
945
return dimm == imc->dimm_l_map[chan];
drivers/edac/igen6_edac.c
948
static enum dev_type get_dev_type(struct igen6_imc *imc, int chan, int dimm)
drivers/edac/igen6_edac.c
953
return res_cfg->get_dev_type(imc, chan, dimm);
drivers/edac/igen6_edac.c
955
val = readl(imc->window + MAD_DIMM_CH0_OFFSET + chan * 4);
drivers/edac/igen6_edac.c
956
width = large_dimm(imc, chan, dimm) ? MAD_DIMM_CH_DLW(val) :
drivers/edac/igen6_edac.c
971
static u64 get_dimm_size(struct igen6_imc *imc, int chan, int dimm)
drivers/edac/igen6_edac.c
973
if (large_dimm(imc, chan, dimm))
drivers/edac/igen6_edac.c
974
return imc->dimm_l_size[chan];
drivers/edac/igen6_edac.c
976
return imc->dimm_s_size[chan];
drivers/edac/igen6_edac.c
993
static void set_dimm_params(struct igen6_imc *imc, int chan)
drivers/edac/igen6_edac.c
998
res_cfg->set_dimm_params(imc, chan);
drivers/edac/imh_base.c
397
static u32 read_imc_mcmtr(struct res_config *cfg, struct skx_imc *imc, int chan)
drivers/edac/imh_base.c
399
return (u32)skx_read_imc_reg(imc, chan, cfg->ddr_reg_mcmtr_offset, cfg->ddr_reg_mcmtr_width);
drivers/edac/imh_base.c
402
static u32 read_imc_dimmmtr(struct res_config *cfg, struct skx_imc *imc, int chan, int dimm)
drivers/edac/imh_base.c
404
return (u32)skx_read_imc_reg(imc, chan, cfg->ddr_reg_dimmmtr_offset +
drivers/edac/pnd2_edac.c
1109
daddr->chan = pmiidx;
drivers/edac/pnd2_edac.c
1116
addr, pmiaddr, daddr->chan, daddr->dimm, daddr->rank, daddr->bank, daddr->row, daddr->col);
drivers/edac/pnd2_edac.c
1186
errcode, daddr->chan, daddr->dimm, daddr->rank, daddr->row, daddr->bank, daddr->col);
drivers/edac/pnd2_edac.c
1192
m->addr & ~PAGE_MASK, 0, daddr->chan, daddr->dimm, -1, optype, msg);
drivers/edac/pnd2_edac.c
1439
m.addr, daddr.chan, daddr.dimm, daddr.rank, daddr.bank, daddr.row, daddr.col);
drivers/edac/pnd2_edac.c
55
int chan;
drivers/edac/sb_edac.c
1250
int mc, chan;
drivers/edac/sb_edac.c
1255
chan = GET_BITFIELD(reg, (entry*2) + 18, (entry*2) + 18 + 1);
drivers/edac/sb_edac.c
1257
return knl_channel_remap(mc, chan);
drivers/edac/sb_edac.c
588
#define knl_channel_remap(mc, chan) ((mc) ? (chan) : (chan) + 3)
drivers/edac/skx_base.c
124
d->imc[i].chan[m->mtype].cdev = pdev;
drivers/edac/skx_base.c
130
d->imc[i].chan[m->mtype - ERRCHAN0].edev = pdev;
drivers/edac/skx_base.c
190
pci_read_config_dword(imc->chan[0].cdev, 0x87c, &mcmtr);
drivers/edac/skx_base.c
194
pci_read_config_dword(imc->chan[i].cdev, 0x8C, &amap);
drivers/edac/skx_base.c
195
pci_read_config_dword(imc->chan[i].cdev, 0x400, &mcddrtcfg);
drivers/edac/skx_base.c
198
pci_read_config_dword(imc->chan[i].cdev,
drivers/edac/skx_base.c
244
edev = res->dev->imc[res->imc].chan[res->channel].edev;
drivers/edac/skx_base.c
381
pci_read_config_dword((d)->imc[mc].chan[0].cdev, 0x850 + 4 * (i), &(reg))
drivers/edac/skx_base.c
383
pci_read_config_dword((d)->imc[mc].chan[0].cdev, 0x880 + 4 * (i), &(reg))
drivers/edac/skx_base.c
385
pci_read_config_dword((d)->imc[mc].chan[ch].cdev, 0x90 + 4 * (i), &(reg))
drivers/edac/skx_base.c
456
pci_read_config_dword((d)->imc[mc].chan[ch].cdev, \
drivers/edac/skx_base.c
459
pci_read_config_dword((d)->imc[mc].chan[ch].cdev, \
drivers/edac/skx_base.c
475
if (res->dev->imc[res->imc].chan[res->channel].dimms[0].close_pg)
drivers/edac/skx_base.c
556
struct skx_dimm *dimm = &r->dev->imc[r->imc].chan[r->channel].dimms[r->dimm];
drivers/edac/skx_base.c
665
rc = skx_register_mci(&d->imc[i], &d->imc[i].chan[0].cdev->dev,
drivers/edac/skx_base.c
666
pci_name(d->imc[i].chan[0].cdev),
drivers/edac/skx_common.c
102
void skx_write_imc_reg(struct skx_imc *imc, int chan, u32 offset, u8 width, u64 val)
drivers/edac/skx_common.c
104
skx_writex(imc->mbase + imc->chan_mmio_sz * chan + offset, width, val);
drivers/edac/skx_common.c
108
static void enable_rrl(struct skx_imc *imc, int chan, struct reg_rrl *rrl,
drivers/edac/skx_common.c
1116
if (d->imc[i].chan[j].cdev)
drivers/edac/skx_common.c
1117
pci_dev_put(d->imc[i].chan[j].cdev);
drivers/edac/skx_common.c
121
v = skx_read_imc_reg(imc, chan, offset, width);
drivers/edac/skx_common.c
164
skx_write_imc_reg(imc, chan, offset, width, v);
drivers/edac/skx_common.c
167
static void enable_rrls(struct skx_imc *imc, int chan, struct reg_rrl *rrl,
drivers/edac/skx_common.c
171
enable_rrl(imc, chan, rrl, i, enable, rrl_ctl + i);
drivers/edac/skx_common.c
178
struct skx_channel *chan = imc->chan;
drivers/edac/skx_common.c
184
enable_rrls(imc, i, rrl_ddr[0], enable, chan[i].rrl_ctl[0]);
drivers/edac/skx_common.c
186
enable_rrls(imc, i, rrl_ddr[1], enable, chan[i].rrl_ctl[1]);
drivers/edac/skx_common.c
194
struct skx_channel *chan = imc->chan;
drivers/edac/skx_common.c
200
enable_rrls(imc, i, rrl_hbm[0], enable, chan[i].rrl_ctl[0]);
drivers/edac/skx_common.c
201
enable_rrls(imc, i, rrl_hbm[1], enable, chan[i].rrl_ctl[1]);
drivers/edac/skx_common.c
740
struct skx_imc *imc, int chan, int dimmno,
drivers/edac/skx_common.c
772
imc->mc, chan, dimmno, size, npages,
drivers/edac/skx_common.c
775
imc->chan[chan].dimms[dimmno].close_pg = GET_BITFIELD(mcmtr, 0, 0);
drivers/edac/skx_common.c
776
imc->chan[chan].dimms[dimmno].bank_xor_enable = GET_BITFIELD(mcmtr, 9, 9);
drivers/edac/skx_common.c
777
imc->chan[chan].dimms[dimmno].fine_grain_bank = GET_BITFIELD(amap, 0, 0);
drivers/edac/skx_common.c
778
imc->chan[chan].dimms[dimmno].rowbits = rows;
drivers/edac/skx_common.c
779
imc->chan[chan].dimms[dimmno].colbits = cols;
drivers/edac/skx_common.c
789
imc->src_id, imc->lmc, chan);
drivers/edac/skx_common.c
792
imc->src_id, imc->lmc, chan, dimmno);
drivers/edac/skx_common.c
799
int chan, int dimmno, const char *mod_str)
drivers/edac/skx_common.c
806
dev_handle = ACPI_NFIT_BUILD_DEVICE_HANDLE(dimmno, chan, imc->lmc,
drivers/edac/skx_common.c
838
imc->mc, chan, dimmno, size >> 20, dimm->nr_pages);
drivers/edac/skx_common.c
841
imc->src_id, imc->lmc, chan, dimmno);
drivers/edac/skx_common.c
96
u64 skx_read_imc_reg(struct skx_imc *imc, int chan, u32 offset, u8 width)
drivers/edac/skx_common.c
98
return skx_readx(imc->mbase + imc->chan_mmio_sz * chan + offset, width);
drivers/edac/skx_common.h
191
} chan[NUM_CHANNELS];
drivers/edac/skx_common.h
346
u64 skx_read_imc_reg(struct skx_imc *imc, int chan, u32 offset, u8 width);
drivers/edac/skx_common.h
347
void skx_write_imc_reg(struct skx_imc *imc, int chan, u32 offset, u8 width, u64 val);
drivers/edac/skx_common.h
369
struct skx_imc *imc, int chan, int dimmno,
drivers/edac/skx_common.h
373
int chan, int dimmno, const char *mod_str);
drivers/extcon/extcon-adc-jack.c
129
data->chan = devm_iio_channel_get(&pdev->dev, pdata->consumer_channel);
drivers/extcon/extcon-adc-jack.c
130
if (IS_ERR(data->chan))
drivers/extcon/extcon-adc-jack.c
131
return PTR_ERR(data->chan);
drivers/extcon/extcon-adc-jack.c
53
struct iio_channel *chan;
drivers/extcon/extcon-adc-jack.c
66
ret = iio_read_channel_raw(data->chan, &adc_val);
drivers/firewire/nosy.h
100
#define DMA_PREV_PCL(chan) (DMA_BREG(DMA0_PREV_PCL, chan))
drivers/firewire/nosy.h
107
#define DMA_CURRENT_PCL(chan) (DMA_BREG(DMA0_CURRENT_PCL, chan))
drivers/firewire/nosy.h
114
#define DMA_CHAN_STAT(chan) (DMA_BREG(DMA0_CHAN_STAT, chan))
drivers/firewire/nosy.h
128
#define DMA_CHAN_CTRL(chan) (DMA_BREG(DMA0_CHAN_CTRL, chan))
drivers/firewire/nosy.h
139
#define DMA_READY(chan) (DMA_BREG(DMA0_READY, chan))
drivers/firewire/nosy.h
157
#define DMA_WORD0_CMP_VALUE(chan) (DMA_SREG(DMA0_WORD0_CMP_VALUE, chan))
drivers/firewire/nosy.h
164
#define DMA_WORD0_CMP_ENABLE(chan) (DMA_SREG(DMA0_WORD0_CMP_ENABLE, chan))
drivers/firewire/nosy.h
171
#define DMA_WORD1_CMP_VALUE(chan) (DMA_SREG(DMA0_WORD1_CMP_VALUE, chan))
drivers/firewire/nosy.h
178
#define DMA_WORD1_CMP_ENABLE(chan) (DMA_SREG(DMA0_WORD1_CMP_ENABLE, chan))
drivers/firewire/nosy.h
46
#define PCI_INT_DMA_HLT(chan) (1 << (chan * 2))
drivers/firewire/nosy.h
47
#define PCI_INT_DMA_PCL(chan) (1 << (chan * 2 + 1))
drivers/firewire/nosy.h
59
#define DMA_BREG(base, chan) (base + chan * 0x20)
drivers/firewire/nosy.h
60
#define DMA_SREG(base, chan) (base + chan * 0x10)
drivers/firmware/arm_scmi/transports/mailbox.c
214
smbox->chan = mbox_request_channel(cl, tx ? 0 : p2a_chan);
drivers/firmware/arm_scmi/transports/mailbox.c
215
if (IS_ERR(smbox->chan)) {
drivers/firmware/arm_scmi/transports/mailbox.c
216
ret = PTR_ERR(smbox->chan);
drivers/firmware/arm_scmi/transports/mailbox.c
256
if (smbox && !IS_ERR(smbox->chan)) {
drivers/firmware/arm_scmi/transports/mailbox.c
257
mbox_free_channel(smbox->chan);
drivers/firmware/arm_scmi/transports/mailbox.c
261
smbox->chan = NULL;
drivers/firmware/arm_scmi/transports/mailbox.c
285
ret = mbox_send_message(smbox->chan, xfer);
drivers/firmware/arm_scmi/transports/mailbox.c
300
mbox_client_txdone(smbox->chan, ret);
drivers/firmware/arm_scmi/transports/mailbox.c
33
struct mbox_chan *chan;
drivers/firmware/arm_scmi/transports/mailbox.c
336
else if (smbox->chan)
drivers/firmware/arm_scmi/transports/mailbox.c
337
intr_chan = smbox->chan;
drivers/firmware/arm_scpi.c
238
struct mbox_chan *chan;
drivers/firmware/arm_scpi.c
478
u8 chan;
drivers/firmware/arm_scpi.c
489
chan = test_bit(cmd, scpi_info->cmd_priority) ? 1 : 0;
drivers/firmware/arm_scpi.c
491
chan = atomic_inc_return(&scpi_info->next_chan) %
drivers/firmware/arm_scpi.c
493
scpi_chan = scpi_info->channels + chan;
drivers/firmware/arm_scpi.c
512
ret = mbox_send_message(scpi_chan->chan, msg);
drivers/firmware/arm_scpi.c
867
mbox_free_channel(info->channels[i].chan);
drivers/firmware/arm_scpi.c
978
pchan->chan = mbox_request_channel(cl, idx);
drivers/firmware/arm_scpi.c
979
if (!IS_ERR(pchan->chan))
drivers/firmware/arm_scpi.c
981
ret = PTR_ERR(pchan->chan);
drivers/firmware/imx/imx-dsp.c
52
struct imx_dsp_chan *chan = container_of(c, struct imx_dsp_chan, cl);
drivers/firmware/imx/imx-dsp.c
54
if (chan->idx == 0) {
drivers/firmware/imx/imx-dsp.c
55
chan->ipc->ops->handle_reply(chan->ipc);
drivers/firmware/imx/imx-dsp.c
57
chan->ipc->ops->handle_request(chan->ipc);
drivers/firmware/imx/imx-dsp.c
58
imx_dsp_ring_doorbell(chan->ipc, 1);
drivers/firmware/mtk-adsp-ipc.c
54
struct mtk_adsp_chan *chan = container_of(c, struct mtk_adsp_chan, cl);
drivers/firmware/mtk-adsp-ipc.c
57
switch (chan->idx) {
drivers/firmware/mtk-adsp-ipc.c
59
chan->ipc->ops->handle_reply(chan->ipc);
drivers/firmware/mtk-adsp-ipc.c
62
chan->ipc->ops->handle_request(chan->ipc);
drivers/firmware/mtk-adsp-ipc.c
65
dev_err(dev, "wrong mbox chan %d\n", chan->idx);
drivers/firmware/raspberrypi.c
100
buf = dma_alloc_coherent(fw->chan->mbox->dev, PAGE_ALIGN(size),
drivers/firmware/raspberrypi.c
131
dma_free_coherent(fw->chan->mbox->dev, PAGE_ALIGN(size), buf, bus_addr);
drivers/firmware/raspberrypi.c
20
#define MBOX_MSG(chan, data28) (((data28) & ~0xf) | ((chan) & 0xf))
drivers/firmware/raspberrypi.c
259
mbox_free_channel(fw->chan);
drivers/firmware/raspberrypi.c
293
fw->chan = mbox_request_channel(&fw->cl, 0);
drivers/firmware/raspberrypi.c
294
if (IS_ERR(fw->chan)) {
drivers/firmware/raspberrypi.c
295
int ret = PTR_ERR(fw->chan);
drivers/firmware/raspberrypi.c
30
struct mbox_chan *chan; /* The property channel. */
drivers/firmware/raspberrypi.c
50
rpi_firmware_transaction(struct rpi_firmware *fw, u32 chan, u32 data)
drivers/firmware/raspberrypi.c
52
u32 message = MBOX_MSG(chan, data);
drivers/firmware/raspberrypi.c
59
ret = mbox_send_message(fw->chan, &message);
drivers/firmware/samsung/exynos-acpm-pmic.c
101
unsigned int acpm_chan_id, u8 type, u8 reg, u8 chan,
drivers/firmware/samsung/exynos-acpm-pmic.c
111
acpm_pmic_init_bulk_read_cmd(cmd, type, reg, chan, count);
drivers/firmware/samsung/exynos-acpm-pmic.c
132
static void acpm_pmic_init_write_cmd(u32 cmd[4], u8 type, u8 reg, u8 chan,
drivers/firmware/samsung/exynos-acpm-pmic.c
137
FIELD_PREP(ACPM_PMIC_CHANNEL, chan);
drivers/firmware/samsung/exynos-acpm-pmic.c
144
unsigned int acpm_chan_id, u8 type, u8 reg, u8 chan,
drivers/firmware/samsung/exynos-acpm-pmic.c
151
acpm_pmic_init_write_cmd(cmd, type, reg, chan, value);
drivers/firmware/samsung/exynos-acpm-pmic.c
161
static void acpm_pmic_init_bulk_write_cmd(u32 cmd[4], u8 type, u8 reg, u8 chan,
drivers/firmware/samsung/exynos-acpm-pmic.c
168
FIELD_PREP(ACPM_PMIC_CHANNEL, chan);
drivers/firmware/samsung/exynos-acpm-pmic.c
181
unsigned int acpm_chan_id, u8 type, u8 reg, u8 chan,
drivers/firmware/samsung/exynos-acpm-pmic.c
191
acpm_pmic_init_bulk_write_cmd(cmd, type, reg, chan, count, buf);
drivers/firmware/samsung/exynos-acpm-pmic.c
201
static void acpm_pmic_init_update_cmd(u32 cmd[4], u8 type, u8 reg, u8 chan,
drivers/firmware/samsung/exynos-acpm-pmic.c
206
FIELD_PREP(ACPM_PMIC_CHANNEL, chan);
drivers/firmware/samsung/exynos-acpm-pmic.c
214
unsigned int acpm_chan_id, u8 type, u8 reg, u8 chan,
drivers/firmware/samsung/exynos-acpm-pmic.c
221
acpm_pmic_init_update_cmd(cmd, type, reg, chan, value, mask);
drivers/firmware/samsung/exynos-acpm-pmic.c
61
static void acpm_pmic_init_read_cmd(u32 cmd[4], u8 type, u8 reg, u8 chan)
drivers/firmware/samsung/exynos-acpm-pmic.c
65
FIELD_PREP(ACPM_PMIC_CHANNEL, chan);
drivers/firmware/samsung/exynos-acpm-pmic.c
71
unsigned int acpm_chan_id, u8 type, u8 reg, u8 chan,
drivers/firmware/samsung/exynos-acpm-pmic.c
78
acpm_pmic_init_read_cmd(cmd, type, reg, chan);
drivers/firmware/samsung/exynos-acpm-pmic.c
90
static void acpm_pmic_init_bulk_read_cmd(u32 cmd[4], u8 type, u8 reg, u8 chan,
drivers/firmware/samsung/exynos-acpm-pmic.c
95
FIELD_PREP(ACPM_PMIC_CHANNEL, chan);
drivers/firmware/samsung/exynos-acpm-pmic.h
15
unsigned int acpm_chan_id, u8 type, u8 reg, u8 chan,
drivers/firmware/samsung/exynos-acpm-pmic.h
18
unsigned int acpm_chan_id, u8 type, u8 reg, u8 chan,
drivers/firmware/samsung/exynos-acpm-pmic.h
21
unsigned int acpm_chan_id, u8 type, u8 reg, u8 chan,
drivers/firmware/samsung/exynos-acpm-pmic.h
24
unsigned int acpm_chan_id, u8 type, u8 reg, u8 chan,
drivers/firmware/samsung/exynos-acpm-pmic.h
27
unsigned int acpm_chan_id, u8 type, u8 reg, u8 chan,
drivers/firmware/samsung/exynos-acpm.c
147
struct mbox_chan *chan;
drivers/firmware/samsung/exynos-acpm.c
507
ret = mbox_send_message(achan->chan, (void *)&msg);
drivers/firmware/samsung/exynos-acpm.c
511
mbox_client_txdone(achan->chan, 0);
drivers/firmware/samsung/exynos-acpm.c
614
if (!IS_ERR_OR_NULL(acpm->chans[i].chan))
drivers/firmware/samsung/exynos-acpm.c
615
mbox_free_channel(acpm->chans[i].chan);
drivers/firmware/samsung/exynos-acpm.c
662
achan->chan = mbox_request_channel(cl, 0);
drivers/firmware/samsung/exynos-acpm.c
663
if (IS_ERR(achan->chan))
drivers/firmware/samsung/exynos-acpm.c
664
return PTR_ERR(achan->chan);
drivers/firmware/stratix10-rsu.c
274
ret = stratix10_svc_send(priv->chan, &msg);
drivers/firmware/stratix10-rsu.c
294
stratix10_svc_done(priv->chan);
drivers/firmware/stratix10-rsu.c
387
status = stratix10_svc_async_send(priv->chan, &msg,
drivers/firmware/stratix10-rsu.c
408
status = stratix10_svc_async_poll(priv->chan, handle, &data);
drivers/firmware/stratix10-rsu.c
437
stratix10_svc_async_done(priv->chan, handle);
drivers/firmware/stratix10-rsu.c
69
struct stratix10_svc_chan *chan;
drivers/firmware/stratix10-rsu.c
803
priv->chan = stratix10_svc_request_channel_byname(&priv->client,
drivers/firmware/stratix10-rsu.c
805
if (IS_ERR(priv->chan)) {
drivers/firmware/stratix10-rsu.c
808
return PTR_ERR(priv->chan);
drivers/firmware/stratix10-rsu.c
811
ret = stratix10_svc_add_async_client(priv->chan, false);
drivers/firmware/stratix10-rsu.c
859
stratix10_svc_remove_async_client(priv->chan);
drivers/firmware/stratix10-rsu.c
861
stratix10_svc_free_channel(priv->chan);
drivers/firmware/stratix10-rsu.c
869
stratix10_svc_free_channel(priv->chan);
drivers/firmware/stratix10-svc.c
1068
struct stratix10_svc_chan *chan = NULL;
drivers/firmware/stratix10-svc.c
1080
chan = &controller->chans[i];
drivers/firmware/stratix10-svc.c
1091
if (chan->scl || !try_module_get(controller->dev->driver->owner)) {
drivers/firmware/stratix10-svc.c
1096
spin_lock_irqsave(&chan->lock, flag);
drivers/firmware/stratix10-svc.c
1097
chan->scl = client;
drivers/firmware/stratix10-svc.c
1098
chan->ctrl->num_active_client++;
drivers/firmware/stratix10-svc.c
1099
spin_unlock_irqrestore(&chan->lock, flag);
drivers/firmware/stratix10-svc.c
1101
return chan;
drivers/firmware/stratix10-svc.c
1125
int stratix10_svc_add_async_client(struct stratix10_svc_chan *chan,
drivers/firmware/stratix10-svc.c
1133
if (!chan)
drivers/firmware/stratix10-svc.c
1136
ctrl = chan->ctrl;
drivers/firmware/stratix10-svc.c
1147
if (chan->async_chan) {
drivers/firmware/stratix10-svc.c
1154
chan->async_chan = actrl->common_async_chan;
drivers/firmware/stratix10-svc.c
1176
chan->async_chan = achan;
drivers/firmware/stratix10-svc.c
1207
int stratix10_svc_remove_async_client(struct stratix10_svc_chan *chan)
drivers/firmware/stratix10-svc.c
1213
if (!chan)
drivers/firmware/stratix10-svc.c
1216
ctrl = chan->ctrl;
drivers/firmware/stratix10-svc.c
1218
achan = chan->async_chan;
drivers/firmware/stratix10-svc.c
1239
chan->async_chan = NULL;
drivers/firmware/stratix10-svc.c
1269
int stratix10_svc_async_send(struct stratix10_svc_chan *chan, void *msg,
drivers/firmware/stratix10-svc.c
1281
if (!chan || !msg || !handler)
drivers/firmware/stratix10-svc.c
1284
achan = chan->async_chan;
drivers/firmware/stratix10-svc.c
1285
ctrl = chan->ctrl;
drivers/firmware/stratix10-svc.c
1400
static int stratix10_svc_async_prepare_response(struct stratix10_svc_chan *chan,
drivers/firmware/stratix10-svc.c
1406
struct stratix10_svc_controller *ctrl = chan->ctrl;
drivers/firmware/stratix10-svc.c
1455
int stratix10_svc_async_poll(struct stratix10_svc_chan *chan,
drivers/firmware/stratix10-svc.c
1466
if (!chan || !tx_handle || !data)
drivers/firmware/stratix10-svc.c
1469
ctrl = chan->ctrl;
drivers/firmware/stratix10-svc.c
1471
achan = chan->async_chan;
drivers/firmware/stratix10-svc.c
1496
ret = stratix10_svc_async_prepare_response(chan, handle, data);
drivers/firmware/stratix10-svc.c
1530
int stratix10_svc_async_done(struct stratix10_svc_chan *chan, void *tx_handle)
drivers/firmware/stratix10-svc.c
1537
if (!chan || !tx_handle)
drivers/firmware/stratix10-svc.c
1540
ctrl = chan->ctrl;
drivers/firmware/stratix10-svc.c
1541
achan = chan->async_chan;
drivers/firmware/stratix10-svc.c
165
struct stratix10_svc_chan *chan;
drivers/firmware/stratix10-svc.c
1704
void stratix10_svc_free_channel(struct stratix10_svc_chan *chan)
drivers/firmware/stratix10-svc.c
1708
spin_lock_irqsave(&chan->lock, flag);
drivers/firmware/stratix10-svc.c
1709
chan->scl = NULL;
drivers/firmware/stratix10-svc.c
1710
chan->ctrl->num_active_client--;
drivers/firmware/stratix10-svc.c
1711
module_put(chan->ctrl->dev->driver->owner);
drivers/firmware/stratix10-svc.c
1712
spin_unlock_irqrestore(&chan->lock, flag);
drivers/firmware/stratix10-svc.c
1727
int stratix10_svc_send(struct stratix10_svc_chan *chan, void *msg)
drivers/firmware/stratix10-svc.c
1741
if (!chan->task) {
drivers/firmware/stratix10-svc.c
1745
(void *)chan,
drivers/firmware/stratix10-svc.c
1748
dev_err(chan->ctrl->dev,
drivers/firmware/stratix10-svc.c
1754
spin_lock(&chan->lock);
drivers/firmware/stratix10-svc.c
1755
if (chan->task) {
drivers/firmware/stratix10-svc.c
1757
spin_unlock(&chan->lock);
drivers/firmware/stratix10-svc.c
1760
chan->task = task;
drivers/firmware/stratix10-svc.c
1761
spin_unlock(&chan->lock);
drivers/firmware/stratix10-svc.c
1766
chan->name, p_msg->payload, p_msg->command,
drivers/firmware/stratix10-svc.c
1801
p_data->chan = chan;
drivers/firmware/stratix10-svc.c
1804
chan->name,
drivers/firmware/stratix10-svc.c
1809
ret = kfifo_in_spinlocked(&chan->svc_fifo, p_data,
drivers/firmware/stratix10-svc.c
1811
&chan->svc_fifo_lock);
drivers/firmware/stratix10-svc.c
1830
void stratix10_svc_done(struct stratix10_svc_chan *chan)
drivers/firmware/stratix10-svc.c
1833
if (chan->task) {
drivers/firmware/stratix10-svc.c
1835
__func__, chan->name);
drivers/firmware/stratix10-svc.c
1836
kthread_stop(chan->task);
drivers/firmware/stratix10-svc.c
1837
chan->task = NULL;
drivers/firmware/stratix10-svc.c
1852
void *stratix10_svc_allocate_memory(struct stratix10_svc_chan *chan,
drivers/firmware/stratix10-svc.c
1858
struct gen_pool *genpool = chan->ctrl->genpool;
drivers/firmware/stratix10-svc.c
1880
chan->name, pmem->vaddr, (unsigned int)pmem->paddr);
drivers/firmware/stratix10-svc.c
1893
void stratix10_svc_free_memory(struct stratix10_svc_chan *chan, void *kaddr)
drivers/firmware/stratix10-svc.c
1901
gen_pool_free(chan->ctrl->genpool,
drivers/firmware/stratix10-svc.c
366
p_data->chan->scl->receive_cb(p_data->chan->scl,
drivers/firmware/stratix10-svc.c
441
p_data->chan->scl->receive_cb(p_data->chan->scl, cb_data);
drivers/firmware/stratix10-svc.c
522
p_data->chan->scl->receive_cb(p_data->chan->scl, cb_data);
drivers/firmware/stratix10-svc.c
537
struct stratix10_svc_chan *chan = (struct stratix10_svc_chan *)data;
drivers/firmware/stratix10-svc.c
538
struct stratix10_svc_controller *ctrl = chan->ctrl;
drivers/firmware/stratix10-svc.c
565
pr_debug("%s: %s: Thread is running!\n", __func__, chan->name);
drivers/firmware/stratix10-svc.c
568
ret_fifo = kfifo_out_spinlocked(&chan->svc_fifo,
drivers/firmware/stratix10-svc.c
570
&chan->svc_fifo_lock);
drivers/firmware/stratix10-svc.c
581
__func__, chan->name);
drivers/firmware/stratix10-svc.c
588
if (pdata->chan->scl)
drivers/firmware/stratix10-svc.c
589
pdata->chan->scl->receive_cb(pdata->chan->scl,
drivers/firmware/stratix10-svc.c
736
__func__, chan->name,
drivers/firmware/stratix10-svc.c
746
__func__, chan->name, (unsigned int)res.a0);
drivers/firmware/stratix10-svc.c
760
pdata->chan->scl->receive_cb(pdata->chan->scl, cbdata);
drivers/firmware/stratix10-svc.c
800
pdata->chan->scl->receive_cb(pdata->chan->scl,
drivers/firmware/stratix10-svc.c
813
pdata->chan->scl->receive_cb(pdata->chan->scl, cbdata);
drivers/firmware/stratix10-svc.c
829
pdata->chan->scl->receive_cb(
drivers/firmware/stratix10-svc.c
830
pdata->chan->scl, cbdata);
drivers/fpga/stratix10-soc.c
216
kbuf = stratix10_svc_allocate_memory(priv->chan, SVC_BUF_SIZE);
drivers/fpga/stratix10-soc.c
228
stratix10_svc_done(priv->chan);
drivers/fpga/stratix10-soc.c
387
stratix10_svc_done(priv->chan);
drivers/fpga/stratix10-soc.c
39
struct stratix10_svc_chan *chan;
drivers/fpga/stratix10-soc.c
413
priv->chan = stratix10_svc_request_channel_byname(&priv->client,
drivers/fpga/stratix10-soc.c
415
if (IS_ERR(priv->chan)) {
drivers/fpga/stratix10-soc.c
418
return PTR_ERR(priv->chan);
drivers/fpga/stratix10-soc.c
435
stratix10_svc_free_channel(priv->chan);
drivers/fpga/stratix10-soc.c
445
stratix10_svc_free_channel(priv->chan);
drivers/fpga/stratix10-soc.c
50
struct stratix10_svc_chan *chan = priv->chan;
drivers/fpga/stratix10-soc.c
62
ret = stratix10_svc_send(chan, &msg);
drivers/fpga/stratix10-soc.c
86
stratix10_svc_free_memory(priv->chan,
drivers/gpib/eastwood/fluke_gpib.c
537
static int fluke_get_dma_residue(struct dma_chan *chan, dma_cookie_t cookie)
drivers/gpib/eastwood/fluke_gpib.c
542
result = dmaengine_pause(chan);
drivers/gpib/eastwood/fluke_gpib.c
547
dmaengine_tx_status(chan, cookie, &state);
drivers/gpib/eastwood/fluke_gpib.c
955
static bool gpib_dma_channel_filter(struct dma_chan *chan, void *filter_param)
drivers/gpib/eastwood/fluke_gpib.c
958
return chan->chan_id == 0;
drivers/gpib/fmh_gpib/fmh_gpib.c
554
static int fmh_gpib_get_dma_residue(struct dma_chan *chan, dma_cookie_t cookie)
drivers/gpib/fmh_gpib/fmh_gpib.c
559
result = dmaengine_pause(chan);
drivers/gpib/fmh_gpib/fmh_gpib.c
564
dmaengine_tx_status(chan, cookie, &state);
drivers/gpu/drm/amd/amdgpu/atombios_dp.c
119
mutex_unlock(&chan->mutex);
drivers/gpu/drm/amd/amdgpu/atombios_dp.c
130
struct amdgpu_i2c_chan *chan =
drivers/gpu/drm/amd/amdgpu/atombios_dp.c
158
ret = amdgpu_atombios_dp_process_aux_ch(chan,
drivers/gpu/drm/amd/amdgpu/atombios_dp.c
174
ret = amdgpu_atombios_dp_process_aux_ch(chan,
drivers/gpu/drm/amd/amdgpu/atombios_dp.c
58
static int amdgpu_atombios_dp_process_aux_ch(struct amdgpu_i2c_chan *chan,
drivers/gpu/drm/amd/amdgpu/atombios_dp.c
63
struct drm_device *dev = chan->dev;
drivers/gpu/drm/amd/amdgpu/atombios_dp.c
73
mutex_lock(&chan->mutex);
drivers/gpu/drm/amd/amdgpu/atombios_dp.c
82
args.v2.ucChannelID = chan->rec.i2c_id;
drivers/gpu/drm/amd/amdgpu/atombios_dp.c
84
args.v2.ucHPD_ID = chan->rec.hpd;
drivers/gpu/drm/amd/amdgpu/atombios_i2c.c
102
mutex_unlock(&chan->mutex);
drivers/gpu/drm/amd/amdgpu/atombios_i2c.c
38
static int amdgpu_atombios_i2c_process_i2c_ch(struct amdgpu_i2c_chan *chan,
drivers/gpu/drm/amd/amdgpu/atombios_i2c.c
42
struct drm_device *dev = chan->dev;
drivers/gpu/drm/amd/amdgpu/atombios_i2c.c
52
mutex_lock(&chan->mutex);
drivers/gpu/drm/amd/amdgpu/atombios_i2c.c
87
args.ucLineNumber = chan->rec.i2c_id;
drivers/gpu/drm/gma500/intel_i2c.c
108
struct gma_i2c_chan *chan;
drivers/gpu/drm/gma500/intel_i2c.c
110
chan = kzalloc_obj(struct gma_i2c_chan);
drivers/gpu/drm/gma500/intel_i2c.c
111
if (!chan)
drivers/gpu/drm/gma500/intel_i2c.c
114
chan->drm_dev = dev;
drivers/gpu/drm/gma500/intel_i2c.c
115
chan->reg = reg;
drivers/gpu/drm/gma500/intel_i2c.c
116
snprintf(chan->base.name, I2C_NAME_SIZE, "intel drm %s", name);
drivers/gpu/drm/gma500/intel_i2c.c
117
chan->base.owner = THIS_MODULE;
drivers/gpu/drm/gma500/intel_i2c.c
118
chan->base.algo_data = &chan->algo;
drivers/gpu/drm/gma500/intel_i2c.c
119
chan->base.dev.parent = dev->dev;
drivers/gpu/drm/gma500/intel_i2c.c
120
chan->algo.setsda = set_data;
drivers/gpu/drm/gma500/intel_i2c.c
121
chan->algo.setscl = set_clock;
drivers/gpu/drm/gma500/intel_i2c.c
122
chan->algo.getsda = get_data;
drivers/gpu/drm/gma500/intel_i2c.c
123
chan->algo.getscl = get_clock;
drivers/gpu/drm/gma500/intel_i2c.c
124
chan->algo.udelay = 20;
drivers/gpu/drm/gma500/intel_i2c.c
125
chan->algo.timeout = usecs_to_jiffies(2200);
drivers/gpu/drm/gma500/intel_i2c.c
126
chan->algo.data = chan;
drivers/gpu/drm/gma500/intel_i2c.c
128
i2c_set_adapdata(&chan->base, chan);
drivers/gpu/drm/gma500/intel_i2c.c
130
if (i2c_bit_add_bus(&chan->base))
drivers/gpu/drm/gma500/intel_i2c.c
134
set_data(chan, 1);
drivers/gpu/drm/gma500/intel_i2c.c
135
set_clock(chan, 1);
drivers/gpu/drm/gma500/intel_i2c.c
138
return chan;
drivers/gpu/drm/gma500/intel_i2c.c
141
kfree(chan);
drivers/gpu/drm/gma500/intel_i2c.c
151
void gma_i2c_destroy(struct gma_i2c_chan *chan)
drivers/gpu/drm/gma500/intel_i2c.c
153
if (!chan)
drivers/gpu/drm/gma500/intel_i2c.c
156
i2c_del_adapter(&chan->base);
drivers/gpu/drm/gma500/intel_i2c.c
157
kfree(chan);
drivers/gpu/drm/gma500/intel_i2c.c
25
struct gma_i2c_chan *chan = data;
drivers/gpu/drm/gma500/intel_i2c.c
26
struct drm_device *dev = chan->drm_dev;
drivers/gpu/drm/gma500/intel_i2c.c
29
val = REG_READ(chan->reg);
drivers/gpu/drm/gma500/intel_i2c.c
35
struct gma_i2c_chan *chan = data;
drivers/gpu/drm/gma500/intel_i2c.c
36
struct drm_device *dev = chan->drm_dev;
drivers/gpu/drm/gma500/intel_i2c.c
39
val = REG_READ(chan->reg);
drivers/gpu/drm/gma500/intel_i2c.c
45
struct gma_i2c_chan *chan = data;
drivers/gpu/drm/gma500/intel_i2c.c
46
struct drm_device *dev = chan->drm_dev;
drivers/gpu/drm/gma500/intel_i2c.c
51
REG_READ(chan->reg) & (GPIO_DATA_PULLUP_DISABLE |
drivers/gpu/drm/gma500/intel_i2c.c
59
REG_WRITE(chan->reg, reserved | clock_bits);
drivers/gpu/drm/gma500/intel_i2c.c
65
struct gma_i2c_chan *chan = data;
drivers/gpu/drm/gma500/intel_i2c.c
66
struct drm_device *dev = chan->drm_dev;
drivers/gpu/drm/gma500/intel_i2c.c
71
REG_READ(chan->reg) & (GPIO_DATA_PULLUP_DISABLE |
drivers/gpu/drm/gma500/intel_i2c.c
81
REG_WRITE(chan->reg, reserved | data_bits);
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
100
val = LPC_READ_REG(chan, RGIO);
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
102
LPC_WRITE_REG(chan, RGIO, val);
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
104
val = LPC_READ_REG(chan, RGIO);
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
106
LPC_WRITE_REG(chan, RGIO, val);
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
107
val = LPC_READ_REG(chan, RGLVL);
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
109
LPC_WRITE_REG(chan, RGLVL, val);
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
115
struct gma_i2c_chan *chan = data;
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
119
val = LPC_READ_REG(chan, RGIO);
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
121
LPC_WRITE_REG(chan, RGIO, val);
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
123
val = LPC_READ_REG(chan, RGIO);
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
125
LPC_WRITE_REG(chan, RGIO, val);
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
126
val = LPC_READ_REG(chan, RGLVL);
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
128
LPC_WRITE_REG(chan, RGLVL, val);
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
135
struct gma_i2c_chan *chan;
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
138
chan = kzalloc_obj(struct gma_i2c_chan);
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
139
if (!chan)
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
142
chan->drm_dev = dev;
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
143
chan->reg = dev_priv->lpc_gpio_base;
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
144
strscpy(chan->base.name, "gma500 LPC", sizeof(chan->base.name));
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
145
chan->base.owner = THIS_MODULE;
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
146
chan->base.algo_data = &chan->algo;
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
147
chan->base.dev.parent = dev->dev;
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
148
chan->algo.setsda = set_data;
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
149
chan->algo.setscl = set_clock;
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
150
chan->algo.getsda = get_data;
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
151
chan->algo.getscl = get_clock;
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
152
chan->algo.udelay = 100;
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
153
chan->algo.timeout = usecs_to_jiffies(2200);
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
154
chan->algo.data = chan;
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
156
i2c_set_adapdata(&chan->base, chan);
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
158
set_data(chan, 1);
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
159
set_clock(chan, 1);
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
162
ret = i2c_bit_add_bus(&chan->base);
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
164
kfree(chan);
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
168
return chan;
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
63
#define LPC_READ_REG(chan, r) inl((chan)->reg + (r))
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
64
#define LPC_WRITE_REG(chan, r, val) outl((val), (chan)->reg + (r))
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
68
struct gma_i2c_chan *chan = data;
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
71
val = LPC_READ_REG(chan, RGIO);
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
73
LPC_WRITE_REG(chan, RGIO, val);
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
74
LPC_READ_REG(chan, RGLVL);
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
75
val = (LPC_READ_REG(chan, RGLVL) & GPIO_CLOCK) ? 1 : 0;
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
82
struct gma_i2c_chan *chan = data;
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
85
val = LPC_READ_REG(chan, RGIO);
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
87
LPC_WRITE_REG(chan, RGIO, val);
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
88
LPC_READ_REG(chan, RGLVL);
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
89
val = (LPC_READ_REG(chan, RGLVL) & GPIO_DATA) ? 1 : 0;
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c
96
struct gma_i2c_chan *chan = data;
drivers/gpu/drm/gma500/psb_intel_drv.h
182
void gma_i2c_destroy(struct gma_i2c_chan *chan);
drivers/gpu/drm/i915/i915_hwmon.c
382
hwm_power_is_visible(const struct hwm_drvdata *ddat, u32 attr, int chan)
drivers/gpu/drm/i915/i915_hwmon.c
500
hwm_power_read(struct hwm_drvdata *ddat, u32 attr, int chan, long *val)
drivers/gpu/drm/i915/i915_hwmon.c
531
hwm_power_write(struct hwm_drvdata *ddat, u32 attr, int chan, long val)
drivers/gpu/drm/mediatek/mtk_crtc.c
1128
mtk_crtc->cmdq_client.chan =
drivers/gpu/drm/mediatek/mtk_crtc.c
1130
if (IS_ERR(mtk_crtc->cmdq_client.chan)) {
drivers/gpu/drm/mediatek/mtk_crtc.c
1133
mtk_crtc->cmdq_client.chan = NULL;
drivers/gpu/drm/mediatek/mtk_crtc.c
1136
if (mtk_crtc->cmdq_client.chan) {
drivers/gpu/drm/mediatek/mtk_crtc.c
1144
mbox_free_channel(mtk_crtc->cmdq_client.chan);
drivers/gpu/drm/mediatek/mtk_crtc.c
1145
mtk_crtc->cmdq_client.chan = NULL;
drivers/gpu/drm/mediatek/mtk_crtc.c
1153
mbox_free_channel(mtk_crtc->cmdq_client.chan);
drivers/gpu/drm/mediatek/mtk_crtc.c
1154
mtk_crtc->cmdq_client.chan = NULL;
drivers/gpu/drm/mediatek/mtk_crtc.c
117
if (mtk_crtc->cmdq_client.chan)
drivers/gpu/drm/mediatek/mtk_crtc.c
136
if (mtk_crtc->cmdq_client.chan) {
drivers/gpu/drm/mediatek/mtk_crtc.c
138
mbox_free_channel(mtk_crtc->cmdq_client.chan);
drivers/gpu/drm/mediatek/mtk_crtc.c
139
mtk_crtc->cmdq_client.chan = NULL;
drivers/gpu/drm/mediatek/mtk_crtc.c
289
pm_runtime_mark_last_busy(cmdq_cl->chan->mbox->dev);
drivers/gpu/drm/mediatek/mtk_crtc.c
290
pm_runtime_put_autosuspend(cmdq_cl->chan->mbox->dev);
drivers/gpu/drm/mediatek/mtk_crtc.c
604
if (mtk_crtc->cmdq_client.chan) {
drivers/gpu/drm/mediatek/mtk_crtc.c
605
mbox_flush(mtk_crtc->cmdq_client.chan, 2000);
drivers/gpu/drm/mediatek/mtk_crtc.c
611
dma_sync_single_for_device(mtk_crtc->cmdq_client.chan->mbox->dev,
drivers/gpu/drm/mediatek/mtk_crtc.c
628
if (pm_runtime_resume_and_get(mtk_crtc->cmdq_client.chan->mbox->dev) < 0)
drivers/gpu/drm/mediatek/mtk_crtc.c
631
mbox_send_message(mtk_crtc->cmdq_client.chan, cmdq_handle);
drivers/gpu/drm/mediatek/mtk_crtc.c
632
mbox_client_txdone(mtk_crtc->cmdq_client.chan, 0);
drivers/gpu/drm/mediatek/mtk_crtc.c
654
if (!priv->data->shadow_register && !mtk_crtc->cmdq_client.chan)
drivers/gpu/drm/mediatek/mtk_crtc.c
741
if (!mtk_crtc->cmdq_client.chan)
drivers/gpu/drm/mediatek/mtk_crtc.c
831
if (mtk_crtc->cmdq_client.chan)
drivers/gpu/drm/mediatek/mtk_hdmi_common.c
109
unsigned int chan = params->cea.channels;
drivers/gpu/drm/mediatek/mtk_hdmi_common.c
112
params->sample_rate, params->sample_width, chan);
drivers/gpu/drm/mediatek/mtk_hdmi_common.c
117
switch (chan) {
drivers/gpu/drm/mediatek/mtk_hdmi_common.c
131
dev_err(hdmi->dev, "channel[%d] not supported!\n", chan);
drivers/gpu/drm/nouveau/dispnv04/crtc.c
1039
nv04_finish_page_flip(struct nouveau_channel *chan,
drivers/gpu/drm/nouveau/dispnv04/crtc.c
1042
struct nouveau_fence_chan *fctx = chan->fence;
drivers/gpu/drm/nouveau/dispnv04/crtc.c
1043
struct nouveau_drm *drm = chan->cli->drm;
drivers/gpu/drm/nouveau/dispnv04/crtc.c
1078
struct nouveau_channel *chan = drm->channel;
drivers/gpu/drm/nouveau/dispnv04/crtc.c
1081
if (!nv04_finish_page_flip(chan, &state)) {
drivers/gpu/drm/nouveau/dispnv04/crtc.c
1092
nv04_page_flip_emit(struct nouveau_channel *chan,
drivers/gpu/drm/nouveau/dispnv04/crtc.c
1098
struct nouveau_fence_chan *fctx = chan->fence;
drivers/gpu/drm/nouveau/dispnv04/crtc.c
1099
struct nouveau_drm *drm = chan->cli->drm;
drivers/gpu/drm/nouveau/dispnv04/crtc.c
1101
struct nvif_push *push = &chan->chan.push;
drivers/gpu/drm/nouveau/dispnv04/crtc.c
1111
ret = nouveau_fence_sync(old_bo, chan, false, false);
drivers/gpu/drm/nouveau/dispnv04/crtc.c
1123
ret = nouveau_fence_new(pfence, chan);
drivers/gpu/drm/nouveau/dispnv04/crtc.c
1147
struct nouveau_channel *chan;
drivers/gpu/drm/nouveau/dispnv04/crtc.c
1155
chan = drm->channel;
drivers/gpu/drm/nouveau/dispnv04/crtc.c
1156
if (!chan)
drivers/gpu/drm/nouveau/dispnv04/crtc.c
1158
cli = chan->cli;
drivers/gpu/drm/nouveau/dispnv04/crtc.c
1159
push = &chan->chan.push;
drivers/gpu/drm/nouveau/dispnv04/crtc.c
1177
ret = nouveau_fence_sync(new_bo, chan, false, true);
drivers/gpu/drm/nouveau/dispnv04/crtc.c
1217
ret = nv04_page_flip_emit(chan, old_bo, new_bo, s, &fence);
drivers/gpu/drm/nouveau/dispnv50/core.c
31
nv50_dmac_destroy(&core->chan);
drivers/gpu/drm/nouveau/dispnv50/core.h
12
struct nv50_dmac chan;
drivers/gpu/drm/nouveau/dispnv50/core507d.c
118
time = nvif_msec(core->chan.base.device, 2000ULL,
drivers/gpu/drm/nouveau/dispnv50/core507d.c
133
struct nvif_push *push = &core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/core507d.c
139
PUSH_MTHD(push, NV507D, SET_CONTEXT_DMA_NOTIFIER, core->chan.sync.handle);
drivers/gpu/drm/nouveau/dispnv50/core507d.c
172
disp->sync->offset, &core->chan);
drivers/gpu/drm/nouveau/dispnv50/core507d.c
36
struct nvif_push *push = &core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/core507d.c
83
struct nvif_push *push = &disp->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/core907d.c
47
time = nvif_msec(core->chan.base.device, 2000ULL,
drivers/gpu/drm/nouveau/dispnv50/corec37d.c
130
struct nvif_push *push = &core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/corec37d.c
137
PUSH_MTHD(push, NVC37D, SET_CONTEXT_DMA_NOTIFIER, core->chan.sync.handle);
drivers/gpu/drm/nouveau/dispnv50/corec37d.c
36
struct nvif_push *push = &core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/corec37d.c
54
struct nvif_push *push = &core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/corec57d.c
33
struct nvif_push *push = &core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/corec57d.c
40
PUSH_MTHD(push, NVC57D, SET_CONTEXT_DMA_NOTIFIER, core->chan.sync.handle);
drivers/gpu/drm/nouveau/dispnv50/coreca7d.c
21
struct nvif_push *push = &core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/coreca7d.c
60
struct nvif_push *push = &core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/crc.c
512
if (core->chan.base.user.oclass >= GB202_DISP_CORE_CHANNEL_DMA)
drivers/gpu/drm/nouveau/dispnv50/crc.c
515
ret = nvif_object_ctor(&core->chan.base.user, "kmsCrcNtfyCtxDma",
drivers/gpu/drm/nouveau/dispnv50/crc907d.c
29
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/crc907d.c
77
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/crcc37d.c
18
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/crcc37d.c
56
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/crcc57d.c
16
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/crcca7d.c
16
struct nvif_push *push = &head->disp->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/crcca7d.c
46
struct nvif_push *push = &head->disp->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/curs507a.c
81
u32 handle = nv50_disp(wndw->plane.dev)->core->chan.vram.handle;
drivers/gpu/drm/nouveau/dispnv50/dac507d.c
32
struct nvif_push *push = &core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/dac907d.c
32
struct nvif_push *push = &core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/disp.c
113
nv50_chan_destroy(struct nv50_chan *chan)
drivers/gpu/drm/nouveau/dispnv50/disp.c
115
nvif_object_dtor(&chan->user);
drivers/gpu/drm/nouveau/dispnv50/disp.c
2125
disp->core->chan.base.device))
drivers/gpu/drm/nouveau/dispnv50/disp.c
79
struct nv50_chan *chan)
drivers/gpu/drm/nouveau/dispnv50/disp.c
84
chan->device = device;
drivers/gpu/drm/nouveau/dispnv50/disp.c
95
&chan->user);
drivers/gpu/drm/nouveau/dispnv50/disp.c
97
ret = nvif_object_map(&chan->user, NULL, 0);
drivers/gpu/drm/nouveau/dispnv50/disp.c
99
nvif_object_dtor(&chan->user);
drivers/gpu/drm/nouveau/dispnv50/head.c
276
asyh->olut.handle = disp->core->chan.vram.handle;
drivers/gpu/drm/nouveau/dispnv50/head507d.c
125
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/head507d.c
142
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/head507d.c
191
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/head507d.c
205
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/head507d.c
268
asyh->core.handle = disp->core->chan.vram.handle;
drivers/gpu/drm/nouveau/dispnv50/head507d.c
281
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/head507d.c
296
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/head507d.c
32
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/head507d.c
348
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/head507d.c
403
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/head507d.c
51
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/head507d.c
69
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/head507d.c
97
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/head827d.c
113
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/head827d.c
130
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/head827d.c
32
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/head827d.c
51
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/head827d.c
76
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/head907d.c
127
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/head907d.c
155
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/head907d.c
174
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/head907d.c
198
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/head907d.c
212
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/head907d.c
249
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/head907d.c
266
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/head907d.c
325
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/head907d.c
381
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/head907d.c
39
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/head907d.c
60
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/head907d.c
80
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/head907d.c
98
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/head917d.c
33
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/head917d.c
51
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/head917d.c
80
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/headc37d.c
107
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/headc37d.c
125
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/headc37d.c
164
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/headc37d.c
178
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/headc37d.c
212
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/headc37d.c
257
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/headc37d.c
33
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/headc37d.c
67
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/headc37d.c
88
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/headc57d.c
113
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/headc57d.c
204
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/headc57d.c
33
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/headc57d.c
46
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/headc57d.c
81
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/headc57d.c
99
struct nvif_push *push = &nv50_disp(head->base.base.dev)->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/headca7d.c
113
struct nvif_push *push = &head->disp->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/headca7d.c
134
struct nvif_push *push = &head->disp->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/headca7d.c
16
struct nvif_push *push = &head->disp->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/headca7d.c
172
struct nvif_push *push = &head->disp->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/headca7d.c
189
struct nvif_push *push = &head->disp->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/headca7d.c
220
struct nvif_push *push = &head->disp->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/headca7d.c
260
struct nvif_push *push = &head->disp->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/headca7d.c
32
struct nvif_push *push = &head->disp->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/headca7d.c
73
struct nvif_push *push = &head->disp->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/headca7d.c
92
struct nvif_push *push = &head->disp->core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/pior507d.c
33
struct nvif_push *push = &core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/sor507d.c
33
struct nvif_push *push = &core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/sor907d.c
35
struct nvif_push *push = &core->chan.push;
drivers/gpu/drm/nouveau/dispnv50/sorc37d.c
32
struct nvif_push *push = &core->chan.push;
drivers/gpu/drm/nouveau/gv100_fence.c
16
gv100_fence_emit32(struct nouveau_channel *chan, u64 virtual, u32 sequence)
drivers/gpu/drm/nouveau/gv100_fence.c
18
struct nvif_push *push = &chan->chan.push;
drivers/gpu/drm/nouveau/gv100_fence.c
47
gv100_fence_sync32(struct nouveau_channel *chan, u64 virtual, u32 sequence)
drivers/gpu/drm/nouveau/gv100_fence.c
49
struct nvif_push *push = &chan->chan.push;
drivers/gpu/drm/nouveau/gv100_fence.c
70
gv100_fence_context_new(struct nouveau_channel *chan)
drivers/gpu/drm/nouveau/gv100_fence.c
75
ret = nv84_fence_context_new(chan);
drivers/gpu/drm/nouveau/gv100_fence.c
79
fctx = chan->fence;
drivers/gpu/drm/nouveau/include/nvkm/engine/disp.h
64
struct nvkm_disp_chan *chan[81];
drivers/gpu/drm/nouveau/include/nvkm/engine/sw.h
10
struct list_head chan;
drivers/gpu/drm/nouveau/nouveau_abi16.c
162
nouveau_abi16_ntfy_fini(struct nouveau_abi16_chan *chan,
drivers/gpu/drm/nouveau/nouveau_abi16.c
166
nvkm_mm_free(&chan->heap, &ntfy->node);
drivers/gpu/drm/nouveau/nouveau_abi16.c
173
struct nouveau_abi16_chan *chan)
drivers/gpu/drm/nouveau/nouveau_abi16.c
178
if (chan->sched)
drivers/gpu/drm/nouveau/nouveau_abi16.c
179
drm_sched_entity_kill(&chan->sched->entity);
drivers/gpu/drm/nouveau/nouveau_abi16.c
181
if (chan->chan)
drivers/gpu/drm/nouveau/nouveau_abi16.c
182
nouveau_channel_idle(chan->chan);
drivers/gpu/drm/nouveau/nouveau_abi16.c
184
if (chan->sched)
drivers/gpu/drm/nouveau/nouveau_abi16.c
185
nouveau_sched_destroy(&chan->sched);
drivers/gpu/drm/nouveau/nouveau_abi16.c
188
list_for_each_entry_safe(ntfy, temp, &chan->notifiers, head) {
drivers/gpu/drm/nouveau/nouveau_abi16.c
189
nouveau_abi16_ntfy_fini(chan, ntfy);
drivers/gpu/drm/nouveau/nouveau_abi16.c
192
if (chan->ntfy) {
drivers/gpu/drm/nouveau/nouveau_abi16.c
193
nouveau_vma_del(&chan->ntfy_vma);
drivers/gpu/drm/nouveau/nouveau_abi16.c
194
nouveau_bo_unpin(chan->ntfy);
drivers/gpu/drm/nouveau/nouveau_abi16.c
195
drm_gem_object_put(&chan->ntfy->bo.base);
drivers/gpu/drm/nouveau/nouveau_abi16.c
198
if (chan->heap.block_size)
drivers/gpu/drm/nouveau/nouveau_abi16.c
199
nvkm_mm_fini(&chan->heap);
drivers/gpu/drm/nouveau/nouveau_abi16.c
202
if (chan->chan) {
drivers/gpu/drm/nouveau/nouveau_abi16.c
203
nvif_object_dtor(&chan->ce);
drivers/gpu/drm/nouveau/nouveau_abi16.c
204
nouveau_channel_del(&chan->chan);
drivers/gpu/drm/nouveau/nouveau_abi16.c
207
list_del(&chan->head);
drivers/gpu/drm/nouveau/nouveau_abi16.c
208
kfree(chan);
drivers/gpu/drm/nouveau/nouveau_abi16.c
215
struct nouveau_abi16_chan *chan, *temp;
drivers/gpu/drm/nouveau/nouveau_abi16.c
224
list_for_each_entry_safe(chan, temp, &abi16->channels, head) {
drivers/gpu/drm/nouveau/nouveau_abi16.c
225
nouveau_abi16_chan_fini(abi16, chan);
drivers/gpu/drm/nouveau/nouveau_abi16.c
372
struct nouveau_abi16_chan *chan;
drivers/gpu/drm/nouveau/nouveau_abi16.c
429
chan = kzalloc_obj(*chan);
drivers/gpu/drm/nouveau/nouveau_abi16.c
430
if (!chan)
drivers/gpu/drm/nouveau/nouveau_abi16.c
433
INIT_LIST_HEAD(&chan->notifiers);
drivers/gpu/drm/nouveau/nouveau_abi16.c
434
list_add(&chan->head, &abi16->channels);
drivers/gpu/drm/nouveau/nouveau_abi16.c
438
init->tt_ctxdma_handle, &chan->chan);
drivers/gpu/drm/nouveau/nouveau_abi16.c
447
ret = nouveau_sched_create(&chan->sched, drm, drm->sched_wq,
drivers/gpu/drm/nouveau/nouveau_abi16.c
448
chan->chan->chan.gpfifo.max);
drivers/gpu/drm/nouveau/nouveau_abi16.c
453
init->channel = chan->chan->chid;
drivers/gpu/drm/nouveau/nouveau_abi16.c
459
if (chan->chan->push.buffer->bo.resource->mem_type == TTM_PL_VRAM)
drivers/gpu/drm/nouveau/nouveau_abi16.c
467
init->subchan[1].handle = chan->chan->nvsw.handle;
drivers/gpu/drm/nouveau/nouveau_abi16.c
482
ret = nvif_object_ctor(&chan->chan->user, "abi16CeWar", 0, VOLTA_DMA_COPY_A,
drivers/gpu/drm/nouveau/nouveau_abi16.c
483
NULL, 0, &chan->ce);
drivers/gpu/drm/nouveau/nouveau_abi16.c
488
ret = nvif_object_ctor(&chan->chan->user, "abi16CeWar", 0, TURING_DMA_COPY_A,
drivers/gpu/drm/nouveau/nouveau_abi16.c
489
NULL, 0, &chan->ce);
drivers/gpu/drm/nouveau/nouveau_abi16.c
499
0, 0, &chan->ntfy);
drivers/gpu/drm/nouveau/nouveau_abi16.c
501
ret = nouveau_bo_pin(chan->ntfy, NOUVEAU_GEM_DOMAIN_GART,
drivers/gpu/drm/nouveau/nouveau_abi16.c
507
ret = nouveau_vma_new(chan->ntfy, chan->chan->vmm,
drivers/gpu/drm/nouveau/nouveau_abi16.c
508
&chan->ntfy_vma);
drivers/gpu/drm/nouveau/nouveau_abi16.c
513
ret = drm_gem_handle_create(file_priv, &chan->ntfy->bo.base,
drivers/gpu/drm/nouveau/nouveau_abi16.c
518
ret = nvkm_mm_init(&chan->heap, 0, 0, PAGE_SIZE, 1);
drivers/gpu/drm/nouveau/nouveau_abi16.c
521
nouveau_abi16_chan_fini(abi16, chan);
drivers/gpu/drm/nouveau/nouveau_abi16.c
528
struct nouveau_abi16_chan *chan;
drivers/gpu/drm/nouveau/nouveau_abi16.c
530
list_for_each_entry(chan, &abi16->channels, head) {
drivers/gpu/drm/nouveau/nouveau_abi16.c
531
if (chan->chan->chid == channel)
drivers/gpu/drm/nouveau/nouveau_abi16.c
532
return chan;
drivers/gpu/drm/nouveau/nouveau_abi16.c
543
struct nouveau_abi16_chan *chan;
drivers/gpu/drm/nouveau/nouveau_abi16.c
548
chan = nouveau_abi16_chan(abi16, req->channel);
drivers/gpu/drm/nouveau/nouveau_abi16.c
549
if (!chan)
drivers/gpu/drm/nouveau/nouveau_abi16.c
551
nouveau_abi16_chan_fini(abi16, chan);
drivers/gpu/drm/nouveau/nouveau_abi16.c
560
struct nouveau_abi16_chan *chan;
drivers/gpu/drm/nouveau/nouveau_abi16.c
572
chan = nouveau_abi16_chan(abi16, init->channel);
drivers/gpu/drm/nouveau/nouveau_abi16.c
573
if (!chan)
drivers/gpu/drm/nouveau/nouveau_abi16.c
576
ret = nvif_object_sclass_get(&chan->chan->user, &sclass);
drivers/gpu/drm/nouveau/nouveau_abi16.c
633
list_add(&ntfy->head, &chan->notifiers);
drivers/gpu/drm/nouveau/nouveau_abi16.c
635
ret = nvif_object_ctor(&chan->chan->user, "abi16EngObj", init->handle,
drivers/gpu/drm/nouveau/nouveau_abi16.c
639
nouveau_abi16_ntfy_fini(chan, ntfy);
drivers/gpu/drm/nouveau/nouveau_abi16.c
649
struct nouveau_abi16_chan *chan;
drivers/gpu/drm/nouveau/nouveau_abi16.c
663
chan = nouveau_abi16_chan(abi16, info->channel);
drivers/gpu/drm/nouveau/nouveau_abi16.c
664
if (!chan)
drivers/gpu/drm/nouveau/nouveau_abi16.c
671
list_add(&ntfy->head, &chan->notifiers);
drivers/gpu/drm/nouveau/nouveau_abi16.c
673
ret = nvkm_mm_head(&chan->heap, 0, 1, info->size, info->size, 1,
drivers/gpu/drm/nouveau/nouveau_abi16.c
683
args.start += chan->ntfy_vma->addr;
drivers/gpu/drm/nouveau/nouveau_abi16.c
684
args.limit += chan->ntfy_vma->addr;
drivers/gpu/drm/nouveau/nouveau_abi16.c
689
args.start += drm->agp.base + chan->ntfy->offset;
drivers/gpu/drm/nouveau/nouveau_abi16.c
690
args.limit += drm->agp.base + chan->ntfy->offset;
drivers/gpu/drm/nouveau/nouveau_abi16.c
694
args.start += chan->ntfy->offset;
drivers/gpu/drm/nouveau/nouveau_abi16.c
695
args.limit += chan->ntfy->offset;
drivers/gpu/drm/nouveau/nouveau_abi16.c
698
ret = nvif_object_ctor(&chan->chan->user, "abi16Ntfy", info->handle,
drivers/gpu/drm/nouveau/nouveau_abi16.c
707
nouveau_abi16_ntfy_fini(chan, ntfy);
drivers/gpu/drm/nouveau/nouveau_abi16.c
716
struct nouveau_abi16_chan *chan;
drivers/gpu/drm/nouveau/nouveau_abi16.c
723
chan = nouveau_abi16_chan(abi16, fini->channel);
drivers/gpu/drm/nouveau/nouveau_abi16.c
724
if (!chan)
drivers/gpu/drm/nouveau/nouveau_abi16.c
728
nouveau_channel_idle(chan->chan);
drivers/gpu/drm/nouveau/nouveau_abi16.c
730
list_for_each_entry(ntfy, &chan->notifiers, head) {
drivers/gpu/drm/nouveau/nouveau_abi16.c
732
nouveau_abi16_ntfy_fini(chan, ntfy);
drivers/gpu/drm/nouveau/nouveau_abi16.c
793
struct nouveau_abi16_chan *chan;
drivers/gpu/drm/nouveau/nouveau_abi16.c
816
chan = nouveau_abi16_chan(abi16, ioctl->token);
drivers/gpu/drm/nouveau/nouveau_abi16.c
817
if (!chan)
drivers/gpu/drm/nouveau/nouveau_abi16.c
824
ret = nvif_object_ctor(&chan->chan->user, "abi16EngObj", args->handle, args->oclass,
drivers/gpu/drm/nouveau/nouveau_abi16.c
836
struct nouveau_abi16_chan *chan;
drivers/gpu/drm/nouveau/nouveau_abi16.c
848
chan = nouveau_abi16_chan(abi16, ioctl->token);
drivers/gpu/drm/nouveau/nouveau_abi16.c
849
if (!chan)
drivers/gpu/drm/nouveau/nouveau_abi16.c
852
ret = nvif_object_sclass_get(&chan->chan->user, &sclass);
drivers/gpu/drm/nouveau/nouveau_abi16.h
24
struct nouveau_channel *chan;
drivers/gpu/drm/nouveau/nouveau_bo.c
1036
struct nouveau_channel *chan;
drivers/gpu/drm/nouveau/nouveau_bo.c
1039
chan = drm->cechan;
drivers/gpu/drm/nouveau/nouveau_bo.c
1041
chan = drm->channel;
drivers/gpu/drm/nouveau/nouveau_bo.c
1042
if (chan == NULL)
drivers/gpu/drm/nouveau/nouveau_bo.c
1045
ret = nvif_object_ctor(&chan->user, "ttmBoMove",
drivers/gpu/drm/nouveau/nouveau_bo.c
1050
ret = mthd->init(chan, drm->ttm.copy.handle);
drivers/gpu/drm/nouveau/nouveau_bo.c
1057
drm->ttm.chan = chan;
drivers/gpu/drm/nouveau/nouveau_bo.c
941
struct nouveau_channel *chan = drm->ttm.chan;
drivers/gpu/drm/nouveau/nouveau_bo.c
942
struct nouveau_cli *cli = chan->cli;
drivers/gpu/drm/nouveau/nouveau_bo.c
961
ret = nouveau_fence_sync(nouveau_bo(bo), chan, true, ctx->interruptible);
drivers/gpu/drm/nouveau/nouveau_bo.c
965
ret = drm->ttm.move(chan, bo, bo->resource, new_reg);
drivers/gpu/drm/nouveau/nouveau_bo.c
969
ret = nouveau_fence_new(&fence, chan);
drivers/gpu/drm/nouveau/nouveau_bo0039.c
107
PUSH_MTHD(push, NV039, SET_CONTEXT_DMA_NOTIFIES, chan->cli->drm->ntfy.handle);
drivers/gpu/drm/nouveau/nouveau_bo0039.c
39
struct nouveau_channel *chan, struct ttm_resource *reg)
drivers/gpu/drm/nouveau/nouveau_bo0039.c
43
return chan->vram.handle;
drivers/gpu/drm/nouveau/nouveau_bo0039.c
47
nv04_bo_move_m2mf(struct nouveau_channel *chan, struct ttm_buffer_object *bo,
drivers/gpu/drm/nouveau/nouveau_bo0039.c
50
struct nvif_push *push = &chan->chan.push;
drivers/gpu/drm/nouveau/nouveau_bo0039.c
51
u32 src_ctxdma = nouveau_bo_mem_ctxdma(bo, chan, old_reg);
drivers/gpu/drm/nouveau/nouveau_bo0039.c
53
u32 dst_ctxdma = nouveau_bo_mem_ctxdma(bo, chan, new_reg);
drivers/gpu/drm/nouveau/nouveau_bo0039.c
97
nv04_bo_move_init(struct nouveau_channel *chan, u32 handle)
drivers/gpu/drm/nouveau/nouveau_bo0039.c
99
struct nvif_push *push = &chan->chan.push;
drivers/gpu/drm/nouveau/nouveau_bo5039.c
137
nv50_bo_move_init(struct nouveau_channel *chan, u32 handle)
drivers/gpu/drm/nouveau/nouveau_bo5039.c
139
struct nvif_push *push = &chan->chan.push;
drivers/gpu/drm/nouveau/nouveau_bo5039.c
147
PUSH_MTHD(push, NV5039, SET_CONTEXT_DMA_NOTIFY, chan->cli->drm->ntfy.handle,
drivers/gpu/drm/nouveau/nouveau_bo5039.c
148
SET_CONTEXT_DMA_BUFFER_IN, chan->vram.handle,
drivers/gpu/drm/nouveau/nouveau_bo5039.c
149
SET_CONTEXT_DMA_BUFFER_OUT, chan->vram.handle);
drivers/gpu/drm/nouveau/nouveau_bo5039.c
39
nv50_bo_move_m2mf(struct nouveau_channel *chan, struct ttm_buffer_object *bo,
drivers/gpu/drm/nouveau/nouveau_bo5039.c
43
struct nvif_push *push = &chan->chan.push;
drivers/gpu/drm/nouveau/nouveau_bo74c1.c
36
nv84_bo_move_exec(struct nouveau_channel *chan, struct ttm_buffer_object *bo,
drivers/gpu/drm/nouveau/nouveau_bo74c1.c
40
struct nvif_push *push = &chan->chan.push;
drivers/gpu/drm/nouveau/nouveau_bo85b5.c
40
nva3_bo_move_copy(struct nouveau_channel *chan, struct ttm_buffer_object *bo,
drivers/gpu/drm/nouveau/nouveau_bo85b5.c
44
struct nvif_push *push = &chan->chan.push;
drivers/gpu/drm/nouveau/nouveau_bo9039.c
38
nvc0_bo_move_m2mf(struct nouveau_channel *chan, struct ttm_buffer_object *bo,
drivers/gpu/drm/nouveau/nouveau_bo9039.c
41
struct nvif_push *push = &chan->chan.push;
drivers/gpu/drm/nouveau/nouveau_bo9039.c
87
nvc0_bo_move_init(struct nouveau_channel *chan, u32 handle)
drivers/gpu/drm/nouveau/nouveau_bo9039.c
89
struct nvif_push *push = &chan->chan.push;
drivers/gpu/drm/nouveau/nouveau_bo90b5.c
33
nvc0_bo_move_copy(struct nouveau_channel *chan, struct ttm_buffer_object *bo,
drivers/gpu/drm/nouveau/nouveau_bo90b5.c
37
struct nvif_push *push = &chan->chan.push;
drivers/gpu/drm/nouveau/nouveau_boa0b5.c
38
nve0_bo_move_copy(struct nouveau_channel *chan, struct ttm_buffer_object *bo,
drivers/gpu/drm/nouveau/nouveau_boa0b5.c
42
struct nvif_push *push = &chan->chan.push;
drivers/gpu/drm/nouveau/nouveau_boa0b5.c
79
nve0_bo_move_init(struct nouveau_channel *chan, u32 handle)
drivers/gpu/drm/nouveau/nouveau_boa0b5.c
81
struct nvif_push *push = &chan->chan.push;
drivers/gpu/drm/nouveau/nouveau_chan.c
100
nvif_object_dtor(&chan->nvsw);
drivers/gpu/drm/nouveau/nouveau_chan.c
101
nvif_object_dtor(&chan->gart);
drivers/gpu/drm/nouveau/nouveau_chan.c
102
nvif_object_dtor(&chan->vram);
drivers/gpu/drm/nouveau/nouveau_chan.c
103
nvif_event_dtor(&chan->kill);
drivers/gpu/drm/nouveau/nouveau_chan.c
104
nvif_object_dtor(&chan->user);
drivers/gpu/drm/nouveau/nouveau_chan.c
105
nvif_mem_dtor(&chan->mem_userd);
drivers/gpu/drm/nouveau/nouveau_chan.c
106
nouveau_vma_del(&chan->sema.vma);
drivers/gpu/drm/nouveau/nouveau_chan.c
107
nouveau_bo_unpin_del(&chan->sema.bo);
drivers/gpu/drm/nouveau/nouveau_chan.c
108
nvif_object_dtor(&chan->push.ctxdma);
drivers/gpu/drm/nouveau/nouveau_chan.c
109
nouveau_vma_del(&chan->push.vma);
drivers/gpu/drm/nouveau/nouveau_chan.c
110
nouveau_bo_unpin_del(&chan->push.buffer);
drivers/gpu/drm/nouveau/nouveau_chan.c
111
kfree(chan);
drivers/gpu/drm/nouveau/nouveau_chan.c
119
struct nouveau_channel *chan = container_of(push, typeof(*chan), chan.push);
drivers/gpu/drm/nouveau/nouveau_chan.c
120
chan->dma.cur = chan->dma.cur + (chan->chan.push.cur - chan->chan.push.bgn);
drivers/gpu/drm/nouveau/nouveau_chan.c
121
FIRE_RING(chan);
drivers/gpu/drm/nouveau/nouveau_chan.c
122
chan->chan.push.bgn = chan->chan.push.cur;
drivers/gpu/drm/nouveau/nouveau_chan.c
128
struct nouveau_channel *chan = container_of(push, typeof(*chan), chan.push);
drivers/gpu/drm/nouveau/nouveau_chan.c
130
chan->dma.cur = chan->dma.cur + (chan->chan.push.cur - chan->chan.push.bgn);
drivers/gpu/drm/nouveau/nouveau_chan.c
131
ret = RING_SPACE(chan, size);
drivers/gpu/drm/nouveau/nouveau_chan.c
133
chan->chan.push.bgn = chan->chan.push.mem.object.map.ptr;
drivers/gpu/drm/nouveau/nouveau_chan.c
134
chan->chan.push.bgn = chan->chan.push.bgn + chan->dma.cur;
drivers/gpu/drm/nouveau/nouveau_chan.c
135
chan->chan.push.cur = chan->chan.push.bgn;
drivers/gpu/drm/nouveau/nouveau_chan.c
136
chan->chan.push.end = chan->chan.push.bgn + size;
drivers/gpu/drm/nouveau/nouveau_chan.c
148
struct nouveau_channel *chan;
drivers/gpu/drm/nouveau/nouveau_chan.c
152
chan = *pchan = kzalloc_obj(*chan);
drivers/gpu/drm/nouveau/nouveau_chan.c
153
if (!chan)
drivers/gpu/drm/nouveau/nouveau_chan.c
156
chan->cli = cli;
drivers/gpu/drm/nouveau/nouveau_chan.c
157
chan->vmm = nouveau_cli_vmm(cli);
drivers/gpu/drm/nouveau/nouveau_chan.c
158
atomic_set(&chan->killed, 0);
drivers/gpu/drm/nouveau/nouveau_chan.c
165
ret = nouveau_bo_new_map(cli, target, size, &chan->push.buffer);
drivers/gpu/drm/nouveau/nouveau_chan.c
171
chan->chan.push.mem.object.parent = cli->base.object.parent;
drivers/gpu/drm/nouveau/nouveau_chan.c
172
chan->chan.push.mem.object.client = &cli->base;
drivers/gpu/drm/nouveau/nouveau_chan.c
173
chan->chan.push.mem.object.name = "chanPush";
drivers/gpu/drm/nouveau/nouveau_chan.c
174
chan->chan.push.mem.object.map.ptr = chan->push.buffer->kmap.virtual;
drivers/gpu/drm/nouveau/nouveau_chan.c
175
chan->chan.push.wait = nouveau_channel_wait;
drivers/gpu/drm/nouveau/nouveau_chan.c
176
chan->chan.push.kick = nouveau_channel_kick;
drivers/gpu/drm/nouveau/nouveau_chan.c
182
chan->push.addr = chan->push.buffer->offset;
drivers/gpu/drm/nouveau/nouveau_chan.c
185
ret = nouveau_vma_new(chan->push.buffer, chan->vmm,
drivers/gpu/drm/nouveau/nouveau_chan.c
186
&chan->push.vma);
drivers/gpu/drm/nouveau/nouveau_chan.c
192
chan->push.addr = chan->push.vma->addr;
drivers/gpu/drm/nouveau/nouveau_chan.c
196
&chan->sema.bo, &chan->sema.vma);
drivers/gpu/drm/nouveau/nouveau_chan.c
202
args.limit = chan->vmm->vmm.limit - 1;
drivers/gpu/drm/nouveau/nouveau_chan.c
204
if (chan->push.buffer->bo.resource->mem_type == TTM_PL_VRAM) {
drivers/gpu/drm/nouveau/nouveau_chan.c
232
args.limit = chan->vmm->vmm.limit - 1;
drivers/gpu/drm/nouveau/nouveau_chan.c
238
&chan->push.ctxdma);
drivers/gpu/drm/nouveau/nouveau_chan.c
274
struct nouveau_channel *chan;
drivers/gpu/drm/nouveau/nouveau_chan.c
291
ret = nouveau_channel_prep(cli, size, &chan);
drivers/gpu/drm/nouveau/nouveau_chan.c
292
*pchan = chan;
drivers/gpu/drm/nouveau/nouveau_chan.c
305
args->ctxdma = nvif_handle(&chan->push.ctxdma);
drivers/gpu/drm/nouveau/nouveau_chan.c
306
args->offset = chan->push.addr;
drivers/gpu/drm/nouveau/nouveau_chan.c
309
args->vmm = nvif_handle(&chan->vmm->vmm.object);
drivers/gpu/drm/nouveau/nouveau_chan.c
311
args->ctxdma = nvif_handle(&chan->push.ctxdma);
drivers/gpu/drm/nouveau/nouveau_chan.c
314
args->offset = ioffset + chan->push.addr;
drivers/gpu/drm/nouveau/nouveau_chan.c
324
0, PAGE_SIZE, NULL, 0, &chan->mem_userd);
drivers/gpu/drm/nouveau/nouveau_chan.c
328
args->huserd = nvif_handle(&chan->mem_userd.object);
drivers/gpu/drm/nouveau/nouveau_chan.c
331
chan->userd = &chan->mem_userd.object;
drivers/gpu/drm/nouveau/nouveau_chan.c
333
chan->userd = &chan->user;
drivers/gpu/drm/nouveau/nouveau_chan.c
340
args, __struct_size(args), &chan->user);
drivers/gpu/drm/nouveau/nouveau_chan.c
346
chan->runlist = args->runlist;
drivers/gpu/drm/nouveau/nouveau_chan.c
347
chan->chid = args->chid;
drivers/gpu/drm/nouveau/nouveau_chan.c
348
chan->inst = args->inst;
drivers/gpu/drm/nouveau/nouveau_chan.c
349
chan->token = args->token;
drivers/gpu/drm/nouveau/nouveau_chan.c
354
nouveau_channel_init(struct nouveau_channel *chan, u32 vram, u32 gart)
drivers/gpu/drm/nouveau/nouveau_chan.c
356
struct nouveau_cli *cli = chan->cli;
drivers/gpu/drm/nouveau/nouveau_chan.c
362
ret = nvif_object_map(chan->userd, NULL, 0);
drivers/gpu/drm/nouveau/nouveau_chan.c
366
if (chan->user.oclass >= FERMI_CHANNEL_GPFIFO) {
drivers/gpu/drm/nouveau/nouveau_chan.c
375
ret = nvif_event_ctor(&chan->user, "abi16ChanKilled", chan->chid,
drivers/gpu/drm/nouveau/nouveau_chan.c
377
args, __struct_size(args), &chan->kill);
drivers/gpu/drm/nouveau/nouveau_chan.c
379
ret = nvif_event_allow(&chan->kill);
drivers/gpu/drm/nouveau/nouveau_chan.c
393
args.limit = chan->vmm->vmm.limit - 1;
drivers/gpu/drm/nouveau/nouveau_chan.c
401
ret = nvif_object_ctor(&chan->user, "abi16ChanVramCtxDma", vram,
drivers/gpu/drm/nouveau/nouveau_chan.c
403
&chan->vram);
drivers/gpu/drm/nouveau/nouveau_chan.c
411
args.limit = chan->vmm->vmm.limit - 1;
drivers/gpu/drm/nouveau/nouveau_chan.c
422
args.limit = chan->vmm->vmm.limit - 1;
drivers/gpu/drm/nouveau/nouveau_chan.c
425
ret = nvif_object_ctor(&chan->user, "abi16ChanGartCtxDma", gart,
drivers/gpu/drm/nouveau/nouveau_chan.c
427
&chan->gart);
drivers/gpu/drm/nouveau/nouveau_chan.c
433
if (chan->user.oclass < NV50_CHANNEL_GPFIFO) {
drivers/gpu/drm/nouveau/nouveau_chan.c
434
chan->user_put = 0x40;
drivers/gpu/drm/nouveau/nouveau_chan.c
435
chan->user_get = 0x44;
drivers/gpu/drm/nouveau/nouveau_chan.c
436
chan->dma.max = (0x10000 / 4) - 2;
drivers/gpu/drm/nouveau/nouveau_chan.c
438
if (chan->user.oclass < FERMI_CHANNEL_GPFIFO) {
drivers/gpu/drm/nouveau/nouveau_chan.c
439
ret = nvif_chan506f_ctor(&chan->chan, chan->userd->map.ptr,
drivers/gpu/drm/nouveau/nouveau_chan.c
44
nouveau_channel_kill(struct nouveau_channel *chan)
drivers/gpu/drm/nouveau/nouveau_chan.c
440
(u8*)chan->push.buffer->kmap.virtual + 0x10000, 0x2000,
drivers/gpu/drm/nouveau/nouveau_chan.c
441
chan->push.buffer->kmap.virtual, chan->push.addr, 0x10000);
drivers/gpu/drm/nouveau/nouveau_chan.c
445
if (chan->user.oclass < VOLTA_CHANNEL_GPFIFO_A) {
drivers/gpu/drm/nouveau/nouveau_chan.c
446
ret = nvif_chan906f_ctor(&chan->chan, chan->userd->map.ptr,
drivers/gpu/drm/nouveau/nouveau_chan.c
447
(u8*)chan->push.buffer->kmap.virtual + 0x10000, 0x2000,
drivers/gpu/drm/nouveau/nouveau_chan.c
448
chan->push.buffer->kmap.virtual, chan->push.addr, 0x10000,
drivers/gpu/drm/nouveau/nouveau_chan.c
449
chan->sema.bo->kmap.virtual, chan->sema.vma->addr);
drivers/gpu/drm/nouveau/nouveau_chan.c
453
ret = nvif_chanc36f_ctor(&chan->chan, chan->userd->map.ptr,
drivers/gpu/drm/nouveau/nouveau_chan.c
454
(u8*)chan->push.buffer->kmap.virtual + 0x10000, 0x2000,
drivers/gpu/drm/nouveau/nouveau_chan.c
455
chan->push.buffer->kmap.virtual, chan->push.addr, 0x10000,
drivers/gpu/drm/nouveau/nouveau_chan.c
456
chan->sema.bo->kmap.virtual, chan->sema.vma->addr,
drivers/gpu/drm/nouveau/nouveau_chan.c
457
&drm->client.device.user, chan->token);
drivers/gpu/drm/nouveau/nouveau_chan.c
46
atomic_set(&chan->killed, 1);
drivers/gpu/drm/nouveau/nouveau_chan.c
462
chan->dma.put = 0;
drivers/gpu/drm/nouveau/nouveau_chan.c
463
chan->dma.cur = chan->dma.put;
drivers/gpu/drm/nouveau/nouveau_chan.c
464
chan->dma.free = chan->dma.max - chan->dma.cur;
drivers/gpu/drm/nouveau/nouveau_chan.c
466
ret = PUSH_WAIT(&chan->chan.push, NOUVEAU_DMA_SKIPS);
drivers/gpu/drm/nouveau/nouveau_chan.c
47
if (chan->fence)
drivers/gpu/drm/nouveau/nouveau_chan.c
471
PUSH_DATA(&chan->chan.push, 0x00000000);
drivers/gpu/drm/nouveau/nouveau_chan.c
475
ret = nvif_object_ctor(&chan->user, "abi16NvswFence", 0x006e,
drivers/gpu/drm/nouveau/nouveau_chan.c
477
NULL, 0, &chan->nvsw);
drivers/gpu/drm/nouveau/nouveau_chan.c
48
nouveau_fence_context_kill(chan->fence, -ENODEV);
drivers/gpu/drm/nouveau/nouveau_chan.c
481
ret = PUSH_WAIT(&chan->chan.push, 2);
drivers/gpu/drm/nouveau/nouveau_chan.c
485
PUSH_NVSQ(&chan->chan.push, NV_SW, 0x0000, chan->nvsw.handle);
drivers/gpu/drm/nouveau/nouveau_chan.c
486
PUSH_KICK(&chan->chan.push);
drivers/gpu/drm/nouveau/nouveau_chan.c
490
return nouveau_fence(drm)->context_new(chan);
drivers/gpu/drm/nouveau/nouveau_chan.c
54
struct nouveau_channel *chan = container_of(event, typeof(*chan), kill);
drivers/gpu/drm/nouveau/nouveau_chan.c
55
struct nouveau_cli *cli = chan->cli;
drivers/gpu/drm/nouveau/nouveau_chan.c
57
NV_PRINTK(warn, cli, "channel %d killed!\n", chan->chid);
drivers/gpu/drm/nouveau/nouveau_chan.c
59
if (unlikely(!atomic_read(&chan->killed)))
drivers/gpu/drm/nouveau/nouveau_chan.c
60
nouveau_channel_kill(chan);
drivers/gpu/drm/nouveau/nouveau_chan.c
66
nouveau_channel_idle(struct nouveau_channel *chan)
drivers/gpu/drm/nouveau/nouveau_chan.c
68
if (likely(chan && chan->fence && !atomic_read(&chan->killed))) {
drivers/gpu/drm/nouveau/nouveau_chan.c
69
struct nouveau_cli *cli = chan->cli;
drivers/gpu/drm/nouveau/nouveau_chan.c
73
ret = nouveau_fence_new(&fence, chan);
drivers/gpu/drm/nouveau/nouveau_chan.c
81
chan->chid, cli->name);
drivers/gpu/drm/nouveau/nouveau_chan.c
91
struct nouveau_channel *chan = *pchan;
drivers/gpu/drm/nouveau/nouveau_chan.c
92
if (chan) {
drivers/gpu/drm/nouveau/nouveau_chan.c
93
if (chan->fence)
drivers/gpu/drm/nouveau/nouveau_chan.c
94
nouveau_fence(chan->cli->drm)->context_del(chan);
drivers/gpu/drm/nouveau/nouveau_chan.c
96
if (nvif_object_constructed(&chan->user))
drivers/gpu/drm/nouveau/nouveau_chan.c
97
nouveau_svmm_part(chan->vmm->svmm, chan->inst);
drivers/gpu/drm/nouveau/nouveau_chan.c
99
nvif_object_dtor(&chan->blit);
drivers/gpu/drm/nouveau/nouveau_chan.h
10
struct nvif_chan chan;
drivers/gpu/drm/nouveau/nouveau_dma.c
106
chan->dma.free = chan->dma.max - chan->dma.cur;
drivers/gpu/drm/nouveau/nouveau_dma.c
107
if (chan->dma.free >= size)
drivers/gpu/drm/nouveau/nouveau_dma.c
114
OUT_RING(chan, chan->push.addr | 0x20000000);
drivers/gpu/drm/nouveau/nouveau_dma.c
122
get = READ_GET(chan, &prev_get, &cnt);
drivers/gpu/drm/nouveau/nouveau_dma.c
133
chan->dma.cur =
drivers/gpu/drm/nouveau/nouveau_dma.c
134
chan->dma.put = NOUVEAU_DMA_SKIPS;
drivers/gpu/drm/nouveau/nouveau_dma.c
143
chan->dma.free = get - chan->dma.cur - 1;
drivers/gpu/drm/nouveau/nouveau_dma.c
41
READ_GET(struct nouveau_channel *chan, uint64_t *prev_get, int *timeout)
drivers/gpu/drm/nouveau/nouveau_dma.c
45
val = nvif_rd32(chan->userd, chan->user_get);
drivers/gpu/drm/nouveau/nouveau_dma.c
62
if (val < chan->push.addr ||
drivers/gpu/drm/nouveau/nouveau_dma.c
63
val > chan->push.addr + (chan->dma.max << 2))
drivers/gpu/drm/nouveau/nouveau_dma.c
66
return (val - chan->push.addr) >> 2;
drivers/gpu/drm/nouveau/nouveau_dma.c
70
nouveau_dma_wait(struct nouveau_channel *chan, int size)
drivers/gpu/drm/nouveau/nouveau_dma.c
75
while (chan->dma.free < size) {
drivers/gpu/drm/nouveau/nouveau_dma.c
76
get = READ_GET(chan, &prev_get, &cnt);
drivers/gpu/drm/nouveau/nouveau_dma.c
92
if (get <= chan->dma.cur) {
drivers/gpu/drm/nouveau/nouveau_dma.h
100
WIND_RING(struct nouveau_channel *chan)
drivers/gpu/drm/nouveau/nouveau_dma.h
102
chan->dma.cur = chan->dma.put;
drivers/gpu/drm/nouveau/nouveau_dma.h
64
RING_SPACE(struct nouveau_channel *chan, int size)
drivers/gpu/drm/nouveau/nouveau_dma.h
68
ret = nouveau_dma_wait(chan, size);
drivers/gpu/drm/nouveau/nouveau_dma.h
72
chan->dma.free -= size;
drivers/gpu/drm/nouveau/nouveau_dma.h
77
OUT_RING(struct nouveau_channel *chan, int data)
drivers/gpu/drm/nouveau/nouveau_dma.h
79
nouveau_bo_wr32(chan->push.buffer, chan->dma.cur++, data);
drivers/gpu/drm/nouveau/nouveau_dma.h
84
nouveau_bo_rd32(chan->push.buffer, 0); \
drivers/gpu/drm/nouveau/nouveau_dma.h
85
nvif_wr32(&chan->user, chan->user_put, ((val) << 2) + chan->push.addr);\
drivers/gpu/drm/nouveau/nouveau_dma.h
89
FIRE_RING(struct nouveau_channel *chan)
drivers/gpu/drm/nouveau/nouveau_dma.h
91
if (chan->dma.cur == chan->dma.put)
drivers/gpu/drm/nouveau/nouveau_dma.h
94
WRITE_PUT(chan->dma.cur);
drivers/gpu/drm/nouveau/nouveau_dma.h
96
chan->dma.put = chan->dma.cur;
drivers/gpu/drm/nouveau/nouveau_dmem.c
267
nouveau_fence_new(&fence, dmem->migrate.chan);
drivers/gpu/drm/nouveau/nouveau_dmem.c
517
nouveau_fence_new(&fence, chunk->drm->dmem->migrate.chan);
drivers/gpu/drm/nouveau/nouveau_dmem.c
558
struct nvif_push *push = &drm->dmem->migrate.chan->chan.push;
drivers/gpu/drm/nouveau/nouveau_dmem.c
631
struct nvif_push *push = &drm->dmem->migrate.chan->chan.push;
drivers/gpu/drm/nouveau/nouveau_dmem.c
693
drm->dmem->migrate.chan = drm->ttm.chan;
drivers/gpu/drm/nouveau/nouveau_dmem.c
78
struct nouveau_channel *chan;
drivers/gpu/drm/nouveau/nouveau_dmem.c
809
nouveau_fence_new(&fence, drm->dmem->migrate.chan);
drivers/gpu/drm/nouveau/nouveau_drm.c
403
struct nvif_push *push = &drm->channel->chan.push;
drivers/gpu/drm/nouveau/nouveau_drv.h
241
struct nouveau_channel *chan;
drivers/gpu/drm/nouveau/nouveau_exec.c
132
struct nouveau_channel *chan = exec_job->chan;
drivers/gpu/drm/nouveau/nouveau_exec.c
136
ret = nvif_chan_gpfifo_wait(&chan->chan, exec_job->push.count + 1, 16);
drivers/gpu/drm/nouveau/nouveau_exec.c
146
nvif_chan_gpfifo_push(&chan->chan, p->va, p->va_len, no_prefetch);
drivers/gpu/drm/nouveau/nouveau_exec.c
149
nvif_chan_gpfifo_post(&chan->chan);
drivers/gpu/drm/nouveau/nouveau_exec.c
155
WIND_RING(chan);
drivers/gpu/drm/nouveau/nouveau_exec.c
184
struct nouveau_channel *chan = exec_job->chan;
drivers/gpu/drm/nouveau/nouveau_exec.c
186
if (unlikely(!atomic_read(&chan->killed)))
drivers/gpu/drm/nouveau/nouveau_exec.c
187
nouveau_channel_kill(chan);
drivers/gpu/drm/nouveau/nouveau_exec.c
190
chan->chid);
drivers/gpu/drm/nouveau/nouveau_exec.c
239
job->chan = __args->chan;
drivers/gpu/drm/nouveau/nouveau_exec.c
357
struct nouveau_channel *chan = NULL;
drivers/gpu/drm/nouveau/nouveau_exec.c
370
if (chan16->chan->chid == req->channel) {
drivers/gpu/drm/nouveau/nouveau_exec.c
371
chan = chan16->chan;
drivers/gpu/drm/nouveau/nouveau_exec.c
376
if (!chan)
drivers/gpu/drm/nouveau/nouveau_exec.c
379
if (unlikely(atomic_read(&chan->killed)))
drivers/gpu/drm/nouveau/nouveau_exec.c
382
if (chan->user.oclass < NV50_CHANNEL_GPFIFO)
drivers/gpu/drm/nouveau/nouveau_exec.c
385
push_max = nouveau_exec_push_max_from_ib_max(chan->chan.gpfifo.max);
drivers/gpu/drm/nouveau/nouveau_exec.c
398
args.chan = chan;
drivers/gpu/drm/nouveau/nouveau_exec.c
98
ret = nouveau_fence_create(&exec_job->fence, exec_job->chan);
drivers/gpu/drm/nouveau/nouveau_exec.h
12
struct nouveau_channel *chan;
drivers/gpu/drm/nouveau/nouveau_exec.h
33
struct nouveau_channel *chan;
drivers/gpu/drm/nouveau/nouveau_fence.c
124
nouveau_fence_update(struct nouveau_channel *chan, struct nouveau_fence_chan *fctx)
drivers/gpu/drm/nouveau/nouveau_fence.c
128
u32 seq = fctx->read(chan);
drivers/gpu/drm/nouveau/nouveau_fence.c
147
struct nouveau_channel *chan;
drivers/gpu/drm/nouveau/nouveau_fence.c
154
chan = rcu_dereference_protected(fence->channel, lockdep_is_held(&fctx->lock));
drivers/gpu/drm/nouveau/nouveau_fence.c
155
nouveau_fence_update(chan, fctx);
drivers/gpu/drm/nouveau/nouveau_fence.c
169
nouveau_fence_context_new(struct nouveau_channel *chan, struct nouveau_fence_chan *fctx)
drivers/gpu/drm/nouveau/nouveau_fence.c
171
struct nouveau_cli *cli = chan->cli;
drivers/gpu/drm/nouveau/nouveau_fence.c
184
fctx->context = drm->runl[chan->runlist].context_base + chan->chid;
drivers/gpu/drm/nouveau/nouveau_fence.c
186
if (chan == drm->cechan)
drivers/gpu/drm/nouveau/nouveau_fence.c
188
else if (chan == drm->channel)
drivers/gpu/drm/nouveau/nouveau_fence.c
200
ret = nvif_event_ctor(&chan->user, "fenceNonStallIntr", (chan->runlist << 16) | chan->chid,
drivers/gpu/drm/nouveau/nouveau_fence.c
210
struct nouveau_channel *chan = unrcu_pointer(fence->channel);
drivers/gpu/drm/nouveau/nouveau_fence.c
211
struct nouveau_fence_chan *fctx = chan->fence;
drivers/gpu/drm/nouveau/nouveau_fence.c
212
struct nouveau_fence_priv *priv = (void*)chan->cli->drm->fence;
drivers/gpu/drm/nouveau/nouveau_fence.c
236
nouveau_fence_update(chan, fctx);
drivers/gpu/drm/nouveau/nouveau_fence.c
248
struct nouveau_channel *chan;
drivers/gpu/drm/nouveau/nouveau_fence.c
255
chan = rcu_dereference_protected(fence->channel, lockdep_is_held(&fctx->lock));
drivers/gpu/drm/nouveau/nouveau_fence.c
256
if (chan)
drivers/gpu/drm/nouveau/nouveau_fence.c
257
nouveau_fence_update(chan, fctx);
drivers/gpu/drm/nouveau/nouveau_fence.c
341
nouveau_fence_sync(struct nouveau_bo *nvbo, struct nouveau_channel *chan,
drivers/gpu/drm/nouveau/nouveau_fence.c
344
struct nouveau_fence_chan *fctx = chan->fence;
drivers/gpu/drm/nouveau/nouveau_fence.c
369
f = nouveau_local_fence(fence, chan->cli->drm);
drivers/gpu/drm/nouveau/nouveau_fence.c
377
local = prev && prev->cli->drm == chan->cli->drm;
drivers/gpu/drm/nouveau/nouveau_fence.c
378
if (local && (prev == chan ||
drivers/gpu/drm/nouveau/nouveau_fence.c
379
fctx->sync(f, prev, chan) == 0))
drivers/gpu/drm/nouveau/nouveau_fence.c
405
struct nouveau_channel *chan)
drivers/gpu/drm/nouveau/nouveau_fence.c
409
if (unlikely(!chan->fence))
drivers/gpu/drm/nouveau/nouveau_fence.c
416
fence->channel = chan;
drivers/gpu/drm/nouveau/nouveau_fence.c
424
struct nouveau_channel *chan)
drivers/gpu/drm/nouveau/nouveau_fence.c
428
ret = nouveau_fence_create(pfence, chan);
drivers/gpu/drm/nouveau/nouveau_fence.c
462
struct nouveau_channel *chan;
drivers/gpu/drm/nouveau/nouveau_fence.c
466
chan = rcu_dereference(fence->channel);
drivers/gpu/drm/nouveau/nouveau_fence.c
467
if (chan)
drivers/gpu/drm/nouveau/nouveau_fence.c
468
ret = (int)(fctx->read(chan) - fence->base.seqno) >= 0;
drivers/gpu/drm/nouveau/nouveau_gem.c
411
validate_fini_no_ticket(struct validate_op *op, struct nouveau_channel *chan,
drivers/gpu/drm/nouveau/nouveau_gem.c
425
if (chan->vmm->vmm.object.oclass >= NVIF_CLASS_VMM_NV50) {
drivers/gpu/drm/nouveau/nouveau_gem.c
447
validate_fini(struct validate_op *op, struct nouveau_channel *chan,
drivers/gpu/drm/nouveau/nouveau_gem.c
451
validate_fini_no_ticket(op, chan, fence, pbbo);
drivers/gpu/drm/nouveau/nouveau_gem.c
456
validate_init(struct nouveau_channel *chan, struct drm_file *file_priv,
drivers/gpu/drm/nouveau/nouveau_gem.c
506
validate_fini_no_ticket(op, chan, NULL, NULL);
drivers/gpu/drm/nouveau/nouveau_gem.c
520
if (chan->vmm->vmm.object.oclass >= NVIF_CLASS_VMM_NV50) {
drivers/gpu/drm/nouveau/nouveau_gem.c
521
struct nouveau_vmm *vmm = chan->vmm;
drivers/gpu/drm/nouveau/nouveau_gem.c
561
validate_fini(op, chan, NULL, NULL);
drivers/gpu/drm/nouveau/nouveau_gem.c
567
validate_list(struct nouveau_channel *chan,
drivers/gpu/drm/nouveau/nouveau_gem.c
570
struct nouveau_cli *cli = chan->cli;
drivers/gpu/drm/nouveau/nouveau_gem.c
593
ret = nouveau_fence_sync(nvbo, chan, !!b->write_domains, true);
drivers/gpu/drm/nouveau/nouveau_gem.c
622
nouveau_gem_pushbuf_validate(struct nouveau_channel *chan,
drivers/gpu/drm/nouveau/nouveau_gem.c
636
ret = validate_init(chan, file_priv, pbbo, nr_buffers, op);
drivers/gpu/drm/nouveau/nouveau_gem.c
643
ret = validate_list(chan, &op->list, pbbo);
drivers/gpu/drm/nouveau/nouveau_gem.c
647
validate_fini(op, chan, NULL, NULL);
drivers/gpu/drm/nouveau/nouveau_gem.c
755
struct nouveau_channel *chan = NULL;
drivers/gpu/drm/nouveau/nouveau_gem.c
768
if (temp->chan->chid == req->channel) {
drivers/gpu/drm/nouveau/nouveau_gem.c
769
chan = temp->chan;
drivers/gpu/drm/nouveau/nouveau_gem.c
774
if (!chan)
drivers/gpu/drm/nouveau/nouveau_gem.c
776
if (unlikely(atomic_read(&chan->killed)))
drivers/gpu/drm/nouveau/nouveau_gem.c
825
ret = nouveau_gem_pushbuf_validate(chan, file_priv, bo,
drivers/gpu/drm/nouveau/nouveau_gem.c
836
validate_fini(&op, chan, NULL, bo);
drivers/gpu/drm/nouveau/nouveau_gem.c
853
if (chan->user.oclass >= NV50_CHANNEL_GPFIFO) {
drivers/gpu/drm/nouveau/nouveau_gem.c
854
ret = nvif_chan_gpfifo_wait(&chan->chan, req->nr_push + 1, 16);
drivers/gpu/drm/nouveau/nouveau_gem.c
867
nvif_chan_gpfifo_push(&chan->chan, addr, length, no_prefetch);
drivers/gpu/drm/nouveau/nouveau_gem.c
870
nvif_chan_gpfifo_post(&chan->chan);
drivers/gpu/drm/nouveau/nouveau_gem.c
873
ret = PUSH_WAIT(&chan->chan.push, req->nr_push * 2);
drivers/gpu/drm/nouveau/nouveau_gem.c
883
PUSH_CALL(&chan->chan.push, nvbo->offset + push[i].offset);
drivers/gpu/drm/nouveau/nouveau_gem.c
884
PUSH_DATA(&chan->chan.push, 0);
drivers/gpu/drm/nouveau/nouveau_gem.c
887
ret = PUSH_WAIT(&chan->chan.push, req->nr_push * (2 + NOUVEAU_DMA_SKIPS));
drivers/gpu/drm/nouveau/nouveau_gem.c
898
cmd = chan->push.addr + ((chan->dma.cur + 2) << 2);
drivers/gpu/drm/nouveau/nouveau_gem.c
906
WIND_RING(chan);
drivers/gpu/drm/nouveau/nouveau_gem.c
916
PUSH_JUMP(&chan->chan.push, nvbo->offset + push[i].offset);
drivers/gpu/drm/nouveau/nouveau_gem.c
917
PUSH_DATA(&chan->chan.push, 0);
drivers/gpu/drm/nouveau/nouveau_gem.c
919
PUSH_DATA(&chan->chan.push, 0);
drivers/gpu/drm/nouveau/nouveau_gem.c
923
ret = nouveau_fence_new(&fence, chan);
drivers/gpu/drm/nouveau/nouveau_gem.c
926
WIND_RING(chan);
drivers/gpu/drm/nouveau/nouveau_gem.c
938
validate_fini(&op, chan, fence, bo);
drivers/gpu/drm/nouveau/nouveau_gem.c
963
if (chan->user.oclass >= NV50_CHANNEL_GPFIFO) {
drivers/gpu/drm/nouveau/nouveau_gem.c
972
(chan->push.addr + ((chan->dma.cur + 2) << 2));
drivers/gpu/drm/nouveau/nv04_fence.c
42
struct nvif_push *push = &unrcu_pointer(fence->channel)->chan.push;
drivers/gpu/drm/nouveau/nv04_fence.c
53
struct nouveau_channel *prev, struct nouveau_channel *chan)
drivers/gpu/drm/nouveau/nv04_fence.c
59
nv04_fence_read(struct nouveau_channel *chan)
drivers/gpu/drm/nouveau/nv04_fence.c
62
WARN_ON(nvif_object_mthd(&chan->nvsw, NV04_NVSW_GET_REF,
drivers/gpu/drm/nouveau/nv04_fence.c
68
nv04_fence_context_del(struct nouveau_channel *chan)
drivers/gpu/drm/nouveau/nv04_fence.c
70
struct nv04_fence_chan *fctx = chan->fence;
drivers/gpu/drm/nouveau/nv04_fence.c
72
chan->fence = NULL;
drivers/gpu/drm/nouveau/nv04_fence.c
77
nv04_fence_context_new(struct nouveau_channel *chan)
drivers/gpu/drm/nouveau/nv04_fence.c
81
nouveau_fence_context_new(chan, &fctx->base);
drivers/gpu/drm/nouveau/nv04_fence.c
85
chan->fence = fctx;
drivers/gpu/drm/nouveau/nv10_fence.c
35
struct nvif_push *push = &fence->channel->chan.push;
drivers/gpu/drm/nouveau/nv10_fence.c
47
struct nouveau_channel *prev, struct nouveau_channel *chan)
drivers/gpu/drm/nouveau/nv10_fence.c
53
nv10_fence_read(struct nouveau_channel *chan)
drivers/gpu/drm/nouveau/nv10_fence.c
55
return NVIF_RD32(&chan->user, NV06E, REFERENCE);
drivers/gpu/drm/nouveau/nv10_fence.c
59
nv10_fence_context_del(struct nouveau_channel *chan)
drivers/gpu/drm/nouveau/nv10_fence.c
61
struct nv10_fence_chan *fctx = chan->fence;
drivers/gpu/drm/nouveau/nv10_fence.c
64
chan->fence = NULL;
drivers/gpu/drm/nouveau/nv10_fence.c
69
nv10_fence_context_new(struct nouveau_channel *chan)
drivers/gpu/drm/nouveau/nv10_fence.c
73
fctx = chan->fence = kzalloc_obj(*fctx);
drivers/gpu/drm/nouveau/nv10_fence.c
77
nouveau_fence_context_new(chan, &fctx->base);
drivers/gpu/drm/nouveau/nv17_fence.c
105
nv10_fence_context_del(chan);
drivers/gpu/drm/nouveau/nv17_fence.c
37
struct nouveau_channel *prev, struct nouveau_channel *chan)
drivers/gpu/drm/nouveau/nv17_fence.c
41
struct nv10_fence_chan *fctx = chan->fence;
drivers/gpu/drm/nouveau/nv17_fence.c
42
struct nvif_push *ppush = &prev->chan.push;
drivers/gpu/drm/nouveau/nv17_fence.c
43
struct nvif_push *npush = &chan->chan.push;
drivers/gpu/drm/nouveau/nv17_fence.c
77
nv17_fence_context_new(struct nouveau_channel *chan)
drivers/gpu/drm/nouveau/nv17_fence.c
79
struct nv10_fence_priv *priv = chan->cli->drm->fence;
drivers/gpu/drm/nouveau/nv17_fence.c
86
fctx = chan->fence = kzalloc_obj(*fctx);
drivers/gpu/drm/nouveau/nv17_fence.c
90
nouveau_fence_context_new(chan, &fctx->base);
drivers/gpu/drm/nouveau/nv17_fence.c
95
ret = nvif_object_ctor(&chan->user, "fenceCtxDma", NvSema,
drivers/gpu/drm/nouveau/nv50_fence.c
36
nv50_fence_context_new(struct nouveau_channel *chan)
drivers/gpu/drm/nouveau/nv50_fence.c
38
struct nv10_fence_priv *priv = chan->cli->drm->fence;
drivers/gpu/drm/nouveau/nv50_fence.c
45
fctx = chan->fence = kzalloc_obj(*fctx);
drivers/gpu/drm/nouveau/nv50_fence.c
49
nouveau_fence_context_new(chan, &fctx->base);
drivers/gpu/drm/nouveau/nv50_fence.c
54
ret = nvif_object_ctor(&chan->user, "fenceCtxDma", NvSema,
drivers/gpu/drm/nouveau/nv50_fence.c
64
nv10_fence_context_del(chan);
drivers/gpu/drm/nouveau/nv84_fence.c
102
return fctx->base.sync32(chan, addr, fence->base.seqno);
drivers/gpu/drm/nouveau/nv84_fence.c
106
nv84_fence_read(struct nouveau_channel *chan)
drivers/gpu/drm/nouveau/nv84_fence.c
108
struct nv84_fence_priv *priv = chan->cli->drm->fence;
drivers/gpu/drm/nouveau/nv84_fence.c
109
return nouveau_bo_rd32(priv->bo, nv84_fence_chid(chan) * 16/4);
drivers/gpu/drm/nouveau/nv84_fence.c
113
nv84_fence_context_del(struct nouveau_channel *chan)
drivers/gpu/drm/nouveau/nv84_fence.c
115
struct nv84_fence_priv *priv = chan->cli->drm->fence;
drivers/gpu/drm/nouveau/nv84_fence.c
116
struct nv84_fence_chan *fctx = chan->fence;
drivers/gpu/drm/nouveau/nv84_fence.c
118
nouveau_bo_wr32(priv->bo, nv84_fence_chid(chan) * 16 / 4, fctx->base.sequence);
drivers/gpu/drm/nouveau/nv84_fence.c
123
chan->fence = NULL;
drivers/gpu/drm/nouveau/nv84_fence.c
128
nv84_fence_context_new(struct nouveau_channel *chan)
drivers/gpu/drm/nouveau/nv84_fence.c
130
struct nv84_fence_priv *priv = chan->cli->drm->fence;
drivers/gpu/drm/nouveau/nv84_fence.c
134
fctx = chan->fence = kzalloc_obj(*fctx);
drivers/gpu/drm/nouveau/nv84_fence.c
138
nouveau_fence_context_new(chan, &fctx->base);
drivers/gpu/drm/nouveau/nv84_fence.c
144
fctx->base.sequence = nv84_fence_read(chan);
drivers/gpu/drm/nouveau/nv84_fence.c
147
ret = nouveau_vma_new(priv->bo, chan->vmm, &fctx->vma);
drivers/gpu/drm/nouveau/nv84_fence.c
151
nv84_fence_context_del(chan);
drivers/gpu/drm/nouveau/nv84_fence.c
36
nv84_fence_emit32(struct nouveau_channel *chan, u64 virtual, u32 sequence)
drivers/gpu/drm/nouveau/nv84_fence.c
38
struct nvif_push *push = &chan->chan.push;
drivers/gpu/drm/nouveau/nv84_fence.c
41
PUSH_MTHD(push, NV826F, SET_CONTEXT_DMA_SEMAPHORE, chan->vram.handle);
drivers/gpu/drm/nouveau/nv84_fence.c
59
nv84_fence_sync32(struct nouveau_channel *chan, u64 virtual, u32 sequence)
drivers/gpu/drm/nouveau/nv84_fence.c
61
struct nvif_push *push = &chan->chan.push;
drivers/gpu/drm/nouveau/nv84_fence.c
64
PUSH_MTHD(push, NV826F, SET_CONTEXT_DMA_SEMAPHORE, chan->vram.handle);
drivers/gpu/drm/nouveau/nv84_fence.c
80
nv84_fence_chid(struct nouveau_channel *chan)
drivers/gpu/drm/nouveau/nv84_fence.c
82
return chan->cli->drm->runl[chan->runlist].chan_id_base + chan->chid;
drivers/gpu/drm/nouveau/nv84_fence.c
88
struct nouveau_channel *chan = fence->channel;
drivers/gpu/drm/nouveau/nv84_fence.c
89
struct nv84_fence_chan *fctx = chan->fence;
drivers/gpu/drm/nouveau/nv84_fence.c
90
u64 addr = fctx->vma->addr + nv84_fence_chid(chan) * 16;
drivers/gpu/drm/nouveau/nv84_fence.c
92
return fctx->base.emit32(chan, addr, fence->base.seqno);
drivers/gpu/drm/nouveau/nv84_fence.c
97
struct nouveau_channel *prev, struct nouveau_channel *chan)
drivers/gpu/drm/nouveau/nv84_fence.c
99
struct nv84_fence_chan *fctx = chan->fence;
drivers/gpu/drm/nouveau/nvc0_fence.c
35
nvc0_fence_emit32(struct nouveau_channel *chan, u64 virtual, u32 sequence)
drivers/gpu/drm/nouveau/nvc0_fence.c
37
struct nvif_push *push = &chan->chan.push;
drivers/gpu/drm/nouveau/nvc0_fence.c
58
nvc0_fence_sync32(struct nouveau_channel *chan, u64 virtual, u32 sequence)
drivers/gpu/drm/nouveau/nvc0_fence.c
60
struct nvif_push *push = &chan->chan.push;
drivers/gpu/drm/nouveau/nvc0_fence.c
78
nvc0_fence_context_new(struct nouveau_channel *chan)
drivers/gpu/drm/nouveau/nvc0_fence.c
80
int ret = nv84_fence_context_new(chan);
drivers/gpu/drm/nouveau/nvc0_fence.c
82
struct nv84_fence_chan *fctx = chan->fence;
drivers/gpu/drm/nouveau/nvif/chan.c
10
struct nvif_chan *chan = container_of(push, typeof(*chan), push);
drivers/gpu/drm/nouveau/nvif/chan.c
101
chan->userd.map.ptr = userd;
drivers/gpu/drm/nouveau/nvif/chan.c
103
chan->gpfifo.map.ptr = gpfifo;
drivers/gpu/drm/nouveau/nvif/chan.c
104
chan->gpfifo.max = (gpfifo_size >> 3) - 1;
drivers/gpu/drm/nouveau/nvif/chan.c
105
chan->gpfifo.free = chan->gpfifo.max;
drivers/gpu/drm/nouveau/nvif/chan.c
107
chan->push.mem.object.map.ptr = push;
drivers/gpu/drm/nouveau/nvif/chan.c
108
chan->push.wait = nvif_chan_gpfifo_push_wait;
drivers/gpu/drm/nouveau/nvif/chan.c
109
chan->push.kick = nvif_chan_gpfifo_push_kick;
drivers/gpu/drm/nouveau/nvif/chan.c
11
u32 put = push->bgn - (u32 *)chan->push.mem.object.map.ptr;
drivers/gpu/drm/nouveau/nvif/chan.c
110
chan->push.addr = push_addr;
drivers/gpu/drm/nouveau/nvif/chan.c
111
chan->push.hw.max = push_size >> 2;
drivers/gpu/drm/nouveau/nvif/chan.c
112
chan->push.bgn = chan->push.cur = chan->push.end = push;
drivers/gpu/drm/nouveau/nvif/chan.c
116
nvif_chan_dma_wait(struct nvif_chan *chan, u32 nr)
drivers/gpu/drm/nouveau/nvif/chan.c
118
struct nvif_push *push = &chan->push;
drivers/gpu/drm/nouveau/nvif/chan.c
122
nr += chan->func->gpfifo.post_size;
drivers/gpu/drm/nouveau/nvif/chan.c
125
u32 get = chan->func->push.read_get(chan);
drivers/gpu/drm/nouveau/nvif/chan.c
135
get = chan->func->push.read_get(chan);
drivers/gpu/drm/nouveau/nvif/chan.c
14
if (chan->func->gpfifo.post) {
drivers/gpu/drm/nouveau/nvif/chan.c
15
if (push->end - push->cur < chan->func->gpfifo.post_size)
drivers/gpu/drm/nouveau/nvif/chan.c
157
push->end = push->bgn + free - chan->func->gpfifo.post_size;
drivers/gpu/drm/nouveau/nvif/chan.c
16
push->end = push->cur + chan->func->gpfifo.post_size;
drivers/gpu/drm/nouveau/nvif/chan.c
18
WARN_ON(nvif_chan_gpfifo_post(chan));
drivers/gpu/drm/nouveau/nvif/chan.c
23
chan->func->gpfifo.push(chan, true, chan->push.addr + (put << 2), cnt << 2, false);
drivers/gpu/drm/nouveau/nvif/chan.c
24
chan->func->gpfifo.kick(chan);
drivers/gpu/drm/nouveau/nvif/chan.c
30
struct nvif_chan *chan = container_of(push, typeof(*chan), push);
drivers/gpu/drm/nouveau/nvif/chan.c
32
return nvif_chan_gpfifo_wait(chan, 1, push_nr);
drivers/gpu/drm/nouveau/nvif/chan.c
36
nvif_chan_gpfifo_post(struct nvif_chan *chan)
drivers/gpu/drm/nouveau/nvif/chan.c
38
const u32 *map = chan->push.mem.object.map.ptr;
drivers/gpu/drm/nouveau/nvif/chan.c
39
const u32 pbptr = (chan->push.cur - map) + chan->func->gpfifo.post_size;
drivers/gpu/drm/nouveau/nvif/chan.c
40
const u32 gpptr = (chan->gpfifo.cur + 1) & chan->gpfifo.max;
drivers/gpu/drm/nouveau/nvif/chan.c
42
if (!chan->func->gpfifo.post)
drivers/gpu/drm/nouveau/nvif/chan.c
45
return chan->func->gpfifo.post(chan, gpptr, pbptr);
drivers/gpu/drm/nouveau/nvif/chan.c
49
nvif_chan_gpfifo_push(struct nvif_chan *chan, u64 addr, u32 size, bool no_prefetch)
drivers/gpu/drm/nouveau/nvif/chan.c
51
chan->func->gpfifo.push(chan, false, addr, size, no_prefetch);
drivers/gpu/drm/nouveau/nvif/chan.c
55
nvif_chan_gpfifo_wait(struct nvif_chan *chan, u32 gpfifo_nr, u32 push_nr)
drivers/gpu/drm/nouveau/nvif/chan.c
57
struct nvif_push *push = &chan->push;
drivers/gpu/drm/nouveau/nvif/chan.c
64
if (chan->func->gpfifo.post)
drivers/gpu/drm/nouveau/nvif/chan.c
65
push_nr += chan->func->gpfifo.post_size;
drivers/gpu/drm/nouveau/nvif/chan.c
74
ret = nvif_chan_dma_wait(chan, push_nr);
drivers/gpu/drm/nouveau/nvif/chan.c
80
while (chan->gpfifo.free < gpfifo_nr) {
drivers/gpu/drm/nouveau/nvif/chan.c
81
chan->gpfifo.free = chan->func->gpfifo.read_get(chan) - chan->gpfifo.cur - 1;
drivers/gpu/drm/nouveau/nvif/chan.c
82
if (chan->gpfifo.free < 0)
drivers/gpu/drm/nouveau/nvif/chan.c
83
chan->gpfifo.free += chan->gpfifo.max + 1;
drivers/gpu/drm/nouveau/nvif/chan.c
85
if (chan->gpfifo.free < gpfifo_nr) {
drivers/gpu/drm/nouveau/nvif/chan.c
97
void *push, u64 push_addr, u32 push_size, struct nvif_chan *chan)
drivers/gpu/drm/nouveau/nvif/chan.c
99
chan->func = func;
drivers/gpu/drm/nouveau/nvif/chan506f.c
11
nvif_wr32(&chan->userd, 0x8c, chan->gpfifo.cur);
drivers/gpu/drm/nouveau/nvif/chan506f.c
15
nvif_chan506f_gpfifo_push(struct nvif_chan *chan, bool main, u64 addr, u32 size, bool no_prefetch)
drivers/gpu/drm/nouveau/nvif/chan506f.c
17
u32 gpptr = chan->gpfifo.cur << 3;
drivers/gpu/drm/nouveau/nvif/chan506f.c
19
if (WARN_ON(!chan->gpfifo.free))
drivers/gpu/drm/nouveau/nvif/chan506f.c
22
nvif_wr32(&chan->gpfifo, gpptr + 0, lower_32_bits(addr));
drivers/gpu/drm/nouveau/nvif/chan506f.c
23
nvif_wr32(&chan->gpfifo, gpptr + 4, upper_32_bits(addr) |
drivers/gpu/drm/nouveau/nvif/chan506f.c
28
chan->gpfifo.cur = (chan->gpfifo.cur + 1) & chan->gpfifo.max;
drivers/gpu/drm/nouveau/nvif/chan506f.c
29
chan->gpfifo.free--;
drivers/gpu/drm/nouveau/nvif/chan506f.c
30
if (!chan->gpfifo.free)
drivers/gpu/drm/nouveau/nvif/chan506f.c
31
chan->push.end = chan->push.cur;
drivers/gpu/drm/nouveau/nvif/chan506f.c
35
nvif_chan506f_gpfifo_read_get(struct nvif_chan *chan)
drivers/gpu/drm/nouveau/nvif/chan506f.c
37
return nvif_rd32(&chan->userd, 0x88);
drivers/gpu/drm/nouveau/nvif/chan506f.c
41
nvif_chan506f_read_get(struct nvif_chan *chan)
drivers/gpu/drm/nouveau/nvif/chan506f.c
43
u32 tlgetlo = nvif_rd32(&chan->userd, 0x58);
drivers/gpu/drm/nouveau/nvif/chan506f.c
44
u32 tlgethi = nvif_rd32(&chan->userd, 0x5c);
drivers/gpu/drm/nouveau/nvif/chan506f.c
45
struct nvif_push *push = &chan->push;
drivers/gpu/drm/nouveau/nvif/chan506f.c
66
nvif_chan506f_ctor(struct nvif_chan *chan, void *userd, void *gpfifo, u32 gpfifo_size,
drivers/gpu/drm/nouveau/nvif/chan506f.c
70
push, push_addr, push_size, chan);
drivers/gpu/drm/nouveau/nvif/chan506f.c
8
nvif_chan506f_gpfifo_kick(struct nvif_chan *chan)
drivers/gpu/drm/nouveau/nvif/chan906f.c
22
nvif_chan906f_sem_release(struct nvif_chan *chan, u64 addr, u32 data)
drivers/gpu/drm/nouveau/nvif/chan906f.c
24
struct nvif_push *push = &chan->push;
drivers/gpu/drm/nouveau/nvif/chan906f.c
47
nvif_chan906f_gpfifo_post(struct nvif_chan *chan, u32 gpptr, u32 pbptr)
drivers/gpu/drm/nouveau/nvif/chan906f.c
49
return chan->func->sem.release(chan, chan->sema.addr,
drivers/gpu/drm/nouveau/nvif/chan906f.c
54
nvif_chan906f_gpfifo_read_get(struct nvif_chan *chan)
drivers/gpu/drm/nouveau/nvif/chan906f.c
56
return nvif_rd32(&chan->sema, 0) >> NVIF_CHAN906F_GPPTR_SHIFT;
drivers/gpu/drm/nouveau/nvif/chan906f.c
60
nvif_chan906f_read_get(struct nvif_chan *chan)
drivers/gpu/drm/nouveau/nvif/chan906f.c
62
return nvif_rd32(&chan->sema, 0) & NVIF_CHAN906F_PBPTR_MASK;
drivers/gpu/drm/nouveau/nvif/chan906f.c
79
struct nvif_chan *chan)
drivers/gpu/drm/nouveau/nvif/chan906f.c
81
nvif_chan_gpfifo_ctor(func, userd, gpfifo, gpfifo_size, push, push_addr, push_size, chan);
drivers/gpu/drm/nouveau/nvif/chan906f.c
82
chan->sema.map.ptr = sema;
drivers/gpu/drm/nouveau/nvif/chan906f.c
83
chan->sema.addr = sema_addr;
drivers/gpu/drm/nouveau/nvif/chan906f.c
88
nvif_chan906f_ctor(struct nvif_chan *chan, void *userd, void *gpfifo, u32 gpfifo_size,
drivers/gpu/drm/nouveau/nvif/chan906f.c
92
push, push_addr, push_size, sema, sema_addr, chan);
drivers/gpu/drm/nouveau/nvif/chanc36f.c
12
nvif_chanc36f_gpfifo_kick(struct nvif_chan *chan)
drivers/gpu/drm/nouveau/nvif/chanc36f.c
14
struct nvif_user *usermode = chan->usermode;
drivers/gpu/drm/nouveau/nvif/chanc36f.c
16
nvif_wr32(&chan->userd, 0x8c, chan->gpfifo.cur);
drivers/gpu/drm/nouveau/nvif/chanc36f.c
19
nvif_rd32(&chan->userd, 0); /* ensure BAR1 writes are flushed to vidmem */
drivers/gpu/drm/nouveau/nvif/chanc36f.c
21
usermode->func->doorbell(usermode, chan->doorbell_token);
drivers/gpu/drm/nouveau/nvif/chanc36f.c
27
nvif_chanc36f_sem_release(struct nvif_chan *chan, u64 addr, u32 data)
drivers/gpu/drm/nouveau/nvif/chanc36f.c
29
struct nvif_push *push = &chan->push;
drivers/gpu/drm/nouveau/nvif/chanc36f.c
63
nvif_chanc36f_ctor(struct nvif_chan *chan, void *userd, void *gpfifo, u32 gpfifo_size,
drivers/gpu/drm/nouveau/nvif/chanc36f.c
70
push, push_addr, push_size, sema, sema_addr, chan);
drivers/gpu/drm/nouveau/nvif/chanc36f.c
74
chan->usermode = usermode;
drivers/gpu/drm/nouveau/nvif/chanc36f.c
75
chan->doorbell_token = doorbell_token;
drivers/gpu/drm/nouveau/nvkm/engine/ce/gt215.c
43
gt215_ce_intr(struct nvkm_falcon *ce, struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/ce/gt215.c
58
en ? en->name : "", chan ? chan->id : -1,
drivers/gpu/drm/nouveau/nvkm/engine/ce/gt215.c
59
chan ? chan->inst->addr : 0,
drivers/gpu/drm/nouveau/nvkm/engine/ce/gt215.c
60
chan ? chan->name : "unknown",
drivers/gpu/drm/nouveau/nvkm/engine/cipher/g84.c
101
nvkm_chan_put(&chan, flags);
drivers/gpu/drm/nouveau/nvkm/engine/cipher/g84.c
84
struct nvkm_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/cipher/g84.c
92
chan = nvkm_chan_get_inst(cipher, (u64)inst << 12, &flags);
drivers/gpu/drm/nouveau/nvkm/engine/cipher/g84.c
97
chan ? chan->id : -1, (u64)inst << 12,
drivers/gpu/drm/nouveau/nvkm/engine/cipher/g84.c
98
chan ? chan->name : "unknown",
drivers/gpu/drm/nouveau/nvkm/engine/disp/base.c
260
return nvkm_event_init(func->uevent, &disp->engine.subdev, 1, ARRAY_SIZE(disp->chan),
drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c
109
struct nvkm_disp_chan *chan = nvkm_disp_chan(object);
drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c
110
struct nvkm_device *device = chan->disp->engine.subdev.device;
drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c
113
if (chan->func->bind)
drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c
133
struct nvkm_disp_chan *chan = nvkm_disp_chan(object);
drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c
135
chan->func->fini(chan);
drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c
136
chan->func->intr(chan, false);
drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c
143
struct nvkm_disp_chan *chan = nvkm_disp_chan(object);
drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c
145
chan->func->intr(chan, true);
drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c
146
return chan->func->init(chan);
drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c
152
struct nvkm_disp_chan *chan = nvkm_disp_chan(object);
drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c
153
struct nvkm_disp *disp = chan->disp;
drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c
156
if (disp->chan[chan->chid.user] == chan)
drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c
157
disp->chan[chan->chid.user] = NULL;
drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c
160
nvkm_memory_unref(&chan->memory);
drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c
161
return chan;
drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c
179
struct nvkm_disp_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c
185
user = disp->func->user[i].chan;
drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c
198
if (!(chan = kzalloc_obj(*chan)))
drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c
200
*pobject = &chan->object;
drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c
202
nvkm_object_ctor(&nvkm_disp_chan, oclass, &chan->object);
drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c
203
chan->func = user->func;
drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c
204
chan->mthd = user->mthd;
drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c
205
chan->disp = disp;
drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c
206
chan->chid.ctrl = user->ctrl + args->v0.id;
drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c
207
chan->chid.user = user->user + args->v0.id;
drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c
208
chan->head = args->v0.id;
drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c
210
if (chan->func->push) {
drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c
211
ret = chan->func->push(chan, args->v0.pushbuf);
drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c
217
if (disp->chan[chan->chid.user]) {
drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c
221
disp->chan[chan->chid.user] = chan;
drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c
32
struct nvkm_disp_chan *chan = nvkm_disp_chan(object);
drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c
33
struct nvkm_disp *disp = chan->disp;
drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c
50
struct nvkm_disp_chan *chan = nvkm_disp_chan(object);
drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c
51
struct nvkm_device *device = chan->disp->engine.subdev.device;
drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c
55
*addr = base + chan->func->user(chan, size);
drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c
82
struct nvkm_disp_chan *chan = nvkm_disp_chan(oclass->parent);
drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c
83
struct nvkm_disp *disp = chan->disp;
drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.c
99
object->hash = chan->func->bind(chan, object->oproxy.object, oclass->handle);
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
1028
nv50_disp_chan_mthd(disp->chan[0], NV_DBG_DEBUG);
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
1086
if (chid < ARRAY_SIZE(disp->chan)) {
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
1089
nv50_disp_chan_mthd(disp->chan[chid], NV_DBG_ERROR);
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
504
gf119_disp_chan_intr(struct nvkm_disp_chan *chan, bool en)
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
506
struct nvkm_device *device = chan->disp->engine.subdev.device;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
507
const u32 mask = 0x00000001 << chan->chid.user;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
517
gf119_disp_pioc_fini(struct nvkm_disp_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
519
struct nvkm_disp *disp = chan->disp;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
522
int ctrl = chan->chid.ctrl;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
523
int user = chan->chid.user;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
536
gf119_disp_pioc_init(struct nvkm_disp_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
538
struct nvkm_disp *disp = chan->disp;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
541
int ctrl = chan->chid.ctrl;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
542
int user = chan->chid.user;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
568
gf119_disp_dmac_bind(struct nvkm_disp_chan *chan, struct nvkm_object *object, u32 handle)
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
570
return nvkm_ramht_insert(chan->disp->ramht, object, chan->chid.user, -9, handle,
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
571
chan->chid.user << 27 | 0x00000001);
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
575
gf119_disp_dmac_fini(struct nvkm_disp_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
577
struct nvkm_subdev *subdev = &chan->disp->engine.subdev;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
579
int ctrl = chan->chid.ctrl;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
580
int user = chan->chid.user;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
593
chan->suspend_put = nvkm_rd32(device, 0x640000 + (ctrl * 0x1000));
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
597
gf119_disp_dmac_init(struct nvkm_disp_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
599
struct nvkm_subdev *subdev = &chan->disp->engine.subdev;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
601
int ctrl = chan->chid.ctrl;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
602
int user = chan->chid.user;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
605
nvkm_wr32(device, 0x610494 + (ctrl * 0x0010), chan->push);
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
609
nvkm_wr32(device, 0x640000 + (ctrl * 0x1000), chan->suspend_put);
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
946
gf119_disp_core_fini(struct nvkm_disp_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
948
struct nvkm_subdev *subdev = &chan->disp->engine.subdev;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
962
chan->suspend_put = nvkm_rd32(device, 0x640000);
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
966
gf119_disp_core_init(struct nvkm_disp_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
968
struct nvkm_subdev *subdev = &chan->disp->engine.subdev;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
972
nvkm_wr32(device, 0x610494, chan->push);
drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c
976
nvkm_wr32(device, 0x640000, chan->suspend_put);
drivers/gpu/drm/nouveau/nvkm/engine/disp/gp102.c
103
gp102_disp_core_init(struct nvkm_disp_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/disp/gp102.c
105
struct nvkm_subdev *subdev = &chan->disp->engine.subdev;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gp102.c
109
nvkm_wr32(device, 0x611494, chan->push);
drivers/gpu/drm/nouveau/nvkm/engine/disp/gp102.c
113
nvkm_wr32(device, 0x640000, chan->suspend_put);
drivers/gpu/drm/nouveau/nvkm/engine/disp/gp102.c
159
if (chid < ARRAY_SIZE(disp->chan)) {
drivers/gpu/drm/nouveau/nvkm/engine/disp/gp102.c
162
nv50_disp_chan_mthd(disp->chan[chid], NV_DBG_ERROR);
drivers/gpu/drm/nouveau/nvkm/engine/disp/gp102.c
34
gp102_disp_dmac_init(struct nvkm_disp_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/disp/gp102.c
36
struct nvkm_subdev *subdev = &chan->disp->engine.subdev;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gp102.c
38
int ctrl = chan->chid.ctrl;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gp102.c
39
int user = chan->chid.user;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gp102.c
42
nvkm_wr32(device, 0x611494 + (ctrl * 0x0010), chan->push);
drivers/gpu/drm/nouveau/nvkm/engine/disp/gp102.c
46
nvkm_wr32(device, 0x640000 + (ctrl * 0x1000), chan->suspend_put);
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
333
gv100_disp_chan_user(struct nvkm_disp_chan *chan, u64 *psize)
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
336
return 0x690000 + ((chan->chid.user - 1) * 0x1000);
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
340
gv100_disp_dmac_idle(struct nvkm_disp_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
342
struct nvkm_device *device = chan->disp->engine.subdev.device;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
343
const u32 soff = (chan->chid.ctrl - 1) * 0x04;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
353
gv100_disp_dmac_bind(struct nvkm_disp_chan *chan,
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
356
return nvkm_ramht_insert(chan->disp->ramht, object, chan->chid.user, -9, handle,
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
357
chan->chid.user << 25 | 0x00000040);
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
361
gv100_disp_dmac_fini(struct nvkm_disp_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
363
struct nvkm_device *device = chan->disp->engine.subdev.device;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
364
const u32 uoff = (chan->chid.ctrl - 1) * 0x1000;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
365
const u32 coff = chan->chid.ctrl * 0x04;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
367
gv100_disp_dmac_idle(chan);
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
369
chan->suspend_put = nvkm_rd32(device, 0x690000 + uoff);
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
373
gv100_disp_dmac_init(struct nvkm_disp_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
375
struct nvkm_subdev *subdev = &chan->disp->engine.subdev;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
377
const u32 uoff = (chan->chid.ctrl - 1) * 0x1000;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
378
const u32 poff = chan->chid.ctrl * 0x10;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
379
const u32 coff = chan->chid.ctrl * 0x04;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
381
nvkm_wr32(device, 0x610b24 + poff, lower_32_bits(chan->push));
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
382
nvkm_wr32(device, 0x610b20 + poff, upper_32_bits(chan->push));
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
387
nvkm_wr32(device, 0x690000 + uoff, chan->suspend_put);
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
389
return gv100_disp_dmac_idle(chan);
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
393
gv100_disp_wimm_intr(struct nvkm_disp_chan *chan, bool en)
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
395
struct nvkm_device *device = chan->disp->engine.subdev.device;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
396
const u32 mask = 0x00000001 << chan->head;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
519
gv100_disp_wndw_intr(struct nvkm_disp_chan *chan, bool en)
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
521
struct nvkm_device *device = chan->disp->engine.subdev.device;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
522
const u32 mask = 0x00000001 << chan->head;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
555
gv100_disp_curs_idle(struct nvkm_disp_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
557
struct nvkm_device *device = chan->disp->engine.subdev.device;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
558
const u32 soff = (chan->chid.ctrl - 1) * 0x04;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
568
gv100_disp_curs_intr(struct nvkm_disp_chan *chan, bool en)
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
570
struct nvkm_device *device = chan->disp->engine.subdev.device;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
571
const u32 mask = 0x00010000 << chan->head;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
577
gv100_disp_curs_fini(struct nvkm_disp_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
579
struct nvkm_device *device = chan->disp->engine.subdev.device;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
580
const u32 hoff = chan->chid.ctrl * 4;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
582
gv100_disp_curs_idle(chan);
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
587
gv100_disp_curs_init(struct nvkm_disp_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
589
struct nvkm_subdev *subdev = &chan->disp->engine.subdev;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
591
nvkm_wr32(device, 0x6104e0 + chan->chid.ctrl * 4, 0x00000001);
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
592
return gv100_disp_curs_idle(chan);
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
722
gv100_disp_core_idle(struct nvkm_disp_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
724
struct nvkm_device *device = chan->disp->engine.subdev.device;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
734
gv100_disp_core_user(struct nvkm_disp_chan *chan, u64 *psize)
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
741
gv100_disp_core_intr(struct nvkm_disp_chan *chan, bool en)
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
743
struct nvkm_device *device = chan->disp->engine.subdev.device;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
750
gv100_disp_core_fini(struct nvkm_disp_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
752
struct nvkm_device *device = chan->disp->engine.subdev.device;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
754
gv100_disp_core_idle(chan);
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
756
chan->suspend_put = nvkm_rd32(device, 0x680000);
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
760
gv100_disp_core_init(struct nvkm_disp_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
762
struct nvkm_subdev *subdev = &chan->disp->engine.subdev;
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
765
nvkm_wr32(device, 0x610b24, lower_32_bits(chan->push));
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
766
nvkm_wr32(device, 0x610b20, upper_32_bits(chan->push));
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
771
nvkm_wr32(device, 0x680000, chan->suspend_put);
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
773
return gv100_disp_core_idle(chan);
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
853
nv50_disp_chan_mthd(disp->chan[0], NV_DBG_DEBUG);
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
922
if (chid < ARRAY_SIZE(disp->chan) && disp->chan[chid]) {
drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.c
925
nv50_disp_chan_mthd(disp->chan[chid], NV_DBG_ERROR);
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
1379
nv50_disp_chan_mthd(disp->chan[0], NV_DBG_DEBUG);
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
1456
if (chid < ARRAY_SIZE(disp->chan)) {
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
1459
nv50_disp_chan_mthd(disp->chan[chid], NV_DBG_ERROR);
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
480
nv50_disp_chan_mthd(struct nvkm_disp_chan *chan, int debug)
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
482
struct nvkm_disp *disp = chan->disp;
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
484
const struct nvkm_disp_chan_mthd *mthd = chan->mthd;
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
494
u32 base = chan->head * mthd->addr;
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
502
mthd->name, chan->chid.user);
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
550
nv50_disp_chan_user(struct nvkm_disp_chan *chan, u64 *psize)
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
553
return 0x640000 + (chan->chid.user * 0x1000);
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
557
nv50_disp_chan_intr(struct nvkm_disp_chan *chan, bool en)
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
559
struct nvkm_device *device = chan->disp->engine.subdev.device;
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
560
const u32 mask = 0x00010001 << chan->chid.user;
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
561
const u32 data = en ? 0x00010000 << chan->chid.user : 0x00000000;
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
566
nv50_disp_pioc_fini(struct nvkm_disp_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
568
struct nvkm_disp *disp = chan->disp;
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
571
int ctrl = chan->chid.ctrl;
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
572
int user = chan->chid.user;
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
585
nv50_disp_pioc_init(struct nvkm_disp_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
587
struct nvkm_disp *disp = chan->disp;
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
590
int ctrl = chan->chid.ctrl;
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
591
int user = chan->chid.user;
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
626
nv50_disp_dmac_bind(struct nvkm_disp_chan *chan, struct nvkm_object *object, u32 handle)
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
628
return nvkm_ramht_insert(chan->disp->ramht, object, chan->chid.user, -10, handle,
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
629
chan->chid.user << 28 | chan->chid.user);
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
633
nv50_disp_dmac_fini(struct nvkm_disp_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
635
struct nvkm_subdev *subdev = &chan->disp->engine.subdev;
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
637
int ctrl = chan->chid.ctrl;
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
638
int user = chan->chid.user;
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
651
chan->suspend_put = nvkm_rd32(device, 0x640000 + (ctrl * 0x1000));
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
655
nv50_disp_dmac_init(struct nvkm_disp_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
657
struct nvkm_subdev *subdev = &chan->disp->engine.subdev;
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
659
int ctrl = chan->chid.ctrl;
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
660
int user = chan->chid.user;
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
663
nvkm_wr32(device, 0x610204 + (ctrl * 0x0010), chan->push);
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
667
nvkm_wr32(device, 0x640000 + (ctrl * 0x1000), chan->suspend_put);
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
684
nv50_disp_dmac_push(struct nvkm_disp_chan *chan, u64 object)
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
686
chan->memory = nvkm_umem_search(chan->object.client, object);
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
687
if (IS_ERR(chan->memory))
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
688
return PTR_ERR(chan->memory);
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
690
if (nvkm_memory_size(chan->memory) < 0x1000)
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
693
switch (nvkm_memory_target(chan->memory)) {
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
694
case NVKM_MEM_TARGET_VRAM: chan->push = 0x00000001; break;
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
695
case NVKM_MEM_TARGET_NCOH: chan->push = 0x00000002; break;
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
696
case NVKM_MEM_TARGET_HOST: chan->push = 0x00000003; break;
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
701
chan->push |= nvkm_memory_addr(chan->memory) >> 8;
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
943
nv50_disp_core_fini(struct nvkm_disp_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
945
struct nvkm_subdev *subdev = &chan->disp->engine.subdev;
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
959
chan->suspend_put = nvkm_rd32(device, 0x640000);
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
963
nv50_disp_core_init(struct nvkm_disp_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
965
struct nvkm_subdev *subdev = &chan->disp->engine.subdev;
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
975
nvkm_wr32(device, 0x610204, chan->push);
drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
979
nvkm_wr32(device, 0x640000, chan->suspend_put);
drivers/gpu/drm/nouveau/nvkm/engine/disp/priv.h
45
const struct nvkm_disp_chan_user *chan;
drivers/gpu/drm/nouveau/nvkm/engine/falcon.c
68
struct nvkm_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/falcon.c
71
chan = nvkm_chan_get_inst(engine, (u64)inst << 12, &flags);
drivers/gpu/drm/nouveau/nvkm/engine/falcon.c
75
falcon->func->intr(falcon, chan);
drivers/gpu/drm/nouveau/nvkm/engine/falcon.c
92
nvkm_chan_put(&chan, flags);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/base.c
112
if (chan->user.oclass) {
drivers/gpu/drm/nouveau/nvkm/engine/fifo/base.c
114
oclass->base = chan->user;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/base.c
115
oclass->engn = &fifo->func->chan.user;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/base.c
271
RUNL_DEBUG(runl, "chan:%06x", runl->chan);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/base.c
306
if (fifo->func->chan.func->userd->bar == NVKM_BAR1_FB) {
drivers/gpu/drm/nouveau/nvkm/engine/fifo/base.c
310
fifo->func->chan.func->userd->size, 0, true,
drivers/gpu/drm/nouveau/nvkm/engine/fifo/base.c
81
if (oclass->engn == &fifo->func->chan.user)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/base.c
98
const struct nvkm_fifo_func_chan *chan = &fifo->func->chan;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/cgrp.c
119
nvkm_cgrp_vctx_get(struct nvkm_cgrp *cgrp, struct nvkm_engn *engn, struct nvkm_chan *chan,
drivers/gpu/drm/nouveau/nvkm/engine/fifo/cgrp.c
128
vctx->ectx->engn == engn && vctx->vmm == chan->vmm);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/cgrp.c
136
ret = nvkm_cgrp_ectx_get(cgrp, engn, &ectx, chan, client);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/cgrp.c
150
vctx->vmm = nvkm_vmm_ref(chan->vmm);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/cgrp.c
160
ret = engn->func->ctor2(engn, vctx, chan);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/cgrp.c
52
struct nvkm_chan *chan, struct nvkm_client *client)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/cgrp.c
82
ret = engine->func->fifo.cclass(chan, &cclass, &ectx->object);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/cgrp.h
67
#define nvkm_cgrp_foreach_chan(chan,cgrp) list_for_each_entry((chan), &(cgrp)->chans, head)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/cgrp.h
68
#define nvkm_cgrp_foreach_chan_safe(chan,ctmp,cgrp) \
drivers/gpu/drm/nouveau/nvkm/engine/fifo/cgrp.h
69
list_for_each_entry_safe((chan), (ctmp), &(cgrp)->chans, head)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
102
cctx = nvkm_list_find(cctx, &chan->cctxs, head,
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
103
cctx->vctx->ectx->engn == engn && cctx->vctx->vmm == chan->vmm);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
112
ret = nvkm_cgrp_vctx_get(cgrp, engn, chan, &vctx, client);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
114
CHAN_ERROR(chan, "vctx %d[%s]: %d", engn->id, engn->engine->subdev.name, ret);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
119
CHAN_TRACE(chan, "ctor cctx %d[%s]", engn->id, engn->engine->subdev.name);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
129
list_add_tail(&cctx->head, &chan->cctxs);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
136
nvkm_chan_preempt_locked(struct nvkm_chan *chan, bool wait)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
138
struct nvkm_runl *runl = chan->cgrp->runl;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
140
CHAN_TRACE(chan, "preempt");
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
141
chan->func->preempt(chan);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
149
nvkm_chan_preempt(struct nvkm_chan *chan, bool wait)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
153
if (!chan->func->preempt)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
156
mutex_lock(&chan->cgrp->runl->mutex);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
157
ret = nvkm_chan_preempt_locked(chan, wait);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
158
mutex_unlock(&chan->cgrp->runl->mutex);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
163
nvkm_chan_remove_locked(struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
165
struct nvkm_cgrp *cgrp = chan->cgrp;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
168
if (list_empty(&chan->head))
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
171
CHAN_TRACE(chan, "remove");
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
177
list_del_init(&chan->head);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
182
nvkm_chan_remove(struct nvkm_chan *chan, bool preempt)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
184
struct nvkm_runl *runl = chan->cgrp->runl;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
187
if (preempt && chan->func->preempt)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
188
nvkm_chan_preempt_locked(chan, true);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
189
nvkm_chan_remove_locked(chan);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
195
nvkm_chan_insert(struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
197
struct nvkm_cgrp *cgrp = chan->cgrp;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
201
if (WARN_ON(!list_empty(&chan->head))) {
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
206
CHAN_TRACE(chan, "insert");
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
207
list_add_tail(&chan->head, &cgrp->chans);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
219
nvkm_chan_block_locked(struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
221
CHAN_TRACE(chan, "block %d", atomic_read(&chan->blocked));
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
222
if (atomic_inc_return(&chan->blocked) == 1)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
223
chan->func->stop(chan);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
227
nvkm_chan_error(struct nvkm_chan *chan, bool preempt)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
231
spin_lock_irqsave(&chan->lock, flags);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
232
if (atomic_inc_return(&chan->errored) == 1) {
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
233
CHAN_ERROR(chan, "errored - disabling channel");
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
234
nvkm_chan_block_locked(chan);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
236
chan->func->preempt(chan);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
237
nvkm_event_ntfy(&chan->cgrp->runl->chid->event, chan->id, NVKM_CHAN_EVENT_ERRORED);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
239
spin_unlock_irqrestore(&chan->lock, flags);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
243
nvkm_chan_block(struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
245
spin_lock_irq(&chan->lock);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
246
nvkm_chan_block_locked(chan);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
247
spin_unlock_irq(&chan->lock);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
251
nvkm_chan_allow(struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
253
spin_lock_irq(&chan->lock);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
254
CHAN_TRACE(chan, "allow %d", atomic_read(&chan->blocked));
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
255
if (atomic_dec_and_test(&chan->blocked))
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
256
chan->func->start(chan);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
257
spin_unlock_irq(&chan->lock);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
263
struct nvkm_chan *chan = *pchan;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
265
if (!chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
268
if (chan->func->ramfc->clear)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
269
chan->func->ramfc->clear(chan);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
271
nvkm_ramht_del(&chan->ramht);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
272
nvkm_gpuobj_del(&chan->pgd);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
273
nvkm_gpuobj_del(&chan->eng);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
274
nvkm_gpuobj_del(&chan->cache);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
275
nvkm_gpuobj_del(&chan->ramfc);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
277
if (chan->cgrp) {
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
278
nvkm_chid_put(chan->cgrp->runl->chid, chan->id, &chan->cgrp->lock);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
279
nvkm_cgrp_unref(&chan->cgrp);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
282
nvkm_memory_unref(&chan->userd.mem);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
284
if (chan->vmm) {
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
285
nvkm_vmm_part(chan->vmm, chan->inst->memory);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
286
nvkm_vmm_unref(&chan->vmm);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
289
nvkm_gpuobj_del(&chan->push);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
290
nvkm_gpuobj_del(&chan->inst);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
291
kfree(chan);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
297
struct nvkm_chan *chan = *pchan;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
299
if (!chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
303
spin_unlock_irqrestore(&chan->cgrp->lock, irqflags);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
312
struct nvkm_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
317
chan = nvkm_runl_chan_get_inst(runl, inst, pirqflags);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
318
if (chan || engn->engine == engine)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
319
return chan;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
352
struct nvkm_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
370
if (!(chan = *pchan = kzalloc_obj(*chan)))
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
373
chan->func = func;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
374
strscpy(chan->name, name, sizeof(chan->name));
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
375
chan->runq = runq;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
376
chan->id = -1;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
377
spin_lock_init(&chan->lock);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
378
atomic_set(&chan->blocked, 1);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
379
atomic_set(&chan->errored, 0);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
380
INIT_LIST_HEAD(&chan->cctxs);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
381
INIT_LIST_HEAD(&chan->head);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
392
ret = nvkm_cgrp_new(runl, chan->name, vmm, fifo->func->cgrp.force, &chan->cgrp);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
398
cgrp = chan->cgrp;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
405
chan->cgrp = nvkm_cgrp_ref(cgrp);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
41
nvkm_chan_cctx_bind(struct nvkm_chan *chan, struct nvkm_engn *engn, struct nvkm_cctx *cctx)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
410
&chan->inst);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
421
ret = nvkm_vmm_join(vmm, chan->inst->memory);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
427
chan->vmm = nvkm_vmm_ref(vmm);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
43
struct nvkm_cgrp *cgrp = chan->cgrp;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
432
ret = nvkm_object_bind(&dmaobj->object, chan->inst, -16, &chan->push);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
440
chan->id = nvkm_chid_get(runl->chid, chan);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
441
if (chan->id >= 0) {
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
443
if (ouserd + chan->func->userd->size >=
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
449
ret = nvkm_memory_kmap(userd, &chan->userd.mem);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
455
chan->userd.base = ouserd;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
457
chan->userd.mem = nvkm_memory_ref(fifo->userd.mem);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
458
chan->userd.base = chan->id * chan->func->userd->size;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
462
if (chan->id < 0) {
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
468
cgrp->id = chan->id;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
471
if (chan->func->userd->clear)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
472
chan->func->userd->clear(chan);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
475
ret = chan->func->ramfc->write(chan, offset, length, devm, priv);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
50
CHAN_TRACE(chan, "%sbind cctx %d[%s]", cctx ? "" : "un", engn->id, engine->subdev.name);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
58
nvkm_chan_block(chan);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
59
nvkm_chan_preempt(chan, true);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
62
engn->func->bind(engn, cctx, chan);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
68
nvkm_chan_allow(chan);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
72
nvkm_chan_cctx_put(struct nvkm_chan *chan, struct nvkm_cctx **pcctx)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
79
if (refcount_dec_and_mutex_lock(&cctx->refs, &chan->cgrp->mutex)) {
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
80
CHAN_TRACE(chan, "dtor cctx %d[%s]", engn->id, engn->engine->subdev.name);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
81
nvkm_cgrp_vctx_put(chan->cgrp, &cctx->vctx);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
84
mutex_unlock(&chan->cgrp->mutex);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
92
nvkm_chan_cctx_get(struct nvkm_chan *chan, struct nvkm_engn *engn, struct nvkm_cctx **pcctx,
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c
95
struct nvkm_cgrp *cgrp = chan->cgrp;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c
106
g84_ectx_bind(struct nvkm_engn *engn, struct nvkm_cctx *cctx, struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c
108
struct nvkm_subdev *subdev = &chan->cgrp->runl->fifo->engine.subdev;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c
131
nvkm_wr32(device, 0x0032fc, chan->inst->addr >> 12);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c
143
nvkm_kmap(chan->eng);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c
144
nvkm_wo32(chan->eng, ptr0 + 0x00, flags);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c
145
nvkm_wo32(chan->eng, ptr0 + 0x04, lower_32_bits(limit));
drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c
146
nvkm_wo32(chan->eng, ptr0 + 0x08, lower_32_bits(start));
drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c
147
nvkm_wo32(chan->eng, ptr0 + 0x0c, upper_32_bits(limit) << 24 |
drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c
149
nvkm_wo32(chan->eng, ptr0 + 0x10, 0x00000000);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c
150
nvkm_wo32(chan->eng, ptr0 + 0x14, 0x00000000);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c
151
nvkm_done(chan->eng);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c
223
.chan = {{ 0, 0, G82_CHANNEL_GPFIFO }, &g84_chan },
drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c
35
g84_chan_bind(struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c
37
struct nvkm_device *device = chan->cgrp->runl->fifo->engine.subdev.device;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c
39
nvkm_wr32(device, 0x002600 + (chan->id * 4), chan->ramfc->addr >> 8);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c
43
g84_chan_ramfc_write(struct nvkm_chan *chan, u64 offset, u64 length, u32 devm, bool priv)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c
45
struct nvkm_device *device = chan->cgrp->runl->fifo->engine.subdev.device;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c
49
ret = nvkm_gpuobj_new(device, 0x0200, 0, true, chan->inst, &chan->eng);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c
53
ret = nvkm_gpuobj_new(device, 0x4000, 0, false, chan->inst, &chan->pgd);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c
57
ret = nvkm_gpuobj_new(device, 0x1000, 0x400, true, chan->inst, &chan->cache);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c
61
ret = nvkm_gpuobj_new(device, 0x100, 0x100, true, chan->inst, &chan->ramfc);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c
65
ret = nvkm_ramht_new(device, 0x8000, 16, chan->inst, &chan->ramht);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c
69
nvkm_kmap(chan->ramfc);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c
70
nvkm_wo32(chan->ramfc, 0x3c, 0x403f6078);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c
71
nvkm_wo32(chan->ramfc, 0x44, 0x01003fff);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c
72
nvkm_wo32(chan->ramfc, 0x48, chan->push->node->offset >> 4);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c
73
nvkm_wo32(chan->ramfc, 0x50, lower_32_bits(offset));
drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c
74
nvkm_wo32(chan->ramfc, 0x54, upper_32_bits(offset) | (limit2 << 16));
drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c
75
nvkm_wo32(chan->ramfc, 0x60, 0x7fffffff);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c
76
nvkm_wo32(chan->ramfc, 0x78, 0x00000000);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c
77
nvkm_wo32(chan->ramfc, 0x7c, 0x30000000 | devm);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c
78
nvkm_wo32(chan->ramfc, 0x80, ((chan->ramht->bits - 9) << 27) |
drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c
80
(chan->ramht->gpuobj->node->offset >> 4));
drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c
81
nvkm_wo32(chan->ramfc, 0x88, chan->cache->addr >> 10);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c
82
nvkm_wo32(chan->ramfc, 0x98, chan->inst->addr >> 12);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c
83
nvkm_done(chan->ramfc);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/g98.c
62
.chan = {{ 0, 0, G82_CHANNEL_GPFIFO }, &g84_chan },
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c
199
struct nvkm_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c
203
chan = nvkm_runl_chan_get_chid(runl, chid, &flags);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c
204
if (chan) {
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c
205
nvkm_chan_error(chan, true);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c
206
nvkm_chan_put(&chan, flags);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c
238
struct nvkm_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c
242
chan = nvkm_runl_chan_get_chid(runl, chid, &flags);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c
243
if (chan) {
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c
244
nvkm_chan_error(chan, true);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c
245
nvkm_chan_put(&chan, flags);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c
37
ga100_chan_doorbell_handle(struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c
39
return (chan->cgrp->runl->doorbell << 16) | chan->id;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c
43
ga100_chan_stop(struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c
45
struct nvkm_runl *runl = chan->cgrp->runl;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c
47
nvkm_wr32(runl->fifo->engine.subdev.device, runl->chan + (chan->id * 4), 0x00000003);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c
503
runl->chan = chaddr;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c
51
ga100_chan_start(struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c
53
struct nvkm_runl *runl = chan->cgrp->runl;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c
57
nvkm_wr32(device, runl->chan + (chan->id * 4), 0x00000002);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c
58
nvkm_wr32(device, runl->addr + 0x0090, (gfid << 16) | chan->id); /* INTERNAL_DOORBELL. */
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c
615
.chan = {{ 0, 0, AMPERE_CHANNEL_GPFIFO_A }, &ga100_chan },
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c
62
ga100_chan_unbind(struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c
64
struct nvkm_runl *runl = chan->cgrp->runl;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c
66
nvkm_wr32(runl->fifo->engine.subdev.device, runl->chan + (chan->id * 4), 0xffffffff);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c
70
ga100_chan_ramfc_write(struct nvkm_chan *chan, u64 offset, u64 length, u32 devm, bool priv)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c
74
nvkm_kmap(chan->inst);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c
75
nvkm_wo32(chan->inst, 0x010, 0x0000face);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c
76
nvkm_wo32(chan->inst, 0x030, 0x7ffff902);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c
77
nvkm_wo32(chan->inst, 0x048, lower_32_bits(offset));
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c
78
nvkm_wo32(chan->inst, 0x04c, upper_32_bits(offset) | (limit2 << 16));
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c
79
nvkm_wo32(chan->inst, 0x084, 0x20400000);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c
80
nvkm_wo32(chan->inst, 0x094, 0x30000000 | devm);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c
81
nvkm_wo32(chan->inst, 0x0e4, priv ? 0x00000020 : 0x00000000);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c
82
nvkm_wo32(chan->inst, 0x0e8, chan->id);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c
83
nvkm_wo32(chan->inst, 0x0f4, 0x00001000 | (priv ? 0x00000100 : 0x00000000));
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c
84
nvkm_wo32(chan->inst, 0x0f8, 0x80000000 | chan->cgrp->runl->nonstall.vector);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c
85
nvkm_mo32(chan->inst, 0x218, 0x00000000, 0x00000000);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c
86
nvkm_done(chan->inst);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga102.c
40
.chan = {{ 0, 0, AMPERE_CHANNEL_GPFIFO_A }, &ga100_chan },
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gb202.c
11
gb202_chan_doorbell_handle(struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gb202.c
13
return BIT(30) | (chan->cgrp->runl->id << 16) | chan->id;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
100
nvkm_wo32(chan->inst, 0x9c, 0x00000100);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
101
nvkm_wo32(chan->inst, 0xa4, 0x1f1f1f1f);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
102
nvkm_wo32(chan->inst, 0xa8, 0x1f1f1f1f);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
103
nvkm_wo32(chan->inst, 0xac, 0x0000001f);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
104
nvkm_wo32(chan->inst, 0xb8, 0xf8000000);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
105
nvkm_wo32(chan->inst, 0xf8, 0x10003080); /* 0x002310 */
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
106
nvkm_wo32(chan->inst, 0xfc, 0x10000010); /* 0x002350 */
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
107
nvkm_done(chan->inst);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
118
gf100_chan_userd_clear(struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
120
nvkm_kmap(chan->userd.mem);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
121
nvkm_wo32(chan->userd.mem, chan->userd.base + 0x040, 0x00000000);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
122
nvkm_wo32(chan->userd.mem, chan->userd.base + 0x044, 0x00000000);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
123
nvkm_wo32(chan->userd.mem, chan->userd.base + 0x048, 0x00000000);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
124
nvkm_wo32(chan->userd.mem, chan->userd.base + 0x04c, 0x00000000);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
125
nvkm_wo32(chan->userd.mem, chan->userd.base + 0x050, 0x00000000);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
126
nvkm_wo32(chan->userd.mem, chan->userd.base + 0x058, 0x00000000);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
127
nvkm_wo32(chan->userd.mem, chan->userd.base + 0x05c, 0x00000000);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
128
nvkm_wo32(chan->userd.mem, chan->userd.base + 0x060, 0x00000000);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
129
nvkm_wo32(chan->userd.mem, chan->userd.base + 0x088, 0x00000000);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
130
nvkm_wo32(chan->userd.mem, chan->userd.base + 0x08c, 0x00000000);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
131
nvkm_done(chan->userd.mem);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
161
gf100_ectx_bind(struct nvkm_engn *engn, struct nvkm_cctx *cctx, struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
183
nvkm_kmap(chan->inst);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
184
nvkm_wo32(chan->inst, ptr0 + 0, lower_32_bits(addr));
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
185
nvkm_wo32(chan->inst, ptr0 + 4, upper_32_bits(addr));
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
186
nvkm_done(chan->inst);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
322
struct nvkm_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
335
chan = nvkm_chan_get_chid(&runq->fifo->engine, chid, &flags);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
338
runq->id, show, msg, chid, chan ? chan->inst->addr : 0,
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
339
chan ? chan->name : "unknown", subc, mthd, data);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
342
if ((stat & 0xc67fe000) && chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
343
nvkm_chan_error(chan, true);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
344
nvkm_chan_put(&chan, flags);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
41
gf100_chan_preempt(struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
419
gf100_runl_insert_chan(struct nvkm_chan *chan, struct nvkm_memory *memory, u64 offset)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
421
nvkm_wo32(memory, offset + 0, chan->id);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
43
nvkm_wr32(chan->cgrp->runl->fifo->engine.subdev.device, 0x002634, chan->id);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
47
gf100_chan_stop(struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
49
struct nvkm_device *device = chan->cgrp->runl->fifo->engine.subdev.device;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
51
nvkm_mask(device, 0x003004 + (chan->id * 8), 0x00000001, 0x00000000);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
542
struct nvkm_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
55
gf100_chan_start(struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
57
struct nvkm_device *device = chan->cgrp->runl->fifo->engine.subdev.device;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
589
chan = nvkm_chan_get_inst(&fifo->engine, info->inst, &flags);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
59
nvkm_wr32(device, 0x003004 + (chan->id * 8), 0x001f0001);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
598
chan ? chan->id : -1, info->inst, chan ? chan->name : "unknown");
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
601
if (chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
602
nvkm_runl_rc_cgrp(chan->cgrp);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
604
nvkm_chan_put(&chan, flags);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
65
gf100_chan_unbind(struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
67
struct nvkm_fifo *fifo = chan->cgrp->runl->fifo;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
73
nvkm_wr32(device, 0x003000 + (chan->id * 8), 0x00000000);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
77
gf100_chan_bind(struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
79
struct nvkm_device *device = chan->cgrp->runl->fifo->engine.subdev.device;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
81
nvkm_wr32(device, 0x003000 + (chan->id * 8), 0xc0000000 | chan->inst->addr >> 12);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
85
gf100_chan_ramfc_write(struct nvkm_chan *chan, u64 offset, u64 length, u32 devm, bool priv)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
87
const u64 userd = nvkm_memory_addr(chan->userd.mem) + chan->userd.base;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
90
nvkm_kmap(chan->inst);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
91
nvkm_wo32(chan->inst, 0x08, lower_32_bits(userd));
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
92
nvkm_wo32(chan->inst, 0x0c, upper_32_bits(userd));
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
93
nvkm_wo32(chan->inst, 0x10, 0x0000face);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
94
nvkm_wo32(chan->inst, 0x30, 0xfffff902);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
95
nvkm_wo32(chan->inst, 0x48, lower_32_bits(offset));
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
96
nvkm_wo32(chan->inst, 0x4c, upper_32_bits(offset) | (limit2 << 16));
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
961
.chan = {{ 0, 0, FERMI_CHANNEL_GPFIFO }, &gf100_chan },
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
97
nvkm_wo32(chan->inst, 0x54, 0x00000002);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
98
nvkm_wo32(chan->inst, 0x84, 0x20400000);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
99
nvkm_wo32(chan->inst, 0x94, 0x30000000 | devm);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
100
nvkm_wo32(chan->inst, 0xb8, 0xf8000000);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
101
nvkm_wo32(chan->inst, 0xf8, 0x10003080); /* 0x002310 */
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
102
nvkm_wo32(chan->inst, 0xfc, 0x10000010); /* 0x002350 */
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
103
nvkm_done(chan->inst);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
134
gk104_ectx_bind(struct nvkm_engn *engn, struct nvkm_cctx *cctx, struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
167
nvkm_kmap(chan->inst);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
168
nvkm_wo32(chan->inst, ptr0 + 0, lower_32_bits(addr));
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
169
nvkm_wo32(chan->inst, ptr0 + 4, upper_32_bits(addr));
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
171
nvkm_wo32(chan->inst, ptr1 + 0, lower_32_bits(addr));
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
172
nvkm_wo32(chan->inst, ptr1 + 4, upper_32_bits(addr));
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
174
nvkm_done(chan->inst);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
200
} prev, next, *chan;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
217
status->chan = NULL;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
222
status->chan = &status->next;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
224
status->chan = &status->prev;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
227
status->chan = &status->next;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
229
status->chan = &status->prev;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
233
status->chan = &status->prev;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
239
status->chan == &status->prev ? "*" : " ",
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
241
status->chan == &status->next ? "*" : " ");
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
250
if (status.chan) {
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
251
*cgid = status.chan->tsg;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
252
return status.chan->id;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
40
gk104_chan_stop(struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
42
struct nvkm_device *device = chan->cgrp->runl->fifo->engine.subdev.device;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
44
nvkm_mask(device, 0x800004 + (chan->id * 8), 0x00000800, 0x00000800);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
452
gk104_runl_insert_chan(struct nvkm_chan *chan, struct nvkm_memory *memory, u64 offset)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
454
nvkm_wo32(memory, offset + 0, chan->id);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
48
gk104_chan_start(struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
50
struct nvkm_device *device = chan->cgrp->runl->fifo->engine.subdev.device;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
52
nvkm_mask(device, 0x800004 + (chan->id * 8), 0x00000400, 0x00000400);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
56
gk104_chan_unbind(struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
58
struct nvkm_device *device = chan->cgrp->runl->fifo->engine.subdev.device;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
60
nvkm_wr32(device, 0x800000 + (chan->id * 8), 0x00000000);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
64
gk104_chan_bind_inst(struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
66
struct nvkm_device *device = chan->cgrp->runl->fifo->engine.subdev.device;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
68
nvkm_wr32(device, 0x800000 + (chan->id * 8), 0x80000000 | chan->inst->addr >> 12);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
72
gk104_chan_bind(struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
74
struct nvkm_runl *runl = chan->cgrp->runl;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
748
if (fifo->func->chan.func->userd->bar == NVKM_BAR1_FB)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
77
nvkm_mask(device, 0x800004 + (chan->id * 8), 0x000f0000, runl->id << 16);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
78
gk104_chan_bind_inst(chan);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
82
gk104_chan_ramfc_write(struct nvkm_chan *chan, u64 offset, u64 length, u32 devm, bool priv)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
825
.chan = {{ 0, 0, KEPLER_CHANNEL_GPFIFO_A }, &gk104_chan },
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
84
const u64 userd = nvkm_memory_addr(chan->userd.mem) + chan->userd.base;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
87
nvkm_kmap(chan->inst);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
88
nvkm_wo32(chan->inst, 0x08, lower_32_bits(userd));
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
89
nvkm_wo32(chan->inst, 0x0c, upper_32_bits(userd));
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
90
nvkm_wo32(chan->inst, 0x10, 0x0000face);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
91
nvkm_wo32(chan->inst, 0x30, 0xfffff902);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
92
nvkm_wo32(chan->inst, 0x48, lower_32_bits(offset));
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
93
nvkm_wo32(chan->inst, 0x4c, upper_32_bits(offset) | (limit2 << 16));
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
94
nvkm_wo32(chan->inst, 0x84, 0x20400000);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
95
nvkm_wo32(chan->inst, 0x94, 0x30000000 | devm);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
96
nvkm_wo32(chan->inst, 0x9c, 0x00000100);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
97
nvkm_wo32(chan->inst, 0xac, 0x0000001f);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
98
nvkm_wo32(chan->inst, 0xe4, priv ? 0x00000020 : 0x00000000);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
99
nvkm_wo32(chan->inst, 0xe8, chan->id);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk110.c
124
.chan = {{ 0, 0, KEPLER_CHANNEL_GPFIFO_B }, &gk110_chan },
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk110.c
36
gk110_chan_preempt(struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk110.c
38
struct nvkm_cgrp *cgrp = chan->cgrp;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk110.c
45
gf100_chan_preempt(chan);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk208.c
69
.chan = {{ 0, 0, KEPLER_CHANNEL_GPFIFO_A }, &gk110_chan },
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk20a.c
44
.chan = {{ 0, 0, KEPLER_CHANNEL_GPFIFO_A }, &gk110_chan },
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gm107.c
148
.chan = {{ 0, 0, KEPLER_CHANNEL_GPFIFO_B }, &gm107_chan },
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gm107.c
46
gm107_runl_insert_chan(struct nvkm_chan *chan, struct nvkm_memory *memory, u64 offset)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gm107.c
48
nvkm_wo32(memory, offset + 0, chan->id);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gm107.c
49
nvkm_wo32(memory, offset + 4, chan->inst->addr >> 12);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gm200.c
58
.chan = {{ 0, 0, MAXWELL_CHANNEL_GPFIFO_A }, &gm107_chan },
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gp100.c
131
.chan = {{ 0, 0, PASCAL_CHANNEL_GPFIFO_A }, &gm107_chan },
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gp100.c
33
gp100_runl_insert_chan(struct nvkm_chan *chan, struct nvkm_memory *memory, u64 offset)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gp100.c
35
nvkm_wo32(memory, offset + 0, chan->id | chan->runq << 14);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gp100.c
36
nvkm_wo32(memory, offset + 4, chan->inst->addr >> 12);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
100
nvkm_kmap(chan->inst);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
101
nvkm_wo32(chan->inst, 0x210, lower_32_bits(addr));
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
102
nvkm_wo32(chan->inst, 0x214, upper_32_bits(addr));
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
103
nvkm_mo32(chan->inst, 0x0ac, 0x00010000, cctx ? 0x00010000 : 0x00000000);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
104
nvkm_done(chan->inst);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
116
gv100_ectx_ce_bind(struct nvkm_engn *engn, struct nvkm_cctx *cctx, struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
120
nvkm_kmap(chan->inst);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
121
nvkm_wo32(chan->inst, 0x220, lower_32_bits(bar2));
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
122
nvkm_wo32(chan->inst, 0x224, upper_32_bits(bar2));
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
123
nvkm_mo32(chan->inst, 0x0ac, 0x00020000, cctx ? 0x00020000 : 0x00000000);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
124
nvkm_done(chan->inst);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
149
struct nvkm_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
154
chan = nvkm_chan_get_chid(&fifo->engine, chid, &flags);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
155
if (WARN_ON_ONCE(!chan))
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
158
nvkm_chan_error(chan, true);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
159
nvkm_chan_put(&chan, flags);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
182
gv100_runl_insert_chan(struct nvkm_chan *chan, struct nvkm_memory *memory, u64 offset)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
184
const u64 user = nvkm_memory_addr(chan->userd.mem) + chan->userd.base;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
185
const u64 inst = chan->inst->addr;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
187
nvkm_wo32(memory, offset + 0x0, lower_32_bits(user) | chan->runq << 1);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
189
nvkm_wo32(memory, offset + 0x8, lower_32_bits(inst) | chan->id);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
35
gv100_chan_doorbell_handle(struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
37
return chan->id;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
41
gv100_chan_ramfc_write(struct nvkm_chan *chan, u64 offset, u64 length, u32 devm, bool priv)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
43
const u64 userd = nvkm_memory_addr(chan->userd.mem) + chan->userd.base;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
46
nvkm_kmap(chan->inst);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
47
nvkm_wo32(chan->inst, 0x008, lower_32_bits(userd));
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
48
nvkm_wo32(chan->inst, 0x00c, upper_32_bits(userd));
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
483
.chan = {{ 0, 0, VOLTA_CHANNEL_GPFIFO_A }, &gv100_chan },
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
49
nvkm_wo32(chan->inst, 0x010, 0x0000face);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
50
nvkm_wo32(chan->inst, 0x030, 0x7ffff902);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
51
nvkm_wo32(chan->inst, 0x048, lower_32_bits(offset));
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
52
nvkm_wo32(chan->inst, 0x04c, upper_32_bits(offset) | (limit2 << 16));
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
53
nvkm_wo32(chan->inst, 0x084, 0x20400000);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
54
nvkm_wo32(chan->inst, 0x094, 0x30000000 | devm);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
55
nvkm_wo32(chan->inst, 0x0e4, priv ? 0x00000020 : 0x00000000);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
56
nvkm_wo32(chan->inst, 0x0e8, chan->id);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
57
nvkm_wo32(chan->inst, 0x0f4, 0x00001000 | (priv ? 0x00000100 : 0x00000000));
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
58
nvkm_wo32(chan->inst, 0x0f8, 0x10003080);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
59
nvkm_mo32(chan->inst, 0x218, 0x00000000, 0x00000000);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
60
nvkm_done(chan->inst);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.c
91
gv100_ectx_bind(struct nvkm_engn *engn, struct nvkm_cctx *cctx, struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
103
nv04_chan_ramfc_clear(struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
105
struct nvkm_memory *ramfc = chan->cgrp->runl->fifo->engine.subdev.device->imem->ramfc;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
106
const struct nvkm_ramfc_layout *c = chan->func->ramfc->layout;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
110
nvkm_wo32(ramfc, chan->ramfc_offset + c->ctxp, 0x00000000);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
116
nv04_chan_ramfc_write(struct nvkm_chan *chan, u64 offset, u64 length, u32 devm, bool priv)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
118
struct nvkm_memory *ramfc = chan->cgrp->runl->fifo->engine.subdev.device->imem->ramfc;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
119
const u32 base = chan->id * 32;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
121
chan->ramfc_offset = base;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
126
nvkm_wo32(ramfc, base + 0x08, chan->push->addr >> 4);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
181
nv04_eobj_ramht_del(struct nvkm_chan *chan, int hash)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
183
struct nvkm_fifo *fifo = chan->cgrp->runl->fifo;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
192
nv04_eobj_ramht_add(struct nvkm_engn *engn, struct nvkm_object *eobj, struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
194
struct nvkm_fifo *fifo = chan->cgrp->runl->fifo;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
196
u32 context = 0x80000000 | chan->id << 24 | engn->id << 16;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
200
hash = nvkm_ramht_insert(imem->ramht, eobj, chan->id, 4, eobj->handle, context);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
307
struct nvkm_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
330
chan = nvkm_chan_get_chid(&fifo->engine, chid, &flags);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
333
chid, chan ? chan->name : "unknown",
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
335
nvkm_chan_put(&chan, flags);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
362
struct nvkm_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
366
chan = nvkm_chan_get_chid(&fifo->engine, chid, &flags);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
367
name = chan ? chan->name : "unknown";
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
398
nvkm_chan_put(&chan, flags);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
41
nv04_chan_stop(struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
43
struct nvkm_fifo *fifo = chan->cgrp->runl->fifo;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
48
u32 data = chan->ramfc_offset;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
535
.chan = {{ 0, 0, NV03_CHANNEL_DMA }, &nv04_chan },
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
57
if (chid == chan->id) {
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
62
c = chan->func->ramfc->layout;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
73
c = chan->func->ramfc->layout;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
86
nvkm_mask(device, NV04_PFIFO_MODE, BIT(chan->id), 0);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
92
nv04_chan_start(struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
94
struct nvkm_fifo *fifo = chan->cgrp->runl->fifo;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
98
nvkm_mask(fifo->engine.subdev.device, NV04_PFIFO_MODE, BIT(chan->id), BIT(chan->id));
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv10.c
105
.chan = {{ 0, 0, NV10_CHANNEL_DMA }, &nv10_chan },
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv10.c
37
nv10_chan_ramfc_write(struct nvkm_chan *chan, u64 offset, u64 length, u32 devm, bool priv)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv10.c
39
struct nvkm_memory *ramfc = chan->cgrp->runl->fifo->engine.subdev.device->imem->ramfc;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv10.c
40
const u32 base = chan->id * 32;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv10.c
42
chan->ramfc_offset = base;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv10.c
47
nvkm_wo32(ramfc, base + 0x0c, chan->push->addr >> 4);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv17.c
134
.chan = {{ 0, 0, NV17_CHANNEL_DMA }, &nv17_chan },
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv17.c
38
nv17_chan_ramfc_write(struct nvkm_chan *chan, u64 offset, u64 length, u32 devm, bool priv)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv17.c
40
struct nvkm_memory *ramfc = chan->cgrp->runl->fifo->engine.subdev.device->imem->ramfc;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv17.c
41
const u32 base = chan->id * 64;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv17.c
43
chan->ramfc_offset = base;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv17.c
48
nvkm_wo32(ramfc, base + 0x0c, chan->push->addr >> 4);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv40.c
111
nv40_eobj_ramht_add(struct nvkm_engn *engn, struct nvkm_object *eobj, struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv40.c
113
struct nvkm_fifo *fifo = chan->cgrp->runl->fifo;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv40.c
115
u32 context = chan->id << 23 | engn->id << 20;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv40.c
119
hash = nvkm_ramht_insert(imem->ramht, eobj, chan->id, 4, eobj->handle, context);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv40.c
125
nv40_ectx_bind(struct nvkm_engn *engn, struct nvkm_cctx *cctx, struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv40.c
127
struct nvkm_fifo *fifo = chan->cgrp->runl->fifo;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv40.c
156
if (chid == chan->id)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv40.c
160
nvkm_wo32(ramfc, chan->ramfc_offset + ctx, inst);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv40.c
244
.chan = {{ 0, 0, NV40_CHANNEL_DMA }, &nv40_chan },
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv40.c
39
nv40_chan_ramfc_write(struct nvkm_chan *chan, u64 offset, u64 length, u32 devm, bool priv)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv40.c
41
struct nvkm_memory *ramfc = chan->cgrp->runl->fifo->engine.subdev.device->imem->ramfc;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv40.c
42
const u32 base = chan->id * 128;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv40.c
44
chan->ramfc_offset = base;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv40.c
49
nvkm_wo32(ramfc, base + 0x0c, chan->push->addr >> 4);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
102
nvkm_kmap(chan->ramfc);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
103
nvkm_wo32(chan->ramfc, 0x3c, 0x403f6078);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
104
nvkm_wo32(chan->ramfc, 0x44, 0x01003fff);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
105
nvkm_wo32(chan->ramfc, 0x48, chan->push->node->offset >> 4);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
106
nvkm_wo32(chan->ramfc, 0x50, lower_32_bits(offset));
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
107
nvkm_wo32(chan->ramfc, 0x54, upper_32_bits(offset) | (limit2 << 16));
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
108
nvkm_wo32(chan->ramfc, 0x60, 0x7fffffff);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
109
nvkm_wo32(chan->ramfc, 0x78, 0x00000000);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
110
nvkm_wo32(chan->ramfc, 0x7c, 0x30000000 | devm);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
111
nvkm_wo32(chan->ramfc, 0x80, ((chan->ramht->bits - 9) << 27) |
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
113
(chan->ramht->gpuobj->node->offset >> 4));
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
114
nvkm_done(chan->ramfc);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
150
nv50_ectx_bind(struct nvkm_engn *engn, struct nvkm_cctx *cctx, struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
152
struct nvkm_subdev *subdev = &chan->cgrp->runl->fifo->engine.subdev;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
181
nvkm_wr32(device, 0x0032fc, chan->inst->addr >> 12);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
193
nvkm_kmap(chan->eng);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
194
nvkm_wo32(chan->eng, ptr0 + 0x00, flags);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
195
nvkm_wo32(chan->eng, ptr0 + 0x04, lower_32_bits(limit));
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
196
nvkm_wo32(chan->eng, ptr0 + 0x08, lower_32_bits(start));
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
197
nvkm_wo32(chan->eng, ptr0 + 0x0c, upper_32_bits(limit) << 24 |
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
199
nvkm_wo32(chan->eng, ptr0 + 0x10, 0x00000000);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
200
nvkm_wo32(chan->eng, ptr0 + 0x14, 0x00000000);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
201
nvkm_done(chan->eng);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
248
nv50_runl_insert_chan(struct nvkm_chan *chan, struct nvkm_memory *memory, u64 offset)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
250
nvkm_wo32(memory, offset, chan->id);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
289
struct nvkm_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
310
nvkm_cgrp_foreach_chan(chan, cgrp) {
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
311
CHAN_TRACE(chan, "RAMRL+%08x: [%s]", offset, chan->name);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
312
runl->func->insert_chan(chan, memory, offset);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
36
nv50_eobj_ramht_del(struct nvkm_chan *chan, int hash)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
38
nvkm_ramht_remove(chan->ramht, hash);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
390
.chan = {{ 0, 0, NV50_CHANNEL_GPFIFO }, &nv50_chan },
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
42
nv50_eobj_ramht_add(struct nvkm_engn *engn, struct nvkm_object *eobj, struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
44
return nvkm_ramht_insert(chan->ramht, eobj, 0, 4, eobj->handle, engn->id << 20);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
48
nv50_chan_stop(struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
50
struct nvkm_device *device = chan->cgrp->runl->fifo->engine.subdev.device;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
52
nvkm_mask(device, 0x002600 + (chan->id * 4), 0x80000000, 0x00000000);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
56
nv50_chan_start(struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
58
struct nvkm_device *device = chan->cgrp->runl->fifo->engine.subdev.device;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
60
nvkm_mask(device, 0x002600 + (chan->id * 4), 0x80000000, 0x80000000);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
64
nv50_chan_unbind(struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
66
struct nvkm_device *device = chan->cgrp->runl->fifo->engine.subdev.device;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
68
nvkm_wr32(device, 0x002600 + (chan->id * 4), 0x00000000);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
72
nv50_chan_bind(struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
74
struct nvkm_device *device = chan->cgrp->runl->fifo->engine.subdev.device;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
76
nvkm_wr32(device, 0x002600 + (chan->id * 4), chan->ramfc->addr >> 12);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
80
nv50_chan_ramfc_write(struct nvkm_chan *chan, u64 offset, u64 length, u32 devm, bool priv)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
82
struct nvkm_device *device = chan->cgrp->runl->fifo->engine.subdev.device;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
86
ret = nvkm_gpuobj_new(device, 0x0200, 0x1000, true, chan->inst, &chan->ramfc);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
90
ret = nvkm_gpuobj_new(device, 0x1200, 0, true, chan->inst, &chan->eng);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
94
ret = nvkm_gpuobj_new(device, 0x4000, 0, false, chan->inst, &chan->pgd);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
98
ret = nvkm_ramht_new(device, 0x8000, 16, chan->inst, &chan->ramht);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/priv.h
62
} chan;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/runl.c
186
struct nvkm_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/runl.c
192
chan = chid->data[id];
drivers/gpu/drm/nouveau/nvkm/engine/fifo/runl.c
193
if (likely(chan)) {
drivers/gpu/drm/nouveau/nvkm/engine/fifo/runl.c
194
if (chan->inst->addr == inst) {
drivers/gpu/drm/nouveau/nvkm/engine/fifo/runl.c
195
spin_lock(&chan->cgrp->lock);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/runl.c
198
return chan;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/runl.c
210
struct nvkm_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/runl.c
215
chan = chid->data[id];
drivers/gpu/drm/nouveau/nvkm/engine/fifo/runl.c
216
if (likely(chan)) {
drivers/gpu/drm/nouveau/nvkm/engine/fifo/runl.c
217
spin_lock(&chan->cgrp->lock);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/runl.c
220
return chan;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/runl.c
37
struct nvkm_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/runl.c
46
chan = nvkm_runl_chan_get_chid(engn->runl, id, pirqflags);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/runl.c
47
if (chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/runl.c
48
cgrp = chan->cgrp;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/runl.c
62
struct nvkm_chan *chan, *ctmp;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/runl.c
79
nvkm_cgrp_foreach_chan_safe(chan, ctmp, cgrp) {
drivers/gpu/drm/nouveau/nvkm/engine/fifo/runl.c
80
nvkm_chan_error(chan, false);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/runl.c
81
nvkm_chan_remove_locked(chan);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/runl.h
65
u32 chan;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/tu102.c
279
.chan = {{ 0, 0, TURING_CHANNEL_GPFIFO_A }, &tu102_chan },
drivers/gpu/drm/nouveau/nvkm/engine/fifo/tu102.c
35
tu102_chan_doorbell_handle(struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/tu102.c
37
return (chan->cgrp->runl->id << 16) | chan->id;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/tu102.c
41
tu102_chan_start(struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/tu102.c
43
struct nvkm_device *device = chan->cgrp->runl->fifo->engine.subdev.device;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/tu102.c
45
gk104_chan_start(chan);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/tu102.c
46
nvkm_wr32(device, device->vfn->addr.user + 0x0090, chan->func->doorbell_handle(chan));
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ucgrp.c
50
const struct nvkm_fifo_func_chan *chan = &fifo->func->chan;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ucgrp.c
54
if (chan->user.oclass) {
drivers/gpu/drm/nouveau/nvkm/engine/fifo/ucgrp.c
56
oclass->base = chan->user;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
101
struct nvkm_chan *chan = uobj->chan;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
111
mutex_lock(&chan->cgrp->mutex);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
120
nvkm_chan_cctx_bind(chan, ectx->engn, cctx);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
124
mutex_unlock(&chan->cgrp->mutex);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
141
engn->func->ramht_del(uobj->chan, uobj->hash);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
143
nvkm_chan_cctx_put(uobj->chan, &uobj->cctx);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
157
struct nvkm_chan *chan = nvkm_uchan(oclass->parent)->chan;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
158
struct nvkm_cgrp *cgrp = chan->cgrp;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
173
uobj->chan = chan;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
177
ret = nvkm_chan_cctx_get(chan, engn, &uobj->cctx, oclass->client);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
195
uobj->hash = engn->func->ramht_add(engn, uobj->oproxy.object, uobj->chan);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
206
struct nvkm_chan *chan = nvkm_uchan(object)->chan;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
210
nvkm_runl_foreach_engn(engn, chan->cgrp->runl) {
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
217
if (chan->runq != runq++)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
258
struct nvkm_chan *chan = nvkm_uchan(object)->chan;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
259
struct nvkm_device *device = chan->cgrp->runl->fifo->engine.subdev.device;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
261
if (!chan->func->userd->bar)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
265
*addr = device->func->resource_addr(device, chan->func->userd->bar) +
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
266
chan->func->userd->base + chan->userd.base;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
267
*size = chan->func->userd->size;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
274
struct nvkm_chan *chan = nvkm_uchan(object)->chan;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
276
nvkm_chan_block(chan);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
277
nvkm_chan_remove(chan, true);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
279
if (chan->func->unbind)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
280
chan->func->unbind(chan);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
288
struct nvkm_chan *chan = nvkm_uchan(object)->chan;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
290
if (atomic_read(&chan->errored))
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
293
if (chan->func->bind)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
294
chan->func->bind(chan);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
296
nvkm_chan_allow(chan);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
297
nvkm_chan_insert(chan);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
306
nvkm_chan_del(&uchan->chan);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
326
return nvkm_uchan(object)->chan;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
339
struct nvkm_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
38
struct nvkm_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
386
ret = nvkm_chan_new_(fifo->func->chan.func, runl, args->v0.runq, cgrp, args->v0.name,
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
388
args->v0.length, userd, args->v0.ouserd, &uchan->chan);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
392
chan = uchan->chan;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
395
if (chan->func->doorbell_handle)
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
396
args->v0.token = chan->func->doorbell_handle(chan);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
400
args->v0.chid = chan->id;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
402
switch (nvkm_memory_target(chan->inst->memory)) {
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
413
args->v0.inst = nvkm_memory_addr(chan->inst->memory);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
44
struct nvkm_chan *chan = nvkm_uchan(object)->chan;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
45
struct nvkm_runl *runl = chan->cgrp->runl;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
58
return nvkm_uevent_add(uevent, &runl->chid->event, chan->id,
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
69
struct nvkm_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
78
struct nvkm_chan *chan = uobj->chan;
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
86
if (refcount_dec_and_mutex_lock(&cctx->uses, &chan->cgrp->mutex)) {
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
87
nvkm_chan_cctx_bind(chan, ectx->engn, NULL);
drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.c
91
mutex_unlock(&chan->cgrp->mutex);
drivers/gpu/drm/nouveau/nvkm/engine/gr/base.c
112
nvkm_gr_cclass_new(struct nvkm_chan *chan, const struct nvkm_oclass *oclass,
drivers/gpu/drm/nouveau/nvkm/engine/gr/base.c
117
return gr->func->chan_new(gr, chan, oclass, pobject);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c
1002
nvkm_wo32(chan->mmio, chan->mmio_nr++ * 4, addr);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c
1003
nvkm_wo32(chan->mmio, chan->mmio_nr++ * 4, data);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c
1014
gf100_grctx_generate_bundle(struct gf100_gr_chan *chan, u64 addr, u32 size)
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c
1016
gf100_grctx_patch_wr32(chan, 0x408004, addr >> 8);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c
1017
gf100_grctx_patch_wr32(chan, 0x408008, 0x80000000 | (size >> 8));
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c
1018
gf100_grctx_patch_wr32(chan, 0x418808, addr >> 8);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c
1019
gf100_grctx_patch_wr32(chan, 0x41880c, 0x80000000 | (size >> 8));
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c
1023
gf100_grctx_generate_pagepool(struct gf100_gr_chan *chan, u64 addr)
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c
1025
gf100_grctx_patch_wr32(chan, 0x40800c, addr >> 8);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c
1026
gf100_grctx_patch_wr32(chan, 0x408010, 0x80000000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c
1027
gf100_grctx_patch_wr32(chan, 0x419004, addr >> 8);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c
1028
gf100_grctx_patch_wr32(chan, 0x419008, 0x00000000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c
1032
gf100_grctx_generate_attrib(struct gf100_gr_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c
1034
struct gf100_gr *gr = chan->gr;
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c
1040
gf100_grctx_patch_wr32(chan, 0x405830, (attrib << 16));
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c
1046
gf100_grctx_patch_wr32(chan, o, (attrib << 16) | bo);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c
1053
gf100_grctx_generate_attrib_cb(struct gf100_gr_chan *chan, u64 addr, u32 size)
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c
1055
gf100_grctx_patch_wr32(chan, 0x418810, 0x80000000 | addr >> 12);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c
1056
gf100_grctx_patch_wr32(chan, 0x419848, 0x10000000 | addr >> 12);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c
1342
gf100_grctx_generate_main(struct gf100_gr_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c
1344
struct gf100_gr *gr = chan->gr;
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c
1371
grctx->pagepool(chan, chan->pagepool->addr);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c
1372
grctx->bundle(chan, chan->bundle_cb->addr, grctx->bundle_size);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c
1373
grctx->attrib_cb(chan, chan->attrib_cb->addr, grctx->attrib_cb_size(gr));
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c
1374
grctx->attrib(chan);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c
1376
grctx->patch_ltc(chan);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c
1378
grctx->unknown(chan, chan->unknown->addr, grctx->unknown_size);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c
1436
gf100_grctx_generate(struct gf100_gr *gr, struct gf100_gr_chan *chan, struct nvkm_gpuobj *inst)
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c
1478
ret = nvkm_vmm_get(chan->vmm, 0, nvkm_memory_size(data), &ctx);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c
1482
ret = nvkm_memory_map(data, 0, chan->vmm, ctx, NULL, 0);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c
1515
grctx->main(chan);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c
1555
nvkm_vmm_put(chan->vmm, &ctx);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c
995
gf100_grctx_patch_wr32(struct gf100_gr_chan *chan, u32 addr, u32 data)
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c
997
if (unlikely(!chan->mmio)) {
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c
998
nvkm_wr32(chan->gr->base.engine.subdev.device, addr, data);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf108.c
736
gf108_grctx_generate_attrib(struct gf100_gr_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf108.c
738
struct gf100_gr *gr = chan->gr;
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf108.c
748
gf100_grctx_patch_wr32(chan, 0x405830, (beta << 16) | alpha);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf108.c
749
gf100_grctx_patch_wr32(chan, 0x4064c4, ((alpha / 4) << 16) | max_batches);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf108.c
758
gf100_grctx_patch_wr32(chan, o + 0x20, (t << 28) | (b << 16) | bo);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf108.c
760
gf100_grctx_patch_wr32(chan, o + 0x44, (a << 16) | ao);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf117.c
244
gf117_grctx_generate_attrib(struct gf100_gr_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf117.c
246
struct gf100_gr *gr = chan->gr;
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf117.c
256
gf100_grctx_patch_wr32(chan, 0x405830, (beta << 16) | alpha);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf117.c
257
gf100_grctx_patch_wr32(chan, 0x4064c4, ((alpha / 4) << 16) | max_batches);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf117.c
269
gf100_grctx_patch_wr32(chan, o + 0xc0, (t << 28) | (b << 16) | bo);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf117.c
271
gf100_grctx_patch_wr32(chan, o + 0xe4, (a << 16) | ao);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk104.c
864
gk104_grctx_generate_patch_ltc(struct gf100_gr_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk104.c
866
struct nvkm_device *device = chan->gr->base.engine.subdev.device;
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk104.c
871
gf100_grctx_patch_wr32(chan, 0x17e91c, data0);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk104.c
872
gf100_grctx_patch_wr32(chan, 0x17e920, data1);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk104.c
876
gk104_grctx_generate_bundle(struct gf100_gr_chan *chan, u64 addr, u32 size)
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk104.c
878
const struct gf100_grctx_func *grctx = chan->gr->func->grctx;
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk104.c
882
gf100_grctx_generate_bundle(chan, addr, size);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk104.c
883
gf100_grctx_patch_wr32(chan, 0x4064c8, (state_limit << 16) | token_limit);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk104.c
887
gk104_grctx_generate_pagepool(struct gf100_gr_chan *chan, u64 addr)
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk104.c
889
gf100_grctx_generate_pagepool(chan, addr);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk104.c
890
gf100_grctx_patch_wr32(chan, 0x4064cc, 0x80000000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk20a.c
28
gk20a_grctx_generate_main(struct gf100_gr_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk20a.c
30
struct gf100_gr *gr = chan->gr;
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk20a.c
42
grctx->attrib_cb(chan, chan->attrib_cb->addr, grctx->attrib_cb_size(gr));
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk20a.c
43
grctx->attrib(chan);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk20a.c
65
grctx->pagepool(chan, chan->pagepool->addr);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk20a.c
66
grctx->bundle(chan, chan->bundle_cb->addr, grctx->bundle_size);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm107.c
879
gm107_grctx_generate_bundle(struct gf100_gr_chan *chan, u64 addr, u32 size)
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm107.c
881
const struct gf100_grctx_func *grctx = chan->gr->func->grctx;
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm107.c
885
gf100_grctx_patch_wr32(chan, 0x408004, addr >> 8);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm107.c
886
gf100_grctx_patch_wr32(chan, 0x408008, 0x80000000 | (size >> 8));
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm107.c
887
gf100_grctx_patch_wr32(chan, 0x418e24, addr >> 8);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm107.c
888
gf100_grctx_patch_wr32(chan, 0x418e28, 0x80000000 | (size >> 8));
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm107.c
889
gf100_grctx_patch_wr32(chan, 0x4064c8, (state_limit << 16) | token_limit);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm107.c
893
gm107_grctx_generate_pagepool(struct gf100_gr_chan *chan, u64 addr)
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm107.c
895
gk104_grctx_generate_pagepool(chan, addr);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm107.c
896
gf100_grctx_patch_wr32(chan, 0x418e30, 0x80000000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm107.c
900
gm107_grctx_generate_attrib(struct gf100_gr_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm107.c
902
struct gf100_gr *gr = chan->gr;
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm107.c
911
gf100_grctx_patch_wr32(chan, 0x405830, (attrib << 16) | alpha);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm107.c
912
gf100_grctx_patch_wr32(chan, 0x4064c4, ((alpha / 4) << 16) | max_batches);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm107.c
924
gf100_grctx_patch_wr32(chan, o + 0xc0, bs);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm107.c
925
gf100_grctx_patch_wr32(chan, o + 0xf4, bo);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm107.c
927
gf100_grctx_patch_wr32(chan, o + 0xe4, as);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm107.c
928
gf100_grctx_patch_wr32(chan, o + 0xf8, ao);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm107.c
930
gf100_grctx_patch_wr32(chan, u, ((bs / 3) << 16) | bs);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm107.c
936
gm107_grctx_generate_attrib_cb(struct gf100_gr_chan *chan, u64 addr, u32 size)
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm107.c
938
gf100_grctx_generate_attrib_cb(chan, addr, size);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm107.c
940
gf100_grctx_patch_wr32(chan, 0x419c2c, 0x10000000 | addr >> 12);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm20b.c
25
gm20b_grctx_generate_main(struct gf100_gr_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm20b.c
27
struct gf100_gr *gr = chan->gr;
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm20b.c
39
grctx->attrib_cb(chan, chan->attrib_cb->addr, grctx->attrib_cb_size(gr));
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm20b.c
40
grctx->attrib(chan);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm20b.c
68
grctx->pagepool(chan, chan->pagepool->addr);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm20b.c
69
grctx->bundle(chan, chan->bundle_cb->addr, grctx->bundle_size);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp100.c
33
gp100_grctx_generate_pagepool(struct gf100_gr_chan *chan, u64 addr)
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp100.c
35
gf100_grctx_patch_wr32(chan, 0x40800c, addr >> 8);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp100.c
36
gf100_grctx_patch_wr32(chan, 0x408010, 0x8007d800);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp100.c
37
gf100_grctx_patch_wr32(chan, 0x419004, addr >> 8);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp100.c
38
gf100_grctx_patch_wr32(chan, 0x419008, 0x00000000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp100.c
42
gp100_grctx_generate_attrib(struct gf100_gr_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp100.c
44
struct gf100_gr *gr = chan->gr;
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp100.c
54
gf100_grctx_patch_wr32(chan, 0x405830, attrib);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp100.c
55
gf100_grctx_patch_wr32(chan, 0x40585c, alpha);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp100.c
56
gf100_grctx_patch_wr32(chan, 0x4064c4, ((alpha / 4) << 16) | max_batches);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp100.c
68
gf100_grctx_patch_wr32(chan, o + 0xc0, bs);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp100.c
69
gf100_grctx_patch_wr32(chan, o + 0xf4, bo);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp100.c
70
gf100_grctx_patch_wr32(chan, o + 0xf0, bs);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp100.c
72
gf100_grctx_patch_wr32(chan, o + 0xe4, as);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp100.c
73
gf100_grctx_patch_wr32(chan, o + 0xf8, ao);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp100.c
75
gf100_grctx_patch_wr32(chan, u, bs);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp100.c
79
gf100_grctx_patch_wr32(chan, 0x418eec, 0x00000000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp100.c
80
gf100_grctx_patch_wr32(chan, 0x41befc, 0x00000000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp100.c
84
gp100_grctx_generate_attrib_cb(struct gf100_gr_chan *chan, u64 addr, u32 size)
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp100.c
86
gm107_grctx_generate_attrib_cb(chan, addr, size);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp100.c
88
gf100_grctx_patch_wr32(chan, 0x419b00, 0x00000000 | addr >> 12);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp100.c
89
gf100_grctx_patch_wr32(chan, 0x419b04, 0x80000000 | size >> 7);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp102.c
40
gp102_grctx_generate_attrib(struct gf100_gr_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp102.c
42
struct gf100_gr *gr = chan->gr;
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp102.c
53
gf100_grctx_patch_wr32(chan, 0x405830, attrib);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp102.c
54
gf100_grctx_patch_wr32(chan, 0x40585c, alpha);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp102.c
55
gf100_grctx_patch_wr32(chan, 0x4064c4, ((alpha / 4) << 16) | max_batches);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp102.c
69
gf100_grctx_patch_wr32(chan, o + 0xc0, gs);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp102.c
70
gf100_grctx_patch_wr32(chan, p, bs);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp102.c
71
gf100_grctx_patch_wr32(chan, o + 0xf4, bo);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp102.c
72
gf100_grctx_patch_wr32(chan, o + 0xf0, bs);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp102.c
74
gf100_grctx_patch_wr32(chan, o + 0xe4, as);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp102.c
75
gf100_grctx_patch_wr32(chan, o + 0xf8, ao);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp102.c
77
gf100_grctx_patch_wr32(chan, u, bs);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp102.c
81
gf100_grctx_patch_wr32(chan, 0x4181e4, 0x00000100);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp102.c
82
gf100_grctx_patch_wr32(chan, 0x41befc, 0x00000100);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgv100.c
101
gf100_grctx_patch_wr32(chan, 0x4181e4, 0x00000100);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgv100.c
102
gf100_grctx_patch_wr32(chan, 0x41befc, 0x00000100);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgv100.c
106
gv100_grctx_generate_attrib_cb(struct gf100_gr_chan *chan, u64 addr, u32 size)
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgv100.c
108
gm107_grctx_generate_attrib_cb(chan, addr, size);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgv100.c
110
gf100_grctx_patch_wr32(chan, 0x419e00, 0x00000000 | addr >> 12);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgv100.c
111
gf100_grctx_patch_wr32(chan, 0x419e04, 0x80000000 | size >> 7);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgv100.c
62
gv100_grctx_generate_attrib(struct gf100_gr_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgv100.c
64
struct gf100_gr *gr = chan->gr;
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgv100.c
75
gf100_grctx_patch_wr32(chan, 0x405830, attrib);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgv100.c
76
gf100_grctx_patch_wr32(chan, 0x40585c, alpha);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgv100.c
77
gf100_grctx_patch_wr32(chan, 0x4064c4, ((alpha / 4) << 16) | max_batches);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgv100.c
90
gf100_grctx_patch_wr32(chan, o + 0xc0, gs);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgv100.c
91
gf100_grctx_patch_wr32(chan, o + 0xf4, bo);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgv100.c
92
gf100_grctx_patch_wr32(chan, o + 0xf0, bs);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgv100.c
94
gf100_grctx_patch_wr32(chan, o + 0xe4, as);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgv100.c
95
gf100_grctx_patch_wr32(chan, o + 0xf8, ao);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgv100.c
97
gf100_grctx_patch_wr32(chan, u, bs);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxtu102.c
59
tu102_grctx_generate_unknown(struct gf100_gr_chan *chan, u64 addr, u32 size)
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxtu102.c
61
gf100_grctx_patch_wr32(chan, 0x408070, addr >> 8);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxtu102.c
62
gf100_grctx_patch_wr32(chan, 0x408074, size >> 8); /*XXX: guess */
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxtu102.c
63
gf100_grctx_patch_wr32(chan, 0x419034, addr >> 8);
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxtu102.c
64
gf100_grctx_patch_wr32(chan, 0x408078, 0x00000000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
157
struct gf100_gr_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
1612
struct nvkm_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
1625
chan = nvkm_chan_get_inst(&gr->base.engine, (u64)inst << 12, &flags);
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
1626
if (chan) {
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
1627
name = chan->name;
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
1628
chid = chan->id;
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
1695
nvkm_chan_put(&chan, flags);
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
285
struct gf100_gr_chan *chan = gf100_gr_chan(oclass->parent);
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
294
object->chan = chan;
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
323
struct gf100_gr_chan *chan = gf100_gr_chan(object);
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
324
struct gf100_gr *gr = chan->gr;
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
337
nvkm_wo32(*pgpuobj, 0x00, chan->mmio_nr / 2);
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
338
nvkm_wo32(*pgpuobj, 0x04, chan->mmio_vma->addr >> 8);
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
342
nvkm_wo32(*pgpuobj, 0x10, chan->mmio_nr / 2);
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
343
nvkm_wo32(*pgpuobj, 0x14, lower_32_bits(chan->mmio_vma->addr));
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
344
nvkm_wo32(*pgpuobj, 0x18, upper_32_bits(chan->mmio_vma->addr));
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
357
struct gf100_gr_chan *chan = gf100_gr_chan(object);
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
359
nvkm_vmm_put(chan->vmm, &chan->mmio_vma);
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
360
nvkm_memory_unref(&chan->mmio);
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
362
nvkm_vmm_put(chan->vmm, &chan->attrib_cb);
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
363
nvkm_vmm_put(chan->vmm, &chan->unknown);
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
364
nvkm_vmm_put(chan->vmm, &chan->bundle_cb);
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
365
nvkm_vmm_put(chan->vmm, &chan->pagepool);
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
366
nvkm_vmm_unref(&chan->vmm);
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
367
return chan;
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
382
struct gf100_gr_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
387
if (!(chan = kzalloc_obj(*chan)))
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
389
nvkm_object_ctor(&gf100_gr_chan, oclass, &chan->object);
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
390
chan->gr = gr;
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
391
chan->vmm = nvkm_vmm_ref(fifoch->vmm);
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
392
*pobject = &chan->object;
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
395
ret = nvkm_vmm_get(chan->vmm, 12, nvkm_memory_size(gr->pagepool), &chan->pagepool);
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
399
ret = nvkm_memory_map(gr->pagepool, 0, chan->vmm, chan->pagepool, &args, sizeof(args));
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
404
ret = nvkm_vmm_get(chan->vmm, 12, nvkm_memory_size(gr->bundle_cb), &chan->bundle_cb);
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
408
ret = nvkm_memory_map(gr->bundle_cb, 0, chan->vmm, chan->bundle_cb, &args, sizeof(args));
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
413
ret = nvkm_vmm_get(chan->vmm, 12, nvkm_memory_size(gr->attrib_cb), &chan->attrib_cb);
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
418
ret = nvkm_memory_map(gr->attrib_cb, 0, chan->vmm, chan->attrib_cb, NULL, 0);
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
422
ret = nvkm_memory_map(gr->attrib_cb, 0, chan->vmm, chan->attrib_cb,
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
430
ret = nvkm_vmm_get(chan->vmm, 12, nvkm_memory_size(gr->unknown), &chan->unknown);
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
434
ret = nvkm_memory_map(gr->unknown, 0, chan->vmm, chan->unknown,
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
443
ret = gf100_grctx_generate(gr, chan, fifoch->inst);
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
457
false, &chan->mmio);
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
461
ret = nvkm_vmm_get(fifoch->vmm, 12, 0x1000, &chan->mmio_vma);
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
465
ret = nvkm_memory_map(chan->mmio, 0, fifoch->vmm,
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
466
chan->mmio_vma, &args, sizeof(args));
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
471
nvkm_kmap(chan->mmio);
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
472
gr->func->grctx->pagepool(chan, chan->pagepool->addr);
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
473
gr->func->grctx->bundle(chan, chan->bundle_cb->addr, gr->func->grctx->bundle_size);
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
474
gr->func->grctx->attrib_cb(chan, chan->attrib_cb->addr, gr->func->grctx->attrib_cb_size(gr));
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
475
gr->func->grctx->attrib(chan);
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
477
gr->func->grctx->patch_ltc(chan);
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
479
gr->func->grctx->unknown(chan, chan->unknown->addr, gr->func->grctx->unknown_size);
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
480
nvkm_done(chan->mmio);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c
1075
struct nv04_gr_chan *chan = NULL;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c
1078
if (chid < ARRAY_SIZE(gr->chan))
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c
1079
chan = gr->chan[chid];
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c
1081
return chan;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c
1085
nv04_gr_load_context(struct nv04_gr_chan *chan, int chid)
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c
1087
struct nvkm_device *device = chan->gr->base.engine.subdev.device;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c
1091
nvkm_wr32(device, nv04_gr_ctx_regs[i], chan->nv04[i]);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c
1100
nv04_gr_unload_context(struct nv04_gr_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c
1102
struct nvkm_device *device = chan->gr->base.engine.subdev.device;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c
1106
chan->nv04[i] = nvkm_rd32(device, nv04_gr_ctx_regs[i]);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c
1130
next = gr->chan[chid];
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c
1135
static u32 *ctx_reg(struct nv04_gr_chan *chan, u32 reg)
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c
1141
return &chan->nv04[i];
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c
1150
struct nv04_gr_chan *chan = nv04_gr_chan(object);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c
1151
struct nv04_gr *gr = chan->gr;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c
1155
gr->chan[chan->chid] = NULL;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c
1157
return chan;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c
1163
struct nv04_gr_chan *chan = nv04_gr_chan(object);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c
1164
struct nv04_gr *gr = chan->gr;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c
1170
if (nv04_gr_channel(gr) == chan)
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c
1171
nv04_gr_unload_context(chan);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c
1188
struct nv04_gr_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c
1191
if (!(chan = kzalloc_obj(*chan)))
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c
1193
nvkm_object_ctor(&nv04_gr_chan, oclass, &chan->object);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c
1194
chan->gr = gr;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c
1195
chan->chid = fifoch->id;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c
1196
*pobject = &chan->object;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c
1198
*ctx_reg(chan, NV04_PGRAPH_DEBUG_3) = 0xfad4ff31;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c
1201
gr->chan[chan->chid] = chan;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c
1289
struct nv04_gr_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c
1293
chan = gr->chan[chid];
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c
1296
if (chan && (nsource & NV03_PGRAPH_NSOURCE_ILLEGAL_MTHD)) {
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c
1320
chan ? chan->object.client->name : "unknown",
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c
353
struct nv04_gr_chan *chan[16];
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
1006
struct nv10_gr_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
1010
if (!(chan = kzalloc_obj(*chan)))
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
1012
nvkm_object_ctor(&nv10_gr_chan, oclass, &chan->object);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
1013
chan->gr = gr;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
1014
chan->chid = fifoch->id;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
1015
*pobject = &chan->object;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
1034
NV_WRITE_CTX(NV10_PGRAPH_CTX_USER, chan->chid << 24);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
1036
nv10_gr_create_pipe(chan);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
1039
gr->chan[chan->chid] = chan;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
1097
struct nv10_gr_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
1101
chan = gr->chan[chid];
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
1104
if (chan && (nsource & NV03_PGRAPH_NSOURCE_ILLEGAL_MTHD)) {
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
1105
if (!nv10_gr_mthd(chan, class, mthd, data))
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
1128
chan ? chan->object.client->name : "unknown",
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
393
struct nv10_gr_chan *chan[32];
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
431
nv17_gr_mthd_lma_window(struct nv10_gr_chan *chan, u32 mthd, u32 data)
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
433
struct nvkm_device *device = chan->object.engine->subdev.device;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
434
struct nvkm_gr *gr = &chan->gr->base;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
435
struct pipe_state *pipe = &chan->pipe_state;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
440
chan->lma_window[(mthd - 0x1638) / 4] = data;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
450
PIPE_RESTORE(device, chan->lma_window, 0x6790);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
504
nv17_gr_mthd_lma_enable(struct nv10_gr_chan *chan, u32 mthd, u32 data)
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
506
struct nvkm_device *device = chan->object.engine->subdev.device;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
507
struct nvkm_gr *gr = &chan->gr->base;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
516
nv17_gr_mthd_celcius(struct nv10_gr_chan *chan, u32 mthd, u32 data)
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
526
func(chan, mthd, data);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
531
nv10_gr_mthd(struct nv10_gr_chan *chan, u8 class, u32 mthd, u32 data)
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
539
return func(chan, mthd, data);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
550
struct nv10_gr_chan *chan = NULL;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
553
if (chid < ARRAY_SIZE(gr->chan))
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
554
chan = gr->chan[chid];
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
556
return chan;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
560
nv10_gr_save_pipe(struct nv10_gr_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
562
struct nv10_gr *gr = chan->gr;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
563
struct pipe_state *pipe = &chan->pipe_state;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
579
nv10_gr_load_pipe(struct nv10_gr_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
581
struct nv10_gr *gr = chan->gr;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
582
struct pipe_state *pipe = &chan->pipe_state;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
630
nv10_gr_create_pipe(struct nv10_gr_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
632
struct nv10_gr *gr = chan->gr;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
634
struct pipe_state *pipe_state = &chan->pipe_state;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
812
nv10_gr_load_dma_vtxbuf(struct nv10_gr_chan *chan, int chid, u32 inst)
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
814
struct nv10_gr *gr = chan->gr;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
883
nv10_gr_load_context(struct nv10_gr_chan *chan, int chid)
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
885
struct nv10_gr *gr = chan->gr;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
891
nvkm_wr32(device, nv10_gr_ctx_regs[i], chan->nv10[i]);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
895
nvkm_wr32(device, nv17_gr_ctx_regs[i], chan->nv17[i]);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
898
nv10_gr_load_pipe(chan);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
901
nv10_gr_load_dma_vtxbuf(chan, chid, inst);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
910
nv10_gr_unload_context(struct nv10_gr_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
912
struct nv10_gr *gr = chan->gr;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
917
chan->nv10[i] = nvkm_rd32(device, nv10_gr_ctx_regs[i]);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
921
chan->nv17[i] = nvkm_rd32(device, nv17_gr_ctx_regs[i]);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
924
nv10_gr_save_pipe(chan);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
948
next = gr->chan[chid];
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
956
struct nv10_gr_chan *chan = nv10_gr_chan(object);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
957
struct nv10_gr *gr = chan->gr;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
963
if (nv10_gr_channel(gr) == chan)
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
964
nv10_gr_unload_context(chan);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
973
struct nv10_gr_chan *chan = nv10_gr_chan(object);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
974
struct nv10_gr *gr = chan->gr;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
978
gr->chan[chan->chid] = NULL;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
980
return chan;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
992
chan->nv10[offset] = val; \
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c
998
chan->nv17[offset] = val; \
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
100
nvkm_wo32(chan->inst, 0x047c, 0x00000101);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
101
nvkm_wo32(chan->inst, 0x0490, 0x00000111);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
102
nvkm_wo32(chan->inst, 0x04a8, 0x44400000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
104
nvkm_wo32(chan->inst, i, 0x00030303);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
106
nvkm_wo32(chan->inst, i, 0x00080000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
108
nvkm_wo32(chan->inst, i, 0x01012000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
110
nvkm_wo32(chan->inst, i, 0x000105b8);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
112
nvkm_wo32(chan->inst, i, 0x00080008);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
114
nvkm_wo32(chan->inst, i, 0x07ff0000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
115
nvkm_wo32(chan->inst, 0x05a4, 0x4b7fffff);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
116
nvkm_wo32(chan->inst, 0x05fc, 0x00000001);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
117
nvkm_wo32(chan->inst, 0x0604, 0x00004000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
118
nvkm_wo32(chan->inst, 0x0610, 0x00000001);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
119
nvkm_wo32(chan->inst, 0x0618, 0x00040000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
120
nvkm_wo32(chan->inst, 0x061c, 0x00010000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
122
nvkm_wo32(chan->inst, (i + 0), 0x10700ff9);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
123
nvkm_wo32(chan->inst, (i + 4), 0x0436086c);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
124
nvkm_wo32(chan->inst, (i + 8), 0x000c001b);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
126
nvkm_wo32(chan->inst, 0x281c, 0x3f800000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
127
nvkm_wo32(chan->inst, 0x2830, 0x3f800000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
128
nvkm_wo32(chan->inst, 0x285c, 0x40000000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
129
nvkm_wo32(chan->inst, 0x2860, 0x3f800000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
130
nvkm_wo32(chan->inst, 0x2864, 0x3f000000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
131
nvkm_wo32(chan->inst, 0x286c, 0x40000000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
132
nvkm_wo32(chan->inst, 0x2870, 0x3f800000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
133
nvkm_wo32(chan->inst, 0x2878, 0xbf800000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
134
nvkm_wo32(chan->inst, 0x2880, 0xbf800000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
135
nvkm_wo32(chan->inst, 0x34a4, 0x000fe000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
136
nvkm_wo32(chan->inst, 0x3530, 0x000003f8);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
137
nvkm_wo32(chan->inst, 0x3540, 0x002fe000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
139
nvkm_wo32(chan->inst, i, 0x001c527c);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
140
nvkm_done(chan->inst);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
185
struct nvkm_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
19
struct nv20_gr_chan *chan = nv20_gr_chan(object);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
199
chan = nvkm_chan_get_chid(&gr->base.engine, chid, &flags);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
20
struct nv20_gr *gr = chan->gr;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
21
u32 inst = nvkm_memory_addr(chan->inst);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
212
chan ? chan->name : "unknown",
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
216
nvkm_chan_put(&chan, flags);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
24
nvkm_wo32(gr->ctxtab, chan->chid * 4, inst >> 4);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
32
struct nv20_gr_chan *chan = nv20_gr_chan(object);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
33
struct nv20_gr *gr = chan->gr;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
35
u32 inst = nvkm_memory_addr(chan->inst);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
41
if (chan->chid == chid) {
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
54
nvkm_wo32(gr->ctxtab, chan->chid * 4, 0x00000000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
62
struct nv20_gr_chan *chan = nv20_gr_chan(object);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
63
nvkm_memory_unref(&chan->inst);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
64
return chan;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
79
struct nv20_gr_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
82
if (!(chan = kzalloc_obj(*chan)))
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
84
nvkm_object_ctor(&nv20_gr_chan, oclass, &chan->object);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
85
chan->gr = gr;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
86
chan->chid = fifoch->id;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
87
*pobject = &chan->object;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
91
&chan->inst);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
95
nvkm_kmap(chan->inst);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
96
nvkm_wo32(chan->inst, 0x0000, 0x00000001 | (chan->chid << 24));
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
97
nvkm_wo32(chan->inst, 0x033c, 0xffff0000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
98
nvkm_wo32(chan->inst, 0x03a0, 0x0fff0000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c
99
nvkm_wo32(chan->inst, 0x03a4, 0x0fff0000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
25
struct nv20_gr_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
28
if (!(chan = kzalloc_obj(*chan)))
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
30
nvkm_object_ctor(&nv25_gr_chan, oclass, &chan->object);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
31
chan->gr = gr;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
32
chan->chid = fifoch->id;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
33
*pobject = &chan->object;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
37
&chan->inst);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
41
nvkm_kmap(chan->inst);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
42
nvkm_wo32(chan->inst, 0x0028, 0x00000001 | (chan->chid << 24));
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
43
nvkm_wo32(chan->inst, 0x035c, 0xffff0000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
44
nvkm_wo32(chan->inst, 0x03c0, 0x0fff0000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
45
nvkm_wo32(chan->inst, 0x03c4, 0x0fff0000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
46
nvkm_wo32(chan->inst, 0x049c, 0x00000101);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
47
nvkm_wo32(chan->inst, 0x04b0, 0x00000111);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
48
nvkm_wo32(chan->inst, 0x04c8, 0x00000080);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
49
nvkm_wo32(chan->inst, 0x04cc, 0xffff0000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
50
nvkm_wo32(chan->inst, 0x04d0, 0x00000001);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
51
nvkm_wo32(chan->inst, 0x04e4, 0x44400000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
52
nvkm_wo32(chan->inst, 0x04fc, 0x4b800000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
54
nvkm_wo32(chan->inst, i, 0x00030303);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
56
nvkm_wo32(chan->inst, i, 0x00080000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
58
nvkm_wo32(chan->inst, i, 0x01012000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
60
nvkm_wo32(chan->inst, i, 0x000105b8);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
62
nvkm_wo32(chan->inst, i, 0x00080008);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
64
nvkm_wo32(chan->inst, i, 0x07ff0000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
65
nvkm_wo32(chan->inst, 0x05e0, 0x4b7fffff);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
66
nvkm_wo32(chan->inst, 0x0620, 0x00000080);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
67
nvkm_wo32(chan->inst, 0x0624, 0x30201000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
68
nvkm_wo32(chan->inst, 0x0628, 0x70605040);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
69
nvkm_wo32(chan->inst, 0x062c, 0xb0a09080);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
70
nvkm_wo32(chan->inst, 0x0630, 0xf0e0d0c0);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
71
nvkm_wo32(chan->inst, 0x0664, 0x00000001);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
72
nvkm_wo32(chan->inst, 0x066c, 0x00004000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
73
nvkm_wo32(chan->inst, 0x0678, 0x00000001);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
74
nvkm_wo32(chan->inst, 0x0680, 0x00040000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
75
nvkm_wo32(chan->inst, 0x0684, 0x00010000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
77
nvkm_wo32(chan->inst, (i + 0), 0x10700ff9);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
78
nvkm_wo32(chan->inst, (i + 4), 0x0436086c);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
79
nvkm_wo32(chan->inst, (i + 8), 0x000c001b);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
81
nvkm_wo32(chan->inst, 0x2704, 0x3f800000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
82
nvkm_wo32(chan->inst, 0x2718, 0x3f800000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
83
nvkm_wo32(chan->inst, 0x2744, 0x40000000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
84
nvkm_wo32(chan->inst, 0x2748, 0x3f800000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
85
nvkm_wo32(chan->inst, 0x274c, 0x3f000000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
86
nvkm_wo32(chan->inst, 0x2754, 0x40000000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
87
nvkm_wo32(chan->inst, 0x2758, 0x3f800000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
88
nvkm_wo32(chan->inst, 0x2760, 0xbf800000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
89
nvkm_wo32(chan->inst, 0x2768, 0xbf800000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
90
nvkm_wo32(chan->inst, 0x308c, 0x000fe000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
91
nvkm_wo32(chan->inst, 0x3108, 0x000003f8);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
92
nvkm_wo32(chan->inst, 0x3468, 0x002fe000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
94
nvkm_wo32(chan->inst, i, 0x001c527c);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c
95
nvkm_done(chan->inst);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
25
struct nv20_gr_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
28
if (!(chan = kzalloc_obj(*chan)))
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
30
nvkm_object_ctor(&nv2a_gr_chan, oclass, &chan->object);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
31
chan->gr = gr;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
32
chan->chid = fifoch->id;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
33
*pobject = &chan->object;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
37
&chan->inst);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
41
nvkm_kmap(chan->inst);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
42
nvkm_wo32(chan->inst, 0x0000, 0x00000001 | (chan->chid << 24));
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
43
nvkm_wo32(chan->inst, 0x033c, 0xffff0000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
44
nvkm_wo32(chan->inst, 0x03a0, 0x0fff0000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
45
nvkm_wo32(chan->inst, 0x03a4, 0x0fff0000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
46
nvkm_wo32(chan->inst, 0x047c, 0x00000101);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
47
nvkm_wo32(chan->inst, 0x0490, 0x00000111);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
48
nvkm_wo32(chan->inst, 0x04a8, 0x44400000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
50
nvkm_wo32(chan->inst, i, 0x00030303);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
52
nvkm_wo32(chan->inst, i, 0x00080000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
54
nvkm_wo32(chan->inst, i, 0x01012000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
56
nvkm_wo32(chan->inst, i, 0x000105b8);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
58
nvkm_wo32(chan->inst, i, 0x00080008);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
60
nvkm_wo32(chan->inst, i, 0x07ff0000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
61
nvkm_wo32(chan->inst, 0x05a4, 0x4b7fffff);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
62
nvkm_wo32(chan->inst, 0x05fc, 0x00000001);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
63
nvkm_wo32(chan->inst, 0x0604, 0x00004000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
64
nvkm_wo32(chan->inst, 0x0610, 0x00000001);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
65
nvkm_wo32(chan->inst, 0x0618, 0x00040000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
66
nvkm_wo32(chan->inst, 0x061c, 0x00010000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
68
nvkm_wo32(chan->inst, (i + 0), 0x10700ff9);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
69
nvkm_wo32(chan->inst, (i + 4), 0x0436086c);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
70
nvkm_wo32(chan->inst, (i + 8), 0x000c001b);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
72
nvkm_wo32(chan->inst, 0x269c, 0x3f800000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
73
nvkm_wo32(chan->inst, 0x26b0, 0x3f800000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
74
nvkm_wo32(chan->inst, 0x26dc, 0x40000000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
75
nvkm_wo32(chan->inst, 0x26e0, 0x3f800000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
76
nvkm_wo32(chan->inst, 0x26e4, 0x3f000000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
77
nvkm_wo32(chan->inst, 0x26ec, 0x40000000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
78
nvkm_wo32(chan->inst, 0x26f0, 0x3f800000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
79
nvkm_wo32(chan->inst, 0x26f8, 0xbf800000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
80
nvkm_wo32(chan->inst, 0x2700, 0xbf800000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
81
nvkm_wo32(chan->inst, 0x3024, 0x000fe000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
82
nvkm_wo32(chan->inst, 0x30a0, 0x000003f8);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
83
nvkm_wo32(chan->inst, 0x33fc, 0x002fe000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
85
nvkm_wo32(chan->inst, i, 0x001c527c);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c
86
nvkm_done(chan->inst);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
26
struct nv20_gr_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
29
if (!(chan = kzalloc_obj(*chan)))
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
31
nvkm_object_ctor(&nv30_gr_chan, oclass, &chan->object);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
32
chan->gr = gr;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
33
chan->chid = fifoch->id;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
34
*pobject = &chan->object;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
38
&chan->inst);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
42
nvkm_kmap(chan->inst);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
43
nvkm_wo32(chan->inst, 0x0028, 0x00000001 | (chan->chid << 24));
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
44
nvkm_wo32(chan->inst, 0x0410, 0x00000101);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
45
nvkm_wo32(chan->inst, 0x0424, 0x00000111);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
46
nvkm_wo32(chan->inst, 0x0428, 0x00000060);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
47
nvkm_wo32(chan->inst, 0x0444, 0x00000080);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
48
nvkm_wo32(chan->inst, 0x0448, 0xffff0000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
49
nvkm_wo32(chan->inst, 0x044c, 0x00000001);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
50
nvkm_wo32(chan->inst, 0x0460, 0x44400000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
51
nvkm_wo32(chan->inst, 0x048c, 0xffff0000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
53
nvkm_wo32(chan->inst, i, 0x0fff0000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
54
nvkm_wo32(chan->inst, 0x04ec, 0x00011100);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
56
nvkm_wo32(chan->inst, i, 0x07ff0000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
57
nvkm_wo32(chan->inst, 0x0550, 0x4b7fffff);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
58
nvkm_wo32(chan->inst, 0x058c, 0x00000080);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
59
nvkm_wo32(chan->inst, 0x0590, 0x30201000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
60
nvkm_wo32(chan->inst, 0x0594, 0x70605040);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
61
nvkm_wo32(chan->inst, 0x0598, 0xb8a89888);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
62
nvkm_wo32(chan->inst, 0x059c, 0xf8e8d8c8);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
63
nvkm_wo32(chan->inst, 0x05b0, 0xb0000000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
65
nvkm_wo32(chan->inst, i, 0x00010588);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
67
nvkm_wo32(chan->inst, i, 0x00030303);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
69
nvkm_wo32(chan->inst, i, 0x0008aae4);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
71
nvkm_wo32(chan->inst, i, 0x01012000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
73
nvkm_wo32(chan->inst, i, 0x00080008);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
74
nvkm_wo32(chan->inst, 0x085c, 0x00040000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
75
nvkm_wo32(chan->inst, 0x0860, 0x00010000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
77
nvkm_wo32(chan->inst, i, 0x00040004);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
79
nvkm_wo32(chan->inst, i + 0, 0x10700ff9);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
80
nvkm_wo32(chan->inst, i + 4, 0x0436086c);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
81
nvkm_wo32(chan->inst, i + 8, 0x000c001b);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
84
nvkm_wo32(chan->inst, i, 0x0000ffff);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
85
nvkm_wo32(chan->inst, 0x344c, 0x3f800000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
86
nvkm_wo32(chan->inst, 0x3808, 0x3f800000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
87
nvkm_wo32(chan->inst, 0x381c, 0x3f800000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
88
nvkm_wo32(chan->inst, 0x3848, 0x40000000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
89
nvkm_wo32(chan->inst, 0x384c, 0x3f800000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
90
nvkm_wo32(chan->inst, 0x3850, 0x3f000000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
91
nvkm_wo32(chan->inst, 0x3858, 0x40000000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
92
nvkm_wo32(chan->inst, 0x385c, 0x3f800000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
93
nvkm_wo32(chan->inst, 0x3864, 0xbf800000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
94
nvkm_wo32(chan->inst, 0x386c, 0xbf800000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c
95
nvkm_done(chan->inst);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
25
struct nv20_gr_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
28
if (!(chan = kzalloc_obj(*chan)))
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
30
nvkm_object_ctor(&nv34_gr_chan, oclass, &chan->object);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
31
chan->gr = gr;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
32
chan->chid = fifoch->id;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
33
*pobject = &chan->object;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
37
&chan->inst);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
41
nvkm_kmap(chan->inst);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
42
nvkm_wo32(chan->inst, 0x0028, 0x00000001 | (chan->chid << 24));
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
43
nvkm_wo32(chan->inst, 0x040c, 0x01000101);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
44
nvkm_wo32(chan->inst, 0x0420, 0x00000111);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
45
nvkm_wo32(chan->inst, 0x0424, 0x00000060);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
46
nvkm_wo32(chan->inst, 0x0440, 0x00000080);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
47
nvkm_wo32(chan->inst, 0x0444, 0xffff0000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
48
nvkm_wo32(chan->inst, 0x0448, 0x00000001);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
49
nvkm_wo32(chan->inst, 0x045c, 0x44400000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
50
nvkm_wo32(chan->inst, 0x0480, 0xffff0000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
52
nvkm_wo32(chan->inst, i, 0x0fff0000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
53
nvkm_wo32(chan->inst, 0x04e0, 0x00011100);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
55
nvkm_wo32(chan->inst, i, 0x07ff0000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
56
nvkm_wo32(chan->inst, 0x0544, 0x4b7fffff);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
57
nvkm_wo32(chan->inst, 0x057c, 0x00000080);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
58
nvkm_wo32(chan->inst, 0x0580, 0x30201000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
59
nvkm_wo32(chan->inst, 0x0584, 0x70605040);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
60
nvkm_wo32(chan->inst, 0x0588, 0xb8a89888);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
61
nvkm_wo32(chan->inst, 0x058c, 0xf8e8d8c8);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
62
nvkm_wo32(chan->inst, 0x05a0, 0xb0000000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
64
nvkm_wo32(chan->inst, i, 0x00010588);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
66
nvkm_wo32(chan->inst, i, 0x00030303);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
68
nvkm_wo32(chan->inst, i, 0x0008aae4);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
70
nvkm_wo32(chan->inst, i, 0x01012000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
72
nvkm_wo32(chan->inst, i, 0x00080008);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
73
nvkm_wo32(chan->inst, 0x0850, 0x00040000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
74
nvkm_wo32(chan->inst, 0x0854, 0x00010000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
76
nvkm_wo32(chan->inst, i, 0x00040004);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
78
nvkm_wo32(chan->inst, i + 0, 0x10700ff9);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
79
nvkm_wo32(chan->inst, i + 4, 0x0436086c);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
80
nvkm_wo32(chan->inst, i + 8, 0x000c001b);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
83
nvkm_wo32(chan->inst, i, 0x0000ffff);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
84
nvkm_wo32(chan->inst, 0x2ae0, 0x3f800000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
85
nvkm_wo32(chan->inst, 0x2e9c, 0x3f800000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
86
nvkm_wo32(chan->inst, 0x2eb0, 0x3f800000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
87
nvkm_wo32(chan->inst, 0x2edc, 0x40000000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
88
nvkm_wo32(chan->inst, 0x2ee0, 0x3f800000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
89
nvkm_wo32(chan->inst, 0x2ee4, 0x3f000000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
90
nvkm_wo32(chan->inst, 0x2eec, 0x40000000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
91
nvkm_wo32(chan->inst, 0x2ef0, 0x3f800000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
92
nvkm_wo32(chan->inst, 0x2ef8, 0xbf800000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
93
nvkm_wo32(chan->inst, 0x2f00, 0xbf800000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c
94
nvkm_done(chan->inst);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
25
struct nv20_gr_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
28
if (!(chan = kzalloc_obj(*chan)))
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
30
nvkm_object_ctor(&nv35_gr_chan, oclass, &chan->object);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
31
chan->gr = gr;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
32
chan->chid = fifoch->id;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
33
*pobject = &chan->object;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
37
&chan->inst);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
41
nvkm_kmap(chan->inst);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
42
nvkm_wo32(chan->inst, 0x0028, 0x00000001 | (chan->chid << 24));
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
43
nvkm_wo32(chan->inst, 0x040c, 0x00000101);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
44
nvkm_wo32(chan->inst, 0x0420, 0x00000111);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
45
nvkm_wo32(chan->inst, 0x0424, 0x00000060);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
46
nvkm_wo32(chan->inst, 0x0440, 0x00000080);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
47
nvkm_wo32(chan->inst, 0x0444, 0xffff0000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
48
nvkm_wo32(chan->inst, 0x0448, 0x00000001);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
49
nvkm_wo32(chan->inst, 0x045c, 0x44400000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
50
nvkm_wo32(chan->inst, 0x0488, 0xffff0000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
52
nvkm_wo32(chan->inst, i, 0x0fff0000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
53
nvkm_wo32(chan->inst, 0x04e8, 0x00011100);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
55
nvkm_wo32(chan->inst, i, 0x07ff0000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
56
nvkm_wo32(chan->inst, 0x054c, 0x4b7fffff);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
57
nvkm_wo32(chan->inst, 0x0588, 0x00000080);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
58
nvkm_wo32(chan->inst, 0x058c, 0x30201000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
59
nvkm_wo32(chan->inst, 0x0590, 0x70605040);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
60
nvkm_wo32(chan->inst, 0x0594, 0xb8a89888);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
61
nvkm_wo32(chan->inst, 0x0598, 0xf8e8d8c8);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
62
nvkm_wo32(chan->inst, 0x05ac, 0xb0000000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
64
nvkm_wo32(chan->inst, i, 0x00010588);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
66
nvkm_wo32(chan->inst, i, 0x00030303);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
68
nvkm_wo32(chan->inst, i, 0x0008aae4);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
70
nvkm_wo32(chan->inst, i, 0x01012000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
72
nvkm_wo32(chan->inst, i, 0x00080008);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
73
nvkm_wo32(chan->inst, 0x0860, 0x00040000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
74
nvkm_wo32(chan->inst, 0x0864, 0x00010000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
76
nvkm_wo32(chan->inst, i, 0x00040004);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
78
nvkm_wo32(chan->inst, i + 0, 0x10700ff9);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
79
nvkm_wo32(chan->inst, i + 4, 0x0436086c);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
80
nvkm_wo32(chan->inst, i + 8, 0x000c001b);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
83
nvkm_wo32(chan->inst, i, 0x0000ffff);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
84
nvkm_wo32(chan->inst, 0x3450, 0x3f800000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
85
nvkm_wo32(chan->inst, 0x380c, 0x3f800000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
86
nvkm_wo32(chan->inst, 0x3820, 0x3f800000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
87
nvkm_wo32(chan->inst, 0x384c, 0x40000000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
88
nvkm_wo32(chan->inst, 0x3850, 0x3f800000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
89
nvkm_wo32(chan->inst, 0x3854, 0x3f000000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
90
nvkm_wo32(chan->inst, 0x385c, 0x40000000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
91
nvkm_wo32(chan->inst, 0x3860, 0x3f800000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
92
nvkm_wo32(chan->inst, 0x3868, 0xbf800000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
93
nvkm_wo32(chan->inst, 0x3870, 0xbf800000);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c
94
nvkm_done(chan->inst);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c
132
struct nv40_gr_chan *chan = nv40_gr_chan(object);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c
134
spin_lock_irqsave(&chan->gr->base.engine.lock, flags);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c
135
list_del(&chan->head);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c
136
spin_unlock_irqrestore(&chan->gr->base.engine.lock, flags);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c
137
return chan;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c
152
struct nv40_gr_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c
155
if (!(chan = kzalloc_obj(*chan)))
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c
157
nvkm_object_ctor(&nv40_gr_chan, oclass, &chan->object);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c
158
chan->gr = gr;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c
159
chan->fifo = fifoch;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c
160
*pobject = &chan->object;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c
162
spin_lock_irqsave(&chan->gr->base.engine.lock, flags);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c
163
list_add(&chan->head, &gr->chan);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c
164
spin_unlock_irqrestore(&chan->gr->base.engine.lock, flags);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c
235
struct nv40_gr_chan *temp, *chan = NULL;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c
252
list_for_each_entry(temp, &gr->chan, head) {
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c
254
chan = temp;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c
255
list_del(&chan->head);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c
256
list_add(&chan->head, &gr->chan);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c
278
chan ? chan->fifo->id : -1, inst << 4,
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c
279
chan ? chan->fifo->name : "unknown",
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c
439
INIT_LIST_HEAD(&gr->chan);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c
77
struct nv40_gr_chan *chan = nv40_gr_chan(object);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c
78
struct nv40_gr *gr = chan->gr;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c
82
chan->inst = (*pgpuobj)->addr;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c
85
nvkm_wo32(*pgpuobj, 0x00000, chan->inst >> 4);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c
94
struct nv40_gr_chan *chan = nv40_gr_chan(object);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c
95
struct nv40_gr *gr = chan->gr;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c
98
u32 inst = 0x01000000 | chan->inst >> 4;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.h
10
struct list_head chan;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv50.c
625
struct nvkm_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv50.c
640
chan = nvkm_chan_get_inst(&gr->base.engine, (u64)inst << 12, &flags);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv50.c
641
if (chan) {
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv50.c
642
name = chan->name;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv50.c
643
chid = chan->id;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv50.c
675
nvkm_chan_put(&chan, flags);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv50.c
93
struct nv50_gr_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv50.c
95
if (!(chan = kzalloc_obj(*chan)))
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv50.c
97
nvkm_object_ctor(&nv50_gr_chan, oclass, &chan->object);
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv50.c
98
chan->gr = gr;
drivers/gpu/drm/nouveau/nvkm/engine/gr/nv50.c
99
*pobject = &chan->object;
drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.c
100
if (!mpeg->chan) {
drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.c
101
mpeg->chan = chan;
drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.c
215
mpeg->chan ? mpeg->chan->fifo->id : -1,
drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.c
216
mpeg->chan ? mpeg->chan->fifo->name :
drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.c
67
struct nv31_mpeg_chan *chan = nv31_mpeg_chan(object);
drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.c
68
struct nv31_mpeg *mpeg = chan->mpeg;
drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.c
72
if (mpeg->chan == chan)
drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.c
73
mpeg->chan = NULL;
drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.c
75
return chan;
drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.c
88
struct nv31_mpeg_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.c
92
if (!(chan = kzalloc_obj(*chan)))
drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.c
94
nvkm_object_ctor(&nv31_mpeg_chan, oclass, &chan->object);
drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.c
95
chan->mpeg = mpeg;
drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.c
96
chan->fifo = fifoch;
drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.c
97
*pobject = &chan->object;
drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.h
11
struct nv31_mpeg_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.c
107
struct nv44_mpeg_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.c
110
if (!(chan = kzalloc_obj(*chan)))
drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.c
112
nvkm_object_ctor(&nv44_mpeg_chan, oclass, &chan->object);
drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.c
113
chan->mpeg = mpeg;
drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.c
114
chan->fifo = fifoch;
drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.c
115
*pobject = &chan->object;
drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.c
118
list_add(&chan->head, &mpeg->chan);
drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.c
147
struct nv44_mpeg_chan *temp, *chan = NULL;
drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.c
157
list_for_each_entry(temp, &mpeg->chan, head) {
drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.c
159
chan = temp;
drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.c
160
list_del(&chan->head);
drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.c
161
list_add(&chan->head, &mpeg->chan);
drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.c
184
chan ? chan->fifo->id : -1, inst << 4,
drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.c
185
chan ? chan->fifo->name : "unknown",
drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.c
212
INIT_LIST_HEAD(&mpeg->chan);
drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.c
35
struct list_head chan;
drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.c
55
struct nv44_mpeg_chan *chan = nv44_mpeg_chan(object);
drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.c
56
int ret = nvkm_gpuobj_new(chan->object.engine->subdev.device, 264 * 4,
drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.c
59
chan->inst = (*pgpuobj)->addr;
drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.c
71
struct nv44_mpeg_chan *chan = nv44_mpeg_chan(object);
drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.c
72
struct nv44_mpeg *mpeg = chan->mpeg;
drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.c
74
u32 inst = 0x80000000 | (chan->inst >> 4);
drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.c
86
struct nv44_mpeg_chan *chan = nv44_mpeg_chan(object);
drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.c
87
struct nv44_mpeg *mpeg = chan->mpeg;
drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.c
90
list_del(&chan->head);
drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.c
92
return chan;
drivers/gpu/drm/nouveau/nvkm/engine/sec/g98.c
43
g98_sec_intr(struct nvkm_falcon *sec, struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/sec/g98.c
57
en ? en->name : "UNKNOWN", chan ? chan->id : -1,
drivers/gpu/drm/nouveau/nvkm/engine/sec/g98.c
58
chan ? chan->inst->addr : 0,
drivers/gpu/drm/nouveau/nvkm/engine/sec/g98.c
59
chan ? chan->name : "unknown",
drivers/gpu/drm/nouveau/nvkm/engine/sw/base.c
105
INIT_LIST_HEAD(&sw->chan);
drivers/gpu/drm/nouveau/nvkm/engine/sw/base.c
32
struct nvkm_sw_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/sw/base.c
37
list_for_each_entry(chan, &sw->chan, head) {
drivers/gpu/drm/nouveau/nvkm/engine/sw/base.c
38
if (chan->fifo->id == chid) {
drivers/gpu/drm/nouveau/nvkm/engine/sw/base.c
39
handled = nvkm_sw_chan_mthd(chan, subc, mthd, data);
drivers/gpu/drm/nouveau/nvkm/engine/sw/base.c
40
list_del(&chan->head);
drivers/gpu/drm/nouveau/nvkm/engine/sw/base.c
41
list_add(&chan->head, &sw->chan);
drivers/gpu/drm/nouveau/nvkm/engine/sw/base.c
53
struct nvkm_sw_chan *chan = nvkm_sw_chan(oclass->parent);
drivers/gpu/drm/nouveau/nvkm/engine/sw/base.c
55
return sclass->ctor(chan, oclass, data, size, pobject);
drivers/gpu/drm/nouveau/nvkm/engine/sw/chan.c
32
nvkm_sw_chan_mthd(struct nvkm_sw_chan *chan, int subc, u32 mthd, u32 data)
drivers/gpu/drm/nouveau/nvkm/engine/sw/chan.c
38
nvkm_event_ntfy(&chan->event, 0, NVKM_SW_CHAN_EVENT_PAGE_FLIP);
drivers/gpu/drm/nouveau/nvkm/engine/sw/chan.c
41
if (chan->func->mthd)
drivers/gpu/drm/nouveau/nvkm/engine/sw/chan.c
42
return chan->func->mthd(chan, subc, mthd, data);
drivers/gpu/drm/nouveau/nvkm/engine/sw/chan.c
55
struct nvkm_sw_chan *chan = nvkm_sw_chan(object);
drivers/gpu/drm/nouveau/nvkm/engine/sw/chan.c
56
struct nvkm_sw *sw = chan->sw;
drivers/gpu/drm/nouveau/nvkm/engine/sw/chan.c
58
void *data = chan;
drivers/gpu/drm/nouveau/nvkm/engine/sw/chan.c
60
if (chan->func->dtor)
drivers/gpu/drm/nouveau/nvkm/engine/sw/chan.c
61
data = chan->func->dtor(chan);
drivers/gpu/drm/nouveau/nvkm/engine/sw/chan.c
62
nvkm_event_fini(&chan->event);
drivers/gpu/drm/nouveau/nvkm/engine/sw/chan.c
65
list_del(&chan->head);
drivers/gpu/drm/nouveau/nvkm/engine/sw/chan.c
78
struct nvkm_sw_chan *chan)
drivers/gpu/drm/nouveau/nvkm/engine/sw/chan.c
82
nvkm_object_ctor(&nvkm_sw_chan, oclass, &chan->object);
drivers/gpu/drm/nouveau/nvkm/engine/sw/chan.c
83
chan->func = func;
drivers/gpu/drm/nouveau/nvkm/engine/sw/chan.c
84
chan->sw = sw;
drivers/gpu/drm/nouveau/nvkm/engine/sw/chan.c
85
chan->fifo = fifo;
drivers/gpu/drm/nouveau/nvkm/engine/sw/chan.c
87
list_add(&chan->head, &sw->chan);
drivers/gpu/drm/nouveau/nvkm/engine/sw/chan.c
90
return nvkm_event_init(&nvkm_sw_chan_event, &sw->engine.subdev, 1, 1, &chan->event);
drivers/gpu/drm/nouveau/nvkm/engine/sw/gf100.c
110
struct nv50_sw_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/sw/gf100.c
113
if (!(chan = kzalloc_obj(*chan)))
drivers/gpu/drm/nouveau/nvkm/engine/sw/gf100.c
115
*pobject = &chan->base.object;
drivers/gpu/drm/nouveau/nvkm/engine/sw/gf100.c
118
&chan->base);
drivers/gpu/drm/nouveau/nvkm/engine/sw/gf100.c
124
gf100_sw_chan_vblsem_release, &chan->vblank.notify[i]);
drivers/gpu/drm/nouveau/nvkm/engine/sw/gf100.c
41
struct nv50_sw_chan *chan =
drivers/gpu/drm/nouveau/nvkm/engine/sw/gf100.c
42
container_of(notify, typeof(*chan), vblank.notify[notify->id]);
drivers/gpu/drm/nouveau/nvkm/engine/sw/gf100.c
43
struct nvkm_sw *sw = chan->base.sw;
drivers/gpu/drm/nouveau/nvkm/engine/sw/gf100.c
45
u32 inst = chan->base.fifo->inst->addr >> 12;
drivers/gpu/drm/nouveau/nvkm/engine/sw/gf100.c
49
nvkm_wr32(device, 0x06000c, upper_32_bits(chan->vblank.offset));
drivers/gpu/drm/nouveau/nvkm/engine/sw/gf100.c
50
nvkm_wr32(device, 0x060010, lower_32_bits(chan->vblank.offset));
drivers/gpu/drm/nouveau/nvkm/engine/sw/gf100.c
51
nvkm_wr32(device, 0x060014, chan->vblank.value);
drivers/gpu/drm/nouveau/nvkm/engine/sw/gf100.c
59
struct nv50_sw_chan *chan = nv50_sw_chan(base);
drivers/gpu/drm/nouveau/nvkm/engine/sw/gf100.c
60
struct nvkm_engine *engine = chan->base.object.engine;
drivers/gpu/drm/nouveau/nvkm/engine/sw/gf100.c
64
chan->vblank.offset &= 0x00ffffffffULL;
drivers/gpu/drm/nouveau/nvkm/engine/sw/gf100.c
65
chan->vblank.offset |= (u64)data << 32;
drivers/gpu/drm/nouveau/nvkm/engine/sw/gf100.c
68
chan->vblank.offset &= 0xff00000000ULL;
drivers/gpu/drm/nouveau/nvkm/engine/sw/gf100.c
69
chan->vblank.offset |= data;
drivers/gpu/drm/nouveau/nvkm/engine/sw/gf100.c
72
chan->vblank.value = data;
drivers/gpu/drm/nouveau/nvkm/engine/sw/gf100.c
76
nvkm_event_ntfy_allow(&chan->vblank.notify[data]);
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv04.c
112
struct nv04_sw_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv04.c
114
if (!(chan = kzalloc_obj(*chan)))
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv04.c
116
atomic_set(&chan->ref, 0);
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv04.c
117
*pobject = &chan->base.object;
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv04.c
119
return nvkm_sw_chan_ctor(&nv04_sw_chan, sw, fifo, oclass, &chan->base);
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv04.c
46
struct nv04_sw_chan *chan = nv04_sw_chan(nvsw->chan);
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv04.c
53
args->v0.ref = atomic_read(&chan->ref);
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv04.c
77
nv04_nvsw_new(struct nvkm_sw_chan *chan, const struct nvkm_oclass *oclass,
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv04.c
80
return nvkm_nvsw_new_(&nv04_nvsw, chan, oclass, data, size, pobject);
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv04.c
90
struct nv04_sw_chan *chan = nv04_sw_chan(base);
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv04.c
94
atomic_set(&chan->ref, data);
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv10.c
42
struct nvkm_sw_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv10.c
44
if (!(chan = kzalloc_obj(*chan)))
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv10.c
46
*pobject = &chan->object;
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv10.c
48
return nvkm_sw_chan_ctor(&nv10_sw_chan, sw, fifo, oclass, chan);
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c
106
struct nv50_sw_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c
109
if (!(chan = kzalloc_obj(*chan)))
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c
111
*pobject = &chan->base.object;
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c
113
ret = nvkm_sw_chan_ctor(&nv50_sw_chan, sw, fifoch, oclass, &chan->base);
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c
119
nv50_sw_chan_vblsem_release, &chan->vblank.notify[i]);
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c
41
struct nv50_sw_chan *chan =
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c
42
container_of(notify, typeof(*chan), vblank.notify[notify->id]);
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c
43
struct nvkm_sw *sw = chan->base.sw;
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c
46
nvkm_wr32(device, 0x001704, chan->base.fifo->inst->addr >> 12);
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c
47
nvkm_wr32(device, 0x001710, 0x80000000 | chan->vblank.ctxdma);
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c
51
nvkm_wr32(device, 0x001570, chan->vblank.offset);
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c
52
nvkm_wr32(device, 0x001574, chan->vblank.value);
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c
54
nvkm_wr32(device, 0x060010, chan->vblank.offset);
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c
55
nvkm_wr32(device, 0x060014, chan->vblank.value);
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c
64
struct nv50_sw_chan *chan = nv50_sw_chan(base);
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c
65
struct nvkm_engine *engine = chan->base.object.engine;
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c
68
case 0x018c: chan->vblank.ctxdma = data; return true;
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c
69
case 0x0400: chan->vblank.offset = data; return true;
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c
70
case 0x0404: chan->vblank.value = data; return true;
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c
73
nvkm_event_ntfy_allow(&chan->vblank.notify[data]);
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c
86
struct nv50_sw_chan *chan = nv50_sw_chan(base);
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c
89
for (i = 0; i < ARRAY_SIZE(chan->vblank.notify); i++)
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c
90
nvkm_event_ntfy_del(&chan->vblank.notify[i]);
drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c
92
return chan;
drivers/gpu/drm/nouveau/nvkm/engine/sw/nvsw.c
39
return nvkm_uevent_add(uevent, &nvkm_nvsw(object)->chan->event, 0,
drivers/gpu/drm/nouveau/nvkm/engine/sw/nvsw.c
61
nvkm_nvsw_new_(const struct nvkm_nvsw_func *func, struct nvkm_sw_chan *chan,
drivers/gpu/drm/nouveau/nvkm/engine/sw/nvsw.c
73
nvsw->chan = chan;
drivers/gpu/drm/nouveau/nvkm/engine/sw/nvsw.c
82
nvkm_nvsw_new(struct nvkm_sw_chan *chan, const struct nvkm_oclass *oclass,
drivers/gpu/drm/nouveau/nvkm/engine/sw/nvsw.c
85
return nvkm_nvsw_new_(&nvkm_nvsw, chan, oclass, data, size, pobject);
drivers/gpu/drm/nouveau/nvkm/engine/sw/nvsw.h
10
struct nvkm_sw_chan *chan;
drivers/gpu/drm/nouveau/nvkm/engine/xtensa.c
65
u32 chan = nvkm_rd32(device, base + 0xc28);
drivers/gpu/drm/nouveau/nvkm/engine/xtensa.c
72
if (unk104 == 0x10001 && unk10c == 0x200 && chan && !intr) {
drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv50.c
140
struct nvkm_chan *chan;
drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv50.c
180
chan = nvkm_chan_get_inst(&device->fifo->engine, inst, &flags);
drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv50.c
186
chan ? chan->id : -1, inst,
drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv50.c
187
chan ? chan->name : "unknown",
drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv50.c
191
nvkm_chan_put(&chan, flags);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/ad10x.c
24
.fifo.chan = {
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/engine.c
37
nvkm_rm_engine_obj_new(struct nvkm_gsp_object *chan, int chid, const struct nvkm_oclass *oclass,
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/engine.c
40
struct nvkm_rm *rm = chan->client->gsp->rm;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/engine.c
53
ret = rm->api->ce->alloc(chan, handle, class, inst, &obj->rm);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/engine.c
56
ret = nvkm_gsp_rm_alloc(chan, handle, class, 0, &obj->rm);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/engine.c
59
ret = rm->api->nvdec->alloc(chan, handle, class, inst, &obj->rm);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/engine.c
62
ret = rm->api->nvenc->alloc(chan, handle, class, inst, &obj->rm);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/engine.c
65
ret = rm->api->nvjpg->alloc(chan, handle, class, inst, &obj->rm);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/engine.c
68
ret = rm->api->ofa->alloc(chan, handle, class, inst, &obj->rm);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/engine.c
90
struct nvkm_chan *chan = nvkm_uchan_chan(oclass->parent);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/engine.c
92
return nvkm_rm_engine_obj_new(&chan->rm.object, chan->id, oclass, pobject);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/engine.h
14
int nvkm_rm_engine_obj_new(struct nvkm_gsp_object *chan, int chid, const struct nvkm_oclass *,
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/ga100.c
15
.fifo.chan = {
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/ga1xx.c
24
.fifo.chan = {
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/gb10x.c
15
.fifo.chan = {
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/gb20x.c
25
.fifo.chan = {
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/gh100.c
15
.fifo.chan = {
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/gpu.h
29
} chan;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/gr.c
14
struct r535_gr_chan *chan = container_of(oclass->parent, typeof(*chan), object);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/gr.c
16
return nvkm_rm_engine_obj_new(&chan->chan->rm.object, chan->chan->id, oclass, pobject);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/gr.h
16
struct nvkm_chan *chan;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/gr.h
42
struct nvkm_gsp_object chan;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/ce.c
28
r535_ce_alloc(struct nvkm_gsp_object *chan, u32 handle, u32 class, int inst,
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/ce.c
33
args = nvkm_gsp_rm_alloc_get(chan, handle, class, sizeof(*args), ce);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
114
r535_curs_init(struct nvkm_disp_chan *chan)
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
116
const struct nvkm_rm_api *rmapi = chan->disp->rm.objcom.client->gsp->rm->api;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
120
ret = rmapi->disp->chan.set_pushbuf(chan->disp, chan->object.oclass, chan->head, NULL);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
124
args = nvkm_gsp_rm_alloc_get(&chan->disp->rm.object,
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
125
(chan->object.oclass << 16) | chan->head,
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
126
chan->object.oclass, sizeof(*args), &chan->rm.object);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
130
args->channelInstance = chan->head;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
132
return nvkm_gsp_rm_alloc_wr(&chan->rm.object, args);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
150
r535_dmac_bind(struct nvkm_disp_chan *chan, struct nvkm_object *object, u32 handle)
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
152
return nvkm_ramht_insert(chan->disp->ramht, object, chan->chid.user, -9, handle,
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
153
chan->chid.user << 25 |
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
154
(chan->disp->rm.client.object.handle & 0x3fff));
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
158
r535_dmac_fini(struct nvkm_disp_chan *chan)
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
160
struct nvkm_device *device = chan->disp->engine.subdev.device;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
161
const u32 uoff = (chan->chid.user - 1) * 0x1000;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
163
chan->suspend_put = nvkm_rd32(device, 0x690000 + uoff);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
164
r535_chan_fini(chan);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
1757
rm->user[1].chan = &r535_core;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
1761
rm->user[2].chan = &r535_wndw;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
1765
rm->user[3].chan = &r535_wimm;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
1769
rm->user[4].chan = &r535_curs;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
1790
.chan = {
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
185
r535_dmac_init(struct nvkm_disp_chan *chan)
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
187
const struct nvkm_rm_api *rmapi = chan->disp->rm.objcom.client->gsp->rm->api;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
190
ret = rmapi->disp->chan.set_pushbuf(chan->disp, chan->object.oclass, chan->head, chan->memory);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
194
return rmapi->disp->chan.dmac_alloc(chan->disp, chan->object.oclass, chan->head,
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
195
chan->suspend_put, &chan->rm.object);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
199
r535_dmac_push(struct nvkm_disp_chan *chan, u64 memory)
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
201
chan->memory = nvkm_umem_search(chan->object.client, memory);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
202
if (IS_ERR(chan->memory))
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
203
return PTR_ERR(chan->memory);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
240
r535_core_fini(struct nvkm_disp_chan *chan)
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
242
struct nvkm_device *device = chan->disp->engine.subdev.device;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
244
chan->suspend_put = nvkm_rd32(device, 0x680000);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
245
r535_chan_fini(chan);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
46
r535_chan_user(struct nvkm_disp_chan *chan, u64 *psize)
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
48
switch (chan->object.oclass & 0xff) {
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
50
case 0x7e: *psize = 0x01000; return 0x690000 + (chan->head * *psize);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
51
case 0x7b: *psize = 0x01000; return 0x6b0000 + (chan->head * *psize);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
52
case 0x7a: *psize = 0x01000; return 0x6d8000 + (chan->head * *psize);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
62
r535_chan_intr(struct nvkm_disp_chan *chan, bool en)
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
67
r535_chan_fini(struct nvkm_disp_chan *chan)
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c
69
nvkm_gsp_rm_free(&chan->rm.object);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
124
args->instanceMem.size = fifo->func->chan.func->inst->size;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
129
args->userdMem.size = fifo->func->chan.func->userd->size;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
150
return nvkm_gsp_rm_alloc_wr(chan, args);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
154
r535_chan_ramfc_write(struct nvkm_chan *chan, u64 offset, u64 length, u32 devm, bool priv)
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
156
struct nvkm_fifo *fifo = chan->cgrp->runl->fifo;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
169
nvkm_runl_foreach_engn(engn, chan->cgrp->runl) {
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
177
chan->rm.mthdbuf.ptr = dma_alloc_coherent(fifo->engine.subdev.device->dev,
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
179
&chan->rm.mthdbuf.addr, GFP_KERNEL);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
180
if (!chan->rm.mthdbuf.ptr)
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
183
ret = rmapi->fifo->chan.alloc(&chan->vmm->rm.device, NVKM_RM_CHAN(chan->id),
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
184
eT, chan->runq, priv, chan->id, chan->inst->addr,
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
185
nvkm_memory_addr(chan->userd.mem) + chan->userd.base,
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
186
chan->rm.mthdbuf.addr, chan->vmm, offset, length,
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
187
&chan->rm.object);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
197
ctrl = nvkm_gsp_rm_ctrl_get(&chan->rm.object,
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
204
ret = nvkm_gsp_rm_ctrl_wr(&chan->rm.object, ctrl);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
209
ctrl = nvkm_gsp_rm_ctrl_get(&chan->rm.object,
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
215
ret = nvkm_gsp_rm_ctrl_wr(&chan->rm.object, ctrl);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
256
r535_gr_ctor(struct nvkm_engn *engn, struct nvkm_vctx *vctx, struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
266
chan->rm.grctx = vctx;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
277
r535_flcn_bind(struct nvkm_engn *engn, struct nvkm_vctx *vctx, struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
279
struct nvkm_gsp_client *client = &chan->vmm->rm.client;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
282
ctrl = nvkm_gsp_rm_ctrl_get(&chan->vmm->rm.device.subdevice,
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
288
ctrl->hObject = chan->rm.object.handle;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
293
ctrl->ChID = chan->id;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
295
return nvkm_gsp_rm_ctrl_wr(&chan->vmm->rm.device.subdevice, ctrl);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
299
r535_flcn_ctor(struct nvkm_engn *engn, struct nvkm_vctx *vctx, struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
319
return r535_flcn_bind(engn, vctx, chan);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
347
struct nvkm_chan *chan;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
350
chan = nvkm_chan_get_chid(&fifo->engine, chid, &flags);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
351
if (!chan) {
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
356
nvkm_chan_error(chan, false);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
357
nvkm_chan_put(&chan, flags);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
42
r535_chan_doorbell_handle(struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
44
struct nvkm_gsp *gsp = chan->rm.object.client->gsp;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
46
return gsp->rm->gpu->fifo.chan.doorbell_handle(chan);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
50
r535_chan_stop(struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
55
r535_chan_start(struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
60
r535_chan_ramfc_clear(struct nvkm_chan *chan)
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
600
rm->chan.user.oclass = gpu->fifo.chan.class;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
601
rm->chan.func = &r535_chan;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
614
.chan = {
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
62
struct nvkm_fifo *fifo = chan->cgrp->runl->fifo;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
64
nvkm_gsp_rm_free(&chan->rm.object);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
67
chan->rm.mthdbuf.ptr, chan->rm.mthdbuf.addr);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
69
nvkm_cgrp_vctx_put(chan->cgrp, &chan->rm.grctx);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
78
struct nvkm_gsp_object *chan)
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/fifo.c
87
fifo->func->chan.user.oclass, sizeof(*args), chan);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gr.c
143
r535_gr_chan_new(struct nvkm_gr *base, struct nvkm_chan *chan, const struct nvkm_oclass *oclass,
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gr.c
155
grc->vmm = nvkm_vmm_ref(chan->vmm);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gr.c
156
grc->chan = chan;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gr.c
159
ret = r535_gr_promote_ctx(gr, false, grc->vmm, grc->mem, grc->vma, &chan->rm.object);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gr.c
285
struct nvkm_gsp_object chan;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gr.c
304
ret = rm->api->fifo->chan.alloc(&golden.vmm->rm.device, NVKM_RM_CHAN(0),
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gr.c
309
golden.vmm, 0, 0x1000, &golden.chan);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gr.c
323
ret = r535_gr_promote_ctx(gr, true, golden.vmm, gr->ctxbuf_mem, golden.vma, &golden.chan);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gr.c
328
ret = nvkm_gsp_rm_alloc(&golden.chan, NVKM_RM_THREED, rm->gpu->gr.class.threed, 0, &threed);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gr.c
335
nvkm_gsp_rm_free(&golden.chan);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gr.c
62
struct nvkm_gsp_object *chan)
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gr.c
75
ctrl->hObject = chan->handle;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/nvdec.c
27
r535_nvdec_alloc(struct nvkm_gsp_object *chan, u32 handle, u32 class, int inst,
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/nvdec.c
32
args = nvkm_gsp_rm_alloc_get(chan, handle, class, sizeof(*args), nvdec);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/nvenc.c
27
r535_nvenc_alloc(struct nvkm_gsp_object *chan, u32 handle, u32 class, int inst,
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/nvenc.c
32
args = nvkm_gsp_rm_alloc_get(chan, handle, class, sizeof(*args), nvenc);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/nvjpg.c
27
r535_nvjpg_alloc(struct nvkm_gsp_object *chan, u32 handle, u32 class, int inst,
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/nvjpg.c
32
args = nvkm_gsp_rm_alloc_get(chan, handle, class, sizeof(*args), nvjpg);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/ofa.c
27
r535_ofa_alloc(struct nvkm_gsp_object *chan, u32 handle, u32 class, int inst,
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/ofa.c
32
args = nvkm_gsp_rm_alloc_get(chan, handle, class, sizeof(*args), ofa);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r570/disp.c
259
.chan = {
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r570/fifo.c
214
.chan = {
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r570/fifo.c
23
struct nvkm_gsp_object *chan)
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r570/fifo.c
32
fifo->func->chan.user.oclass, sizeof(*args), chan);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r570/fifo.c
69
args->instanceMem.size = fifo->func->chan.func->inst->size;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r570/fifo.c
74
args->userdMem.size = fifo->func->chan.func->userd->size;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r570/fifo.c
95
return nvkm_gsp_rm_alloc_wr(chan, args);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r570/gr.c
133
ret = rm->api->fifo->chan.alloc(&gr->scrubber.vmm->rm.device, KGRAPHICS_SCRUBBER_HANDLE_CHANNEL,
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r570/gr.c
138
gr->scrubber.vmm, 0, 0x1000, &gr->scrubber.chan);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r570/gr.c
143
gr->scrubber.ctxbuf.vma, &gr->scrubber.chan);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r570/gr.c
147
ret = nvkm_gsp_rm_alloc(&gr->scrubber.chan, KGRAPHICS_SCRUBBER_HANDLE_3DOBJ,
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r570/gr.c
81
nvkm_gsp_rm_free(&gr->scrubber.chan);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/rm.h
103
} chan;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/rm.h
118
} chan;
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/rm.h
122
int (*alloc)(struct nvkm_gsp_object *chan, u32 handle, u32 class, int inst,
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/rm.h
171
struct nvkm_gsp_object *chan);
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/tu1xx.c
24
.fifo.chan = {
drivers/gpu/drm/omapdrm/dss/dispc.c
1121
int chan = 0, chan2 = 0;
drivers/gpu/drm/omapdrm/dss/dispc.c
1141
chan = 0;
drivers/gpu/drm/omapdrm/dss/dispc.c
1145
chan = 1;
drivers/gpu/drm/omapdrm/dss/dispc.c
1149
chan = 0;
drivers/gpu/drm/omapdrm/dss/dispc.c
1154
chan = 0;
drivers/gpu/drm/omapdrm/dss/dispc.c
1162
chan = 0;
drivers/gpu/drm/omapdrm/dss/dispc.c
1170
val = FLD_MOD(val, chan, shift, shift);
drivers/gpu/drm/radeon/atombios_dp.c
100
mutex_lock(&chan->mutex);
drivers/gpu/drm/radeon/atombios_dp.c
110
args.v1.ucChannelID = chan->rec.i2c_id;
drivers/gpu/drm/radeon/atombios_dp.c
113
args.v2.ucHPD_ID = chan->rec.hpd;
drivers/gpu/drm/radeon/atombios_dp.c
150
mutex_unlock(&chan->mutex);
drivers/gpu/drm/radeon/atombios_dp.c
161
struct radeon_i2c_chan *chan =
drivers/gpu/drm/radeon/atombios_dp.c
197
ret = radeon_process_aux_ch(chan,
drivers/gpu/drm/radeon/atombios_dp.c
213
ret = radeon_process_aux_ch(chan,
drivers/gpu/drm/radeon/atombios_dp.c
85
static int radeon_process_aux_ch(struct radeon_i2c_chan *chan,
drivers/gpu/drm/radeon/atombios_dp.c
90
struct drm_device *dev = chan->dev;
drivers/gpu/drm/radeon/atombios_i2c.c
36
static int radeon_process_i2c_ch(struct radeon_i2c_chan *chan,
drivers/gpu/drm/radeon/atombios_i2c.c
40
struct drm_device *dev = chan->dev;
drivers/gpu/drm/radeon/atombios_i2c.c
50
mutex_lock(&chan->mutex);
drivers/gpu/drm/radeon/atombios_i2c.c
79
args.ucLineNumber = chan->rec.i2c_id;
drivers/gpu/drm/radeon/atombios_i2c.c
95
mutex_unlock(&chan->mutex);
drivers/gpu/drm/radeon/radeon_dp_auxch.c
101
WREG32(chan->rec.mask_clk_reg, tmp);
drivers/gpu/drm/radeon/radeon_dp_auxch.c
107
tmp |= AUX_HPD_SEL(chan->rec.hpd);
drivers/gpu/drm/radeon/radeon_dp_auxch.c
198
mutex_unlock(&chan->mutex);
drivers/gpu/drm/radeon/radeon_dp_auxch.c
57
struct radeon_i2c_chan *chan =
drivers/gpu/drm/radeon/radeon_dp_auxch.c
59
struct drm_device *dev = chan->dev;
drivers/gpu/drm/radeon/radeon_dp_auxch.c
63
int instance = chan->rec.i2c_id & 0xf;
drivers/gpu/drm/radeon/radeon_dp_auxch.c
96
mutex_lock(&chan->mutex);
drivers/gpu/drm/radeon/radeon_dp_auxch.c
99
tmp = RREG32(chan->rec.mask_clk_reg);
drivers/gpu/drm/vc4/vc4_crtc.c
829
u32 chan = vc4_crtc->current_hvs_channel;
drivers/gpu/drm/vc4/vc4_crtc.c
836
current_dlist = VC4_GET_FIELD(HVS_READ(SCALER6_DISPX_DL(chan)),
drivers/gpu/drm/vc4/vc4_crtc.c
839
current_dlist = HVS_READ(SCALER_DISPLACTX(chan));
drivers/gpu/drm/vc4/vc4_crtc.c
854
vc4_hvs_unmask_underrun(hvs, chan);
drivers/gpu/drm/vc4/vc4_dsi.c
616
struct dma_chan *chan = dsi->reg_dma_chan;
drivers/gpu/drm/vc4/vc4_dsi.c
624
if (!chan) {
drivers/gpu/drm/vc4/vc4_dsi.c
631
tx = chan->device->device_prep_dma_memcpy(chan,
drivers/gpu/drm/vc4/vc4_dsi.c
646
ret = dma_sync_wait(chan, cookie);
drivers/gpu/drm/vc4/vc4_hdmi_phy.c
386
phy_get_channel_settings(enum vc4_hdmi_phy_channel chan,
drivers/gpu/drm/vc4/vc4_hdmi_phy.c
391
if (chan == PHY_LANE_CK)
drivers/gpu/drm/vc4/vc4_hdmi_phy.c
394
return &settings->channel[chan];
drivers/gpu/drm/vc4/vc4_hdmi_phy.c
933
vc6_phy_get_channel_settings(enum vc4_hdmi_phy_channel chan,
drivers/gpu/drm/vc4/vc4_hdmi_phy.c
938
if (chan == PHY_LANE_CK)
drivers/gpu/drm/vc4/vc4_hdmi_phy.c
941
return &settings->channel[chan];
drivers/gpu/drm/vc4/vc4_hvs.c
626
unsigned int chan = vc4_crtc_state->assigned_channel;
drivers/gpu/drm/vc4/vc4_hvs.c
637
HVS_WRITE(SCALER_DISPCTRLX(chan), 0);
drivers/gpu/drm/vc4/vc4_hvs.c
638
HVS_WRITE(SCALER_DISPCTRLX(chan), SCALER_DISPCTRLX_RESET);
drivers/gpu/drm/vc4/vc4_hvs.c
639
HVS_WRITE(SCALER_DISPCTRLX(chan), 0);
drivers/gpu/drm/vc4/vc4_hvs.c
647
dispbkgndx = HVS_READ(SCALER_DISPBKGNDX(chan));
drivers/gpu/drm/vc4/vc4_hvs.c
665
HVS_WRITE(SCALER_DISPCTRLX(chan), dispctrl);
drivers/gpu/drm/vc4/vc4_hvs.c
670
HVS_WRITE(SCALER_DISPBKGNDX(chan), dispbkgndx |
drivers/gpu/drm/vc4/vc4_hvs.c
690
unsigned int chan = vc4_crtc_state->assigned_channel;
drivers/gpu/drm/vc4/vc4_hvs.c
700
HVS_WRITE(SCALER6_DISPX_CTRL0(chan), SCALER6_DISPX_CTRL0_RESET);
drivers/gpu/drm/vc4/vc4_hvs.c
702
disp_ctrl1 = HVS_READ(SCALER6_DISPX_CTRL1(chan));
drivers/gpu/drm/vc4/vc4_hvs.c
704
HVS_WRITE(SCALER6_DISPX_CTRL1(chan),
drivers/gpu/drm/vc4/vc4_hvs.c
707
HVS_WRITE(SCALER6_DISPX_CTRL0(chan),
drivers/gpu/drm/vc4/vc4_hvs.c
720
static void __vc4_hvs_stop_channel(struct vc4_hvs *hvs, unsigned int chan)
drivers/gpu/drm/vc4/vc4_hvs.c
731
if (!(HVS_READ(SCALER_DISPCTRLX(chan)) & SCALER_DISPCTRLX_ENABLE))
drivers/gpu/drm/vc4/vc4_hvs.c
734
HVS_WRITE(SCALER_DISPCTRLX(chan), SCALER_DISPCTRLX_RESET);
drivers/gpu/drm/vc4/vc4_hvs.c
735
HVS_WRITE(SCALER_DISPCTRLX(chan), 0);
drivers/gpu/drm/vc4/vc4_hvs.c
738
WARN_ON_ONCE(HVS_READ(SCALER_DISPCTRLX(chan)) & SCALER_DISPCTRLX_RESET);
drivers/gpu/drm/vc4/vc4_hvs.c
740
WARN_ON_ONCE(VC4_GET_FIELD(HVS_READ(SCALER_DISPSTATX(chan)),
drivers/gpu/drm/vc4/vc4_hvs.c
744
WARN_ON_ONCE((HVS_READ(SCALER_DISPSTATX(chan)) &
drivers/gpu/drm/vc4/vc4_hvs.c
752
static void __vc6_hvs_stop_channel(struct vc4_hvs *hvs, unsigned int chan)
drivers/gpu/drm/vc4/vc4_hvs.c
763
if (!(HVS_READ(SCALER6_DISPX_CTRL0(chan)) & SCALER6_DISPX_CTRL0_ENB))
drivers/gpu/drm/vc4/vc4_hvs.c
766
HVS_WRITE(SCALER6_DISPX_CTRL0(chan),
drivers/gpu/drm/vc4/vc4_hvs.c
767
HVS_READ(SCALER6_DISPX_CTRL0(chan)) | SCALER6_DISPX_CTRL0_RESET);
drivers/gpu/drm/vc4/vc4_hvs.c
769
HVS_WRITE(SCALER6_DISPX_CTRL0(chan),
drivers/gpu/drm/vc4/vc4_hvs.c
770
HVS_READ(SCALER6_DISPX_CTRL0(chan)) & ~SCALER6_DISPX_CTRL0_ENB);
drivers/gpu/drm/vc4/vc4_hvs.c
772
WARN_ON_ONCE(VC4_GET_FIELD(HVS_READ(SCALER6_DISPX_STATUS(chan)),
drivers/gpu/drm/vc4/vc4_hvs.c
780
void vc4_hvs_stop_channel(struct vc4_hvs *hvs, unsigned int chan)
drivers/gpu/drm/vc4/vc4_hvs.c
785
__vc6_hvs_stop_channel(hvs, chan);
drivers/gpu/drm/vc4/vc4_hvs.c
787
__vc4_hvs_stop_channel(hvs, chan);
drivers/gpu/drm/vc4/vc4_hvs.c
921
unsigned int chan = vc4_state->assigned_channel;
drivers/gpu/drm/vc4/vc4_hvs.c
923
vc4_hvs_stop_channel(vc4->hvs, chan);
drivers/gpu/drm/xlnx/zynqmp_disp.c
101
struct dma_chan *chan;
drivers/gpu/drm/xlnx/zynqmp_disp.c
1067
dmaengine_terminate_sync(layer->dmas[i].chan);
drivers/gpu/drm/xlnx/zynqmp_disp.c
1114
dmaengine_slave_config(dma->chan, &config);
drivers/gpu/drm/xlnx/zynqmp_disp.c
1184
desc = dmaengine_prep_interleaved_dma(dma->chan, &dma->xt,
drivers/gpu/drm/xlnx/zynqmp_disp.c
1195
dma_async_issue_pending(dma->chan);
drivers/gpu/drm/xlnx/zynqmp_disp.c
1219
if (!dma->chan)
drivers/gpu/drm/xlnx/zynqmp_disp.c
1223
dmaengine_terminate_sync(dma->chan);
drivers/gpu/drm/xlnx/zynqmp_disp.c
1224
dma_release_channel(dma->chan);
drivers/gpu/drm/xlnx/zynqmp_disp.c
1262
dma->chan = dma_request_chan(disp->dev, dma_channel_name);
drivers/gpu/drm/xlnx/zynqmp_disp.c
1263
if (IS_ERR(dma->chan)) {
drivers/gpu/drm/xlnx/zynqmp_disp.c
1264
ret = dev_err_probe(disp->dev, PTR_ERR(dma->chan),
drivers/gpu/drm/xlnx/zynqmp_disp.c
1266
dma->chan = NULL;
drivers/gpu/drm/xlnx/zynqmp_disp.c
1438
dpsub->dma_align = 1 << layer->dmas[0].chan->device->copy_align;
drivers/gpu/ipu-v3/ipu-image-convert.c
1020
chan->ic_task, ctx,
drivers/gpu/ipu-v3/ipu-image-convert.c
1035
struct ipu_image_convert_chan *chan = ctx->chan;
drivers/gpu/ipu-v3/ipu-image-convert.c
1036
struct ipu_image_convert_priv *priv = chan->priv;
drivers/gpu/ipu-v3/ipu-image-convert.c
1062
chan->ic_task, ctx,
drivers/gpu/ipu-v3/ipu-image-convert.c
1111
struct ipu_image_convert_chan *chan = ctx->chan;
drivers/gpu/ipu-v3/ipu-image-convert.c
1112
struct ipu_image_convert_priv *priv = chan->priv;
drivers/gpu/ipu-v3/ipu-image-convert.c
1242
lockdep_assert_held(&ctx->chan->irqlock);
drivers/gpu/ipu-v3/ipu-image-convert.c
1255
struct ipu_image_convert_chan *chan = ctx->chan;
drivers/gpu/ipu-v3/ipu-image-convert.c
1256
struct ipu_image_convert_priv *priv = chan->priv;
drivers/gpu/ipu-v3/ipu-image-convert.c
1259
__func__, chan->ic_task, ctx, run);
drivers/gpu/ipu-v3/ipu-image-convert.c
1262
ipu_ic_task_disable(chan->ic);
drivers/gpu/ipu-v3/ipu-image-convert.c
1263
ipu_idmac_disable_channel(chan->in_chan);
drivers/gpu/ipu-v3/ipu-image-convert.c
1264
ipu_idmac_disable_channel(chan->out_chan);
drivers/gpu/ipu-v3/ipu-image-convert.c
1267
ipu_idmac_disable_channel(chan->rotation_in_chan);
drivers/gpu/ipu-v3/ipu-image-convert.c
1268
ipu_idmac_disable_channel(chan->rotation_out_chan);
drivers/gpu/ipu-v3/ipu-image-convert.c
1269
ipu_idmac_unlink(chan->out_chan, chan->rotation_in_chan);
drivers/gpu/ipu-v3/ipu-image-convert.c
1272
ipu_ic_disable(chan->ic);
drivers/gpu/ipu-v3/ipu-image-convert.c
1282
struct ipu_image_convert_chan *chan = ctx->chan;
drivers/gpu/ipu-v3/ipu-image-convert.c
1338
if ((channel == chan->out_chan ||
drivers/gpu/ipu-v3/ipu-image-convert.c
1339
channel == chan->rotation_out_chan) &&
drivers/gpu/ipu-v3/ipu-image-convert.c
1343
if (channel == chan->rotation_in_chan ||
drivers/gpu/ipu-v3/ipu-image-convert.c
1344
channel == chan->rotation_out_chan) {
drivers/gpu/ipu-v3/ipu-image-convert.c
1352
ipu_ic_task_idma_init(chan->ic, channel, width, height,
drivers/gpu/ipu-v3/ipu-image-convert.c
1368
struct ipu_image_convert_chan *chan = ctx->chan;
drivers/gpu/ipu-v3/ipu-image-convert.c
1369
struct ipu_image_convert_priv *priv = chan->priv;
drivers/gpu/ipu-v3/ipu-image-convert.c
1379
__func__, chan->ic_task, ctx, run, tile, dst_tile);
drivers/gpu/ipu-v3/ipu-image-convert.c
1406
ret = ipu_ic_task_init_rsc(chan->ic, &ctx->csc,
drivers/gpu/ipu-v3/ipu-image-convert.c
1418
init_idmac_channel(ctx, chan->in_chan, s_image,
drivers/gpu/ipu-v3/ipu-image-convert.c
1423
init_idmac_channel(ctx, chan->out_chan, d_image,
drivers/gpu/ipu-v3/ipu-image-convert.c
1427
init_idmac_channel(ctx, chan->rotation_in_chan, d_image,
drivers/gpu/ipu-v3/ipu-image-convert.c
1431
init_idmac_channel(ctx, chan->rotation_out_chan, d_image,
drivers/gpu/ipu-v3/ipu-image-convert.c
1435
ipu_idmac_link(chan->out_chan, chan->rotation_in_chan);
drivers/gpu/ipu-v3/ipu-image-convert.c
1438
init_idmac_channel(ctx, chan->out_chan, d_image,
drivers/gpu/ipu-v3/ipu-image-convert.c
1443
ipu_ic_enable(chan->ic);
drivers/gpu/ipu-v3/ipu-image-convert.c
1446
ipu_idmac_select_buffer(chan->in_chan, 0);
drivers/gpu/ipu-v3/ipu-image-convert.c
1447
ipu_idmac_select_buffer(chan->out_chan, 0);
drivers/gpu/ipu-v3/ipu-image-convert.c
1449
ipu_idmac_select_buffer(chan->rotation_out_chan, 0);
drivers/gpu/ipu-v3/ipu-image-convert.c
1451
ipu_idmac_select_buffer(chan->in_chan, 1);
drivers/gpu/ipu-v3/ipu-image-convert.c
1452
ipu_idmac_select_buffer(chan->out_chan, 1);
drivers/gpu/ipu-v3/ipu-image-convert.c
1454
ipu_idmac_select_buffer(chan->rotation_out_chan, 1);
drivers/gpu/ipu-v3/ipu-image-convert.c
1458
ipu_idmac_enable_channel(chan->in_chan);
drivers/gpu/ipu-v3/ipu-image-convert.c
1459
ipu_idmac_enable_channel(chan->out_chan);
drivers/gpu/ipu-v3/ipu-image-convert.c
1461
ipu_idmac_enable_channel(chan->rotation_in_chan);
drivers/gpu/ipu-v3/ipu-image-convert.c
1462
ipu_idmac_enable_channel(chan->rotation_out_chan);
drivers/gpu/ipu-v3/ipu-image-convert.c
1465
ipu_ic_task_enable(chan->ic);
drivers/gpu/ipu-v3/ipu-image-convert.c
1467
ipu_cpmem_dump(chan->in_chan);
drivers/gpu/ipu-v3/ipu-image-convert.c
1468
ipu_cpmem_dump(chan->out_chan);
drivers/gpu/ipu-v3/ipu-image-convert.c
1470
ipu_cpmem_dump(chan->rotation_in_chan);
drivers/gpu/ipu-v3/ipu-image-convert.c
1471
ipu_cpmem_dump(chan->rotation_out_chan);
drivers/gpu/ipu-v3/ipu-image-convert.c
1483
struct ipu_image_convert_chan *chan = ctx->chan;
drivers/gpu/ipu-v3/ipu-image-convert.c
1485
lockdep_assert_held(&chan->irqlock);
drivers/gpu/ipu-v3/ipu-image-convert.c
1495
chan->current_run = run;
drivers/gpu/ipu-v3/ipu-image-convert.c
1501
static void run_next(struct ipu_image_convert_chan *chan)
drivers/gpu/ipu-v3/ipu-image-convert.c
1503
struct ipu_image_convert_priv *priv = chan->priv;
drivers/gpu/ipu-v3/ipu-image-convert.c
1507
lockdep_assert_held(&chan->irqlock);
drivers/gpu/ipu-v3/ipu-image-convert.c
1509
list_for_each_entry_safe(run, tmp, &chan->pending_q, list) {
drivers/gpu/ipu-v3/ipu-image-convert.c
1514
__func__, chan->ic_task, run->ctx, run);
drivers/gpu/ipu-v3/ipu-image-convert.c
1528
list_add_tail(&run->list, &chan->done_q);
drivers/gpu/ipu-v3/ipu-image-convert.c
1529
chan->current_run = NULL;
drivers/gpu/ipu-v3/ipu-image-convert.c
1533
static void empty_done_q(struct ipu_image_convert_chan *chan)
drivers/gpu/ipu-v3/ipu-image-convert.c
1535
struct ipu_image_convert_priv *priv = chan->priv;
drivers/gpu/ipu-v3/ipu-image-convert.c
1539
spin_lock_irqsave(&chan->irqlock, flags);
drivers/gpu/ipu-v3/ipu-image-convert.c
1541
while (!list_empty(&chan->done_q)) {
drivers/gpu/ipu-v3/ipu-image-convert.c
1542
run = list_entry(chan->done_q.next,
drivers/gpu/ipu-v3/ipu-image-convert.c
155
struct ipu_image_convert_chan *chan;
drivers/gpu/ipu-v3/ipu-image-convert.c
1550
__func__, chan->ic_task, run->ctx, run, run->status);
drivers/gpu/ipu-v3/ipu-image-convert.c
1553
spin_unlock_irqrestore(&chan->irqlock, flags);
drivers/gpu/ipu-v3/ipu-image-convert.c
1555
spin_lock_irqsave(&chan->irqlock, flags);
drivers/gpu/ipu-v3/ipu-image-convert.c
1558
spin_unlock_irqrestore(&chan->irqlock, flags);
drivers/gpu/ipu-v3/ipu-image-convert.c
1567
struct ipu_image_convert_chan *chan = dev_id;
drivers/gpu/ipu-v3/ipu-image-convert.c
1568
struct ipu_image_convert_priv *priv = chan->priv;
drivers/gpu/ipu-v3/ipu-image-convert.c
1573
chan->ic_task);
drivers/gpu/ipu-v3/ipu-image-convert.c
1575
empty_done_q(chan);
drivers/gpu/ipu-v3/ipu-image-convert.c
1577
spin_lock_irqsave(&chan->irqlock, flags);
drivers/gpu/ipu-v3/ipu-image-convert.c
1583
list_for_each_entry(ctx, &chan->ctx_list, list) {
drivers/gpu/ipu-v3/ipu-image-convert.c
1587
__func__, chan->ic_task, ctx);
drivers/gpu/ipu-v3/ipu-image-convert.c
1592
spin_unlock_irqrestore(&chan->irqlock, flags);
drivers/gpu/ipu-v3/ipu-image-convert.c
1595
chan->ic_task);
drivers/gpu/ipu-v3/ipu-image-convert.c
1622
struct ipu_image_convert_chan *chan = ctx->chan;
drivers/gpu/ipu-v3/ipu-image-convert.c
1629
lockdep_assert_held(&chan->irqlock);
drivers/gpu/ipu-v3/ipu-image-convert.c
1632
chan->rotation_out_chan : chan->out_chan;
drivers/gpu/ipu-v3/ipu-image-convert.c
1669
ipu_cpmem_set_buffer(chan->in_chan, 0,
drivers/gpu/ipu-v3/ipu-image-convert.c
1676
ipu_cpmem_set_uv_offset(chan->in_chan,
drivers/gpu/ipu-v3/ipu-image-convert.c
1684
ipu_idmac_select_buffer(chan->in_chan, 0);
drivers/gpu/ipu-v3/ipu-image-convert.c
1693
ipu_cpmem_set_buffer(chan->in_chan, ctx->cur_buf_num,
drivers/gpu/ipu-v3/ipu-image-convert.c
1698
ipu_idmac_select_buffer(chan->in_chan, ctx->cur_buf_num);
drivers/gpu/ipu-v3/ipu-image-convert.c
1708
list_add_tail(&run->list, &chan->done_q);
drivers/gpu/ipu-v3/ipu-image-convert.c
1709
chan->current_run = NULL;
drivers/gpu/ipu-v3/ipu-image-convert.c
1710
run_next(chan);
drivers/gpu/ipu-v3/ipu-image-convert.c
1716
struct ipu_image_convert_chan *chan = data;
drivers/gpu/ipu-v3/ipu-image-convert.c
1717
struct ipu_image_convert_priv *priv = chan->priv;
drivers/gpu/ipu-v3/ipu-image-convert.c
1724
spin_lock_irqsave(&chan->irqlock, flags);
drivers/gpu/ipu-v3/ipu-image-convert.c
1727
run = chan->current_run;
drivers/gpu/ipu-v3/ipu-image-convert.c
1735
if (irq == chan->in_eof_irq) {
drivers/gpu/ipu-v3/ipu-image-convert.c
1737
} else if (irq == chan->out_eof_irq) {
drivers/gpu/ipu-v3/ipu-image-convert.c
1739
} else if (irq == chan->rot_in_eof_irq ||
drivers/gpu/ipu-v3/ipu-image-convert.c
1740
irq == chan->rot_out_eof_irq) {
drivers/gpu/ipu-v3/ipu-image-convert.c
1747
ctx->eof_mask |= (irq == chan->rot_in_eof_irq) ?
drivers/gpu/ipu-v3/ipu-image-convert.c
1763
spin_unlock_irqrestore(&chan->irqlock, flags);
drivers/gpu/ipu-v3/ipu-image-convert.c
1773
struct ipu_image_convert_chan *chan = ctx->chan;
drivers/gpu/ipu-v3/ipu-image-convert.c
1777
spin_lock_irqsave(&chan->irqlock, flags);
drivers/gpu/ipu-v3/ipu-image-convert.c
1779
run = chan->current_run;
drivers/gpu/ipu-v3/ipu-image-convert.c
1783
list_add_tail(&run->list, &chan->done_q);
drivers/gpu/ipu-v3/ipu-image-convert.c
1784
chan->current_run = NULL;
drivers/gpu/ipu-v3/ipu-image-convert.c
1785
run_next(chan);
drivers/gpu/ipu-v3/ipu-image-convert.c
1788
spin_unlock_irqrestore(&chan->irqlock, flags);
drivers/gpu/ipu-v3/ipu-image-convert.c
1790
empty_done_q(chan);
drivers/gpu/ipu-v3/ipu-image-convert.c
1793
static void release_ipu_resources(struct ipu_image_convert_chan *chan)
drivers/gpu/ipu-v3/ipu-image-convert.c
1795
if (chan->in_eof_irq >= 0)
drivers/gpu/ipu-v3/ipu-image-convert.c
1796
free_irq(chan->in_eof_irq, chan);
drivers/gpu/ipu-v3/ipu-image-convert.c
1797
if (chan->rot_in_eof_irq >= 0)
drivers/gpu/ipu-v3/ipu-image-convert.c
1798
free_irq(chan->rot_in_eof_irq, chan);
drivers/gpu/ipu-v3/ipu-image-convert.c
1799
if (chan->out_eof_irq >= 0)
drivers/gpu/ipu-v3/ipu-image-convert.c
1800
free_irq(chan->out_eof_irq, chan);
drivers/gpu/ipu-v3/ipu-image-convert.c
1801
if (chan->rot_out_eof_irq >= 0)
drivers/gpu/ipu-v3/ipu-image-convert.c
1802
free_irq(chan->rot_out_eof_irq, chan);
drivers/gpu/ipu-v3/ipu-image-convert.c
1804
if (!IS_ERR_OR_NULL(chan->in_chan))
drivers/gpu/ipu-v3/ipu-image-convert.c
1805
ipu_idmac_put(chan->in_chan);
drivers/gpu/ipu-v3/ipu-image-convert.c
1806
if (!IS_ERR_OR_NULL(chan->out_chan))
drivers/gpu/ipu-v3/ipu-image-convert.c
1807
ipu_idmac_put(chan->out_chan);
drivers/gpu/ipu-v3/ipu-image-convert.c
1808
if (!IS_ERR_OR_NULL(chan->rotation_in_chan))
drivers/gpu/ipu-v3/ipu-image-convert.c
1809
ipu_idmac_put(chan->rotation_in_chan);
drivers/gpu/ipu-v3/ipu-image-convert.c
1810
if (!IS_ERR_OR_NULL(chan->rotation_out_chan))
drivers/gpu/ipu-v3/ipu-image-convert.c
1811
ipu_idmac_put(chan->rotation_out_chan);
drivers/gpu/ipu-v3/ipu-image-convert.c
1812
if (!IS_ERR_OR_NULL(chan->ic))
drivers/gpu/ipu-v3/ipu-image-convert.c
1813
ipu_ic_put(chan->ic);
drivers/gpu/ipu-v3/ipu-image-convert.c
1815
chan->in_chan = chan->out_chan = chan->rotation_in_chan =
drivers/gpu/ipu-v3/ipu-image-convert.c
1816
chan->rotation_out_chan = NULL;
drivers/gpu/ipu-v3/ipu-image-convert.c
1817
chan->in_eof_irq = -1;
drivers/gpu/ipu-v3/ipu-image-convert.c
1818
chan->rot_in_eof_irq = -1;
drivers/gpu/ipu-v3/ipu-image-convert.c
1819
chan->out_eof_irq = -1;
drivers/gpu/ipu-v3/ipu-image-convert.c
1820
chan->rot_out_eof_irq = -1;
drivers/gpu/ipu-v3/ipu-image-convert.c
1823
static int get_eof_irq(struct ipu_image_convert_chan *chan,
drivers/gpu/ipu-v3/ipu-image-convert.c
1826
struct ipu_image_convert_priv *priv = chan->priv;
drivers/gpu/ipu-v3/ipu-image-convert.c
1831
ret = request_threaded_irq(irq, eof_irq, do_bh, 0, "ipu-ic", chan);
drivers/gpu/ipu-v3/ipu-image-convert.c
1840
static int get_ipu_resources(struct ipu_image_convert_chan *chan)
drivers/gpu/ipu-v3/ipu-image-convert.c
1842
const struct ipu_image_convert_dma_chan *dma = chan->dma_ch;
drivers/gpu/ipu-v3/ipu-image-convert.c
1843
struct ipu_image_convert_priv *priv = chan->priv;
drivers/gpu/ipu-v3/ipu-image-convert.c
1847
chan->ic = ipu_ic_get(priv->ipu, chan->ic_task);
drivers/gpu/ipu-v3/ipu-image-convert.c
1848
if (IS_ERR(chan->ic)) {
drivers/gpu/ipu-v3/ipu-image-convert.c
1850
ret = PTR_ERR(chan->ic);
drivers/gpu/ipu-v3/ipu-image-convert.c
1855
chan->in_chan = ipu_idmac_get(priv->ipu, dma->in);
drivers/gpu/ipu-v3/ipu-image-convert.c
1856
chan->out_chan = ipu_idmac_get(priv->ipu, dma->out);
drivers/gpu/ipu-v3/ipu-image-convert.c
1857
if (IS_ERR(chan->in_chan) || IS_ERR(chan->out_chan)) {
drivers/gpu/ipu-v3/ipu-image-convert.c
1863
chan->rotation_in_chan = ipu_idmac_get(priv->ipu, dma->rot_in);
drivers/gpu/ipu-v3/ipu-image-convert.c
1864
chan->rotation_out_chan = ipu_idmac_get(priv->ipu, dma->rot_out);
drivers/gpu/ipu-v3/ipu-image-convert.c
1865
if (IS_ERR(chan->rotation_in_chan) || IS_ERR(chan->rotation_out_chan)) {
drivers/gpu/ipu-v3/ipu-image-convert.c
1873
ret = get_eof_irq(chan, chan->in_chan);
drivers/gpu/ipu-v3/ipu-image-convert.c
1875
chan->in_eof_irq = -1;
drivers/gpu/ipu-v3/ipu-image-convert.c
1878
chan->in_eof_irq = ret;
drivers/gpu/ipu-v3/ipu-image-convert.c
1880
ret = get_eof_irq(chan, chan->rotation_in_chan);
drivers/gpu/ipu-v3/ipu-image-convert.c
1882
chan->rot_in_eof_irq = -1;
drivers/gpu/ipu-v3/ipu-image-convert.c
1885
chan->rot_in_eof_irq = ret;
drivers/gpu/ipu-v3/ipu-image-convert.c
1887
ret = get_eof_irq(chan, chan->out_chan);
drivers/gpu/ipu-v3/ipu-image-convert.c
1889
chan->out_eof_irq = -1;
drivers/gpu/ipu-v3/ipu-image-convert.c
1892
chan->out_eof_irq = ret;
drivers/gpu/ipu-v3/ipu-image-convert.c
1894
ret = get_eof_irq(chan, chan->rotation_out_chan);
drivers/gpu/ipu-v3/ipu-image-convert.c
1896
chan->rot_out_eof_irq = -1;
drivers/gpu/ipu-v3/ipu-image-convert.c
1899
chan->rot_out_eof_irq = ret;
drivers/gpu/ipu-v3/ipu-image-convert.c
1903
release_ipu_resources(chan);
drivers/gpu/ipu-v3/ipu-image-convert.c
1912
struct ipu_image_convert_priv *priv = ctx->chan->priv;
drivers/gpu/ipu-v3/ipu-image-convert.c
2063
struct ipu_image_convert_chan *chan;
drivers/gpu/ipu-v3/ipu-image-convert.c
2083
chan = &priv->chan[ic_task];
drivers/gpu/ipu-v3/ipu-image-convert.c
2090
chan->ic_task, ctx);
drivers/gpu/ipu-v3/ipu-image-convert.c
2092
ctx->chan = chan;
drivers/gpu/ipu-v3/ipu-image-convert.c
2217
spin_lock_irqsave(&chan->irqlock, flags);
drivers/gpu/ipu-v3/ipu-image-convert.c
2219
get_res = list_empty(&chan->ctx_list);
drivers/gpu/ipu-v3/ipu-image-convert.c
2221
list_add_tail(&ctx->list, &chan->ctx_list);
drivers/gpu/ipu-v3/ipu-image-convert.c
2223
spin_unlock_irqrestore(&chan->irqlock, flags);
drivers/gpu/ipu-v3/ipu-image-convert.c
2226
ret = get_ipu_resources(chan);
drivers/gpu/ipu-v3/ipu-image-convert.c
2235
spin_lock_irqsave(&chan->irqlock, flags);
drivers/gpu/ipu-v3/ipu-image-convert.c
2237
spin_unlock_irqrestore(&chan->irqlock, flags);
drivers/gpu/ipu-v3/ipu-image-convert.c
2253
struct ipu_image_convert_chan *chan;
drivers/gpu/ipu-v3/ipu-image-convert.c
2263
chan = ctx->chan;
drivers/gpu/ipu-v3/ipu-image-convert.c
2264
priv = chan->priv;
drivers/gpu/ipu-v3/ipu-image-convert.c
2267
chan->ic_task, ctx, run);
drivers/gpu/ipu-v3/ipu-image-convert.c
2271
spin_lock_irqsave(&chan->irqlock, flags);
drivers/gpu/ipu-v3/ipu-image-convert.c
2278
list_add_tail(&run->list, &chan->pending_q);
drivers/gpu/ipu-v3/ipu-image-convert.c
228
struct ipu_image_convert_chan chan[IC_NUM_TASKS];
drivers/gpu/ipu-v3/ipu-image-convert.c
2280
if (!chan->current_run) {
drivers/gpu/ipu-v3/ipu-image-convert.c
2283
chan->current_run = NULL;
drivers/gpu/ipu-v3/ipu-image-convert.c
2286
spin_unlock_irqrestore(&chan->irqlock, flags);
drivers/gpu/ipu-v3/ipu-image-convert.c
2294
struct ipu_image_convert_chan *chan = ctx->chan;
drivers/gpu/ipu-v3/ipu-image-convert.c
2295
struct ipu_image_convert_priv *priv = chan->priv;
drivers/gpu/ipu-v3/ipu-image-convert.c
2300
spin_lock_irqsave(&chan->irqlock, flags);
drivers/gpu/ipu-v3/ipu-image-convert.c
2303
list_for_each_entry_safe(run, tmp, &chan->pending_q, list) {
drivers/gpu/ipu-v3/ipu-image-convert.c
2307
list_move_tail(&run->list, &chan->done_q);
drivers/gpu/ipu-v3/ipu-image-convert.c
2310
run_count = get_run_count(ctx, &chan->done_q);
drivers/gpu/ipu-v3/ipu-image-convert.c
2311
active_run = (chan->current_run && chan->current_run->ctx == ctx) ?
drivers/gpu/ipu-v3/ipu-image-convert.c
2312
chan->current_run : NULL;
drivers/gpu/ipu-v3/ipu-image-convert.c
2319
spin_unlock_irqrestore(&chan->irqlock, flags);
drivers/gpu/ipu-v3/ipu-image-convert.c
2324
__func__, chan->ic_task, ctx);
drivers/gpu/ipu-v3/ipu-image-convert.c
2329
empty_done_q(chan);
drivers/gpu/ipu-v3/ipu-image-convert.c
2335
__func__, chan->ic_task, run_count);
drivers/gpu/ipu-v3/ipu-image-convert.c
2355
struct ipu_image_convert_chan *chan = ctx->chan;
drivers/gpu/ipu-v3/ipu-image-convert.c
2356
struct ipu_image_convert_priv *priv = chan->priv;
drivers/gpu/ipu-v3/ipu-image-convert.c
2364
chan->ic_task, ctx);
drivers/gpu/ipu-v3/ipu-image-convert.c
2366
spin_lock_irqsave(&chan->irqlock, flags);
drivers/gpu/ipu-v3/ipu-image-convert.c
2370
put_res = list_empty(&chan->ctx_list);
drivers/gpu/ipu-v3/ipu-image-convert.c
2372
spin_unlock_irqrestore(&chan->irqlock, flags);
drivers/gpu/ipu-v3/ipu-image-convert.c
2375
release_ipu_resources(chan);
drivers/gpu/ipu-v3/ipu-image-convert.c
2439
struct ipu_image_convert_chan *chan = &priv->chan[i];
drivers/gpu/ipu-v3/ipu-image-convert.c
2441
chan->ic_task = i;
drivers/gpu/ipu-v3/ipu-image-convert.c
2442
chan->priv = priv;
drivers/gpu/ipu-v3/ipu-image-convert.c
2443
chan->dma_ch = &image_convert_dma_chan[i];
drivers/gpu/ipu-v3/ipu-image-convert.c
2444
chan->in_eof_irq = -1;
drivers/gpu/ipu-v3/ipu-image-convert.c
2445
chan->rot_in_eof_irq = -1;
drivers/gpu/ipu-v3/ipu-image-convert.c
2446
chan->out_eof_irq = -1;
drivers/gpu/ipu-v3/ipu-image-convert.c
2447
chan->rot_out_eof_irq = -1;
drivers/gpu/ipu-v3/ipu-image-convert.c
2449
spin_lock_init(&chan->irqlock);
drivers/gpu/ipu-v3/ipu-image-convert.c
2450
INIT_LIST_HEAD(&chan->ctx_list);
drivers/gpu/ipu-v3/ipu-image-convert.c
2451
INIT_LIST_HEAD(&chan->pending_q);
drivers/gpu/ipu-v3/ipu-image-convert.c
2452
INIT_LIST_HEAD(&chan->done_q);
drivers/gpu/ipu-v3/ipu-image-convert.c
343
struct ipu_image_convert_chan *chan = ctx->chan;
drivers/gpu/ipu-v3/ipu-image-convert.c
344
struct ipu_image_convert_priv *priv = chan->priv;
drivers/gpu/ipu-v3/ipu-image-convert.c
348
chan->ic_task, ctx,
drivers/gpu/ipu-v3/ipu-image-convert.c
447
dev_dbg(ctx->chan->priv->ipu->dev,
drivers/gpu/ipu-v3/ipu-image-convert.c
500
struct device *dev = ctx->chan->priv->ipu->dev;
drivers/gpu/ipu-v3/ipu-image-convert.c
720
struct device *dev = ctx->chan->priv->ipu->dev;
drivers/gpu/ipu-v3/ipu-image-convert.c
843
struct ipu_image_convert_chan *chan = ctx->chan;
drivers/gpu/ipu-v3/ipu-image-convert.c
844
struct ipu_image_convert_priv *priv = chan->priv;
drivers/gpu/ipu-v3/ipu-image-convert.c
880
chan->ic_task, ctx,
drivers/gpu/ipu-v3/ipu-image-convert.c
906
struct ipu_image_convert_chan *chan = ctx->chan;
drivers/gpu/ipu-v3/ipu-image-convert.c
907
struct ipu_image_convert_priv *priv = chan->priv;
drivers/gpu/ipu-v3/ipu-image-convert.c
939
chan->ic_task, ctx, src_col, src_row, dst_col, dst_row);
drivers/gpu/ipu-v3/ipu-image-convert.c
973
struct ipu_image_convert_chan *chan = ctx->chan;
drivers/gpu/ipu-v3/ipu-image-convert.c
974
struct ipu_image_convert_priv *priv = chan->priv;
drivers/gpu/ipu-v3/ipu-prg.c
198
prg->chan[prg_chan].used_pre = 0;
drivers/gpu/ipu-v3/ipu-prg.c
208
prg->chan[prg_chan].used_pre = i;
drivers/gpu/ipu-v3/ipu-prg.c
236
struct ipu_prg_channel *chan = &prg->chan[prg_chan];
drivers/gpu/ipu-v3/ipu-prg.c
238
ipu_pre_put(prg->pres[chan->used_pre]);
drivers/gpu/ipu-v3/ipu-prg.c
239
chan->used_pre = -1;
drivers/gpu/ipu-v3/ipu-prg.c
246
struct ipu_prg_channel *chan;
drivers/gpu/ipu-v3/ipu-prg.c
252
chan = &prg->chan[prg_chan];
drivers/gpu/ipu-v3/ipu-prg.c
253
if (!chan->enabled)
drivers/gpu/ipu-v3/ipu-prg.c
269
chan->enabled = false;
drivers/gpu/ipu-v3/ipu-prg.c
280
struct ipu_prg_channel *chan;
drivers/gpu/ipu-v3/ipu-prg.c
287
chan = &prg->chan[prg_chan];
drivers/gpu/ipu-v3/ipu-prg.c
289
if (chan->enabled) {
drivers/gpu/ipu-v3/ipu-prg.c
290
ipu_pre_update(prg->pres[chan->used_pre], modifier, *eba);
drivers/gpu/ipu-v3/ipu-prg.c
298
ipu_pre_configure(prg->pres[chan->used_pre],
drivers/gpu/ipu-v3/ipu-prg.c
313
val = ipu_pre_get_baddr(prg->pres[chan->used_pre]);
drivers/gpu/ipu-v3/ipu-prg.c
337
chan->enabled = true;
drivers/gpu/ipu-v3/ipu-prg.c
346
struct ipu_prg_channel *chan;
drivers/gpu/ipu-v3/ipu-prg.c
351
chan = &prg->chan[prg_chan];
drivers/gpu/ipu-v3/ipu-prg.c
352
WARN_ON(!chan->enabled);
drivers/gpu/ipu-v3/ipu-prg.c
354
return ipu_pre_update_pending(prg->pres[chan->used_pre]);
drivers/gpu/ipu-v3/ipu-prg.c
78
struct ipu_prg_channel chan[3];
drivers/hid/hid-mcp2221.c
1109
struct iio_chan_spec const *chan,
drivers/hid/hid-mcp2221.c
1146
struct iio_chan_spec *chan = &mcp->iio_channels[cnt];
drivers/hid/hid-mcp2221.c
1150
chan->address = idx - 1;
drivers/hid/hid-mcp2221.c
1151
chan->channel = cnt++;
drivers/hid/hid-mcp2221.c
1159
chan->output = 1;
drivers/hid/hid-mcp2221.c
1166
chan->type = IIO_VOLTAGE;
drivers/hid/hid-mcp2221.c
1167
chan->indexed = 1;
drivers/hid/hid-mcp2221.c
1168
chan->info_mask_separate = BIT(IIO_CHAN_INFO_RAW);
drivers/hid/hid-mcp2221.c
1169
chan->info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE);
drivers/hid/hid-mcp2221.c
1170
chan->scan_index = -1;
drivers/hid/intel-thc-hid/intel-thc/intel-thc-dma.c
414
int ret, chan;
drivers/hid/intel-thc-hid/intel-thc/intel-thc-dma.c
416
for (chan = 0; chan < MAX_THC_DMA_CHANNEL; chan++) {
drivers/hid/intel-thc-hid/intel-thc/intel-thc-dma.c
417
ret = setup_dma_buffers(dev, &dev->dma_ctx->dma_config[chan],
drivers/hid/intel-thc-hid/intel-thc/intel-thc-dma.c
418
dev->dma_ctx->dma_config[chan].dir);
drivers/hid/intel-thc-hid/intel-thc/intel-thc-dma.c
420
dev_err_once(dev->dev, "DMA setup failed for DMA channel %d\n", chan);
drivers/hid/intel-thc-hid/intel-thc/intel-thc-dma.c
428
while (chan--)
drivers/hid/intel-thc-hid/intel-thc/intel-thc-dma.c
429
release_dma_buffers(dev, &dev->dma_ctx->dma_config[chan]);
drivers/hid/intel-thc-hid/intel-thc/intel-thc-dma.c
442
int chan;
drivers/hid/intel-thc-hid/intel-thc/intel-thc-dma.c
444
for (chan = 0; chan < MAX_THC_DMA_CHANNEL; chan++)
drivers/hid/intel-thc-hid/intel-thc/intel-thc-dma.c
445
release_dma_buffers(dev, &dev->dma_ctx->dma_config[chan]);
drivers/hid/intel-thc-hid/intel-thc/intel-thc-dma.c
485
int chan;
drivers/hid/intel-thc-hid/intel-thc/intel-thc-dma.c
494
for (chan = 0; chan < MAX_THC_DMA_CHANNEL; chan++) {
drivers/hid/intel-thc-hid/intel-thc/intel-thc-dma.c
496
dma_ctx->dma_config[chan].prd_tbls_dma_handle,
drivers/hid/intel-thc-hid/intel-thc/intel-thc-dma.c
497
&dma_ctx->dma_config[chan]);
drivers/hid/intel-thc-hid/intel-thc/intel-thc-dma.c
500
dma_ctx->dma_config[chan].prd_tbl_num - 1,
drivers/hid/intel-thc-hid/intel-thc/intel-thc-dma.c
501
&dma_ctx->dma_config[chan]);
drivers/hid/intel-thc-hid/intel-thc/intel-thc-dma.c
520
int chan;
drivers/hid/intel-thc-hid/intel-thc/intel-thc-dma.c
522
for (chan = 0; chan < MAX_THC_DMA_CHANNEL; chan++) {
drivers/hid/intel-thc-hid/intel-thc/intel-thc-dma.c
523
dma_set_prd_base_addr(dev, 0, &dev->dma_ctx->dma_config[chan]);
drivers/hid/intel-thc-hid/intel-thc/intel-thc-dma.c
524
dma_clear_prd_control(dev, &dev->dma_ctx->dma_config[chan]);
drivers/hv/vmbus_drv.c
1618
ssize_t (*show)(struct vmbus_channel *chan, char *buf);
drivers/hv/vmbus_drv.c
1619
ssize_t (*store)(struct vmbus_channel *chan,
drivers/hv/vmbus_drv.c
1637
struct vmbus_channel *chan
drivers/hv/vmbus_drv.c
1643
return attribute->show(chan, buf);
drivers/hv/vmbus_drv.c
1652
struct vmbus_channel *chan
drivers/hv/vmbus_drv.c
1658
return attribute->store(chan, buf, count);
drivers/hwmon/adm1031.c
112
int chan;
drivers/hwmon/adm1031.c
121
for (chan = 0;
drivers/hwmon/adm1031.c
122
chan < ((data->chip_type == adm1031) ? 3 : 2); chan++) {
drivers/hwmon/adm1031.c
126
adm1031_read_value(client, ADM1031_REG_TEMP(chan));
drivers/hwmon/adm1031.c
127
data->ext_temp[chan] =
drivers/hwmon/adm1031.c
130
adm1031_read_value(client, ADM1031_REG_TEMP(chan));
drivers/hwmon/adm1031.c
132
data->ext_temp[chan] =
drivers/hwmon/adm1031.c
138
ADM1031_REG_TEMP(chan));
drivers/hwmon/adm1031.c
146
data->temp[chan] = newh;
drivers/hwmon/adm1031.c
148
data->temp_offset[chan] =
drivers/hwmon/adm1031.c
150
ADM1031_REG_TEMP_OFFSET(chan));
drivers/hwmon/adm1031.c
151
data->temp_min[chan] =
drivers/hwmon/adm1031.c
153
ADM1031_REG_TEMP_MIN(chan));
drivers/hwmon/adm1031.c
154
data->temp_max[chan] =
drivers/hwmon/adm1031.c
156
ADM1031_REG_TEMP_MAX(chan));
drivers/hwmon/adm1031.c
157
data->temp_crit[chan] =
drivers/hwmon/adm1031.c
159
ADM1031_REG_TEMP_CRIT(chan));
drivers/hwmon/adm1031.c
160
data->auto_temp[chan] =
drivers/hwmon/adm1031.c
162
ADM1031_REG_AUTO_TEMP(chan));
drivers/hwmon/adm1031.c
174
for (chan = 0; chan < (data->chip_type == adm1030 ? 1 : 2);
drivers/hwmon/adm1031.c
175
chan++) {
drivers/hwmon/adm1031.c
176
data->fan_div[chan] =
drivers/hwmon/adm1031.c
178
ADM1031_REG_FAN_DIV(chan));
drivers/hwmon/adm1031.c
179
data->fan_min[chan] =
drivers/hwmon/adm1031.c
181
ADM1031_REG_FAN_MIN(chan));
drivers/hwmon/adm1031.c
182
data->fan[chan] =
drivers/hwmon/adm1031.c
184
ADM1031_REG_FAN_SPEED(chan));
drivers/hwmon/adm1031.c
185
data->pwm[chan] =
drivers/hwmon/adm1031.c
187
ADM1031_REG_PWM) >> (4 * chan)) & 0x0f;
drivers/hwmon/adm1031.c
285
get_fan_auto_nearest(struct adm1031_data *data, int chan, u8 val, u8 reg)
drivers/hwmon/adm1031.c
290
(*data->chan_select_table)[FAN_CHAN_FROM_REG(reg)][chan ? 0 : 1];
drivers/hwmon/adm1031.c
296
if ((val == (*data->chan_select_table)[i][chan]) &&
drivers/hwmon/adm1031.c
297
((*data->chan_select_table)[i][chan ? 0 : 1] ==
drivers/hwmon/adm1031.c
302
} else if (val == (*data->chan_select_table)[i][chan] &&
drivers/hwmon/adm1031.c
50
#define ADM1031_CONF2_TEMP_ENABLE(chan) (0x10 << (chan))
drivers/hwmon/adm1031.c
514
static int trust_fan_readings(struct adm1031_data *data, int chan)
drivers/hwmon/adm1031.c
525
res = data->temp[chan+1] >=
drivers/hwmon/adm1031.c
526
AUTO_TEMP_MIN_FROM_REG_DEG(data->auto_temp[chan+1]);
drivers/hwmon/adm1031.c
550
res = data->pwm[chan] > 0;
drivers/hwmon/iio_hwmon.c
41
struct iio_channel *chan = &state->channels[sattr->index];
drivers/hwmon/iio_hwmon.c
43
return iio_read_channel_label(chan, buf);
drivers/hwmon/iio_hwmon.c
59
struct iio_channel *chan = &state->channels[sattr->index];
drivers/hwmon/iio_hwmon.c
62
ret = iio_get_channel_type(chan, &type);
drivers/hwmon/iio_hwmon.c
68
ret = iio_read_channel_processed_scale(chan, &result, 1000);
drivers/hwmon/iio_hwmon.c
70
ret = iio_read_channel_processed(chan, &result);
drivers/hwmon/lochnagar-hwmon.c
136
static int request_data(struct regmap *regmap, int chan, u32 *data)
drivers/hwmon/lochnagar-hwmon.c
143
chan << LOCHNAGAR2_IMON_CH_SEL_SHIFT);
drivers/hwmon/lochnagar-hwmon.c
168
static int read_sensor(struct device *dev, int chan,
drivers/hwmon/lochnagar-hwmon.c
177
ret = do_measurement(regmap, chan, mode, nsamples);
drivers/hwmon/lochnagar-hwmon.c
183
ret = request_data(regmap, chan, &data);
drivers/hwmon/lochnagar-hwmon.c
193
static int read_power(struct device *dev, int chan, long *val)
drivers/hwmon/lochnagar-hwmon.c
196
int nsamples = priv->power_nsamples[chan];
drivers/hwmon/lochnagar-hwmon.c
200
if (!strcmp("SYSVDD", lochnagar_chan_names[chan])) {
drivers/hwmon/lochnagar-hwmon.c
203
ret = read_sensor(dev, chan, LN2_VOLT, 1, LN2_PWR_UNITS, val);
drivers/hwmon/lochnagar-hwmon.c
210
ret = read_sensor(dev, chan, LN2_CURR, nsamples, LN2_PWR_UNITS, val);
drivers/hwmon/lochnagar-hwmon.c
227
u32 attr, int chan)
drivers/hwmon/lochnagar-hwmon.c
231
if (!strcmp("SYSVDD", lochnagar_chan_names[chan]))
drivers/hwmon/lochnagar-hwmon.c
246
u32 attr, int chan, long *val)
drivers/hwmon/lochnagar-hwmon.c
253
return read_sensor(dev, chan, LN2_VOLT, 1, LN2_VOLT_UNITS, val);
drivers/hwmon/lochnagar-hwmon.c
255
return read_sensor(dev, chan, LN2_CURR, 1, LN2_CURR_UNITS, val);
drivers/hwmon/lochnagar-hwmon.c
257
return read_sensor(dev, chan, LN2_TEMP, 1, LN2_TEMP_UNITS, val);
drivers/hwmon/lochnagar-hwmon.c
261
return read_power(dev, chan, val);
drivers/hwmon/lochnagar-hwmon.c
263
interval = priv->power_nsamples[chan] * LN2_SAMPLE_US;
drivers/hwmon/lochnagar-hwmon.c
276
int chan, const char **str)
drivers/hwmon/lochnagar-hwmon.c
282
*str = lochnagar_chan_names[chan];
drivers/hwmon/lochnagar-hwmon.c
290
u32 attr, int chan, long val)
drivers/hwmon/lochnagar-hwmon.c
300
priv->power_nsamples[chan] = val;
drivers/hwmon/lochnagar-hwmon.c
85
static int do_measurement(struct regmap *regmap, int chan,
drivers/hwmon/lochnagar-hwmon.c
91
chan = 1 << (chan + LOCHNAGAR2_IMON_MEASURED_CHANNELS_SHIFT);
drivers/hwmon/lochnagar-hwmon.c
94
LOCHNAGAR2_IMON_ENA_MASK | chan | mode);
drivers/hwmon/ltc4283.c
1042
u32 chan = c - LTC4283_CHAN_ADI_1, bit;
drivers/hwmon/ltc4283.c
1044
ret = regmap_read(st->map, LTC4283_ADC_SELECT(chan), &reg_val);
drivers/hwmon/ltc4283.c
1048
bit = LTC4283_ADC_SELECT_MASK(chan);
drivers/hwmon/ltc4283.c
1436
u32 chan = LTC4283_CHAN_DRNS - LTC4283_CHAN_ADI_1;
drivers/hwmon/ltc4283.c
1444
ret = regmap_clear_bits(st->map, LTC4283_ADC_SELECT(chan),
drivers/hwmon/ltc4283.c
1445
LTC4283_ADC_SELECT_MASK(chan));
drivers/hwmon/macsmc-hwmon.c
271
static int macsmc_hwmon_read_fan(struct macsmc_hwmon *hwmon, u32 attr, int chan,
drivers/hwmon/macsmc-hwmon.c
277
&hwmon->fan.fans[chan].now, 1, val);
drivers/hwmon/macsmc-hwmon.c
280
&hwmon->fan.fans[chan].min, 1, val);
drivers/hwmon/macsmc-hwmon.c
283
&hwmon->fan.fans[chan].max, 1, val);
drivers/hwmon/macsmc-hwmon.c
286
&hwmon->fan.fans[chan].set, 1, val);
drivers/hwmon/max197.c
214
#define MAX197_SENSOR_DEVICE_ATTR_CH(chan) \
drivers/hwmon/max197.c
215
static SENSOR_DEVICE_ATTR(in##chan##_input, S_IRUGO, \
drivers/hwmon/max197.c
216
max197_show_input, NULL, chan); \
drivers/hwmon/max197.c
217
static SENSOR_DEVICE_ATTR_2(in##chan##_min, S_IRUGO | S_IWUSR, \
drivers/hwmon/max197.c
220
true, chan); \
drivers/hwmon/max197.c
221
static SENSOR_DEVICE_ATTR_2(in##chan##_max, S_IRUGO | S_IWUSR, \
drivers/hwmon/max197.c
224
false, chan)
drivers/hwmon/max197.c
226
#define MAX197_SENSOR_DEV_ATTR_IN(chan) \
drivers/hwmon/max197.c
227
&sensor_dev_attr_in##chan##_input.dev_attr.attr, \
drivers/hwmon/max197.c
228
&sensor_dev_attr_in##chan##_max.dev_attr.attr, \
drivers/hwmon/max197.c
229
&sensor_dev_attr_in##chan##_min.dev_attr.attr
drivers/hwmon/mc33xs2410_hwmon.c
21
#define MC33XS2410_OUT_STA(chan) (0x02 + (chan) - 1)
drivers/hwmon/mc33xs2410_hwmon.c
28
#define MC33XS2410_TS_TEMP(chan) (0x2f + (chan) - 1)
drivers/hwmon/ntc_thermistor.c
382
struct iio_channel *chan;
drivers/hwmon/ntc_thermistor.c
387
struct iio_channel *channel = data->chan;
drivers/hwmon/ntc_thermistor.c
608
struct iio_channel *chan;
drivers/hwmon/ntc_thermistor.c
612
chan = devm_iio_channel_get(dev, NULL);
drivers/hwmon/ntc_thermistor.c
613
if (IS_ERR(chan))
drivers/hwmon/ntc_thermistor.c
614
return PTR_ERR(chan);
drivers/hwmon/ntc_thermistor.c
616
ret = iio_get_channel_type(chan, &type);
drivers/hwmon/ntc_thermistor.c
640
data->chan = chan;
drivers/hwmon/peci/dimmtemp.c
288
static int create_dimm_temp_label(struct peci_dimmtemp *priv, int chan)
drivers/hwmon/peci/dimmtemp.c
290
int rank = chan / priv->gen_info->dimm_idx_max;
drivers/hwmon/peci/dimmtemp.c
291
int idx = chan % priv->gen_info->dimm_idx_max;
drivers/hwmon/peci/dimmtemp.c
293
priv->dimmtemp_label[chan] = devm_kasprintf(priv->dev, GFP_KERNEL,
drivers/hwmon/peci/dimmtemp.c
296
if (!priv->dimmtemp_label[chan])
drivers/hwtracing/stm/core.c
1295
unsigned int chan,
drivers/hwtracing/stm/core.c
1305
if (chan >= src->output.nr_chans)
drivers/hwtracing/stm/core.c
1312
count = stm_write(stm, &src->output, chan, buf, count, data);
drivers/hwtracing/stm/core.c
603
unsigned int chan, const char *buf, size_t count, struct stm_source_data *source)
drivers/hwtracing/stm/core.c
611
err = stm->pdrv->write(stm->data, output, chan, buf, count, source);
drivers/hwtracing/stm/p_basic.c
13
unsigned int chan, const char *buf, size_t count,
drivers/hwtracing/stm/p_basic.c
16
unsigned int c = output->channel + chan;
drivers/hwtracing/stm/p_sys-t.c
369
unsigned int chan, const char *buf, size_t count,
drivers/hwtracing/stm/p_sys-t.c
373
unsigned int c = output->channel + chan;
drivers/hwtracing/stm/stm.h
98
struct stm_output *output, unsigned int chan,
drivers/i2c/busses/i2c-imx-lpi2c.c
775
struct dma_chan *chan = dma->dma_data_dir == DMA_FROM_DEVICE
drivers/i2c/busses/i2c-imx-lpi2c.c
778
dma_unmap_single(chan->device->dev, dma->dma_addr,
drivers/i2c/busses/i2c-imx-lpi2c.c
857
struct dma_chan *chan;
drivers/i2c/busses/i2c-imx-lpi2c.c
861
chan = dma->chan_rx;
drivers/i2c/busses/i2c-imx-lpi2c.c
865
chan = dma->chan_tx;
drivers/i2c/busses/i2c-imx-lpi2c.c
870
dma->dma_addr = dma_map_single(chan->device->dev,
drivers/i2c/busses/i2c-imx-lpi2c.c
872
if (dma_mapping_error(chan->device->dev, dma->dma_addr)) {
drivers/i2c/busses/i2c-imx-lpi2c.c
877
desc = dmaengine_prep_slave_single(chan, dma->dma_addr,
drivers/i2c/busses/i2c-imx-lpi2c.c
898
dma_async_issue_pending(chan);
drivers/i2c/busses/i2c-rcar.c
449
struct dma_chan *chan = priv->dma_direction == DMA_FROM_DEVICE
drivers/i2c/busses/i2c-rcar.c
454
dmaengine_terminate_sync(chan);
drivers/i2c/busses/i2c-rcar.c
456
dma_unmap_single(chan->device->dev, sg_dma_address(&priv->sg),
drivers/i2c/busses/i2c-rcar.c
485
struct dma_chan *chan = read ? priv->dma_rx : priv->dma_tx;
drivers/i2c/busses/i2c-rcar.c
493
if (!(priv->flags & ID_P_NOT_ATOMIC) || IS_ERR(chan) || msg->len < RCAR_MIN_DMA_LEN ||
drivers/i2c/busses/i2c-rcar.c
512
dma_addr = dma_map_single(chan->device->dev, buf, len, dir);
drivers/i2c/busses/i2c-rcar.c
513
if (dma_mapping_error(chan->device->dev, dma_addr)) {
drivers/i2c/busses/i2c-rcar.c
523
txdesc = dmaengine_prep_slave_sg(chan, &priv->sg, 1,
drivers/i2c/busses/i2c-rcar.c
548
dma_async_issue_pending(chan);
drivers/i2c/busses/i2c-rcar.c
820
struct dma_chan *chan;
drivers/i2c/busses/i2c-rcar.c
825
chan = dma_request_chan(dev, chan_name);
drivers/i2c/busses/i2c-rcar.c
826
if (IS_ERR(chan)) {
drivers/i2c/busses/i2c-rcar.c
828
chan_name, PTR_ERR(chan));
drivers/i2c/busses/i2c-rcar.c
829
return chan;
drivers/i2c/busses/i2c-rcar.c
842
ret = dmaengine_slave_config(chan, &cfg);
drivers/i2c/busses/i2c-rcar.c
846
dma_release_channel(chan);
drivers/i2c/busses/i2c-rcar.c
851
return chan;
drivers/i2c/busses/i2c-rcar.c
859
struct dma_chan *chan;
drivers/i2c/busses/i2c-rcar.c
864
chan = read ? priv->dma_rx : priv->dma_tx;
drivers/i2c/busses/i2c-rcar.c
865
if (PTR_ERR(chan) != -EPROBE_DEFER)
drivers/i2c/busses/i2c-rcar.c
869
chan = rcar_i2c_request_dma_chan(dev, dir, priv->res->start + ICRXTX);
drivers/i2c/busses/i2c-rcar.c
872
priv->dma_rx = chan;
drivers/i2c/busses/i2c-rcar.c
874
priv->dma_tx = chan;
drivers/i2c/busses/i2c-rtl9300.c
161
static int rtl9300_i2c_config_chan(struct rtl9300_i2c *i2c, struct rtl9300_i2c_chan *chan)
drivers/i2c/busses/i2c-rtl9300.c
166
if (i2c->sda_num == chan->sda_num)
drivers/i2c/busses/i2c-rtl9300.c
169
ret = regmap_field_write(i2c->fields[F_SCL_FREQ], chan->bus_freq);
drivers/i2c/busses/i2c-rtl9300.c
178
ret = regmap_field_update_bits(i2c->fields[F_SDA_SEL], BIT(chan->sda_num),
drivers/i2c/busses/i2c-rtl9300.c
179
BIT(chan->sda_num));
drivers/i2c/busses/i2c-rtl9300.c
183
ret = regmap_field_write(i2c->fields[F_SDA_OUT_SEL], chan->sda_num);
drivers/i2c/busses/i2c-rtl9300.c
187
i2c->sda_num = chan->sda_num;
drivers/i2c/busses/i2c-rtl9300.c
191
static int rtl9607_i2c_config_chan(struct rtl9300_i2c *i2c, struct rtl9300_i2c_chan *chan)
drivers/i2c/busses/i2c-rtl9300.c
196
if (i2c->sda_num == chan->sda_num)
drivers/i2c/busses/i2c-rtl9300.c
199
ret = regmap_field_write(i2c->fields[F_CLK_DIV], chan->clk_div);
drivers/i2c/busses/i2c-rtl9300.c
208
i2c->sda_num = chan->sda_num;
drivers/i2c/busses/i2c-rtl9300.c
212
static void rtl9300_i2c_config_clock(u32 clock_freq, struct rtl9300_i2c_chan *chan)
drivers/i2c/busses/i2c-rtl9300.c
214
struct rtl9300_i2c *i2c = chan->i2c;
drivers/i2c/busses/i2c-rtl9300.c
218
chan->bus_freq = RTL9300_I2C_STD_FREQ;
drivers/i2c/busses/i2c-rtl9300.c
221
chan->bus_freq = RTL9300_I2C_FAST_FREQ;
drivers/i2c/busses/i2c-rtl9300.c
224
chan->bus_freq = RTL9300_I2C_SUPER_FAST_FREQ;
drivers/i2c/busses/i2c-rtl9300.c
227
chan->bus_freq = RTL9300_I2C_SLOW_FREQ;
drivers/i2c/busses/i2c-rtl9300.c
231
chan->sda_num, clock_freq);
drivers/i2c/busses/i2c-rtl9300.c
236
static void rtl9607_i2c_config_clock(u32 clock_freq, struct rtl9300_i2c_chan *chan)
drivers/i2c/busses/i2c-rtl9300.c
238
struct rtl9300_i2c *i2c = chan->i2c;
drivers/i2c/busses/i2c-rtl9300.c
240
chan->clk_div = clk_get_rate(i2c->clk) / clock_freq - 1;
drivers/i2c/busses/i2c-rtl9300.c
378
struct rtl9300_i2c_chan *chan = i2c_get_adapdata(adap);
drivers/i2c/busses/i2c-rtl9300.c
380
struct rtl9300_i2c *i2c = chan->i2c;
drivers/i2c/busses/i2c-rtl9300.c
390
ret = drv_data->config_chan(i2c, chan);
drivers/i2c/busses/i2c-rtl9300.c
521
struct rtl9300_i2c_chan *chan = &i2c->chans[i];
drivers/i2c/busses/i2c-rtl9300.c
522
struct i2c_adapter *adap = &chan->adap;
drivers/i2c/busses/i2c-rtl9300.c
532
chan->sda_num = sda_num;
drivers/i2c/busses/i2c-rtl9300.c
533
chan->i2c = i2c;
drivers/i2c/busses/i2c-rtl9300.c
535
drv_data->config_clock(clock_freq, chan);
drivers/i2c/busses/i2c-rtl9300.c
543
i2c_set_adapdata(adap, chan);
drivers/i2c/busses/i2c-rtl9300.c
68
int (*config_chan)(struct rtl9300_i2c *i2c, struct rtl9300_i2c_chan *chan);
drivers/i2c/busses/i2c-rtl9300.c
69
void (*config_clock)(u32 clock_freq, struct rtl9300_i2c_chan *chan);
drivers/i2c/busses/i2c-sh_mobile.c
448
struct dma_chan *chan = pd->dma_direction == DMA_FROM_DEVICE
drivers/i2c/busses/i2c-sh_mobile.c
453
dmaengine_terminate_sync(chan);
drivers/i2c/busses/i2c-sh_mobile.c
455
dma_unmap_single(chan->device->dev, sg_dma_address(&pd->sg),
drivers/i2c/busses/i2c-sh_mobile.c
475
struct dma_chan *chan;
drivers/i2c/busses/i2c-sh_mobile.c
480
chan = dma_request_chan(dev, chan_name);
drivers/i2c/busses/i2c-sh_mobile.c
481
if (IS_ERR(chan)) {
drivers/i2c/busses/i2c-sh_mobile.c
483
PTR_ERR(chan));
drivers/i2c/busses/i2c-sh_mobile.c
484
return chan;
drivers/i2c/busses/i2c-sh_mobile.c
497
ret = dmaengine_slave_config(chan, &cfg);
drivers/i2c/busses/i2c-sh_mobile.c
500
dma_release_channel(chan);
drivers/i2c/busses/i2c-sh_mobile.c
505
return chan;
drivers/i2c/busses/i2c-sh_mobile.c
512
struct dma_chan *chan = read ? pd->dma_rx : pd->dma_tx;
drivers/i2c/busses/i2c-sh_mobile.c
517
if (PTR_ERR(chan) == -EPROBE_DEFER) {
drivers/i2c/busses/i2c-sh_mobile.c
519
chan = pd->dma_rx = sh_mobile_i2c_request_dma_chan(pd->dev, DMA_DEV_TO_MEM,
drivers/i2c/busses/i2c-sh_mobile.c
522
chan = pd->dma_tx = sh_mobile_i2c_request_dma_chan(pd->dev, DMA_MEM_TO_DEV,
drivers/i2c/busses/i2c-sh_mobile.c
526
if (IS_ERR(chan))
drivers/i2c/busses/i2c-sh_mobile.c
529
dma_addr = dma_map_single(chan->device->dev, pd->dma_buf, pd->msg->len, dir);
drivers/i2c/busses/i2c-sh_mobile.c
530
if (dma_mapping_error(chan->device->dev, dma_addr)) {
drivers/i2c/busses/i2c-sh_mobile.c
540
txdesc = dmaengine_prep_slave_sg(chan, &pd->sg, 1,
drivers/i2c/busses/i2c-sh_mobile.c
559
dma_async_issue_pending(chan);
drivers/i2c/busses/i2c-viperboard.c
230
wmsg->header.chan = 0x00;
drivers/i2c/i2c-atr.c
170
static struct i2c_atr_alias_pair *i2c_atr_create_c2a(struct i2c_atr_chan *chan,
drivers/i2c/i2c-atr.c
175
lockdep_assert_held(&chan->alias_pairs_lock);
drivers/i2c/i2c-atr.c
184
list_add(&c2a->node, &chan->alias_pairs);
drivers/i2c/i2c-atr.c
236
i2c_atr_find_mapping_by_addr(struct i2c_atr_chan *chan, u16 addr)
drivers/i2c/i2c-atr.c
240
lockdep_assert_held(&chan->alias_pairs_lock);
drivers/i2c/i2c-atr.c
242
list_for_each_entry(c2a, &chan->alias_pairs, node) {
drivers/i2c/i2c-atr.c
251
i2c_atr_create_mapping_by_addr(struct i2c_atr_chan *chan, u16 addr)
drivers/i2c/i2c-atr.c
253
struct i2c_atr *atr = chan->atr;
drivers/i2c/i2c-atr.c
258
lockdep_assert_held(&chan->alias_pairs_lock);
drivers/i2c/i2c-atr.c
260
ret = i2c_atr_reserve_alias(chan->alias_pool);
drivers/i2c/i2c-atr.c
266
c2a = i2c_atr_create_c2a(chan, alias, addr);
drivers/i2c/i2c-atr.c
270
ret = atr->ops->attach_addr(atr, chan->chan_id, c2a->addr, c2a->alias);
drivers/i2c/i2c-atr.c
273
addr, chan->chan_id, ret);
drivers/i2c/i2c-atr.c
282
i2c_atr_release_alias(chan->alias_pool, alias);
drivers/i2c/i2c-atr.c
287
i2c_atr_replace_mapping_by_addr(struct i2c_atr_chan *chan, u16 addr)
drivers/i2c/i2c-atr.c
289
struct i2c_atr *atr = chan->atr;
drivers/i2c/i2c-atr.c
296
lockdep_assert_held(&chan->alias_pairs_lock);
drivers/i2c/i2c-atr.c
298
alias_pairs = &chan->alias_pairs;
drivers/i2c/i2c-atr.c
313
atr->ops->detach_addr(atr, chan->chan_id, c2a->addr);
drivers/i2c/i2c-atr.c
320
ret = atr->ops->attach_addr(atr, chan->chan_id, c2a->addr, c2a->alias);
drivers/i2c/i2c-atr.c
323
addr, chan->chan_id, ret);
drivers/i2c/i2c-atr.c
325
i2c_atr_release_alias(chan->alias_pool, alias);
drivers/i2c/i2c-atr.c
333
i2c_atr_get_mapping_by_addr(struct i2c_atr_chan *chan, u16 addr)
drivers/i2c/i2c-atr.c
335
struct i2c_atr *atr = chan->atr;
drivers/i2c/i2c-atr.c
338
c2a = i2c_atr_find_mapping_by_addr(chan, addr);
drivers/i2c/i2c-atr.c
345
c2a = i2c_atr_create_mapping_by_addr(chan, addr);
drivers/i2c/i2c-atr.c
349
return i2c_atr_replace_mapping_by_addr(chan, addr);
drivers/i2c/i2c-atr.c
359
static int i2c_atr_map_msgs(struct i2c_atr_chan *chan, struct i2c_msg *msgs,
drivers/i2c/i2c-atr.c
362
struct i2c_atr *atr = chan->atr;
drivers/i2c/i2c-atr.c
367
if (unlikely(chan->orig_addrs_size < num)) {
drivers/i2c/i2c-atr.c
375
kfree(chan->orig_addrs);
drivers/i2c/i2c-atr.c
376
chan->orig_addrs = new_buf;
drivers/i2c/i2c-atr.c
377
chan->orig_addrs_size = num;
drivers/i2c/i2c-atr.c
380
mutex_lock(&chan->alias_pairs_lock);
drivers/i2c/i2c-atr.c
383
chan->orig_addrs[i] = msgs[i].addr;
drivers/i2c/i2c-atr.c
385
c2a = i2c_atr_get_mapping_by_addr(chan, msgs[i].addr);
drivers/i2c/i2c-atr.c
395
msgs[i].addr = chan->orig_addrs[i];
drivers/i2c/i2c-atr.c
408
mutex_unlock(&chan->alias_pairs_lock);
drivers/i2c/i2c-atr.c
419
static void i2c_atr_unmap_msgs(struct i2c_atr_chan *chan, struct i2c_msg *msgs,
drivers/i2c/i2c-atr.c
426
msgs[i].addr = chan->orig_addrs[i];
drivers/i2c/i2c-atr.c
428
mutex_lock(&chan->alias_pairs_lock);
drivers/i2c/i2c-atr.c
430
if (unlikely(list_empty(&chan->alias_pairs)))
drivers/i2c/i2c-atr.c
434
list_for_each_entry(c2a, &chan->alias_pairs, node) {
drivers/i2c/i2c-atr.c
439
mutex_unlock(&chan->alias_pairs_lock);
drivers/i2c/i2c-atr.c
445
struct i2c_atr_chan *chan = adap->algo_data;
drivers/i2c/i2c-atr.c
446
struct i2c_atr *atr = chan->atr;
drivers/i2c/i2c-atr.c
451
mutex_lock(&chan->orig_addrs_lock);
drivers/i2c/i2c-atr.c
453
ret = i2c_atr_map_msgs(chan, msgs, num);
drivers/i2c/i2c-atr.c
461
i2c_atr_unmap_msgs(chan, msgs, num);
drivers/i2c/i2c-atr.c
464
mutex_unlock(&chan->orig_addrs_lock);
drivers/i2c/i2c-atr.c
473
struct i2c_atr_chan *chan = adap->algo_data;
drivers/i2c/i2c-atr.c
474
struct i2c_atr *atr = chan->atr;
drivers/i2c/i2c-atr.c
479
mutex_lock(&chan->alias_pairs_lock);
drivers/i2c/i2c-atr.c
481
c2a = i2c_atr_get_mapping_by_addr(chan, addr);
drivers/i2c/i2c-atr.c
485
mutex_unlock(&chan->alias_pairs_lock);
drivers/i2c/i2c-atr.c
491
mutex_unlock(&chan->alias_pairs_lock);
drivers/i2c/i2c-atr.c
499
struct i2c_atr_chan *chan = adap->algo_data;
drivers/i2c/i2c-atr.c
500
struct i2c_adapter *parent = chan->atr->parent;
drivers/i2c/i2c-atr.c
507
struct i2c_atr_chan *chan = adapter->algo_data;
drivers/i2c/i2c-atr.c
508
struct i2c_atr *atr = chan->atr;
drivers/i2c/i2c-atr.c
515
struct i2c_atr_chan *chan = adapter->algo_data;
drivers/i2c/i2c-atr.c
516
struct i2c_atr *atr = chan->atr;
drivers/i2c/i2c-atr.c
523
struct i2c_atr_chan *chan = adapter->algo_data;
drivers/i2c/i2c-atr.c
524
struct i2c_atr *atr = chan->atr;
drivers/i2c/i2c-atr.c
538
struct i2c_atr_chan *chan = adapter->algo_data;
drivers/i2c/i2c-atr.c
539
struct i2c_atr *atr = chan->atr;
drivers/i2c/i2c-atr.c
543
mutex_lock(&chan->alias_pairs_lock);
drivers/i2c/i2c-atr.c
545
c2a = i2c_atr_create_mapping_by_addr(chan, addr);
drivers/i2c/i2c-atr.c
547
c2a = i2c_atr_replace_mapping_by_addr(chan, addr);
drivers/i2c/i2c-atr.c
556
chan->chan_id, c2a->alias, addr);
drivers/i2c/i2c-atr.c
559
mutex_unlock(&chan->alias_pairs_lock);
drivers/i2c/i2c-atr.c
566
struct i2c_atr_chan *chan = adapter->algo_data;
drivers/i2c/i2c-atr.c
567
struct i2c_atr *atr = chan->atr;
drivers/i2c/i2c-atr.c
570
atr->ops->detach_addr(atr, chan->chan_id, addr);
drivers/i2c/i2c-atr.c
572
mutex_lock(&chan->alias_pairs_lock);
drivers/i2c/i2c-atr.c
574
c2a = i2c_atr_find_mapping_by_addr(chan, addr);
drivers/i2c/i2c-atr.c
576
mutex_unlock(&chan->alias_pairs_lock);
drivers/i2c/i2c-atr.c
580
i2c_atr_release_alias(chan->alias_pool, c2a->alias);
drivers/i2c/i2c-atr.c
584
chan->chan_id, c2a->alias, addr);
drivers/i2c/i2c-atr.c
588
mutex_unlock(&chan->alias_pairs_lock);
drivers/i2c/i2c-atr.c
781
struct i2c_atr_chan *chan;
drivers/i2c/i2c-atr.c
794
chan = kzalloc_obj(*chan);
drivers/i2c/i2c-atr.c
795
if (!chan)
drivers/i2c/i2c-atr.c
801
chan->atr = atr;
drivers/i2c/i2c-atr.c
802
chan->chan_id = chan_id;
drivers/i2c/i2c-atr.c
803
INIT_LIST_HEAD(&chan->alias_pairs);
drivers/i2c/i2c-atr.c
804
lockdep_register_key(&chan->alias_pairs_lock_key);
drivers/i2c/i2c-atr.c
805
lockdep_register_key(&chan->orig_addrs_lock_key);
drivers/i2c/i2c-atr.c
806
mutex_init_with_key(&chan->alias_pairs_lock, &chan->alias_pairs_lock_key);
drivers/i2c/i2c-atr.c
807
mutex_init_with_key(&chan->orig_addrs_lock, &chan->orig_addrs_lock_key);
drivers/i2c/i2c-atr.c
809
snprintf(chan->adap.name, sizeof(chan->adap.name), "i2c-%d-atr-%d",
drivers/i2c/i2c-atr.c
811
chan->adap.owner = THIS_MODULE;
drivers/i2c/i2c-atr.c
812
chan->adap.algo = &atr->algo;
drivers/i2c/i2c-atr.c
813
chan->adap.algo_data = chan;
drivers/i2c/i2c-atr.c
814
chan->adap.dev.parent = desc->parent;
drivers/i2c/i2c-atr.c
815
chan->adap.retries = parent->retries;
drivers/i2c/i2c-atr.c
816
chan->adap.timeout = parent->timeout;
drivers/i2c/i2c-atr.c
817
chan->adap.quirks = parent->quirks;
drivers/i2c/i2c-atr.c
818
chan->adap.lock_ops = &i2c_atr_lock_ops;
drivers/i2c/i2c-atr.c
821
device_set_node(&chan->adap.dev, fwnode_handle_get(bus_handle));
drivers/i2c/i2c-atr.c
837
device_set_node(&chan->adap.dev, child);
drivers/i2c/i2c-atr.c
842
chan->alias_pool = i2c_atr_alloc_alias_pool(desc->num_aliases, false);
drivers/i2c/i2c-atr.c
843
if (IS_ERR(chan->alias_pool)) {
drivers/i2c/i2c-atr.c
844
ret = PTR_ERR(chan->alias_pool);
drivers/i2c/i2c-atr.c
849
chan->alias_pool->aliases[idx] = desc->aliases[idx];
drivers/i2c/i2c-atr.c
851
chan->alias_pool = atr->alias_pool;
drivers/i2c/i2c-atr.c
854
atr->adapter[chan_id] = &chan->adap;
drivers/i2c/i2c-atr.c
856
ret = i2c_add_adapter(&chan->adap);
drivers/i2c/i2c-atr.c
864
chan->chan_id);
drivers/i2c/i2c-atr.c
866
ret = sysfs_create_link(&chan->adap.dev.kobj, &dev->kobj, "atr_device");
drivers/i2c/i2c-atr.c
869
ret = sysfs_create_link(&dev->kobj, &chan->adap.dev.kobj, symlink_name);
drivers/i2c/i2c-atr.c
873
dev_dbg(dev, "Added ATR child bus %d\n", i2c_adapter_id(&chan->adap));
drivers/i2c/i2c-atr.c
878
if (!chan->alias_pool->shared)
drivers/i2c/i2c-atr.c
879
i2c_atr_free_alias_pool(chan->alias_pool);
drivers/i2c/i2c-atr.c
881
fwnode_handle_put(dev_fwnode(&chan->adap.dev));
drivers/i2c/i2c-atr.c
882
mutex_destroy(&chan->orig_addrs_lock);
drivers/i2c/i2c-atr.c
883
mutex_destroy(&chan->alias_pairs_lock);
drivers/i2c/i2c-atr.c
884
lockdep_unregister_key(&chan->orig_addrs_lock_key);
drivers/i2c/i2c-atr.c
885
lockdep_unregister_key(&chan->alias_pairs_lock_key);
drivers/i2c/i2c-atr.c
886
kfree(chan);
drivers/i2c/i2c-atr.c
895
struct i2c_atr_chan *chan;
drivers/i2c/i2c-atr.c
903
chan = adap->algo_data;
drivers/i2c/i2c-atr.c
909
chan->chan_id);
drivers/i2c/i2c-atr.c
911
sysfs_remove_link(&chan->adap.dev.kobj, "atr_device");
drivers/i2c/i2c-atr.c
915
if (!chan->alias_pool->shared)
drivers/i2c/i2c-atr.c
916
i2c_atr_free_alias_pool(chan->alias_pool);
drivers/i2c/i2c-atr.c
921
mutex_destroy(&chan->orig_addrs_lock);
drivers/i2c/i2c-atr.c
922
mutex_destroy(&chan->alias_pairs_lock);
drivers/i2c/i2c-atr.c
923
lockdep_unregister_key(&chan->orig_addrs_lock_key);
drivers/i2c/i2c-atr.c
924
lockdep_unregister_key(&chan->alias_pairs_lock_key);
drivers/i2c/i2c-atr.c
925
kfree(chan->orig_addrs);
drivers/i2c/i2c-atr.c
926
kfree(chan);
drivers/i2c/muxes/i2c-arb-gpio-challenge.c
42
static int i2c_arbitrator_select(struct i2c_mux_core *muxc, u32 chan)
drivers/i2c/muxes/i2c-arb-gpio-challenge.c
85
static int i2c_arbitrator_deselect(struct i2c_mux_core *muxc, u32 chan)
drivers/i2c/muxes/i2c-demux-pinctrl.c
123
of_changeset_revert(&priv->chan[new_chan].chgset);
drivers/i2c/muxes/i2c-demux-pinctrl.c
138
i2c_put_adapter(priv->chan[cur].parent_adap);
drivers/i2c/muxes/i2c-demux-pinctrl.c
140
ret = of_changeset_revert(&priv->chan[cur].chgset);
drivers/i2c/muxes/i2c-demux-pinctrl.c
142
priv->chan[cur].parent_adap = NULL;
drivers/i2c/muxes/i2c-demux-pinctrl.c
171
i, priv->chan[i].parent_np,
drivers/i2c/muxes/i2c-demux-pinctrl.c
221
priv = devm_kzalloc(&pdev->dev, struct_size(priv, chan, num_chan),
drivers/i2c/muxes/i2c-demux-pinctrl.c
244
priv->chan[i].parent_np = adap_np;
drivers/i2c/muxes/i2c-demux-pinctrl.c
254
of_changeset_init(&priv->chan[i].chgset);
drivers/i2c/muxes/i2c-demux-pinctrl.c
255
of_changeset_update_property(&priv->chan[i].chgset, adap_np, &props[i]);
drivers/i2c/muxes/i2c-demux-pinctrl.c
284
of_node_put(priv->chan[j].parent_np);
drivers/i2c/muxes/i2c-demux-pinctrl.c
285
of_changeset_destroy(&priv->chan[j].chgset);
drivers/i2c/muxes/i2c-demux-pinctrl.c
302
of_node_put(priv->chan[i].parent_np);
drivers/i2c/muxes/i2c-demux-pinctrl.c
303
of_changeset_destroy(&priv->chan[i].chgset);
drivers/i2c/muxes/i2c-demux-pinctrl.c
35
struct i2c_demux_pinctrl_chan chan[] __counted_by(num_chan);
drivers/i2c/muxes/i2c-demux-pinctrl.c
41
struct i2c_adapter *parent = priv->chan[priv->cur_chan].parent_adap;
drivers/i2c/muxes/i2c-demux-pinctrl.c
49
struct i2c_adapter *parent = priv->chan[priv->cur_chan].parent_adap;
drivers/i2c/muxes/i2c-demux-pinctrl.c
60
ret = of_changeset_apply(&priv->chan[new_chan].chgset);
drivers/i2c/muxes/i2c-demux-pinctrl.c
64
adap = of_get_i2c_adapter_by_node(priv->chan[new_chan].parent_np);
drivers/i2c/muxes/i2c-demux-pinctrl.c
94
priv->chan[new_chan].parent_adap = adap;
drivers/i2c/muxes/i2c-mux-gpio.c
35
static int i2c_mux_gpio_select(struct i2c_mux_core *muxc, u32 chan)
drivers/i2c/muxes/i2c-mux-gpio.c
39
i2c_mux_gpio_set(mux, chan);
drivers/i2c/muxes/i2c-mux-gpio.c
47
static int i2c_mux_gpio_deselect(struct i2c_mux_core *muxc, u32 chan)
drivers/i2c/muxes/i2c-mux-gpmux.c
112
u32 chan;
drivers/i2c/muxes/i2c-mux-gpmux.c
114
ret = of_property_read_u32(child, "reg", &chan);
drivers/i2c/muxes/i2c-mux-gpmux.c
121
if (chan >= mux_control_states(mux->control)) {
drivers/i2c/muxes/i2c-mux-gpmux.c
122
dev_err(dev, "invalid reg %u\n", chan);
drivers/i2c/muxes/i2c-mux-gpmux.c
127
ret = i2c_mux_add_adapter(muxc, 0, chan);
drivers/i2c/muxes/i2c-mux-gpmux.c
23
static int i2c_mux_select(struct i2c_mux_core *muxc, u32 chan)
drivers/i2c/muxes/i2c-mux-gpmux.c
28
ret = mux_control_select(mux->control, chan);
drivers/i2c/muxes/i2c-mux-gpmux.c
34
static int i2c_mux_deselect(struct i2c_mux_core *muxc, u32 chan)
drivers/i2c/muxes/i2c-mux-ltc4306.c
177
static int ltc4306_select_mux(struct i2c_mux_core *muxc, u32 chan)
drivers/i2c/muxes/i2c-mux-ltc4306.c
182
LTC_SWITCH_MASK, BIT(7 - chan));
drivers/i2c/muxes/i2c-mux-ltc4306.c
185
static int ltc4306_deselect_mux(struct i2c_mux_core *muxc, u32 chan)
drivers/i2c/muxes/i2c-mux-mlxcpld.c
106
static int mlxcpld_mux_deselect(struct i2c_mux_core *muxc, u32 chan)
drivers/i2c/muxes/i2c-mux-mlxcpld.c
88
static int mlxcpld_mux_select_chan(struct i2c_mux_core *muxc, u32 chan)
drivers/i2c/muxes/i2c-mux-mlxcpld.c
91
u32 regval = chan;
drivers/i2c/muxes/i2c-mux-pca9541.c
248
static int pca9541_select_chan(struct i2c_mux_core *muxc, u32 chan)
drivers/i2c/muxes/i2c-mux-pca9541.c
274
static int pca9541_release_chan(struct i2c_mux_core *muxc, u32 chan)
drivers/i2c/muxes/i2c-mux-pca954x.c
310
static u8 pca954x_regval(struct pca954x *data, u8 chan)
drivers/i2c/muxes/i2c-mux-pca954x.c
314
return chan | data->chip->enable;
drivers/i2c/muxes/i2c-mux-pca954x.c
316
return 1 << chan;
drivers/i2c/muxes/i2c-mux-pca954x.c
319
static int pca954x_select_chan(struct i2c_mux_core *muxc, u32 chan)
drivers/i2c/muxes/i2c-mux-pca954x.c
326
regval = pca954x_regval(data, chan);
drivers/i2c/muxes/i2c-mux-pca954x.c
336
static int pca954x_deselect_mux(struct i2c_mux_core *muxc, u32 chan)
drivers/i2c/muxes/i2c-mux-pinctrl.c
22
static int i2c_mux_pinctrl_select(struct i2c_mux_core *muxc, u32 chan)
drivers/i2c/muxes/i2c-mux-pinctrl.c
26
return pinctrl_select_state(mux->pinctrl, mux->states[chan]);
drivers/i2c/muxes/i2c-mux-pinctrl.c
29
static int i2c_mux_pinctrl_deselect(struct i2c_mux_core *muxc, u32 chan)
drivers/i2c/muxes/i2c-mux-reg.c
60
static int i2c_mux_reg_select(struct i2c_mux_core *muxc, u32 chan)
drivers/i2c/muxes/i2c-mux-reg.c
64
return i2c_mux_reg_set(mux, chan);
drivers/i2c/muxes/i2c-mux-reg.c
67
static int i2c_mux_reg_deselect(struct i2c_mux_core *muxc, u32 chan)
drivers/iio/accel/adis16201.c
110
return adis_single_conversion(indio_dev, chan,
drivers/iio/accel/adis16201.c
113
switch (chan->type) {
drivers/iio/accel/adis16201.c
115
if (chan->channel == 0) {
drivers/iio/accel/adis16201.c
155
switch (chan->type) {
drivers/iio/accel/adis16201.c
165
addr = adis16201_addresses[chan->scan_index];
drivers/iio/accel/adis16201.c
178
struct iio_chan_spec const *chan,
drivers/iio/accel/adis16201.c
189
switch (chan->type) {
drivers/iio/accel/adis16201.c
200
return adis_write_reg_16(st, adis16201_addresses[chan->scan_index],
drivers/iio/accel/adis16201.c
98
struct iio_chan_spec const *chan,
drivers/iio/accel/adis16209.c
105
struct iio_chan_spec const *chan,
drivers/iio/accel/adis16209.c
116
switch (chan->type) {
drivers/iio/accel/adis16209.c
125
return adis_write_reg_16(st, adis16209_addresses[chan->scan_index][0],
drivers/iio/accel/adis16209.c
130
struct iio_chan_spec const *chan,
drivers/iio/accel/adis16209.c
142
return adis_single_conversion(indio_dev, chan,
drivers/iio/accel/adis16209.c
145
switch (chan->type) {
drivers/iio/accel/adis16209.c
148
switch (chan->channel) {
drivers/iio/accel/adis16209.c
194
switch (chan->type) {
drivers/iio/accel/adis16209.c
201
addr = adis16209_addresses[chan->scan_index][0];
drivers/iio/accel/adxl313_core.c
356
struct iio_chan_spec const *chan)
drivers/iio/accel/adxl313_core.c
363
ADXL313_REG_DATA_AXIS(chan->address),
drivers/iio/accel/adxl313_core.c
372
struct iio_chan_spec const *chan,
drivers/iio/accel/adxl313_core.c
612
struct iio_chan_spec const *chan,
drivers/iio/accel/adxl313_core.c
621
ret = adxl313_read_axis(data, chan);
drivers/iio/accel/adxl313_core.c
625
*val = sign_extend32(ret, chan->scan_type.realbits - 1);
drivers/iio/accel/adxl313_core.c
635
ADXL313_REG_OFS_AXIS(chan->address), &regval);
drivers/iio/accel/adxl313_core.c
660
struct iio_chan_spec const *chan,
drivers/iio/accel/adxl313_core.c
675
ADXL313_REG_OFS_AXIS(chan->address),
drivers/iio/accel/adxl313_core.c
716
const struct iio_chan_spec *chan,
drivers/iio/accel/adxl313_core.c
737
const struct iio_chan_spec *chan,
drivers/iio/accel/adxl313_core.c
840
const struct iio_chan_spec *chan,
drivers/iio/accel/adxl313_core.c
865
const struct iio_chan_spec *chan,
drivers/iio/accel/adxl345_core.c
1043
struct iio_chan_spec const *chan,
drivers/iio/accel/adxl345_core.c
1064
struct iio_chan_spec const *chan,
drivers/iio/accel/adxl345_core.c
1082
ADXL345_REG_DATA_AXIS(chan->address),
drivers/iio/accel/adxl345_core.c
1099
ADXL345_REG_OFS_AXIS(chan->address), &regval);
drivers/iio/accel/adxl345_core.c
1123
struct iio_chan_spec const *chan,
drivers/iio/accel/adxl345_core.c
1142
ADXL345_REG_OFS_AXIS(chan->address),
drivers/iio/accel/adxl345_core.c
1204
const struct iio_chan_spec *chan,
drivers/iio/accel/adxl345_core.c
1224
ret = adxl345_is_tap_en(st, chan->channel2,
drivers/iio/accel/adxl345_core.c
1230
ret = adxl345_is_tap_en(st, chan->channel2,
drivers/iio/accel/adxl345_core.c
1244
const struct iio_chan_spec *chan,
drivers/iio/accel/adxl345_core.c
1265
return adxl345_set_singletap_en(st, chan->channel2, state);
drivers/iio/accel/adxl345_core.c
1343
const struct iio_chan_spec *chan,
drivers/iio/accel/adxl345_core.c
1404
const struct iio_chan_spec *chan,
drivers/iio/accel/adxl345_core.c
1499
struct iio_chan_spec const *chan,
drivers/iio/accel/adxl355_core.c
482
enum adxl355_chans chan, int calibbias)
drivers/iio/accel/adxl355_core.c
494
adxl355_chans[chan].offset_reg,
drivers/iio/accel/adxl355_core.c
499
data->calibbias[chan] = calibbias;
drivers/iio/accel/adxl355_core.c
516
struct iio_chan_spec const *chan,
drivers/iio/accel/adxl355_core.c
524
switch (chan->type) {
drivers/iio/accel/adxl355_core.c
526
ret = adxl355_get_temp_data(data, chan->address);
drivers/iio/accel/adxl355_core.c
534
chan->address].data_reg);
drivers/iio/accel/adxl355_core.c
537
*val = sign_extend32(ret >> chan->scan_type.shift,
drivers/iio/accel/adxl355_core.c
538
chan->scan_type.realbits - 1);
drivers/iio/accel/adxl355_core.c
545
switch (chan->type) {
drivers/iio/accel/adxl355_core.c
567
*val = sign_extend32(data->calibbias[chan->address], 15);
drivers/iio/accel/adxl355_core.c
583
struct iio_chan_spec const *chan,
drivers/iio/accel/adxl355_core.c
609
return adxl355_set_calibbias(data, chan->address, calibbias);
drivers/iio/accel/adxl355_core.c
616
struct iio_chan_spec const *chan,
drivers/iio/accel/adxl367.c
1013
const struct iio_chan_spec *chan,
drivers/iio/accel/adxl367.c
1053
const struct iio_chan_spec *chan,
drivers/iio/accel/adxl367.c
1074
const struct iio_chan_spec *chan,
drivers/iio/accel/adxl367.c
1113
const struct iio_chan_spec *chan,
drivers/iio/accel/adxl367.c
1123
ret = __adxl367_write_event_config(indio_dev, chan, type, dir, state);
drivers/iio/accel/adxl367.c
714
struct iio_chan_spec const *chan,
drivers/iio/accel/adxl367.c
723
ret = adxl367_set_temp_adc_reg_en(st, chan->address, true);
drivers/iio/accel/adxl367.c
727
ret = regmap_bulk_read(st->regmap, chan->address, &st->sample_buf,
drivers/iio/accel/adxl367.c
733
*val = sign_extend32(sample, chan->scan_type.realbits - 1);
drivers/iio/accel/adxl367.c
735
ret = adxl367_set_temp_adc_reg_en(st, chan->address, false);
drivers/iio/accel/adxl367.c
837
struct iio_chan_spec const *chan,
drivers/iio/accel/adxl367.c
847
ret = adxl367_read_sample(indio_dev, chan, val);
drivers/iio/accel/adxl367.c
851
switch (chan->type) {
drivers/iio/accel/adxl367.c
870
switch (chan->type) {
drivers/iio/accel/adxl367.c
892
struct iio_chan_spec const *chan,
drivers/iio/accel/adxl367.c
933
struct iio_chan_spec const *chan,
drivers/iio/accel/adxl367.c
938
if (chan->type != IIO_ACCEL)
drivers/iio/accel/adxl367.c
948
struct iio_chan_spec const *chan,
drivers/iio/accel/adxl367.c
954
if (chan->type != IIO_ACCEL)
drivers/iio/accel/adxl367.c
972
const struct iio_chan_spec *chan,
drivers/iio/accel/adxl372.c
1189
struct iio_chan_spec const *chan,
drivers/iio/accel/adxl372.c
823
struct iio_chan_spec const *chan,
drivers/iio/accel/adxl372.c
834
ret = adxl372_read_axis(st, chan->address);
drivers/iio/accel/adxl372.c
839
*val = sign_extend32(ret >> chan->scan_type.shift,
drivers/iio/accel/adxl372.c
840
chan->scan_type.realbits - 1);
drivers/iio/accel/adxl372.c
858
struct iio_chan_spec const *chan,
drivers/iio/accel/adxl372.c
898
static int adxl372_read_event_value(struct iio_dev *indio_dev, const struct iio_chan_spec *chan,
drivers/iio/accel/adxl372.c
911
addr = ADXL372_X_THRESH_ACT_H + 2 * chan->scan_index;
drivers/iio/accel/adxl372.c
919
addr = ADXL372_X_THRESH_INACT_H + 2 * chan->scan_index;
drivers/iio/accel/adxl372.c
947
static int adxl372_write_event_value(struct iio_dev *indio_dev, const struct iio_chan_spec *chan,
drivers/iio/accel/adxl372.c
961
addr = ADXL372_X_THRESH_ACT_H + 2 * chan->scan_index;
drivers/iio/accel/adxl372.c
964
addr = ADXL372_X_THRESH_INACT_H + 2 * chan->scan_index;
drivers/iio/accel/adxl372.c
984
static int adxl372_read_event_config(struct iio_dev *indio_dev, const struct iio_chan_spec *chan,
drivers/iio/accel/adxl372.c
999
static int adxl372_write_event_config(struct iio_dev *indio_dev, const struct iio_chan_spec *chan,
drivers/iio/accel/adxl380.c
118
#define ADXL380_CHAN_EN_MSK(chan) BIT(4 + (chan))
drivers/iio/accel/adxl380.c
1184
struct iio_chan_spec const *chan,
drivers/iio/accel/adxl380.c
1195
ret = adxl380_read_chn(st, chan->address);
drivers/iio/accel/adxl380.c
1200
*val = sign_extend32(ret >> chan->scan_type.shift,
drivers/iio/accel/adxl380.c
1201
chan->scan_type.realbits - 1);
drivers/iio/accel/adxl380.c
1204
switch (chan->type) {
drivers/iio/accel/adxl380.c
1220
switch (chan->type) {
drivers/iio/accel/adxl380.c
1228
switch (chan->type) {
drivers/iio/accel/adxl380.c
1230
ret = adxl380_read_calibbias_value(st, chan->scan_index, val);
drivers/iio/accel/adxl380.c
1258
struct iio_chan_spec const *chan,
drivers/iio/accel/adxl380.c
1265
if (chan->type != IIO_ACCEL)
drivers/iio/accel/adxl380.c
1298
struct iio_chan_spec const *chan,
drivers/iio/accel/adxl380.c
1315
return adxl380_write_calibbias_value(st, chan->scan_index, val);
drivers/iio/accel/adxl380.c
1341
struct iio_chan_spec const *chan,
drivers/iio/accel/adxl380.c
1346
if (chan->type != IIO_ACCEL)
drivers/iio/accel/adxl380.c
1356
const struct iio_chan_spec *chan,
drivers/iio/accel/adxl380.c
1365
switch (chan->channel2) {
drivers/iio/accel/adxl380.c
1406
const struct iio_chan_spec *chan,
drivers/iio/accel/adxl380.c
1414
switch (chan->channel2) {
drivers/iio/accel/adxl380.c
1443
const struct iio_chan_spec *chan,
drivers/iio/accel/adxl380.c
1506
const struct iio_chan_spec *chan,
drivers/iio/accel/adxl380.c
1513
if (chan->type != IIO_ACCEL)
drivers/iio/accel/bma180.c
160
static int bma180_get_data_reg(struct bma180_data *data, enum bma180_chan chan)
drivers/iio/accel/bma180.c
167
switch (chan) {
drivers/iio/accel/bma180.c
175
BMA180_ACC_X_LSB + chan * 2);
drivers/iio/accel/bma180.c
179
'x' + chan);
drivers/iio/accel/bma180.c
526
struct iio_chan_spec const *chan, int *val, int *val2,
drivers/iio/accel/bma180.c
538
ret = bma180_get_data_reg(data, chan->scan_index);
drivers/iio/accel/bma180.c
543
if (chan->scan_type.sign == 's') {
drivers/iio/accel/bma180.c
544
*val = sign_extend32(ret >> chan->scan_type.shift,
drivers/iio/accel/bma180.c
545
chan->scan_type.realbits - 1);
drivers/iio/accel/bma180.c
554
switch (chan->type) {
drivers/iio/accel/bma180.c
574
struct iio_chan_spec const *chan, int val, int val2, long mask)
drivers/iio/accel/bma180.c
608
const struct iio_chan_spec *chan)
drivers/iio/accel/bma180.c
616
const struct iio_chan_spec *chan, unsigned int mode)
drivers/iio/accel/bma180.c
630
const struct iio_chan_spec *chan)
drivers/iio/accel/bma180.c
868
s16 chan[4];
drivers/iio/accel/bma180.c
880
scan.chan[i++] = ret;
drivers/iio/accel/bma220_core.c
248
struct iio_chan_spec const *chan,
drivers/iio/accel/bma220_core.c
260
ret = regmap_read(data->regmap, chan->address, &reg);
drivers/iio/accel/bma220_core.c
263
*val = sign_extend32(reg >> chan->scan_type.shift,
drivers/iio/accel/bma220_core.c
264
chan->scan_type.realbits - 1);
drivers/iio/accel/bma220_core.c
306
struct iio_chan_spec const *chan,
drivers/iio/accel/bma220_core.c
352
struct iio_chan_spec const *chan,
drivers/iio/accel/bma400_core.c
1007
ret = bma400_get_accel_reg(data, chan, val);
drivers/iio/accel/bma400_core.c
1011
switch (chan->type) {
drivers/iio/accel/bma400_core.c
1054
struct iio_chan_spec const *chan,
drivers/iio/accel/bma400_core.c
1080
struct iio_chan_spec const *chan, int val, int val2,
drivers/iio/accel/bma400_core.c
1092
if (chan->type != IIO_ACCEL)
drivers/iio/accel/bma400_core.c
1124
struct iio_chan_spec const *chan,
drivers/iio/accel/bma400_core.c
1142
const struct iio_chan_spec *chan,
drivers/iio/accel/bma400_core.c
1148
switch (chan->type) {
drivers/iio/accel/bma400_core.c
1334
const struct iio_chan_spec *chan,
drivers/iio/accel/bma400_core.c
1341
switch (chan->type) {
drivers/iio/accel/bma400_core.c
1380
const struct iio_chan_spec *chan,
drivers/iio/accel/bma400_core.c
1391
if (chan->type != IIO_ACCEL)
drivers/iio/accel/bma400_core.c
1473
const struct iio_chan_spec *chan,
drivers/iio/accel/bma400_core.c
1484
if (chan->type != IIO_ACCEL)
drivers/iio/accel/bma400_core.c
236
const struct iio_chan_spec *chan)
drivers/iio/accel/bma400_core.c
475
const struct iio_chan_spec *chan,
drivers/iio/accel/bma400_core.c
485
switch (chan->channel2) {
drivers/iio/accel/bma400_core.c
970
struct iio_chan_spec const *chan, int *val,
drivers/iio/accel/bma400_core.c
979
switch (chan->type) {
drivers/iio/accel/bma400_core.c
997
if (chan->channel2 == bma400_act_to_mod(activity))
drivers/iio/accel/bmc150-accel-core.c
619
struct iio_chan_spec const *chan,
drivers/iio/accel/bmc150-accel-core.c
624
int axis = chan->scan_index;
drivers/iio/accel/bmc150-accel-core.c
642
*val = sign_extend32(le16_to_cpu(raw_val) >> chan->scan_type.shift,
drivers/iio/accel/bmc150-accel-core.c
643
chan->scan_type.realbits - 1);
drivers/iio/accel/bmc150-accel-core.c
653
struct iio_chan_spec const *chan,
drivers/iio/accel/bmc150-accel-core.c
661
switch (chan->type) {
drivers/iio/accel/bmc150-accel-core.c
668
return bmc150_accel_get_axis(data, chan, val);
drivers/iio/accel/bmc150-accel-core.c
673
if (chan->type == IIO_TEMP) {
drivers/iio/accel/bmc150-accel-core.c
681
switch (chan->type) {
drivers/iio/accel/bmc150-accel-core.c
714
struct iio_chan_spec const *chan,
drivers/iio/accel/bmc150-accel-core.c
742
const struct iio_chan_spec *chan,
drivers/iio/accel/bmc150-accel-core.c
766
const struct iio_chan_spec *chan,
drivers/iio/accel/bmc150-accel-core.c
792
const struct iio_chan_spec *chan,
drivers/iio/accel/bmc150-accel-core.c
802
const struct iio_chan_spec *chan,
drivers/iio/accel/bmc150-accel-core.c
874
const struct iio_chan_spec *chan)
drivers/iio/accel/bmi088-accel-core.c
274
struct iio_chan_spec const *chan,
drivers/iio/accel/bmi088-accel-core.c
281
BMI088_ACCEL_AXIS_TO_REG(chan->scan_index),
drivers/iio/accel/bmi088-accel-core.c
293
struct iio_chan_spec const *chan,
drivers/iio/accel/bmi088-accel-core.c
303
switch (chan->type) {
drivers/iio/accel/bmi088-accel-core.c
321
ret = bmi088_accel_get_axis(data, chan, val);
drivers/iio/accel/bmi088-accel-core.c
331
switch (chan->type) {
drivers/iio/accel/bmi088-accel-core.c
340
switch (chan->type) {
drivers/iio/accel/bmi088-accel-core.c
384
struct iio_chan_spec const *chan,
drivers/iio/accel/bmi088-accel-core.c
407
struct iio_chan_spec const *chan,
drivers/iio/accel/cros_ec_accel_legacy.c
110
ret = cros_ec_sensors_core_read(st, chan, val, val2,
drivers/iio/accel/cros_ec_accel_legacy.c
120
struct iio_chan_spec const *chan,
drivers/iio/accel/cros_ec_accel_legacy.c
145
struct iio_chan_spec const *chan,
drivers/iio/accel/cros_ec_accel_legacy.c
75
struct iio_chan_spec const *chan,
drivers/iio/accel/cros_ec_accel_legacy.c
81
int idx = chan->scan_index;
drivers/iio/accel/da280.c
65
struct iio_chan_spec const *chan,
drivers/iio/accel/da280.c
73
ret = i2c_smbus_read_word_data(data->client, chan->address);
drivers/iio/accel/da311.c
185
struct iio_chan_spec const *chan,
drivers/iio/accel/da311.c
193
ret = i2c_smbus_read_word_data(data->client, chan->address);
drivers/iio/accel/dmard06.c
107
switch (chan->type) {
drivers/iio/accel/dmard06.c
67
struct iio_chan_spec const *chan,
drivers/iio/accel/dmard06.c
76
chan->address);
drivers/iio/accel/dmard06.c
88
switch (chan->type) {
drivers/iio/accel/dmard06.c
99
switch (chan->type) {
drivers/iio/accel/dmard09.c
50
struct iio_chan_spec const *chan,
drivers/iio/accel/dmard09.c
73
accel = get_unaligned_le16(&buf[chan->address]);
drivers/iio/accel/dmard10.c
139
struct iio_chan_spec const *chan,
drivers/iio/accel/dmard10.c
157
ret = le16_to_cpu(buf[chan->address]);
drivers/iio/accel/fxls8962af-core.c
256
struct iio_chan_spec const *chan, int *val)
drivers/iio/accel/fxls8962af-core.c
270
ret = regmap_bulk_read(data->regmap, chan->address,
drivers/iio/accel/fxls8962af-core.c
277
dev_err(dev, "failed to get out reg 0x%lx\n", chan->address);
drivers/iio/accel/fxls8962af-core.c
282
chan->scan_type.realbits - 1);
drivers/iio/accel/fxls8962af-core.c
288
struct iio_chan_spec const *chan,
drivers/iio/accel/fxls8962af-core.c
309
struct iio_chan_spec const *chan,
drivers/iio/accel/fxls8962af-core.c
420
struct iio_chan_spec const *chan,
drivers/iio/accel/fxls8962af-core.c
427
switch (chan->type) {
drivers/iio/accel/fxls8962af-core.c
430
return fxls8962af_get_out(data, chan, val);
drivers/iio/accel/fxls8962af-core.c
435
if (chan->type != IIO_TEMP)
drivers/iio/accel/fxls8962af-core.c
441
switch (chan->type) {
drivers/iio/accel/fxls8962af-core.c
459
struct iio_chan_spec const *chan,
drivers/iio/accel/fxls8962af-core.c
512
const struct iio_chan_spec *chan,
drivers/iio/accel/fxls8962af-core.c
531
const struct iio_chan_spec *chan,
drivers/iio/accel/fxls8962af-core.c
550
*val = sign_extend32(data->lower_thres, chan->scan_type.realbits - 1);
drivers/iio/accel/fxls8962af-core.c
558
*val = sign_extend32(data->upper_thres, chan->scan_type.realbits - 1);
drivers/iio/accel/fxls8962af-core.c
566
const struct iio_chan_spec *chan,
drivers/iio/accel/fxls8962af-core.c
590
ret = __fxls8962af_set_thresholds(data, chan, dir, val_masked);
drivers/iio/accel/fxls8962af-core.c
596
return __fxls8962af_set_thresholds(data, chan, dir, val_masked);
drivers/iio/accel/fxls8962af-core.c
602
const struct iio_chan_spec *chan,
drivers/iio/accel/fxls8962af-core.c
611
switch (chan->channel2) {
drivers/iio/accel/fxls8962af-core.c
625
const struct iio_chan_spec *chan,
drivers/iio/accel/fxls8962af-core.c
636
switch (chan->channel2) {
drivers/iio/accel/hid-sensor-accel-3d.c
124
struct iio_chan_spec const *chan,
drivers/iio/accel/hid-sensor-accel-3d.c
141
report_id = accel_state->accel[chan->scan_index].report_id;
drivers/iio/accel/hid-sensor-accel-3d.c
142
min = accel_state->accel[chan->scan_index].logical_minimum;
drivers/iio/accel/hid-sensor-accel-3d.c
143
address = accel_3d_addresses[chan->scan_index];
drivers/iio/accel/hid-sensor-accel-3d.c
186
struct iio_chan_spec const *chan,
drivers/iio/accel/kionix-kx022a.c
313
const struct iio_chan_spec *chan)
drivers/iio/accel/kionix-kx022a.c
430
struct iio_chan_spec const *chan,
drivers/iio/accel/kionix-kx022a.c
510
struct iio_chan_spec const *chan,
drivers/iio/accel/kionix-kx022a.c
524
struct iio_chan_spec const *chan,
drivers/iio/accel/kionix-kx022a.c
576
struct iio_chan_spec const *chan,
drivers/iio/accel/kionix-kx022a.c
593
ret = __kx022a_write_raw(idev, chan, val, val2, mask);
drivers/iio/accel/kionix-kx022a.c
611
struct iio_chan_spec const *chan,
drivers/iio/accel/kionix-kx022a.c
616
ret = regmap_bulk_read(data->regmap, chan->address, &data->buffer[0],
drivers/iio/accel/kionix-kx022a.c
627
struct iio_chan_spec const *chan,
drivers/iio/accel/kionix-kx022a.c
640
ret = kx022a_get_axis(data, chan, val);
drivers/iio/accel/kxcjk-1013.c
1015
const struct iio_chan_spec *chan,
drivers/iio/accel/kxcjk-1013.c
1025
const struct iio_chan_spec *chan,
drivers/iio/accel/kxcjk-1013.c
1128
const struct iio_chan_spec *chan)
drivers/iio/accel/kxcjk-1013.c
886
struct iio_chan_spec const *chan, int *val,
drivers/iio/accel/kxcjk-1013.c
903
ret = kxcjk1013_get_acc_reg(data, chan->scan_index);
drivers/iio/accel/kxcjk-1013.c
909
*val = sign_extend32(ret >> chan->scan_type.shift,
drivers/iio/accel/kxcjk-1013.c
910
chan->scan_type.realbits - 1);
drivers/iio/accel/kxcjk-1013.c
937
struct iio_chan_spec const *chan, int val,
drivers/iio/accel/kxcjk-1013.c
965
const struct iio_chan_spec *chan,
drivers/iio/accel/kxcjk-1013.c
989
const struct iio_chan_spec *chan,
drivers/iio/accel/kxsd9.c
137
struct iio_chan_spec const *chan,
drivers/iio/accel/kxsd9.c
161
struct iio_chan_spec const *chan,
drivers/iio/accel/kxsd9.c
174
ret = regmap_bulk_read(st->map, chan->address, &raw_val,
drivers/iio/accel/kxsd9.c
217
__be16 chan[4];
drivers/iio/accel/kxsd9.c
224
hw_values.chan,
drivers/iio/accel/kxsd9.c
225
sizeof(hw_values.chan));
drivers/iio/accel/kxsd9.c
264
const struct iio_chan_spec *chan)
drivers/iio/accel/mc3230.c
117
struct iio_chan_spec const *chan,
drivers/iio/accel/mc3230.c
125
ret = i2c_smbus_read_byte_data(data->client, chan->address);
drivers/iio/accel/mc3230.c
75
const struct iio_chan_spec *chan)
drivers/iio/accel/mma7455_core.c
117
struct iio_chan_spec const *chan,
drivers/iio/accel/mma7455_core.c
134
ret = regmap_bulk_read(mma7455->regmap, chan->address, &data,
drivers/iio/accel/mma7455_core.c
140
chan->scan_type.realbits - 1);
drivers/iio/accel/mma7455_core.c
167
struct iio_chan_spec const *chan,
drivers/iio/accel/mma7660.c
156
struct iio_chan_spec const *chan,
drivers/iio/accel/mma7660.c
165
ret = mma7660_read_accel(data, chan->address);
drivers/iio/accel/mma7660.c
54
const struct iio_chan_spec *chan)
drivers/iio/accel/mma8452.c
1003
val |= BIT(chan->scan_index +
drivers/iio/accel/mma8452.c
1009
val &= ~BIT(chan->scan_index +
drivers/iio/accel/mma8452.c
1196
const struct iio_chan_spec *chan)
drivers/iio/accel/mma8452.c
490
struct iio_chan_spec const *chan,
drivers/iio/accel/mma8452.c
510
buffer[chan->scan_index]) >> chan->scan_type.shift,
drivers/iio/accel/mma8452.c
511
chan->scan_type.realbits - 1);
drivers/iio/accel/mma8452.c
529
chan->scan_index);
drivers/iio/accel/mma8452.c
64
#define MMA8452_TRANSIENT_CFG_CHAN(chan) BIT(chan + 1)
drivers/iio/accel/mma8452.c
709
struct iio_chan_spec const *chan,
drivers/iio/accel/mma8452.c
745
MMA8452_OFF_X + chan->scan_index,
drivers/iio/accel/mma8452.c
777
struct iio_chan_spec const *chan,
drivers/iio/accel/mma8452.c
785
ret = __mma8452_write_raw(indio_dev, chan, val, val2, mask);
drivers/iio/accel/mma8452.c
791
const struct iio_chan_spec *chan,
drivers/iio/accel/mma8452.c
795
if (!chan)
drivers/iio/accel/mma8452.c
798
switch (chan->type) {
drivers/iio/accel/mma8452.c
822
const struct iio_chan_spec *chan,
drivers/iio/accel/mma8452.c
832
ret = mma8452_get_event_regs(data, chan, dir, &ev_regs);
drivers/iio/accel/mma8452.c
885
const struct iio_chan_spec *chan,
drivers/iio/accel/mma8452.c
895
ret = mma8452_get_event_regs(data, chan, dir, &ev_regs);
drivers/iio/accel/mma8452.c
943
const struct iio_chan_spec *chan,
drivers/iio/accel/mma8452.c
951
ret = mma8452_get_event_regs(data, chan, dir, &ev_regs);
drivers/iio/accel/mma8452.c
963
return !!(ret & BIT(chan->scan_index +
drivers/iio/accel/mma8452.c
971
const struct iio_chan_spec *chan,
drivers/iio/accel/mma8452.c
980
ret = mma8452_get_event_regs(data, chan, dir, &ev_regs);
drivers/iio/accel/mma9551.c
104
struct iio_chan_spec const *chan,
drivers/iio/accel/mma9551.c
112
switch (chan->type) {
drivers/iio/accel/mma9551.c
115
ret = mma9551_read_incli_chan(data->client, chan, val);
drivers/iio/accel/mma9551.c
122
switch (chan->type) {
drivers/iio/accel/mma9551.c
126
chan, val, val2);
drivers/iio/accel/mma9551.c
133
switch (chan->type) {
drivers/iio/accel/mma9551.c
145
const struct iio_chan_spec *chan,
drivers/iio/accel/mma9551.c
151
switch (chan->type) {
drivers/iio/accel/mma9551.c
154
return data->event_enabled[chan->channel2 - 1];
drivers/iio/accel/mma9551.c
222
const struct iio_chan_spec *chan,
drivers/iio/accel/mma9551.c
230
switch (chan->type) {
drivers/iio/accel/mma9551.c
234
chan->channel2, state);
drivers/iio/accel/mma9551.c
243
const struct iio_chan_spec *chan,
drivers/iio/accel/mma9551.c
252
switch (chan->type) {
drivers/iio/accel/mma9551.c
270
const struct iio_chan_spec *chan,
drivers/iio/accel/mma9551.c
280
switch (chan->type) {
drivers/iio/accel/mma9551.c
50
const struct iio_chan_spec *chan,
drivers/iio/accel/mma9551.c
57
switch (chan->channel2) {
drivers/iio/accel/mma9551_core.c
723
const struct iio_chan_spec *chan,
drivers/iio/accel/mma9551_core.c
730
switch (chan->channel2) {
drivers/iio/accel/mma9551_core.h
68
const struct iio_chan_spec *chan,
drivers/iio/accel/mma9553.c
459
struct iio_chan_spec const *chan,
drivers/iio/accel/mma9553.c
469
switch (chan->type) {
drivers/iio/accel/mma9553.c
501
if (chan->channel2 == mma9553_activity_to_mod(activity))
drivers/iio/accel/mma9553.c
510
switch (chan->type) {
drivers/iio/accel/mma9553.c
512
if (chan->channel2 != IIO_MOD_ROOT_SUM_SQUARED_X_Y_Z)
drivers/iio/accel/mma9553.c
532
chan, val, val2);
drivers/iio/accel/mma9553.c
539
switch (chan->type) {
drivers/iio/accel/mma9553.c
541
if (chan->channel2 != IIO_MOD_ROOT_SUM_SQUARED_X_Y_Z)
drivers/iio/accel/mma9553.c
568
switch (chan->type) {
drivers/iio/accel/mma9553.c
577
switch (chan->type) {
drivers/iio/accel/mma9553.c
586
switch (chan->type) {
drivers/iio/accel/mma9553.c
588
if (chan->channel2 != IIO_MOD_ROOT_SUM_SQUARED_X_Y_Z)
drivers/iio/accel/mma9553.c
602
struct iio_chan_spec const *chan,
drivers/iio/accel/mma9553.c
644
switch (chan->type) {
drivers/iio/accel/mma9553.c
664
switch (chan->type) {
drivers/iio/accel/mma9553.c
678
switch (chan->type) {
drivers/iio/accel/mma9553.c
680
if (chan->channel2 != IIO_MOD_ROOT_SUM_SQUARED_X_Y_Z)
drivers/iio/accel/mma9553.c
707
const struct iio_chan_spec *chan,
drivers/iio/accel/mma9553.c
714
event = mma9553_get_event(data, chan->type, chan->channel2, dir);
drivers/iio/accel/mma9553.c
722
const struct iio_chan_spec *chan,
drivers/iio/accel/mma9553.c
731
event = mma9553_get_event(data, chan->type, chan->channel2, dir);
drivers/iio/accel/mma9553.c
764
const struct iio_chan_spec *chan,
drivers/iio/accel/mma9553.c
775
switch (chan->type) {
drivers/iio/accel/mma9553.c
791
switch (chan->type) {
drivers/iio/accel/mma9553.c
804
const struct iio_chan_spec *chan,
drivers/iio/accel/mma9553.c
815
switch (chan->type) {
drivers/iio/accel/mma9553.c
830
switch (chan->type) {
drivers/iio/accel/mma9553.c
851
const struct iio_chan_spec *chan)
drivers/iio/accel/mma9553.c
865
const struct iio_chan_spec *chan,
drivers/iio/accel/msa311.c
569
const struct iio_chan_spec * const chan,
drivers/iio/accel/msa311.c
575
if (chan->scan_index < MSA311_SI_X || chan->scan_index > MSA311_SI_Z) {
drivers/iio/accel/msa311.c
577
chan->scan_index);
drivers/iio/accel/msa311.c
582
axis_reg = MSA311_ACC_X_REG + (chan->scan_index << 1);
drivers/iio/accel/msa311.c
588
struct iio_chan_spec const *chan,
drivers/iio/accel/msa311.c
606
err = msa311_get_axis(msa311, chan, &axis);
drivers/iio/accel/msa311.c
615
chan->datasheet_name, ERR_PTR(err));
drivers/iio/accel/msa311.c
623
*val = sign_extend32(le16_to_cpu(axis) >> chan->scan_type.shift,
drivers/iio/accel/msa311.c
624
chan->scan_type.realbits - 1);
drivers/iio/accel/msa311.c
674
struct iio_chan_spec const *chan,
drivers/iio/accel/msa311.c
679
return msa311_read_raw_data(indio_dev, chan, val, val2);
drivers/iio/accel/msa311.c
693
struct iio_chan_spec const *chan,
drivers/iio/accel/msa311.c
792
struct iio_chan_spec const *chan,
drivers/iio/accel/msa311.c
887
const struct iio_chan_spec *chan;
drivers/iio/accel/msa311.c
899
chan = &msa311_channels[bit];
drivers/iio/accel/msa311.c
901
err = msa311_get_axis(msa311, chan, &axis);
drivers/iio/accel/msa311.c
905
chan->datasheet_name, ERR_PTR(err));
drivers/iio/accel/mxc4005.c
222
struct iio_chan_spec const *chan,
drivers/iio/accel/mxc4005.c
230
switch (chan->type) {
drivers/iio/accel/mxc4005.c
235
ret = mxc4005_read_axis(data, chan->address);
drivers/iio/accel/mxc4005.c
238
*val = sign_extend32(ret >> chan->scan_type.shift,
drivers/iio/accel/mxc4005.c
239
chan->scan_type.realbits - 1);
drivers/iio/accel/mxc4005.c
258
struct iio_chan_spec const *chan,
drivers/iio/accel/mxc4005.c
276
const struct iio_chan_spec *chan)
drivers/iio/accel/mxc6255.c
48
struct iio_chan_spec const *chan,
drivers/iio/accel/mxc6255.c
57
ret = regmap_read(data->regmap, chan->address, &reg);
drivers/iio/accel/mxc6255.c
60
"Error reading reg %lu\n", chan->address);
drivers/iio/accel/sca3000.c
1099
const struct iio_chan_spec *chan,
drivers/iio/accel/sca3000.c
1112
switch (chan->channel2) {
drivers/iio/accel/sca3000.c
1132
ret = !!(ret & sca3000_addresses[chan->address][2]);
drivers/iio/accel/sca3000.c
1237
const struct iio_chan_spec *chan,
drivers/iio/accel/sca3000.c
1246
switch (chan->channel2) {
drivers/iio/accel/sca3000.c
1255
chan->address,
drivers/iio/accel/sca3000.c
703
struct iio_chan_spec const *chan,
drivers/iio/accel/sca3000.c
715
if (chan->type == IIO_ACCEL) {
drivers/iio/accel/sca3000.c
720
address = sca3000_addresses[chan->address][0];
drivers/iio/accel/sca3000.c
727
chan->scan_type.shift,
drivers/iio/accel/sca3000.c
728
chan->scan_type.realbits - 1);
drivers/iio/accel/sca3000.c
739
chan->scan_type.shift) &
drivers/iio/accel/sca3000.c
740
GENMASK(chan->scan_type.realbits - 1, 0);
drivers/iio/accel/sca3000.c
746
if (chan->type == IIO_ACCEL)
drivers/iio/accel/sca3000.c
771
struct iio_chan_spec const *chan,
drivers/iio/accel/sca3000.c
858
const struct iio_chan_spec *chan,
drivers/iio/accel/sca3000.c
872
sca3000_addresses[chan->address][1]);
drivers/iio/accel/sca3000.c
877
if (chan->channel2 == IIO_MOD_Y)
drivers/iio/accel/sca3000.c
910
const struct iio_chan_spec *chan,
drivers/iio/accel/sca3000.c
921
if (chan->channel2 == IIO_MOD_Y) {
drivers/iio/accel/sca3000.c
939
sca3000_addresses[chan->address][1],
drivers/iio/accel/sca3300.c
400
struct iio_chan_spec const *chan,
drivers/iio/accel/sca3300.c
409
if (chan->type != IIO_ACCEL)
drivers/iio/accel/sca3300.c
431
struct iio_chan_spec const *chan,
drivers/iio/accel/sca3300.c
440
ret = sca3300_read_reg(data, chan->address, val);
drivers/iio/accel/sca3300.c
448
switch (chan->type) {
drivers/iio/accel/sca3300.c
573
struct iio_chan_spec const *chan,
drivers/iio/accel/sca3300.c
580
switch (chan->type) {
drivers/iio/accel/ssp_accel_sensor.c
28
struct iio_chan_spec const *chan, int *val,
drivers/iio/accel/ssp_accel_sensor.c
47
struct iio_chan_spec const *chan, int val,
drivers/iio/accel/st_accel_core.c
1365
struct iio_chan_spec const *chan, int val, int val2, long mask)
drivers/iio/accel/st_accel_core.c
42
const struct iio_chan_spec *chan)
drivers/iio/accel/stk8312.c
335
struct iio_chan_spec const *chan,
drivers/iio/accel/stk8312.c
351
ret = stk8312_read_accel(data, chan->address);
drivers/iio/accel/stk8312.c
358
*val = sign_extend32(ret, chan->scan_type.realbits - 1);
drivers/iio/accel/stk8312.c
379
struct iio_chan_spec const *chan,
drivers/iio/accel/stk8ba50.c
207
struct iio_chan_spec const *chan,
drivers/iio/accel/stk8ba50.c
223
ret = stk8ba50_read_accel(data, chan->address);
drivers/iio/accel/stk8ba50.c
229
*val = sign_extend32(ret >> chan->scan_type.shift,
drivers/iio/accel/stk8ba50.c
230
chan->scan_type.realbits - 1);
drivers/iio/accel/stk8ba50.c
249
struct iio_chan_spec const *chan,
drivers/iio/adc/88pm886-gpadc.c
130
static int gpadc_get_raw(struct iio_dev *iio, enum pm886_gpadc_channel chan)
drivers/iio/adc/88pm886-gpadc.c
136
ret = regmap_bulk_read(gpadc->map, pm886_gpadc_regs[chan], &buf, sizeof(buf));
drivers/iio/adc/88pm886-gpadc.c
144
gpadc_set_bias(struct pm886_gpadc *gpadc, enum pm886_gpadc_channel chan, bool on)
drivers/iio/adc/88pm886-gpadc.c
146
unsigned int gpadc_num = chan - GPADC0_CHAN;
drivers/iio/adc/88pm886-gpadc.c
153
gpadc_find_bias_current(struct iio_dev *iio, struct iio_chan_spec const *chan,
drivers/iio/adc/88pm886-gpadc.c
157
unsigned int gpadc_num = chan->channel - GPADC0_CHAN;
drivers/iio/adc/88pm886-gpadc.c
159
unsigned long lsb = chan->address;
drivers/iio/adc/88pm886-gpadc.c
171
*raw_uV = gpadc_get_raw(iio, chan->channel) * lsb;
drivers/iio/adc/88pm886-gpadc.c
192
chan->channel, *raw_uA, *raw_uV);
drivers/iio/adc/88pm886-gpadc.c
197
chan->channel, *raw_uA, *raw_uV);
drivers/iio/adc/88pm886-gpadc.c
201
dev_err(&iio->dev, "failed to find good bias for chan %d\n", chan->channel);
drivers/iio/adc/88pm886-gpadc.c
206
gpadc_get_resistance_ohm(struct iio_dev *iio, struct iio_chan_spec const *chan)
drivers/iio/adc/88pm886-gpadc.c
212
ret = gpadc_set_bias(gpadc, chan->channel, true);
drivers/iio/adc/88pm886-gpadc.c
216
ret = gpadc_find_bias_current(iio, chan, &raw_uV, &raw_uA);
drivers/iio/adc/88pm886-gpadc.c
222
gpadc_set_bias(gpadc, chan->channel, false);
drivers/iio/adc/88pm886-gpadc.c
227
__pm886_gpadc_read_raw(struct iio_dev *iio, struct iio_chan_spec const *chan,
drivers/iio/adc/88pm886-gpadc.c
230
unsigned long lsb = chan->address;
drivers/iio/adc/88pm886-gpadc.c
234
*val = gpadc_get_raw(iio, chan->channel);
drivers/iio/adc/88pm886-gpadc.c
242
if (chan->type == IIO_VOLTAGE) {
drivers/iio/adc/88pm886-gpadc.c
254
*val = gpadc_get_resistance_ohm(iio, chan);
drivers/iio/adc/88pm886-gpadc.c
264
static int pm886_gpadc_read_raw(struct iio_dev *iio, struct iio_chan_spec const *chan,
drivers/iio/adc/88pm886-gpadc.c
274
ret = __pm886_gpadc_read_raw(iio, chan, val, val2, mask);
drivers/iio/adc/ab8500-gpadc.c
1003
if ((chan == AB8500_GPADC_CHAN_MAIN_CHARGER_CURRENT) ||
drivers/iio/adc/ab8500-gpadc.c
1004
(chan == AB8500_GPADC_CHAN_USB_CHARGER_CURRENT))
drivers/iio/adc/ab8500-gpadc.c
1009
ch->id = chan;
drivers/iio/adc/ab8500-gpadc.c
255
ab8500_gpadc_get_channel(struct ab8500_gpadc *gpadc, u8 chan)
drivers/iio/adc/ab8500-gpadc.c
262
if (ch->id == chan)
drivers/iio/adc/ab8500-gpadc.c
890
struct iio_chan_spec const *chan,
drivers/iio/adc/ab8500-gpadc.c
898
ch = ab8500_gpadc_get_channel(gpadc, chan->address);
drivers/iio/adc/ab8500-gpadc.c
901
chan->address);
drivers/iio/adc/ab8500-gpadc.c
983
u32 chan;
drivers/iio/adc/ab8500-gpadc.c
986
ret = fwnode_property_read_u32(fwnode, "reg", &chan);
drivers/iio/adc/ab8500-gpadc.c
991
if (chan > AB8500_GPADC_CHAN_BAT_TEMP_AND_IBAT) {
drivers/iio/adc/ab8500-gpadc.c
992
dev_err(dev, "%s channel number out of range %d\n", name, chan);
drivers/iio/adc/ab8500-gpadc.c
996
iio_chan->channel = chan;
drivers/iio/adc/ab8500-gpadc.c
999
iio_chan->address = chan;
drivers/iio/adc/ad4000.c
532
struct iio_chan_spec const *chan)
drivers/iio/adc/ad4000.c
542
if (chan->scan_type.sign == 's')
drivers/iio/adc/ad4000.c
543
scale_bits = chan->scan_type.realbits - 1;
drivers/iio/adc/ad4000.c
545
scale_bits = chan->scan_type.realbits;
drivers/iio/adc/ad4000.c
567
if (chan->differential)
drivers/iio/adc/ad4000.c
635
const struct iio_chan_spec *chan, int *val)
drivers/iio/adc/ad4000.c
645
if (chan->scan_type.endianness == IIO_BE) {
drivers/iio/adc/ad4000.c
646
if (chan->scan_type.realbits > 16)
drivers/iio/adc/ad4000.c
651
if (chan->scan_type.realbits > 16)
drivers/iio/adc/ad4000.c
657
sample >>= chan->scan_type.shift;
drivers/iio/adc/ad4000.c
659
if (chan->scan_type.sign == 's')
drivers/iio/adc/ad4000.c
660
*val = sign_extend32(sample, chan->scan_type.realbits - 1);
drivers/iio/adc/ad4000.c
668
struct iio_chan_spec const *chan, int *val,
drivers/iio/adc/ad4000.c
679
ret = ad4000_single_conversion(indio_dev, chan, val);
drivers/iio/adc/ad4000.c
701
struct iio_chan_spec const *chan,
drivers/iio/adc/ad4000.c
719
struct iio_chan_spec const *chan, long mask)
drivers/iio/adc/ad4000.c
730
struct iio_chan_spec const *chan,
drivers/iio/adc/ad4000.c
757
struct iio_chan_spec const *chan,
drivers/iio/adc/ad4000.c
767
ret = __ad4000_write_raw(indio_dev, chan, val2);
drivers/iio/adc/ad4000.c
902
const struct iio_chan_spec *chan)
drivers/iio/adc/ad4000.c
906
xfer->bits_per_word = chan->scan_type.realbits;
drivers/iio/adc/ad4000.c
907
xfer->len = chan->scan_type.realbits > 16 ? 4 : 2;
drivers/iio/adc/ad4000.c
935
const struct iio_chan_spec *chan)
drivers/iio/adc/ad4000.c
944
xfers[1].len = chan->scan_type.realbits > 16 ? 4 : 2;
drivers/iio/adc/ad4000.c
952
if (chan->scan_type.endianness != IIO_BE)
drivers/iio/adc/ad4000.c
953
xfers[1].bits_per_word = chan->scan_type.realbits;
drivers/iio/adc/ad4000.c
970
const struct iio_chan_spec *chan)
drivers/iio/adc/ad4000.c
983
xfers[1].len = BITS_TO_BYTES(chan->scan_type.storagebits);
drivers/iio/adc/ad4030.c
1017
struct iio_chan_spec const *chan, int *val,
drivers/iio/adc/ad4030.c
1024
return ad4030_single_conversion(indio_dev, chan, val);
drivers/iio/adc/ad4030.c
1027
return ad4030_get_chan_calibscale(indio_dev, chan, val, val2);
drivers/iio/adc/ad4030.c
1030
return ad4030_get_chan_calibbias(indio_dev, chan, val);
drivers/iio/adc/ad4030.c
1046
struct iio_chan_spec const *chan, int *val,
drivers/iio/adc/ad4030.c
1052
return ad4030_get_chan_scale(indio_dev, chan, val, val2);
drivers/iio/adc/ad4030.c
1057
ret = ad4030_read_raw_dispatch(indio_dev, chan, val, val2, info);
drivers/iio/adc/ad4030.c
1065
struct iio_chan_spec const *chan, int val,
drivers/iio/adc/ad4030.c
1070
return ad4030_set_chan_calibscale(indio_dev, chan, val, val2);
drivers/iio/adc/ad4030.c
1075
return ad4030_set_chan_calibbias(indio_dev, chan, val);
drivers/iio/adc/ad4030.c
1092
struct iio_chan_spec const *chan, int val,
drivers/iio/adc/ad4030.c
1100
ret = ad4030_write_raw_dispatch(indio_dev, chan, val, val2, info);
drivers/iio/adc/ad4030.c
1108
struct iio_chan_spec const *chan, long mask)
drivers/iio/adc/ad4030.c
1138
struct iio_chan_spec const *chan,
drivers/iio/adc/ad4030.c
1141
if (chan->differential)
drivers/iio/adc/ad4030.c
1142
return sysfs_emit(label, "differential%lu\n", chan->address);
drivers/iio/adc/ad4030.c
1143
return sysfs_emit(label, "common-mode%lu\n", chan->address);
drivers/iio/adc/ad4030.c
1147
const struct iio_chan_spec *chan)
drivers/iio/adc/ad4030.c
516
struct iio_chan_spec const *chan,
drivers/iio/adc/ad4030.c
523
scan_type = iio_get_current_scan_type(indio_dev, chan);
drivers/iio/adc/ad4030.c
534
if (chan->differential)
drivers/iio/adc/ad4030.c
545
struct iio_chan_spec const *chan,
drivers/iio/adc/ad4030.c
553
ret = regmap_bulk_read(st->regmap, AD4030_REG_GAIN_CHAN(chan->address),
drivers/iio/adc/ad4030.c
570
struct iio_chan_spec const *chan,
drivers/iio/adc/ad4030.c
577
AD4030_REG_OFFSET_CHAN(chan->address),
drivers/iio/adc/ad4030.c
693
struct iio_chan_spec const *chan,
drivers/iio/adc/ad4030.c
713
AD4030_REG_GAIN_CHAN(chan->address),
drivers/iio/adc/ad4030.c
718
struct iio_chan_spec const *chan,
drivers/iio/adc/ad4030.c
742
AD4030_REG_OFFSET_CHAN(chan->address),
drivers/iio/adc/ad4030.c
925
const struct iio_chan_spec *chan, int *val)
drivers/iio/adc/ad4030.c
930
ret = ad4030_set_mode(indio_dev, BIT(chan->scan_index));
drivers/iio/adc/ad4030.c
938
if (chan->differential)
drivers/iio/adc/ad4030.c
942
*val = st->rx_data.dual.diff[chan->address];
drivers/iio/adc/ad4030.c
947
*val = st->rx_data.dual.common[chan->address];
drivers/iio/adc/ad4062.c
1008
const struct iio_chan_spec *chan,
drivers/iio/adc/ad4062.c
1037
const struct iio_chan_spec *chan,
drivers/iio/adc/ad4062.c
1105
const struct iio_chan_spec *chan,
drivers/iio/adc/ad4062.c
1179
const struct iio_chan_spec *chan,
drivers/iio/adc/ad4062.c
1299
const struct iio_chan_spec *chan)
drivers/iio/adc/ad4062.c
498
static int ad4062_setup(struct iio_dev *indio_dev, struct iio_chan_spec const *chan,
drivers/iio/adc/ad4062.c
505
scan_type = iio_get_current_scan_type(indio_dev, chan);
drivers/iio/adc/ad4062.c
759
struct iio_chan_spec const *chan, const int **vals,
drivers/iio/adc/ad4062.c
917
struct iio_chan_spec const *chan,
drivers/iio/adc/ad4062.c
958
struct iio_chan_spec const *chan, int val,
drivers/iio/adc/ad4080.c
232
const struct iio_chan_spec *chan)
drivers/iio/adc/ad4080.c
237
unsigned int ch = chan->channel;
drivers/iio/adc/ad4080.c
247
const struct iio_chan_spec *chan,
drivers/iio/adc/ad4080.c
251
unsigned int ch = chan->channel;
drivers/iio/adc/ad4080.c
265
struct iio_chan_spec const *chan,
drivers/iio/adc/ad4080.c
275
dec_rate = ad4080_get_dec_rate(indio_dev, chan);
drivers/iio/adc/ad4080.c
278
if (st->filter_type[chan->channel] == SINC_5_COMP)
drivers/iio/adc/ad4080.c
280
if (st->filter_type[chan->channel])
drivers/iio/adc/ad4080.c
286
if (st->filter_type[chan->channel] == FILTER_NONE) {
drivers/iio/adc/ad4080.c
289
*val = ad4080_get_dec_rate(indio_dev, chan);
drivers/iio/adc/ad4080.c
300
struct iio_chan_spec const *chan,
drivers/iio/adc/ad4080.c
307
if (st->filter_type[chan->channel] == FILTER_NONE && val > 1)
drivers/iio/adc/ad4080.c
310
return ad4080_set_dec_rate(indio_dev, chan, val);
drivers/iio/adc/ad4080.c
337
const struct iio_chan_spec *chan)
drivers/iio/adc/ad4080.c
341
unsigned int ch = chan->channel;
drivers/iio/adc/ad4080.c
352
const struct iio_chan_spec *chan,
drivers/iio/adc/ad4080.c
356
unsigned int ch = chan->channel;
drivers/iio/adc/ad4080.c
362
dec_rate = ad4080_get_dec_rate(dev, chan);
drivers/iio/adc/ad4080.c
386
struct iio_chan_spec const *chan,
drivers/iio/adc/ad4080.c
394
switch (st->filter_type[chan->channel]) {
drivers/iio/adc/ad4080.c
401
*length = st->filter_type[chan->channel] >= SINC_5 ?
drivers/iio/adc/ad4130.c
1033
const struct iio_chan_spec *chan,
drivers/iio/adc/ad4130.c
1037
unsigned int channel = chan->scan_index;
drivers/iio/adc/ad4130.c
1076
const struct iio_chan_spec *chan)
drivers/iio/adc/ad4130.c
1079
unsigned int channel = chan->scan_index;
drivers/iio/adc/ad4130.c
1233
struct iio_chan_spec const *chan,
drivers/iio/adc/ad4130.c
1237
unsigned int channel = chan->scan_index;
drivers/iio/adc/ad4130.c
1257
*val = st->bipolar ? -BIT(chan->scan_type.realbits - 1) : 0;
drivers/iio/adc/ad4130.c
1273
struct iio_chan_spec const *chan,
drivers/iio/adc/ad4130.c
1278
unsigned int channel = chan->scan_index;
drivers/iio/adc/ad4130.c
1306
struct iio_chan_spec const *chan,
drivers/iio/adc/ad4130.c
1319
struct iio_chan_spec const *chan,
drivers/iio/adc/ad4130.c
1323
unsigned int channel = chan->scan_index;
drivers/iio/adc/ad4130.c
1868
struct iio_chan_spec *chan;
drivers/iio/adc/ad4130.c
1875
chan = &st->chans[index];
drivers/iio/adc/ad4130.c
1878
*chan = ad4130_channel_template;
drivers/iio/adc/ad4130.c
1879
chan->scan_type.realbits = resolution;
drivers/iio/adc/ad4130.c
1880
chan->scan_type.storagebits = resolution;
drivers/iio/adc/ad4130.c
1881
chan->scan_index = index;
drivers/iio/adc/ad4130.c
1896
chan->channel = pins[0];
drivers/iio/adc/ad4130.c
1897
chan->channel2 = pins[1];
drivers/iio/adc/ad4130.c
2229
struct iio_chan_spec *chan = &st->chans[i];
drivers/iio/adc/ad4130.c
2233
ad4130_translate_pin(st, chan->channel)) |
drivers/iio/adc/ad4130.c
2235
ad4130_translate_pin(st, chan->channel2)) |
drivers/iio/adc/ad4134.c
251
struct iio_chan_spec const *chan,
drivers/iio/adc/ad4134.c
272
ret = regmap_read(st->regmap, AD4134_CH_VREG(chan->channel), val);
drivers/iio/adc/ad4170-4.c
1083
struct iio_chan_spec const *chan)
drivers/iio/adc/ad4170-4.c
1087
ret = ad4170_validate_channel_input(st, chan->channel, false);
drivers/iio/adc/ad4170-4.c
1091
return ad4170_validate_channel_input(st, chan->channel2,
drivers/iio/adc/ad4170-4.c
1092
!chan->differential);
drivers/iio/adc/ad4170-4.c
1101
struct iio_chan_spec const *chan,
drivers/iio/adc/ad4170-4.c
1104
bool bipolar = chan->scan_type.sign == 's';
drivers/iio/adc/ad4170-4.c
1147
if (chan->differential) {
drivers/iio/adc/ad4170-4.c
1185
ret = ad4170_get_ain_voltage_uv(st, chan->channel2, &ain_voltage);
drivers/iio/adc/ad4170-4.c
1198
struct iio_chan_spec const *chan, int *val)
drivers/iio/adc/ad4170-4.c
1231
if (chan->scan_type.sign == 's')
drivers/iio/adc/ad4170-4.c
1232
*val = sign_extend32(*val, chan->scan_type.realbits - 1);
drivers/iio/adc/ad4170-4.c
1238
struct iio_chan_spec const *chan, int *val)
drivers/iio/adc/ad4170-4.c
1250
ret = ad4170_set_channel_enable(st, chan->address, true);
drivers/iio/adc/ad4170-4.c
1254
ret = __ad4170_read_sample(indio_dev, chan, val);
drivers/iio/adc/ad4170-4.c
1258
ret2 = ad4170_set_channel_enable(st, chan->address, false);
drivers/iio/adc/ad4170-4.c
1265
ret = ad4170_set_channel_enable(st, chan->address, false);
drivers/iio/adc/ad4170-4.c
1273
struct iio_chan_spec const *chan,
drivers/iio/adc/ad4170-4.c
1277
struct ad4170_chan_info *chan_info = &st->chan_infos[chan->address];
drivers/iio/adc/ad4170-4.c
1289
ret = ad4170_read_sample(indio_dev, chan, val);
drivers/iio/adc/ad4170-4.c
1294
switch (chan->type) {
drivers/iio/adc/ad4170-4.c
1351
struct iio_chan_spec const *chan)
drivers/iio/adc/ad4170-4.c
1354
struct ad4170_chan_info *chan_info = &st->chan_infos[chan->address];
drivers/iio/adc/ad4170-4.c
1356
int bipolar = chan->scan_type.sign == 's' ? 1 : 0;
drivers/iio/adc/ad4170-4.c
1357
int precision_bits = chan->scan_type.realbits;
drivers/iio/adc/ad4170-4.c
1362
ret = ad4170_get_ain_voltage_uv(st, chan->channel2, &ainm_voltage);
drivers/iio/adc/ad4170-4.c
1418
struct iio_chan_spec const *chan,
drivers/iio/adc/ad4170-4.c
1423
struct ad4170_chan_info *chan_info = &st->chan_infos[chan->address];
drivers/iio/adc/ad4170-4.c
1434
f_type = ad4170_get_filter_type(indio_dev, chan);
drivers/iio/adc/ad4170-4.c
1456
struct iio_chan_spec const *chan, int val, int val2)
drivers/iio/adc/ad4170-4.c
1458
struct ad4170_chan_info *chan_info = &st->chan_infos[chan->address];
drivers/iio/adc/ad4170-4.c
1475
return ad4170_write_channel_setup(st, chan->address, false);
drivers/iio/adc/ad4170-4.c
1479
struct iio_chan_spec const *chan, int val,
drivers/iio/adc/ad4170-4.c
1482
struct ad4170_chan_info *chan_info = &st->chan_infos[chan->address];
drivers/iio/adc/ad4170-4.c
1511
return ad4170_write_channel_setup(st, chan->address, false);
drivers/iio/adc/ad4170-4.c
1515
struct iio_chan_spec const *chan, int val)
drivers/iio/adc/ad4170-4.c
1517
struct ad4170_chan_info *chan_info = &st->chan_infos[chan->address];
drivers/iio/adc/ad4170-4.c
1523
return ad4170_write_channel_setup(st, chan->address, false);
drivers/iio/adc/ad4170-4.c
1527
struct iio_chan_spec const *chan, int val)
drivers/iio/adc/ad4170-4.c
1529
struct ad4170_chan_info *chan_info = &st->chan_infos[chan->address];
drivers/iio/adc/ad4170-4.c
1535
return ad4170_write_channel_setup(st, chan->address, false);
drivers/iio/adc/ad4170-4.c
1539
struct iio_chan_spec const *chan, int val,
drivers/iio/adc/ad4170-4.c
1546
return ad4170_set_pga(st, chan, val, val2);
drivers/iio/adc/ad4170-4.c
1548
return ad4170_set_channel_freq(st, chan, val, val2);
drivers/iio/adc/ad4170-4.c
1550
return ad4170_set_calib_offset(st, chan, val);
drivers/iio/adc/ad4170-4.c
1552
return ad4170_set_calib_gain(st, chan, val);
drivers/iio/adc/ad4170-4.c
1559
struct iio_chan_spec const *chan, int val,
drivers/iio/adc/ad4170-4.c
1567
ret = __ad4170_write_raw(indio_dev, chan, val, val2, info);
drivers/iio/adc/ad4170-4.c
1573
struct iio_chan_spec const *chan,
drivers/iio/adc/ad4170-4.c
2113
struct iio_chan_spec *chan,
drivers/iio/adc/ad4170-4.c
2128
chan->differential = true;
drivers/iio/adc/ad4170-4.c
2129
chan->channel = pins[0];
drivers/iio/adc/ad4170-4.c
2130
chan->channel2 = pins[1];
drivers/iio/adc/ad4170-4.c
2147
if (st->pins_fn[chan->channel2] & AD4170_PIN_VBIAS) {
drivers/iio/adc/ad4170-4.c
2148
reg_val = BIT(chan->channel2);
drivers/iio/adc/ad4170-4.c
2208
struct iio_chan_spec *chan)
drivers/iio/adc/ad4170-4.c
2226
chan->differential = true;
drivers/iio/adc/ad4170-4.c
2227
chan->channel = pins[0];
drivers/iio/adc/ad4170-4.c
2228
chan->channel2 = pins[1];
drivers/iio/adc/ad4170-4.c
2245
chan->differential = false;
drivers/iio/adc/ad4170-4.c
2246
chan->channel = pins[0];
drivers/iio/adc/ad4170-4.c
2247
chan->channel2 = pins[1];
drivers/iio/adc/ad4170-4.c
2252
chan->address, ret, ret2);
drivers/iio/adc/ad4170-4.c
2264
struct iio_chan_spec *chan;
drivers/iio/adc/ad4170-4.c
2278
chan = &st->chans[chan_num];
drivers/iio/adc/ad4170-4.c
2279
*chan = ad4170_channel_template;
drivers/iio/adc/ad4170-4.c
2281
chan->address = ch_reg;
drivers/iio/adc/ad4170-4.c
2282
chan->scan_index = ch_reg;
drivers/iio/adc/ad4170-4.c
2283
chan_info = &st->chan_infos[chan->address];
drivers/iio/adc/ad4170-4.c
2301
ret = ad4170_parse_adc_channel_type(dev, child, chan);
drivers/iio/adc/ad4170-4.c
2309
ret = ad4170_parse_external_sensor(st, child, setup, chan, s_type);
drivers/iio/adc/ad4170-4.c
2321
chan->scan_type.sign = 's';
drivers/iio/adc/ad4170-4.c
2323
chan->scan_type.sign = 'u';
drivers/iio/adc/ad4170-4.c
2325
ret = ad4170_validate_channel(st, chan);
drivers/iio/adc/ad4170-4.c
2330
ret = ad4170_get_input_range(st, chan, ch_reg, ref_select);
drivers/iio/adc/ad4170-4.c
2608
struct iio_chan_spec const *chan;
drivers/iio/adc/ad4170-4.c
2612
chan = &indio_dev->channels[i];
drivers/iio/adc/ad4170-4.c
2613
if (chan->type == IIO_TIMESTAMP)
drivers/iio/adc/ad4170-4.c
2616
chan_info = &st->chan_infos[chan->address];
drivers/iio/adc/ad4170-4.c
2620
ret = ad4170_write_channel_setup(st, chan->address, false);
drivers/iio/adc/ad4170-4.c
2625
val = FIELD_PREP(AD4170_CHAN_MAP_AINP_MSK, chan->channel) |
drivers/iio/adc/ad4170-4.c
2626
FIELD_PREP(AD4170_CHAN_MAP_AINM_MSK, chan->channel2);
drivers/iio/adc/ad4170-4.c
2633
ret = ad4170_set_channel_freq(st, chan,
drivers/iio/adc/ad4170-4.c
2639
ret = ad4170_fill_scale_tbl(indio_dev, chan);
drivers/iio/adc/ad4170-4.c
847
struct iio_chan_spec const *chan,
drivers/iio/adc/ad4170-4.c
851
struct ad4170_chan_info *chan_info = &st->chan_infos[chan->address];
drivers/iio/adc/ad4170-4.c
893
ret = ad4170_write_channel_setup(st, chan->address, false);
drivers/iio/adc/ad4170-4.c
901
struct iio_chan_spec const *chan)
drivers/iio/adc/ad4170-4.c
904
struct ad4170_chan_info *chan_info = &st->chan_infos[chan->address];
drivers/iio/adc/ad4691.c
814
struct iio_chan_spec const *chan,
drivers/iio/adc/ad4691.c
847
struct iio_chan_spec const *chan, int *val)
drivers/iio/adc/ad4691.c
861
BIT(chan->channel));
drivers/iio/adc/ad4691.c
866
~BIT(chan->channel) & GENMASK(15, 0));
drivers/iio/adc/ad4691.c
894
ret = regmap_read(st->regmap, AD4691_AVG_IN(chan->channel), &reg_val);
drivers/iio/adc/ad4691.c
908
struct iio_chan_spec const *chan, int *val,
drivers/iio/adc/ad4691.c
919
return ad4691_single_shot_read(indio_dev, chan, val);
drivers/iio/adc/ad4691.c
939
*val2 = chan->scan_type.realbits;
drivers/iio/adc/ad4691.c
947
struct iio_chan_spec const *chan,
drivers/iio/adc/ad4695.c
1023
struct iio_chan_spec const *chan,
drivers/iio/adc/ad4695.c
1026
u8 realbits = chan->scan_type.realbits;
drivers/iio/adc/ad4695.c
1029
ret = ad4695_read_one_sample(st, chan->address);
drivers/iio/adc/ad4695.c
1033
if (chan->scan_type.sign == 's')
drivers/iio/adc/ad4695.c
1042
struct iio_chan_spec const *chan,
drivers/iio/adc/ad4695.c
1052
if (chan->type == IIO_VOLTAGE)
drivers/iio/adc/ad4695.c
1053
cfg = &st->channels_cfg[chan->scan_index];
drivers/iio/adc/ad4695.c
1055
scan_type = iio_get_current_scan_type(indio_dev, chan);
drivers/iio/adc/ad4695.c
1066
ret = __ad4695_read_info_raw(st, chan, val);
drivers/iio/adc/ad4695.c
1070
switch (chan->type) {
drivers/iio/adc/ad4695.c
1084
switch (chan->type) {
drivers/iio/adc/ad4695.c
1104
switch (chan->type) {
drivers/iio/adc/ad4695.c
1109
AD4695_REG_GAIN_IN(chan->scan_index),
drivers/iio/adc/ad4695.c
1122
switch (chan->type)
drivers/iio/adc/ad4695.c
1127
AD4695_REG_OFFSET_IN(chan->scan_index),
drivers/iio/adc/ad4695.c
1166
switch (chan->type) {
drivers/iio/adc/ad4695.c
1177
if (chan->type == IIO_VOLTAGE)
drivers/iio/adc/ad4695.c
1198
struct iio_chan_spec const *chan,
drivers/iio/adc/ad4695.c
1210
struct iio_chan_spec const *chan,
drivers/iio/adc/ad4695.c
1218
switch (chan->type) {
drivers/iio/adc/ad4695.c
1220
st->channels_cfg[chan->scan_index].oversampling_ratio = val;
drivers/iio/adc/ad4695.c
1222
AD4695_REG_CONFIG_IN(chan->scan_index),
drivers/iio/adc/ad4695.c
1266
struct iio_chan_spec const *chan,
drivers/iio/adc/ad4695.c
1273
if (chan->type == IIO_VOLTAGE)
drivers/iio/adc/ad4695.c
1274
osr = st->channels_cfg[chan->scan_index].oversampling_ratio;
drivers/iio/adc/ad4695.c
1278
switch (chan->type) {
drivers/iio/adc/ad4695.c
1290
AD4695_REG_GAIN_IN(chan->scan_index),
drivers/iio/adc/ad4695.c
1296
switch (chan->type) {
drivers/iio/adc/ad4695.c
1300
AD4695_REG_OFFSET_IN(chan->scan_index),
drivers/iio/adc/ad4695.c
1327
return ad4695_set_osr_val(st, chan, val);
drivers/iio/adc/ad4695.c
1334
struct iio_chan_spec const *chan,
drivers/iio/adc/ad4695.c
1341
ret = __ad4695_write_raw(indio_dev, chan, val, val2, mask);
drivers/iio/adc/ad4695.c
1348
struct iio_chan_spec const *chan,
drivers/iio/adc/ad4695.c
1387
if (chan->type == IIO_VOLTAGE)
drivers/iio/adc/ad4695.c
1388
osr = st->channels_cfg[chan->scan_index].oversampling_ratio;
drivers/iio/adc/ad4695.c
1392
switch (chan->type) {
drivers/iio/adc/ad4695.c
1401
switch (chan->type) {
drivers/iio/adc/ad4695.c
1424
switch (chan->type) {
drivers/iio/adc/ad4695.c
1470
const struct iio_chan_spec *chan)
drivers/iio/adc/ad4695.c
1473
unsigned int osr = st->channels_cfg[chan->scan_index].oversampling_ratio;
drivers/iio/adc/ad4695.c
1742
struct iio_chan_spec *chan = &st->iio_chan[i];
drivers/iio/adc/ad4695.c
1754
chan->scan_type.shift = 3;
drivers/iio/adc/ad4695.c
1755
chan->scan_type.storagebits = 32;
drivers/iio/adc/ad4695.c
1757
chan->info_mask_separate |= BIT(IIO_CHAN_INFO_SAMP_FREQ);
drivers/iio/adc/ad4695.c
1758
chan->info_mask_separate_available |= BIT(IIO_CHAN_INFO_SAMP_FREQ);
drivers/iio/adc/ad4695.c
1761
if (chan->type != IIO_VOLTAGE)
drivers/iio/adc/ad4695.c
1766
chan->info_mask_separate |= BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO);
drivers/iio/adc/ad4695.c
1767
chan->info_mask_separate_available |=
drivers/iio/adc/ad4695.c
1769
chan->has_ext_scan_type = 1;
drivers/iio/adc/ad4695.c
1771
chan->ext_scan_type = ad4695_scan_type_offload_s;
drivers/iio/adc/ad4695.c
1772
chan->num_ext_scan_type =
drivers/iio/adc/ad4695.c
1775
chan->ext_scan_type = ad4695_scan_type_offload_u;
drivers/iio/adc/ad4695.c
1776
chan->num_ext_scan_type =
drivers/iio/adc/ad4851.c
720
const struct iio_chan_spec *chan, int val, int val2)
drivers/iio/adc/ad4851.c
729
if (st->bipolar_ch[chan->channel]) {
drivers/iio/adc/ad4851.c
747
AD4851_REG_CHX_SOFTSPAN(chan->channel),
drivers/iio/adc/ad4851.c
755
const struct iio_chan_spec *chan, int *val,
drivers/iio/adc/ad4851.c
764
if (st->bipolar_ch[chan->channel]) {
drivers/iio/adc/ad4851.c
772
ret = regmap_read(st->regmap, AD4851_REG_CHX_SOFTSPAN(chan->channel),
drivers/iio/adc/ad4851.c
794
const struct iio_chan_spec *chan,
drivers/iio/adc/ad4851.c
805
return ad4851_get_calibscale(st, chan->channel, val, val2);
drivers/iio/adc/ad4851.c
807
return ad4851_get_scale(indio_dev, chan, val, val2);
drivers/iio/adc/ad4851.c
809
return ad4851_get_calibbias(st, chan->channel, val);
drivers/iio/adc/ad4851.c
818
struct iio_chan_spec const *chan,
drivers/iio/adc/ad4851.c
829
return ad4851_set_scale(indio_dev, chan, val, val2);
drivers/iio/adc/ad4851.c
831
return ad4851_set_calibscale(st, chan->channel, val, val2);
drivers/iio/adc/ad4851.c
833
return ad4851_set_calibbias(st, chan->channel, val);
drivers/iio/adc/ad4851.c
861
struct iio_chan_spec const *chan,
drivers/iio/adc/ad4851.c
869
if (st->bipolar_ch[chan->channel]) {
drivers/iio/adc/ad4851.c
918
const struct iio_chan_spec *chan)
drivers/iio/adc/ad7091r-base.c
115
*val2 = chan->scan_type.realbits;
drivers/iio/adc/ad7091r-base.c
124
const struct iio_chan_spec *chan,
drivers/iio/adc/ad7091r-base.c
134
AD7091R_REG_CH_HIGH_LIMIT(chan->channel),
drivers/iio/adc/ad7091r-base.c
141
AD7091R_REG_CH_LOW_LIMIT(chan->channel),
drivers/iio/adc/ad7091r-base.c
152
const struct iio_chan_spec *chan,
drivers/iio/adc/ad7091r-base.c
170
AD7091R_REG_CH_HIGH_LIMIT(chan->channel),
drivers/iio/adc/ad7091r-base.c
174
AD7091R_REG_CH_LOW_LIMIT(chan->channel),
drivers/iio/adc/ad7091r-base.c
183
const struct iio_chan_spec *chan,
drivers/iio/adc/ad7091r-base.c
196
AD7091R_REG_CH_HIGH_LIMIT(chan->channel),
drivers/iio/adc/ad7091r-base.c
203
AD7091R_REG_CH_LOW_LIMIT(chan->channel),
drivers/iio/adc/ad7091r-base.c
213
AD7091R_REG_CH_HYSTERESIS(chan->channel),
drivers/iio/adc/ad7091r-base.c
224
const struct iio_chan_spec *chan,
drivers/iio/adc/ad7091r-base.c
236
AD7091R_REG_CH_HIGH_LIMIT(chan->channel),
drivers/iio/adc/ad7091r-base.c
240
AD7091R_REG_CH_LOW_LIMIT(chan->channel),
drivers/iio/adc/ad7091r-base.c
247
AD7091R_REG_CH_HYSTERESIS(chan->channel),
drivers/iio/adc/ad7091r-base.c
83
struct iio_chan_spec const *chan,
drivers/iio/adc/ad7091r-base.c
97
ret = ad7091r_read_one(iio_dev, chan->channel, &read_val);
drivers/iio/adc/ad7124.c
1010
static int ad7124_syscalib_locked(struct ad7124_state *st, const struct iio_chan_spec *chan)
drivers/iio/adc/ad7124.c
1013
struct ad7124_channel *ch = &st->channels[chan->address];
drivers/iio/adc/ad7124.c
1020
chan->address);
drivers/iio/adc/ad7124.c
1034
chan->address, ch->cfg.calibration_offset);
drivers/iio/adc/ad7124.c
1039
chan->address);
drivers/iio/adc/ad7124.c
1049
chan->address, ch->cfg.calibration_gain);
drivers/iio/adc/ad7124.c
1057
const struct iio_chan_spec *chan,
drivers/iio/adc/ad7124.c
1074
ret = ad7124_syscalib_locked(st, chan);
drivers/iio/adc/ad7124.c
1087
const struct iio_chan_spec *chan,
drivers/iio/adc/ad7124.c
1092
st->channels[chan->address].syscalib_mode = mode;
drivers/iio/adc/ad7124.c
1098
const struct iio_chan_spec *chan)
drivers/iio/adc/ad7124.c
1102
return st->channels[chan->address].syscalib_mode;
drivers/iio/adc/ad7124.c
1126
const struct iio_chan_spec *chan,
drivers/iio/adc/ad7124.c
1130
struct ad7124_channel_config *cfg = &st->channels[chan->address].cfg;
drivers/iio/adc/ad7124.c
1135
ad7124_set_channel_odr(st, chan->address);
drivers/iio/adc/ad7124.c
1141
const struct iio_chan_spec *chan)
drivers/iio/adc/ad7124.c
1147
return st->channels[chan->address].cfg.filter_type;
drivers/iio/adc/ad7124.c
1211
struct iio_chan_spec *chan;
drivers/iio/adc/ad7124.c
1231
chan = devm_kcalloc(dev, st->num_channels,
drivers/iio/adc/ad7124.c
1232
sizeof(*chan), GFP_KERNEL);
drivers/iio/adc/ad7124.c
1233
if (!chan)
drivers/iio/adc/ad7124.c
1241
indio_dev->channels = chan;
drivers/iio/adc/ad7124.c
1283
chan[channel] = ad7124_channel_template;
drivers/iio/adc/ad7124.c
1284
chan[channel].address = channel;
drivers/iio/adc/ad7124.c
1285
chan[channel].scan_index = channel;
drivers/iio/adc/ad7124.c
1286
chan[channel].channel = ain[0];
drivers/iio/adc/ad7124.c
1287
chan[channel].channel2 = ain[1];
drivers/iio/adc/ad7124.c
1299
chan[num_channels] = (struct iio_chan_spec) {
drivers/iio/adc/ad7124.c
655
static int ad7124_disable_one(struct ad_sigma_delta *sd, unsigned int chan)
drivers/iio/adc/ad7124.c
659
ad7124_release_config_slot(st, chan);
drivers/iio/adc/ad7124.c
662
return ad_sd_write_reg(&st->sd, AD7124_CHANNEL(chan), 2, 0);
drivers/iio/adc/ad7124.c
708
struct iio_chan_spec const *chan,
drivers/iio/adc/ad7124.c
723
struct iio_chan_spec const *chan,
drivers/iio/adc/ad7124.c
731
ret = ad_sigma_delta_single_conversion(indio_dev, chan, val);
drivers/iio/adc/ad7124.c
737
switch (chan->type) {
drivers/iio/adc/ad7124.c
741
idx = st->channels[chan->address].cfg.pga_bits;
drivers/iio/adc/ad7124.c
742
*val = st->channels[chan->address].cfg.vref_mv;
drivers/iio/adc/ad7124.c
743
if (st->channels[chan->address].cfg.bipolar)
drivers/iio/adc/ad7124.c
744
*val2 = chan->scan_type.realbits - 1 + idx;
drivers/iio/adc/ad7124.c
746
*val2 = chan->scan_type.realbits + idx;
drivers/iio/adc/ad7124.c
770
switch (chan->type) {
drivers/iio/adc/ad7124.c
773
if (st->channels[chan->address].cfg.bipolar)
drivers/iio/adc/ad7124.c
774
*val = -(1 << (chan->scan_type.realbits - 1));
drivers/iio/adc/ad7124.c
791
struct ad7124_channel_config *cfg = &st->channels[chan->address].cfg;
drivers/iio/adc/ad7124.c
803
*val2 = ad7124_get_fadc_divisor(st, chan->address);
drivers/iio/adc/ad7124.c
834
ret = ad7124_get_3db_filter_factor(st, chan->address);
drivers/iio/adc/ad7124.c
840
*val2 = MILLI * ad7124_get_fadc_divisor(st, chan->address);
drivers/iio/adc/ad7124.c
849
struct iio_chan_spec const *chan,
drivers/iio/adc/ad7124.c
853
struct ad7124_channel_config *cfg = &st->channels[chan->address].cfg;
drivers/iio/adc/ad7124.c
865
ad7124_set_channel_odr(st, chan->address);
drivers/iio/adc/ad7124.c
872
if (st->channels[chan->address].cfg.bipolar)
drivers/iio/adc/ad7124.c
873
full_scale = 1 << (chan->scan_type.realbits - 1);
drivers/iio/adc/ad7124.c
875
full_scale = 1 << chan->scan_type.realbits;
drivers/iio/adc/ad7124.c
877
vref = st->channels[chan->address].cfg.vref_mv * 1000000LL;
drivers/iio/adc/ad7124.c
882
st->channels[chan->address].cfg.pga_bits = res;
drivers/iio/adc/ad7173.c
1250
struct iio_chan_spec const *chan,
drivers/iio/adc/ad7173.c
1254
struct ad7173_channel *ch = &st->channels[chan->address];
drivers/iio/adc/ad7173.c
1261
ret = ad_sigma_delta_single_conversion(indio_dev, chan, val);
drivers/iio/adc/ad7173.c
1266
ret = ad4111_openwire_event(indio_dev, chan);
drivers/iio/adc/ad7173.c
1274
switch (chan->type) {
drivers/iio/adc/ad7173.c
1279
*val2 = chan->scan_type.realbits;
drivers/iio/adc/ad7173.c
1283
*val2 = chan->scan_type.realbits - !!(ch->cfg.bipolar);
drivers/iio/adc/ad7173.c
1285
if (chan->channel < st->info->num_voltage_in_div)
drivers/iio/adc/ad7173.c
1291
*val2 = chan->scan_type.realbits - ch->cfg.bipolar;
drivers/iio/adc/ad7173.c
1298
switch (chan->type) {
drivers/iio/adc/ad7173.c
1303
temp <<= chan->scan_type.realbits;
drivers/iio/adc/ad7173.c
1311
*val = -BIT(chan->scan_type.realbits - 1);
drivers/iio/adc/ad7173.c
1317
if (st->channels[chan->address].cfg.filter_type == AD7173_FILTER_SINC3) {
drivers/iio/adc/ad7173.c
1320
*val2 = 3 * 32 * st->channels[chan->address].cfg.sinc3_odr_div;
drivers/iio/adc/ad7173.c
1324
reg = st->channels[chan->address].cfg.sinc5_odr_index;
drivers/iio/adc/ad7173.c
1336
struct iio_chan_spec const *chan,
drivers/iio/adc/ad7173.c
1373
cfg = &st->channels[chan->address].cfg;
drivers/iio/adc/ad7173.c
1498
const struct iio_chan_spec *chan,
drivers/iio/adc/ad7173.c
1504
struct ad7173_channel *adchan = &st->channels[chan->address];
drivers/iio/adc/ad7173.c
1516
const struct iio_chan_spec *chan,
drivers/iio/adc/ad7173.c
1521
struct ad7173_channel *adchan = &st->channels[chan->address];
drivers/iio/adc/ad7173.c
1763
struct iio_chan_spec *chan,
drivers/iio/adc/ad7173.c
1770
BIT(chan->scan_type.realbits - !!(chan_st_priv->cfg.bipolar))
drivers/iio/adc/ad7173.c
1773
if (chan->channel < st->info->num_voltage_in_div)
drivers/iio/adc/ad7173.c
1784
struct iio_chan_spec *chan_arr, *chan;
drivers/iio/adc/ad7173.c
1847
chan = &chan_arr[chan_index];
drivers/iio/adc/ad7173.c
1848
*chan = ad7173_channel_template;
drivers/iio/adc/ad7173.c
1861
chan->differential = true;
drivers/iio/adc/ad7173.c
1869
if (!chan->differential) {
drivers/iio/adc/ad7173.c
1898
chan->address = chan_index;
drivers/iio/adc/ad7173.c
1899
chan->scan_index = chan_index;
drivers/iio/adc/ad7173.c
1900
chan->channel = ain[0];
drivers/iio/adc/ad7173.c
1911
chan->info_mask_separate |= BIT(IIO_CHAN_INFO_OFFSET);
drivers/iio/adc/ad7173.c
1914
chan->type = IIO_CURRENT;
drivers/iio/adc/ad7173.c
1915
chan->differential = false;
drivers/iio/adc/ad7173.c
1916
chan->channel2 = 0;
drivers/iio/adc/ad7173.c
1920
chan->channel2 = ain[1];
drivers/iio/adc/ad7173.c
1923
ad7173_validate_openwire_ain_inputs(st, chan->differential, ain[0], ain[1])) {
drivers/iio/adc/ad7173.c
1924
chan->event_spec = ad4111_events;
drivers/iio/adc/ad7173.c
1925
chan->num_event_specs = ARRAY_SIZE(ad4111_events);
drivers/iio/adc/ad7173.c
1927
ad7173_calc_openwire_thrsh_raw(st, chan, chan_st_priv,
drivers/iio/adc/ad7173.c
350
const struct iio_chan_spec *chan,
drivers/iio/adc/ad7173.c
355
st->channels[chan->address].syscalib_mode = mode;
drivers/iio/adc/ad7173.c
361
const struct iio_chan_spec *chan)
drivers/iio/adc/ad7173.c
365
return st->channels[chan->address].syscalib_mode;
drivers/iio/adc/ad7173.c
370
const struct iio_chan_spec *chan,
drivers/iio/adc/ad7173.c
384
mode = st->channels[chan->address].syscalib_mode;
drivers/iio/adc/ad7173.c
388
chan->address);
drivers/iio/adc/ad7173.c
391
chan->address);
drivers/iio/adc/ad7173.c
416
const struct iio_chan_spec *chan,
drivers/iio/adc/ad7173.c
424
st->channels[chan->address].cfg.filter_type = val;
drivers/iio/adc/ad7173.c
425
st->channels[chan->address].cfg.live = false;
drivers/iio/adc/ad7173.c
433
const struct iio_chan_spec *chan)
drivers/iio/adc/ad7173.c
437
return st->channels[chan->address].cfg.filter_type;
drivers/iio/adc/ad7173.c
518
const struct iio_chan_spec *chan)
drivers/iio/adc/ad7173.c
521
struct ad7173_channel *adchan = &st->channels[chan->address];
drivers/iio/adc/ad7173.c
531
openwire_ain_to_channel_pair[chan->channel][chan->differential][0];
drivers/iio/adc/ad7173.c
533
ret = ad_sigma_delta_single_conversion(indio_dev, chan, &val1);
drivers/iio/adc/ad7173.c
541
openwire_ain_to_channel_pair[chan->channel][chan->differential][1];
drivers/iio/adc/ad7173.c
543
ret = ad_sigma_delta_single_conversion(indio_dev, chan, &val2);
drivers/iio/adc/ad7173.c
552
IIO_UNMOD_EVENT_CODE(IIO_VOLTAGE, chan->address,
drivers/iio/adc/ad7173.c
877
static int ad7173_disable_one(struct ad_sigma_delta *sd, unsigned int chan)
drivers/iio/adc/ad7173.c
881
if (st->channels[chan].cfg.openwire_comp_chan >= 0)
drivers/iio/adc/ad7173.c
882
chan = st->channels[chan].cfg.openwire_comp_chan;
drivers/iio/adc/ad7173.c
884
return ad_sd_write_reg(sd, AD7173_REG_CH(chan), 2, 0);
drivers/iio/adc/ad7191.c
276
struct iio_chan_spec const *chan, int *val,
drivers/iio/adc/ad7191.c
283
return ad_sigma_delta_single_conversion(indio_dev, chan, val);
drivers/iio/adc/ad7191.c
285
switch (chan->type) {
drivers/iio/adc/ad7191.c
300
*val = -(1 << (chan->scan_type.realbits - 1));
drivers/iio/adc/ad7191.c
301
switch (chan->type) {
drivers/iio/adc/ad7191.c
341
struct iio_chan_spec const *chan,
drivers/iio/adc/ad7191.c
373
struct iio_chan_spec const *chan, int val, int val2,
drivers/iio/adc/ad7191.c
382
ret = __ad7191_write_raw(st, chan, val, val2, mask);
drivers/iio/adc/ad7191.c
390
struct iio_chan_spec const *chan, long mask)
drivers/iio/adc/ad7191.c
403
struct iio_chan_spec const *chan, const int **vals,
drivers/iio/adc/ad7192.c
1021
struct iio_chan_spec const *chan,
drivers/iio/adc/ad7192.c
1031
ret = __ad7192_write_raw(indio_dev, chan, val, val2, mask);
drivers/iio/adc/ad7192.c
1039
struct iio_chan_spec const *chan,
drivers/iio/adc/ad7192.c
1057
struct iio_chan_spec const *chan,
drivers/iio/adc/ad7192.c
228
const struct iio_chan_spec *chan,
drivers/iio/adc/ad7192.c
233
st->syscalib_mode[chan->channel] = mode;
drivers/iio/adc/ad7192.c
239
const struct iio_chan_spec *chan)
drivers/iio/adc/ad7192.c
243
return st->syscalib_mode[chan->channel];
drivers/iio/adc/ad7192.c
248
const struct iio_chan_spec *chan,
drivers/iio/adc/ad7192.c
262
temp = st->syscalib_mode[chan->channel];
drivers/iio/adc/ad7192.c
266
chan->address);
drivers/iio/adc/ad7192.c
269
chan->address);
drivers/iio/adc/ad7192.c
892
struct iio_chan_spec const *chan,
drivers/iio/adc/ad7192.c
903
return ad_sigma_delta_single_conversion(indio_dev, chan, val);
drivers/iio/adc/ad7192.c
905
switch (chan->type) {
drivers/iio/adc/ad7192.c
921
*val = -(1 << (chan->scan_type.realbits - 1));
drivers/iio/adc/ad7192.c
925
switch (chan->type) {
drivers/iio/adc/ad7192.c
931
if (st->aincom_mv && !chan->differential)
drivers/iio/adc/ad7192.c
958
struct iio_chan_spec const *chan,
drivers/iio/adc/ad7266.c
147
struct iio_chan_spec const *chan, int *val, int *val2, long m)
drivers/iio/adc/ad7266.c
157
ret = ad7266_read_single(st, val, chan->address);
drivers/iio/adc/ad7266.c
163
if (chan->scan_type.sign == 's')
drivers/iio/adc/ad7266.c
165
chan->scan_type.realbits - 1);
drivers/iio/adc/ad7266.c
176
*val2 = chan->scan_type.realbits;
drivers/iio/adc/ad7280a.c
472
const struct iio_chan_spec *chan, char *buf)
drivers/iio/adc/ad7280a.c
477
!!(st->cb_mask[chan->address >> 8] &
drivers/iio/adc/ad7280a.c
478
BIT(chan->address & 0xFF)));
drivers/iio/adc/ad7280a.c
483
const struct iio_chan_spec *chan,
drivers/iio/adc/ad7280a.c
495
devaddr = chan->address >> 8;
drivers/iio/adc/ad7280a.c
496
ch = chan->address & 0xFF;
drivers/iio/adc/ad7280a.c
514
const struct iio_chan_spec *chan,
drivers/iio/adc/ad7280a.c
518
u8 devaddr = chan->address >> 8;
drivers/iio/adc/ad7280a.c
519
u8 ch = chan->address & 0xFF;
drivers/iio/adc/ad7280a.c
535
const struct iio_chan_spec *chan,
drivers/iio/adc/ad7280a.c
539
u8 devaddr = chan->address >> 8;
drivers/iio/adc/ad7280a.c
540
u8 ch = chan->address & 0xFF;
drivers/iio/adc/ad7280a.c
589
static void ad7280_voltage_channel_init(struct iio_chan_spec *chan, int i,
drivers/iio/adc/ad7280a.c
592
chan->type = IIO_VOLTAGE;
drivers/iio/adc/ad7280a.c
593
chan->differential = 1;
drivers/iio/adc/ad7280a.c
594
chan->channel = i;
drivers/iio/adc/ad7280a.c
595
chan->channel2 = chan->channel + 1;
drivers/iio/adc/ad7280a.c
597
chan->event_spec = ad7280_events;
drivers/iio/adc/ad7280a.c
598
chan->num_event_specs = ARRAY_SIZE(ad7280_events);
drivers/iio/adc/ad7280a.c
600
chan->ext_info = ad7280_cell_ext_info;
drivers/iio/adc/ad7280a.c
603
static void ad7280_temp_channel_init(struct iio_chan_spec *chan, int i,
drivers/iio/adc/ad7280a.c
606
chan->type = IIO_TEMP;
drivers/iio/adc/ad7280a.c
607
chan->channel = i;
drivers/iio/adc/ad7280a.c
609
chan->event_spec = ad7280_events;
drivers/iio/adc/ad7280a.c
610
chan->num_event_specs = ARRAY_SIZE(ad7280_events);
drivers/iio/adc/ad7280a.c
614
static void ad7280_common_fields_init(struct iio_chan_spec *chan, int addr,
drivers/iio/adc/ad7280a.c
617
chan->indexed = 1;
drivers/iio/adc/ad7280a.c
618
chan->info_mask_separate = BIT(IIO_CHAN_INFO_RAW);
drivers/iio/adc/ad7280a.c
619
chan->info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE);
drivers/iio/adc/ad7280a.c
620
chan->info_mask_shared_by_all = BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO);
drivers/iio/adc/ad7280a.c
621
chan->address = addr;
drivers/iio/adc/ad7280a.c
622
chan->scan_index = cnt;
drivers/iio/adc/ad7280a.c
623
chan->scan_type.sign = 'u';
drivers/iio/adc/ad7280a.c
624
chan->scan_type.realbits = 12;
drivers/iio/adc/ad7280a.c
625
chan->scan_type.storagebits = 32;
drivers/iio/adc/ad7280a.c
628
static void ad7280_total_voltage_channel_init(struct iio_chan_spec *chan,
drivers/iio/adc/ad7280a.c
631
chan->type = IIO_VOLTAGE;
drivers/iio/adc/ad7280a.c
632
chan->differential = 1;
drivers/iio/adc/ad7280a.c
633
chan->channel = 0;
drivers/iio/adc/ad7280a.c
634
chan->channel2 = dev * AD7280A_CELLS_PER_DEV;
drivers/iio/adc/ad7280a.c
635
chan->address = AD7280A_ALL_CELLS;
drivers/iio/adc/ad7280a.c
636
chan->indexed = 1;
drivers/iio/adc/ad7280a.c
637
chan->info_mask_separate = BIT(IIO_CHAN_INFO_RAW);
drivers/iio/adc/ad7280a.c
638
chan->info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE);
drivers/iio/adc/ad7280a.c
639
chan->scan_index = cnt;
drivers/iio/adc/ad7280a.c
640
chan->scan_type.sign = 'u';
drivers/iio/adc/ad7280a.c
641
chan->scan_type.realbits = 32;
drivers/iio/adc/ad7280a.c
642
chan->scan_type.storagebits = 32;
drivers/iio/adc/ad7280a.c
649
struct iio_chan_spec *chan;
drivers/iio/adc/ad7280a.c
652
chan = &st->channels[*cnt];
drivers/iio/adc/ad7280a.c
656
ad7280_voltage_channel_init(chan, i, irq_present);
drivers/iio/adc/ad7280a.c
659
ad7280_temp_channel_init(chan, i, irq_present);
drivers/iio/adc/ad7280a.c
663
ad7280_common_fields_init(chan, addr, *cnt);
drivers/iio/adc/ad7280a.c
687
const struct iio_chan_spec *chan,
drivers/iio/adc/ad7280a.c
694
switch (chan->type) {
drivers/iio/adc/ad7280a.c
725
const struct iio_chan_spec *chan,
drivers/iio/adc/ad7280a.c
741
switch (chan->type) {
drivers/iio/adc/ad7280a.c
868
struct iio_chan_spec const *chan,
drivers/iio/adc/ad7280a.c
874
u8 devaddr = chan->address >> 8;
drivers/iio/adc/ad7280a.c
875
u8 ch = chan->address & 0xFF;
drivers/iio/adc/ad7280a.c
882
if (chan->address == AD7280A_ALL_CELLS)
drivers/iio/adc/ad7280a.c
910
struct iio_chan_spec const *chan,
drivers/iio/adc/ad7291.c
168
static unsigned int ad7291_threshold_reg(const struct iio_chan_spec *chan,
drivers/iio/adc/ad7291.c
174
switch (chan->type) {
drivers/iio/adc/ad7291.c
176
offset = chan->channel;
drivers/iio/adc/ad7291.c
200
const struct iio_chan_spec *chan,
drivers/iio/adc/ad7291.c
210
ret = ad7291_i2c_read(chip, ad7291_threshold_reg(chan, dir, info),
drivers/iio/adc/ad7291.c
215
if (info == IIO_EV_INFO_HYSTERESIS || chan->type == IIO_VOLTAGE)
drivers/iio/adc/ad7291.c
225
const struct iio_chan_spec *chan,
drivers/iio/adc/ad7291.c
233
if (info == IIO_EV_INFO_HYSTERESIS || chan->type == IIO_VOLTAGE) {
drivers/iio/adc/ad7291.c
241
return ad7291_i2c_write(chip, ad7291_threshold_reg(chan, dir, info),
drivers/iio/adc/ad7291.c
246
const struct iio_chan_spec *chan,
drivers/iio/adc/ad7291.c
256
switch (chan->type) {
drivers/iio/adc/ad7291.c
258
return !!(chip->c_mask & BIT(15 - chan->channel));
drivers/iio/adc/ad7291.c
269
const struct iio_chan_spec *chan,
drivers/iio/adc/ad7291.c
287
mask = BIT(15 - chan->channel);
drivers/iio/adc/ad7291.c
289
switch (chan->type) {
drivers/iio/adc/ad7291.c
319
struct iio_chan_spec const *chan,
drivers/iio/adc/ad7291.c
330
switch (chan->type) {
drivers/iio/adc/ad7291.c
340
regval |= BIT(15 - chan->channel);
drivers/iio/adc/ad7291.c
375
switch (chan->type) {
drivers/iio/adc/ad7292.c
206
const struct iio_chan_spec *chan,
drivers/iio/adc/ad7292.c
215
ch_addr = AD7292_REG_ADC_CH(chan->channel);
drivers/iio/adc/ad7292.c
236
ret = ad7292_vin_range_multiplier(st, chan->channel);
drivers/iio/adc/ad7298.c
224
struct iio_chan_spec const *chan,
drivers/iio/adc/ad7298.c
237
if (chan->address == AD7298_CH_TEMP)
drivers/iio/adc/ad7298.c
240
ret = ad7298_scan_direct(st, chan->address);
drivers/iio/adc/ad7298.c
247
if (chan->address != AD7298_CH_TEMP)
drivers/iio/adc/ad7298.c
248
*val = ret & GENMASK(chan->scan_type.realbits - 1, 0);
drivers/iio/adc/ad7298.c
252
switch (chan->type) {
drivers/iio/adc/ad7298.c
255
*val2 = chan->scan_type.realbits;
drivers/iio/adc/ad7380.c
1420
struct iio_chan_spec const *chan,
drivers/iio/adc/ad7380.c
1427
scan_type = iio_get_current_scan_type(indio_dev, chan);
drivers/iio/adc/ad7380.c
1437
ret = ad7380_read_direct(st, chan->scan_index,
drivers/iio/adc/ad7380.c
1455
st->gain_milli[chan->scan_index]);
drivers/iio/adc/ad7380.c
1458
*val2 = scan_type->realbits - chan->differential;
drivers/iio/adc/ad7380.c
1466
*val = st->vcm_mv[chan->channel] * (1 << scan_type->realbits)
drivers/iio/adc/ad7380.c
1491
struct iio_chan_spec const *chan,
drivers/iio/adc/ad7380.c
1570
struct iio_chan_spec const *chan, int val,
drivers/iio/adc/ad7380.c
1596
const struct iio_chan_spec *chan)
drivers/iio/adc/ad7380.c
1605
const struct iio_chan_spec *chan,
drivers/iio/adc/ad7380.c
1626
const struct iio_chan_spec *chan,
drivers/iio/adc/ad7380.c
1648
const struct iio_chan_spec *chan,
drivers/iio/adc/ad7380.c
1656
scan_type = iio_get_current_scan_type(indio_dev, chan);
drivers/iio/adc/ad7380.c
1692
const struct iio_chan_spec *chan,
drivers/iio/adc/ad7380.c
1705
ret = ad7380_get_alert_th(indio_dev, chan, dir, val);
drivers/iio/adc/ad7380.c
1715
const struct iio_chan_spec *chan,
drivers/iio/adc/ad7380.c
1737
scan_type = iio_get_current_scan_type(indio_dev, chan);
drivers/iio/adc/ad7380.c
1758
const struct iio_chan_spec *chan,
drivers/iio/adc/ad7380.c
1771
ret = ad7380_set_alert_th(indio_dev, chan, dir, val);
drivers/iio/adc/ad7405.c
101
struct iio_chan_spec const *chan,
drivers/iio/adc/ad7405.c
38
const struct iio_chan_spec *chan,
drivers/iio/adc/ad7405.c
50
ret = iio_backend_oversampling_ratio_set(st->back, chan->scan_index, dec_rate);
drivers/iio/adc/ad7405.c
62
const struct iio_chan_spec *chan, int *val,
drivers/iio/adc/ad7405.c
87
struct iio_chan_spec const *chan, int val,
drivers/iio/adc/ad7405.c
94
return ad7405_set_dec_rate(indio_dev, chan, val);
drivers/iio/adc/ad7476.c
128
struct iio_chan_spec const *chan,
drivers/iio/adc/ad7476.c
145
*val = (ret >> chan->scan_type.shift) &
drivers/iio/adc/ad7476.c
146
GENMASK(chan->scan_type.realbits - 1, 0);
drivers/iio/adc/ad7476.c
150
*val2 = chan->scan_type.realbits;
drivers/iio/adc/ad7606.c
1129
struct iio_chan_spec const *chan,
drivers/iio/adc/ad7606.c
1147
ch = chan->scan_index;
drivers/iio/adc/ad7606.c
119
struct iio_chan_spec *chan);
drivers/iio/adc/ad7606.c
121
struct iio_chan_spec *chan);
drivers/iio/adc/ad7606.c
123
struct iio_chan_spec *chan);
drivers/iio/adc/ad7606.c
125
struct iio_chan_spec *chan);
drivers/iio/adc/ad7606.c
127
struct iio_chan_spec *chan);
drivers/iio/adc/ad7606.c
129
struct iio_chan_spec *chan);
drivers/iio/adc/ad7606.c
1409
struct iio_chan_spec *chan = &channels[i];
drivers/iio/adc/ad7606.c
1411
chan->type = IIO_VOLTAGE;
drivers/iio/adc/ad7606.c
1412
chan->indexed = 1;
drivers/iio/adc/ad7606.c
1413
chan->channel = i;
drivers/iio/adc/ad7606.c
1414
chan->scan_index = i;
drivers/iio/adc/ad7606.c
1415
chan->scan_type.sign = 's';
drivers/iio/adc/ad7606.c
1416
chan->scan_type.realbits = st->chip_info->bits;
drivers/iio/adc/ad7606.c
1421
chan->scan_type.storagebits = st->offload_en ?
drivers/iio/adc/ad7606.c
1425
chan->scan_type.endianness = IIO_CPU;
drivers/iio/adc/ad7606.c
1428
chan->info_mask_separate |= BIT(IIO_CHAN_INFO_RAW);
drivers/iio/adc/ad7606.c
1431
chan->info_mask_separate |= BIT(IIO_CHAN_INFO_SCALE);
drivers/iio/adc/ad7606.c
1432
chan->info_mask_separate_available |=
drivers/iio/adc/ad7606.c
1436
chan->info_mask_separate |=
drivers/iio/adc/ad7606.c
1439
chan->info_mask_separate_available |=
drivers/iio/adc/ad7606.c
1451
chan->info_mask_shared_by_type |=
drivers/iio/adc/ad7606.c
1454
chan->info_mask_shared_by_all |=
drivers/iio/adc/ad7606.c
1457
chan->info_mask_shared_by_all_available |=
drivers/iio/adc/ad7606.c
1460
chan->info_mask_shared_by_type |=
drivers/iio/adc/ad7606.c
1464
chan->info_mask_shared_by_all |=
drivers/iio/adc/ad7606.c
1469
chan->info_mask_shared_by_all |=
drivers/iio/adc/ad7606.c
1472
ret = st->chip_info->scale_setup_cb(indio_dev, chan);
drivers/iio/adc/ad7606.c
290
struct iio_chan_spec *chan)
drivers/iio/adc/ad7606.c
293
struct ad7606_chan_info *ci = &st->chan_info[chan->scan_index];
drivers/iio/adc/ad7606.c
375
struct iio_chan_spec *chan)
drivers/iio/adc/ad7606.c
378
struct ad7606_chan_info *ci = &st->chan_info[chan->scan_index];
drivers/iio/adc/ad7606.c
389
ret = ad7606_get_chan_config(indio_dev, chan->scan_index, &bipolar,
drivers/iio/adc/ad7606.c
401
chan->differential = 1;
drivers/iio/adc/ad7606.c
402
chan->channel2 = chan->channel;
drivers/iio/adc/ad7606.c
407
chan->differential = 0;
drivers/iio/adc/ad7606.c
416
chan->scan_type.sign = 's';
drivers/iio/adc/ad7606.c
427
chan->scan_type.sign = 'u';
drivers/iio/adc/ad7606.c
433
struct iio_chan_spec *chan)
drivers/iio/adc/ad7606.c
436
struct ad7606_chan_info *ci = &st->chan_info[chan->scan_index];
drivers/iio/adc/ad7606.c
447
ret = ad7606_get_chan_config(indio_dev, chan->scan_index, &bipolar,
drivers/iio/adc/ad7606.c
459
chan->differential = 1;
drivers/iio/adc/ad7606.c
460
chan->channel2 = chan->channel;
drivers/iio/adc/ad7606.c
461
chan->scan_type.sign = 's';
drivers/iio/adc/ad7606.c
466
chan->differential = 0;
drivers/iio/adc/ad7606.c
475
chan->scan_type.sign = 's';
drivers/iio/adc/ad7606.c
486
chan->scan_type.sign = 'u';
drivers/iio/adc/ad7606.c
492
struct iio_chan_spec *chan)
drivers/iio/adc/ad7606.c
495
struct ad7606_chan_info *ci = &st->chan_info[chan->scan_index];
drivers/iio/adc/ad7606.c
504
struct iio_chan_spec *chan)
drivers/iio/adc/ad7606.c
507
struct ad7606_chan_info *ci = &st->chan_info[chan->scan_index];
drivers/iio/adc/ad7606.c
516
struct iio_chan_spec *chan)
drivers/iio/adc/ad7606.c
519
struct ad7606_chan_info *ci = &st->chan_info[chan->scan_index];
drivers/iio/adc/ad7606.c
658
const struct iio_chan_spec *chan;
drivers/iio/adc/ad7606.c
696
chan = &indio_dev->channels[ch];
drivers/iio/adc/ad7606.c
697
realbits = chan->scan_type.realbits;
drivers/iio/adc/ad7606.c
706
if (chan->scan_type.sign == 's')
drivers/iio/adc/ad7606.c
755
struct iio_chan_spec const *chan,
drivers/iio/adc/ad7606.c
769
ret = ad7606_scan_direct(indio_dev, chan->scan_index, val);
drivers/iio/adc/ad7606.c
776
ch = chan->scan_index;
drivers/iio/adc/ad7606.c
791
ret = ad7606_get_calib_offset(st, chan->scan_index, val);
drivers/iio/adc/ad7606.c
799
ret = ad7606_get_calib_phase(st, chan->scan_index, val, val2);
drivers/iio/adc/ad7606.c
896
struct iio_chan_spec const *chan, long info)
drivers/iio/adc/ad7606.c
913
struct iio_chan_spec const *chan,
drivers/iio/adc/ad7606.c
928
ch = chan->scan_index;
drivers/iio/adc/ad7606.c
968
ret = ad7606_set_calib_offset(st, chan->scan_index, val);
drivers/iio/adc/ad7606.c
974
ret = ad7606_set_calib_phase(st, chan->scan_index, val, val2);
drivers/iio/adc/ad7606.h
51
struct iio_chan_spec *chan);
drivers/iio/adc/ad7625.c
223
const struct iio_chan_spec *chan,
drivers/iio/adc/ad7625.c
236
*val2 = chan->scan_type.realbits - 1;
drivers/iio/adc/ad7625.c
246
struct iio_chan_spec const *chan,
drivers/iio/adc/ad7766.c
128
const struct iio_chan_spec *chan, int *val, int *val2, long info)
drivers/iio/adc/ad7766.c
140
*val2 = chan->scan_type.realbits;
drivers/iio/adc/ad7768-1.c
1040
struct iio_chan_spec const *chan,
drivers/iio/adc/ad7768-1.c
1081
struct iio_chan_spec const *chan, long mask)
drivers/iio/adc/ad7768-1.c
1092
struct iio_chan_spec const *chan,
drivers/iio/adc/ad7768-1.c
1099
scan_type = iio_get_current_scan_type(indio_dev, chan);
drivers/iio/adc/ad7768-1.c
1139
const struct iio_chan_spec *chan, char *label)
drivers/iio/adc/ad7768-1.c
1143
return sysfs_emit(label, "%s\n", st->labels[chan->channel]);
drivers/iio/adc/ad7768-1.c
1147
const struct iio_chan_spec *chan)
drivers/iio/adc/ad7768-1.c
1320
ret = spi_read(st->spi, &st->data.scan.chan,
drivers/iio/adc/ad7768-1.c
338
__be32 chan;
drivers/iio/adc/ad7768-1.c
891
const struct iio_chan_spec *chan,
drivers/iio/adc/ad7768-1.c
906
const struct iio_chan_spec *chan)
drivers/iio/adc/ad7768-1.c
976
struct iio_chan_spec const *chan,
drivers/iio/adc/ad7768-1.c
983
scan_type = iio_get_current_scan_type(indio_dev, chan);
drivers/iio/adc/ad7779.c
344
struct iio_chan_spec const *chan)
drivers/iio/adc/ad7779.c
358
struct iio_chan_spec const *chan,
drivers/iio/adc/ad7779.c
472
struct iio_chan_spec const *chan, int *val,
drivers/iio/adc/ad7779.c
480
ret = ad7779_get_calibscale(st, chan->channel);
drivers/iio/adc/ad7779.c
487
ret = ad7779_get_calibbias(st, chan->channel);
drivers/iio/adc/ad7779.c
503
struct iio_chan_spec const *chan, int *val,
drivers/iio/adc/ad7779.c
511
ret = __ad7779_read_raw(indio_dev, chan, val, val2, mask);
drivers/iio/adc/ad7779.c
517
struct iio_chan_spec const *chan,
drivers/iio/adc/ad7779.c
525
return ad7779_set_calibscale(st, chan->channel, val2);
drivers/iio/adc/ad7779.c
527
return ad7779_set_calibbias(st, chan->channel, val);
drivers/iio/adc/ad7779.c
536
struct iio_chan_spec const *chan, int val, int val2,
drivers/iio/adc/ad7779.c
544
ret = __ad7779_write_raw(indio_dev, chan, val, val2, mask);
drivers/iio/adc/ad7780.c
106
struct iio_chan_spec const *chan,
drivers/iio/adc/ad7780.c
116
return ad_sigma_delta_single_conversion(indio_dev, chan, val);
drivers/iio/adc/ad7780.c
123
*val2 = chan->scan_type.realbits - 1;
drivers/iio/adc/ad7780.c
127
*val = -(1 << (chan->scan_type.realbits - 1));
drivers/iio/adc/ad7780.c
140
struct iio_chan_spec const *chan,
drivers/iio/adc/ad7791.c
261
const struct iio_chan_spec *chan, int *val, int *val2, long info)
drivers/iio/adc/ad7791.c
269
return ad_sigma_delta_single_conversion(indio_dev, chan, val);
drivers/iio/adc/ad7791.c
278
*val = -(1 << (chan->scan_type.realbits - 1));
drivers/iio/adc/ad7791.c
282
if (chan->address == AD7791_CH_AVDD_MONITOR) {
drivers/iio/adc/ad7791.c
298
*val2 = chan->scan_type.realbits;
drivers/iio/adc/ad7791.c
300
*val2 = chan->scan_type.realbits - 1;
drivers/iio/adc/ad7791.c
314
struct iio_chan_spec const *chan, int val, int val2, long mask)
drivers/iio/adc/ad7791.c
342
struct iio_chan_spec const *chan, int val, int val2, long mask)
drivers/iio/adc/ad7791.c
349
ret = __ad7791_write_raw(indio_dev, chan, val, val2, mask);
drivers/iio/adc/ad7793.c
362
struct iio_chan_spec const *chan,
drivers/iio/adc/ad7793.c
400
struct iio_chan_spec const *chan,
drivers/iio/adc/ad7793.c
412
ret = ad_sigma_delta_single_conversion(indio_dev, chan, val);
drivers/iio/adc/ad7793.c
419
switch (chan->type) {
drivers/iio/adc/ad7793.c
421
if (chan->differential) {
drivers/iio/adc/ad7793.c
439
scale_uv >>= (chan->scan_type.realbits - (unipolar ? 0 : 1));
drivers/iio/adc/ad7793.c
445
*val = -(1 << (chan->scan_type.realbits - 1));
drivers/iio/adc/ad7793.c
450
if (chan->type == IIO_TEMP) {
drivers/iio/adc/ad7793.c
454
shift = chan->scan_type.realbits - (unipolar ? 0 : 1);
drivers/iio/adc/ad7793.c
469
struct iio_chan_spec const *chan,
drivers/iio/adc/ad7793.c
518
struct iio_chan_spec const *chan,
drivers/iio/adc/ad7793.c
526
ret = __ad7793_write_raw(indio_dev, chan, val, val2, mask);
drivers/iio/adc/ad7793.c
534
struct iio_chan_spec const *chan,
drivers/iio/adc/ad7887.c
145
struct iio_chan_spec const *chan,
drivers/iio/adc/ad7887.c
157
ret = ad7887_scan_direct(st, chan->address);
drivers/iio/adc/ad7887.c
162
*val = ret >> chan->scan_type.shift;
drivers/iio/adc/ad7887.c
163
*val &= GENMASK(chan->scan_type.realbits - 1, 0);
drivers/iio/adc/ad7887.c
175
*val2 = chan->scan_type.realbits;
drivers/iio/adc/ad7923.c
253
struct iio_chan_spec const *chan,
drivers/iio/adc/ad7923.c
265
ret = ad7923_scan_direct(st, chan->address);
drivers/iio/adc/ad7923.c
271
if (chan->address == EXTRACT(ret, 12, 4))
drivers/iio/adc/ad7923.c
272
*val = EXTRACT(ret, chan->scan_type.shift,
drivers/iio/adc/ad7923.c
273
chan->scan_type.realbits);
drivers/iio/adc/ad7923.c
283
*val2 = chan->scan_type.realbits;
drivers/iio/adc/ad7944.c
186
const struct iio_chan_spec *chan)
drivers/iio/adc/ad7944.c
209
xfers[2].len = AD7944_SPI_BYTES(chan->scan_type);
drivers/iio/adc/ad7944.c
210
xfers[2].bits_per_word = chan->scan_type.realbits;
drivers/iio/adc/ad7944.c
218
const struct iio_chan_spec *chan)
drivers/iio/adc/ad7944.c
233
xfers[1].len = AD7944_SPI_BYTES(chan->scan_type);
drivers/iio/adc/ad7944.c
234
xfers[1].bits_per_word = chan->scan_type.realbits;
drivers/iio/adc/ad7944.c
242
const struct iio_chan_spec *chan,
drivers/iio/adc/ad7944.c
268
xfers[1].len = AD7944_SPI_BYTES(chan->scan_type) * n_chain_dev;
drivers/iio/adc/ad7944.c
269
xfers[1].bits_per_word = chan->scan_type.realbits;
drivers/iio/adc/ad7944.c
285
const struct iio_chan_spec *chan)
drivers/iio/adc/ad7944.c
303
xfers[1].len = AD7944_SPI_BYTES(chan->scan_type);
drivers/iio/adc/ad7944.c
304
xfers[1].bits_per_word = chan->scan_type.realbits;
drivers/iio/adc/ad7944.c
346
const struct iio_chan_spec *chan,
drivers/iio/adc/ad7944.c
356
if (chan->scan_type.realbits > 16)
drivers/iio/adc/ad7944.c
357
*val = ((u32 *)adc->chain_mode_buf)[chan->scan_index];
drivers/iio/adc/ad7944.c
359
*val = ((u16 *)adc->chain_mode_buf)[chan->scan_index];
drivers/iio/adc/ad7944.c
361
if (chan->scan_type.realbits > 16)
drivers/iio/adc/ad7944.c
367
if (chan->scan_type.sign == 's')
drivers/iio/adc/ad7944.c
368
*val = sign_extend32(*val, chan->scan_type.realbits - 1);
drivers/iio/adc/ad7944.c
370
*val &= GENMASK(chan->scan_type.realbits - 1, 0);
drivers/iio/adc/ad7944.c
376
struct iio_chan_spec const *chan,
drivers/iio/adc/ad7944.c
393
const struct iio_chan_spec *chan,
drivers/iio/adc/ad7944.c
404
ret = ad7944_single_conversion(adc, chan, val);
drivers/iio/adc/ad7944.c
409
switch (chan->type) {
drivers/iio/adc/ad7944.c
413
if (chan->scan_type.sign == 's')
drivers/iio/adc/ad7944.c
414
*val2 = chan->scan_type.realbits - 1;
drivers/iio/adc/ad7944.c
416
*val2 = chan->scan_type.realbits;
drivers/iio/adc/ad7944.c
452
const struct iio_chan_spec *chan,
drivers/iio/adc/ad7944.c
469
const struct iio_chan_spec *chan,
drivers/iio/adc/ad7944.c
566
struct iio_chan_spec *chan;
drivers/iio/adc/ad7944.c
574
chan = devm_kcalloc(dev, n_chain_dev + 1, sizeof(*chan), GFP_KERNEL);
drivers/iio/adc/ad7944.c
575
if (!chan)
drivers/iio/adc/ad7944.c
579
chan[i] = chan_template[0];
drivers/iio/adc/ad7944.c
582
chan[i].channel = 2 * i;
drivers/iio/adc/ad7944.c
583
chan[i].channel2 = 2 * i + 1;
drivers/iio/adc/ad7944.c
585
chan[i].channel = i;
drivers/iio/adc/ad7944.c
588
chan[i].scan_index = i;
drivers/iio/adc/ad7944.c
592
chan[i] = chan_template[1];
drivers/iio/adc/ad7944.c
593
chan[i].scan_index = i;
drivers/iio/adc/ad7944.c
595
*chain_chan = chan;
drivers/iio/adc/ad7944.c
600
AD7944_SPI_BYTES(chan[0].scan_type), sizeof(u64)) + sizeof(u64);
drivers/iio/adc/ad7949.c
189
#define AD7949_ADC_CHANNEL(chan) { \
drivers/iio/adc/ad7949.c
192
.channel = (chan), \
drivers/iio/adc/ad7949.c
209
struct iio_chan_spec const *chan,
drivers/iio/adc/ad7949.c
221
ret = ad7949_spi_read_channel(ad7949_adc, val, chan->channel);
drivers/iio/adc/ad799x.c
287
struct iio_chan_spec const *chan,
drivers/iio/adc/ad799x.c
300
ret = ad799x_scan_direct(st, chan->scan_index);
drivers/iio/adc/ad799x.c
306
*val = (ret >> chan->scan_type.shift) &
drivers/iio/adc/ad799x.c
307
GENMASK(chan->scan_type.realbits - 1, 0);
drivers/iio/adc/ad799x.c
311
*val2 = chan->scan_type.realbits;
drivers/iio/adc/ad799x.c
385
const struct iio_chan_spec *chan,
drivers/iio/adc/ad799x.c
394
if ((st->config >> AD799X_CHANNEL_SHIFT) & BIT(chan->scan_index))
drivers/iio/adc/ad799x.c
401
const struct iio_chan_spec *chan,
drivers/iio/adc/ad799x.c
415
st->config |= BIT(chan->scan_index) << AD799X_CHANNEL_SHIFT;
drivers/iio/adc/ad799x.c
417
st->config &= ~(BIT(chan->scan_index) << AD799X_CHANNEL_SHIFT);
drivers/iio/adc/ad799x.c
430
static unsigned int ad799x_threshold_reg(const struct iio_chan_spec *chan,
drivers/iio/adc/ad799x.c
437
return AD7998_DATALOW_REG(chan->channel);
drivers/iio/adc/ad799x.c
439
return AD7998_DATAHIGH_REG(chan->channel);
drivers/iio/adc/ad799x.c
441
return AD7998_HYST_REG(chan->channel);
drivers/iio/adc/ad799x.c
450
const struct iio_chan_spec *chan,
drivers/iio/adc/ad799x.c
459
if (val < 0 || val > GENMASK(chan->scan_type.realbits - 1, 0))
drivers/iio/adc/ad799x.c
463
ad799x_threshold_reg(chan, dir, info),
drivers/iio/adc/ad799x.c
464
val << chan->scan_type.shift);
drivers/iio/adc/ad799x.c
470
const struct iio_chan_spec *chan,
drivers/iio/adc/ad799x.c
480
ad799x_threshold_reg(chan, dir, info));
drivers/iio/adc/ad799x.c
483
*val = (ret >> chan->scan_type.shift) &
drivers/iio/adc/ad799x.c
484
GENMASK(chan->scan_type.realbits - 1, 0);
drivers/iio/adc/ad9467.c
1126
struct ad9467_chan_test_mode *chan = file->private_data;
drivers/iio/adc/ad9467.c
1127
struct ad9467_state *st = chan->st;
drivers/iio/adc/ad9467.c
1132
if (chan->mode == AN877_ADC_TESTMODE_PN9_SEQ ||
drivers/iio/adc/ad9467.c
1133
chan->mode == AN877_ADC_TESTMODE_PN23_SEQ) {
drivers/iio/adc/ad9467.c
1135
ad9467_test_modes[chan->mode]);
drivers/iio/adc/ad9467.c
1139
chan->idx,
drivers/iio/adc/ad9467.c
1146
} else if (chan->mode == AN877_ADC_TESTMODE_OFF) {
drivers/iio/adc/ad9467.c
1150
ad9467_test_modes[chan->mode], chan->idx);
drivers/iio/adc/ad9467.c
1160
struct ad9467_chan_test_mode *chan = file->private_data;
drivers/iio/adc/ad9467.c
1161
struct ad9467_state *st = chan->st;
drivers/iio/adc/ad9467.c
1185
if (chan->mode == AN877_ADC_TESTMODE_PN9_SEQ ||
drivers/iio/adc/ad9467.c
1186
chan->mode == AN877_ADC_TESTMODE_PN23_SEQ) {
drivers/iio/adc/ad9467.c
1187
ret = ad9467_backend_testmode_off(st, chan->idx);
drivers/iio/adc/ad9467.c
1193
ret = ad9467_testmode_set(st, chan->idx, mode);
drivers/iio/adc/ad9467.c
1211
ret = ad9467_testmode_set(st, chan->idx, mode);
drivers/iio/adc/ad9467.c
1218
ret = ad9467_backend_testmode_on(st, chan->idx,
drivers/iio/adc/ad9467.c
1223
ret = ad9467_backend_testmode_on(st, chan->idx,
drivers/iio/adc/ad9467.c
1231
chan->mode = mode;
drivers/iio/adc/ad9467.c
1283
unsigned int chan;
drivers/iio/adc/ad9467.c
1297
for (chan = 0; chan < st->info->num_channels; chan++) {
drivers/iio/adc/ad9467.c
1299
chan);
drivers/iio/adc/ad9467.c
1300
st->chan_test[chan].idx = chan;
drivers/iio/adc/ad9467.c
1301
st->chan_test[chan].st = st;
drivers/iio/adc/ad9467.c
1302
debugfs_create_file(attr_name, 0600, d, &st->chan_test[chan],
drivers/iio/adc/ad9467.c
302
const struct iio_chan_spec *chan = &info->channels[0];
drivers/iio/adc/ad9467.c
306
chan->scan_type.realbits;
drivers/iio/adc/ad9467.c
610
static int ad9467_testmode_set(struct ad9467_state *st, unsigned int chan,
drivers/iio/adc/ad9467.c
617
ret = ad9467_spi_write(st, AN877_ADC_REG_CHAN_INDEX, BIT(chan));
drivers/iio/adc/ad9467.c
639
unsigned int chan,
drivers/iio/adc/ad9467.c
647
ret = iio_backend_data_format_set(st->back, chan, &data);
drivers/iio/adc/ad9467.c
651
ret = iio_backend_test_pattern_set(st->back, chan, pattern);
drivers/iio/adc/ad9467.c
655
return iio_backend_chan_enable(st->back, chan);
drivers/iio/adc/ad9467.c
659
unsigned int chan)
drivers/iio/adc/ad9467.c
667
ret = iio_backend_chan_disable(st->back, chan);
drivers/iio/adc/ad9467.c
671
ret = iio_backend_test_pattern_set(st->back, chan,
drivers/iio/adc/ad9467.c
676
return iio_backend_data_format_set(st->back, chan, &data);
drivers/iio/adc/ad9467.c
899
struct iio_chan_spec const *chan,
drivers/iio/adc/ad9467.c
935
struct iio_chan_spec const *chan,
drivers/iio/adc/ad9467.c
977
struct iio_chan_spec const *chan,
drivers/iio/adc/ad_sigma_delta.c
425
const struct iio_chan_spec *chan, int *val)
drivers/iio/adc/ad_sigma_delta.c
435
ret = ad_sigma_delta_set_channel(sigma_delta, chan->address);
drivers/iio/adc/ad_sigma_delta.c
465
BITS_TO_BYTES(chan->scan_type.realbits + chan->scan_type.shift),
drivers/iio/adc/ad_sigma_delta.c
474
ad_sigma_delta_disable_one(sigma_delta, chan->address);
drivers/iio/adc/ad_sigma_delta.c
483
sample = raw_sample >> chan->scan_type.shift;
drivers/iio/adc/ad_sigma_delta.c
484
sample &= (1 << chan->scan_type.realbits) - 1;
drivers/iio/adc/ade9000.c
1015
if (chan->type == IIO_ENERGY) {
drivers/iio/adc/ade9000.c
1016
u16 lo_reg = chan->address;
drivers/iio/adc/ade9000.c
1031
ret = regmap_read(st->regmap, chan->address, &measured);
drivers/iio/adc/ade9000.c
1044
ret = regmap_read(st->regmap, chan->address, &measured);
drivers/iio/adc/ade9000.c
1054
switch (chan->type) {
drivers/iio/adc/ade9000.c
1059
switch (chan->address) {
drivers/iio/adc/ade9000.c
1096
struct iio_chan_spec const *chan,
drivers/iio/adc/ade9000.c
1106
switch (chan->type) {
drivers/iio/adc/ade9000.c
1110
chan->channel), val);
drivers/iio/adc/ade9000.c
1115
chan->channel), val);
drivers/iio/adc/ade9000.c
1117
tmp = chan->address;
drivers/iio/adc/ade9000.c
1125
chan->channel), val);
drivers/iio/adc/ade9000.c
1129
chan->channel), val);
drivers/iio/adc/ade9000.c
1133
chan->channel), val);
drivers/iio/adc/ade9000.c
1145
switch (chan->type) {
drivers/iio/adc/ade9000.c
1149
chan->channel), val);
drivers/iio/adc/ade9000.c
1153
chan->channel), val);
drivers/iio/adc/ade9000.c
1157
chan->channel), val);
drivers/iio/adc/ade9000.c
1183
const struct iio_chan_spec *chan,
drivers/iio/adc/ade9000.c
1196
switch (chan->channel) {
drivers/iio/adc/ade9000.c
1198
if (chan->type == IIO_VOLTAGE && dir == IIO_EV_DIR_EITHER)
drivers/iio/adc/ade9000.c
1200
else if (chan->type == IIO_CURRENT && dir == IIO_EV_DIR_EITHER)
drivers/iio/adc/ade9000.c
1202
else if (chan->type == IIO_ALTVOLTAGE && dir == IIO_EV_DIR_RISING)
drivers/iio/adc/ade9000.c
1204
else if (chan->type == IIO_ALTVOLTAGE && dir == IIO_EV_DIR_FALLING)
drivers/iio/adc/ade9000.c
1207
"Invalid channel type %d or direction %d for phase A\n", chan->type, dir);
drivers/iio/adc/ade9000.c
1210
if (chan->type == IIO_VOLTAGE && dir == IIO_EV_DIR_EITHER)
drivers/iio/adc/ade9000.c
1212
else if (chan->type == IIO_CURRENT && dir == IIO_EV_DIR_EITHER)
drivers/iio/adc/ade9000.c
1214
else if (chan->type == IIO_ALTVOLTAGE && dir == IIO_EV_DIR_RISING)
drivers/iio/adc/ade9000.c
1216
else if (chan->type == IIO_ALTVOLTAGE && dir == IIO_EV_DIR_FALLING)
drivers/iio/adc/ade9000.c
1219
"Invalid channel type %d or direction %d for phase B\n", chan->type, dir);
drivers/iio/adc/ade9000.c
1222
if (chan->type == IIO_VOLTAGE && dir == IIO_EV_DIR_EITHER)
drivers/iio/adc/ade9000.c
1224
else if (chan->type == IIO_CURRENT && dir == IIO_EV_DIR_EITHER)
drivers/iio/adc/ade9000.c
1226
else if (chan->type == IIO_ALTVOLTAGE && dir == IIO_EV_DIR_RISING)
drivers/iio/adc/ade9000.c
1228
else if (chan->type == IIO_ALTVOLTAGE && dir == IIO_EV_DIR_FALLING)
drivers/iio/adc/ade9000.c
1231
"Invalid channel type %d or direction %d for phase C\n", chan->type, dir);
drivers/iio/adc/ade9000.c
1239
const struct iio_chan_spec *chan,
drivers/iio/adc/ade9000.c
1254
switch (chan->channel) {
drivers/iio/adc/ade9000.c
1256
if (chan->type == IIO_VOLTAGE && dir == IIO_EV_DIR_EITHER) {
drivers/iio/adc/ade9000.c
1262
} else if (chan->type == IIO_CURRENT && dir == IIO_EV_DIR_EITHER) {
drivers/iio/adc/ade9000.c
1268
} else if (chan->type == IIO_ALTVOLTAGE && dir == IIO_EV_DIR_RISING) {
drivers/iio/adc/ade9000.c
1274
} else if (chan->type == IIO_ALTVOLTAGE && dir == IIO_EV_DIR_FALLING) {
drivers/iio/adc/ade9000.c
1282
chan->type, dir);
drivers/iio/adc/ade9000.c
1287
if (chan->type == IIO_VOLTAGE && dir == IIO_EV_DIR_EITHER) {
drivers/iio/adc/ade9000.c
1293
} else if (chan->type == IIO_CURRENT && dir == IIO_EV_DIR_EITHER) {
drivers/iio/adc/ade9000.c
1299
} else if (chan->type == IIO_ALTVOLTAGE && dir == IIO_EV_DIR_RISING) {
drivers/iio/adc/ade9000.c
1305
} else if (chan->type == IIO_ALTVOLTAGE && dir == IIO_EV_DIR_FALLING) {
drivers/iio/adc/ade9000.c
1314
chan->type, dir);
drivers/iio/adc/ade9000.c
1319
if (chan->type == IIO_VOLTAGE && dir == IIO_EV_DIR_EITHER) {
drivers/iio/adc/ade9000.c
1325
} else if (chan->type == IIO_CURRENT && dir == IIO_EV_DIR_EITHER) {
drivers/iio/adc/ade9000.c
1331
} else if (chan->type == IIO_ALTVOLTAGE && dir == IIO_EV_DIR_RISING) {
drivers/iio/adc/ade9000.c
1337
} else if (chan->type == IIO_ALTVOLTAGE && dir == IIO_EV_DIR_FALLING) {
drivers/iio/adc/ade9000.c
1346
chan->type, dir);
drivers/iio/adc/ade9000.c
1359
const struct iio_chan_spec *chan,
drivers/iio/adc/ade9000.c
1383
const struct iio_chan_spec *chan,
drivers/iio/adc/ade9000.c
290
#define ADE9000_ADDR_ADJUST(addr, chan) \
drivers/iio/adc/ade9000.c
291
(((chan) == 0 ? 0 : (chan) == 1 ? 2 : 4) << 4 | (addr))
drivers/iio/adc/ade9000.c
379
const struct iio_chan_spec *chan)
drivers/iio/adc/ade9000.c
401
const struct iio_chan_spec *chan,
drivers/iio/adc/ade9000.c
972
struct iio_chan_spec const *chan,
drivers/iio/adc/ade9000.c
983
if (chan->type == IIO_VOLTAGE) {
drivers/iio/adc/ade9000.c
987
switch (chan->channel) {
drivers/iio/adc/adi-axi-adc.c
162
static int axi_adc_data_format_set(struct iio_backend *back, unsigned int chan,
drivers/iio/adc/adi-axi-adc.c
170
ADI_AXI_REG_CHAN_CTRL(chan),
drivers/iio/adc/adi-axi-adc.c
179
return regmap_update_bits(st->regmap, ADI_AXI_REG_CHAN_CTRL(chan),
drivers/iio/adc/adi-axi-adc.c
230
unsigned int chan,
drivers/iio/adc/adi-axi-adc.c
240
return regmap_update_bits(st->regmap, ADI_AXI_ADC_REG_CHAN_CTRL_3(chan),
drivers/iio/adc/adi-axi-adc.c
244
return regmap_update_bits(st->regmap, ADI_AXI_ADC_REG_CHAN_CTRL_3(chan),
drivers/iio/adc/adi-axi-adc.c
253
unsigned int chan,
drivers/iio/adc/adi-axi-adc.c
259
ADI_AXI_ADC_REG_CHAN_USR_CTRL_2(chan),
drivers/iio/adc/adi-axi-adc.c
265
static int axi_adc_read_chan_status(struct adi_axi_adc_state *st, unsigned int chan,
drivers/iio/adc/adi-axi-adc.c
272
ret = regmap_write(st->regmap, ADI_AXI_ADC_REG_CHAN_STATUS(chan),
drivers/iio/adc/adi-axi-adc.c
280
return regmap_read(st->regmap, ADI_AXI_ADC_REG_CHAN_STATUS(chan),
drivers/iio/adc/adi-axi-adc.c
284
static int axi_adc_chan_status(struct iio_backend *back, unsigned int chan,
drivers/iio/adc/adi-axi-adc.c
291
ret = axi_adc_read_chan_status(st, chan, &val);
drivers/iio/adc/adi-axi-adc.c
304
unsigned int chan, char *buf,
drivers/iio/adc/adi-axi-adc.c
311
ret = axi_adc_read_chan_status(st, chan, &val);
drivers/iio/adc/adi-axi-adc.c
320
return scnprintf(buf, len, "CH%u: Out of Sync.\n", chan);
drivers/iio/adc/adi-axi-adc.c
322
return scnprintf(buf, len, "CH%u: Spurious Out of Sync.\n", chan);
drivers/iio/adc/adi-axi-adc.c
324
return scnprintf(buf, len, "CH%u: OK.\n", chan);
drivers/iio/adc/adi-axi-adc.c
327
static int axi_adc_chan_enable(struct iio_backend *back, unsigned int chan)
drivers/iio/adc/adi-axi-adc.c
331
return regmap_set_bits(st->regmap, ADI_AXI_REG_CHAN_CTRL(chan),
drivers/iio/adc/adi-axi-adc.c
335
static int axi_adc_chan_disable(struct iio_backend *back, unsigned int chan)
drivers/iio/adc/adi-axi-adc.c
339
return regmap_clear_bits(st->regmap, ADI_AXI_REG_CHAN_CTRL(chan),
drivers/iio/adc/adi-axi-adc.c
404
unsigned int chan,
drivers/iio/adc/aspeed_adc.c
307
struct iio_chan_spec const *chan,
drivers/iio/adc/aspeed_adc.c
322
chan->channel == ASPEED_ADC_BATTERY_CHANNEL) {
drivers/iio/adc/aspeed_adc.c
325
ctrl_reg |= ASPEED_ADC_CTRL_CHANNEL_ENABLE(chan->channel);
drivers/iio/adc/aspeed_adc.c
334
if (data->battery_sensing && chan->channel == ASPEED_ADC_BATTERY_CHANNEL) {
drivers/iio/adc/aspeed_adc.c
345
*val = readw(data->base + chan->address);
drivers/iio/adc/aspeed_adc.c
349
*val = readw(data->base + chan->address);
drivers/iio/adc/aspeed_adc.c
356
if (data->battery_sensing && chan->channel == ASPEED_ADC_BATTERY_CHANNEL)
drivers/iio/adc/aspeed_adc.c
379
struct iio_chan_spec const *chan,
drivers/iio/adc/at91-sama5d2_adc.c
1085
static int at91_adc_read_position(struct at91_adc_state *st, int chan, u16 *val)
drivers/iio/adc/at91-sama5d2_adc.c
1090
if (chan == st->soc_info.platform->touch_chan_x)
drivers/iio/adc/at91-sama5d2_adc.c
1092
else if (chan == st->soc_info.platform->touch_chan_y)
drivers/iio/adc/at91-sama5d2_adc.c
1100
static int at91_adc_read_pressure(struct at91_adc_state *st, int chan, u16 *val)
drivers/iio/adc/at91-sama5d2_adc.c
1105
if (chan == st->soc_info.platform->touch_chan_p)
drivers/iio/adc/at91-sama5d2_adc.c
1221
struct iio_chan_spec const *chan =
drivers/iio/adc/at91-sama5d2_adc.c
1224
if (!chan)
drivers/iio/adc/at91-sama5d2_adc.c
1227
st->dma_st.rx_buf_sz += chan->scan_type.storagebits / 8;
drivers/iio/adc/at91-sama5d2_adc.c
1315
struct iio_chan_spec const *chan =
drivers/iio/adc/at91-sama5d2_adc.c
1317
if (!chan)
drivers/iio/adc/at91-sama5d2_adc.c
1320
if (chan->type == IIO_POSITIONRELATIVE ||
drivers/iio/adc/at91-sama5d2_adc.c
1321
chan->type == IIO_PRESSURE ||
drivers/iio/adc/at91-sama5d2_adc.c
1322
chan->type == IIO_TEMP)
drivers/iio/adc/at91-sama5d2_adc.c
1325
at91_adc_cor(st, chan);
drivers/iio/adc/at91-sama5d2_adc.c
1327
at91_adc_writel(st, CHER, BIT(chan->channel));
drivers/iio/adc/at91-sama5d2_adc.c
1364
struct iio_chan_spec const *chan =
drivers/iio/adc/at91-sama5d2_adc.c
1367
if (!chan)
drivers/iio/adc/at91-sama5d2_adc.c
1370
if (chan->type == IIO_POSITIONRELATIVE ||
drivers/iio/adc/at91-sama5d2_adc.c
1371
chan->type == IIO_PRESSURE ||
drivers/iio/adc/at91-sama5d2_adc.c
1372
chan->type == IIO_TEMP)
drivers/iio/adc/at91-sama5d2_adc.c
1375
at91_adc_writel(st, CHDR, BIT(chan->channel));
drivers/iio/adc/at91-sama5d2_adc.c
1378
at91_adc_read_chan(st, chan->address);
drivers/iio/adc/at91-sama5d2_adc.c
1450
struct iio_chan_spec const *chan =
drivers/iio/adc/at91-sama5d2_adc.c
1453
if (!chan)
drivers/iio/adc/at91-sama5d2_adc.c
1465
if (chan->type == IIO_VOLTAGE) {
drivers/iio/adc/at91-sama5d2_adc.c
1466
val = at91_adc_read_chan(st, chan->address);
drivers/iio/adc/at91-sama5d2_adc.c
1620
struct iio_chan_spec const *chan =
drivers/iio/adc/at91-sama5d2_adc.c
1623
if (chan->type == IIO_POSITIONRELATIVE)
drivers/iio/adc/at91-sama5d2_adc.c
1624
at91_adc_read_position(st, chan->channel, &val);
drivers/iio/adc/at91-sama5d2_adc.c
1625
else if (chan->type == IIO_PRESSURE)
drivers/iio/adc/at91-sama5d2_adc.c
1626
at91_adc_read_pressure(st, chan->channel, &val);
drivers/iio/adc/at91-sama5d2_adc.c
1722
st->conversion_value = at91_adc_read_chan(st, st->chan->address);
drivers/iio/adc/at91-sama5d2_adc.c
1731
struct iio_chan_spec const *chan, int *val)
drivers/iio/adc/at91-sama5d2_adc.c
1745
if (chan->type == IIO_POSITIONRELATIVE) {
drivers/iio/adc/at91-sama5d2_adc.c
1746
ret = at91_adc_read_position(st, chan->channel,
drivers/iio/adc/at91-sama5d2_adc.c
1754
if (chan->type == IIO_PRESSURE) {
drivers/iio/adc/at91-sama5d2_adc.c
1755
ret = at91_adc_read_pressure(st, chan->channel,
drivers/iio/adc/at91-sama5d2_adc.c
1766
st->chan = chan;
drivers/iio/adc/at91-sama5d2_adc.c
1768
at91_adc_cor(st, chan);
drivers/iio/adc/at91-sama5d2_adc.c
1769
at91_adc_writel(st, CHER, BIT(chan->channel));
drivers/iio/adc/at91-sama5d2_adc.c
1775
if (chan->type == IIO_TEMP)
drivers/iio/adc/at91-sama5d2_adc.c
1777
at91_adc_eoc_ena(st, chan->channel);
drivers/iio/adc/at91-sama5d2_adc.c
1789
if (chan->scan_type.sign == 's')
drivers/iio/adc/at91-sama5d2_adc.c
1791
chan->scan_type.realbits - 1);
drivers/iio/adc/at91-sama5d2_adc.c
1795
at91_adc_eoc_dis(st, st->chan->channel);
drivers/iio/adc/at91-sama5d2_adc.c
1796
if (chan->type == IIO_TEMP)
drivers/iio/adc/at91-sama5d2_adc.c
1798
at91_adc_writel(st, CHDR, BIT(chan->channel));
drivers/iio/adc/at91-sama5d2_adc.c
1809
struct iio_chan_spec const *chan, int *val)
drivers/iio/adc/at91-sama5d2_adc.c
1815
return at91_adc_read_info_raw(indio_dev, chan, val);
drivers/iio/adc/at91-sama5d2_adc.c
1852
struct iio_chan_spec const *chan, int *val)
drivers/iio/adc/at91-sama5d2_adc.c
1872
ret = at91_adc_read_info_raw(indio_dev, chan, &vbg);
drivers/iio/adc/at91-sama5d2_adc.c
1879
ret = at91_adc_read_info_raw(indio_dev, chan, &vtemp);
drivers/iio/adc/at91-sama5d2_adc.c
1902
struct iio_chan_spec const *chan,
drivers/iio/adc/at91-sama5d2_adc.c
1913
ret = at91_adc_read_info_locked(indio_dev, chan, val);
drivers/iio/adc/at91-sama5d2_adc.c
1919
if (chan->differential)
drivers/iio/adc/at91-sama5d2_adc.c
1921
*val2 = chan->scan_type.realbits;
drivers/iio/adc/at91-sama5d2_adc.c
1925
if (chan->type != IIO_TEMP)
drivers/iio/adc/at91-sama5d2_adc.c
1930
ret = at91_adc_read_temp(indio_dev, chan, val);
drivers/iio/adc/at91-sama5d2_adc.c
1949
struct iio_chan_spec const *chan,
drivers/iio/adc/at91-sama5d2_adc.c
1988
struct iio_chan_spec const *chan,
drivers/iio/adc/at91-sama5d2_adc.c
598
const struct iio_chan_spec *chan;
drivers/iio/adc/at91-sama5d2_adc.c
749
static int at91_adc_chan_xlate(struct iio_dev *indio_dev, int chan)
drivers/iio/adc/at91-sama5d2_adc.c
754
if (indio_dev->channels[i].scan_index == chan)
drivers/iio/adc/at91-sama5d2_adc.c
761
at91_adc_chan_get(struct iio_dev *indio_dev, int chan)
drivers/iio/adc/at91-sama5d2_adc.c
763
int index = at91_adc_chan_xlate(indio_dev, chan);
drivers/iio/adc/at91-sama5d2_adc.c
784
struct iio_chan_spec const *chan =
drivers/iio/adc/at91-sama5d2_adc.c
786
mask |= BIT(chan->channel);
drivers/iio/adc/at91-sama5d2_adc.c
793
struct iio_chan_spec const *chan)
drivers/iio/adc/at91-sama5d2_adc.c
797
cor = BIT(chan->channel) | BIT(chan->channel2);
drivers/iio/adc/at91-sama5d2_adc.c
801
if (chan->differential)
drivers/iio/adc/at91_adc.c
269
struct iio_chan_spec const *chan;
drivers/iio/adc/at91_adc.c
273
chan = idev->channels + i;
drivers/iio/adc/at91_adc.c
274
st->buffer[j] = at91_adc_readl(st, AT91_ADC_CHAN(st, chan->channel));
drivers/iio/adc/at91_adc.c
509
struct iio_chan_spec *chan = chan_array + idx;
drivers/iio/adc/at91_adc.c
511
chan->type = IIO_VOLTAGE;
drivers/iio/adc/at91_adc.c
512
chan->indexed = 1;
drivers/iio/adc/at91_adc.c
513
chan->channel = bit;
drivers/iio/adc/at91_adc.c
514
chan->scan_index = idx;
drivers/iio/adc/at91_adc.c
515
chan->scan_type.sign = 'u';
drivers/iio/adc/at91_adc.c
516
chan->scan_type.realbits = st->res;
drivers/iio/adc/at91_adc.c
517
chan->scan_type.storagebits = 16;
drivers/iio/adc/at91_adc.c
518
chan->info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE);
drivers/iio/adc/at91_adc.c
519
chan->info_mask_separate = BIT(IIO_CHAN_INFO_RAW);
drivers/iio/adc/at91_adc.c
579
struct iio_chan_spec const *chan = idev->channels + bit;
drivers/iio/adc/at91_adc.c
581
AT91_ADC_CH(chan->channel));
drivers/iio/adc/at91_adc.c
594
struct iio_chan_spec const *chan = idev->channels + bit;
drivers/iio/adc/at91_adc.c
596
AT91_ADC_CH(chan->channel));
drivers/iio/adc/at91_adc.c
693
struct iio_chan_spec const *chan,
drivers/iio/adc/at91_adc.c
703
st->chnb = chan->channel;
drivers/iio/adc/at91_adc.c
705
AT91_ADC_CH(chan->channel));
drivers/iio/adc/at91_adc.c
706
at91_adc_writel(st, AT91_ADC_IER, BIT(chan->channel));
drivers/iio/adc/at91_adc.c
717
AT91_ADC_CH(chan->channel));
drivers/iio/adc/at91_adc.c
718
at91_adc_writel(st, AT91_ADC_IDR, BIT(chan->channel));
drivers/iio/adc/at91_adc.c
729
chan->channel);
drivers/iio/adc/at91_adc.c
738
*val2 = chan->scan_type.realbits;
drivers/iio/adc/axp20x_adc.c
332
struct iio_chan_spec const *chan, int *val)
drivers/iio/adc/axp20x_adc.c
337
if (chan->type == IIO_CURRENT &&
drivers/iio/adc/axp20x_adc.c
338
(chan->channel == AXP192_BATT_CHRG_I ||
drivers/iio/adc/axp20x_adc.c
339
chan->channel == AXP192_BATT_DISCHRG_I))
drivers/iio/adc/axp20x_adc.c
344
ret = axp20x_read_variable_width(info->regmap, chan->address, size);
drivers/iio/adc/axp20x_adc.c
353
struct iio_chan_spec const *chan, int *val)
drivers/iio/adc/axp20x_adc.c
363
if (chan->type == IIO_CURRENT && chan->channel == AXP20X_BATT_DISCHRG_I)
drivers/iio/adc/axp20x_adc.c
368
ret = axp20x_read_variable_width(info->regmap, chan->address, size);
drivers/iio/adc/axp20x_adc.c
377
struct iio_chan_spec const *chan, int *val)
drivers/iio/adc/axp20x_adc.c
382
ret = axp20x_read_variable_width(info->regmap, chan->address, 12);
drivers/iio/adc/axp20x_adc.c
391
struct iio_chan_spec const *chan, int *val)
drivers/iio/adc/axp20x_adc.c
402
switch (chan->channel) {
drivers/iio/adc/axp20x_adc.c
427
ret = regmap_bulk_read(info->regmap, chan->address, bulk_reg, 2);
drivers/iio/adc/axp20x_adc.c
436
struct iio_chan_spec const *chan, int *val)
drivers/iio/adc/axp20x_adc.c
441
ret = axp20x_read_variable_width(info->regmap, chan->address, 12);
drivers/iio/adc/axp20x_adc.c
590
static int axp192_adc_scale(struct iio_chan_spec const *chan, int *val,
drivers/iio/adc/axp20x_adc.c
593
switch (chan->type) {
drivers/iio/adc/axp20x_adc.c
595
return axp192_adc_scale_voltage(chan->channel, val, val2);
drivers/iio/adc/axp20x_adc.c
602
return axp20x_adc_scale_current(chan->channel, val, val2);
drivers/iio/adc/axp20x_adc.c
613
static int axp20x_adc_scale(struct iio_chan_spec const *chan, int *val,
drivers/iio/adc/axp20x_adc.c
616
switch (chan->type) {
drivers/iio/adc/axp20x_adc.c
618
return axp20x_adc_scale_voltage(chan->channel, val, val2);
drivers/iio/adc/axp20x_adc.c
621
return axp20x_adc_scale_current(chan->channel, val, val2);
drivers/iio/adc/axp20x_adc.c
632
static int axp22x_adc_scale(struct iio_chan_spec const *chan, int *val,
drivers/iio/adc/axp20x_adc.c
635
switch (chan->type) {
drivers/iio/adc/axp20x_adc.c
637
return axp22x_adc_scale_voltage(chan->channel, val, val2);
drivers/iio/adc/axp20x_adc.c
652
static int axp717_adc_scale(struct iio_chan_spec const *chan, int *val,
drivers/iio/adc/axp20x_adc.c
655
switch (chan->type) {
drivers/iio/adc/axp20x_adc.c
673
static int axp813_adc_scale(struct iio_chan_spec const *chan, int *val,
drivers/iio/adc/axp20x_adc.c
676
switch (chan->type) {
drivers/iio/adc/axp20x_adc.c
678
return axp813_adc_scale_voltage(chan->channel, val, val2);
drivers/iio/adc/axp20x_adc.c
758
struct iio_chan_spec const *chan, int *val)
drivers/iio/adc/axp20x_adc.c
760
switch (chan->type) {
drivers/iio/adc/axp20x_adc.c
762
return axp192_adc_offset_voltage(indio_dev, chan->channel, val);
drivers/iio/adc/axp20x_adc.c
774
struct iio_chan_spec const *chan, int *val)
drivers/iio/adc/axp20x_adc.c
776
switch (chan->type) {
drivers/iio/adc/axp20x_adc.c
778
return axp20x_adc_offset_voltage(indio_dev, chan->channel, val);
drivers/iio/adc/axp20x_adc.c
790
struct iio_chan_spec const *chan, int *val,
drivers/iio/adc/axp20x_adc.c
795
return axp192_adc_offset(indio_dev, chan, val);
drivers/iio/adc/axp20x_adc.c
798
return axp192_adc_scale(chan, val, val2);
drivers/iio/adc/axp20x_adc.c
801
return axp192_adc_raw(indio_dev, chan, val);
drivers/iio/adc/axp20x_adc.c
809
struct iio_chan_spec const *chan, int *val,
drivers/iio/adc/axp20x_adc.c
814
return axp20x_adc_offset(indio_dev, chan, val);
drivers/iio/adc/axp20x_adc.c
817
return axp20x_adc_scale(chan, val, val2);
drivers/iio/adc/axp20x_adc.c
820
return axp20x_adc_raw(indio_dev, chan, val);
drivers/iio/adc/axp20x_adc.c
828
struct iio_chan_spec const *chan, int *val,
drivers/iio/adc/axp20x_adc.c
838
return axp22x_adc_scale(chan, val, val2);
drivers/iio/adc/axp20x_adc.c
841
return axp22x_adc_raw(indio_dev, chan, val);
drivers/iio/adc/axp20x_adc.c
849
struct iio_chan_spec const *chan, int *val,
drivers/iio/adc/axp20x_adc.c
854
return axp717_adc_scale(chan, val, val2);
drivers/iio/adc/axp20x_adc.c
857
return axp717_adc_raw(indio_dev, chan, val);
drivers/iio/adc/axp20x_adc.c
865
struct iio_chan_spec const *chan, int *val,
drivers/iio/adc/axp20x_adc.c
874
return axp813_adc_scale(chan, val, val2);
drivers/iio/adc/axp20x_adc.c
877
return axp813_adc_raw(indio_dev, chan, val);
drivers/iio/adc/axp20x_adc.c
885
struct iio_chan_spec const *chan, int val, int val2,
drivers/iio/adc/axp20x_adc.c
901
switch (chan->channel) {
drivers/iio/adc/axp20x_adc.c
930
struct iio_chan_spec const *chan, int val, int val2,
drivers/iio/adc/axp20x_adc.c
946
switch (chan->channel) {
drivers/iio/adc/axp288_adc.c
161
struct iio_chan_spec const *chan,
drivers/iio/adc/axp288_adc.c
171
chan->address)) {
drivers/iio/adc/axp288_adc.c
176
ret = axp288_adc_read_channel(val, chan->address, info->regmap);
drivers/iio/adc/axp288_adc.c
178
chan->address))
drivers/iio/adc/bcm_iproc_adc.c
452
struct iio_chan_spec const *chan,
drivers/iio/adc/bcm_iproc_adc.c
462
err = iproc_adc_do_read(indio_dev, chan->channel, &adc_data);
drivers/iio/adc/bcm_iproc_adc.c
468
switch (chan->type) {
drivers/iio/adc/berlin2-adc.c
204
struct iio_chan_spec const *chan, int *val,
drivers/iio/adc/berlin2-adc.c
211
if (chan->type != IIO_VOLTAGE)
drivers/iio/adc/berlin2-adc.c
214
*val = berlin2_adc_read(indio_dev, chan->channel);
drivers/iio/adc/berlin2-adc.c
220
if (chan->type != IIO_TEMP)
drivers/iio/adc/cc10001_adc.c
189
struct iio_chan_spec const *chan)
drivers/iio/adc/cc10001_adc.c
201
cc10001_adc_start(adc_dev, chan->channel);
drivers/iio/adc/cc10001_adc.c
203
val = cc10001_adc_poll_done(indio_dev, chan->channel, delay_ns);
drivers/iio/adc/cc10001_adc.c
212
struct iio_chan_spec const *chan,
drivers/iio/adc/cc10001_adc.c
223
*val = cc10001_adc_read_raw_voltage(indio_dev, chan);
drivers/iio/adc/cc10001_adc.c
236
*val2 = chan->scan_type.realbits;
drivers/iio/adc/cc10001_adc.c
278
struct iio_chan_spec *chan = &chan_array[idx];
drivers/iio/adc/cc10001_adc.c
280
chan->type = IIO_VOLTAGE;
drivers/iio/adc/cc10001_adc.c
281
chan->indexed = 1;
drivers/iio/adc/cc10001_adc.c
282
chan->channel = bit;
drivers/iio/adc/cc10001_adc.c
283
chan->scan_index = idx;
drivers/iio/adc/cc10001_adc.c
284
chan->scan_type.sign = 'u';
drivers/iio/adc/cc10001_adc.c
285
chan->scan_type.realbits = 10;
drivers/iio/adc/cc10001_adc.c
286
chan->scan_type.storagebits = 16;
drivers/iio/adc/cc10001_adc.c
287
chan->info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE);
drivers/iio/adc/cc10001_adc.c
288
chan->info_mask_separate = BIT(IIO_CHAN_INFO_RAW);
drivers/iio/adc/cpcap-adc.c
400
enum cpcap_adc_channel chan)
drivers/iio/adc/cpcap-adc.c
406
if ((chan != CPCAP_ADC_CHG_ISENSE) &&
drivers/iio/adc/cpcap-adc.c
407
(chan != CPCAP_ADC_BATTI))
drivers/iio/adc/cpcap-adc.c
411
value |= ((chan << 4) &
drivers/iio/adc/cpcap-adc.c
856
struct iio_chan_spec const *chan,
drivers/iio/adc/cpcap-adc.c
863
error = cpcap_adc_init_request(&req, chan->channel);
drivers/iio/adc/cpcap-adc.c
873
error = regmap_read(ddata->reg, chan->address, val);
drivers/iio/adc/cpcap-adc.c
887
(chan->channel == CPCAP_ADC_AD3)) {
drivers/iio/adc/cpcap-adc.c
889
chan->address,
drivers/iio/adc/da9150-gpadc.c
223
struct iio_chan_spec const *chan,
drivers/iio/adc/da9150-gpadc.c
228
if ((chan->channel < DA9150_GPADC_CHAN_GPIOA) ||
drivers/iio/adc/da9150-gpadc.c
229
(chan->channel > DA9150_GPADC_CHAN_TJUNC_OVP))
drivers/iio/adc/da9150-gpadc.c
235
return da9150_gpadc_read_processed(gpadc, chan->channel,
drivers/iio/adc/da9150-gpadc.c
236
chan->address, val);
drivers/iio/adc/da9150-gpadc.c
238
return da9150_gpadc_read_scale(chan->channel, val, val2);
drivers/iio/adc/da9150-gpadc.c
240
return da9150_gpadc_read_offset(chan->channel, val);
drivers/iio/adc/dln2-adc.c
152
.chan = DLN2_ADC_DATA_BITS,
drivers/iio/adc/dln2-adc.c
169
.chan = channel,
drivers/iio/adc/dln2-adc.c
219
.port_chan.chan = channel,
drivers/iio/adc/dln2-adc.c
240
.chan = channel,
drivers/iio/adc/dln2-adc.c
306
struct iio_chan_spec const *chan,
drivers/iio/adc/dln2-adc.c
321
ret = dln2_adc_read(dln2, chan->channel);
drivers/iio/adc/dln2-adc.c
359
struct iio_chan_spec const *chan,
drivers/iio/adc/dln2-adc.c
73
u8 chan;
drivers/iio/adc/envelope-detector.c
186
struct iio_chan_spec const *chan,
drivers/iio/adc/exynos_adc.c
436
struct iio_chan_spec const *chan,
drivers/iio/adc/exynos_adc.c
464
info->data->start_conv(info, chan->address);
drivers/iio/adc/fsl-imx25-gcq.c
106
struct iio_chan_spec const *chan,
drivers/iio/adc/fsl-imx25-gcq.c
115
MX25_ADCQ_ITEM(0, chan->channel));
drivers/iio/adc/fsl-imx25-gcq.c
140
struct iio_chan_spec const *chan, int *val,
drivers/iio/adc/fsl-imx25-gcq.c
149
ret = mx25_gcq_get_raw_value(&indio_dev->dev, chan, priv, val);
drivers/iio/adc/fsl-imx25-gcq.c
154
*val = priv->channel_vref_mv[chan->channel];
drivers/iio/adc/fsl-imx25-gcq.c
54
#define MX25_CQG_CHAN(chan, id) {\
drivers/iio/adc/fsl-imx25-gcq.c
57
.channel = chan,\
drivers/iio/adc/gehc-pmc-adc.c
105
ret = pmc_adc_read_raw_ch(pmc_adc, chan->address, val);
drivers/iio/adc/gehc-pmc-adc.c
96
static int pmc_adc_read_raw(struct iio_dev *indio_dev, struct iio_chan_spec const *chan,
drivers/iio/adc/hi8435.c
100
const struct iio_chan_spec *chan,
drivers/iio/adc/hi8435.c
112
*val = !!(tmp & BIT(chan->channel));
drivers/iio/adc/hi8435.c
120
const struct iio_chan_spec *chan,
drivers/iio/adc/hi8435.c
126
return !!(priv->event_scan_mask & BIT(chan->channel));
drivers/iio/adc/hi8435.c
130
const struct iio_chan_spec *chan,
drivers/iio/adc/hi8435.c
142
if (tmp & BIT(chan->channel))
drivers/iio/adc/hi8435.c
143
priv->event_prev_val |= BIT(chan->channel);
drivers/iio/adc/hi8435.c
145
priv->event_prev_val &= ~BIT(chan->channel);
drivers/iio/adc/hi8435.c
147
priv->event_scan_mask |= BIT(chan->channel);
drivers/iio/adc/hi8435.c
149
priv->event_scan_mask &= ~BIT(chan->channel);
drivers/iio/adc/hi8435.c
155
const struct iio_chan_spec *chan,
drivers/iio/adc/hi8435.c
171
mode = !!(psen & BIT(chan->channel / 8));
drivers/iio/adc/hi8435.c
187
const struct iio_chan_spec *chan,
drivers/iio/adc/hi8435.c
203
mode = !!(psen & BIT(chan->channel / 8));
drivers/iio/adc/hi8435.c
298
const struct iio_chan_spec *chan)
drivers/iio/adc/hi8435.c
308
return !!(reg & BIT(chan->channel / 8));
drivers/iio/adc/hi8435.c
312
const struct iio_chan_spec *chan,
drivers/iio/adc/hi8435.c
327
reg &= ~BIT(chan->channel / 8);
drivers/iio/adc/hi8435.c
329
reg |= BIT(chan->channel / 8);
drivers/iio/adc/hx711.c
214
static int hx711_set_gain_for_channel(struct hx711_data *hx711_data, int chan)
drivers/iio/adc/hx711.c
218
if (chan == 0) {
drivers/iio/adc/hx711.c
247
static int hx711_reset_read(struct hx711_data *hx711_data, int chan)
drivers/iio/adc/hx711.c
261
ret = hx711_set_gain_for_channel(hx711_data, chan);
drivers/iio/adc/hx711.c
271
const struct iio_chan_spec *chan,
drivers/iio/adc/hx711.c
280
*val = hx711_reset_read(hx711_data, chan->channel);
drivers/iio/adc/hx711.c
303
struct iio_chan_spec const *chan,
drivers/iio/adc/hx711.c
351
struct iio_chan_spec const *chan,
drivers/iio/adc/imx7d_adc.c
285
struct iio_chan_spec const *chan,
drivers/iio/adc/imx7d_adc.c
300
channel = chan->channel & 0x03;
drivers/iio/adc/imx8qxp-adc.c
201
struct iio_chan_spec const *chan,
drivers/iio/adc/imx8qxp-adc.c
217
imx8qxp_adc_reg_config(adc, chan->channel);
drivers/iio/adc/imx93_adc.c
249
struct iio_chan_spec const *chan,
drivers/iio/adc/imx93_adc.c
260
ret = imx93_adc_read_channel_conversion(adc, chan->channel, val);
drivers/iio/adc/ina2xx-adc.c
150
u16 chan[4];
drivers/iio/adc/ina2xx-adc.c
189
struct iio_chan_spec const *chan,
drivers/iio/adc/ina2xx-adc.c
198
ret = regmap_read(chip->regmap, chan->address, &regval);
drivers/iio/adc/ina2xx-adc.c
202
if (is_signed_reg(chan->address))
drivers/iio/adc/ina2xx-adc.c
207
if (chan->address == INA2XX_BUS_VOLTAGE)
drivers/iio/adc/ina2xx-adc.c
218
if (chan->address == INA2XX_SHUNT_VOLTAGE)
drivers/iio/adc/ina2xx-adc.c
235
switch (chan->address) {
drivers/iio/adc/ina2xx-adc.c
272
switch (chan->address) {
drivers/iio/adc/ina2xx-adc.c
461
struct iio_chan_spec const *chan,
drivers/iio/adc/ina2xx-adc.c
467
switch (chan->address) {
drivers/iio/adc/ina2xx-adc.c
486
struct iio_chan_spec const *chan,
drivers/iio/adc/ina2xx-adc.c
513
if (chan->address == INA2XX_SHUNT_VOLTAGE)
drivers/iio/adc/ina2xx-adc.c
521
if (chan->address == INA2XX_SHUNT_VOLTAGE)
drivers/iio/adc/ina2xx-adc.c
534
if (chan->address == INA2XX_SHUNT_VOLTAGE)
drivers/iio/adc/ina2xx-adc.c
788
chip->scan.chan[i++] = val;
drivers/iio/adc/industrialio-adc.c
42
struct iio_chan_spec *chan_array, *chan;
drivers/iio/adc/industrialio-adc.c
57
chan = &chan_array[0];
drivers/iio/adc/industrialio-adc.c
69
*chan = *template;
drivers/iio/adc/industrialio-adc.c
70
chan->channel = ch;
drivers/iio/adc/industrialio-adc.c
71
chan++;
drivers/iio/adc/ingenic-adc.c
232
struct iio_chan_spec const *chan,
drivers/iio/adc/ingenic-adc.c
243
switch (chan->channel) {
drivers/iio/adc/ingenic-adc.c
601
struct iio_chan_spec const *chan,
drivers/iio/adc/ingenic-adc.c
626
struct iio_chan_spec const *chan,
drivers/iio/adc/ingenic-adc.c
629
int cmd, ret, engine = (chan->channel == INGENIC_ADC_BATTERY);
drivers/iio/adc/ingenic-adc.c
632
switch (chan->channel) {
drivers/iio/adc/ingenic-adc.c
651
switch (chan->channel) {
drivers/iio/adc/ingenic-adc.c
666
struct iio_chan_spec const *chan,
drivers/iio/adc/ingenic-adc.c
680
ret = __ingenic_adc_read_chan(adc, chan, val);
drivers/iio/adc/ingenic-adc.c
688
struct iio_chan_spec const *chan,
drivers/iio/adc/ingenic-adc.c
697
return ingenic_adc_read_chan_info_raw(iio_dev, chan, val);
drivers/iio/adc/ingenic-adc.c
699
switch (chan->channel) {
drivers/iio/adc/intel_dc_ti_adc.c
112
struct iio_chan_spec const *chan,
drivers/iio/adc/intel_dc_ti_adc.c
115
if (chan->channel != DC_TI_ADC_VBAT)
drivers/iio/adc/intel_dc_ti_adc.c
126
struct iio_chan_spec const *chan,
drivers/iio/adc/intel_dc_ti_adc.c
129
if (chan->channel != DC_TI_ADC_VBAT)
drivers/iio/adc/intel_dc_ti_adc.c
147
struct iio_chan_spec const *chan, int *val)
drivers/iio/adc/intel_dc_ti_adc.c
149
int ret, ch = chan->channel;
drivers/iio/adc/intel_dc_ti_adc.c
189
ret = regmap_bulk_read(info->regmap, chan->address, &buf, sizeof(buf));
drivers/iio/adc/intel_dc_ti_adc.c
203
struct iio_chan_spec const *chan,
drivers/iio/adc/intel_dc_ti_adc.c
210
return dc_ti_adc_scale(info, chan, val, val2);
drivers/iio/adc/intel_dc_ti_adc.c
219
if (chan->channel == DC_TI_ADC_BATTEMP) {
drivers/iio/adc/intel_dc_ti_adc.c
231
ret = dc_ti_adc_sample(info, chan, val);
drivers/iio/adc/intel_dc_ti_adc.c
233
if (chan->channel == DC_TI_ADC_BATTEMP)
drivers/iio/adc/intel_dc_ti_adc.c
244
return dc_ti_adc_raw_to_processed(info, chan, *val, val, val2);
drivers/iio/adc/intel_mrfld_adc.c
108
ret = regmap_bulk_read(regmap, chan->address, &value, sizeof(value));
drivers/iio/adc/intel_mrfld_adc.c
123
struct iio_chan_spec const *chan,
drivers/iio/adc/intel_mrfld_adc.c
132
ret = mrfld_adc_single_conv(indio_dev, chan, val);
drivers/iio/adc/intel_mrfld_adc.c
71
struct iio_chan_spec const *chan,
drivers/iio/adc/intel_mrfld_adc.c
92
req = mrfld_adc_requests[chan->channel];
drivers/iio/adc/lp8788_adc.c
95
struct iio_chan_spec const *chan,
drivers/iio/adc/lp8788_adc.c
99
enum lp8788_adc_id id = chan->channel;
drivers/iio/adc/lpc18xx_adc.c
87
struct iio_chan_spec const *chan,
drivers/iio/adc/lpc18xx_adc.c
95
*val = lpc18xx_adc_read_chan(adc, chan->channel);
drivers/iio/adc/lpc32xx_adc.c
59
struct iio_chan_spec const *chan,
drivers/iio/adc/lpc32xx_adc.c
76
__raw_writel(LPC32XXAD_INTERNAL | (chan->address) |
drivers/iio/adc/ltc2309.c
175
struct iio_chan_spec const *chan, int *val,
drivers/iio/adc/ltc2309.c
184
ret = ltc2309_read_raw_channel(ltc2309, chan->address, val);
drivers/iio/adc/ltc2471.c
46
struct iio_chan_spec const *chan,
drivers/iio/adc/ltc2471.c
61
if (chan->differential)
drivers/iio/adc/ltc2485.c
57
struct iio_chan_spec const *chan,
drivers/iio/adc/ltc2497-core.c
77
struct iio_chan_spec const *chan,
drivers/iio/adc/ltc2497-core.c
86
ret = ltc2497core_read(ddata, chan->address, val);
drivers/iio/adc/max1027.c
332
struct iio_chan_spec const *chan,
drivers/iio/adc/max1027.c
339
st->reg = MAX1027_CONV_REG | MAX1027_CHAN(chan->channel) |
drivers/iio/adc/max1027.c
341
if (chan->type == IIO_TEMP)
drivers/iio/adc/max1027.c
360
ret = spi_read(st->spi, st->buffer, (chan->type == IIO_TEMP) ? 4 : 2);
drivers/iio/adc/max1027.c
370
struct iio_chan_spec const *chan,
drivers/iio/adc/max1027.c
383
ret = max1027_read_single_value(indio_dev, chan, val);
drivers/iio/adc/max1027.c
387
switch (chan->type) {
drivers/iio/adc/max1027.c
394
*val2 = chan->scan_type.realbits;
drivers/iio/adc/max11100.c
72
struct iio_chan_spec const *chan,
drivers/iio/adc/max1118.c
136
struct iio_chan_spec const *chan,
drivers/iio/adc/max1118.c
144
*val = max1118_read(indio_dev, chan->channel);
drivers/iio/adc/max11205.c
43
struct iio_chan_spec const *chan,
drivers/iio/adc/max11205.c
51
return ad_sigma_delta_single_conversion(indio_dev, chan, val);
drivers/iio/adc/max11410.c
353
struct iio_chan_spec const *chan)
drivers/iio/adc/max11410.c
355
struct max11410_channel_config cfg = st->channels[chan->address];
drivers/iio/adc/max11410.c
359
if (chan->differential)
drivers/iio/adc/max11410.c
360
ret = max11410_set_input_mux(st, chan->channel, chan->channel2);
drivers/iio/adc/max11410.c
362
ret = max11410_set_input_mux(st, chan->channel,
drivers/iio/adc/max11410.c
393
struct iio_chan_spec const *chan)
drivers/iio/adc/max11410.c
397
ret = max11410_configure_channel(st, chan);
drivers/iio/adc/max11410.c
454
struct iio_chan_spec const *chan,
drivers/iio/adc/max11410.c
458
struct max11410_channel_config cfg = state->channels[chan->address];
drivers/iio/adc/max11410.c
464
*val2 = chan->scan_type.realbits;
drivers/iio/adc/max11410.c
468
*val = -BIT(chan->scan_type.realbits - 1);
drivers/iio/adc/max11410.c
479
ret = max11410_sample(state, &reg_val, chan);
drivers/iio/adc/max11410.c
535
struct iio_chan_spec const *chan,
drivers/iio/adc/max11410.c
544
scale_avail = st->channels[chan->address].scale_avail;
drivers/iio/adc/max11410.c
560
st->channels[chan->address].gain = clamp_val(gain, 0, 7);
drivers/iio/adc/max11410.c
579
struct iio_chan_spec const *chan,
drivers/iio/adc/max11410.c
601
cfg = st->channels[chan->address];
drivers/iio/adc/max1241.c
66
struct iio_chan_spec const *chan,
drivers/iio/adc/max1363.c
360
struct iio_chan_spec const *chan,
drivers/iio/adc/max1363.c
382
if (st->current_mode != &max1363_mode_table[chan->address]) {
drivers/iio/adc/max1363.c
386
st->current_mode = &max1363_mode_table[chan->address];
drivers/iio/adc/max1363.c
413
struct iio_chan_spec const *chan,
drivers/iio/adc/max1363.c
426
ret = max1363_read_single_chan(indio_dev, chan, val, m);
drivers/iio/adc/max1363.c
727
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/adc/max1363.c
733
*val = st->thresh_low[chan->channel];
drivers/iio/adc/max1363.c
735
*val = st->thresh_high[chan->channel];
drivers/iio/adc/max1363.c
740
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/adc/max1363.c
759
st->thresh_low[chan->channel] = val;
drivers/iio/adc/max1363.c
762
st->thresh_high[chan->channel] = val;
drivers/iio/adc/max1363.c
810
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/adc/max1363.c
815
int number = chan->channel;
drivers/iio/adc/max1363.c
951
const struct iio_chan_spec *chan,
drivers/iio/adc/max1363.c
954
int number = chan->channel;
drivers/iio/adc/max1363.c
988
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/adc/max1363.c
997
ret = __max1363_write_event_config(st, chan, dir, state);
drivers/iio/adc/max14001.c
221
struct iio_chan_spec const *chan,
drivers/iio/adc/max34408.c
117
const struct iio_chan_spec *chan, int *val)
drivers/iio/adc/max34408.c
136
rc = regmap_read(max34408->regmap, chan->address, val);
drivers/iio/adc/max34408.c
150
struct iio_chan_spec const *chan,
drivers/iio/adc/max34408.c
158
rc = max34408_read_adc_avg(max34408, chan, val);
drivers/iio/adc/max34408.c
169
*val = 10000 / max34408->input_rsense[chan->channel];
drivers/iio/adc/max77541-adc.c
134
struct iio_chan_spec const *chan,
drivers/iio/adc/max77541-adc.c
139
return max77541_adc_offset(indio_dev, chan, val, val2);
drivers/iio/adc/max77541-adc.c
141
return max77541_adc_scale(indio_dev, chan, val, val2);
drivers/iio/adc/max77541-adc.c
143
return max77541_adc_raw(indio_dev, chan, val);
drivers/iio/adc/max77541-adc.c
29
struct iio_chan_spec const *chan,
drivers/iio/adc/max77541-adc.c
32
switch (chan->channel) {
drivers/iio/adc/max77541-adc.c
42
struct iio_chan_spec const *chan,
drivers/iio/adc/max77541-adc.c
49
switch (chan->channel) {
drivers/iio/adc/max77541-adc.c
86
struct iio_chan_spec const *chan,
drivers/iio/adc/max77541-adc.c
92
ret = regmap_read(*regmap, chan->address, val);
drivers/iio/adc/max9611.c
286
struct iio_chan_spec const *chan,
drivers/iio/adc/max9611.c
298
switch (chan->address) {
drivers/iio/adc/max9611.c
328
switch (chan->address) {
drivers/iio/adc/max9611.c
345
switch (chan->address) {
drivers/iio/adc/mcp3422.c
247
struct iio_chan_spec const *chan, long mask)
drivers/iio/adc/mcp3564.c
493
const struct iio_chan_spec *chan,
drivers/iio/adc/mcp3564.c
516
const struct iio_chan_spec *chan)
drivers/iio/adc/mcp3564.c
863
struct iio_chan_spec const *chan,
drivers/iio/adc/mcp3564.c
986
struct iio_chan_spec const *chan, char *label)
drivers/iio/adc/mcp3564.c
990
return sysfs_emit(label, "%s\n", adc->labels[chan->scan_index]);
drivers/iio/adc/mcp3911.c
306
struct iio_chan_spec const *chan,
drivers/iio/adc/mcp3911.c
320
struct iio_chan_spec const *chan,
drivers/iio/adc/men_z188_adc.c
48
struct iio_chan_spec const *chan,
drivers/iio/adc/men_z188_adc.c
59
tmp = readw(adc->base + chan->channel * 4);
drivers/iio/adc/men_z188_adc.c
64
chan->channel);
drivers/iio/adc/meson_saradc.c
1183
struct iio_chan_spec const *chan,
drivers/iio/adc/meson_saradc.c
1186
if (chan->type == IIO_TEMP)
drivers/iio/adc/meson_saradc.c
1188
if (chan->type == IIO_VOLTAGE && chan->channel >= NUM_MUX_0_VSS)
drivers/iio/adc/meson_saradc.c
1190
chan7_mux_names[chan->channel - NUM_MUX_0_VSS]);
drivers/iio/adc/meson_saradc.c
1191
if (chan->type == IIO_VOLTAGE)
drivers/iio/adc/meson_saradc.c
1192
return sysfs_emit(label, "channel-%d\n", chan->channel);
drivers/iio/adc/meson_saradc.c
443
const struct iio_chan_spec *chan,
drivers/iio/adc/meson_saradc.c
462
if (fifo_chan != chan->address) {
drivers/iio/adc/meson_saradc.c
464
fifo_chan, chan->address);
drivers/iio/adc/meson_saradc.c
476
const struct iio_chan_spec *chan,
drivers/iio/adc/meson_saradc.c
481
int val, address = chan->address;
drivers/iio/adc/meson_saradc.c
494
const struct iio_chan_spec *chan)
drivers/iio/adc/meson_saradc.c
510
chan->address);
drivers/iio/adc/meson_saradc.c
515
chan->address);
drivers/iio/adc/meson_saradc.c
521
chan->address);
drivers/iio/adc/meson_saradc.c
526
if (chan->address == MESON_SAR_ADC_VOLTAGE_AND_TEMP_CHANNEL) {
drivers/iio/adc/meson_saradc.c
527
if (chan->type == IIO_TEMP)
drivers/iio/adc/meson_saradc.c
535
} else if (chan->address == MESON_SAR_ADC_VOLTAGE_AND_MUX_CHANNEL) {
drivers/iio/adc/meson_saradc.c
538
if (chan->channel == NUM_CHAN_7)
drivers/iio/adc/meson_saradc.c
541
sel = chan7_mux_values[chan->channel - NUM_MUX_0_VSS];
drivers/iio/adc/meson_saradc.c
636
const struct iio_chan_spec *chan,
drivers/iio/adc/meson_saradc.c
645
if (chan->type == IIO_TEMP && !priv->temperature_sensor_calibrated)
drivers/iio/adc/meson_saradc.c
655
meson_sar_adc_set_averaging(indio_dev, chan, avg_mode, avg_samples);
drivers/iio/adc/meson_saradc.c
657
meson_sar_adc_enable_channel(indio_dev, chan);
drivers/iio/adc/meson_saradc.c
660
ret = meson_sar_adc_read_raw_sample(indio_dev, chan, val);
drivers/iio/adc/meson_saradc.c
667
chan->address, ret);
drivers/iio/adc/meson_saradc.c
675
const struct iio_chan_spec *chan,
drivers/iio/adc/meson_saradc.c
684
return meson_sar_adc_get_sample(indio_dev, chan, NO_AVERAGING,
drivers/iio/adc/meson_saradc.c
688
return meson_sar_adc_get_sample(indio_dev, chan,
drivers/iio/adc/meson_saradc.c
693
if (chan->type == IIO_VOLTAGE) {
drivers/iio/adc/meson_saradc.c
703
} else if (chan->type == IIO_TEMP) {
drivers/iio/adc/mp2629_adc.c
64
struct iio_chan_spec const *chan,
drivers/iio/adc/mp2629_adc.c
73
ret = regmap_read(info->regmap, chan->address, &rval);
drivers/iio/adc/mp2629_adc.c
77
if (chan->channel == MP2629_INPUT_VOLT)
drivers/iio/adc/mp2629_adc.c
83
switch (chan->channel) {
drivers/iio/adc/mt6359-auxadc.c
167
const struct iio_chan_spec *chan, int *vbat, int *ibat);
drivers/iio/adc/mt6359-auxadc.c
463
static int mt6358_start_imp_conv(struct mt6359_auxadc *adc_dev, const struct iio_chan_spec *chan)
drivers/iio/adc/mt6359-auxadc.c
466
const struct mtk_pmic_auxadc_chan *desc = &cinfo->desc[chan->scan_index];
drivers/iio/adc/mt6359-auxadc.c
486
const struct iio_chan_spec *chan, int *vbat, int *ibat)
drivers/iio/adc/mt6359-auxadc.c
494
ret = mt6358_start_imp_conv(adc_dev, chan);
drivers/iio/adc/mt6359-auxadc.c
513
const struct iio_chan_spec *chan, int *vbat, int *ibat)
drivers/iio/adc/mt6359-auxadc.c
516
const struct mtk_pmic_auxadc_chan *desc = &cinfo->desc[chan->scan_index];
drivers/iio/adc/mt6359-auxadc.c
647
const struct iio_chan_spec *chan, u32 *out)
drivers/iio/adc/mt6359-auxadc.c
650
const struct mtk_pmic_auxadc_chan *desc = &cinfo->desc[chan->scan_index];
drivers/iio/adc/mt6359-auxadc.c
663
reg = cinfo->regs[PMIC_AUXADC_ADC0] + (chan->address << 1);
drivers/iio/adc/mt6359-auxadc.c
681
dev_dbg(adc_dev->dev, "ADC read timeout for chan %lu\n", chan->address);
drivers/iio/adc/mt6359-auxadc.c
698
const struct iio_chan_spec *chan, int *out)
drivers/iio/adc/mt6359-auxadc.c
701
const struct mtk_pmic_auxadc_chan *desc = &cinfo->desc[chan->scan_index];
drivers/iio/adc/mt6359-auxadc.c
729
ret = mt6359_auxadc_sample_adc_val(adc_dev, chan, &val);
drivers/iio/adc/mt6359-auxadc.c
752
*out = val & GENMASK(chan->scan_type.realbits - 1, 0);
drivers/iio/adc/mt6359-auxadc.c
757
const struct iio_chan_spec *chan, char *label)
drivers/iio/adc/mt6359-auxadc.c
759
return sysfs_emit(label, "%s\n", chan->datasheet_name);
drivers/iio/adc/mt6359-auxadc.c
763
const struct iio_chan_spec *chan,
drivers/iio/adc/mt6359-auxadc.c
768
const struct mtk_pmic_auxadc_chan *desc = &cinfo->desc[chan->scan_index];
drivers/iio/adc/mt6359-auxadc.c
783
switch (chan->scan_index) {
drivers/iio/adc/mt6359-auxadc.c
788
ret = adc_dev->chip_info->read_imp(adc_dev, chan, NULL, val);
drivers/iio/adc/mt6359-auxadc.c
794
ret = adc_dev->chip_info->read_imp(adc_dev, chan, val, NULL);
drivers/iio/adc/mt6359-auxadc.c
797
ret = mt6359_auxadc_read_adc(adc_dev, chan, val);
drivers/iio/adc/mt6360-adc.c
193
static int mt6360_adc_read_raw(struct iio_dev *iio_dev, const struct iio_chan_spec *chan,
drivers/iio/adc/mt6360-adc.c
200
return mt6360_adc_read_channel(mad, chan->channel, val);
drivers/iio/adc/mt6360-adc.c
202
return mt6360_adc_read_scale(mad, chan->channel, val, val2);
drivers/iio/adc/mt6360-adc.c
204
return mt6360_adc_read_offset(mad, chan->channel, val);
drivers/iio/adc/mt6360-adc.c
215
static int mt6360_adc_read_label(struct iio_dev *iio_dev, const struct iio_chan_spec *chan,
drivers/iio/adc/mt6360-adc.c
218
return sysfs_emit(label, "%s\n", mt6360_channel_labels[chan->channel]);
drivers/iio/adc/mt6370-adc.c
132
int chan, int *val1, int *val2)
drivers/iio/adc/mt6370-adc.c
137
switch (chan) {
drivers/iio/adc/mt6370-adc.c
212
int chan, int *val)
drivers/iio/adc/mt6370-adc.c
220
const struct iio_chan_spec *chan,
drivers/iio/adc/mt6370-adc.c
227
return mt6370_adc_read_channel(priv, chan->channel,
drivers/iio/adc/mt6370-adc.c
228
chan->address, val);
drivers/iio/adc/mt6370-adc.c
230
return mt6370_adc_read_scale(priv, chan->channel, val, val2);
drivers/iio/adc/mt6370-adc.c
232
return mt6370_adc_read_offset(priv, chan->channel, val);
drivers/iio/adc/mt6370-adc.c
251
struct iio_chan_spec const *chan, char *label)
drivers/iio/adc/mt6370-adc.c
253
return sysfs_emit(label, "%s\n", mt6370_channel_labels[chan->channel]);
drivers/iio/adc/mt6370-adc.c
66
static int mt6370_adc_read_channel(struct mt6370_adc_data *priv, int chan,
drivers/iio/adc/mt6577_auxadc.c
110
struct iio_chan_spec const *chan)
drivers/iio/adc/mt6577_auxadc.c
118
chan->channel * 0x04;
drivers/iio/adc/mt6577_auxadc.c
123
0, 1 << chan->channel);
drivers/iio/adc/mt6577_auxadc.c
133
chan->channel);
drivers/iio/adc/mt6577_auxadc.c
139
1 << chan->channel, 0);
drivers/iio/adc/mt6577_auxadc.c
165
chan->channel);
drivers/iio/adc/mt6577_auxadc.c
184
struct iio_chan_spec const *chan,
drivers/iio/adc/mt6577_auxadc.c
193
*val = mt6577_auxadc_read(indio_dev, chan);
drivers/iio/adc/mt6577_auxadc.c
197
chan->channel);
drivers/iio/adc/mxs-lradc-adc.c
131
static int mxs_lradc_adc_read_single(struct iio_dev *iio_dev, int chan,
drivers/iio/adc/mxs-lradc-adc.c
160
if (test_bit(chan, &adc->is_divided))
drivers/iio/adc/mxs-lradc-adc.c
170
writel(chan, adc->base + LRADC_CTRL4 + STMP_OFFSET_REG_SET);
drivers/iio/adc/mxs-lradc-adc.c
217
const struct iio_chan_spec *chan,
drivers/iio/adc/mxs-lradc-adc.c
224
if (chan->type == IIO_TEMP)
drivers/iio/adc/mxs-lradc-adc.c
227
return mxs_lradc_adc_read_single(iio_dev, chan->channel, val);
drivers/iio/adc/mxs-lradc-adc.c
230
if (chan->type == IIO_TEMP) {
drivers/iio/adc/mxs-lradc-adc.c
240
*val = adc->vref_mv[chan->channel];
drivers/iio/adc/mxs-lradc-adc.c
241
*val2 = chan->scan_type.realbits -
drivers/iio/adc/mxs-lradc-adc.c
242
test_bit(chan->channel, &adc->is_divided);
drivers/iio/adc/mxs-lradc-adc.c
246
if (chan->type == IIO_TEMP) {
drivers/iio/adc/mxs-lradc-adc.c
269
const struct iio_chan_spec *chan,
drivers/iio/adc/mxs-lradc-adc.c
274
adc->scale_avail[chan->channel];
drivers/iio/adc/mxs-lradc-adc.c
286
clear_bit(chan->channel, &adc->is_divided);
drivers/iio/adc/mxs-lradc-adc.c
291
set_bit(chan->channel, &adc->is_divided);
drivers/iio/adc/mxs-lradc-adc.c
307
const struct iio_chan_spec *chan,
drivers/iio/adc/mxs-lradc-adc.c
486
int chan, ofs = 0;
drivers/iio/adc/mxs-lradc-adc.c
500
for_each_set_bit(chan, iio->active_scan_mask, LRADC_MAX_TOTAL_CHANS) {
drivers/iio/adc/mxs-lradc-adc.c
501
ctrl4_set |= chan << LRADC_CTRL4_LRADCSELECT_OFFSET(ofs);
drivers/iio/adc/nau7802.c
204
struct iio_chan_spec const *chan,
drivers/iio/adc/nau7802.c
242
struct iio_chan_spec const *chan,
drivers/iio/adc/nau7802.c
289
struct iio_chan_spec const *chan,
drivers/iio/adc/nau7802.c
309
if (((ret & NAU7802_CTRL2_CHS_BIT) && !chan->channel) ||
drivers/iio/adc/nau7802.c
311
chan->channel)) {
drivers/iio/adc/nau7802.c
315
NAU7802_CTRL2_CHS(chan->channel) |
drivers/iio/adc/nau7802.c
325
ret = nau7802_read_irq(indio_dev, chan, val);
drivers/iio/adc/nau7802.c
327
ret = nau7802_read_poll(indio_dev, chan, val);
drivers/iio/adc/nau7802.c
359
struct iio_chan_spec const *chan,
drivers/iio/adc/nau7802.c
396
struct iio_chan_spec const *chan,
drivers/iio/adc/nau7802.c
62
#define NAU7802_CHANNEL(chan) { \
drivers/iio/adc/nau7802.c
65
.channel = (chan), \
drivers/iio/adc/nau7802.c
66
.scan_index = (chan), \
drivers/iio/adc/nct7201.c
184
struct iio_chan_spec const *chan,
drivers/iio/adc/nct7201.c
191
if (chan->type != IIO_VOLTAGE)
drivers/iio/adc/nct7201.c
196
err = regmap_read(chip->regmap16, NCT7201_REG_VIN(chan->address), &value);
drivers/iio/adc/nct7201.c
212
const struct iio_chan_spec *chan,
drivers/iio/adc/nct7201.c
222
if (chan->type != IIO_VOLTAGE)
drivers/iio/adc/nct7201.c
229
err = regmap_read(chip->regmap16, NCT7201_REG_VIN_LOW_LIMIT(chan->address),
drivers/iio/adc/nct7201.c
232
err = regmap_read(chip->regmap16, NCT7201_REG_VIN_HIGH_LIMIT(chan->address),
drivers/iio/adc/nct7201.c
243
const struct iio_chan_spec *chan,
drivers/iio/adc/nct7201.c
252
if (chan->type != IIO_VOLTAGE)
drivers/iio/adc/nct7201.c
259
err = regmap_write(chip->regmap16, NCT7201_REG_VIN_LOW_LIMIT(chan->address),
drivers/iio/adc/nct7201.c
262
err = regmap_write(chip->regmap16, NCT7201_REG_VIN_HIGH_LIMIT(chan->address),
drivers/iio/adc/nct7201.c
269
const struct iio_chan_spec *chan,
drivers/iio/adc/nct7201.c
275
if (chan->type != IIO_VOLTAGE)
drivers/iio/adc/nct7201.c
278
return !!(le16_to_cpu(chip->vin_mask) & BIT(chan->address));
drivers/iio/adc/nct7201.c
282
const struct iio_chan_spec *chan,
drivers/iio/adc/nct7201.c
288
__le16 mask = cpu_to_le16(BIT(chan->address));
drivers/iio/adc/nct7201.c
291
if (chan->type != IIO_VOLTAGE)
drivers/iio/adc/npcm_adc.c
155
struct iio_chan_spec const *chan, int *val,
drivers/iio/adc/npcm_adc.c
165
ret = npcm_adc_read(info, val, chan->channel);
drivers/iio/adc/nxp-sar-adc.c
322
static int nxp_sar_adc_read_data(struct nxp_sar_adc *info, unsigned int chan)
drivers/iio/adc/nxp-sar-adc.c
328
if (!field_get(NXP_SAR_ADC_EOC_CH(chan), ceocfr))
drivers/iio/adc/nxp-sar-adc.c
331
cdr = readl(NXP_SAR_ADC_CDR(info->regs, chan));
drivers/iio/adc/nxp-sar-adc.c
523
struct iio_chan_spec const *chan, int *val,
drivers/iio/adc/nxp-sar-adc.c
535
ret = nxp_sar_adc_read_channel(info, chan->channel);
drivers/iio/adc/nxp-sar-adc.c
560
static int nxp_sar_adc_write_raw(struct iio_dev *indio_dev, struct iio_chan_spec const *chan,
drivers/iio/adc/pac1921.c
1044
priv->scan.chan[ch++] = val;
drivers/iio/adc/pac1921.c
212
u16 chan[PAC1921_NUM_MEAS_CHANS];
drivers/iio/adc/pac1921.c
352
struct iio_chan_spec const *chan, int *val,
drivers/iio/adc/pac1921.c
374
ret = pac1921_read_res(priv, chan->address, &res_val);
drivers/iio/adc/pac1921.c
383
switch (chan->channel) {
drivers/iio/adc/pac1921.c
447
struct iio_chan_spec const *chan,
drivers/iio/adc/pac1921.c
552
struct iio_chan_spec const *chan,
drivers/iio/adc/pac1921.c
557
switch (chan->channel) {
drivers/iio/adc/pac1921.c
639
struct iio_chan_spec const *chan,
drivers/iio/adc/pac1921.c
653
struct iio_chan_spec const *chan, int val,
drivers/iio/adc/pac1921.c
662
return pac1921_update_gain_from_scale(priv, chan, val, val2);
drivers/iio/adc/pac1921.c
671
struct iio_chan_spec const *chan, char *label)
drivers/iio/adc/pac1921.c
673
switch (chan->channel) {
drivers/iio/adc/pac1921.c
688
const struct iio_chan_spec *chan,
drivers/iio/adc/pac1921.c
696
switch (chan->channel) {
drivers/iio/adc/pac1921.c
710
const struct iio_chan_spec *chan,
drivers/iio/adc/pac1921.c
720
switch (chan->channel) {
drivers/iio/adc/pac1921.c
744
const struct iio_chan_spec *chan,
drivers/iio/adc/pac1921.c
772
const struct iio_chan_spec *chan,
drivers/iio/adc/pac1921.c
778
if (chan->channel != PAC1921_CHAN_CURRENT)
drivers/iio/adc/pac1921.c
791
const struct iio_chan_spec *chan,
drivers/iio/adc/pac1921.c
799
if (chan->channel != PAC1921_CHAN_CURRENT)
drivers/iio/adc/pac1921.c
866
const struct iio_chan_spec *chan,
drivers/iio/adc/pac1921.c
873
switch (chan->channel) {
drivers/iio/adc/pac1934.c
1001
info->labels[chan->scan_index],
drivers/iio/adc/pac1934.c
1002
chan->scan_index + 1);
drivers/iio/adc/pac1934.c
1008
info->labels[chan->scan_index],
drivers/iio/adc/pac1934.c
1009
chan->scan_index + 1);
drivers/iio/adc/pac1934.c
1015
info->labels[chan->scan_index],
drivers/iio/adc/pac1934.c
1016
chan->scan_index + 1);
drivers/iio/adc/pac1934.c
779
struct iio_chan_spec const *chan, int *val,
drivers/iio/adc/pac1934.c
784
int ret, channel = chan->channel - 1;
drivers/iio/adc/pac1934.c
801
switch (chan->type) {
drivers/iio/adc/pac1934.c
820
switch (chan->type) {
drivers/iio/adc/pac1934.c
831
switch (chan->address) {
drivers/iio/adc/pac1934.c
842
if (chan->scan_type.sign == 'u')
drivers/iio/adc/pac1934.c
861
if (chan->scan_type.sign == 'u')
drivers/iio/adc/pac1934.c
876
if (chan->scan_type.sign == 'u')
drivers/iio/adc/pac1934.c
891
if (chan->scan_type.sign == 'u')
drivers/iio/adc/pac1934.c
910
static int pac1934_write_raw(struct iio_dev *indio_dev, struct iio_chan_spec const *chan,
drivers/iio/adc/pac1934.c
958
info->enable_energy[chan->channel - 1] = val ? true : false;
drivers/iio/adc/pac1934.c
960
info->chip_reg_data.energy_sec_acc[chan->channel - 1] = 0;
drivers/iio/adc/pac1934.c
970
struct iio_chan_spec const *chan, char *label)
drivers/iio/adc/pac1934.c
974
switch (chan->address) {
drivers/iio/adc/pac1934.c
980
info->labels[chan->scan_index],
drivers/iio/adc/pac1934.c
981
chan->scan_index + 1);
drivers/iio/adc/pac1934.c
987
info->labels[chan->scan_index],
drivers/iio/adc/pac1934.c
988
chan->scan_index + 1);
drivers/iio/adc/pac1934.c
994
info->labels[chan->scan_index],
drivers/iio/adc/pac1934.c
995
chan->scan_index + 1);
drivers/iio/adc/palmas_gpadc.c
542
struct iio_chan_spec const *chan, int *val, int *val2, long mask)
drivers/iio/adc/palmas_gpadc.c
545
int adc_chan = chan->channel;
drivers/iio/adc/palmas_gpadc.c
588
const struct iio_chan_spec *chan,
drivers/iio/adc/palmas_gpadc.c
593
int adc_chan = chan->channel;
drivers/iio/adc/palmas_gpadc.c
620
const struct iio_chan_spec *chan,
drivers/iio/adc/palmas_gpadc.c
624
int adc_chan = chan->channel;
drivers/iio/adc/palmas_gpadc.c
654
const struct iio_chan_spec *chan,
drivers/iio/adc/palmas_gpadc.c
657
int adc_chan = chan->channel;
drivers/iio/adc/palmas_gpadc.c
676
const struct iio_chan_spec *chan,
drivers/iio/adc/palmas_gpadc.c
682
int adc_chan = chan->channel;
drivers/iio/adc/palmas_gpadc.c
691
ret = palmas_gpadc_enable_event_config(adc, chan, dir);
drivers/iio/adc/palmas_gpadc.c
693
ret = palmas_gpadc_disable_event_config(adc, chan, dir);
drivers/iio/adc/palmas_gpadc.c
701
const struct iio_chan_spec *chan,
drivers/iio/adc/palmas_gpadc.c
708
int adc_chan = chan->channel;
drivers/iio/adc/palmas_gpadc.c
734
const struct iio_chan_spec *chan,
drivers/iio/adc/palmas_gpadc.c
741
int adc_chan = chan->channel;
drivers/iio/adc/palmas_gpadc.c
800
#define PALMAS_ADC_CHAN_IIO(chan, _type, chan_info) \
drivers/iio/adc/palmas_gpadc.c
802
.datasheet_name = PALMAS_DATASHEET_NAME(chan), \
drivers/iio/adc/palmas_gpadc.c
807
.channel = PALMAS_ADC_CH_##chan, \
drivers/iio/adc/qcom-pm8xxx-xoadc.c
425
pm8xxx_get_channel(struct pm8xxx_xoadc *adc, u8 chan)
drivers/iio/adc/qcom-pm8xxx-xoadc.c
431
if (ch->hwchan->amux_channel == chan)
drivers/iio/adc/qcom-pm8xxx-xoadc.c
645
struct iio_chan_spec const *chan,
drivers/iio/adc/qcom-pm8xxx-xoadc.c
655
ch = pm8xxx_get_channel(adc, chan->address);
drivers/iio/adc/qcom-pm8xxx-xoadc.c
672
ch = pm8xxx_get_channel(adc, chan->address);
drivers/iio/adc/qcom-pm8xxx-xoadc.c
719
struct iio_chan_spec const *chan, char *label)
drivers/iio/adc/qcom-pm8xxx-xoadc.c
724
ch = pm8xxx_get_channel(adc, chan->address);
drivers/iio/adc/qcom-spmi-adc5-gen3.c
361
struct iio_chan_spec const *chan, int *val,
drivers/iio/adc/qcom-spmi-adc5-gen3.c
369
prop = &adc->chan_props[chan->address].common_props;
drivers/iio/adc/qcom-spmi-adc5-gen3.c
389
const struct iio_chan_spec *chan, char *label)
drivers/iio/adc/qcom-spmi-adc5-gen3.c
394
prop = &adc->chan_props[chan->address];
drivers/iio/adc/qcom-spmi-adc5-gen3.c
468
u32 chan, value, sid;
drivers/iio/adc/qcom-spmi-adc5-gen3.c
472
ret = fwnode_property_read_u32(fwnode, "reg", &chan);
drivers/iio/adc/qcom-spmi-adc5-gen3.c
481
sid = FIELD_GET(ADC5_GEN3_VIRTUAL_SID_MASK, chan);
drivers/iio/adc/qcom-spmi-adc5-gen3.c
482
chan = FIELD_GET(ADC5_GEN3_CHANNEL_MASK, chan);
drivers/iio/adc/qcom-spmi-adc5-gen3.c
484
if (chan >= ADC5_MAX_CHANNEL)
drivers/iio/adc/qcom-spmi-adc5-gen3.c
487
name, chan);
drivers/iio/adc/qcom-spmi-adc5-gen3.c
489
prop->common_props.channel = chan;
drivers/iio/adc/qcom-spmi-adc5-gen3.c
492
if (!adc->data->adc_chans[chan].info_mask)
drivers/iio/adc/qcom-spmi-adc5-gen3.c
493
return dev_err_probe(dev, -EINVAL, "Channel %#x not supported\n", chan);
drivers/iio/adc/qcom-spmi-adc5-gen3.c
504
chan, value);
drivers/iio/adc/qcom-spmi-adc5-gen3.c
507
prop->common_props.prescale = adc->data->adc_chans[chan].prescale_index;
drivers/iio/adc/qcom-spmi-adc5-gen3.c
514
chan, varr[0], varr[1]);
drivers/iio/adc/qcom-spmi-adc5-gen3.c
524
chan, value);
drivers/iio/adc/qcom-spmi-adc5-gen3.c
532
chan, value);
drivers/iio/adc/qcom-spmi-adc5.c
315
struct iio_chan_spec const *chan,
drivers/iio/adc/qcom-spmi-adc5.c
356
struct iio_chan_spec const *chan,
drivers/iio/adc/qcom-spmi-adc5.c
393
struct iio_chan_spec const *chan,
drivers/iio/adc/qcom-spmi-adc5.c
435
struct iio_chan_spec const *chan, int *val, int *val2,
drivers/iio/adc/qcom-spmi-adc5.c
443
prop = &adc->chan_props[chan->address];
drivers/iio/adc/qcom-spmi-adc5.c
447
ret = do_conv(adc, prop, chan,
drivers/iio/adc/qcom-spmi-adc5.c
466
struct iio_chan_spec const *chan, int *val, int *val2,
drivers/iio/adc/qcom-spmi-adc5.c
469
return adc_read_raw_common(indio_dev, chan, val, val2,
drivers/iio/adc/qcom-spmi-adc5.c
474
struct iio_chan_spec const *chan, int *val, int *val2,
drivers/iio/adc/qcom-spmi-adc5.c
477
return adc_read_raw_common(indio_dev, chan, val, val2,
drivers/iio/adc/qcom-spmi-adc5.c
634
u32 chan, value, varr[2];
drivers/iio/adc/qcom-spmi-adc5.c
646
ret = fwnode_property_read_u32(fwnode, "reg", &chan);
drivers/iio/adc/qcom-spmi-adc5.c
657
sid = chan >> ADC_CHANNEL_OFFSET;
drivers/iio/adc/qcom-spmi-adc5.c
658
chan = chan & ADC_CHANNEL_MASK;
drivers/iio/adc/qcom-spmi-adc5.c
661
if (chan > ADC5_PARALLEL_ISENSE_VBAT_IDATA) {
drivers/iio/adc/qcom-spmi-adc5.c
662
dev_err(dev, "%s invalid channel number %d\n", name, chan);
drivers/iio/adc/qcom-spmi-adc5.c
667
prop->channel = chan;
drivers/iio/adc/qcom-spmi-adc5.c
672
channel_name = data->adc_chans[chan].datasheet_name;
drivers/iio/adc/qcom-spmi-adc5.c
681
chan, value);
drivers/iio/adc/qcom-spmi-adc5.c
694
chan, varr[0], varr[1]);
drivers/iio/adc/qcom-spmi-adc5.c
726
chan, value);
drivers/iio/adc/qcom-spmi-adc5.c
739
chan, value);
drivers/iio/adc/qcom-spmi-adc5.c
758
dev_dbg(dev, "%02x name %s\n", chan, name);
drivers/iio/adc/qcom-spmi-iadc.c
164
u8 mode, sta1, chan, dig, en, req;
drivers/iio/adc/qcom-spmi-iadc.c
175
ret = iadc_read(iadc, IADC_CH_SEL_CTL, &chan);
drivers/iio/adc/qcom-spmi-iadc.c
193
mode, en, chan, dig, req, sta1);
drivers/iio/adc/qcom-spmi-iadc.c
276
static int iadc_do_conversion(struct iadc_chip *iadc, int chan, u16 *data)
drivers/iio/adc/qcom-spmi-iadc.c
281
ret = iadc_configure(iadc, chan);
drivers/iio/adc/qcom-spmi-iadc.c
310
struct iio_chan_spec const *chan,
drivers/iio/adc/qcom-spmi-iadc.c
321
ret = iadc_do_conversion(iadc, chan->channel, &adc_raw);
drivers/iio/adc/qcom-spmi-iadc.c
326
vsense_raw = adc_raw - iadc->offset[chan->channel];
drivers/iio/adc/qcom-spmi-iadc.c
329
vsense_uv /= (s32)iadc->gain - iadc->offset[chan->channel];
drivers/iio/adc/qcom-spmi-iadc.c
331
isense_ua = vsense_uv / iadc->rsense[chan->channel];
drivers/iio/adc/qcom-spmi-iadc.c
334
iadc->offset[chan->channel], iadc->gain,
drivers/iio/adc/qcom-spmi-rradc.c
402
const struct rradc_channel *chan = &rradc_chans[chan_address];
drivers/iio/adc/qcom-spmi-rradc.c
416
ret = regmap_read(chip->regmap, chip->base + chan->status, &status);
drivers/iio/adc/qcom-spmi-rradc.c
426
const struct rradc_channel *chan = &rradc_chans[chan_address];
drivers/iio/adc/qcom-spmi-rradc.c
430
if (chan->trigger_mask == 0) {
drivers/iio/adc/qcom-spmi-rradc.c
435
ret = regmap_set_bits(chip->regmap, chip->base + chan->trigger_addr,
drivers/iio/adc/qcom-spmi-rradc.c
436
chan->trigger_mask);
drivers/iio/adc/qcom-spmi-rradc.c
470
regmap_clear_bits(chip->regmap, chip->base + chan->trigger_addr,
drivers/iio/adc/qcom-spmi-rradc.c
471
chan->trigger_mask);
drivers/iio/adc/qcom-spmi-rradc.c
513
const struct rradc_channel *chan = &rradc_chans[chan_address];
drivers/iio/adc/qcom-spmi-rradc.c
554
ret = rradc_read(chip, chan->lsb, buf, chan->size);
drivers/iio/adc/qcom-spmi-rradc.c
731
const struct rradc_channel *chan;
drivers/iio/adc/qcom-spmi-rradc.c
754
chan = &rradc_chans[chan_spec->address];
drivers/iio/adc/qcom-spmi-rradc.c
755
if (!chan->scale_fn)
drivers/iio/adc/qcom-spmi-rradc.c
761
*val = chan->scale_fn(chip, adc_code, val);
drivers/iio/adc/qcom-spmi-rradc.c
769
struct iio_chan_spec const *chan, char *label)
drivers/iio/adc/qcom-spmi-rradc.c
772
rradc_chans[chan->address].label);
drivers/iio/adc/qcom-spmi-vadc.c
177
u8 mode, sta1, chan, dig, en, req;
drivers/iio/adc/qcom-spmi-vadc.c
188
ret = vadc_read(vadc, VADC_ADC_CH_SEL_CTL, &chan);
drivers/iio/adc/qcom-spmi-vadc.c
206
mode, en, chan, dig, req, sta1);
drivers/iio/adc/qcom-spmi-vadc.c
446
struct iio_chan_spec const *chan, int *val, int *val2,
drivers/iio/adc/qcom-spmi-vadc.c
456
prop = &vadc->chan_props[chan->address];
drivers/iio/adc/qcom-spmi-vadc.c
471
prop = &vadc->chan_props[chan->address];
drivers/iio/adc/qcom-spmi-vadc.c
500
struct iio_chan_spec const *chan, char *label)
drivers/iio/adc/qcom-spmi-vadc.c
503
const char *name = vadc->chan_props[chan->address].channel_name;
drivers/iio/adc/qcom-spmi-vadc.c
667
u32 chan, value, varr[2];
drivers/iio/adc/qcom-spmi-vadc.c
670
ret = fwnode_property_read_u32(fwnode, "reg", &chan);
drivers/iio/adc/qcom-spmi-vadc.c
676
if (chan > VADC_CHAN_MAX || chan < VADC_CHAN_MIN) {
drivers/iio/adc/qcom-spmi-vadc.c
677
dev_err(dev, "%s invalid channel number %d\n", name, chan);
drivers/iio/adc/qcom-spmi-vadc.c
683
label = vadc_chans[chan].datasheet_name;
drivers/iio/adc/qcom-spmi-vadc.c
687
prop->channel = chan;
drivers/iio/adc/qcom-spmi-vadc.c
694
chan, value);
drivers/iio/adc/qcom-spmi-vadc.c
707
chan, varr[0], varr[1]);
drivers/iio/adc/qcom-spmi-vadc.c
720
chan, value);
drivers/iio/adc/qcom-spmi-vadc.c
733
chan, value);
drivers/iio/adc/qcom-spmi-vadc.c
746
dev_dbg(dev, "%02x name %s\n", chan, name);
drivers/iio/adc/rcar-gyroadc.c
173
struct iio_chan_spec const *chan,
drivers/iio/adc/rcar-gyroadc.c
178
unsigned int datareg = RCAR_GYROADC_REALTIME_DATA(chan->channel);
drivers/iio/adc/rcar-gyroadc.c
189
consumer = priv->vref[chan->channel];
drivers/iio/adc/rcar-gyroadc.c
193
if (chan->type != IIO_VOLTAGE)
drivers/iio/adc/rn5t618-adc.c
104
const struct iio_chan_spec *chan,
drivers/iio/adc/rn5t618-adc.c
113
rn5t618_ratios[chan->channel].numerator;
drivers/iio/adc/rn5t618-adc.c
114
*val2 = rn5t618_ratios[chan->channel].denominator * 4095;
drivers/iio/adc/rn5t618-adc.c
122
chan->channel);
drivers/iio/adc/rn5t618-adc.c
153
RN5T618_ILIMDATAH + 2 * chan->channel,
drivers/iio/adc/rockchip_saradc.c
153
struct iio_chan_spec const *chan)
drivers/iio/adc/rockchip_saradc.c
157
info->last_chan = chan;
drivers/iio/adc/rockchip_saradc.c
158
rockchip_saradc_start(info, chan->channel);
drivers/iio/adc/rockchip_saradc.c
167
struct iio_chan_spec const *chan,
drivers/iio/adc/rockchip_saradc.c
177
ret = rockchip_saradc_conversion(info, chan);
drivers/iio/adc/rockchip_saradc.c
189
*val2 = chan->scan_type.realbits;
drivers/iio/adc/rockchip_saradc.c
414
const struct iio_chan_spec *chan = &i_dev->channels[i];
drivers/iio/adc/rockchip_saradc.c
416
ret = rockchip_saradc_conversion(info, chan);
drivers/iio/adc/rohm-bd79112.c
196
struct iio_chan_spec const *chan, int *val,
drivers/iio/adc/rohm-bd79112.c
204
ret = regmap_read(data->map, chan->channel, val);
drivers/iio/adc/rohm-bd79124.c
334
const struct iio_chan_spec *chan,
drivers/iio/adc/rohm-bd79124.c
343
if (chan->channel >= BD79124_MAX_NUM_CHANNELS)
drivers/iio/adc/rohm-bd79124.c
349
*val = data->alarm_r_limit[chan->channel];
drivers/iio/adc/rohm-bd79124.c
351
*val = data->alarm_f_limit[chan->channel];
drivers/iio/adc/rohm-bd79124.c
358
reg = BD79124_GET_HYSTERESIS_REG(chan->channel);
drivers/iio/adc/rohm-bd79124.c
377
static int bd79124_start_measurement(struct bd79124_data *data, int chan)
drivers/iio/adc/rohm-bd79124.c
384
if (val & BIT(chan))
drivers/iio/adc/rohm-bd79124.c
397
ret = regmap_write(data->map, BD79124_REG_AUTO_CHANNELS, val | BIT(chan));
drivers/iio/adc/rohm-bd79124.c
416
static int bd79124_stop_measurement(struct bd79124_data *data, int chan)
drivers/iio/adc/rohm-bd79124.c
423
if (!(enabled_chans & BIT(chan)))
drivers/iio/adc/rohm-bd79124.c
430
enabled_chans &= ~BIT(chan);
drivers/iio/adc/rohm-bd79124.c
455
const struct iio_chan_spec *chan,
drivers/iio/adc/rohm-bd79124.c
461
if (chan->channel >= BD79124_MAX_NUM_CHANNELS)
drivers/iio/adc/rohm-bd79124.c
464
return !!(data->alarm_monitored[chan->channel] & BIT(dir));
drivers/iio/adc/rohm-bd79124.c
557
const struct iio_chan_spec *chan,
drivers/iio/adc/rohm-bd79124.c
563
if (chan->channel >= BD79124_MAX_NUM_CHANNELS)
drivers/iio/adc/rohm-bd79124.c
567
return bd79124_enable_event(data, dir, chan->channel);
drivers/iio/adc/rohm-bd79124.c
569
return bd79124_disable_event(data, dir, chan->channel);
drivers/iio/adc/rohm-bd79124.c
573
const struct iio_chan_spec *chan,
drivers/iio/adc/rohm-bd79124.c
582
if (chan->channel >= BD79124_MAX_NUM_CHANNELS)
drivers/iio/adc/rohm-bd79124.c
591
data->alarm_r_limit[chan->channel] = val;
drivers/iio/adc/rohm-bd79124.c
592
reg = BD79124_GET_HIGH_LIMIT_REG(chan->channel);
drivers/iio/adc/rohm-bd79124.c
594
data->alarm_f_limit[chan->channel] = val;
drivers/iio/adc/rohm-bd79124.c
595
reg = BD79124_GET_LOW_LIMIT_REG(chan->channel);
drivers/iio/adc/rohm-bd79124.c
604
if (!(data->alarm_monitored[chan->channel] & BIT(dir)) ||
drivers/iio/adc/rohm-bd79124.c
605
data->alarm_suppressed[chan->channel] & BIT(dir))
drivers/iio/adc/rohm-bd79124.c
611
reg = BD79124_GET_HYSTERESIS_REG(chan->channel);
drivers/iio/adc/rohm-bd79124.c
621
static int bd79124_single_chan_seq(struct bd79124_data *data, int chan, unsigned int *old)
drivers/iio/adc/rohm-bd79124.c
639
ret = regmap_write(data->map, BD79124_REG_AUTO_CHANNELS, BIT(chan));
drivers/iio/adc/rohm-bd79124.c
666
struct iio_chan_spec const *chan,
drivers/iio/adc/rohm-bd79124.c
672
if (chan->channel >= BD79124_MAX_NUM_CHANNELS)
drivers/iio/adc/rohm-bd79124.c
694
ret = bd79124_single_chan_seq(data, chan->channel, &old_chan_cfg);
drivers/iio/adc/rohm-bd79124.c
702
BD79124_GET_RECENT_RES_REG(chan->channel), val);
drivers/iio/adc/rtq6056.c
471
struct iio_chan_spec const *chan, int *val,
drivers/iio/adc/rtq6056.c
479
return rtq6056_adc_read_channel(priv, chan, val);
drivers/iio/adc/rtq6056.c
481
return devdata->read_scale(chan, val, val2);
drivers/iio/adc/rtq6056.c
486
return rtq6056_adc_get_sample_freq(priv, chan, val);
drivers/iio/adc/rtq6056.c
493
struct iio_chan_spec const *chan,
drivers/iio/adc/rtq6056.c
517
struct iio_chan_spec const *chan, int val,
drivers/iio/adc/rtq6056.c
527
return rtq6056_adc_set_samp_freq(priv, chan, val);
drivers/iio/adc/rtq6056.c
536
struct iio_chan_spec const *chan, int val,
drivers/iio/adc/rtq6056.c
544
ret = __rtq6056_adc_write_raw(indio_dev, chan, val, mask);
drivers/iio/adc/rtq6056.c
557
struct iio_chan_spec const *chan,
drivers/iio/adc/rtq6056.c
560
return sysfs_emit(label, "%s\n", rtq6056_channel_labels[chan->channel]);
drivers/iio/adc/rzg2l_adc.c
255
struct iio_chan_spec const *chan,
drivers/iio/adc/rzg2l_adc.c
263
if (chan->type != IIO_VOLTAGE && chan->type != IIO_TEMP)
drivers/iio/adc/rzg2l_adc.c
268
ret = rzg2l_adc_conversion(indio_dev, adc, chan->channel);
drivers/iio/adc/rzg2l_adc.c
272
*val = adc->last_val[chan->channel];
drivers/iio/adc/rzg2l_adc.c
283
const struct iio_chan_spec *chan,
drivers/iio/adc/rzg2l_adc.c
286
return sysfs_emit(label, "%s\n", rzg2l_adc_channels[chan->channel].name);
drivers/iio/adc/rzn1-adc.c
218
static int rzn1_adc_read_raw_ch(struct rzn1_adc *rzn1_adc, unsigned int chan, int *val)
drivers/iio/adc/rzn1-adc.c
235
if (chan < 8) {
drivers/iio/adc/rzn1-adc.c
237
adc1_ch = chan;
drivers/iio/adc/rzn1-adc.c
241
} else if (chan < 16) {
drivers/iio/adc/rzn1-adc.c
245
adc2_ch = chan - 8;
drivers/iio/adc/rzn1-adc.c
257
rzn1_adc_vc_setup_conversion(rzn1_adc, chan, adc1_ch, adc2_ch);
drivers/iio/adc/rzn1-adc.c
259
ret = rzn1_adc_vc_start_conversion(rzn1_adc, chan);
drivers/iio/adc/rzn1-adc.c
263
ret = rzn1_adc_vc_wait_conversion(rzn1_adc, chan, adc1_data, adc2_data);
drivers/iio/adc/rzn1-adc.c
265
rzn1_adc_vc_stop_conversion(rzn1_adc, chan);
drivers/iio/adc/rzn1-adc.c
276
static int rzn1_adc_get_vref_mV(struct rzn1_adc *rzn1_adc, unsigned int chan)
drivers/iio/adc/rzn1-adc.c
279
if (chan < 8)
drivers/iio/adc/rzn1-adc.c
283
if (chan < 16)
drivers/iio/adc/rzn1-adc.c
289
static int rzn1_adc_read_raw(struct iio_dev *indio_dev, struct iio_chan_spec const *chan,
drivers/iio/adc/rzn1-adc.c
297
ret = rzn1_adc_read_raw_ch(rzn1_adc, chan->channel, val);
drivers/iio/adc/rzn1-adc.c
303
ret = rzn1_adc_get_vref_mV(rzn1_adc, chan->channel);
drivers/iio/adc/rzt2h_adc.c
153
struct iio_chan_spec const *chan,
drivers/iio/adc/rzt2h_adc.c
160
return rzt2h_adc_read_single(adc, chan->channel, val);
drivers/iio/adc/sc27xx_adc.c
660
struct iio_chan_spec const *chan,
drivers/iio/adc/sc27xx_adc.c
664
int scale = data->channel_scale[chan->channel];
drivers/iio/adc/sc27xx_adc.c
670
ret = sc27xx_adc_read(data, chan->channel, scale, &tmp);
drivers/iio/adc/sc27xx_adc.c
681
ret = sc27xx_adc_read_processed(data, chan->channel, scale,
drivers/iio/adc/sc27xx_adc.c
701
struct iio_chan_spec const *chan,
drivers/iio/adc/sc27xx_adc.c
708
data->channel_scale[chan->channel] = val;
drivers/iio/adc/sd_adc_modulator.c
52
static int iio_sd_mod_read(struct iio_backend *backend, struct iio_chan_spec const *chan, int *val,
drivers/iio/adc/sophgo-cv1800b-adc.c
107
cv1800b_adc_start_measurement(saradc, chan->scan_index);
drivers/iio/adc/sophgo-cv1800b-adc.c
112
sample = readl(saradc->regs + CV1800B_ADC_CH_RESULT_REG(chan->scan_index));
drivers/iio/adc/sophgo-cv1800b-adc.c
95
struct iio_chan_spec const *chan,
drivers/iio/adc/spear_adc.c
151
struct iio_chan_spec const *chan,
drivers/iio/adc/spear_adc.c
163
status = FIELD_PREP(SPEAR_ADC_STATUS_CHANNEL_NUM_MASK, chan->channel) |
drivers/iio/adc/spear_adc.c
191
struct iio_chan_spec const *chan,
drivers/iio/adc/stm32-adc.c
1328
const struct iio_chan_spec *chan;
drivers/iio/adc/stm32-adc.c
1337
chan = indio_dev->channels + bit;
drivers/iio/adc/stm32-adc.c
1347
__func__, chan->channel, i);
drivers/iio/adc/stm32-adc.c
1351
val |= chan->channel << sqr[i].shift;
drivers/iio/adc/stm32-adc.c
1435
const struct iio_chan_spec *chan,
drivers/iio/adc/stm32-adc.c
1446
const struct iio_chan_spec *chan)
drivers/iio/adc/stm32-adc.c
1477
const struct iio_chan_spec *chan,
drivers/iio/adc/stm32-adc.c
1502
val |= chan->channel << regs->sqr[1].shift;
drivers/iio/adc/stm32-adc.c
1536
struct iio_chan_spec const *chan,
drivers/iio/adc/stm32-adc.c
1579
struct iio_chan_spec const *chan,
drivers/iio/adc/stm32-adc.c
1596
struct iio_chan_spec const *chan,
drivers/iio/adc/stm32-adc.c
1607
if (chan->type == IIO_VOLTAGE)
drivers/iio/adc/stm32-adc.c
1608
ret = stm32_adc_single_conv(indio_dev, chan, val);
drivers/iio/adc/stm32-adc.c
1619
if (chan->differential) {
drivers/iio/adc/stm32-adc.c
1621
*val2 = chan->scan_type.realbits;
drivers/iio/adc/stm32-adc.c
1624
*val2 = chan->scan_type.realbits;
drivers/iio/adc/stm32-adc.c
1629
if (chan->differential)
drivers/iio/adc/stm32-adc.c
1631
*val = -((1 << chan->scan_type.realbits) / 2);
drivers/iio/adc/stm32-adc.c
2083
struct iio_chan_spec *chan, u32 vinp,
drivers/iio/adc/stm32-adc.c
2089
chan->type = IIO_VOLTAGE;
drivers/iio/adc/stm32-adc.c
2090
chan->channel = vinp;
drivers/iio/adc/stm32-adc.c
2092
chan->differential = 1;
drivers/iio/adc/stm32-adc.c
2093
chan->channel2 = vinn;
drivers/iio/adc/stm32-adc.c
2098
chan->datasheet_name = name;
drivers/iio/adc/stm32-adc.c
2099
chan->scan_index = scan_index;
drivers/iio/adc/stm32-adc.c
2100
chan->indexed = 1;
drivers/iio/adc/stm32-adc.c
2101
if (chan->channel == adc->int_ch[STM32_ADC_INT_CH_VREFINT])
drivers/iio/adc/stm32-adc.c
2102
chan->info_mask_separate = BIT(IIO_CHAN_INFO_PROCESSED);
drivers/iio/adc/stm32-adc.c
2104
chan->info_mask_separate = BIT(IIO_CHAN_INFO_RAW);
drivers/iio/adc/stm32-adc.c
2105
chan->info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE) |
drivers/iio/adc/stm32-adc.c
2108
chan->info_mask_shared_by_all |= BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO);
drivers/iio/adc/stm32-adc.c
2109
chan->info_mask_shared_by_all_available = BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO);
drivers/iio/adc/stm32-adc.c
2111
chan->scan_type.sign = 'u';
drivers/iio/adc/stm32-adc.c
2112
chan->scan_type.realbits = adc->cfg->adc_info->resolutions[adc->res];
drivers/iio/adc/stm32-adc.c
2113
chan->scan_type.storagebits = 16;
drivers/iio/adc/stm32-adc.c
2114
chan->ext_info = stm32_adc_ext_info;
drivers/iio/adc/stm32-adc.c
2117
adc->pcsel |= BIT(chan->channel);
drivers/iio/adc/stm32-adc.c
2120
adc->difsel |= BIT(chan->channel) & adc->cfg->regs->difsel.mask;
drivers/iio/adc/stm32-adc.c
2122
adc->pcsel |= BIT(chan->channel2);
drivers/iio/adc/stm32-adc.c
2258
int chan)
drivers/iio/adc/stm32-adc.c
2296
adc->int_ch[i] = chan;
drivers/iio/adc/stm32-adc.c
2313
adc->int_ch[i] = chan;
drivers/iio/adc/stm32-dfsdm-adc.c
1203
const struct iio_chan_spec *chan, int *res)
drivers/iio/adc/stm32-dfsdm-adc.c
1223
adc->smask = BIT(chan->scan_index);
drivers/iio/adc/stm32-dfsdm-adc.c
1256
struct iio_chan_spec const *chan,
drivers/iio/adc/stm32-dfsdm-adc.c
1260
struct stm32_dfsdm_channel *ch = &adc->dfsdm->ch_list[chan->channel];
drivers/iio/adc/stm32-dfsdm-adc.c
1308
struct iio_chan_spec const *chan,
drivers/iio/adc/stm32-dfsdm-adc.c
1317
ret = iio_backend_enable(adc->backend[chan->scan_index]);
drivers/iio/adc/stm32-dfsdm-adc.c
1321
__func__, chan->channel);
drivers/iio/adc/stm32-dfsdm-adc.c
1324
ret = stm32_dfsdm_single_conv(indio_dev, chan, val);
drivers/iio/adc/stm32-dfsdm-adc.c
1328
iio_backend_disable(adc->backend[chan->scan_index]);
drivers/iio/adc/stm32-dfsdm-adc.c
1332
__func__, chan->channel);
drivers/iio/adc/stm32-dfsdm-adc.c
1340
struct iio_chan_spec const *chan, int *val,
drivers/iio/adc/stm32-dfsdm-adc.c
1347
u32 max = flo->max << (flo->lshift - chan->scan_type.shift);
drivers/iio/adc/stm32-dfsdm-adc.c
1348
int idx = chan->scan_index;
drivers/iio/adc/stm32-dfsdm-adc.c
1351
if (flo->lshift < chan->scan_type.shift)
drivers/iio/adc/stm32-dfsdm-adc.c
1352
max = flo->max >> (chan->scan_type.shift - flo->lshift);
drivers/iio/adc/stm32-dfsdm-adc.c
1359
ret = __stm32_dfsdm_read_info_raw(indio_dev, chan, val);
drivers/iio/adc/stm32-dfsdm-adc.c
1385
ret = iio_backend_read_scale(adc->backend[idx], chan, val, NULL);
drivers/iio/adc/stm32-dfsdm-adc.c
1390
*val2 = chan->scan_type.realbits;
drivers/iio/adc/stm32-dfsdm-adc.c
1391
if (chan->differential)
drivers/iio/adc/stm32-dfsdm-adc.c
1409
ret = iio_backend_read_offset(adc->backend[idx], chan, val, NULL);
drivers/iio/adc/stm32-dfsdm-adc.c
1414
if (!chan->differential)
drivers/iio/adc/stm32-dfsdm-adc.c
1874
const struct iio_chan_spec *chan;
drivers/iio/adc/stm32-dfsdm-adc.c
1880
chan = indio_dev->channels + i;
drivers/iio/adc/stm32-dfsdm-adc.c
1881
ch = &adc->dfsdm->ch_list[chan->channel];
drivers/iio/adc/stm32-dfsdm-adc.c
342
const struct iio_chan_spec *chan;
drivers/iio/adc/stm32-dfsdm-adc.c
347
chan = indio_dev->channels + bit;
drivers/iio/adc/stm32-dfsdm-adc.c
348
ret = regmap_update_bits(regmap, DFSDM_CHCFGR1(chan->channel),
drivers/iio/adc/stm32-dfsdm-adc.c
362
const struct iio_chan_spec *chan;
drivers/iio/adc/stm32-dfsdm-adc.c
366
chan = indio_dev->channels + bit;
drivers/iio/adc/stm32-dfsdm-adc.c
367
regmap_update_bits(regmap, DFSDM_CHCFGR1(chan->channel),
drivers/iio/adc/stm32-dfsdm-adc.c
463
const struct iio_chan_spec *chan;
drivers/iio/adc/stm32-dfsdm-adc.c
488
chan = indio_dev->channels + bit;
drivers/iio/adc/stm32-dfsdm-adc.c
491
DFSDM_CHCFGR2(chan->channel),
drivers/iio/adc/stm32-dfsdm-adc.c
510
const struct iio_chan_spec *chan;
drivers/iio/adc/stm32-dfsdm-adc.c
562
chan = indio_dev->channels + bit;
drivers/iio/adc/stm32-dfsdm-adc.c
565
cr1 = DFSDM_CR1_RCH(chan->channel);
drivers/iio/adc/stm32-dfsdm-adc.c
576
chan = indio_dev->channels + bit;
drivers/iio/adc/stm32-dfsdm-adc.c
577
jchg |= BIT(chan->channel);
drivers/iio/adc/stm32-dfsdm-adc.c
744
const struct iio_chan_spec *chan,
drivers/iio/adc/stm32-dfsdm-adc.c
778
const struct iio_chan_spec *chan,
drivers/iio/adc/stm32-dfsdm-adc.c
782
struct stm32_dfsdm_channel *ch = &adc->dfsdm->ch_list[chan->channel];
drivers/iio/adc/stmpe-adc.c
105
info->channel = (u8)chan->channel;
drivers/iio/adc/stmpe-adc.c
134
struct iio_chan_spec const *chan,
drivers/iio/adc/stmpe-adc.c
146
switch (chan->type) {
drivers/iio/adc/stmpe-adc.c
148
ret = stmpe_read_voltage(info, chan, val);
drivers/iio/adc/stmpe-adc.c
152
ret = stmpe_read_temp(info, chan, val);
drivers/iio/adc/stmpe-adc.c
212
static void stmpe_adc_voltage_chan(struct iio_chan_spec *ics, int chan)
drivers/iio/adc/stmpe-adc.c
218
ics->channel = chan;
drivers/iio/adc/stmpe-adc.c
221
static void stmpe_adc_temp_chan(struct iio_chan_spec *ics, int chan)
drivers/iio/adc/stmpe-adc.c
226
ics->channel = chan;
drivers/iio/adc/stmpe-adc.c
62
struct iio_chan_spec const *chan, int *val)
drivers/iio/adc/stmpe-adc.c
70
info->channel = (u8)chan->channel;
drivers/iio/adc/stmpe-adc.c
97
struct iio_chan_spec const *chan, int *val)
drivers/iio/adc/sun20i-gpadc-iio.c
102
*val = readl(info->regs + SUN20I_GPADC_CH_DATA(chan->channel));
drivers/iio/adc/sun20i-gpadc-iio.c
111
struct iio_chan_spec const *chan, int *val,
drivers/iio/adc/sun20i-gpadc-iio.c
118
return sun20i_gpadc_adc_read(info, chan, val);
drivers/iio/adc/sun20i-gpadc-iio.c
63
struct iio_chan_spec const *chan, int *val)
drivers/iio/adc/sun20i-gpadc-iio.c
72
if (info->last_channel != chan->channel) {
drivers/iio/adc/sun20i-gpadc-iio.c
73
info->last_channel = chan->channel;
drivers/iio/adc/sun20i-gpadc-iio.c
76
writel(SUN20I_GPADC_CS_EN_ADC_CH(chan->channel),
drivers/iio/adc/sun20i-gpadc-iio.c
80
writel(SUN20I_GPADC_DATA_INTC_CH_DATA_IRQ_EN(chan->channel),
drivers/iio/adc/sun4i-gpadc-iio.c
300
struct iio_chan_spec const *chan, int *val,
drivers/iio/adc/sun4i-gpadc-iio.c
313
if (chan->type == IIO_VOLTAGE)
drivers/iio/adc/sun4i-gpadc-iio.c
314
ret = sun4i_gpadc_adc_read(indio_dev, chan->channel,
drivers/iio/adc/sun4i-gpadc-iio.c
324
if (chan->type == IIO_VOLTAGE) {
drivers/iio/adc/sun4i-gpadc-iio.c
38
static unsigned int sun4i_gpadc_chan_select(unsigned int chan)
drivers/iio/adc/sun4i-gpadc-iio.c
40
return SUN4I_GPADC_CTRL1_ADC_CHAN_SELECT(chan);
drivers/iio/adc/sun4i-gpadc-iio.c
43
static unsigned int sun6i_gpadc_chan_select(unsigned int chan)
drivers/iio/adc/sun4i-gpadc-iio.c
45
return SUN6I_GPADC_CTRL1_ADC_CHAN_SELECT(chan);
drivers/iio/adc/sun4i-gpadc-iio.c
53
unsigned int (*adc_chan_select)(unsigned int chan);
drivers/iio/adc/ti-adc0832.c
42
#define ADC0832_VOLTAGE_CHANNEL(chan) \
drivers/iio/adc/ti-adc0832.c
46
.channel = chan, \
drivers/iio/adc/ti-adc0832.c
49
.scan_index = chan, \
drivers/iio/adc/ti-adc108s102.c
175
struct iio_chan_spec const *chan,
drivers/iio/adc/ti-adc108s102.c
186
ret = adc108s102_scan_direct(st, chan->address);
drivers/iio/adc/ti-adc108s102.c
197
if (chan->type != IIO_VOLTAGE)
drivers/iio/adc/ti-adc108s102.c
201
*val2 = chan->scan_type.realbits;
drivers/iio/adc/ti-adc12138.c
60
#define ADC12138_VOLTAGE_CHANNEL(chan) \
drivers/iio/adc/ti-adc12138.c
64
.channel = chan, \
drivers/iio/adc/ti-adc12138.c
68
.scan_index = chan, \
drivers/iio/adc/ti-adc161s626.c
100
*val = sign_extend32(*val >> data->shift, chan->scan_type.realbits - 1);
drivers/iio/adc/ti-adc161s626.c
130
struct iio_chan_spec const *chan,
drivers/iio/adc/ti-adc161s626.c
140
ret = ti_adc_read_measurement(data, chan, val);
drivers/iio/adc/ti-adc161s626.c
151
*val2 = chan->scan_type.realbits;
drivers/iio/adc/ti-adc161s626.c
155
*val = 1 << (chan->scan_type.realbits - 1);
drivers/iio/adc/ti-adc161s626.c
77
struct iio_chan_spec const *chan, int *val)
drivers/iio/adc/ti-ads1015.c
271
static void ads1015_event_channel_enable(struct ads1015_data *data, int chan,
drivers/iio/adc/ti-ads1015.c
276
data->event_channel = chan;
drivers/iio/adc/ti-ads1015.c
280
static void ads1015_event_channel_disable(struct ads1015_data *data, int chan)
drivers/iio/adc/ti-ads1015.c
394
int ads1015_get_adc_result(struct ads1015_data *data, int chan, int *val)
drivers/iio/adc/ti-ads1015.c
400
if (chan < 0 || chan >= ADS1015_CHANNELS)
drivers/iio/adc/ti-ads1015.c
407
pga = data->channel_data[chan].pga;
drivers/iio/adc/ti-ads1015.c
408
dr = data->channel_data[chan].data_rate;
drivers/iio/adc/ti-ads1015.c
411
cfg = chan << ADS1015_CFG_MUX_SHIFT | pga << ADS1015_CFG_PGA_SHIFT |
drivers/iio/adc/ti-ads1015.c
416
cfg |= data->thresh_data[chan].comp_queue <<
drivers/iio/adc/ti-ads1015.c
448
s16 chan;
drivers/iio/adc/ti-ads1015.c
451
int chan, ret, res;
drivers/iio/adc/ti-ads1015.c
454
chan = find_first_bit(indio_dev->active_scan_mask,
drivers/iio/adc/ti-ads1015.c
456
ret = ads1015_get_adc_result(data, chan, &res);
drivers/iio/adc/ti-ads1015.c
462
scan.chan = res;
drivers/iio/adc/ti-ads1015.c
475
struct iio_chan_spec const *chan,
drivers/iio/adc/ti-ads1015.c
480
(chan->scan_type.realbits - 1), 1000000);
drivers/iio/adc/ti-ads1015.c
484
data->channel_data[chan->address].pga = i;
drivers/iio/adc/ti-ads1015.c
492
static int ads1015_set_data_rate(struct ads1015_data *data, int chan, int rate)
drivers/iio/adc/ti-ads1015.c
498
data->channel_data[chan].data_rate = i;
drivers/iio/adc/ti-ads1015.c
507
struct iio_chan_spec const *chan,
drivers/iio/adc/ti-ads1015.c
513
if (chan->type != IIO_VOLTAGE)
drivers/iio/adc/ti-ads1015.c
533
struct iio_chan_spec const *chan, int *val)
drivers/iio/adc/ti-ads1015.c
538
data->event_channel != chan->address)
drivers/iio/adc/ti-ads1015.c
545
ret = ads1015_get_adc_result(data, chan->address, val);
drivers/iio/adc/ti-ads1015.c
551
*val = sign_extend32(*val >> chan->scan_type.shift,
drivers/iio/adc/ti-ads1015.c
552
chan->scan_type.realbits - 1);
drivers/iio/adc/ti-ads1015.c
558
struct iio_chan_spec const *chan, int *val,
drivers/iio/adc/ti-ads1015.c
569
ret = __ads1015_read_info_raw(data, chan, val);
drivers/iio/adc/ti-ads1015.c
576
idx = data->channel_data[chan->address].pga;
drivers/iio/adc/ti-ads1015.c
578
*val2 = chan->scan_type.realbits - 1;
drivers/iio/adc/ti-ads1015.c
581
idx = data->channel_data[chan->address].data_rate;
drivers/iio/adc/ti-ads1015.c
590
struct iio_chan_spec const *chan, int val,
drivers/iio/adc/ti-ads1015.c
598
return ads1015_set_scale(data, chan, val, val2);
drivers/iio/adc/ti-ads1015.c
600
return ads1015_set_data_rate(data, chan->address, val);
drivers/iio/adc/ti-ads1015.c
607
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/adc/ti-ads1015.c
621
data->thresh_data[chan->address].high_thresh :
drivers/iio/adc/ti-ads1015.c
622
data->thresh_data[chan->address].low_thresh;
drivers/iio/adc/ti-ads1015.c
625
dr = data->channel_data[chan->address].data_rate;
drivers/iio/adc/ti-ads1015.c
626
comp_queue = data->thresh_data[chan->address].comp_queue;
drivers/iio/adc/ti-ads1015.c
639
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/adc/ti-ads1015.c
645
int realbits = chan->scan_type.realbits;
drivers/iio/adc/ti-ads1015.c
658
data->thresh_data[chan->address].high_thresh = val;
drivers/iio/adc/ti-ads1015.c
660
data->thresh_data[chan->address].low_thresh = val;
drivers/iio/adc/ti-ads1015.c
663
dr = data->channel_data[chan->address].data_rate;
drivers/iio/adc/ti-ads1015.c
671
data->thresh_data[chan->address].comp_queue = i;
drivers/iio/adc/ti-ads1015.c
679
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/adc/ti-ads1015.c
685
if (data->event_channel != chan->address)
drivers/iio/adc/ti-ads1015.c
699
const struct iio_chan_spec *chan, int comp_mode)
drivers/iio/adc/ti-ads1015.c
701
int low_thresh = data->thresh_data[chan->address].low_thresh;
drivers/iio/adc/ti-ads1015.c
702
int high_thresh = data->thresh_data[chan->address].high_thresh;
drivers/iio/adc/ti-ads1015.c
707
if (data->event_channel != chan->address ||
drivers/iio/adc/ti-ads1015.c
716
low_thresh = max(-1 << (chan->scan_type.realbits - 1),
drivers/iio/adc/ti-ads1015.c
720
low_thresh << chan->scan_type.shift);
drivers/iio/adc/ti-ads1015.c
725
high_thresh << chan->scan_type.shift);
drivers/iio/adc/ti-ads1015.c
733
ads1015_event_channel_enable(data, chan->address, comp_mode);
drivers/iio/adc/ti-ads1015.c
735
ret = ads1015_get_adc_result(data, chan->address, &val);
drivers/iio/adc/ti-ads1015.c
737
ads1015_event_channel_disable(data, chan->address);
drivers/iio/adc/ti-ads1015.c
745
const struct iio_chan_spec *chan, int comp_mode)
drivers/iio/adc/ti-ads1015.c
752
if (data->event_channel != chan->address)
drivers/iio/adc/ti-ads1015.c
766
ads1015_event_channel_disable(data, chan->address);
drivers/iio/adc/ti-ads1015.c
772
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/adc/ti-ads1015.c
787
ret = ads1015_enable_event_config(data, chan, comp_mode);
drivers/iio/adc/ti-ads1015.c
789
ret = ads1015_disable_event_config(data, chan, comp_mode);
drivers/iio/adc/ti-ads1018.c
248
struct iio_chan_spec const *chan, u16 *cnv)
drivers/iio/adc/ti-ads1018.c
252
u8 pga_mode = ads1018->chan_data[chan->scan_index].pga_mode;
drivers/iio/adc/ti-ads1018.c
272
cfg |= FIELD_PREP(ADS1018_CFG_MUX_MASK, chan->scan_index);
drivers/iio/adc/ti-ads1018.c
277
if (chan->type == IIO_TEMP)
drivers/iio/adc/ti-ads1018.c
292
struct iio_chan_spec const *chan, int *val, int *val2,
drivers/iio/adc/ti-ads1018.c
297
u8 addr = chan->scan_index;
drivers/iio/adc/ti-ads1018.c
304
ret = ads1018_single_shot(ads1018, chan, &cnv);
drivers/iio/adc/ti-ads1018.c
308
cnv >>= chan->scan_type.shift;
drivers/iio/adc/ti-ads1018.c
309
*val = sign_extend32(cnv, chan->scan_type.realbits - 1);
drivers/iio/adc/ti-ads1018.c
314
switch (chan->type) {
drivers/iio/adc/ti-ads1018.c
341
ads1018_read_raw(struct iio_dev *indio_dev, struct iio_chan_spec const *chan,
drivers/iio/adc/ti-ads1018.c
348
ret = ads1018_read_raw_direct_mode(indio_dev, chan, val, val2, mask);
drivers/iio/adc/ti-ads1018.c
355
ads1018_read_avail(struct iio_dev *indio_dev, struct iio_chan_spec const *chan,
drivers/iio/adc/ti-ads1018.c
380
struct iio_chan_spec const *chan, int val, int val2,
drivers/iio/adc/ti-ads1018.c
397
ads1018->chan_data[chan->scan_index].pga_mode = i;
drivers/iio/adc/ti-ads1018.c
408
ads1018->chan_data[chan->scan_index].data_rate_mode = i;
drivers/iio/adc/ti-ads1018.c
417
ads1018_write_raw(struct iio_dev *indio_dev, struct iio_chan_spec const *chan,
drivers/iio/adc/ti-ads1018.c
424
ret = ads1018_write_raw_direct_mode(indio_dev, chan, val, val2, mask);
drivers/iio/adc/ti-ads1018.c
432
struct iio_chan_spec const *chan, long mask)
drivers/iio/adc/ti-ads1100.c
155
static int ads1100_set_data_rate(struct ads1100_data *data, int chan, int rate)
drivers/iio/adc/ti-ads1100.c
187
struct iio_chan_spec const *chan,
drivers/iio/adc/ti-ads1100.c
193
if (chan->type != IIO_VOLTAGE)
drivers/iio/adc/ti-ads1100.c
216
struct iio_chan_spec const *chan, int *val,
drivers/iio/adc/ti-ads1100.c
228
ret = ads1100_get_adc_result(data, chan->address, val);
drivers/iio/adc/ti-ads1100.c
249
struct iio_chan_spec const *chan, int val,
drivers/iio/adc/ti-ads1100.c
259
return ads1100_set_data_rate(data, chan->address, val);
drivers/iio/adc/ti-ads1100.c
93
static int ads1100_get_adc_result(struct ads1100_data *data, int chan, int *val)
drivers/iio/adc/ti-ads1100.c
99
if (chan != 0)
drivers/iio/adc/ti-ads1119.c
220
struct iio_chan_spec const *chan)
drivers/iio/adc/ti-ads1119.c
222
unsigned int datarate = st->channels_cfg[chan->address].datarate;
drivers/iio/adc/ti-ads1119.c
235
struct iio_chan_spec const *chan,
drivers/iio/adc/ti-ads1119.c
244
ret = ads1119_poll_data_ready(st, chan);
drivers/iio/adc/ti-ads1119.c
261
struct iio_chan_spec const *chan,
drivers/iio/adc/ti-ads1119.c
266
int mux = st->channels_cfg[chan->address].mux;
drivers/iio/adc/ti-ads1119.c
267
int gain = st->channels_cfg[chan->address].gain;
drivers/iio/adc/ti-ads1119.c
268
int datarate = st->channels_cfg[chan->address].datarate;
drivers/iio/adc/ti-ads1119.c
290
ret = ads1119_read_data(st, chan, &sample);
drivers/iio/adc/ti-ads1119.c
294
*val = sign_extend32(sample, chan->scan_type.realbits - 1);
drivers/iio/adc/ti-ads1119.c
315
struct iio_chan_spec const *chan,
drivers/iio/adc/ti-ads1119.c
336
struct iio_chan_spec const *chan, int *val,
drivers/iio/adc/ti-ads1119.c
340
unsigned int index = chan->address;
drivers/iio/adc/ti-ads1119.c
350
ret = ads1119_single_conversion(st, chan, val, false);
drivers/iio/adc/ti-ads1119.c
356
ret = ads1119_single_conversion(st, chan, val, true);
drivers/iio/adc/ti-ads1119.c
362
*val2 = chan->scan_type.realbits - 1;
drivers/iio/adc/ti-ads1119.c
373
struct iio_chan_spec const *chan, int val,
drivers/iio/adc/ti-ads1119.c
377
unsigned int index = chan->address;
drivers/iio/adc/ti-ads1119.c
604
struct iio_chan_spec *iio_channels, *chan;
drivers/iio/adc/ti-ads1119.c
633
chan = &iio_channels[i];
drivers/iio/adc/ti-ads1119.c
658
*chan = ads1119_channel;
drivers/iio/adc/ti-ads1119.c
659
chan->channel = ain[0];
drivers/iio/adc/ti-ads1119.c
660
chan->address = i;
drivers/iio/adc/ti-ads1119.c
661
chan->scan_index = i;
drivers/iio/adc/ti-ads1119.c
664
chan->channel2 = ain[1];
drivers/iio/adc/ti-ads1119.c
665
chan->differential = 1;
drivers/iio/adc/ti-ads124s08.c
222
struct iio_chan_spec const *chan,
drivers/iio/adc/ti-ads124s08.c
232
chan->channel);
drivers/iio/adc/ti-ads1298.c
321
struct iio_chan_spec const *chan,
drivers/iio/adc/ti-ads1298.c
332
ret = ads1298_read_one(priv, chan->scan_index);
drivers/iio/adc/ti-ads1298.c
339
*val = sign_extend32(get_unaligned_be24(priv->rx_buffer + chan->address),
drivers/iio/adc/ti-ads1298.c
343
return ads1298_get_scale(priv, chan->channel, val, val2);
drivers/iio/adc/ti-ads1298.c
359
struct iio_chan_spec const *chan, int val,
drivers/iio/adc/ti-ads7138.c
231
struct iio_chan_spec const *chan, int *val,
drivers/iio/adc/ti-ads7138.c
241
ADS7138_REG_RECENT_LSB_CH(chan->channel),
drivers/iio/adc/ti-ads7138.c
250
ADS7138_REG_MAX_LSB_CH(chan->channel),
drivers/iio/adc/ti-ads7138.c
259
ADS7138_REG_MIN_LSB_CH(chan->channel),
drivers/iio/adc/ti-ads7138.c
295
struct iio_chan_spec const *chan, int val,
drivers/iio/adc/ti-ads7138.c
331
const struct iio_chan_spec *chan,
drivers/iio/adc/ti-ads7138.c
343
ADS7138_REG_HIGH_TH_HYS_CH(chan->channel) :
drivers/iio/adc/ti-ads7138.c
344
ADS7138_REG_LOW_TH_CNT_CH(chan->channel);
drivers/iio/adc/ti-ads7138.c
354
ADS7138_REG_HIGH_TH_HYS_CH(chan->channel));
drivers/iio/adc/ti-ads7138.c
366
const struct iio_chan_spec *chan,
drivers/iio/adc/ti-ads7138.c
381
ADS7138_REG_HIGH_TH_HYS_CH(chan->channel) :
drivers/iio/adc/ti-ads7138.c
382
ADS7138_REG_LOW_TH_CNT_CH(chan->channel);
drivers/iio/adc/ti-ads7138.c
399
reg = ADS7138_REG_HIGH_TH_HYS_CH(chan->channel);
drivers/iio/adc/ti-ads7138.c
416
const struct iio_chan_spec *chan,
drivers/iio/adc/ti-ads7138.c
430
return (ret & BIT(chan->channel)) ? 1 : 0;
drivers/iio/adc/ti-ads7138.c
434
const struct iio_chan_spec *chan,
drivers/iio/adc/ti-ads7138.c
446
BIT(chan->channel));
drivers/iio/adc/ti-ads7138.c
450
BIT(chan->channel));
drivers/iio/adc/ti-ads7138.c
454
struct iio_chan_spec const *chan,
drivers/iio/adc/ti-ads7924.c
194
struct iio_chan_spec const *chan, int *val)
drivers/iio/adc/ti-ads7924.c
199
if (chan->channel < 0 || chan->channel >= ADS7924_CHANNELS)
drivers/iio/adc/ti-ads7924.c
215
chan->address, &be_val, sizeof(be_val));
drivers/iio/adc/ti-ads7924.c
225
struct iio_chan_spec const *chan, int *val,
drivers/iio/adc/ti-ads7924.c
233
ret = ads7924_get_adc_result(data, chan, val);
drivers/iio/adc/ti-ads7950.c
323
struct iio_chan_spec const *chan,
drivers/iio/adc/ti-ads7950.c
331
ret = ti_ads7950_scan_direct(indio_dev, chan->address);
drivers/iio/adc/ti-ads7950.c
335
if (chan->address != TI_ADS7950_EXTRACT(ret, 12, 4))
drivers/iio/adc/ti-ads7950.c
338
*val = TI_ADS7950_EXTRACT(ret, chan->scan_type.shift,
drivers/iio/adc/ti-ads7950.c
339
chan->scan_type.realbits);
drivers/iio/adc/ti-ads7950.c
344
*val2 = (1 << chan->scan_type.realbits) - 1;
drivers/iio/adc/ti-ads8344.c
35
#define ADS8344_VOLTAGE_CHANNEL(chan, addr) \
drivers/iio/adc/ti-ads8344.c
39
.channel = chan, \
drivers/iio/adc/ti-ads8688.c
183
static int ads8688_read(struct iio_dev *indio_dev, unsigned int chan)
drivers/iio/adc/ti-ads8688.c
200
tmp = ADS8688_CMD_REG(ADS8688_CMD_REG_MAN_CH(chan));
drivers/iio/adc/ti-ads8688.c
216
struct iio_chan_spec const *chan,
drivers/iio/adc/ti-ads8688.c
22
#define ADS8688_CMD_REG_MAN_CH(chan) (0xC0 | (4 * chan))
drivers/iio/adc/ti-ads8688.c
227
ret = ads8688_read(indio_dev, chan->channel);
drivers/iio/adc/ti-ads8688.c
235
scale_mv *= ads8688_range_def[st->range[chan->channel]].scale;
drivers/iio/adc/ti-ads8688.c
241
offset = ads8688_range_def[st->range[chan->channel]].offset;
drivers/iio/adc/ti-ads8688.c
252
struct iio_chan_spec const *chan,
drivers/iio/adc/ti-ads8688.c
257
tmp = ADS8688_PROG_REG_RANGE_CH(chan->channel);
drivers/iio/adc/ti-ads8688.c
26
#define ADS8688_PROG_REG_RANGE_CH(chan) (0x05 + chan)
drivers/iio/adc/ti-ads8688.c
263
struct iio_chan_spec const *chan,
drivers/iio/adc/ti-ads8688.c
274
offset = ads8688_range_def[st->range[chan->channel]].offset;
drivers/iio/adc/ti-ads8688.c
284
ret = ads8688_write_reg_range(indio_dev, chan,
drivers/iio/adc/ti-ads8688.c
305
st->range[chan->channel] == ADS8688_PLUSMINUS25VREF) {
drivers/iio/adc/ti-ads8688.c
310
scale = ads8688_range_def[st->range[chan->channel]].scale;
drivers/iio/adc/ti-ads8688.c
316
ret = ads8688_write_reg_range(indio_dev, chan,
drivers/iio/adc/ti-ads8688.c
324
st->range[chan->channel] = ads8688_range_def[i].range;
drivers/iio/adc/ti-ads8688.c
332
struct iio_chan_spec const *chan,
drivers/iio/adc/ti-ads8688.c
346
struct iio_chan_spec const *chan,
drivers/iio/adc/ti-lmp92064.c
156
struct iio_chan_spec const *chan, int *val,
drivers/iio/adc/ti-lmp92064.c
169
*val = (chan->address == TI_LMP92064_CHAN_INC) ? raw[0] : raw[1];
drivers/iio/adc/ti-lmp92064.c
173
if (chan->address == TI_LMP92064_CHAN_INC) {
drivers/iio/adc/ti-tlc4541.c
123
struct iio_chan_spec const *chan,
drivers/iio/adc/ti-tlc4541.c
140
*val = *val >> chan->scan_type.shift;
drivers/iio/adc/ti-tlc4541.c
141
*val &= GENMASK(chan->scan_type.realbits - 1, 0);
drivers/iio/adc/ti-tlc4541.c
148
*val2 = chan->scan_type.realbits;
drivers/iio/adc/ti-tsc2046.c
448
struct iio_chan_spec const *chan,
drivers/iio/adc/ti-tsc2046.c
456
ret = tsc2046_adc_read_one(priv, chan->channel, NULL);
drivers/iio/adc/ti-tsc2046.c
471
*val2 = chan->scan_type.realbits;
drivers/iio/adc/ti_am335x_adc.c
122
int chan;
drivers/iio/adc/ti_am335x_adc.c
124
chan = adc_dev->channel_line[i];
drivers/iio/adc/ti_am335x_adc.c
136
stepconfig | STEPCONFIG_INP(chan) |
drivers/iio/adc/ti_am335x_adc.c
253
dmaengine_slave_config(dma->chan, &dma->conf);
drivers/iio/adc/ti_am335x_adc.c
255
desc = dmaengine_prep_dma_cyclic(dma->chan, dma->addr,
drivers/iio/adc/ti_am335x_adc.c
267
dma_async_issue_pending(dma->chan);
drivers/iio/adc/ti_am335x_adc.c
313
if (dma->chan)
drivers/iio/adc/ti_am335x_adc.c
32
struct dma_chan *chan;
drivers/iio/adc/ti_am335x_adc.c
323
if (!dma->chan)
drivers/iio/adc/ti_am335x_adc.c
342
if (dma->chan) {
drivers/iio/adc/ti_am335x_adc.c
344
dmaengine_terminate_async(dma->chan);
drivers/iio/adc/ti_am335x_adc.c
402
struct iio_chan_spec *chan;
drivers/iio/adc/ti_am335x_adc.c
411
chan = chan_array;
drivers/iio/adc/ti_am335x_adc.c
412
for (i = 0; i < channels; i++, chan++) {
drivers/iio/adc/ti_am335x_adc.c
413
chan->type = IIO_VOLTAGE;
drivers/iio/adc/ti_am335x_adc.c
414
chan->indexed = 1;
drivers/iio/adc/ti_am335x_adc.c
415
chan->channel = adc_dev->channel_line[i];
drivers/iio/adc/ti_am335x_adc.c
416
chan->info_mask_separate = BIT(IIO_CHAN_INFO_RAW);
drivers/iio/adc/ti_am335x_adc.c
417
chan->info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE);
drivers/iio/adc/ti_am335x_adc.c
418
chan->datasheet_name = chan_name_ain[chan->channel];
drivers/iio/adc/ti_am335x_adc.c
419
chan->scan_index = i;
drivers/iio/adc/ti_am335x_adc.c
420
chan->scan_type.sign = 'u';
drivers/iio/adc/ti_am335x_adc.c
421
chan->scan_type.realbits = 12;
drivers/iio/adc/ti_am335x_adc.c
422
chan->scan_type.storagebits = 16;
drivers/iio/adc/ti_am335x_adc.c
431
struct iio_chan_spec const *chan, int *val, int *val2,
drivers/iio/adc/ti_am335x_adc.c
446
switch (chan->type) {
drivers/iio/adc/ti_am335x_adc.c
449
*val2 = chan->scan_type.realbits;
drivers/iio/adc/ti_am335x_adc.c
462
step_en = get_adc_chan_step_mask(adc_dev, chan);
drivers/iio/adc/ti_am335x_adc.c
492
map_val = adc_dev->channel_step[chan->scan_index];
drivers/iio/adc/ti_am335x_adc.c
542
dma->chan = dma_request_chan(adc_dev->mfd_tscadc->dev, "fifo1");
drivers/iio/adc/ti_am335x_adc.c
543
if (IS_ERR(dma->chan)) {
drivers/iio/adc/ti_am335x_adc.c
544
int ret = PTR_ERR(dma->chan);
drivers/iio/adc/ti_am335x_adc.c
546
dma->chan = NULL;
drivers/iio/adc/ti_am335x_adc.c
551
dma->buf = dma_alloc_coherent(dma->chan->device->dev, DMA_BUFFER_SIZE,
drivers/iio/adc/ti_am335x_adc.c
559
dma_release_channel(dma->chan);
drivers/iio/adc/ti_am335x_adc.c
592
int chan;
drivers/iio/adc/ti_am335x_adc.c
594
chan = adc_dev->channel_line[i];
drivers/iio/adc/ti_am335x_adc.c
599
chan, STEPCONFIG_AVG_16);
drivers/iio/adc/ti_am335x_adc.c
606
chan, STEPCONFIG_MAX_OPENDLY);
drivers/iio/adc/ti_am335x_adc.c
613
chan, STEPCONFIG_MAX_SAMPLE);
drivers/iio/adc/ti_am335x_adc.c
690
if (dma->chan) {
drivers/iio/adc/ti_am335x_adc.c
691
dma_free_coherent(dma->chan->device->dev, DMA_BUFFER_SIZE,
drivers/iio/adc/ti_am335x_adc.c
693
dma_release_channel(dma->chan);
drivers/iio/adc/ti_am335x_adc.c
75
struct iio_chan_spec const *chan)
drivers/iio/adc/ti_am335x_adc.c
80
if (chan->channel == adc_dev->channel_line[i]) {
drivers/iio/adc/ti_am335x_adc.c
92
static u32 get_adc_step_bit(struct tiadc_device *adc_dev, int chan)
drivers/iio/adc/ti_am335x_adc.c
94
return 1 << adc_dev->channel_step[chan];
drivers/iio/adc/twl4030-madc.c
176
const struct iio_chan_spec *chan,
drivers/iio/adc/twl4030-madc.c
185
req.channels = BIT(chan->channel);
drivers/iio/adc/twl4030-madc.c
195
*val = req.rbuf[chan->channel];
drivers/iio/adc/twl4030-madc.c
679
int chan, int on)
drivers/iio/adc/twl4030-madc.c
693
regmask = chan ? TWL4030_BCI_ITHEN : TWL4030_BCI_TYPEN;
drivers/iio/adc/twl6030-gpadc.c
516
const struct iio_chan_spec *chan,
drivers/iio/adc/twl6030-gpadc.c
525
ret = gpadc->pdata->start_conversion(chan->channel);
drivers/iio/adc/twl6030-gpadc.c
543
ret = twl6030_gpadc_get_raw(gpadc, chan->channel, val);
drivers/iio/adc/twl6030-gpadc.c
548
ret = twl6030_gpadc_get_processed(gpadc, chan->channel, val);
drivers/iio/adc/vf610_adc.c
172
u16 chan;
drivers/iio/adc/vf610_adc.c
470
const struct iio_chan_spec *chan,
drivers/iio/adc/vf610_adc.c
485
const struct iio_chan_spec *chan)
drivers/iio/adc/vf610_adc.c
590
info->scan.chan = info->value;
drivers/iio/adc/vf610_adc.c
631
struct iio_chan_spec const *chan, int *val)
drivers/iio/adc/vf610_adc.c
638
hc_cfg = VF610_ADC_ADCHC(chan->channel);
drivers/iio/adc/vf610_adc.c
649
switch (chan->type) {
drivers/iio/adc/vf610_adc.c
669
struct iio_chan_spec const *chan,
drivers/iio/adc/vf610_adc.c
682
ret = vf610_read_sample(info, chan, val);
drivers/iio/adc/vf610_adc.c
707
struct iio_chan_spec const *chan,
drivers/iio/adc/viperboard_adc.c
27
u8 chan;
drivers/iio/adc/viperboard_adc.c
50
struct iio_chan_spec const *chan,
drivers/iio/adc/viperboard_adc.c
65
admsg->chan = chan->channel;
drivers/iio/adc/xilinx-ams.c
1147
struct iio_chan_spec *chan;
drivers/iio/adc/xilinx-ams.c
1157
chan = &channels[num_channels];
drivers/iio/adc/xilinx-ams.c
1159
memcpy(chan, &ams_pl_channels[ext_chan], sizeof(*channels));
drivers/iio/adc/xilinx-ams.c
1162
chan->scan_type.sign = 's';
drivers/iio/adc/xilinx-ams.c
446
const struct iio_chan_spec *chan = &indio_dev->channels[i];
drivers/iio/adc/xilinx-ams.c
448
if (chan->scan_index < AMS_CTRL_SEQ_BASE)
drivers/iio/adc/xilinx-ams.c
449
scan_mask |= BIT_ULL(chan->scan_index);
drivers/iio/adc/xilinx-ams.c
537
struct iio_chan_spec const *chan, char *label)
drivers/iio/adc/xilinx-ams.c
539
return sysfs_emit(label, "%s\n", chan->datasheet_name);
drivers/iio/adc/xilinx-ams.c
716
struct iio_chan_spec const *chan,
drivers/iio/adc/xilinx-ams.c
725
if (chan->scan_index >= AMS_CTRL_SEQ_BASE) {
drivers/iio/adc/xilinx-ams.c
726
ret = ams_read_vcc_reg(ams, chan->address, val);
drivers/iio/adc/xilinx-ams.c
730
} else if (chan->scan_index >= AMS_PS_SEQ_MAX)
drivers/iio/adc/xilinx-ams.c
731
*val = readl(ams->pl_base + chan->address);
drivers/iio/adc/xilinx-ams.c
733
*val = readl(ams->ps_base + chan->address);
drivers/iio/adc/xilinx-ams.c
738
switch (chan->type) {
drivers/iio/adc/xilinx-ams.c
740
if (chan->scan_index < AMS_PS_SEQ_MAX)
drivers/iio/adc/xilinx-ams.c
741
*val = ams_get_ps_scale(chan->address);
drivers/iio/adc/xilinx-ams.c
742
else if (chan->scan_index >= AMS_PS_SEQ_MAX &&
drivers/iio/adc/xilinx-ams.c
743
chan->scan_index < AMS_CTRL_SEQ_BASE)
drivers/iio/adc/xilinx-ams.c
744
*val = ams_get_pl_scale(ams, chan->address);
drivers/iio/adc/xilinx-ams.c
746
*val = ams_get_ctrl_scale(chan->address);
drivers/iio/adc/xilinx-ams.c
874
const struct iio_chan_spec *chan,
drivers/iio/adc/xilinx-ams.c
880
return !!(ams->alarm_mask & ams_get_alarm_mask(chan->scan_index));
drivers/iio/adc/xilinx-ams.c
884
const struct iio_chan_spec *chan,
drivers/iio/adc/xilinx-ams.c
892
alarm = ams_get_alarm_mask(chan->scan_index);
drivers/iio/adc/xilinx-ams.c
907
const struct iio_chan_spec *chan,
drivers/iio/adc/xilinx-ams.c
913
unsigned int offset = ams_get_alarm_offset(chan->scan_index, dir);
drivers/iio/adc/xilinx-ams.c
917
if (chan->scan_index >= AMS_PS_SEQ_MAX)
drivers/iio/adc/xilinx-ams.c
926
const struct iio_chan_spec *chan,
drivers/iio/adc/xilinx-ams.c
937
if (chan->type == IIO_TEMP) {
drivers/iio/adc/xilinx-ams.c
938
offset = ams_get_alarm_offset(chan->scan_index, IIO_EV_DIR_FALLING);
drivers/iio/adc/xilinx-ams.c
940
if (chan->scan_index >= AMS_PS_SEQ_MAX)
drivers/iio/adc/xilinx-ams.c
950
offset = ams_get_alarm_offset(chan->scan_index, dir);
drivers/iio/adc/xilinx-ams.c
951
if (chan->scan_index >= AMS_PS_SEQ_MAX)
drivers/iio/adc/xilinx-ams.c
961
const struct iio_chan_spec *chan;
drivers/iio/adc/xilinx-ams.c
963
chan = ams_event_to_channel(indio_dev, event);
drivers/iio/adc/xilinx-ams.c
964
if (!chan)
drivers/iio/adc/xilinx-ams.c
967
if (chan->type == IIO_TEMP) {
drivers/iio/adc/xilinx-ams.c
973
IIO_UNMOD_EVENT_CODE(chan->type, chan->channel,
drivers/iio/adc/xilinx-ams.c
984
IIO_UNMOD_EVENT_CODE(chan->type, chan->channel,
drivers/iio/adc/xilinx-xadc-core.c
1025
struct iio_chan_spec const *chan, int val, int val2, long info)
drivers/iio/adc/xilinx-xadc-core.c
1204
struct iio_chan_spec *channels, *chan;
drivers/iio/adc/xilinx-xadc-core.c
1260
chan = &channels[9];
drivers/iio/adc/xilinx-xadc-core.c
1274
chan->scan_type.sign = 's';
drivers/iio/adc/xilinx-xadc-core.c
1277
chan->scan_index = 11;
drivers/iio/adc/xilinx-xadc-core.c
1278
chan->address = XADC_REG_VPVN;
drivers/iio/adc/xilinx-xadc-core.c
1280
chan->scan_index = 15 + reg;
drivers/iio/adc/xilinx-xadc-core.c
1281
chan->address = XADC_REG_VAUX(reg - 1);
drivers/iio/adc/xilinx-xadc-core.c
1284
chan++;
drivers/iio/adc/xilinx-xadc-core.c
676
unsigned int chan;
drivers/iio/adc/xilinx-xadc-core.c
684
chan = xadc_scan_index_to_channel(i);
drivers/iio/adc/xilinx-xadc-core.c
685
xadc_read_adc_reg(xadc, chan, &xadc->data[j]);
drivers/iio/adc/xilinx-xadc-core.c
921
struct iio_chan_spec const *chan, int *val, int *val2, long info)
drivers/iio/adc/xilinx-xadc-core.c
924
unsigned int bits = chan->scan_type.realbits;
drivers/iio/adc/xilinx-xadc-core.c
932
ret = xadc_read_adc_reg(xadc, chan->address, &val16);
drivers/iio/adc/xilinx-xadc-core.c
936
val16 >>= chan->scan_type.shift;
drivers/iio/adc/xilinx-xadc-core.c
937
if (chan->scan_type.sign == 'u')
drivers/iio/adc/xilinx-xadc-core.c
944
switch (chan->type) {
drivers/iio/adc/xilinx-xadc-core.c
947
switch (chan->address) {
drivers/iio/adc/xilinx-xadc-events.c
114
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/adc/xilinx-xadc-events.c
119
return (bool)(xadc->alarm_mask & xadc_get_alarm_mask(chan));
drivers/iio/adc/xilinx-xadc-events.c
123
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/adc/xilinx-xadc-events.c
126
unsigned int alarm = xadc_get_alarm_mask(chan);
drivers/iio/adc/xilinx-xadc-events.c
159
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/adc/xilinx-xadc-events.c
163
unsigned int offset = xadc_get_threshold_offset(chan, dir);
drivers/iio/adc/xilinx-xadc-events.c
178
*val >>= 16 - chan->scan_type.realbits;
drivers/iio/adc/xilinx-xadc-events.c
184
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/adc/xilinx-xadc-events.c
188
unsigned int offset = xadc_get_threshold_offset(chan, dir);
drivers/iio/adc/xilinx-xadc-events.c
193
val <<= 16 - chan->scan_type.realbits;
drivers/iio/adc/xilinx-xadc-events.c
212
if (chan->type == IIO_TEMP) {
drivers/iio/adc/xilinx-xadc-events.c
32
const struct iio_chan_spec *chan;
drivers/iio/adc/xilinx-xadc-events.c
38
chan = xadc_event_to_channel(indio_dev, event);
drivers/iio/adc/xilinx-xadc-events.c
40
if (chan->type == IIO_TEMP) {
drivers/iio/adc/xilinx-xadc-events.c
46
IIO_UNMOD_EVENT_CODE(chan->type, chan->channel,
drivers/iio/adc/xilinx-xadc-events.c
56
IIO_UNMOD_EVENT_CODE(chan->type, chan->channel,
drivers/iio/adc/xilinx-xadc-events.c
70
static unsigned int xadc_get_threshold_offset(const struct iio_chan_spec *chan,
drivers/iio/adc/xilinx-xadc-events.c
75
if (chan->type == IIO_TEMP) {
drivers/iio/adc/xilinx-xadc-events.c
78
if (chan->channel < 2)
drivers/iio/adc/xilinx-xadc-events.c
79
offset = chan->channel + 1;
drivers/iio/adc/xilinx-xadc-events.c
81
offset = chan->channel + 6;
drivers/iio/adc/xilinx-xadc-events.c
90
static unsigned int xadc_get_alarm_mask(const struct iio_chan_spec *chan)
drivers/iio/adc/xilinx-xadc-events.c
92
if (chan->type == IIO_TEMP)
drivers/iio/adc/xilinx-xadc-events.c
94
switch (chan->channel) {
drivers/iio/adc/xilinx-xadc.h
24
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/adc/xilinx-xadc.h
27
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/adc/xilinx-xadc.h
30
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/adc/xilinx-xadc.h
34
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/addac/ad74115.c
1001
struct iio_chan_spec const *chan,
drivers/iio/addac/ad74115.c
1004
if (chan->channel == AD74115_DAC_CH_MAIN) {
drivers/iio/addac/ad74115.c
1005
if (chan->type == IIO_VOLTAGE) {
drivers/iio/addac/ad74115.c
1030
struct iio_chan_spec const *chan, int *val)
drivers/iio/addac/ad74115.c
1032
if (chan->channel == AD74115_DAC_CH_MAIN) {
drivers/iio/addac/ad74115.c
1033
if (chan->type == IIO_VOLTAGE && st->dac_bipolar)
drivers/iio/addac/ad74115.c
1080
struct iio_chan_spec const *chan,
drivers/iio/addac/ad74115.c
1086
ret = ad74115_get_adc_range(st, chan->channel, &range);
drivers/iio/addac/ad74115.c
1090
if (chan->type == IIO_RESISTANCE)
drivers/iio/addac/ad74115.c
1096
if (chan->type == IIO_CURRENT)
drivers/iio/addac/ad74115.c
1134
struct iio_chan_spec const *chan,
drivers/iio/addac/ad74115.c
1140
ret = ad74115_get_adc_range(st, chan->channel, &range);
drivers/iio/addac/ad74115.c
1144
if (chan->type == IIO_RESISTANCE)
drivers/iio/addac/ad74115.c
1158
struct iio_chan_spec const *chan,
drivers/iio/addac/ad74115.c
1166
if (chan->output)
drivers/iio/addac/ad74115.c
1167
return ad74115_get_dac_code(st, chan->channel, val);
drivers/iio/addac/ad74115.c
1169
return ad74115_get_adc_code(indio_dev, chan->channel, val);
drivers/iio/addac/ad74115.c
1171
ret = ad74115_get_adc_code(indio_dev, chan->channel, val);
drivers/iio/addac/ad74115.c
1177
if (chan->output)
drivers/iio/addac/ad74115.c
1178
return ad74115_get_dac_scale(st, chan, val, val2);
drivers/iio/addac/ad74115.c
1180
return ad74115_get_adc_scale(st, chan, val, val2);
drivers/iio/addac/ad74115.c
1182
if (chan->output)
drivers/iio/addac/ad74115.c
1183
return ad74115_get_dac_offset(st, chan, val);
drivers/iio/addac/ad74115.c
1185
return ad74115_get_adc_offset(st, chan, val, val2);
drivers/iio/addac/ad74115.c
1187
if (chan->output)
drivers/iio/addac/ad74115.c
1190
return ad74115_get_adc_rate(st, chan->channel, val);
drivers/iio/addac/ad74115.c
1197
struct iio_chan_spec const *chan, int val, int val2,
drivers/iio/addac/ad74115.c
1204
if (!chan->output)
drivers/iio/addac/ad74115.c
1207
return ad74115_set_dac_code(st, chan->channel, val);
drivers/iio/addac/ad74115.c
1209
if (chan->output)
drivers/iio/addac/ad74115.c
1212
return ad74115_set_adc_rate(st, chan->channel, val);
drivers/iio/addac/ad74115.c
1219
struct iio_chan_spec const *chan,
drivers/iio/addac/ad74115.c
1224
if (chan->output) {
drivers/iio/addac/ad74413r.c
1001
switch (chan->type) {
drivers/iio/addac/ad74413r.c
1004
chan->channel, val);
drivers/iio/addac/ad74413r.c
1007
chan->channel, val);
drivers/iio/addac/ad74413r.c
1012
if (chan->output)
drivers/iio/addac/ad74413r.c
1015
return ad74413r_get_single_adc_result(indio_dev, chan->channel,
drivers/iio/addac/ad74413r.c
1020
ret = ad74413r_get_single_adc_result(indio_dev, chan->channel,
drivers/iio/addac/ad74413r.c
1030
return ad74413r_get_adc_rate(st, chan->channel, val);
drivers/iio/addac/ad74413r.c
1037
struct iio_chan_spec const *chan,
drivers/iio/addac/ad74413r.c
1044
if (!chan->output)
drivers/iio/addac/ad74413r.c
1052
return ad74413r_set_channel_dac_code(st, chan->channel, val);
drivers/iio/addac/ad74413r.c
1054
return ad74413r_set_adc_rate(st, chan->channel, val);
drivers/iio/addac/ad74413r.c
1061
struct iio_chan_spec const *chan,
drivers/iio/addac/ad74413r.c
1287
struct iio_chan_spec *chan = &channels[chan_i];
drivers/iio/addac/ad74413r.c
1289
chan->channel = i;
drivers/iio/addac/ad74413r.c
1290
if (chan->output)
drivers/iio/addac/ad74413r.c
1291
chan->scan_index = -1;
drivers/iio/addac/ad74413r.c
1293
chan->scan_index = i;
drivers/iio/addac/ad74413r.c
975
struct iio_chan_spec const *chan,
drivers/iio/addac/ad74413r.c
982
switch (chan->type) {
drivers/iio/addac/ad74413r.c
984
if (chan->output)
drivers/iio/addac/ad74413r.c
989
chan->channel, val, val2);
drivers/iio/addac/ad74413r.c
991
if (chan->output)
drivers/iio/addac/ad74413r.c
996
chan->channel, val, val2);
drivers/iio/addac/stx104.c
201
struct iio_chan_spec const *chan, int *val, int *val2, long mask)
drivers/iio/addac/stx104.c
218
if (chan->output) {
drivers/iio/addac/stx104.c
219
err = regmap_read(priv->aio_data_map, STX104_DAC_OFFSET(chan->channel),
drivers/iio/addac/stx104.c
23
#define STX104_OUT_CHAN(chan) { \
drivers/iio/addac/stx104.c
231
STX104_SINGLE_CHANNEL(chan->channel));
drivers/iio/addac/stx104.c
25
.channel = chan, \
drivers/iio/addac/stx104.c
290
struct iio_chan_spec const *chan, int val, int val2, long mask)
drivers/iio/addac/stx104.c
30
#define STX104_IN_CHAN(chan, diff) { \
drivers/iio/addac/stx104.c
317
if (!chan->output)
drivers/iio/addac/stx104.c
32
.channel = chan, \
drivers/iio/addac/stx104.c
323
return regmap_write(priv->aio_data_map, STX104_DAC_OFFSET(chan->channel), val);
drivers/iio/addac/stx104.c
33
.channel2 = chan, \
drivers/iio/afe/iio-rescale.c
146
struct iio_chan_spec const *chan,
drivers/iio/afe/iio-rescale.c
235
struct iio_chan_spec const *chan,
drivers/iio/afe/iio-rescale.c
258
struct iio_chan_spec const *chan,
drivers/iio/afe/iio-rescale.c
270
struct iio_chan_spec const *chan,
drivers/iio/afe/iio-rescale.c
283
struct iio_chan_spec *chan = &rescale->chan;
drivers/iio/afe/iio-rescale.c
286
chan->indexed = 1;
drivers/iio/afe/iio-rescale.c
287
chan->output = schan->output;
drivers/iio/afe/iio-rescale.c
288
chan->ext_info = rescale->ext_info;
drivers/iio/afe/iio-rescale.c
289
chan->type = rescale->cfg->type;
drivers/iio/afe/iio-rescale.c
303
chan->info_mask_separate = BIT(IIO_CHAN_INFO_RAW) |
drivers/iio/afe/iio-rescale.c
307
chan->info_mask_separate |= BIT(IIO_CHAN_INFO_OFFSET);
drivers/iio/afe/iio-rescale.c
316
chan->info_mask_separate_available |= BIT(IIO_CHAN_INFO_RAW);
drivers/iio/afe/iio-rescale.c
571
indio_dev->channels = &rescale->chan;
drivers/iio/amplifiers/ad8366.c
206
struct iio_chan_spec const *chan,
drivers/iio/amplifiers/ad8366.c
219
code = st->ch[chan->channel];
drivers/iio/amplifiers/ad8366.c
237
struct iio_chan_spec const *chan,
drivers/iio/amplifiers/ad8366.c
262
st->ch[chan->channel] = code;
drivers/iio/amplifiers/ad8366.c
274
struct iio_chan_spec const *chan,
drivers/iio/amplifiers/ada4250.c
166
struct iio_chan_spec const *chan,
drivers/iio/amplifiers/ada4250.c
204
struct iio_chan_spec const *chan,
drivers/iio/amplifiers/ada4250.c
221
return ada4250_set_offset_uv(indio_dev, chan, val);
drivers/iio/amplifiers/ada4250.c
238
struct iio_chan_spec const *chan,
drivers/iio/amplifiers/ada4250.c
83
const struct iio_chan_spec *chan,
drivers/iio/amplifiers/adl8113.c
101
struct iio_chan_spec const *chan,
drivers/iio/amplifiers/adl8113.c
124
struct iio_chan_spec const *chan,
drivers/iio/amplifiers/hmc425a.c
168
struct iio_chan_spec const *chan, int *val,
drivers/iio/amplifiers/hmc425a.c
191
struct iio_chan_spec const *chan, int val,
drivers/iio/amplifiers/hmc425a.c
216
struct iio_chan_spec const *chan,
drivers/iio/amplifiers/hmc425a.c
235
const struct iio_chan_spec *chan,
drivers/iio/amplifiers/hmc425a.c
245
const struct iio_chan_spec *chan,
drivers/iio/buffer/industrialio-buffer-cb.c
56
struct iio_channel *chan;
drivers/iio/buffer/industrialio-buffer-cb.c
86
chan = &cb_buff->channels[0];
drivers/iio/buffer/industrialio-buffer-cb.c
87
while (chan->indio_dev) {
drivers/iio/buffer/industrialio-buffer-cb.c
88
if (chan->indio_dev != cb_buff->indio_dev) {
drivers/iio/buffer/industrialio-buffer-cb.c
92
set_bit(chan->channel->scan_index,
drivers/iio/buffer/industrialio-buffer-cb.c
94
chan++;
drivers/iio/buffer/industrialio-buffer-dmaengine.c
102
desc = dmaengine_prep_peripheral_dma_vec(dmaengine_buffer->chan,
drivers/iio/buffer/industrialio-buffer-dmaengine.c
116
desc = dmaengine_prep_slave_single(dmaengine_buffer->chan,
drivers/iio/buffer/industrialio-buffer-dmaengine.c
135
dma_async_issue_pending(dmaengine_buffer->chan);
drivers/iio/buffer/industrialio-buffer-dmaengine.c
145
dmaengine_terminate_sync(dmaengine_buffer->chan);
drivers/iio/buffer/industrialio-buffer-dmaengine.c
216
static struct iio_buffer *iio_dmaengine_buffer_alloc(struct dma_chan *chan)
drivers/iio/buffer/industrialio-buffer-dmaengine.c
223
ret = dma_get_slave_caps(chan, &caps);
drivers/iio/buffer/industrialio-buffer-dmaengine.c
243
dmaengine_buffer->chan = chan;
drivers/iio/buffer/industrialio-buffer-dmaengine.c
245
dmaengine_buffer->max_size = dma_get_max_seg_size(chan->device->dev);
drivers/iio/buffer/industrialio-buffer-dmaengine.c
247
iio_dma_buffer_init(&dmaengine_buffer->queue, chan->device->dev,
drivers/iio/buffer/industrialio-buffer-dmaengine.c
282
struct dma_chan *chan = dmaengine_buffer->chan;
drivers/iio/buffer/industrialio-buffer-dmaengine.c
285
dma_release_channel(chan);
drivers/iio/buffer/industrialio-buffer-dmaengine.c
291
struct dma_chan *chan,
drivers/iio/buffer/industrialio-buffer-dmaengine.c
297
buffer = iio_dmaengine_buffer_alloc(chan);
drivers/iio/buffer/industrialio-buffer-dmaengine.c
334
struct dma_chan *chan;
drivers/iio/buffer/industrialio-buffer-dmaengine.c
337
chan = dma_request_chan(dev, channel);
drivers/iio/buffer/industrialio-buffer-dmaengine.c
338
if (IS_ERR(chan))
drivers/iio/buffer/industrialio-buffer-dmaengine.c
339
return ERR_CAST(chan);
drivers/iio/buffer/industrialio-buffer-dmaengine.c
341
buffer = __iio_dmaengine_buffer_setup_ext(indio_dev, chan, dir);
drivers/iio/buffer/industrialio-buffer-dmaengine.c
343
dma_release_channel(chan);
drivers/iio/buffer/industrialio-buffer-dmaengine.c
36
struct dma_chan *chan;
drivers/iio/buffer/industrialio-buffer-dmaengine.c
405
struct dma_chan *chan,
drivers/iio/buffer/industrialio-buffer-dmaengine.c
410
buffer = __iio_dmaengine_buffer_setup_ext(indio_dev, chan, dir);
drivers/iio/buffer/industrialio-hw-consumer.c
107
chan = &hwc->channels[0];
drivers/iio/buffer/industrialio-hw-consumer.c
108
while (chan->indio_dev) {
drivers/iio/buffer/industrialio-hw-consumer.c
109
buf = iio_hw_consumer_get_buffer(hwc, chan->indio_dev);
drivers/iio/buffer/industrialio-hw-consumer.c
114
set_bit(chan->channel->scan_index, buf->buffer.scan_mask);
drivers/iio/buffer/industrialio-hw-consumer.c
115
chan++;
drivers/iio/buffer/industrialio-hw-consumer.c
92
struct iio_channel *chan;
drivers/iio/cdc/ad7150.c
101
struct iio_chan_spec const *chan,
drivers/iio/cdc/ad7150.c
107
int channel = chan->channel;
drivers/iio/cdc/ad7150.c
149
const struct iio_chan_spec *chan,
drivers/iio/cdc/ad7150.c
184
unsigned int chan,
drivers/iio/cdc/ad7150.c
198
u16 value = chip->threshold[rising][chan];
drivers/iio/cdc/ad7150.c
200
ad7150_addresses[chan][3],
drivers/iio/cdc/ad7150.c
207
sens = chip->thresh_sensitivity[rising][chan];
drivers/iio/cdc/ad7150.c
209
ad7150_addresses[chan][4],
drivers/iio/cdc/ad7150.c
219
chip->thresh_timeout[1][chan]);
drivers/iio/cdc/ad7150.c
221
chip->thresh_timeout[0][chan]);
drivers/iio/cdc/ad7150.c
223
ad7150_addresses[chan][5],
drivers/iio/cdc/ad7150.c
232
const struct iio_chan_spec *chan,
drivers/iio/cdc/ad7150.c
248
if ((chip->int_enabled[chan->channel]) &&
drivers/iio/cdc/ad7150.c
250
disable_irq(chip->interrupts[chan->channel]);
drivers/iio/cdc/ad7150.c
251
chip->int_enabled[chan->channel] = false;
drivers/iio/cdc/ad7150.c
304
ret = ad7150_write_event_params(indio_dev, chan->channel, type,
drivers/iio/cdc/ad7150.c
312
if (!chip->int_enabled[chan->channel]) {
drivers/iio/cdc/ad7150.c
313
enable_irq(chip->interrupts[chan->channel]);
drivers/iio/cdc/ad7150.c
314
chip->int_enabled[chan->channel] = true;
drivers/iio/cdc/ad7150.c
324
const struct iio_chan_spec *chan,
drivers/iio/cdc/ad7150.c
338
*val = chip->thresh_sensitivity[rising][chan->channel];
drivers/iio/cdc/ad7150.c
341
*val = chip->threshold[rising][chan->channel];
drivers/iio/cdc/ad7150.c
348
*val2 = chip->thresh_timeout[rising][chan->channel] * 10000;
drivers/iio/cdc/ad7150.c
356
const struct iio_chan_spec *chan,
drivers/iio/cdc/ad7150.c
371
chip->thresh_sensitivity[rising][chan->channel] = val;
drivers/iio/cdc/ad7150.c
374
chip->threshold[rising][chan->channel] = val;
drivers/iio/cdc/ad7150.c
394
chip->thresh_timeout[rising][chan->channel] = timeout;
drivers/iio/cdc/ad7150.c
403
ret = ad7150_write_event_params(indio_dev, chan->channel, type, dir);
drivers/iio/cdc/ad7746.c
267
struct iio_chan_spec const *chan)
drivers/iio/cdc/ad7746.c
273
switch (chan->type) {
drivers/iio/cdc/ad7746.c
276
ad7746_chan_info[chan->address].cin2) |
drivers/iio/cdc/ad7746.c
278
ad7746_chan_info[chan->address].capdiff) |
drivers/iio/cdc/ad7746.c
284
ret = ad7746_set_capdac(chip, chan->channel);
drivers/iio/cdc/ad7746.c
288
chip->capdac_set = chan->channel;
drivers/iio/cdc/ad7746.c
293
ad7746_chan_info[chan->address].vtmd) |
drivers/iio/cdc/ad7746.c
460
struct iio_chan_spec const *chan,
drivers/iio/cdc/ad7746.c
475
switch (chan->type) {
drivers/iio/cdc/ad7746.c
518
chip->capdac[chan->channel][chan->differential] = val > 0 ?
drivers/iio/cdc/ad7746.c
521
ret = ad7746_set_capdac(chip, chan->channel);
drivers/iio/cdc/ad7746.c
527
chip->capdac_set = chan->channel;
drivers/iio/cdc/ad7746.c
535
switch (chan->type) {
drivers/iio/cdc/ad7746.c
558
struct iio_chan_spec const *chan, const int **vals,
drivers/iio/cdc/ad7746.c
564
switch (chan->type) {
drivers/iio/cdc/ad7746.c
581
struct iio_chan_spec const *chan,
drivers/iio/cdc/ad7746.c
589
ret = ad7746_select_channel(indio_dev, chan);
drivers/iio/cdc/ad7746.c
603
ad7746_chan_info[chan->address].addr,
drivers/iio/cdc/ad7746.c
618
struct iio_chan_spec const *chan,
drivers/iio/cdc/ad7746.c
629
ret = ad7746_read_channel(indio_dev, chan, val);
drivers/iio/cdc/ad7746.c
636
switch (chan->type) {
drivers/iio/cdc/ad7746.c
670
chip->capdac[chan->channel][chan->differential]) * 338646;
drivers/iio/cdc/ad7746.c
674
switch (chan->type) {
drivers/iio/cdc/ad7746.c
683
if (chan->channel == 1)
drivers/iio/cdc/ad7746.c
695
switch (chan->type) {
drivers/iio/chemical/ags02ma.c
76
struct iio_chan_spec const *chan, int *val,
drivers/iio/chemical/ams-iaq-core.c
108
switch (chan->address) {
drivers/iio/chemical/ams-iaq-core.c
93
struct iio_chan_spec const *chan, int *val,
drivers/iio/chemical/atlas-ezo-sensor.c
113
struct iio_chan_spec const *chan,
drivers/iio/chemical/atlas-ezo-sensor.c
119
if (chan->type != IIO_CONCENTRATION)
drivers/iio/chemical/atlas-ezo-sensor.c
157
switch (chan->type) {
drivers/iio/chemical/atlas-ezo-sensor.c
168
switch (chan->channel2) {
drivers/iio/chemical/atlas-sensor.c
498
struct iio_chan_spec const *chan,
drivers/iio/chemical/atlas-sensor.c
509
switch (chan->type) {
drivers/iio/chemical/atlas-sensor.c
511
ret = regmap_bulk_read(data->regmap, chan->address,
drivers/iio/chemical/atlas-sensor.c
521
ret = atlas_read_measurement(data, chan->address, &reg);
drivers/iio/chemical/atlas-sensor.c
536
switch (chan->type) {
drivers/iio/chemical/atlas-sensor.c
566
struct iio_chan_spec const *chan,
drivers/iio/chemical/atlas-sensor.c
575
if (mask != IIO_CHAN_INFO_RAW || chan->type != IIO_TEMP)
drivers/iio/chemical/atlas-sensor.c
578
return regmap_bulk_write(data->regmap, chan->address,
drivers/iio/chemical/bme680_core.c
1011
struct iio_chan_spec const *chan,
drivers/iio/chemical/bme680_core.c
1022
ret = __bme680_write_raw(indio_dev, chan, val, val2, mask);
drivers/iio/chemical/bme680_core.c
1092
data->scan.chan[0] = bme680_compensate_temp(data, adc_temp);
drivers/iio/chemical/bme680_core.c
1101
data->scan.chan[1] = bme680_compensate_press(data, adc_press, t_fine);
drivers/iio/chemical/bme680_core.c
1109
data->scan.chan[2] = bme680_compensate_humid(data, adc_humid, t_fine);
drivers/iio/chemical/bme680_core.c
1119
data->scan.chan[3] = bme680_compensate_gas(data, adc_gas_res, gas_range);
drivers/iio/chemical/bme680_core.c
131
s32 chan[BME680_NUM_CHANNELS];
drivers/iio/chemical/bme680_core.c
826
struct iio_chan_spec const *chan,
drivers/iio/chemical/bme680_core.c
845
switch (chan->type) {
drivers/iio/chemical/bme680_core.c
880
switch (chan->type) {
drivers/iio/chemical/bme680_core.c
906
switch (chan->type) {
drivers/iio/chemical/bme680_core.c
922
switch (chan->type) {
drivers/iio/chemical/bme680_core.c
941
struct iio_chan_spec const *chan,
drivers/iio/chemical/bme680_core.c
952
ret = __bme680_read_raw(indio_dev, chan, val, val2, mask);
drivers/iio/chemical/bme680_core.c
964
struct iio_chan_spec const *chan,
drivers/iio/chemical/bme680_core.c
980
switch (chan->type) {
drivers/iio/chemical/bme680_core.c
998
switch (chan->type) {
drivers/iio/chemical/ccs811.c
219
struct iio_chan_spec const *chan,
drivers/iio/chemical/ccs811.c
229
switch (chan->type) {
drivers/iio/chemical/ccs811.c
237
switch (chan->channel2) {
drivers/iio/chemical/ccs811.c
253
struct iio_chan_spec const *chan,
drivers/iio/chemical/ccs811.c
264
ret = ccs811_read_info_raw(data, chan, val, mask);
drivers/iio/chemical/ccs811.c
271
switch (chan->type) {
drivers/iio/chemical/ccs811.c
281
switch (chan->channel2) {
drivers/iio/chemical/ens160_core.c
104
struct iio_chan_spec const *chan,
drivers/iio/chemical/ens160_core.c
111
ret = regmap_bulk_read(data->regmap, chan->address,
drivers/iio/chemical/ens160_core.c
120
struct iio_chan_spec const *chan,
drivers/iio/chemical/ens160_core.c
129
ret = __ens160_read_raw(indio_dev, chan, val);
drivers/iio/chemical/ens160_core.c
133
switch (chan->channel2) {
drivers/iio/chemical/mhz19b.c
145
struct iio_chan_spec const *chan,
drivers/iio/chemical/pms7003.c
138
struct iio_chan_spec const *chan,
drivers/iio/chemical/pms7003.c
147
switch (chan->type) {
drivers/iio/chemical/pms7003.c
156
*val = pms7003_get_pm(frame->data + chan->address);
drivers/iio/chemical/scd30_core.c
209
static int scd30_read_raw(struct iio_dev *indio_dev, struct iio_chan_spec const *chan,
drivers/iio/chemical/scd30_core.c
220
if (chan->output) {
drivers/iio/chemical/scd30_core.c
234
*val = state->meas[chan->address];
drivers/iio/chemical/scd30_core.c
261
static int scd30_write_raw(struct iio_dev *indio_dev, struct iio_chan_spec const *chan,
drivers/iio/chemical/scd30_core.c
284
switch (chan->type) {
drivers/iio/chemical/scd30_core.c
312
static int scd30_write_raw_get_fmt(struct iio_dev *indio_dev, struct iio_chan_spec const *chan,
drivers/iio/chemical/scd30_core.c
334
static int scd30_read_avail(struct iio_dev *indio_dev, struct iio_chan_spec const *chan,
drivers/iio/chemical/scd4x.c
329
static int scd4x_read_channel(struct scd4x_state *state, int chan)
drivers/iio/chemical/scd4x.c
338
return buf[chan];
drivers/iio/chemical/scd4x.c
342
struct iio_chan_spec const *chan, int *val,
drivers/iio/chemical/scd4x.c
351
if (chan->output) {
drivers/iio/chemical/scd4x.c
367
ret = scd4x_read_channel(state, chan->address);
drivers/iio/chemical/scd4x.c
377
if (chan->type == IIO_CONCENTRATION) {
drivers/iio/chemical/scd4x.c
381
} else if (chan->type == IIO_TEMP) {
drivers/iio/chemical/scd4x.c
385
} else if (chan->type == IIO_HUMIDITYRELATIVE) {
drivers/iio/chemical/scd4x.c
414
static int scd4x_read_avail(struct iio_dev *indio_dev, struct iio_chan_spec const *chan,
drivers/iio/chemical/scd4x.c
429
static int scd4x_write_raw(struct iio_dev *indio_dev, struct iio_chan_spec const *chan,
drivers/iio/chemical/scd4x.c
443
switch (chan->type) {
drivers/iio/chemical/sen0322.c
72
const struct iio_chan_spec *chan,
drivers/iio/chemical/sen0322.c
78
if (chan->type != IIO_CONCENTRATION)
drivers/iio/chemical/sgp30.c
337
struct iio_chan_spec const *chan, int *val,
drivers/iio/chemical/sgp30.c
352
switch (chan->address) {
drivers/iio/chemical/sgp30.c
372
if (chan->address == SGPC3_SIG_ETOH_IDX) {
drivers/iio/chemical/sgp30.c
389
switch (chan->address) {
drivers/iio/chemical/sgp40.c
216
struct iio_chan_spec const *chan, int *val,
drivers/iio/chemical/sgp40.c
225
switch (chan->type) {
drivers/iio/chemical/sgp40.c
275
struct iio_chan_spec const *chan, int val,
drivers/iio/chemical/sgp40.c
282
switch (chan->type) {
drivers/iio/chemical/sps30.c
130
struct iio_chan_spec const *chan,
drivers/iio/chemical/sps30.c
138
switch (chan->type) {
drivers/iio/chemical/sps30.c
141
switch (chan->channel2) {
drivers/iio/chemical/sps30.c
158
*val = data[chan->address] / 100;
drivers/iio/chemical/sps30.c
159
*val2 = (data[chan->address] % 100) * 10000;
drivers/iio/chemical/sps30.c
166
switch (chan->type) {
drivers/iio/chemical/sps30.c
168
switch (chan->channel2) {
drivers/iio/chemical/sunrise_co2.c
237
const struct iio_chan_spec *chan,
drivers/iio/chemical/sunrise_co2.c
262
const struct iio_chan_spec *chan,
drivers/iio/chemical/sunrise_co2.c
319
const struct iio_chan_spec *chan,
drivers/iio/chemical/sunrise_co2.c
393
const struct iio_chan_spec *chan,
drivers/iio/chemical/sunrise_co2.c
402
switch (chan->type) {
drivers/iio/chemical/sunrise_co2.c
432
switch (chan->type) {
drivers/iio/chemical/vz89x.c
241
struct iio_chan_spec const *chan,
drivers/iio/chemical/vz89x.c
244
u8 *tmp = &data->buffer[chan->address];
drivers/iio/chemical/vz89x.c
246
switch (chan->scan_type.endianness) {
drivers/iio/chemical/vz89x.c
261
struct iio_chan_spec const *chan, int *val,
drivers/iio/chemical/vz89x.c
276
switch (chan->type) {
drivers/iio/chemical/vz89x.c
278
*val = data->buffer[chan->address];
drivers/iio/chemical/vz89x.c
281
ret = vz89x_get_resistance_reading(data, chan, val);
drivers/iio/chemical/vz89x.c
290
switch (chan->type) {
drivers/iio/chemical/vz89x.c
299
switch (chan->channel2) {
drivers/iio/common/cros_ec_sensors/cros_ec_activity.c
101
switch (chan->type) {
drivers/iio/common/cros_ec_sensors/cros_ec_activity.c
106
if (chan->channel2 == IIO_MOD_STILL) {
drivers/iio/common/cros_ec_sensors/cros_ec_activity.c
112
chan->channel2);
drivers/iio/common/cros_ec_sensors/cros_ec_activity.c
116
chan->type);
drivers/iio/common/cros_ec_sensors/cros_ec_activity.c
122
const struct iio_chan_spec *chan,
drivers/iio/common/cros_ec_sensors/cros_ec_activity.c
131
switch (chan->type) {
drivers/iio/common/cros_ec_sensors/cros_ec_activity.c
137
if (chan->channel2 == IIO_MOD_STILL) {
drivers/iio/common/cros_ec_sensors/cros_ec_activity.c
143
chan->channel2);
drivers/iio/common/cros_ec_sensors/cros_ec_activity.c
147
chan->type);
drivers/iio/common/cros_ec_sensors/cros_ec_activity.c
162
const struct iio_chan_spec *chan;
drivers/iio/common/cros_ec_sensors/cros_ec_activity.c
179
chan = &st->channels[index];
drivers/iio/common/cros_ec_sensors/cros_ec_activity.c
181
IIO_UNMOD_EVENT_CODE(chan->type, index, chan->event_spec[0].type, dir),
drivers/iio/common/cros_ec_sensors/cros_ec_activity.c
58
struct iio_chan_spec const *chan,
drivers/iio/common/cros_ec_sensors/cros_ec_activity.c
64
if (chan->type != IIO_PROXIMITY || mask != IIO_CHAN_INFO_RAW)
drivers/iio/common/cros_ec_sensors/cros_ec_activity.c
85
const struct iio_chan_spec *chan,
drivers/iio/common/cros_ec_sensors/cros_ec_activity.c
92
if (chan->type != IIO_ACTIVITY && chan->type != IIO_PROXIMITY)
drivers/iio/common/cros_ec_sensors/cros_ec_lid_angle.c
68
struct iio_chan_spec const *chan,
drivers/iio/common/cros_ec_sensors/cros_ec_sensors.c
140
ret = cros_ec_sensors_core_read(&st->core, chan, val, val2,
drivers/iio/common/cros_ec_sensors/cros_ec_sensors.c
150
struct iio_chan_spec const *chan,
drivers/iio/common/cros_ec_sensors/cros_ec_sensors.c
156
int idx = chan->scan_index;
drivers/iio/common/cros_ec_sensors/cros_ec_sensors.c
210
&st->core, chan, val, val2, mask);
drivers/iio/common/cros_ec_sensors/cros_ec_sensors.c
36
struct iio_chan_spec const *chan,
drivers/iio/common/cros_ec_sensors/cros_ec_sensors.c
44
int idx = chan->scan_index;
drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core.c
434
uintptr_t private, const struct iio_chan_spec *chan,
drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core.c
464
const struct iio_chan_spec *chan, char *buf)
drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core.c
757
struct iio_chan_spec const *chan,
drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core.c
798
struct iio_chan_spec const *chan,
drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core.c
829
struct iio_chan_spec const *chan,
drivers/iio/common/scmi_sensors/scmi_iio.c
200
struct iio_chan_spec const *chan, int val,
drivers/iio/common/scmi_sensors/scmi_iio.c
218
struct iio_chan_spec const *chan,
drivers/iio/common/scmi_sensors/scmi_iio.c
372
const struct iio_chan_spec *chan,
drivers/iio/dac/ad3530r.c
114
const struct iio_chan_spec *chan)
drivers/iio/dac/ad3530r.c
119
return st->chan[chan->channel].powerdown_mode - 1;
drivers/iio/dac/ad3530r.c
123
const struct iio_chan_spec *chan,
drivers/iio/dac/ad3530r.c
129
st->chan[chan->channel].powerdown_mode = mode + 1;
drivers/iio/dac/ad3530r.c
150
const struct iio_chan_spec *chan,
drivers/iio/dac/ad3530r.c
156
return sysfs_emit(buf, "%d\n", st->chan[chan->channel].powerdown);
drivers/iio/dac/ad3530r.c
161
const struct iio_chan_spec *chan,
drivers/iio/dac/ad3530r.c
174
reg = chan->channel < AD3531R_MAX_CHANNELS ?
drivers/iio/dac/ad3530r.c
177
pdmode = powerdown ? st->chan[chan->channel].powerdown_mode : 0;
drivers/iio/dac/ad3530r.c
178
mask = chan->channel < AD3531R_MAX_CHANNELS ?
drivers/iio/dac/ad3530r.c
179
AD3530R_OP_MODE_CHAN_MSK(chan->channel) :
drivers/iio/dac/ad3530r.c
180
AD3530R_OP_MODE_CHAN_MSK(chan->channel - 4);
drivers/iio/dac/ad3530r.c
187
st->chan[chan->channel].powerdown = powerdown;
drivers/iio/dac/ad3530r.c
201
static int ad3530r_dac_write(struct ad3530r_state *st, unsigned int chan,
drivers/iio/dac/ad3530r.c
209
ret = regmap_bulk_write(st->regmap, st->chip_info->input_ch_reg(chan),
drivers/iio/dac/ad3530r.c
222
struct iio_chan_spec const *chan,
drivers/iio/dac/ad3530r.c
232
st->chip_info->input_ch_reg(chan->channel),
drivers/iio/dac/ad3530r.c
251
struct iio_chan_spec const *chan,
drivers/iio/dac/ad3530r.c
261
return ad3530r_dac_write(st, chan->channel, val);
drivers/iio/dac/ad3530r.c
434
st->chan[i].powerdown_mode = AD3530R_POWERDOWN_32K;
drivers/iio/dac/ad3530r.c
45
#define AD3530R_OP_MODE_CHAN_MSK(chan) (GENMASK(1, 0) << 2 * (chan))
drivers/iio/dac/ad3530r.c
80
struct ad3530r_chan chan[AD3530R_MAX_CHANNELS];
drivers/iio/dac/ad3552r-hs.c
110
struct iio_chan_spec const *chan,
drivers/iio/dac/ad3552r-hs.c
115
int ch = chan->channel;
drivers/iio/dac/ad3552r-hs.c
127
chan->scan_type.realbits);
drivers/iio/dac/ad3552r-hs.c
134
AD3552R_REG_ADDR_CH_DAC_16B(chan->channel),
drivers/iio/dac/ad3552r-hs.c
154
struct iio_chan_spec const *chan,
drivers/iio/dac/ad3552r-hs.c
166
AD3552R_REG_ADDR_CH_DAC_16B(chan->channel),
drivers/iio/dac/ad3552r.c
143
struct iio_chan_spec const *chan,
drivers/iio/dac/ad3552r.c
151
u8 ch = chan->channel;
drivers/iio/dac/ad3552r.c
186
struct iio_chan_spec const *chan,
drivers/iio/dac/ad3552r.c
198
AD3552R_REG_ADDR_CH_DAC_24B(chan->channel),
drivers/iio/dac/ad3552r.c
202
if (chan->channel == 0)
drivers/iio/dac/ad3552r.c
208
AD3552R_MASK_CH_DAC_POWERDOWN(chan->channel),
drivers/iio/dac/ad5064.c
201
const struct iio_chan_spec *chan)
drivers/iio/dac/ad5064.c
209
address = chan->address;
drivers/iio/dac/ad5064.c
216
val = (0x1 << chan->address);
drivers/iio/dac/ad5064.c
219
if (st->pwr_down[chan->channel])
drivers/iio/dac/ad5064.c
220
val |= st->pwr_down_mode[chan->channel] << shift;
drivers/iio/dac/ad5064.c
239
const struct iio_chan_spec *chan)
drivers/iio/dac/ad5064.c
243
return st->pwr_down_mode[chan->channel] - 1;
drivers/iio/dac/ad5064.c
247
const struct iio_chan_spec *chan, unsigned int mode)
drivers/iio/dac/ad5064.c
253
st->pwr_down_mode[chan->channel] = mode + 1;
drivers/iio/dac/ad5064.c
255
ret = ad5064_sync_powerdown_mode(st, chan);
drivers/iio/dac/ad5064.c
276
uintptr_t private, const struct iio_chan_spec *chan, char *buf)
drivers/iio/dac/ad5064.c
280
return sysfs_emit(buf, "%d\n", st->pwr_down[chan->channel]);
drivers/iio/dac/ad5064.c
284
uintptr_t private, const struct iio_chan_spec *chan, const char *buf,
drivers/iio/dac/ad5064.c
296
st->pwr_down[chan->channel] = pwr_down;
drivers/iio/dac/ad5064.c
298
ret = ad5064_sync_powerdown_mode(st, chan);
drivers/iio/dac/ad5064.c
304
struct iio_chan_spec const *chan)
drivers/iio/dac/ad5064.c
311
i = st->chip_info->shared_vref ? 0 : chan->channel;
drivers/iio/dac/ad5064.c
316
struct iio_chan_spec const *chan,
drivers/iio/dac/ad5064.c
326
*val = st->dac_cache[chan->channel];
drivers/iio/dac/ad5064.c
329
scale_uv = ad5064_get_vref(st, chan);
drivers/iio/dac/ad5064.c
334
*val2 = chan->scan_type.realbits;
drivers/iio/dac/ad5064.c
343
struct iio_chan_spec const *chan, int val, int val2, long mask)
drivers/iio/dac/ad5064.c
350
if (val >= (1 << chan->scan_type.realbits) || val < 0)
drivers/iio/dac/ad5064.c
355
chan->address, val, chan->scan_type.shift);
drivers/iio/dac/ad5064.c
357
st->dac_cache[chan->channel] = val;
drivers/iio/dac/ad5064.c
396
#define AD5064_CHANNEL(chan, addr, bits, _shift, _ext_info) { \
drivers/iio/dac/ad5064.c
400
.channel = (chan), \
drivers/iio/dac/ad5360.c
27
#define AD5360_CHAN_ADDR(chan) ((chan) + 0x8)
drivers/iio/dac/ad5360.c
303
struct iio_chan_spec const *chan,
drivers/iio/dac/ad5360.c
309
int max_val = (1 << chan->scan_type.realbits);
drivers/iio/dac/ad5360.c
318
chan->address, val, chan->scan_type.shift);
drivers/iio/dac/ad5360.c
325
chan->address, val, chan->scan_type.shift);
drivers/iio/dac/ad5360.c
332
chan->address, val, chan->scan_type.shift);
drivers/iio/dac/ad5360.c
343
val >>= (chan->scan_type.realbits - 14);
drivers/iio/dac/ad5360.c
348
ofs_index = ad5360_get_channel_vref_index(st, chan->channel);
drivers/iio/dac/ad5360.c
359
struct iio_chan_spec const *chan,
drivers/iio/dac/ad5360.c
372
chan->address);
drivers/iio/dac/ad5360.c
375
*val = ret >> chan->scan_type.shift;
drivers/iio/dac/ad5360.c
378
scale_uv = ad5360_get_channel_vref(st, chan->channel);
drivers/iio/dac/ad5360.c
384
*val2 = chan->scan_type.realbits;
drivers/iio/dac/ad5360.c
388
chan->address);
drivers/iio/dac/ad5360.c
395
chan->address);
drivers/iio/dac/ad5360.c
401
ofs_index = ad5360_get_channel_vref_index(st, chan->channel);
drivers/iio/dac/ad5360.c
407
ret <<= (chan->scan_type.realbits - 14);
drivers/iio/dac/ad5380.c
119
const struct iio_chan_spec *chan)
drivers/iio/dac/ad5380.c
135
const struct iio_chan_spec *chan, unsigned int mode)
drivers/iio/dac/ad5380.c
154
static unsigned int ad5380_info_to_reg(struct iio_chan_spec const *chan,
drivers/iio/dac/ad5380.c
159
return AD5380_REG_DATA(chan->address);
drivers/iio/dac/ad5380.c
161
return AD5380_REG_OFFSET(chan->address);
drivers/iio/dac/ad5380.c
163
return AD5380_REG_GAIN(chan->address);
drivers/iio/dac/ad5380.c
172
struct iio_chan_spec const *chan, int val, int val2, long info)
drivers/iio/dac/ad5380.c
174
const unsigned int max_val = (1 << chan->scan_type.realbits);
drivers/iio/dac/ad5380.c
184
ad5380_info_to_reg(chan, info),
drivers/iio/dac/ad5380.c
185
val << chan->scan_type.shift);
drivers/iio/dac/ad5380.c
187
val += (1 << chan->scan_type.realbits) / 2;
drivers/iio/dac/ad5380.c
192
AD5380_REG_OFFSET(chan->address),
drivers/iio/dac/ad5380.c
193
val << chan->scan_type.shift);
drivers/iio/dac/ad5380.c
201
struct iio_chan_spec const *chan, int *val, int *val2, long info)
drivers/iio/dac/ad5380.c
209
ret = regmap_read(st->regmap, ad5380_info_to_reg(chan, info),
drivers/iio/dac/ad5380.c
213
*val >>= chan->scan_type.shift;
drivers/iio/dac/ad5380.c
216
ret = regmap_read(st->regmap, AD5380_REG_OFFSET(chan->address),
drivers/iio/dac/ad5380.c
220
*val >>= chan->scan_type.shift;
drivers/iio/dac/ad5380.c
221
*val -= (1 << chan->scan_type.realbits) / 2;
drivers/iio/dac/ad5380.c
225
*val2 = chan->scan_type.realbits;
drivers/iio/dac/ad5380.c
80
uintptr_t private, const struct iio_chan_spec *chan, char *buf)
drivers/iio/dac/ad5380.c
88
uintptr_t private, const struct iio_chan_spec *chan, const char *buf,
drivers/iio/dac/ad5421.c
315
struct iio_chan_spec const *chan, int *val, int *val2, long m)
drivers/iio/dac/ad5421.c
321
if (chan->type != IIO_CURRENT)
drivers/iio/dac/ad5421.c
357
struct iio_chan_spec const *chan, int val, int val2, long mask)
drivers/iio/dac/ad5421.c
386
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/dac/ad5421.c
392
switch (chan->type) {
drivers/iio/dac/ad5421.c
417
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/dac/ad5421.c
423
switch (chan->type) {
drivers/iio/dac/ad5421.c
441
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/dac/ad5421.c
447
switch (chan->type) {
drivers/iio/dac/ad5446.c
112
struct iio_chan_spec const *chan,
drivers/iio/dac/ad5446.c
121
*val = st->cached_val >> chan->scan_type.shift;
drivers/iio/dac/ad5446.c
125
*val2 = chan->scan_type.realbits;
drivers/iio/dac/ad5446.c
132
const struct iio_chan_spec *chan,
drivers/iio/dac/ad5446.c
137
if (val >= (1 << chan->scan_type.realbits) || val < 0)
drivers/iio/dac/ad5446.c
140
val <<= chan->scan_type.shift;
drivers/iio/dac/ad5446.c
151
struct iio_chan_spec const *chan, int val,
drivers/iio/dac/ad5446.c
156
return ad5446_write_dac_raw(indio_dev, chan, val);
drivers/iio/dac/ad5446.c
31
const struct iio_chan_spec *chan,
drivers/iio/dac/ad5446.c
42
const struct iio_chan_spec *chan)
drivers/iio/dac/ad5446.c
58
const struct iio_chan_spec *chan,
drivers/iio/dac/ad5446.c
68
const struct iio_chan_spec *chan,
drivers/iio/dac/ad5446.c
85
shift = chan->scan_type.realbits + chan->scan_type.shift;
drivers/iio/dac/ad5449.c
131
struct iio_chan_spec const *chan, int *val, int *val2, long info)
drivers/iio/dac/ad5449.c
142
AD5449_CMD_READ(chan->address), val);
drivers/iio/dac/ad5449.c
147
*val = st->dac_cache[chan->address];
drivers/iio/dac/ad5449.c
152
reg = &st->vref_reg[chan->channel];
drivers/iio/dac/ad5449.c
158
*val2 = chan->scan_type.realbits;
drivers/iio/dac/ad5449.c
169
struct iio_chan_spec const *chan, int val, int val2, long info)
drivers/iio/dac/ad5449.c
176
if (val < 0 || val >= (1 << chan->scan_type.realbits))
drivers/iio/dac/ad5449.c
180
AD5449_CMD_LOAD_AND_UPDATE(chan->address),
drivers/iio/dac/ad5449.c
181
val << chan->scan_type.shift);
drivers/iio/dac/ad5449.c
183
st->dac_cache[chan->address] = val;
drivers/iio/dac/ad5449.c
197
#define AD5449_CHANNEL(chan, bits) { \
drivers/iio/dac/ad5449.c
201
.channel = (chan), \
drivers/iio/dac/ad5449.c
204
.address = (chan), \
drivers/iio/dac/ad5504.c
104
ret = ad5504_spi_read(st, chan->address);
drivers/iio/dac/ad5504.c
113
*val2 = chan->scan_type.realbits;
drivers/iio/dac/ad5504.c
120
struct iio_chan_spec const *chan,
drivers/iio/dac/ad5504.c
129
if (val >= (1 << chan->scan_type.realbits) || val < 0)
drivers/iio/dac/ad5504.c
132
return ad5504_spi_write(st, chan->address, val);
drivers/iio/dac/ad5504.c
144
const struct iio_chan_spec *chan)
drivers/iio/dac/ad5504.c
152
const struct iio_chan_spec *chan, unsigned int mode)
drivers/iio/dac/ad5504.c
169
uintptr_t private, const struct iio_chan_spec *chan, char *buf)
drivers/iio/dac/ad5504.c
174
!(st->pwr_down_mask & (1 << chan->channel)));
drivers/iio/dac/ad5504.c
178
uintptr_t private, const struct iio_chan_spec *chan, const char *buf,
drivers/iio/dac/ad5504.c
190
st->pwr_down_mask &= ~(1 << chan->channel);
drivers/iio/dac/ad5504.c
192
st->pwr_down_mask |= (1 << chan->channel);
drivers/iio/dac/ad5504.c
94
struct iio_chan_spec const *chan,
drivers/iio/dac/ad5592r-base.c
290
struct iio_chan_spec const *chan, int val, int val2, long mask)
drivers/iio/dac/ad5592r-base.c
298
if (val >= (1 << chan->scan_type.realbits) || val < 0)
drivers/iio/dac/ad5592r-base.c
301
if (!chan->output)
drivers/iio/dac/ad5592r-base.c
305
ret = st->ops->write_dac(st, chan->channel, val);
drivers/iio/dac/ad5592r-base.c
307
st->cached_dac[chan->channel] = val;
drivers/iio/dac/ad5592r-base.c
311
if (chan->type == IIO_VOLTAGE) {
drivers/iio/dac/ad5592r-base.c
330
if (chan->output) {
drivers/iio/dac/ad5592r-base.c
358
struct iio_chan_spec const *chan,
drivers/iio/dac/ad5592r-base.c
367
if (!chan->output) {
drivers/iio/dac/ad5592r-base.c
369
ret = st->ops->read_adc(st, chan->channel,
drivers/iio/dac/ad5592r-base.c
374
if ((read_val >> 12 & 0x7) != (chan->channel & 0x7)) {
drivers/iio/dac/ad5592r-base.c
376
chan->channel);
drivers/iio/dac/ad5592r-base.c
384
read_val = st->cached_dac[chan->channel];
drivers/iio/dac/ad5592r-base.c
388
chan->channel, read_val);
drivers/iio/dac/ad5592r-base.c
395
if (chan->type == IIO_TEMP) {
drivers/iio/dac/ad5592r-base.c
403
if (chan->output)
drivers/iio/dac/ad5592r-base.c
413
*val2 = chan->scan_type.realbits;
drivers/iio/dac/ad5592r-base.c
434
struct iio_chan_spec const *chan, long mask)
drivers/iio/dac/ad5592r-base.c
455
const struct iio_chan_spec *chan,
drivers/iio/dac/ad5592r-base.c
475
struct iio_chan_spec *chan, bool output, unsigned id)
drivers/iio/dac/ad5592r-base.c
477
chan->type = IIO_VOLTAGE;
drivers/iio/dac/ad5592r-base.c
478
chan->indexed = 1;
drivers/iio/dac/ad5592r-base.c
479
chan->output = output;
drivers/iio/dac/ad5592r-base.c
480
chan->channel = id;
drivers/iio/dac/ad5592r-base.c
481
chan->info_mask_separate = BIT(IIO_CHAN_INFO_RAW);
drivers/iio/dac/ad5592r-base.c
482
chan->info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE);
drivers/iio/dac/ad5592r-base.c
483
chan->scan_type.sign = 'u';
drivers/iio/dac/ad5592r-base.c
484
chan->scan_type.realbits = 12;
drivers/iio/dac/ad5592r-base.c
485
chan->scan_type.storagebits = 16;
drivers/iio/dac/ad5592r-base.c
486
chan->ext_info = ad5592r_ext_info;
drivers/iio/dac/ad5592r-base.h
45
int (*write_dac)(struct ad5592r_state *st, unsigned chan, u16 value);
drivers/iio/dac/ad5592r-base.h
46
int (*read_adc)(struct ad5592r_state *st, unsigned chan, u16 *value);
drivers/iio/dac/ad5592r.c
32
static int ad5592r_write_dac(struct ad5592r_state *st, unsigned chan, u16 value)
drivers/iio/dac/ad5592r.c
36
st->spi_msg = cpu_to_be16(BIT(15) | (chan << 12) | value);
drivers/iio/dac/ad5592r.c
41
static int ad5592r_read_adc(struct ad5592r_state *st, unsigned chan, u16 *value)
drivers/iio/dac/ad5592r.c
46
st->spi_msg = cpu_to_be16((AD5592R_REG_ADC_SEQ << 11) | BIT(chan));
drivers/iio/dac/ad5593r.c
42
static int ad5593r_write_dac(struct ad5592r_state *st, unsigned chan, u16 value)
drivers/iio/dac/ad5593r.c
47
AD5593R_MODE_DAC_WRITE | chan, value);
drivers/iio/dac/ad5593r.c
50
static int ad5593r_read_adc(struct ad5592r_state *st, unsigned chan, u16 *value)
drivers/iio/dac/ad5593r.c
56
AD5593R_MODE_CONF | AD5592R_REG_ADC_SEQ, BIT(chan));
drivers/iio/dac/ad5624r_spi.c
116
uintptr_t private, const struct iio_chan_spec *chan, char *buf)
drivers/iio/dac/ad5624r_spi.c
121
!!(st->pwr_down_mask & (1 << chan->channel)));
drivers/iio/dac/ad5624r_spi.c
125
uintptr_t private, const struct iio_chan_spec *chan, const char *buf,
drivers/iio/dac/ad5624r_spi.c
137
st->pwr_down_mask |= (1 << chan->channel);
drivers/iio/dac/ad5624r_spi.c
139
st->pwr_down_mask &= ~(1 << chan->channel);
drivers/iio/dac/ad5624r_spi.c
46
struct iio_chan_spec const *chan,
drivers/iio/dac/ad5624r_spi.c
56
*val2 = chan->scan_type.realbits;
drivers/iio/dac/ad5624r_spi.c
63
struct iio_chan_spec const *chan,
drivers/iio/dac/ad5624r_spi.c
72
if (val >= (1 << chan->scan_type.realbits) || val < 0)
drivers/iio/dac/ad5624r_spi.c
77
chan->address, val,
drivers/iio/dac/ad5624r_spi.c
78
chan->scan_type.shift);
drivers/iio/dac/ad5624r_spi.c
91
const struct iio_chan_spec *chan)
drivers/iio/dac/ad5624r_spi.c
99
const struct iio_chan_spec *chan, unsigned int mode)
drivers/iio/dac/ad5686.c
102
uintptr_t private, const struct iio_chan_spec *chan, char *buf)
drivers/iio/dac/ad5686.c
109
!!ad5686_pd_field_get(chan, st->pwr_down_mask));
drivers/iio/dac/ad5686.c
114
const struct iio_chan_spec *chan,
drivers/iio/dac/ad5686.c
131
ad5686_pd_field_set(chan, &st->pwr_down_mask, AD5686_PD_MSK_PWR_DOWN);
drivers/iio/dac/ad5686.c
133
ad5686_pd_field_set(chan, &st->pwr_down_mask, AD5686_PD_MSK_PWR_UP);
drivers/iio/dac/ad5686.c
149
if (chan->channel > 0x7) {
drivers/iio/dac/ad5686.c
168
struct iio_chan_spec const *chan,
drivers/iio/dac/ad5686.c
179
ret = ad5686_read(st, chan->address);
drivers/iio/dac/ad5686.c
183
*val = (ret >> chan->scan_type.shift) &
drivers/iio/dac/ad5686.c
184
GENMASK(chan->scan_type.realbits - 1, 0);
drivers/iio/dac/ad5686.c
188
*val2 = chan->scan_type.realbits;
drivers/iio/dac/ad5686.c
195
struct iio_chan_spec const *chan,
drivers/iio/dac/ad5686.c
205
if (val >= (1 << chan->scan_type.realbits) || val < 0)
drivers/iio/dac/ad5686.c
210
chan->address, val << chan->scan_type.shift);
drivers/iio/dac/ad5686.c
237
#define AD5868_CHANNEL(chan, addr, bits, _shift) { \
drivers/iio/dac/ad5686.c
241
.channel = chan, \
drivers/iio/dac/ad5686.c
47
static inline unsigned int ad5686_pd_mask_shift(const struct iio_chan_spec *chan)
drivers/iio/dac/ad5686.c
49
if (chan->channel == chan->address)
drivers/iio/dac/ad5686.c
50
return chan->channel * 2;
drivers/iio/dac/ad5686.c
53
return __ffs(chan->address) * 2;
drivers/iio/dac/ad5686.c
56
static inline void ad5686_pd_field_set(const struct iio_chan_spec *chan,
drivers/iio/dac/ad5686.c
59
unsigned int shift = ad5686_pd_mask_shift(chan);
drivers/iio/dac/ad5686.c
64
static inline unsigned int ad5686_pd_field_get(const struct iio_chan_spec *chan,
drivers/iio/dac/ad5686.c
67
unsigned int shift = ad5686_pd_mask_shift(chan);
drivers/iio/dac/ad5686.c
73
const struct iio_chan_spec *chan)
drivers/iio/dac/ad5686.c
79
return ad5686_pd_field_get(chan, st->pwr_down_mode) - 1;
drivers/iio/dac/ad5686.c
83
const struct iio_chan_spec *chan,
drivers/iio/dac/ad5686.c
89
ad5686_pd_field_set(chan, &st->pwr_down_mode, mode + 1);
drivers/iio/dac/ad5686.h
24
#define AD5686_ADDR_DAC(chan) (0x1 << (chan))
drivers/iio/dac/ad5706r.c
122
struct iio_chan_spec const *chan,
drivers/iio/dac/ad5706r.c
131
reg = AD5706R_REG_DAC_DATA_READBACK_CH(chan->channel);
drivers/iio/dac/ad5706r.c
148
struct iio_chan_spec const *chan,
drivers/iio/dac/ad5706r.c
159
reg = AD5706R_REG_DAC_INPUT_A_CH(chan->channel);
drivers/iio/dac/ad5755.c
25
#define AD5755_WRITE_REG_DATA(chan) (chan)
drivers/iio/dac/ad5755.c
26
#define AD5755_WRITE_REG_GAIN(chan) (0x08 | (chan))
drivers/iio/dac/ad5755.c
27
#define AD5755_WRITE_REG_OFFSET(chan) (0x10 | (chan))
drivers/iio/dac/ad5755.c
28
#define AD5755_WRITE_REG_CTRL(chan) (0x1c | (chan))
drivers/iio/dac/ad5755.c
30
#define AD5755_READ_REG_DATA(chan) (chan)
drivers/iio/dac/ad5755.c
31
#define AD5755_READ_REG_CTRL(chan) (0x4 | (chan))
drivers/iio/dac/ad5755.c
32
#define AD5755_READ_REG_GAIN(chan) (0x8 | (chan))
drivers/iio/dac/ad5755.c
33
#define AD5755_READ_REG_OFFSET(chan) (0xc | (chan))
drivers/iio/dac/ad5755.c
34
#define AD5755_READ_REG_CLEAR(chan) (0x10 | (chan))
drivers/iio/dac/ad5755.c
35
#define AD5755_READ_REG_SLEW(chan) (0x14 | (chan))
drivers/iio/dac/ad5755.c
382
struct iio_chan_spec const *chan, int *min, int *max)
drivers/iio/dac/ad5755.c
384
enum ad5755_mode mode = st->ctrl[chan->channel] & 7;
drivers/iio/dac/ad5755.c
390
struct iio_chan_spec const *chan)
drivers/iio/dac/ad5755.c
394
ad5755_get_min_max(st, chan, &min, &max);
drivers/iio/dac/ad5755.c
395
return (min * (1 << chan->scan_type.realbits)) / (max - min);
drivers/iio/dac/ad5755.c
399
struct iio_chan_spec const *chan, long info, bool write,
drivers/iio/dac/ad5755.c
405
*reg = AD5755_WRITE_REG_DATA(chan->address);
drivers/iio/dac/ad5755.c
407
*reg = AD5755_READ_REG_DATA(chan->address);
drivers/iio/dac/ad5755.c
408
*shift = chan->scan_type.shift;
drivers/iio/dac/ad5755.c
413
*reg = AD5755_WRITE_REG_OFFSET(chan->address);
drivers/iio/dac/ad5755.c
415
*reg = AD5755_READ_REG_OFFSET(chan->address);
drivers/iio/dac/ad5755.c
421
*reg = AD5755_WRITE_REG_GAIN(chan->address);
drivers/iio/dac/ad5755.c
423
*reg = AD5755_READ_REG_GAIN(chan->address);
drivers/iio/dac/ad5755.c
435
const struct iio_chan_spec *chan, int *val, int *val2, long info)
drivers/iio/dac/ad5755.c
444
ad5755_get_min_max(st, chan, &min, &max);
drivers/iio/dac/ad5755.c
446
*val2 = chan->scan_type.realbits;
drivers/iio/dac/ad5755.c
449
*val = ad5755_get_offset(st, chan);
drivers/iio/dac/ad5755.c
452
ret = ad5755_chan_reg_info(st, chan, info, false,
drivers/iio/dac/ad5755.c
470
const struct iio_chan_spec *chan, int val, int val2, long info)
drivers/iio/dac/ad5755.c
476
ret = ad5755_chan_reg_info(st, chan, info, true,
drivers/iio/dac/ad5755.c
491
const struct iio_chan_spec *chan, char *buf)
drivers/iio/dac/ad5755.c
496
(bool)(st->pwr_down & (1 << chan->channel)));
drivers/iio/dac/ad5755.c
500
struct iio_chan_spec const *chan, const char *buf, size_t len)
drivers/iio/dac/ad5755.c
509
ret = ad5755_set_channel_pwr_down(indio_dev, chan->channel, pwr_down);
drivers/iio/dac/ad5758.c
518
struct iio_chan_spec const *chan,
drivers/iio/dac/ad5758.c
551
struct iio_chan_spec const *chan,
drivers/iio/dac/ad5758.c
570
const struct iio_chan_spec *chan,
drivers/iio/dac/ad5758.c
580
struct iio_chan_spec const *chan,
drivers/iio/dac/ad5761.c
196
struct iio_chan_spec const *chan,
drivers/iio/dac/ad5761.c
210
*val = aux >> chan->scan_type.shift;
drivers/iio/dac/ad5761.c
216
*val2 = chan->scan_type.realbits;
drivers/iio/dac/ad5761.c
220
*val = -(1 << chan->scan_type.realbits);
drivers/iio/dac/ad5761.c
230
struct iio_chan_spec const *chan,
drivers/iio/dac/ad5761.c
240
if (val2 || (val << chan->scan_type.shift) > 0xffff || val < 0)
drivers/iio/dac/ad5761.c
243
aux = val << chan->scan_type.shift;
drivers/iio/dac/ad5764.c
168
static int ad5764_chan_info_to_reg(struct iio_chan_spec const *chan, long info)
drivers/iio/dac/ad5764.c
172
return AD5764_REG_DATA(chan->address);
drivers/iio/dac/ad5764.c
174
return AD5764_REG_OFFSET(chan->address);
drivers/iio/dac/ad5764.c
176
return AD5764_REG_FINE_GAIN(chan->address);
drivers/iio/dac/ad5764.c
185
struct iio_chan_spec const *chan, int val, int val2, long info)
drivers/iio/dac/ad5764.c
187
const int max_val = (1 << chan->scan_type.realbits);
drivers/iio/dac/ad5764.c
194
val <<= chan->scan_type.shift;
drivers/iio/dac/ad5764.c
208
reg = ad5764_chan_info_to_reg(chan, info);
drivers/iio/dac/ad5764.c
222
struct iio_chan_spec const *chan, int *val, int *val2, long info)
drivers/iio/dac/ad5764.c
231
reg = AD5764_REG_DATA(chan->address);
drivers/iio/dac/ad5764.c
235
*val >>= chan->scan_type.shift;
drivers/iio/dac/ad5764.c
238
reg = AD5764_REG_OFFSET(chan->address);
drivers/iio/dac/ad5764.c
245
reg = AD5764_REG_FINE_GAIN(chan->address);
drivers/iio/dac/ad5764.c
253
vref = ad5764_get_channel_vref(st, chan->channel);
drivers/iio/dac/ad5764.c
258
*val2 = chan->scan_type.realbits;
drivers/iio/dac/ad5764.c
261
*val = -(1 << chan->scan_type.realbits) / 2;
drivers/iio/dac/ad5766.c
229
struct iio_chan_spec const *chan,
drivers/iio/dac/ad5766.c
239
ret = ad5766_read(indio_dev, chan->address, val);
drivers/iio/dac/ad5766.c
260
struct iio_chan_spec const *chan,
drivers/iio/dac/ad5766.c
268
const int max_val = GENMASK(chan->scan_type.realbits - 1, 0);
drivers/iio/dac/ad5766.c
272
val <<= chan->scan_type.shift;
drivers/iio/dac/ad5766.c
273
return ad5766_write(indio_dev, chan->address, val);
drivers/iio/dac/ad5766.c
286
const struct iio_chan_spec *chan)
drivers/iio/dac/ad5766.c
291
source = st->dither_source & AD5766_DITHER_SOURCE_MASK(chan->channel);
drivers/iio/dac/ad5766.c
292
source = source >> (chan->channel * 2);
drivers/iio/dac/ad5766.c
299
const struct iio_chan_spec *chan,
drivers/iio/dac/ad5766.c
306
st->dither_source &= ~AD5766_DITHER_SOURCE_MASK(chan->channel);
drivers/iio/dac/ad5766.c
307
st->dither_source |= AD5766_DITHER_SOURCE(chan->channel, source);
drivers/iio/dac/ad5766.c
320
const struct iio_chan_spec *chan)
drivers/iio/dac/ad5766.c
325
scale = st->dither_scale & AD5766_DITHER_SCALE_MASK(chan->channel);
drivers/iio/dac/ad5766.c
327
return (scale >> (chan->channel * 2));
drivers/iio/dac/ad5766.c
331
const struct iio_chan_spec *chan,
drivers/iio/dac/ad5766.c
338
st->dither_scale &= ~AD5766_DITHER_SCALE_MASK(chan->channel);
drivers/iio/dac/ad5766.c
339
st->dither_scale |= AD5766_DITHER_SCALE(chan->channel, scale);
drivers/iio/dac/ad5766.c
359
const struct iio_chan_spec *chan,
drivers/iio/dac/ad5766.c
367
!(st->dither_enable & BIT(chan->channel)));
drivers/iio/dac/ad5766.c
371
!!(st->dither_invert & BIT(chan->channel)));
drivers/iio/dac/ad5766.c
375
ad5766_get_dither_source(indio_dev, chan));
drivers/iio/dac/ad5766.c
383
const struct iio_chan_spec *chan,
drivers/iio/dac/ad5766.c
396
st->dither_enable &= ~AD5766_DITHER_ENABLE_MASK(chan->channel);
drivers/iio/dac/ad5766.c
397
st->dither_enable |= AD5766_DITHER_ENABLE(chan->channel,
drivers/iio/dac/ad5766.c
403
st->dither_invert &= ~AD5766_DITHER_INVERT_MASK(chan->channel);
drivers/iio/dac/ad5766.c
404
st->dither_invert |= AD5766_DITHER_INVERT(chan->channel,
drivers/iio/dac/ad5766.c
410
ret = ad5766_set_dither_source(indio_dev, chan, readin);
drivers/iio/dac/ad5770r.c
270
const struct iio_chan_spec *chan, int *freq)
drivers/iio/dac/ad5770r.c
277
AD5770R_FILTER_RESISTOR(chan->channel), &regval);
drivers/iio/dac/ad5770r.c
293
const struct iio_chan_spec *chan,
drivers/iio/dac/ad5770r.c
307
return regmap_write(st->regmap, AD5770R_FILTER_RESISTOR(chan->channel),
drivers/iio/dac/ad5770r.c
312
struct iio_chan_spec const *chan,
drivers/iio/dac/ad5770r.c
322
chan->address,
drivers/iio/dac/ad5770r.c
331
ret = ad5770r_get_range(st, chan->channel, &min, &max);
drivers/iio/dac/ad5770r.c
342
return ad5770r_get_filter_freq(indio_dev, chan, val);
drivers/iio/dac/ad5770r.c
344
ret = ad5770r_get_range(st, chan->channel, &min, &max);
drivers/iio/dac/ad5770r.c
355
struct iio_chan_spec const *chan,
drivers/iio/dac/ad5770r.c
364
return regmap_bulk_write(st->regmap, chan->address,
drivers/iio/dac/ad5770r.c
367
return ad5770r_set_filter_freq(indio_dev, chan, val);
drivers/iio/dac/ad5770r.c
374
struct iio_chan_spec const *chan,
drivers/iio/dac/ad5770r.c
430
const struct iio_chan_spec *chan,
drivers/iio/dac/ad5770r.c
435
return sysfs_emit(buf, "%d\n", st->ch_pwr_down[chan->channel]);
drivers/iio/dac/ad5770r.c
440
const struct iio_chan_spec *chan,
drivers/iio/dac/ad5770r.c
455
regval = AD5770R_CFG_SHUTDOWN_B(readin, chan->channel);
drivers/iio/dac/ad5770r.c
456
if (chan->channel == 0 &&
drivers/iio/dac/ad5770r.c
459
mask = BIT(chan->channel) + BIT(7);
drivers/iio/dac/ad5770r.c
461
mask = BIT(chan->channel);
drivers/iio/dac/ad5770r.c
468
regval = AD5770R_CH_SET(readin, chan->channel);
drivers/iio/dac/ad5770r.c
470
BIT(chan->channel), regval);
drivers/iio/dac/ad5770r.c
474
st->ch_pwr_down[chan->channel] = !readin;
drivers/iio/dac/ad5791.c
163
const struct iio_chan_spec *chan)
drivers/iio/dac/ad5791.c
171
const struct iio_chan_spec *chan, unsigned int mode)
drivers/iio/dac/ad5791.c
188
uintptr_t private, const struct iio_chan_spec *chan, char *buf)
drivers/iio/dac/ad5791.c
196
uintptr_t private, const struct iio_chan_spec *chan, const char *buf,
drivers/iio/dac/ad5791.c
264
struct iio_chan_spec const *chan,
drivers/iio/dac/ad5791.c
275
ret = ad5791_spi_read(st, chan->address, val);
drivers/iio/dac/ad5791.c
279
*val >>= chan->scan_type.shift;
drivers/iio/dac/ad5791.c
283
*val2 = (1 << chan->scan_type.realbits) - 1;
drivers/iio/dac/ad5791.c
286
val64 = (((u64)st->vref_neg_mv) << chan->scan_type.realbits);
drivers/iio/dac/ad5791.c
360
struct iio_chan_spec const *chan,
drivers/iio/dac/ad5791.c
369
val &= GENMASK(chan->scan_type.realbits - 1, 0);
drivers/iio/dac/ad5791.c
370
val <<= chan->scan_type.shift;
drivers/iio/dac/ad5791.c
372
return ad5791_spi_write(st, chan->address, val);
drivers/iio/dac/ad5791.c
384
struct iio_chan_spec const *chan,
drivers/iio/dac/ad7293.c
476
struct iio_chan_spec const *chan,
drivers/iio/dac/ad7293.c
485
switch (chan->type) {
drivers/iio/dac/ad7293.c
487
if (chan->output)
drivers/iio/dac/ad7293.c
489
chan->channel, &data);
drivers/iio/dac/ad7293.c
492
chan->channel, &data);
drivers/iio/dac/ad7293.c
497
chan->channel, &data);
drivers/iio/dac/ad7293.c
502
chan->channel, &data);
drivers/iio/dac/ad7293.c
516
switch (chan->type) {
drivers/iio/dac/ad7293.c
518
if (chan->output) {
drivers/iio/dac/ad7293.c
520
chan->channel + AD7293_VOUT_MIN_OFFSET_CH,
drivers/iio/dac/ad7293.c
525
ret = ad7293_get_offset(st, chan->channel, &data);
drivers/iio/dac/ad7293.c
531
chan->channel + AD7293_ISENSE_MIN_OFFSET_CH,
drivers/iio/dac/ad7293.c
537
chan->channel + AD7293_TSENSE_MIN_OFFSET_CH,
drivers/iio/dac/ad7293.c
551
switch (chan->type) {
drivers/iio/dac/ad7293.c
553
ret = ad7293_adc_get_scale(st, chan->channel, &data);
drivers/iio/dac/ad7293.c
561
ret = ad7293_isense_get_scale(st, chan->channel, &data);
drivers/iio/dac/ad7293.c
582
struct iio_chan_spec const *chan,
drivers/iio/dac/ad7293.c
589
switch (chan->type) {
drivers/iio/dac/ad7293.c
591
if (!chan->output)
drivers/iio/dac/ad7293.c
594
return ad7293_dac_write_raw(st, chan->channel, val);
drivers/iio/dac/ad7293.c
599
switch (chan->type) {
drivers/iio/dac/ad7293.c
601
if (chan->output)
drivers/iio/dac/ad7293.c
603
chan->channel +
drivers/iio/dac/ad7293.c
607
return ad7293_set_offset(st, chan->channel, val);
drivers/iio/dac/ad7293.c
610
chan->channel +
drivers/iio/dac/ad7293.c
615
chan->channel +
drivers/iio/dac/ad7293.c
622
switch (chan->type) {
drivers/iio/dac/ad7293.c
624
return ad7293_adc_set_scale(st, chan->channel, val);
drivers/iio/dac/ad7293.c
626
return ad7293_isense_set_scale(st, chan->channel, val);
drivers/iio/dac/ad7293.c
655
struct iio_chan_spec const *chan,
drivers/iio/dac/ad7293.c
669
switch (chan->type) {
drivers/iio/dac/ad7303.c
113
struct iio_chan_spec const *chan, int *val, int *val2, long info)
drivers/iio/dac/ad7303.c
121
*val = st->dac_cache[chan->channel];
drivers/iio/dac/ad7303.c
125
vref_uv = ad7303_get_vref(st, chan);
drivers/iio/dac/ad7303.c
130
*val2 = chan->scan_type.realbits;
drivers/iio/dac/ad7303.c
140
struct iio_chan_spec const *chan, int val, int val2, long mask)
drivers/iio/dac/ad7303.c
147
if (val >= (1 << chan->scan_type.realbits) || val < 0)
drivers/iio/dac/ad7303.c
151
ret = ad7303_write(st, chan->address, val);
drivers/iio/dac/ad7303.c
153
st->dac_cache[chan->channel] = val;
drivers/iio/dac/ad7303.c
178
#define AD7303_CHANNEL(chan) { \
drivers/iio/dac/ad7303.c
182
.channel = (chan), \
drivers/iio/dac/ad7303.c
185
.address = (chan), \
drivers/iio/dac/ad7303.c
52
static int ad7303_write(struct ad7303_state *st, unsigned int chan,
drivers/iio/dac/ad7303.c
56
(chan << AD7303_CFG_ADDR_OFFSET) |
drivers/iio/dac/ad7303.c
63
uintptr_t private, const struct iio_chan_spec *chan, char *buf)
drivers/iio/dac/ad7303.c
68
AD7303_CFG_POWER_DOWN(chan->channel)));
drivers/iio/dac/ad7303.c
72
uintptr_t private, const struct iio_chan_spec *chan, const char *buf,
drivers/iio/dac/ad7303.c
86
st->config |= AD7303_CFG_POWER_DOWN(chan->channel);
drivers/iio/dac/ad7303.c
88
st->config &= ~AD7303_CFG_POWER_DOWN(chan->channel);
drivers/iio/dac/ad7303.c
92
ad7303_write(st, chan->channel, st->dac_cache[chan->channel]);
drivers/iio/dac/ad7303.c
99
struct iio_chan_spec const *chan)
drivers/iio/dac/ad8460.c
176
const struct iio_chan_spec *chan, char *buf)
drivers/iio/dac/ad8460.c
190
const struct iio_chan_spec *chan,
drivers/iio/dac/ad8460.c
207
const struct iio_chan_spec *chan, char *buf)
drivers/iio/dac/ad8460.c
221
const struct iio_chan_spec *chan,
drivers/iio/dac/ad8460.c
241
const struct iio_chan_spec *chan, char *buf)
drivers/iio/dac/ad8460.c
255
const struct iio_chan_spec *chan,
drivers/iio/dac/ad8460.c
275
const struct iio_chan_spec *chan, char *buf)
drivers/iio/dac/ad8460.c
289
const struct iio_chan_spec *chan,
drivers/iio/dac/ad8460.c
343
const struct iio_chan_spec *chan)
drivers/iio/dac/ad8460.c
349
const struct iio_chan_spec *chan,
drivers/iio/dac/ad8460.c
422
struct iio_chan_spec const *chan, int val, int val2,
drivers/iio/dac/ad8460.c
430
switch (chan->type) {
drivers/iio/dac/ad8460.c
448
static int ad8460_read_raw(struct iio_dev *indio_dev, struct iio_chan_spec const *chan,
drivers/iio/dac/ad8460.c
456
switch (chan->type) {
drivers/iio/dac/ad8460.c
535
const struct iio_chan_spec *chan,
drivers/iio/dac/ad8460.c
549
fault = ad8460_select_fault_type(chan->type, dir);
drivers/iio/dac/ad8460.c
557
const struct iio_chan_spec *chan,
drivers/iio/dac/ad8460.c
571
fault = ad8460_select_fault_type(chan->type, dir);
drivers/iio/dac/ad8460.c
579
const struct iio_chan_spec *chan,
drivers/iio/dac/ad8460.c
589
fault = ad8460_select_fault_type(chan->type, dir);
drivers/iio/dac/ad8460.c
597
const struct iio_chan_spec *chan,
drivers/iio/dac/ad8460.c
608
fault = ad8460_select_fault_type(chan->type, dir);
drivers/iio/dac/ad8801.c
38
struct iio_chan_spec const *chan, int val, int val2, long mask)
drivers/iio/dac/ad8801.c
48
ret = ad8801_spi_write(state, chan->channel, val);
drivers/iio/dac/ad8801.c
50
state->dac_cache[chan->channel] = val;
drivers/iio/dac/ad8801.c
60
struct iio_chan_spec const *chan, int *val, int *val2, long info)
drivers/iio/dac/ad8801.c
66
*val = state->dac_cache[chan->channel];
drivers/iio/dac/ad8801.c
87
#define AD8801_CHANNEL(chan) { \
drivers/iio/dac/ad8801.c
91
.channel = chan, \
drivers/iio/dac/ad9739a.c
104
const struct iio_chan_spec *chan, u32 mode)
drivers/iio/dac/ad9739a.c
120
struct iio_chan_spec const *chan,
drivers/iio/dac/ad9739a.c
79
const struct iio_chan_spec *chan)
drivers/iio/dac/adi-axi-dac.c
182
static int __axi_dac_frequency_get(struct axi_dac_state *st, unsigned int chan,
drivers/iio/dac/adi-axi-dac.c
188
if (chan > AXI_DAC_CHAN_CNTRL_MAX)
drivers/iio/dac/adi-axi-dac.c
197
reg = AXI_DAC_CHAN_CNTRL_4_REG(chan);
drivers/iio/dac/adi-axi-dac.c
199
reg = AXI_DAC_CHAN_CNTRL_2_REG(chan);
drivers/iio/dac/adi-axi-dac.c
212
const struct iio_chan_spec *chan, char *buf,
drivers/iio/dac/adi-axi-dac.c
219
ret = __axi_dac_frequency_get(st, chan->channel, tone_2, &freq);
drivers/iio/dac/adi-axi-dac.c
228
const struct iio_chan_spec *chan, char *buf,
drivers/iio/dac/adi-axi-dac.c
235
if (chan->channel > AXI_DAC_CHAN_CNTRL_MAX)
drivers/iio/dac/adi-axi-dac.c
239
reg = AXI_DAC_CHAN_CNTRL_3_REG(chan->channel);
drivers/iio/dac/adi-axi-dac.c
241
reg = AXI_DAC_CHAN_CNTRL_1_REG(chan->channel);
drivers/iio/dac/adi-axi-dac.c
266
const struct iio_chan_spec *chan, char *buf,
drivers/iio/dac/adi-axi-dac.c
272
if (chan->channel > AXI_DAC_CHAN_CNTRL_MAX)
drivers/iio/dac/adi-axi-dac.c
276
reg = AXI_DAC_CHAN_CNTRL_4_REG(chan->channel);
drivers/iio/dac/adi-axi-dac.c
278
reg = AXI_DAC_CHAN_CNTRL_2_REG(chan->channel);
drivers/iio/dac/adi-axi-dac.c
294
static int __axi_dac_frequency_set(struct axi_dac_state *st, unsigned int chan,
drivers/iio/dac/adi-axi-dac.c
302
if (chan > AXI_DAC_CHAN_CNTRL_MAX)
drivers/iio/dac/adi-axi-dac.c
312
reg = AXI_DAC_CHAN_CNTRL_4_REG(chan);
drivers/iio/dac/adi-axi-dac.c
314
reg = AXI_DAC_CHAN_CNTRL_2_REG(chan);
drivers/iio/dac/adi-axi-dac.c
329
const struct iio_chan_spec *chan,
drivers/iio/dac/adi-axi-dac.c
340
ret = __axi_dac_frequency_set(st, chan->channel, st->dac_clk, freq,
drivers/iio/dac/adi-axi-dac.c
349
const struct iio_chan_spec *chan,
drivers/iio/dac/adi-axi-dac.c
356
if (chan->channel > AXI_DAC_CHAN_CNTRL_MAX)
drivers/iio/dac/adi-axi-dac.c
376
reg = AXI_DAC_CHAN_CNTRL_3_REG(chan->channel);
drivers/iio/dac/adi-axi-dac.c
378
reg = AXI_DAC_CHAN_CNTRL_1_REG(chan->channel);
drivers/iio/dac/adi-axi-dac.c
395
const struct iio_chan_spec *chan,
drivers/iio/dac/adi-axi-dac.c
402
if (chan->channel > AXI_DAC_CHAN_CNTRL_MAX)
drivers/iio/dac/adi-axi-dac.c
416
reg = AXI_DAC_CHAN_CNTRL_4_REG(chan->channel);
drivers/iio/dac/adi-axi-dac.c
418
reg = AXI_DAC_CHAN_CNTRL_2_REG(chan->channel);
drivers/iio/dac/adi-axi-dac.c
436
const struct iio_chan_spec *chan,
drivers/iio/dac/adi-axi-dac.c
444
return axi_dac_frequency_set(st, chan, buf, len,
drivers/iio/dac/adi-axi-dac.c
448
return axi_dac_scale_set(st, chan, buf, len,
drivers/iio/dac/adi-axi-dac.c
452
return axi_dac_phase_set(st, chan, buf, len,
drivers/iio/dac/adi-axi-dac.c
460
const struct iio_chan_spec *chan, char *buf)
drivers/iio/dac/adi-axi-dac.c
467
return axi_dac_frequency_get(st, chan, buf,
drivers/iio/dac/adi-axi-dac.c
471
return axi_dac_scale_get(st, chan, buf,
drivers/iio/dac/adi-axi-dac.c
475
return axi_dac_phase_get(st, chan, buf,
drivers/iio/dac/adi-axi-dac.c
493
struct iio_chan_spec *chan)
drivers/iio/dac/adi-axi-dac.c
497
if (chan->type != IIO_ALTVOLTAGE)
drivers/iio/dac/adi-axi-dac.c
503
chan->ext_info = axi_dac_ext_info;
drivers/iio/dac/adi-axi-dac.c
508
static int axi_dac_data_source_set(struct iio_backend *back, unsigned int chan,
drivers/iio/dac/adi-axi-dac.c
513
if (chan > AXI_DAC_CHAN_CNTRL_MAX)
drivers/iio/dac/adi-axi-dac.c
519
AXI_DAC_CHAN_CNTRL_7_REG(chan),
drivers/iio/dac/adi-axi-dac.c
524
AXI_DAC_CHAN_CNTRL_7_REG(chan),
drivers/iio/dac/adi-axi-dac.c
529
AXI_DAC_CHAN_CNTRL_7_REG(chan),
drivers/iio/dac/adi-axi-dac.c
537
static int axi_dac_data_source_get(struct iio_backend *back, unsigned int chan,
drivers/iio/dac/adi-axi-dac.c
544
if (chan > AXI_DAC_CHAN_CNTRL_MAX)
drivers/iio/dac/adi-axi-dac.c
547
ret = regmap_read(st->regmap, AXI_DAC_CHAN_CNTRL_7_REG(chan), &val);
drivers/iio/dac/adi-axi-dac.c
566
static int axi_dac_set_sample_rate(struct iio_backend *back, unsigned int chan,
drivers/iio/dac/adi-axi-dac.c
573
if (chan > AXI_DAC_CHAN_CNTRL_MAX)
drivers/iio/dac/adi-axi-dac.c
595
ret = __axi_dac_frequency_get(st, chan, tone, &freq);
drivers/iio/dac/adi-axi-dac.c
599
ret = __axi_dac_frequency_set(st, chan, sample_rate, tone, freq);
drivers/iio/dac/cio-dac.c
22
#define CIO_DAC_CHAN(chan) { \
drivers/iio/dac/cio-dac.c
24
.channel = chan, \
drivers/iio/dac/cio-dac.c
67
struct iio_chan_spec const *chan, int *val, int *val2, long mask)
drivers/iio/dac/cio-dac.c
70
const unsigned int offset = chan->channel * CIO_DAC_CHANNEL_STRIDE;
drivers/iio/dac/cio-dac.c
87
struct iio_chan_spec const *chan, int val, int val2, long mask)
drivers/iio/dac/cio-dac.c
90
const unsigned int offset = chan->channel * CIO_DAC_CHANNEL_STRIDE;
drivers/iio/dac/dpot-dac.c
111
struct iio_chan_spec const *chan,
drivers/iio/dac/dpot-dac.c
52
struct iio_chan_spec const *chan,
drivers/iio/dac/dpot-dac.c
95
struct iio_chan_spec const *chan,
drivers/iio/dac/ds4424.c
182
struct iio_chan_spec const *chan,
drivers/iio/dac/ds4424.c
191
ret = regmap_read(data->regmap, DS4424_DAC_ADDR(chan->channel),
drivers/iio/dac/ds4424.c
196
chan->channel, ERR_PTR(ret));
drivers/iio/dac/ds4424.c
211
*val2 = data->rfs_ohms[chan->channel] *
drivers/iio/dac/ds4424.c
221
struct iio_chan_spec const *chan,
drivers/iio/dac/ds4424.c
244
return regmap_write(data->regmap, DS4424_DAC_ADDR(chan->channel),
drivers/iio/dac/ds4424.c
32
#define DS4424_DAC_ADDR(chan) ((chan) + 0xf8)
drivers/iio/dac/ds4424.c
34
#define DS4424_CHANNEL(chan) { \
drivers/iio/dac/ds4424.c
38
.channel = chan, \
drivers/iio/dac/ds4424.c
42
#define DS4424_CHANNEL_WITH_SCALE(chan) { \
drivers/iio/dac/ds4424.c
46
.channel = chan, \
drivers/iio/dac/lpc18xx_dac.c
48
struct iio_chan_spec const *chan,
drivers/iio/dac/lpc18xx_dac.c
73
struct iio_chan_spec const *chan,
drivers/iio/dac/ltc1660.c
104
#define LTC1660_CHAN(chan, bits) { \
drivers/iio/dac/ltc1660.c
108
.channel = chan, \
drivers/iio/dac/ltc1660.c
48
struct iio_chan_spec const *chan,
drivers/iio/dac/ltc1660.c
57
*val = priv->value[chan->channel];
drivers/iio/dac/ltc1660.c
69
*val2 = chan->scan_type.realbits;
drivers/iio/dac/ltc1660.c
77
struct iio_chan_spec const *chan,
drivers/iio/dac/ltc1660.c
90
if (val < 0 || val > GENMASK(chan->scan_type.realbits - 1, 0))
drivers/iio/dac/ltc1660.c
93
ret = regmap_write(priv->regmap, chan->channel,
drivers/iio/dac/ltc1660.c
94
(val << chan->scan_type.shift));
drivers/iio/dac/ltc1660.c
96
priv->value[chan->channel] = val;
drivers/iio/dac/ltc2632.c
103
chan->address, val,
drivers/iio/dac/ltc2632.c
104
chan->scan_type.shift);
drivers/iio/dac/ltc2632.c
112
const struct iio_chan_spec *chan,
drivers/iio/dac/ltc2632.c
118
!!(st->powerdown_cache_mask & (1 << chan->channel)));
drivers/iio/dac/ltc2632.c
123
const struct iio_chan_spec *chan,
drivers/iio/dac/ltc2632.c
136
st->powerdown_cache_mask |= (1 << chan->channel);
drivers/iio/dac/ltc2632.c
138
st->powerdown_cache_mask &= ~(1 << chan->channel);
drivers/iio/dac/ltc2632.c
142
chan->channel, 0, 0);
drivers/iio/dac/ltc2632.c
72
struct iio_chan_spec const *chan,
drivers/iio/dac/ltc2632.c
82
*val2 = chan->scan_type.realbits;
drivers/iio/dac/ltc2632.c
89
struct iio_chan_spec const *chan,
drivers/iio/dac/ltc2632.c
98
if (val >= (1 << chan->scan_type.realbits) || val < 0)
drivers/iio/dac/ltc2664.c
133
const struct ltc2664_chan *chan = &st->channels[c];
drivers/iio/dac/ltc2664.c
137
span = chan->span;
drivers/iio/dac/ltc2664.c
148
const struct ltc2664_chan *chan = &st->channels[c];
drivers/iio/dac/ltc2664.c
151
span = chan->span - 1;
drivers/iio/dac/ltc2664.c
165
const struct ltc2664_chan *chan = &st->channels[c];
drivers/iio/dac/ltc2664.c
168
span = chan->span;
drivers/iio/dac/ltc2664.c
178
static int ltc2664_dac_code_write(struct ltc2664_state *st, u32 chan, u32 input,
drivers/iio/dac/ltc2664.c
181
struct ltc2664_chan *c = &st->channels[chan];
drivers/iio/dac/ltc2664.c
188
input << chan);
drivers/iio/dac/ltc2664.c
196
if (st->toggle_sel & BIT(chan))
drivers/iio/dac/ltc2664.c
197
reg = LTC2664_CMD_WRITE_N(chan);
drivers/iio/dac/ltc2664.c
199
reg = LTC2664_CMD_WRITE_N_UPDATE_N(chan);
drivers/iio/dac/ltc2664.c
217
static void ltc2664_dac_code_read(struct ltc2664_state *st, u32 chan, u32 input,
drivers/iio/dac/ltc2664.c
221
*code = st->channels[chan].raw[input];
drivers/iio/dac/ltc2664.c
227
struct iio_chan_spec const *chan,
drivers/iio/dac/ltc2664.c
243
struct iio_chan_spec const *chan, int *val,
drivers/iio/dac/ltc2664.c
250
ltc2664_dac_code_read(st, chan->channel, LTC2664_INPUT_A, val);
drivers/iio/dac/ltc2664.c
254
*val = st->chip_info->offset_get(st, chan->channel);
drivers/iio/dac/ltc2664.c
258
*val = st->chip_info->scale_get(st, chan->channel);
drivers/iio/dac/ltc2664.c
268
struct iio_chan_spec const *chan, int val,
drivers/iio/dac/ltc2664.c
278
return ltc2664_dac_code_write(st, chan->channel,
drivers/iio/dac/ltc2664.c
287
const struct iio_chan_spec *chan,
drivers/iio/dac/ltc2664.c
296
val = st->channels[chan->channel].powerdown;
drivers/iio/dac/ltc2664.c
302
val = !!(st->toggle_sel & BIT(chan->channel));
drivers/iio/dac/ltc2664.c
316
const struct iio_chan_spec *chan,
drivers/iio/dac/ltc2664.c
331
en ? LTC2664_CMD_POWER_DOWN_N(chan->channel) :
drivers/iio/dac/ltc2664.c
332
LTC2664_CMD_UPDATE_N(chan->channel), en);
drivers/iio/dac/ltc2664.c
336
st->channels[chan->channel].powerdown = en;
drivers/iio/dac/ltc2664.c
341
st->toggle_sel |= BIT(chan->channel);
drivers/iio/dac/ltc2664.c
343
st->toggle_sel &= ~BIT(chan->channel);
drivers/iio/dac/ltc2664.c
366
const struct iio_chan_spec *chan,
drivers/iio/dac/ltc2664.c
377
ltc2664_dac_code_read(st, chan->channel, private, &val);
drivers/iio/dac/ltc2664.c
384
const struct iio_chan_spec *chan,
drivers/iio/dac/ltc2664.c
398
ret = ltc2664_dac_code_write(st, chan->channel, private, val);
drivers/iio/dac/ltc2664.c
492
int chan)
drivers/iio/dac/ltc2664.c
506
ret = regmap_write(st->regmap, LTC2664_CMD_SPAN_N(chan), span);
drivers/iio/dac/ltc2664.c
546
struct ltc2664_chan *chan;
drivers/iio/dac/ltc2664.c
558
chan = &st->channels[reg];
drivers/iio/dac/ltc2664.c
561
chan->toggle_chan = true;
drivers/iio/dac/ltc2664.c
573
chan->raw[0] = ltc2664_mspan_lut[mspan][1];
drivers/iio/dac/ltc2664.c
574
chan->raw[1] = ltc2664_mspan_lut[mspan][1];
drivers/iio/dac/ltc2664.c
576
chan->span = ltc2664_mspan_lut[mspan][0];
drivers/iio/dac/ltc2664.c
585
chan->span = ret;
drivers/iio/dac/ltc2664.c
595
chan->span = ret;
drivers/iio/dac/ltc2688.c
157
const struct ltc2688_chan *chan = &st->channels[c];
drivers/iio/dac/ltc2688.c
165
if (chan->overrange)
drivers/iio/dac/ltc2688.c
197
static int ltc2688_dac_code_write(struct ltc2688_state *st, u32 chan, u32 input,
drivers/iio/dac/ltc2688.c
200
struct ltc2688_chan *c = &st->channels[chan];
drivers/iio/dac/ltc2688.c
213
ret = regmap_update_bits(st->regmap, LTC2688_CMD_A_B_SELECT, BIT(chan),
drivers/iio/dac/ltc2688.c
214
input << chan);
drivers/iio/dac/ltc2688.c
223
reg = LTC2688_CMD_CH_CODE_UPDATE(chan);
drivers/iio/dac/ltc2688.c
225
reg = LTC2688_CMD_CH_CODE(chan);
drivers/iio/dac/ltc2688.c
230
static int ltc2688_dac_code_read(struct ltc2688_state *st, u32 chan, u32 input,
drivers/iio/dac/ltc2688.c
233
struct ltc2688_chan *c = &st->channels[chan];
drivers/iio/dac/ltc2688.c
237
ret = regmap_update_bits(st->regmap, LTC2688_CMD_A_B_SELECT, BIT(chan),
drivers/iio/dac/ltc2688.c
238
input << chan);
drivers/iio/dac/ltc2688.c
242
ret = regmap_read(st->regmap, LTC2688_CMD_CH_CODE(chan), code);
drivers/iio/dac/ltc2688.c
255
struct iio_chan_spec const *chan,
drivers/iio/dac/ltc2688.c
270
struct iio_chan_spec const *chan, int *val,
drivers/iio/dac/ltc2688.c
278
ret = ltc2688_dac_code_read(st, chan->channel, LTC2688_INPUT_A,
drivers/iio/dac/ltc2688.c
285
ret = ltc2688_offset_get(st, chan->channel, val);
drivers/iio/dac/ltc2688.c
291
ret = ltc2688_scale_get(st, chan->channel, val);
drivers/iio/dac/ltc2688.c
299
LTC2688_CMD_CH_OFFSET(chan->channel), val);
drivers/iio/dac/ltc2688.c
307
LTC2688_CMD_CH_GAIN(chan->channel), val);
drivers/iio/dac/ltc2688.c
318
struct iio_chan_spec const *chan, int val,
drivers/iio/dac/ltc2688.c
328
return ltc2688_dac_code_write(st, chan->channel,
drivers/iio/dac/ltc2688.c
335
LTC2688_CMD_CH_OFFSET(chan->channel),
drivers/iio/dac/ltc2688.c
339
LTC2688_CMD_CH_GAIN(chan->channel), val);
drivers/iio/dac/ltc2688.c
347
const struct iio_chan_spec *chan,
drivers/iio/dac/ltc2688.c
351
struct ltc2688_chan *c = &st->channels[chan->channel];
drivers/iio/dac/ltc2688.c
361
BIT(chan->channel), en << chan->channel);
drivers/iio/dac/ltc2688.c
372
const struct iio_chan_spec *chan,
drivers/iio/dac/ltc2688.c
383
return sysfs_emit(buf, "%u\n", !!(val & BIT(chan->channel)));
drivers/iio/dac/ltc2688.c
388
const struct iio_chan_spec *chan,
drivers/iio/dac/ltc2688.c
399
ret = regmap_update_bits(st->regmap, private, BIT(chan->channel),
drivers/iio/dac/ltc2688.c
400
en << chan->channel);
drivers/iio/dac/ltc2688.c
408
const struct ltc2688_chan *chan,
drivers/iio/dac/ltc2688.c
414
for (f = 0; f < ARRAY_SIZE(chan->dither_frequency); f++)
drivers/iio/dac/ltc2688.c
415
sz += sysfs_emit_at(buf, sz, "%ld ", chan->dither_frequency[f]);
drivers/iio/dac/ltc2688.c
424
const struct iio_chan_spec *chan,
drivers/iio/dac/ltc2688.c
428
const struct ltc2688_chan *c = &st->channels[chan->channel];
drivers/iio/dac/ltc2688.c
435
ret = regmap_read(st->regmap, LTC2688_CMD_CH_SETTING(chan->channel),
drivers/iio/dac/ltc2688.c
449
const struct iio_chan_spec *chan,
drivers/iio/dac/ltc2688.c
453
const struct ltc2688_chan *c = &st->channels[chan->channel];
drivers/iio/dac/ltc2688.c
474
LTC2688_CMD_CH_SETTING(chan->channel),
drivers/iio/dac/ltc2688.c
485
const struct iio_chan_spec *chan,
drivers/iio/dac/ltc2688.c
500
ret = ltc2688_dac_code_read(st, chan->channel, private, &val);
drivers/iio/dac/ltc2688.c
509
const struct iio_chan_spec *chan,
drivers/iio/dac/ltc2688.c
523
ret = ltc2688_dac_code_write(st, chan->channel, private, val);
drivers/iio/dac/ltc2688.c
531
const struct iio_chan_spec *chan)
drivers/iio/dac/ltc2688.c
536
ret = regmap_read(st->regmap, LTC2688_CMD_CH_SETTING(chan->channel),
drivers/iio/dac/ltc2688.c
545
const struct iio_chan_spec *chan,
drivers/iio/dac/ltc2688.c
551
LTC2688_CMD_CH_SETTING(chan->channel),
drivers/iio/dac/ltc2688.c
695
struct ltc2688_chan *chan,
drivers/iio/dac/ltc2688.c
715
if (chan->toggle_chan)
drivers/iio/dac/ltc2688.c
720
for (f = 0; f < ARRAY_SIZE(chan->dither_frequency); f++)
drivers/iio/dac/ltc2688.c
721
chan->dither_frequency[f] = DIV_ROUND_CLOSEST(rate, ltc2688_period[f]);
drivers/iio/dac/ltc2688.c
746
struct ltc2688_chan *chan;
drivers/iio/dac/ltc2688.c
759
chan = &st->channels[reg];
drivers/iio/dac/ltc2688.c
761
chan->toggle_chan = true;
drivers/iio/dac/ltc2688.c
794
ret = ltc2688_tgp_clk_setup(st, chan, child, clk_input);
drivers/iio/dac/ltc2688.c
811
if (!chan->toggle_chan) {
drivers/iio/dac/ltc2688.c
821
chan->overrange = true;
drivers/iio/dac/m62332.c
109
struct iio_chan_spec const *chan, int val, int val2,
drivers/iio/dac/m62332.c
117
return m62332_set_value(indio_dev, val, chan->channel);
drivers/iio/dac/m62332.c
163
#define M62332_CHANNEL(chan) { \
drivers/iio/dac/m62332.c
167
.channel = (chan), \
drivers/iio/dac/m62332.c
168
.datasheet_name = "CH" #chan, \
drivers/iio/dac/m62332.c
74
struct iio_chan_spec const *chan,
drivers/iio/dac/m62332.c
94
*val = data->raw[chan->channel];
drivers/iio/dac/max22007.c
233
struct iio_chan_spec const *chan,
drivers/iio/dac/max22007.c
241
ret = max22007_read_channel_data(st, chan->channel, val);
drivers/iio/dac/max22007.c
246
if (chan->type == IIO_VOLTAGE)
drivers/iio/dac/max22007.c
258
struct iio_chan_spec const *chan,
drivers/iio/dac/max22007.c
265
return max22007_write_channel_data(st, chan->channel, val);
drivers/iio/dac/max22007.c
278
const struct iio_chan_spec *chan,
drivers/iio/dac/max22007.c
290
powerdown = !(reg_val & MAX22007_CH_PWRON_CH_MASK(chan->channel));
drivers/iio/dac/max22007.c
297
const struct iio_chan_spec *chan,
drivers/iio/dac/max22007.c
309
MAX22007_CH_PWRON_CH_MASK(chan->channel),
drivers/iio/dac/max22007.c
310
MAX22007_CH_PWR_VAL(chan->channel, powerdown ? 0 : 1));
drivers/iio/dac/max517.c
122
#define MAX517_CHANNEL(chan) { \
drivers/iio/dac/max517.c
126
.channel = (chan), \
drivers/iio/dac/max517.c
148
int chan;
drivers/iio/dac/max517.c
179
for (chan = 0; chan < indio_dev->num_channels; chan++) {
drivers/iio/dac/max517.c
181
data->vref_mv[chan] = 5000; /* mV */
drivers/iio/dac/max517.c
183
data->vref_mv[chan] = platform_data->vref_mv[chan];
drivers/iio/dac/max517.c
65
struct iio_chan_spec const *chan,
drivers/iio/dac/max517.c
75
*val = data->vref_mv[chan->channel];
drivers/iio/dac/max517.c
85
struct iio_chan_spec const *chan, int val, int val2, long mask)
drivers/iio/dac/max517.c
91
ret = max517_set_value(indio_dev, val, chan->channel);
drivers/iio/dac/max5522.c
108
rval = regmap_write(state->regmap, max5522_info_to_reg(chan),
drivers/iio/dac/max5522.c
109
val << chan->scan_type.shift);
drivers/iio/dac/max5522.c
113
state->dac_cache[chan->channel] = val;
drivers/iio/dac/max5522.c
40
#define MAX5522_CHANNEL(chan) { \
drivers/iio/dac/max5522.c
44
.channel = chan, \
drivers/iio/dac/max5522.c
72
static inline int max5522_info_to_reg(struct iio_chan_spec const *chan)
drivers/iio/dac/max5522.c
74
return MAX5522_REG_DATA(chan->channel);
drivers/iio/dac/max5522.c
78
struct iio_chan_spec const *chan,
drivers/iio/dac/max5522.c
85
*val = state->dac_cache[chan->channel];
drivers/iio/dac/max5522.c
99
struct iio_chan_spec const *chan,
drivers/iio/dac/max5821.c
114
const struct iio_chan_spec *chan,
drivers/iio/dac/max5821.c
125
data->powerdown[chan->channel] = powerdown;
drivers/iio/dac/max5821.c
127
ret = max5821_sync_powerdown_mode(data, chan);
drivers/iio/dac/max5821.c
146
#define MAX5821_CHANNEL(chan) { \
drivers/iio/dac/max5821.c
150
.channel = (chan), \
drivers/iio/dac/max5821.c
240
struct iio_chan_spec const *chan,
drivers/iio/dac/max5821.c
247
return max5821_get_value(indio_dev, val, chan->channel);
drivers/iio/dac/max5821.c
258
struct iio_chan_spec const *chan,
drivers/iio/dac/max5821.c
266
return max5821_set_value(indio_dev, val, chan->channel);
drivers/iio/dac/max5821.c
50
const struct iio_chan_spec *chan)
drivers/iio/dac/max5821.c
54
return st->powerdown_mode[chan->channel];
drivers/iio/dac/max5821.c
58
const struct iio_chan_spec *chan,
drivers/iio/dac/max5821.c
63
st->powerdown_mode[chan->channel] = mode;
drivers/iio/dac/max5821.c
77
const struct iio_chan_spec *chan,
drivers/iio/dac/max5821.c
82
return sysfs_emit(buf, "%d\n", st->powerdown[chan->channel]);
drivers/iio/dac/max5821.c
86
const struct iio_chan_spec *chan)
drivers/iio/dac/max5821.c
93
if (chan->channel == 0)
drivers/iio/dac/max5821.c
98
if (data->powerdown[chan->channel])
drivers/iio/dac/max5821.c
99
outbuf[1] |= data->powerdown_mode[chan->channel] + 1;
drivers/iio/dac/mcp4725.c
163
const struct iio_chan_spec *chan)
drivers/iio/dac/mcp4725.c
171
const struct iio_chan_spec *chan, unsigned mode)
drivers/iio/dac/mcp4725.c
181
uintptr_t private, const struct iio_chan_spec *chan, char *buf)
drivers/iio/dac/mcp4725.c
189
uintptr_t private, const struct iio_chan_spec *chan,
drivers/iio/dac/mcp4725.c
323
struct iio_chan_spec const *chan,
drivers/iio/dac/mcp4725.c
350
struct iio_chan_spec const *chan,
drivers/iio/dac/mcp4728.c
219
const struct iio_chan_spec *chan)
drivers/iio/dac/mcp4728.c
223
return data->chdata[chan->channel].pd_mode;
drivers/iio/dac/mcp4728.c
227
const struct iio_chan_spec *chan,
drivers/iio/dac/mcp4728.c
232
data->chdata[chan->channel].pd_mode = mode;
drivers/iio/dac/mcp4728.c
239
const struct iio_chan_spec *chan,
drivers/iio/dac/mcp4728.c
249
const struct iio_chan_spec *chan,
drivers/iio/dac/mcp4728.c
362
struct iio_chan_spec const *chan, int *val,
drivers/iio/dac/mcp4728.c
369
*val = data->chdata[chan->channel].dac_value;
drivers/iio/dac/mcp4728.c
372
mcp4728_get_scale(chan->channel, data, val, val2);
drivers/iio/dac/mcp4728.c
379
struct iio_chan_spec const *chan, int val,
drivers/iio/dac/mcp4728.c
389
data->chdata[chan->channel].dac_value = val;
drivers/iio/dac/mcp4728.c
390
return mcp4728_program_channel_cfg(chan->channel, indio_dev);
drivers/iio/dac/mcp4728.c
392
ret = mcp4728_set_scale(chan->channel, data, val, val2);
drivers/iio/dac/mcp4728.c
396
return mcp4728_program_channel_cfg(chan->channel, indio_dev);
drivers/iio/dac/mcp4728.c
426
struct iio_chan_spec const *chan,
drivers/iio/dac/mcp4728.c
436
switch (chan->type) {
drivers/iio/dac/mcp4728.c
91
#define MCP4728_CHAN(chan) { \
drivers/iio/dac/mcp4728.c
95
.channel = chan, \
drivers/iio/dac/mcp47feb02.c
611
const struct iio_chan_spec *chan)
drivers/iio/dac/mcp47feb02.c
615
return data->chdata[chan->address].powerdown_mode;
drivers/iio/dac/mcp4821.c
137
struct iio_chan_spec const *chan, int *val,
drivers/iio/dac/mcp4821.c
144
*val = state->dac_value[chan->channel];
drivers/iio/dac/mcp4821.c
149
*val2 = chan->scan_type.realbits;
drivers/iio/dac/mcp4821.c
168
struct iio_chan_spec const *chan, int val,
drivers/iio/dac/mcp4821.c
183
if (val < 0 || val >= BIT(chan->scan_type.realbits))
drivers/iio/dac/mcp4821.c
186
write_val = MCP4821_ACTIVE_MODE | val << chan->scan_type.shift;
drivers/iio/dac/mcp4821.c
187
if (chan->channel)
drivers/iio/dac/mcp4821.c
201
state->dac_value[chan->channel] = val;
drivers/iio/dac/mcp4821.c
205
mcp4821_calc_scale(MCP4821_VREF_MV, chan->scan_type.realbits, &v, &v2);
drivers/iio/dac/mcp4821.c
212
chan->scan_type.realbits, &v, &v2);
drivers/iio/dac/mcp4821.c
233
struct iio_chan_spec const *chan,
drivers/iio/dac/mcp4922.c
101
state->value[chan->channel] = val;
drivers/iio/dac/mcp4922.c
36
#define MCP4922_CHAN(chan, bits) { \
drivers/iio/dac/mcp4922.c
40
.channel = chan, \
drivers/iio/dac/mcp4922.c
61
struct iio_chan_spec const *chan,
drivers/iio/dac/mcp4922.c
70
*val = state->value[chan->channel];
drivers/iio/dac/mcp4922.c
74
*val2 = chan->scan_type.realbits;
drivers/iio/dac/mcp4922.c
82
struct iio_chan_spec const *chan,
drivers/iio/dac/mcp4922.c
95
if (val < 0 || val > GENMASK(chan->scan_type.realbits - 1, 0))
drivers/iio/dac/mcp4922.c
97
val <<= chan->scan_type.shift;
drivers/iio/dac/mcp4922.c
99
ret = mcp4922_spi_write(state, chan->channel, val);
drivers/iio/dac/rohm-bd79703.c
56
struct iio_chan_spec const *chan, int *val,
drivers/iio/dac/rohm-bd79703.c
71
struct iio_chan_spec const *chan, int val,
drivers/iio/dac/rohm-bd79703.c
79
return regmap_write(data->regmap, chan->address, val);
drivers/iio/dac/stm32-dac.c
130
struct iio_chan_spec const *chan,
drivers/iio/dac/stm32-dac.c
137
return stm32_dac_get_value(dac, chan->channel, val);
drivers/iio/dac/stm32-dac.c
140
*val2 = chan->scan_type.realbits;
drivers/iio/dac/stm32-dac.c
148
struct iio_chan_spec const *chan,
drivers/iio/dac/stm32-dac.c
155
return stm32_dac_set_value(dac, chan->channel, val);
drivers/iio/dac/stm32-dac.c
184
const struct iio_chan_spec *chan)
drivers/iio/dac/stm32-dac.c
190
const struct iio_chan_spec *chan,
drivers/iio/dac/stm32-dac.c
198
const struct iio_chan_spec *chan,
drivers/iio/dac/stm32-dac.c
201
int ret = stm32_dac_is_enabled(indio_dev, chan->channel);
drivers/iio/dac/stm32-dac.c
211
const struct iio_chan_spec *chan,
drivers/iio/dac/stm32-dac.c
221
ret = stm32_dac_set_enable_state(indio_dev, chan->channel, !powerdown);
drivers/iio/dac/stm32-dac.c
247
#define STM32_DAC_CHANNEL(chan, name) { \
drivers/iio/dac/stm32-dac.c
251
.channel = chan, \
drivers/iio/dac/ti-dac082s085.c
118
const struct iio_chan_spec *chan,
drivers/iio/dac/ti-dac082s085.c
128
const struct iio_chan_spec *chan,
drivers/iio/dac/ti-dac082s085.c
166
#define TI_DAC_CHANNEL(chan) { \
drivers/iio/dac/ti-dac082s085.c
168
.channel = (chan), \
drivers/iio/dac/ti-dac082s085.c
169
.address = (chan), \
drivers/iio/dac/ti-dac082s085.c
172
.datasheet_name = (const char[]){ 'A' + (chan), 0 }, \
drivers/iio/dac/ti-dac082s085.c
186
struct iio_chan_spec const *chan,
drivers/iio/dac/ti-dac082s085.c
194
*val = ti_dac->val[chan->channel];
drivers/iio/dac/ti-dac082s085.c
216
struct iio_chan_spec const *chan,
drivers/iio/dac/ti-dac082s085.c
224
if (ti_dac->val[chan->channel] == val)
drivers/iio/dac/ti-dac082s085.c
234
ret = ti_dac_cmd(ti_dac, WRITE_AND_UPDATE(chan->channel), val);
drivers/iio/dac/ti-dac082s085.c
236
ti_dac->val[chan->channel] = val;
drivers/iio/dac/ti-dac082s085.c
248
struct iio_chan_spec const *chan, long mask)
drivers/iio/dac/ti-dac082s085.c
60
#define WRITE_NOT_UPDATE(chan) (0x00 | (chan) << 6)
drivers/iio/dac/ti-dac082s085.c
61
#define WRITE_AND_UPDATE(chan) (0x10 | (chan) << 6)
drivers/iio/dac/ti-dac082s085.c
79
const struct iio_chan_spec *chan)
drivers/iio/dac/ti-dac082s085.c
87
const struct iio_chan_spec *chan,
drivers/iio/dac/ti-dac5571.c
124
const struct iio_chan_spec *chan)
drivers/iio/dac/ti-dac5571.c
128
return data->powerdown_mode[chan->channel];
drivers/iio/dac/ti-dac5571.c
132
const struct iio_chan_spec *chan,
drivers/iio/dac/ti-dac5571.c
138
if (data->powerdown_mode[chan->channel] == mode)
drivers/iio/dac/ti-dac5571.c
142
if (data->powerdown[chan->channel]) {
drivers/iio/dac/ti-dac5571.c
143
ret = data->dac5571_pwrdwn(data, chan->channel,
drivers/iio/dac/ti-dac5571.c
148
data->powerdown_mode[chan->channel] = mode;
drivers/iio/dac/ti-dac5571.c
165
const struct iio_chan_spec *chan,
drivers/iio/dac/ti-dac5571.c
170
return sysfs_emit(buf, "%d\n", data->powerdown[chan->channel]);
drivers/iio/dac/ti-dac5571.c
175
const struct iio_chan_spec *chan,
drivers/iio/dac/ti-dac5571.c
186
if (data->powerdown[chan->channel] == powerdown)
drivers/iio/dac/ti-dac5571.c
191
ret = data->dac5571_pwrdwn(data, chan->channel,
drivers/iio/dac/ti-dac5571.c
192
DAC5571_POWERDOWN(data->powerdown_mode[chan->channel]));
drivers/iio/dac/ti-dac5571.c
194
ret = data->dac5571_cmd(data, chan->channel,
drivers/iio/dac/ti-dac5571.c
195
data->val[chan->channel]);
drivers/iio/dac/ti-dac5571.c
199
data->powerdown[chan->channel] = powerdown;
drivers/iio/dac/ti-dac5571.c
220
#define dac5571_CHANNEL(chan, name) { \
drivers/iio/dac/ti-dac5571.c
222
.channel = (chan), \
drivers/iio/dac/ti-dac5571.c
223
.address = (chan), \
drivers/iio/dac/ti-dac5571.c
240
struct iio_chan_spec const *chan,
drivers/iio/dac/ti-dac5571.c
248
*val = data->val[chan->channel];
drivers/iio/dac/ti-dac5571.c
266
struct iio_chan_spec const *chan,
drivers/iio/dac/ti-dac5571.c
274
if (data->val[chan->channel] == val)
drivers/iio/dac/ti-dac5571.c
280
if (data->powerdown[chan->channel])
drivers/iio/dac/ti-dac5571.c
284
ret = data->dac5571_cmd(data, chan->channel, val);
drivers/iio/dac/ti-dac5571.c
286
data->val[chan->channel] = val;
drivers/iio/dac/ti-dac5571.c
296
struct iio_chan_spec const *chan,
drivers/iio/dac/ti-dac7311.c
108
const struct iio_chan_spec *chan,
drivers/iio/dac/ti-dac7311.c
118
const struct iio_chan_spec *chan,
drivers/iio/dac/ti-dac7311.c
153
#define TI_DAC_CHANNEL(chan) { \
drivers/iio/dac/ti-dac7311.c
155
.channel = (chan), \
drivers/iio/dac/ti-dac7311.c
167
struct iio_chan_spec const *chan,
drivers/iio/dac/ti-dac7311.c
192
struct iio_chan_spec const *chan,
drivers/iio/dac/ti-dac7311.c
225
struct iio_chan_spec const *chan, long mask)
drivers/iio/dac/ti-dac7311.c
82
const struct iio_chan_spec *chan)
drivers/iio/dac/ti-dac7311.c
90
const struct iio_chan_spec *chan,
drivers/iio/dac/ti-dac7612.c
109
if (val == priv->cache[chan->channel])
drivers/iio/dac/ti-dac7612.c
113
ret = dac7612_cmd_single(priv, chan->channel, val);
drivers/iio/dac/ti-dac7612.c
60
#define dac7612_CHANNEL(chan, name) { \
drivers/iio/dac/ti-dac7612.c
62
.channel = (chan), \
drivers/iio/dac/ti-dac7612.c
76
const struct iio_chan_spec *chan,
drivers/iio/dac/ti-dac7612.c
84
*val = priv->cache[chan->channel];
drivers/iio/dac/ti-dac7612.c
97
const struct iio_chan_spec *chan,
drivers/iio/dac/vf610_dac.c
117
struct iio_chan_spec const *chan,
drivers/iio/dac/vf610_dac.c
143
struct iio_chan_spec const *chan,
drivers/iio/dac/vf610_dac.c
62
const struct iio_chan_spec *chan,
drivers/iio/dac/vf610_dac.c
82
const struct iio_chan_spec *chan)
drivers/iio/dummy/iio_simple_dummy.c
271
struct iio_chan_spec const *chan,
drivers/iio/dummy/iio_simple_dummy.c
277
switch (chan->type) {
drivers/iio/dummy/iio_simple_dummy.c
279
if (chan->output) {
drivers/iio/dummy/iio_simple_dummy.c
283
} else if (chan->differential) {
drivers/iio/dummy/iio_simple_dummy.c
284
if (chan->channel == 1)
drivers/iio/dummy/iio_simple_dummy.c
303
struct iio_chan_spec const *chan,
drivers/iio/dummy/iio_simple_dummy.c
309
switch (chan->type) {
drivers/iio/dummy/iio_simple_dummy.c
314
switch (chan->channel2) {
drivers/iio/dummy/iio_simple_dummy.c
339
struct iio_chan_spec const *chan,
drivers/iio/dummy/iio_simple_dummy.c
351
ret = __iio_dummy_read_raw(indio_dev, chan, val);
drivers/iio/dummy/iio_simple_dummy.c
357
ret = __iio_dummy_read_processed(indio_dev, chan, val);
drivers/iio/dummy/iio_simple_dummy.c
365
switch (chan->type) {
drivers/iio/dummy/iio_simple_dummy.c
367
switch (chan->differential) {
drivers/iio/dummy/iio_simple_dummy.c
402
switch (chan->type) {
drivers/iio/dummy/iio_simple_dummy.c
412
switch (chan->type) {
drivers/iio/dummy/iio_simple_dummy.c
439
struct iio_chan_spec const *chan,
drivers/iio/dummy/iio_simple_dummy.c
449
switch (chan->type) {
drivers/iio/dummy/iio_simple_dummy.c
451
if (chan->output == 0)
drivers/iio/dummy/iio_simple_dummy.c
463
switch (chan->type) {
drivers/iio/dummy/iio_simple_dummy.c
474
switch (chan->channel2) {
drivers/iio/dummy/iio_simple_dummy.c
506
switch (chan->type) {
drivers/iio/dummy/iio_simple_dummy.c
516
switch (chan->type) {
drivers/iio/dummy/iio_simple_dummy.h
55
const struct iio_chan_spec *chan,
drivers/iio/dummy/iio_simple_dummy.h
60
const struct iio_chan_spec *chan,
drivers/iio/dummy/iio_simple_dummy.h
66
const struct iio_chan_spec *chan,
drivers/iio/dummy/iio_simple_dummy.h
73
const struct iio_chan_spec *chan,
drivers/iio/dummy/iio_simple_dummy_events.c
119
const struct iio_chan_spec *chan,
drivers/iio/dummy/iio_simple_dummy_events.c
143
const struct iio_chan_spec *chan,
drivers/iio/dummy/iio_simple_dummy_events.c
31
const struct iio_chan_spec *chan,
drivers/iio/dummy/iio_simple_dummy_events.c
53
const struct iio_chan_spec *chan,
drivers/iio/dummy/iio_simple_dummy_events.c
64
switch (chan->type) {
drivers/iio/filter/admv8818.c
405
struct iio_chan_spec const *chan,
drivers/iio/filter/admv8818.c
418
struct iio_chan_spec const *chan,
drivers/iio/filter/admv8818.c
439
struct iio_chan_spec const *chan,
drivers/iio/filter/admv8818.c
514
const struct iio_chan_spec *chan)
drivers/iio/filter/admv8818.c
522
const struct iio_chan_spec *chan,
drivers/iio/frequency/ad9523.c
610
struct iio_chan_spec const *chan,
drivers/iio/frequency/ad9523.c
620
ret = ad9523_read(indio_dev, AD9523_CHANNEL_CLOCK_DIST(chan->channel));
drivers/iio/frequency/ad9523.c
631
*val = st->vco_out_freq[st->vco_out_map[chan->channel]] /
drivers/iio/frequency/ad9523.c
646
struct iio_chan_spec const *chan,
drivers/iio/frequency/ad9523.c
656
ret = ad9523_read(indio_dev, AD9523_CHANNEL_CLOCK_DIST(chan->channel));
drivers/iio/frequency/ad9523.c
674
ret = ad9523_set_clock_provider(indio_dev, chan->channel, val);
drivers/iio/frequency/ad9523.c
677
tmp = st->vco_out_freq[st->vco_out_map[chan->channel]] / val;
drivers/iio/frequency/ad9523.c
694
ret = ad9523_write(indio_dev, AD9523_CHANNEL_CLOCK_DIST(chan->channel),
drivers/iio/frequency/ad9523.c
741
struct ad9523_channel_spec *chan;
drivers/iio/frequency/ad9523.c
887
chan = &pdata->channels[i];
drivers/iio/frequency/ad9523.c
888
if (chan->channel_num < AD9523_NUM_CHAN) {
drivers/iio/frequency/ad9523.c
889
__set_bit(chan->channel_num, &active_mask);
drivers/iio/frequency/ad9523.c
891
AD9523_CHANNEL_CLOCK_DIST(chan->channel_num),
drivers/iio/frequency/ad9523.c
892
AD9523_CLK_DIST_DRIVER_MODE(chan->driver_mode) |
drivers/iio/frequency/ad9523.c
893
AD9523_CLK_DIST_DIV(chan->channel_divider) |
drivers/iio/frequency/ad9523.c
894
AD9523_CLK_DIST_DIV_PHASE(chan->divider_phase) |
drivers/iio/frequency/ad9523.c
895
(chan->sync_ignore_en ?
drivers/iio/frequency/ad9523.c
897
(chan->divider_output_invert_en ?
drivers/iio/frequency/ad9523.c
899
(chan->low_power_mode_en ?
drivers/iio/frequency/ad9523.c
901
(chan->output_dis ?
drivers/iio/frequency/ad9523.c
906
ret = ad9523_vco_out_map(indio_dev, chan->channel_num,
drivers/iio/frequency/ad9523.c
907
chan->use_alt_clock_src);
drivers/iio/frequency/ad9523.c
914
st->ad9523_channels[i].channel = chan->channel_num;
drivers/iio/frequency/ad9523.c
916
chan->extended_name;
drivers/iio/frequency/adf4350.c
263
const struct iio_chan_spec *chan,
drivers/iio/frequency/adf4350.c
323
const struct iio_chan_spec *chan,
drivers/iio/frequency/adf4371.c
338
const struct iio_chan_spec *chan,
drivers/iio/frequency/adf4371.c
348
val = adf4371_pll_fract_n_get_rate(st, chan->channel);
drivers/iio/frequency/adf4371.c
359
reg = adf4371_pwrdown_ch[chan->channel].reg;
drivers/iio/frequency/adf4371.c
360
bit = adf4371_pwrdown_ch[chan->channel].bit;
drivers/iio/frequency/adf4371.c
369
return sprintf(buf, "%s\n", adf4371_ch_names[chan->channel]);
drivers/iio/frequency/adf4371.c
381
const struct iio_chan_spec *chan,
drivers/iio/frequency/adf4371.c
397
ret = adf4371_set_freq(st, freq, chan->channel);
drivers/iio/frequency/adf4371.c
404
reg = adf4371_pwrdown_ch[chan->channel].reg;
drivers/iio/frequency/adf4371.c
405
bit = adf4371_pwrdown_ch[chan->channel].bit;
drivers/iio/frequency/adf4377.c
808
const struct iio_chan_spec *chan, char *buf)
drivers/iio/frequency/adf4377.c
827
const struct iio_chan_spec *chan, const char *buf,
drivers/iio/frequency/admfm2000.c
115
st->gain[chan->channel] = ~((abs(gain) / 1000) & 0x1F);
drivers/iio/frequency/admfm2000.c
117
ret = admfm2000_attenuation(indio_dev, chan->channel,
drivers/iio/frequency/admfm2000.c
118
st->gain[chan->channel]);
drivers/iio/frequency/admfm2000.c
127
struct iio_chan_spec const *chan,
drivers/iio/frequency/admfm2000.c
34
static int admfm2000_mode(struct iio_dev *indio_dev, u32 chan, u32 mode)
drivers/iio/frequency/admfm2000.c
42
gpiod_set_value_cansleep(st->sw1_ch[i], (chan == 0) ? 1 : 0);
drivers/iio/frequency/admfm2000.c
43
gpiod_set_value_cansleep(st->sw2_ch[i], (chan == 0) ? 0 : 1);
drivers/iio/frequency/admfm2000.c
48
gpiod_set_value_cansleep(st->sw1_ch[i], (chan == 0) ? 0 : 1);
drivers/iio/frequency/admfm2000.c
49
gpiod_set_value_cansleep(st->sw2_ch[i], (chan == 0) ? 1 : 0);
drivers/iio/frequency/admfm2000.c
57
static int admfm2000_attenuation(struct iio_dev *indio_dev, u32 chan, u32 value)
drivers/iio/frequency/admfm2000.c
62
switch (chan) {
drivers/iio/frequency/admfm2000.c
77
struct iio_chan_spec const *chan, int *val,
drivers/iio/frequency/admfm2000.c
86
gain = ~(st->gain[chan->channel]) * -1000;
drivers/iio/frequency/admfm2000.c
98
struct iio_chan_spec const *chan, int val,
drivers/iio/frequency/admv1013.c
189
struct iio_chan_spec const *chan,
drivers/iio/frequency/admv1013.c
198
switch (chan->channel) {
drivers/iio/frequency/admv1013.c
213
if (!chan->channel)
drivers/iio/frequency/admv1013.c
225
struct iio_chan_spec const *chan,
drivers/iio/frequency/admv1013.c
233
switch (chan->channel2) {
drivers/iio/frequency/admv1013.c
244
if (!chan->channel) {
drivers/iio/frequency/admv1013.c
260
const struct iio_chan_spec *chan,
drivers/iio/frequency/admv1013.c
289
const struct iio_chan_spec *chan,
drivers/iio/frequency/admv1014.c
270
struct iio_chan_spec const *chan,
drivers/iio/frequency/admv1014.c
283
if (chan->channel2 == IIO_MOD_I)
drivers/iio/frequency/admv1014.c
294
if (chan->channel2 == IIO_MOD_I)
drivers/iio/frequency/admv1014.c
320
struct iio_chan_spec const *chan,
drivers/iio/frequency/admv1014.c
329
if (chan->channel2 == IIO_MOD_I) {
drivers/iio/frequency/admv1014.c
339
if (chan->channel2 == IIO_MOD_I) {
drivers/iio/frequency/admv1014.c
363
const struct iio_chan_spec *chan,
drivers/iio/frequency/admv1014.c
372
if (chan->channel2 == IIO_MOD_I) {
drivers/iio/frequency/admv1014.c
391
if (chan->channel2 == IIO_MOD_I)
drivers/iio/frequency/admv1014.c
405
const struct iio_chan_spec *chan,
drivers/iio/frequency/admv1014.c
418
if (chan->channel2 == IIO_MOD_I) {
drivers/iio/frequency/admv1014.c
431
if (chan->channel2 == IIO_MOD_I) {
drivers/iio/frequency/admv1014.c
449
struct iio_chan_spec const *chan,
drivers/iio/frequency/admv4420.c
157
struct iio_chan_spec const *chan,
drivers/iio/frequency/adrf6780.c
219
struct iio_chan_spec const *chan,
drivers/iio/frequency/adrf6780.c
249
switch (chan->channel2) {
drivers/iio/frequency/adrf6780.c
268
struct iio_chan_spec const *chan,
drivers/iio/frequency/adrf6780.c
277
switch (chan->channel2) {
drivers/iio/gyro/adis16080.c
111
switch (chan->type) {
drivers/iio/gyro/adis16080.c
77
struct iio_chan_spec const *chan,
drivers/iio/gyro/adis16080.c
88
ret = adis16080_read_sample(indio_dev, chan->address, val);
drivers/iio/gyro/adis16080.c
92
switch (chan->type) {
drivers/iio/gyro/adis16130.c
102
switch (chan->type) {
drivers/iio/gyro/adis16130.c
71
struct iio_chan_spec const *chan,
drivers/iio/gyro/adis16130.c
81
ret = adis16130_spi_read(indio_dev, chan->address, &temp);
drivers/iio/gyro/adis16130.c
87
switch (chan->type) {
drivers/iio/gyro/adis16136.c
290
const struct iio_chan_spec *chan, int *val, int *val2, long info)
drivers/iio/gyro/adis16136.c
298
return adis_single_conversion(indio_dev, chan, 0, val);
drivers/iio/gyro/adis16136.c
300
switch (chan->type) {
drivers/iio/gyro/adis16136.c
329
const struct iio_chan_spec *chan, int val, int val2, long info)
drivers/iio/gyro/adis16260.c
187
struct iio_chan_spec const *chan,
drivers/iio/gyro/adis16260.c
200
return adis_single_conversion(indio_dev, chan,
drivers/iio/gyro/adis16260.c
203
switch (chan->type) {
drivers/iio/gyro/adis16260.c
213
if (chan->channel == 0) {
drivers/iio/gyro/adis16260.c
232
addr = adis16260_addresses[chan->scan_index][0];
drivers/iio/gyro/adis16260.c
240
addr = adis16260_addresses[chan->scan_index][1];
drivers/iio/gyro/adis16260.c
266
struct iio_chan_spec const *chan,
drivers/iio/gyro/adis16260.c
281
addr = adis16260_addresses[chan->scan_index][0];
drivers/iio/gyro/adis16260.c
287
addr = adis16260_addresses[chan->scan_index][1];
drivers/iio/gyro/adxrs290.c
268
struct iio_chan_spec const *chan,
drivers/iio/gyro/adxrs290.c
282
switch (chan->type) {
drivers/iio/gyro/adxrs290.c
285
ADXRS290_READ_REG(chan->address),
drivers/iio/gyro/adxrs290.c
307
switch (chan->type) {
drivers/iio/gyro/adxrs290.c
321
switch (chan->type) {
drivers/iio/gyro/adxrs290.c
331
switch (chan->type) {
drivers/iio/gyro/adxrs290.c
346
struct iio_chan_spec const *chan,
drivers/iio/gyro/adxrs290.c
400
struct iio_chan_spec const *chan,
drivers/iio/gyro/adxrs450.c
278
struct iio_chan_spec const *chan,
drivers/iio/gyro/adxrs450.c
299
struct iio_chan_spec const *chan,
drivers/iio/gyro/adxrs450.c
309
switch (chan->type) {
drivers/iio/gyro/adxrs450.c
331
switch (chan->type) {
drivers/iio/gyro/bmg160_core.c
561
struct iio_chan_spec const *chan,
drivers/iio/gyro/bmg160_core.c
569
switch (chan->type) {
drivers/iio/gyro/bmg160_core.c
576
return bmg160_get_axis(data, chan->scan_index,
drivers/iio/gyro/bmg160_core.c
582
if (chan->type == IIO_TEMP) {
drivers/iio/gyro/bmg160_core.c
590
switch (chan->type) {
drivers/iio/gyro/bmg160_core.c
623
struct iio_chan_spec const *chan,
drivers/iio/gyro/bmg160_core.c
701
const struct iio_chan_spec *chan,
drivers/iio/gyro/bmg160_core.c
722
const struct iio_chan_spec *chan,
drivers/iio/gyro/bmg160_core.c
745
const struct iio_chan_spec *chan,
drivers/iio/gyro/bmg160_core.c
756
const struct iio_chan_spec *chan,
drivers/iio/gyro/bmg160_core.c
804
const struct iio_chan_spec *chan)
drivers/iio/gyro/fxas21002c_core.c
588
struct iio_chan_spec const *chan, int *val,
drivers/iio/gyro/fxas21002c_core.c
596
switch (chan->type) {
drivers/iio/gyro/fxas21002c_core.c
600
return fxas21002c_axis_get(data, chan->scan_index, val);
drivers/iio/gyro/fxas21002c_core.c
605
switch (chan->type) {
drivers/iio/gyro/fxas21002c_core.c
631
struct iio_chan_spec const *chan, int val,
drivers/iio/gyro/fxas21002c_core.c
650
switch (chan->type) {
drivers/iio/gyro/hid-sensor-gyro-3d.c
102
report_id = gyro_state->gyro[chan->scan_index].report_id;
drivers/iio/gyro/hid-sensor-gyro-3d.c
103
min = gyro_state->gyro[chan->scan_index].logical_minimum;
drivers/iio/gyro/hid-sensor-gyro-3d.c
104
address = gyro_3d_addresses[chan->scan_index];
drivers/iio/gyro/hid-sensor-gyro-3d.c
148
struct iio_chan_spec const *chan,
drivers/iio/gyro/hid-sensor-gyro-3d.c
87
struct iio_chan_spec const *chan,
drivers/iio/gyro/itg3200_core.c
101
if (chan->type == IIO_TEMP)
drivers/iio/gyro/itg3200_core.c
132
struct iio_chan_spec const *chan,
drivers/iio/gyro/itg3200_core.c
247
const struct iio_chan_spec *chan)
drivers/iio/gyro/itg3200_core.c
85
const struct iio_chan_spec *chan,
drivers/iio/gyro/itg3200_core.c
94
reg = (u8)chan->address;
drivers/iio/gyro/mpu3050-core.c
264
struct iio_chan_spec const *chan,
drivers/iio/gyro/mpu3050-core.c
274
switch (chan->type) {
drivers/iio/gyro/mpu3050-core.c
292
switch (chan->type) {
drivers/iio/gyro/mpu3050-core.c
294
*val = mpu3050->calibration[chan->scan_index-1];
drivers/iio/gyro/mpu3050-core.c
303
switch (chan->type) {
drivers/iio/gyro/mpu3050-core.c
334
switch (chan->type) {
drivers/iio/gyro/mpu3050-core.c
350
MPU3050_AXIS_REGS(chan->scan_index-1),
drivers/iio/gyro/mpu3050-core.c
381
const struct iio_chan_spec *chan,
drivers/iio/gyro/mpu3050-core.c
403
if (chan->type != IIO_ANGL_VEL)
drivers/iio/gyro/mpu3050-core.c
405
mpu3050->calibration[chan->scan_index-1] = val;
drivers/iio/gyro/mpu3050-core.c
429
if (chan->type != IIO_ANGL_VEL)
drivers/iio/gyro/mpu3050-core.c
684
const struct iio_chan_spec *chan)
drivers/iio/gyro/ssp_gyro_sensor.c
28
struct iio_chan_spec const *chan, int *val,
drivers/iio/gyro/ssp_gyro_sensor.c
47
struct iio_chan_spec const *chan, int val,
drivers/iio/gyro/st_gyro_core.c
37
const struct iio_chan_spec *chan)
drivers/iio/gyro/st_gyro_core.c
407
struct iio_chan_spec const *chan, int val, int val2, long mask)
drivers/iio/health/afe4403.c
242
struct iio_chan_spec const *chan,
drivers/iio/health/afe4403.c
249
switch (chan->type) {
drivers/iio/health/afe4403.c
253
reg = afe4403_channel_values[chan->address];
drivers/iio/health/afe4403.c
263
field = afe4403_channel_leds[chan->address];
drivers/iio/health/afe4403.c
282
struct iio_chan_spec const *chan,
drivers/iio/health/afe4403.c
286
unsigned int field = afe4403_channel_leds[chan->address];
drivers/iio/health/afe4403.c
288
switch (chan->type) {
drivers/iio/health/afe4404.c
247
struct iio_chan_spec const *chan,
drivers/iio/health/afe4404.c
254
switch (chan->type) {
drivers/iio/health/afe4404.c
258
value_reg = afe4404_channel_values[chan->address];
drivers/iio/health/afe4404.c
264
offdac_field = afe4404_channel_offdacs[chan->address];
drivers/iio/health/afe4404.c
274
led_field = afe4404_channel_leds[chan->address];
drivers/iio/health/afe4404.c
293
struct iio_chan_spec const *chan,
drivers/iio/health/afe4404.c
299
switch (chan->type) {
drivers/iio/health/afe4404.c
303
offdac_field = afe4404_channel_offdacs[chan->address];
drivers/iio/health/afe4404.c
310
led_field = afe4404_channel_leds[chan->address];
drivers/iio/health/max30100.c
408
struct iio_chan_spec const *chan,
drivers/iio/health/max30102.c
465
struct iio_chan_spec const *chan,
drivers/iio/humidity/am2315.c
193
struct iio_chan_spec const *chan,
drivers/iio/humidity/am2315.c
205
*val = (chan->type == IIO_HUMIDITYRELATIVE) ?
drivers/iio/humidity/dht11.c
187
const struct iio_chan_spec *chan,
drivers/iio/humidity/dht11.c
260
if (chan->type == IIO_TEMP)
drivers/iio/humidity/dht11.c
262
else if (chan->type == IIO_HUMIDITYRELATIVE)
drivers/iio/humidity/hdc100x.c
147
static int hdc100x_set_it_time(struct hdc100x_data *data, int chan, int val2)
drivers/iio/humidity/hdc100x.c
149
int shift = hdc100x_resolution_shift[chan].shift;
drivers/iio/humidity/hdc100x.c
153
for (i = 0; i < ARRAY_SIZE(hdc100x_int_time[chan]); i++) {
drivers/iio/humidity/hdc100x.c
154
if (val2 && val2 == hdc100x_int_time[chan][i]) {
drivers/iio/humidity/hdc100x.c
156
hdc100x_resolution_shift[chan].mask << shift,
drivers/iio/humidity/hdc100x.c
159
data->adc_int_us[chan] = val2;
drivers/iio/humidity/hdc100x.c
168
struct iio_chan_spec const *chan)
drivers/iio/humidity/hdc100x.c
171
int delay = data->adc_int_us[chan->address] + 1*USEC_PER_MSEC;
drivers/iio/humidity/hdc100x.c
176
ret = i2c_smbus_write_byte(client, chan->address);
drivers/iio/humidity/hdc100x.c
200
struct iio_chan_spec const *chan, int *val,
drivers/iio/humidity/hdc100x.c
210
if (chan->type == IIO_CURRENT) {
drivers/iio/humidity/hdc100x.c
217
ret = hdc100x_get_measurement(data, chan);
drivers/iio/humidity/hdc100x.c
226
*val2 = data->adc_int_us[chan->address];
drivers/iio/humidity/hdc100x.c
229
if (chan->type == IIO_TEMP) {
drivers/iio/humidity/hdc100x.c
249
struct iio_chan_spec const *chan,
drivers/iio/humidity/hdc100x.c
260
return hdc100x_set_it_time(data, chan->address, val2);
drivers/iio/humidity/hdc100x.c
263
if (chan->type != IIO_CURRENT || val2 != 0)
drivers/iio/humidity/hdc2010.c
123
struct iio_chan_spec const *chan)
drivers/iio/humidity/hdc2010.c
129
hdc2010_reg_translation[chan->address].primary);
drivers/iio/humidity/hdc2010.c
138
struct iio_chan_spec const *chan)
drivers/iio/humidity/hdc2010.c
144
hdc2010_reg_translation[chan->address].peak);
drivers/iio/humidity/hdc2010.c
158
struct iio_chan_spec const *chan, int *val,
drivers/iio/humidity/hdc2010.c
167
if (chan->type == IIO_CURRENT) {
drivers/iio/humidity/hdc2010.c
174
ret = hdc2010_get_prim_measurement_word(data, chan);
drivers/iio/humidity/hdc2010.c
188
ret = hdc2010_get_peak_measurement_byte(data, chan);
drivers/iio/humidity/hdc2010.c
199
if (chan->type == IIO_TEMP)
drivers/iio/humidity/hdc2010.c
214
struct iio_chan_spec const *chan,
drivers/iio/humidity/hdc2010.c
222
if (chan->type != IIO_CURRENT || val2 != 0)
drivers/iio/humidity/hdc3020.c
260
struct iio_chan_spec const *chan, int *val,
drivers/iio/humidity/hdc3020.c
266
if (chan->type != IIO_TEMP && chan->type != IIO_HUMIDITYRELATIVE)
drivers/iio/humidity/hdc3020.c
272
ret = hdc3020_read_measurement(data, chan->type, val);
drivers/iio/humidity/hdc3020.c
280
if (chan->type == IIO_TEMP)
drivers/iio/humidity/hdc3020.c
293
if (chan->type == IIO_TEMP)
drivers/iio/humidity/hdc3020.c
306
if (chan->type == IIO_TEMP)
drivers/iio/humidity/hdc3020.c
313
if (chan->type != IIO_TEMP)
drivers/iio/humidity/hdc3020.c
325
struct iio_chan_spec const *chan,
drivers/iio/humidity/hdc3020.c
329
if (mask != IIO_CHAN_INFO_RAW || chan->type != IIO_CURRENT)
drivers/iio/humidity/hdc3020.c
360
struct iio_chan_spec const *chan,
drivers/iio/humidity/hdc3020.c
367
if (chan->type != IIO_CURRENT)
drivers/iio/humidity/hdc3020.c
483
const struct iio_chan_spec *chan,
drivers/iio/humidity/hdc3020.c
520
switch (chan->type) {
drivers/iio/humidity/hdc3020.c
617
const struct iio_chan_spec *chan,
drivers/iio/humidity/hdc3020.c
641
switch (chan->type) {
drivers/iio/humidity/hid-sensor-humidity.c
103
struct iio_chan_spec const *chan,
drivers/iio/humidity/hid-sensor-humidity.c
57
struct iio_chan_spec const *chan,
drivers/iio/humidity/hid-sensor-humidity.c
64
if (chan->type != IIO_HUMIDITYRELATIVE)
drivers/iio/humidity/hts221_core.c
478
struct iio_chan_spec const *chan,
drivers/iio/humidity/hts221_core.c
487
switch (chan->type) {
drivers/iio/humidity/hts221_core.c
501
struct iio_chan_spec const *chan,
drivers/iio/humidity/hts221_core.c
509
ret = __hts221_write_raw(iio_dev, chan, val, mask);
drivers/iio/humidity/htu21.c
78
struct iio_chan_spec const *chan,
drivers/iio/humidity/si7005.c
74
struct iio_chan_spec const *chan, int *val,
drivers/iio/humidity/si7005.c
82
ret = si7005_read_measurement(data, chan->type == IIO_TEMP);
drivers/iio/humidity/si7005.c
88
if (chan->type == IIO_TEMP) {
drivers/iio/humidity/si7005.c
97
if (chan->type == IIO_TEMP)
drivers/iio/humidity/si7020.c
145
struct iio_chan_spec const *chan,
drivers/iio/humidity/si7020.c
153
if (chan->type != IIO_CURRENT || val2 != 0 ||
drivers/iio/humidity/si7020.c
167
struct iio_chan_spec const *chan,
drivers/iio/humidity/si7020.c
171
if (mask != IIO_CHAN_INFO_RAW || chan->type != IIO_CURRENT)
drivers/iio/humidity/si7020.c
54
struct iio_chan_spec const *chan, int *val,
drivers/iio/humidity/si7020.c
62
if (chan->type == IIO_CURRENT) {
drivers/iio/humidity/si7020.c
68
chan->type == IIO_TEMP ?
drivers/iio/humidity/si7020.c
78
if (chan->type == IIO_HUMIDITYRELATIVE)
drivers/iio/humidity/si7020.c
82
if (chan->type == IIO_TEMP)
drivers/iio/humidity/si7020.c
98
if (chan->type == IIO_TEMP)
drivers/iio/iio_core.h
42
struct iio_chan_spec const *chan,
drivers/iio/imu/adis.c
465
const struct iio_chan_spec *chan,
drivers/iio/imu/adis.c
474
ret = adis->ops->read(adis, chan->address, &uval,
drivers/iio/imu/adis.c
475
chan->scan_type.storagebits / 8);
drivers/iio/imu/adis.c
485
if (chan->scan_type.sign == 's')
drivers/iio/imu/adis.c
486
*val = sign_extend32(uval, chan->scan_type.realbits - 1);
drivers/iio/imu/adis.c
488
*val = uval & ((1 << chan->scan_type.realbits) - 1);
drivers/iio/imu/adis16400.c
474
struct iio_chan_spec const *chan, int val, int val2, long info)
drivers/iio/imu/adis16400.c
482
adis16400_addresses[chan->scan_index],
drivers/iio/imu/adis16400.c
515
struct iio_chan_spec const *chan, int *val, int *val2, long info)
drivers/iio/imu/adis16400.c
523
return adis_single_conversion(indio_dev, chan, 0, val);
drivers/iio/imu/adis16400.c
525
switch (chan->type) {
drivers/iio/imu/adis16400.c
532
if (chan->channel == 0) {
drivers/iio/imu/adis16400.c
562
adis16400_addresses[chan->scan_index], &val16);
drivers/iio/imu/adis16460.c
180
const struct iio_chan_spec *chan, int *val, int *val2, long info)
drivers/iio/imu/adis16460.c
186
return adis_single_conversion(indio_dev, chan, 0, val);
drivers/iio/imu/adis16460.c
188
switch (chan->type) {
drivers/iio/imu/adis16460.c
214
const struct iio_chan_spec *chan, int val, int val2, long info)
drivers/iio/imu/adis16475.c
577
const struct iio_chan_spec *chan,
drivers/iio/imu/adis16475.c
586
return adis_single_conversion(indio_dev, chan, 0, val);
drivers/iio/imu/adis16475.c
588
switch (chan->type) {
drivers/iio/imu/adis16475.c
613
adis16475_calib_regs[chan->scan_index],
drivers/iio/imu/adis16475.c
639
const struct iio_chan_spec *chan,
drivers/iio/imu/adis16475.c
653
adis16475_calib_regs[chan->scan_index],
drivers/iio/imu/adis16480.c
469
const struct iio_chan_spec *chan, int bias)
drivers/iio/imu/adis16480.c
471
unsigned int reg = adis16480_calibbias_regs[chan->scan_index];
drivers/iio/imu/adis16480.c
474
switch (chan->type) {
drivers/iio/imu/adis16480.c
491
const struct iio_chan_spec *chan, int *bias)
drivers/iio/imu/adis16480.c
493
unsigned int reg = adis16480_calibbias_regs[chan->scan_index];
drivers/iio/imu/adis16480.c
499
switch (chan->type) {
drivers/iio/imu/adis16480.c
523
const struct iio_chan_spec *chan, int scale)
drivers/iio/imu/adis16480.c
525
unsigned int reg = adis16480_calibscale_regs[chan->scan_index];
drivers/iio/imu/adis16480.c
535
const struct iio_chan_spec *chan, int *scale)
drivers/iio/imu/adis16480.c
537
unsigned int reg = adis16480_calibscale_regs[chan->scan_index];
drivers/iio/imu/adis16480.c
577
const struct iio_chan_spec *chan, int *freq)
drivers/iio/imu/adis16480.c
584
reg = ad16480_filter_data[chan->scan_index][0];
drivers/iio/imu/adis16480.c
585
offset = ad16480_filter_data[chan->scan_index][1];
drivers/iio/imu/adis16480.c
601
const struct iio_chan_spec *chan, unsigned int freq)
drivers/iio/imu/adis16480.c
610
reg = ad16480_filter_data[chan->scan_index][0];
drivers/iio/imu/adis16480.c
611
offset = ad16480_filter_data[chan->scan_index][1];
drivers/iio/imu/adis16480.c
644
const struct iio_chan_spec *chan, int *val, int *val2, long info)
drivers/iio/imu/adis16480.c
651
return adis_single_conversion(indio_dev, chan, 0, val);
drivers/iio/imu/adis16480.c
653
switch (chan->type) {
drivers/iio/imu/adis16480.c
700
return adis16480_get_calibbias(indio_dev, chan, val);
drivers/iio/imu/adis16480.c
702
return adis16480_get_calibscale(indio_dev, chan, val);
drivers/iio/imu/adis16480.c
704
return adis16480_get_filter_freq(indio_dev, chan, val);
drivers/iio/imu/adis16480.c
713
const struct iio_chan_spec *chan, int val, int val2, long info)
drivers/iio/imu/adis16480.c
717
return adis16480_set_calibbias(indio_dev, chan, val);
drivers/iio/imu/adis16480.c
719
return adis16480_set_calibscale(indio_dev, chan, val);
drivers/iio/imu/adis16480.c
721
return adis16480_set_filter_freq(indio_dev, chan, val);
drivers/iio/imu/adis16550.c
579
const struct iio_chan_spec *chan,
drivers/iio/imu/adis16550.c
583
const int idx = chan->scan_index;
drivers/iio/imu/adis16550.c
590
return adis_single_conversion(indio_dev, chan, 0, val);
drivers/iio/imu/adis16550.c
592
switch (chan->type) {
drivers/iio/imu/adis16550.c
643
switch (chan->type) {
drivers/iio/imu/adis16550.c
663
const struct iio_chan_spec *chan,
drivers/iio/imu/adis16550.c
667
const int idx = chan->scan_index;
drivers/iio/imu/adis16550.c
681
switch (chan->type) {
drivers/iio/imu/adis_buffer.c
113
chan = indio_dev->channels;
drivers/iio/imu/adis_buffer.c
114
for (i = 0; i < indio_dev->num_channels; i++, chan++) {
drivers/iio/imu/adis_buffer.c
115
if (!test_bit(chan->scan_index, scan_mask))
drivers/iio/imu/adis_buffer.c
117
if (chan->scan_type.storagebits == 32)
drivers/iio/imu/adis_buffer.c
118
*tx++ = cpu_to_be16((chan->address + 2) << 8);
drivers/iio/imu/adis_buffer.c
119
*tx++ = cpu_to_be16(chan->address << 8);
drivers/iio/imu/adis_buffer.c
71
const struct iio_chan_spec *chan;
drivers/iio/imu/bmi160/bmi160_core.c
276
const struct iio_chan_spec *chan)
drivers/iio/imu/bmi160/bmi160_core.c
453
struct iio_chan_spec const *chan,
drivers/iio/imu/bmi160/bmi160_core.c
461
ret = bmi160_get_data(data, chan->type, chan->channel2, val);
drivers/iio/imu/bmi160/bmi160_core.c
468
bmi160_to_sensor(chan->type), val2);
drivers/iio/imu/bmi160/bmi160_core.c
471
ret = bmi160_get_odr(data, bmi160_to_sensor(chan->type),
drivers/iio/imu/bmi160/bmi160_core.c
482
struct iio_chan_spec const *chan,
drivers/iio/imu/bmi160/bmi160_core.c
490
bmi160_to_sensor(chan->type), val2);
drivers/iio/imu/bmi160/bmi160_core.c
492
return bmi160_set_odr(data, bmi160_to_sensor(chan->type),
drivers/iio/imu/bmi270/bmi270_core.c
1042
const struct iio_chan_spec *chan,
drivers/iio/imu/bmi270/bmi270_core.c
1050
return bmi270_anymotion_event_en(data, chan, state);
drivers/iio/imu/bmi270/bmi270_core.c
1061
const struct iio_chan_spec *chan,
drivers/iio/imu/bmi270/bmi270_core.c
1080
switch (chan->type) {
drivers/iio/imu/bmi270/bmi270_core.c
1095
switch (chan->channel2) {
drivers/iio/imu/bmi270/bmi270_core.c
1121
const struct iio_chan_spec *chan,
drivers/iio/imu/bmi270/bmi270_core.c
1178
const struct iio_chan_spec *chan,
drivers/iio/imu/bmi270/bmi270_core.c
520
struct iio_chan_spec const *chan,
drivers/iio/imu/bmi270/bmi270_core.c
537
switch (chan->channel2) {
drivers/iio/imu/bmi270/bmi270_core.c
894
struct iio_chan_spec const *chan,
drivers/iio/imu/bmi270/bmi270_core.c
906
ret = bmi270_get_data(data, chan->type, chan->channel2, val);
drivers/iio/imu/bmi270/bmi270_core.c
910
ret = bmi270_get_scale(data, chan->type, val, val2);
drivers/iio/imu/bmi270/bmi270_core.c
913
switch (chan->type) {
drivers/iio/imu/bmi270/bmi270_core.c
921
ret = bmi270_get_odr(data, chan->type, val, val2);
drivers/iio/imu/bmi270/bmi270_core.c
932
struct iio_chan_spec const *chan,
drivers/iio/imu/bmi270/bmi270_core.c
942
ret = bmi270_set_scale(data, chan->type, val2);
drivers/iio/imu/bmi270/bmi270_core.c
948
ret = bmi270_set_odr(data, chan->type, val, val2);
drivers/iio/imu/bmi270/bmi270_core.c
970
struct iio_chan_spec const *chan,
drivers/iio/imu/bmi270/bmi270_core.c
977
switch (chan->type) {
drivers/iio/imu/bmi270/bmi270_core.c
991
switch (chan->type) {
drivers/iio/imu/bmi323/bmi323_core.c
1524
struct iio_chan_spec const *chan, int *val)
drivers/iio/imu/bmi323/bmi323_core.c
1535
sensor = bmi323_iio_to_sensor(chan->type);
drivers/iio/imu/bmi323/bmi323_core.c
1536
addr = bmi323_hw[sensor].data + (chan->channel2 - IIO_MOD_X);
drivers/iio/imu/bmi323/bmi323_core.c
1544
*val = sign_extend32(value, chan->scan_type.realbits - 1);
drivers/iio/imu/bmi323/bmi323_core.c
1671
struct iio_chan_spec const *chan,
drivers/iio/imu/bmi323/bmi323_core.c
1684
sensor = bmi323_iio_to_sensor(chan->type);
drivers/iio/imu/bmi323/bmi323_core.c
1700
struct iio_chan_spec const *chan, int val,
drivers/iio/imu/bmi323/bmi323_core.c
1710
ret = bmi323_set_odr(data, bmi323_iio_to_sensor(chan->type),
drivers/iio/imu/bmi323/bmi323_core.c
1717
ret = bmi323_set_scale(data, bmi323_iio_to_sensor(chan->type),
drivers/iio/imu/bmi323/bmi323_core.c
1724
ret = bmi323_set_average(data, bmi323_iio_to_sensor(chan->type),
drivers/iio/imu/bmi323/bmi323_core.c
1749
struct iio_chan_spec const *chan, int *val,
drivers/iio/imu/bmi323/bmi323_core.c
1759
switch (chan->type) {
drivers/iio/imu/bmi323/bmi323_core.c
1764
ret = bmi323_read_axis(data, chan, val);
drivers/iio/imu/bmi323/bmi323_core.c
1773
return bmi323_get_odr(data, bmi323_iio_to_sensor(chan->type),
drivers/iio/imu/bmi323/bmi323_core.c
1776
switch (chan->type) {
drivers/iio/imu/bmi323/bmi323_core.c
1781
bmi323_iio_to_sensor(chan->type),
drivers/iio/imu/bmi323/bmi323_core.c
1792
bmi323_iio_to_sensor(chan->type),
drivers/iio/imu/bmi323/bmi323_core.c
1795
switch (chan->type) {
drivers/iio/imu/bmi323/bmi323_core.c
183
const struct iio_chan_spec *chan)
drivers/iio/imu/bmi323/bmi323_core.c
785
const struct iio_chan_spec *chan,
drivers/iio/imu/bmi323/bmi323_core.c
804
const struct iio_chan_spec *chan,
drivers/iio/imu/bmi323/bmi323_core.c
813
switch (chan->type) {
drivers/iio/imu/bmi323/bmi323_core.c
851
const struct iio_chan_spec *chan,
drivers/iio/imu/bmi323/bmi323_core.c
961
const struct iio_chan_spec *chan,
drivers/iio/imu/bno055/bno055.c
1036
struct iio_chan_spec const *chan,
drivers/iio/imu/bno055/bno055.c
1043
ret = _bno055_write_raw(iio_dev, chan, val, val2, mask);
drivers/iio/imu/bno055/bno055.c
685
struct iio_chan_spec const *chan,
drivers/iio/imu/bno055/bno055.c
694
ret = regmap_bulk_read(priv->regmap, chan->address,
drivers/iio/imu/bno055/bno055.c
705
chan->address +
drivers/iio/imu/bno055/bno055.c
719
switch (chan->type) {
drivers/iio/imu/bno055/bno055.c
760
if (chan->type != IIO_MAGN)
drivers/iio/imu/bno055/bno055.c
769
switch (chan->type) {
drivers/iio/imu/bno055/bno055.c
809
struct iio_chan_spec const *chan,
drivers/iio/imu/bno055/bno055.c
817
switch (chan->type) {
drivers/iio/imu/bno055/bno055.c
826
switch (chan->type) {
drivers/iio/imu/bno055/bno055.c
841
switch (chan->type) {
drivers/iio/imu/bno055/bno055.c
874
struct iio_chan_spec const *chan,
drivers/iio/imu/bno055/bno055.c
908
struct iio_chan_spec const *chan)
drivers/iio/imu/bno055/bno055.c
915
switch (chan->type) {
drivers/iio/imu/bno055/bno055.c
920
if (chan->channel2 == IIO_MOD_LINEAR_X ||
drivers/iio/imu/bno055/bno055.c
921
chan->channel2 == IIO_MOD_LINEAR_Y ||
drivers/iio/imu/bno055/bno055.c
922
chan->channel2 == IIO_MOD_LINEAR_Z)
drivers/iio/imu/bno055/bno055.c
931
struct iio_chan_spec const *chan,
drivers/iio/imu/bno055/bno055.c
935
if (!bno055_is_chan_readable(indio_dev, chan))
drivers/iio/imu/bno055/bno055.c
938
switch (chan->type) {
drivers/iio/imu/bno055/bno055.c
946
return bno055_read_simple_chan(indio_dev, chan,
drivers/iio/imu/bno055/bno055.c
957
if (chan->channel2 == IIO_MOD_QUATERNION)
drivers/iio/imu/bno055/bno055.c
958
return bno055_read_quaternion(indio_dev, chan,
drivers/iio/imu/bno055/bno055.c
964
return bno055_read_simple_chan(indio_dev, chan,
drivers/iio/imu/bno055/bno055.c
973
struct iio_chan_spec const *chan,
drivers/iio/imu/bno055/bno055.c
981
ret = _bno055_read_raw_multi(indio_dev, chan, size,
drivers/iio/imu/bno055/bno055.c
988
struct iio_chan_spec const *chan,
drivers/iio/imu/bno055/bno055.c
993
switch (chan->type) {
drivers/iio/imu/fxos8700_core.c
541
struct iio_chan_spec const *chan,
drivers/iio/imu/fxos8700_core.c
549
ret = fxos8700_get_data(data, chan->type, chan->channel2, val);
drivers/iio/imu/fxos8700_core.c
555
ret = fxos8700_get_scale(data, fxos8700_to_sensor(chan->type),
drivers/iio/imu/fxos8700_core.c
559
ret = fxos8700_get_odr(data, fxos8700_to_sensor(chan->type),
drivers/iio/imu/fxos8700_core.c
568
struct iio_chan_spec const *chan,
drivers/iio/imu/fxos8700_core.c
575
return fxos8700_set_scale(data, fxos8700_to_sensor(chan->type),
drivers/iio/imu/fxos8700_core.c
578
return fxos8700_set_odr(data, fxos8700_to_sensor(chan->type),
drivers/iio/imu/inv_icm42600/inv_icm42600.h
451
const struct iio_chan_spec *chan);
drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c
1016
const struct iio_chan_spec *chan,
drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c
1032
const struct iio_chan_spec *chan,
drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c
1055
const struct iio_chan_spec *chan,
drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c
1096
const struct iio_chan_spec *chan,
drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c
128
const struct iio_chan_spec *chan)
drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c
135
if (chan->type != IIO_ACCEL)
drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c
269
struct iio_chan_spec const *chan,
drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c
280
if (chan->type != IIO_ACCEL)
drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c
283
switch (chan->channel2) {
drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c
693
struct iio_chan_spec const *chan,
drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c
704
if (chan->type != IIO_ACCEL)
drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c
707
switch (chan->channel2) {
drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c
733
switch (chan->channel2) {
drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c
768
struct iio_chan_spec const *chan,
drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c
778
if (chan->type != IIO_ACCEL)
drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c
781
switch (chan->channel2) {
drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c
828
switch (chan->channel2) {
drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c
85
const struct iio_chan_spec *chan,
drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c
870
struct iio_chan_spec const *chan,
drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c
877
switch (chan->type) {
drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c
881
return inv_icm42600_temp_read_raw(indio_dev, chan, val, val2, mask);
drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c
890
ret = inv_icm42600_accel_read_sensor(indio_dev, chan, &data);
drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c
901
return inv_icm42600_accel_read_offset(st, chan, val, val2);
drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c
908
struct iio_chan_spec const *chan,
drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c
914
if (chan->type != IIO_ACCEL)
drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c
92
if (chan->type != IIO_ACCEL)
drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c
938
struct iio_chan_spec const *chan,
drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c
944
if (chan->type != IIO_ACCEL)
drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c
959
ret = inv_icm42600_accel_write_offset(st, chan, val, val2);
drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c
968
struct iio_chan_spec const *chan,
drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c
971
if (chan->type != IIO_ACCEL)
drivers/iio/imu/inv_icm42600/inv_icm42600_core.c
184
const struct iio_chan_spec *chan)
drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c
141
struct iio_chan_spec const *chan,
drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c
150
if (chan->type != IIO_ANGL_VEL)
drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c
153
switch (chan->channel2) {
drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c
396
struct iio_chan_spec const *chan,
drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c
407
if (chan->type != IIO_ANGL_VEL)
drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c
410
switch (chan->channel2) {
drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c
436
switch (chan->channel2) {
drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c
471
struct iio_chan_spec const *chan,
drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c
480
if (chan->type != IIO_ANGL_VEL)
drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c
483
switch (chan->channel2) {
drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c
530
switch (chan->channel2) {
drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c
572
struct iio_chan_spec const *chan,
drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c
579
switch (chan->type) {
drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c
583
return inv_icm42600_temp_read_raw(indio_dev, chan, val, val2, mask);
drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c
592
ret = inv_icm42600_gyro_read_sensor(st, chan, &data);
drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c
603
return inv_icm42600_gyro_read_offset(st, chan, val, val2);
drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c
610
struct iio_chan_spec const *chan,
drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c
616
if (chan->type != IIO_ANGL_VEL)
drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c
640
struct iio_chan_spec const *chan,
drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c
646
if (chan->type != IIO_ANGL_VEL)
drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c
661
ret = inv_icm42600_gyro_write_offset(st, chan, val, val2);
drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c
670
struct iio_chan_spec const *chan,
drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c
673
if (chan->type != IIO_ANGL_VEL)
drivers/iio/imu/inv_icm42600/inv_icm42600_temp.c
50
struct iio_chan_spec const *chan,
drivers/iio/imu/inv_icm42600/inv_icm42600_temp.c
57
if (chan->type != IIO_TEMP)
drivers/iio/imu/inv_icm42600/inv_icm42600_temp.h
27
struct iio_chan_spec const *chan,
drivers/iio/imu/inv_icm45600/inv_icm45600.h
338
const struct iio_chan_spec *chan);
drivers/iio/imu/inv_icm45600/inv_icm45600.h
357
struct iio_chan_spec const *chan,
drivers/iio/imu/inv_icm45600/inv_icm45600_accel.c
156
struct iio_chan_spec const *chan,
drivers/iio/imu/inv_icm45600/inv_icm45600_accel.c
165
if (chan->type != IIO_ACCEL)
drivers/iio/imu/inv_icm45600/inv_icm45600_accel.c
168
switch (chan->channel2) {
drivers/iio/imu/inv_icm45600/inv_icm45600_accel.c
396
struct iio_chan_spec const *chan,
drivers/iio/imu/inv_icm45600/inv_icm45600_accel.c
406
if (chan->type != IIO_ACCEL)
drivers/iio/imu/inv_icm45600/inv_icm45600_accel.c
409
switch (chan->channel2) {
drivers/iio/imu/inv_icm45600/inv_icm45600_accel.c
459
struct iio_chan_spec const *chan,
drivers/iio/imu/inv_icm45600/inv_icm45600_accel.c
469
if (chan->type != IIO_ACCEL)
drivers/iio/imu/inv_icm45600/inv_icm45600_accel.c
472
switch (chan->channel2) {
drivers/iio/imu/inv_icm45600/inv_icm45600_accel.c
531
struct iio_chan_spec const *chan,
drivers/iio/imu/inv_icm45600/inv_icm45600_accel.c
537
switch (chan->type) {
drivers/iio/imu/inv_icm45600/inv_icm45600_accel.c
541
return inv_icm45600_temp_read_raw(indio_dev, chan, val, val2, mask);
drivers/iio/imu/inv_icm45600/inv_icm45600_accel.c
550
ret = inv_icm45600_accel_read_sensor(indio_dev, chan, val);
drivers/iio/imu/inv_icm45600/inv_icm45600_accel.c
560
return inv_icm45600_accel_read_offset(st, chan, val, val2);
drivers/iio/imu/inv_icm45600/inv_icm45600_accel.c
567
struct iio_chan_spec const *chan,
drivers/iio/imu/inv_icm45600/inv_icm45600_accel.c
573
if (chan->type != IIO_ACCEL)
drivers/iio/imu/inv_icm45600/inv_icm45600_accel.c
597
struct iio_chan_spec const *chan,
drivers/iio/imu/inv_icm45600/inv_icm45600_accel.c
603
if (chan->type != IIO_ACCEL)
drivers/iio/imu/inv_icm45600/inv_icm45600_accel.c
618
ret = inv_icm45600_accel_write_offset(st, chan, val, val2);
drivers/iio/imu/inv_icm45600/inv_icm45600_accel.c
627
struct iio_chan_spec const *chan,
drivers/iio/imu/inv_icm45600/inv_icm45600_accel.c
630
if (chan->type != IIO_ACCEL)
drivers/iio/imu/inv_icm45600/inv_icm45600_core.c
260
const struct iio_chan_spec *chan)
drivers/iio/imu/inv_icm45600/inv_icm45600_core.c
949
struct iio_chan_spec const *chan,
drivers/iio/imu/inv_icm45600/inv_icm45600_core.c
956
if (chan->type != IIO_TEMP)
drivers/iio/imu/inv_icm45600/inv_icm45600_gyro.c
152
struct iio_chan_spec const *chan,
drivers/iio/imu/inv_icm45600/inv_icm45600_gyro.c
161
if (chan->type != IIO_ANGL_VEL)
drivers/iio/imu/inv_icm45600/inv_icm45600_gyro.c
164
switch (chan->channel2) {
drivers/iio/imu/inv_icm45600/inv_icm45600_gyro.c
409
struct iio_chan_spec const *chan,
drivers/iio/imu/inv_icm45600/inv_icm45600_gyro.c
419
if (chan->type != IIO_ANGL_VEL)
drivers/iio/imu/inv_icm45600/inv_icm45600_gyro.c
422
switch (chan->channel2) {
drivers/iio/imu/inv_icm45600/inv_icm45600_gyro.c
472
struct iio_chan_spec const *chan,
drivers/iio/imu/inv_icm45600/inv_icm45600_gyro.c
481
if (chan->type != IIO_ANGL_VEL)
drivers/iio/imu/inv_icm45600/inv_icm45600_gyro.c
484
switch (chan->channel2) {
drivers/iio/imu/inv_icm45600/inv_icm45600_gyro.c
543
struct iio_chan_spec const *chan,
drivers/iio/imu/inv_icm45600/inv_icm45600_gyro.c
549
switch (chan->type) {
drivers/iio/imu/inv_icm45600/inv_icm45600_gyro.c
553
return inv_icm45600_temp_read_raw(indio_dev, chan, val, val2, mask);
drivers/iio/imu/inv_icm45600/inv_icm45600_gyro.c
562
ret = inv_icm45600_gyro_read_sensor(indio_dev, chan, val);
drivers/iio/imu/inv_icm45600/inv_icm45600_gyro.c
572
return inv_icm45600_gyro_read_offset(st, chan, val, val2);
drivers/iio/imu/inv_icm45600/inv_icm45600_gyro.c
579
struct iio_chan_spec const *chan,
drivers/iio/imu/inv_icm45600/inv_icm45600_gyro.c
585
if (chan->type != IIO_ANGL_VEL)
drivers/iio/imu/inv_icm45600/inv_icm45600_gyro.c
609
struct iio_chan_spec const *chan,
drivers/iio/imu/inv_icm45600/inv_icm45600_gyro.c
615
if (chan->type != IIO_ANGL_VEL)
drivers/iio/imu/inv_icm45600/inv_icm45600_gyro.c
630
ret = inv_icm45600_gyro_write_offset(st, chan, val, val2);
drivers/iio/imu/inv_icm45600/inv_icm45600_gyro.c
639
struct iio_chan_spec const *chan,
drivers/iio/imu/inv_icm45600/inv_icm45600_gyro.c
642
if (chan->type != IIO_ANGL_VEL)
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
1158
const struct iio_chan_spec *chan,
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
1165
if (chan->type != IIO_ACCEL || type != IIO_EV_TYPE_ROC ||
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
1175
const struct iio_chan_spec *chan,
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
1183
if (chan->type != IIO_ACCEL || type != IIO_EV_TYPE_ROC ||
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
1196
const struct iio_chan_spec *chan,
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
1206
if (chan->type != IIO_ACCEL || type != IIO_EV_TYPE_ROC ||
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
1220
const struct iio_chan_spec *chan,
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
1232
if (chan->type != IIO_ACCEL || type != IIO_EV_TYPE_ROC ||
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
1435
const struct iio_chan_spec *chan)
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
1440
if (chan->type == IIO_MAGN)
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
650
struct iio_chan_spec const *chan,
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
667
switch (chan->type) {
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
680
chan->channel2, val);
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
694
chan->channel2, val);
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
731
ret = inv_mpu_magn_read(st, chan->channel2, val);
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
749
struct iio_chan_spec const *chan,
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
760
ret = inv_mpu6050_read_channel_data(indio_dev, chan, val);
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
765
switch (chan->type) {
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
785
return inv_mpu_magn_get_scale(st, chan, val, val2);
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
790
switch (chan->type) {
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
798
switch (chan->type) {
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
802
chan->channel2, val);
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
808
chan->channel2, val);
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
843
struct iio_chan_spec const *chan, long mask)
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
847
switch (chan->type) {
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
885
struct iio_chan_spec const *chan,
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
906
switch (chan->type) {
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
919
switch (chan->type) {
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
923
chan->channel2, val);
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
928
chan->channel2, val);
drivers/iio/imu/inv_mpu6050/inv_mpu_magn.h
25
const struct iio_chan_spec *chan,
drivers/iio/imu/inv_mpu6050/inv_mpu_magn.h
29
*val2 = st->magn_raw_to_gauss[chan->address];
drivers/iio/imu/kmx61.c
1229
const struct iio_chan_spec *chan,
drivers/iio/imu/kmx61.c
1241
indio_dev->channels = chan;
drivers/iio/imu/kmx61.c
778
struct iio_chan_spec const *chan, int *val,
drivers/iio/imu/kmx61.c
787
switch (chan->type) {
drivers/iio/imu/kmx61.c
799
ret = kmx61_set_power_state(data, true, chan->address);
drivers/iio/imu/kmx61.c
803
ret = kmx61_read_measurement(data, base_reg, chan->scan_index);
drivers/iio/imu/kmx61.c
805
kmx61_set_power_state(data, false, chan->address);
drivers/iio/imu/kmx61.c
808
*val = sign_extend32(ret >> chan->scan_type.shift,
drivers/iio/imu/kmx61.c
809
chan->scan_type.realbits - 1);
drivers/iio/imu/kmx61.c
810
ret = kmx61_set_power_state(data, false, chan->address);
drivers/iio/imu/kmx61.c
816
switch (chan->type) {
drivers/iio/imu/kmx61.c
830
if (chan->type != IIO_ACCEL && chan->type != IIO_MAGN)
drivers/iio/imu/kmx61.c
835
ret = kmx61_get_odr(data, val, val2, chan->address);
drivers/iio/imu/kmx61.c
846
struct iio_chan_spec const *chan, int val,
drivers/iio/imu/kmx61.c
853
if (chan->type != IIO_ACCEL && chan->type != IIO_MAGN)
drivers/iio/imu/kmx61.c
858
return kmx61_set_odr(data, val, val2, chan->address);
drivers/iio/imu/kmx61.c
861
switch (chan->type) {
drivers/iio/imu/kmx61.c
878
const struct iio_chan_spec *chan,
drivers/iio/imu/kmx61.c
900
const struct iio_chan_spec *chan,
drivers/iio/imu/kmx61.c
924
const struct iio_chan_spec *chan,
drivers/iio/imu/kmx61.c
934
const struct iio_chan_spec *chan,
drivers/iio/imu/smi240.c
374
int ret, chan, sample;
drivers/iio/imu/smi240.c
378
iio_for_each_active_channel(indio_dev, chan) {
drivers/iio/imu/smi240.c
379
ret = regmap_read(data->regmap, base + chan, &sample);
drivers/iio/imu/smi240.c
394
struct iio_chan_spec const *chan, const int **vals,
drivers/iio/imu/smi240.c
409
struct iio_chan_spec const *chan, int *val,
drivers/iio/imu/smi240.c
419
ret = smi240_get_data(data, chan->type, chan->channel2, val);
drivers/iio/imu/smi240.c
426
ret = smi240_get_low_pass_filter_freq(data, chan->type, val);
drivers/iio/imu/smi240.c
432
switch (chan->type) {
drivers/iio/imu/smi240.c
450
if (chan->type == IIO_TEMP) {
drivers/iio/imu/smi240.c
463
struct iio_chan_spec const *chan, int val, int val2,
drivers/iio/imu/smi240.c
479
switch (chan->type) {
drivers/iio/imu/smi240.c
503
struct iio_chan_spec const *chan, long info)
drivers/iio/imu/smi240.c
507
switch (chan->type) {
drivers/iio/imu/smi330/smi330_core.c
455
struct iio_chan_spec const *chan, const int **vals,
drivers/iio/imu/smi330/smi330_core.c
460
if (chan->type == IIO_ACCEL) {
drivers/iio/imu/smi330/smi330_core.c
491
struct iio_chan_spec const *chan, int *val,
drivers/iio/imu/smi330/smi330_core.c
503
ret = smi330_get_data(data, chan->type, chan->channel2, val);
drivers/iio/imu/smi330/smi330_core.c
510
switch (chan->type) {
drivers/iio/imu/smi330/smi330_core.c
560
struct iio_chan_spec const *chan, int val, int val2,
drivers/iio/imu/smi330/smi330_core.c
566
switch (chan->type) {
drivers/iio/imu/smi330/smi330_core.c
594
struct iio_chan_spec const *chan, long info)
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h
306
const struct iio_chan_spec *chan;
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h
380
const struct iio_chan_spec *chan;
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h
572
const struct iio_chan_spec *chan)
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
1132
.chan = st_lsm6dsx_acc_channels,
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
1136
.chan = st_lsm6dsx_gyro_channels,
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
1312
.chan = st_lsm6dsx_acc_tap_channels,
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
1316
.chan = st_lsm6dsx_gyro_channels,
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
1521
.chan = st_lsm6dsx_fusion_channels,
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
1574
.chan = st_lsm6ds0_acc_channels,
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
1578
.chan = st_lsm6dsx_gyro_channels,
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
1980
struct iio_chan_spec const *chan,
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
208
.chan = st_lsm6ds0_acc_channels,
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
2088
const struct iio_chan_spec *chan)
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
2094
switch (chan->channel2) {
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
2119
const struct iio_chan_spec *chan,
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
212
.chan = st_lsm6ds0_gyro_channels,
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
2135
reg = st_lsm6dsx_get_event_reg(hw, event, chan);
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
2151
const struct iio_chan_spec *chan,
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
2170
reg = st_lsm6dsx_get_event_reg(hw, event, chan);
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
2185
const struct iio_chan_spec *chan,
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
2196
return !!(hw->enable_event[event] & BIT(chan->channel2));
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
2243
const struct iio_chan_spec *chan,
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
2257
enable_event = hw->enable_event[event] | BIT(chan->channel2);
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
2259
enable_event = hw->enable_event[event] & ~BIT(chan->channel2);
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
2265
err = st_lsm6dsx_event_setup(hw, event, chan->channel2, state);
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
2343
struct iio_chan_spec const *chan,
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
2348
switch (chan->type) {
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
2651
iio_dev->channels = hw->settings->channels[id].chan;
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
2973
if (hw->settings->fusion_settings.chan) {
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
312
.chan = st_lsm6dsx_acc_channels,
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
316
.chan = st_lsm6dsx_gyro_channels,
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
479
.chan = st_lsm6dsx_acc_channels,
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
483
.chan = st_lsm6dsx_gyro_channels,
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
658
.chan = st_lsm6dsx_acc_channels,
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
662
.chan = st_lsm6dsx_gyro_channels,
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
916
.chan = st_lsm6dsx_acc_channels,
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
920
.chan = st_lsm6dsx_gyro_channels,
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_fusion.c
155
struct iio_chan_spec const *chan,
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_fusion.c
182
struct iio_chan_spec const *chan,
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_fusion.c
227
iio_dev->channels = settings->chan;
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c
617
struct iio_chan_spec const *chan,
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c
655
struct iio_chan_spec const *chan,
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c
663
ret = __st_lsm6dsx_shub_write_raw(iio_dev, chan, val, val2, mask);
drivers/iio/industrialio-backend.c
256
unsigned int chan, char *buf,
drivers/iio/industrialio-backend.c
262
return iio_backend_op_call(back, debugfs_print_chan_status, chan, buf,
drivers/iio/industrialio-backend.c
275
int iio_backend_chan_enable(struct iio_backend *back, unsigned int chan)
drivers/iio/industrialio-backend.c
277
return iio_backend_op_call(back, chan_enable, chan);
drivers/iio/industrialio-backend.c
289
int iio_backend_chan_disable(struct iio_backend *back, unsigned int chan)
drivers/iio/industrialio-backend.c
291
return iio_backend_op_call(back, chan_disable, chan);
drivers/iio/industrialio-backend.c
355
int iio_backend_data_format_set(struct iio_backend *back, unsigned int chan,
drivers/iio/industrialio-backend.c
361
return iio_backend_op_call(back, data_format_set, chan, data);
drivers/iio/industrialio-backend.c
377
int iio_backend_data_source_set(struct iio_backend *back, unsigned int chan,
drivers/iio/industrialio-backend.c
383
return iio_backend_op_call(back, data_source_set, chan, data);
drivers/iio/industrialio-backend.c
399
int iio_backend_data_source_get(struct iio_backend *back, unsigned int chan,
drivers/iio/industrialio-backend.c
404
ret = iio_backend_op_call(back, data_source_get, chan, data);
drivers/iio/industrialio-backend.c
424
int iio_backend_set_sampling_freq(struct iio_backend *back, unsigned int chan,
drivers/iio/industrialio-backend.c
427
return iio_backend_op_call(back, set_sample_rate, chan, sample_rate_hz);
drivers/iio/industrialio-backend.c
444
unsigned int chan,
drivers/iio/industrialio-backend.c
450
return iio_backend_op_call(back, test_pattern_set, chan, pattern);
drivers/iio/industrialio-backend.c
466
int iio_backend_chan_status(struct iio_backend *back, unsigned int chan,
drivers/iio/industrialio-backend.c
469
return iio_backend_op_call(back, chan_status, chan, error);
drivers/iio/industrialio-backend.c
574
struct iio_chan_spec const *chan, int *val, int *val2,
drivers/iio/industrialio-backend.c
577
return iio_backend_op_call(back, read_raw, chan, val, val2, mask);
drivers/iio/industrialio-backend.c
624
const struct iio_chan_spec *chan, char *buf)
drivers/iio/industrialio-backend.c
639
return iio_backend_op_call(back, ext_info_get, private, chan, buf);
drivers/iio/industrialio-backend.c
660
const struct iio_chan_spec *chan,
drivers/iio/industrialio-backend.c
669
return iio_backend_op_call(back, ext_info_set, private, chan, buf, len);
drivers/iio/industrialio-backend.c
728
unsigned int chan,
drivers/iio/industrialio-backend.c
731
return iio_backend_op_call(back, oversampling_ratio_set, chan, ratio);
drivers/iio/industrialio-backend.c
747
struct iio_chan_spec *chan)
drivers/iio/industrialio-backend.c
749
const struct iio_chan_spec_ext_info *frontend_ext_info = chan->ext_info;
drivers/iio/industrialio-backend.c
753
ret = iio_backend_op_call(back, extend_chan_spec, chan);
drivers/iio/industrialio-backend.c
761
if (frontend_ext_info && chan->ext_info != frontend_ext_info)
drivers/iio/industrialio-backend.c
763
if (!chan->ext_info)
drivers/iio/industrialio-backend.c
767
for (back_ext_info = chan->ext_info; back_ext_info->name; back_ext_info++) {
drivers/iio/industrialio-buffer.c
639
const struct iio_chan_spec *chan)
drivers/iio/industrialio-buffer.c
644
chan,
drivers/iio/industrialio-buffer.c
656
chan,
drivers/iio/industrialio-buffer.c
667
if (chan->type != IIO_TIMESTAMP)
drivers/iio/industrialio-buffer.c
669
chan,
drivers/iio/industrialio-buffer.c
672
chan->scan_index,
drivers/iio/industrialio-buffer.c
679
chan,
drivers/iio/industrialio-buffer.c
682
chan->scan_index,
drivers/iio/industrialio-core.c
1048
struct iio_chan_spec const *chan,
drivers/iio/industrialio-core.c
1065
if (chan->modified && (shared_by == IIO_SEPARATE)) {
drivers/iio/industrialio-core.c
1066
if (chan->extend_name)
drivers/iio/industrialio-core.c
1068
iio_modifier_names[chan->channel2],
drivers/iio/industrialio-core.c
1069
chan->extend_name,
drivers/iio/industrialio-core.c
1073
iio_modifier_names[chan->channel2],
drivers/iio/industrialio-core.c
1076
if (chan->extend_name == NULL || shared_by != IIO_SEPARATE)
drivers/iio/industrialio-core.c
1081
chan->extend_name,
drivers/iio/industrialio-core.c
1087
if (chan->differential) { /* Differential can not have modifier */
drivers/iio/industrialio-core.c
1094
iio_direction[chan->output],
drivers/iio/industrialio-core.c
1099
iio_direction[chan->output],
drivers/iio/industrialio-core.c
1100
iio_chan_type_name_spec[chan->type],
drivers/iio/industrialio-core.c
1101
iio_chan_type_name_spec[chan->type],
drivers/iio/industrialio-core.c
1105
if (!chan->indexed) {
drivers/iio/industrialio-core.c
1112
iio_direction[chan->output],
drivers/iio/industrialio-core.c
1113
iio_chan_type_name_spec[chan->type],
drivers/iio/industrialio-core.c
1114
chan->channel,
drivers/iio/industrialio-core.c
1115
iio_chan_type_name_spec[chan->type],
drivers/iio/industrialio-core.c
1116
chan->channel2,
drivers/iio/industrialio-core.c
1127
iio_direction[chan->output],
drivers/iio/industrialio-core.c
1132
iio_direction[chan->output],
drivers/iio/industrialio-core.c
1133
iio_chan_type_name_spec[chan->type],
drivers/iio/industrialio-core.c
1138
if (chan->indexed)
drivers/iio/industrialio-core.c
1140
iio_direction[chan->output],
drivers/iio/industrialio-core.c
1141
iio_chan_type_name_spec[chan->type],
drivers/iio/industrialio-core.c
1142
chan->channel,
drivers/iio/industrialio-core.c
1146
iio_direction[chan->output],
drivers/iio/industrialio-core.c
1147
iio_chan_type_name_spec[chan->type],
drivers/iio/industrialio-core.c
1180
struct iio_chan_spec const *chan,
drivers/iio/industrialio-core.c
1201
postfix, chan,
drivers/iio/industrialio-core.c
1205
iio_attr->c = chan;
drivers/iio/industrialio-core.c
1229
struct iio_chan_spec const *chan)
drivers/iio/industrialio-core.c
1234
if (!indio_dev->info->read_label && !chan->extend_name)
drivers/iio/industrialio-core.c
1238
chan,
drivers/iio/industrialio-core.c
1253
struct iio_chan_spec const *chan,
drivers/iio/industrialio-core.c
1264
chan,
drivers/iio/industrialio-core.c
1283
struct iio_chan_spec const *chan,
drivers/iio/industrialio-core.c
1301
chan,
drivers/iio/industrialio-core.c
1321
struct iio_chan_spec const *chan)
drivers/iio/industrialio-core.c
1327
if (chan->channel < 0)
drivers/iio/industrialio-core.c
1329
ret = iio_device_add_info_mask_type(indio_dev, chan,
drivers/iio/industrialio-core.c
1331
&chan->info_mask_separate);
drivers/iio/industrialio-core.c
1336
ret = iio_device_add_info_mask_type_avail(indio_dev, chan,
drivers/iio/industrialio-core.c
1338
&chan->info_mask_separate_available);
drivers/iio/industrialio-core.c
1343
ret = iio_device_add_info_mask_type(indio_dev, chan,
drivers/iio/industrialio-core.c
1345
&chan->info_mask_shared_by_type);
drivers/iio/industrialio-core.c
1350
ret = iio_device_add_info_mask_type_avail(indio_dev, chan,
drivers/iio/industrialio-core.c
1352
&chan->info_mask_shared_by_type_available);
drivers/iio/industrialio-core.c
1357
ret = iio_device_add_info_mask_type(indio_dev, chan,
drivers/iio/industrialio-core.c
1359
&chan->info_mask_shared_by_dir);
drivers/iio/industrialio-core.c
1364
ret = iio_device_add_info_mask_type_avail(indio_dev, chan,
drivers/iio/industrialio-core.c
1366
&chan->info_mask_shared_by_dir_available);
drivers/iio/industrialio-core.c
1371
ret = iio_device_add_info_mask_type(indio_dev, chan,
drivers/iio/industrialio-core.c
1373
&chan->info_mask_shared_by_all);
drivers/iio/industrialio-core.c
1378
ret = iio_device_add_info_mask_type_avail(indio_dev, chan,
drivers/iio/industrialio-core.c
1380
&chan->info_mask_shared_by_all_available);
drivers/iio/industrialio-core.c
1385
ret = iio_device_add_channel_label(indio_dev, chan);
drivers/iio/industrialio-core.c
1390
if (chan->ext_info) {
drivers/iio/industrialio-core.c
1393
for (ext_info = chan->ext_info; ext_info->name; ext_info++) {
drivers/iio/industrialio-core.c
1395
chan,
drivers/iio/industrialio-core.c
1568
const struct iio_chan_spec *chan =
drivers/iio/industrialio-core.c
1571
if (chan->type == IIO_TIMESTAMP)
drivers/iio/industrialio-core.c
1574
ret = iio_device_add_channel_sysfs(indio_dev, chan);
drivers/iio/industrialio-core.c
527
uintptr_t priv, const struct iio_chan_spec *chan, char *buf)
drivers/iio/industrialio-core.c
550
uintptr_t priv, const struct iio_chan_spec *chan, char *buf)
drivers/iio/industrialio-core.c
558
i = e->get(indio_dev, chan);
drivers/iio/industrialio-core.c
569
uintptr_t priv, const struct iio_chan_spec *chan, const char *buf,
drivers/iio/industrialio-core.c
582
ret = e->set(indio_dev, chan, ret);
drivers/iio/industrialio-core.c
604
const struct iio_chan_spec *chan, char *buf)
drivers/iio/industrialio-core.c
608
mtx = ((iio_get_mount_matrix_t *)priv)(indio_dev, chan);
drivers/iio/industrialio-event.c
385
const struct iio_chan_spec *chan, unsigned int spec_index,
drivers/iio/industrialio-event.c
422
ret = __iio_add_chan_devattr(postfix, chan, show, store,
drivers/iio/industrialio-event.c
441
const struct iio_chan_spec *chan,
drivers/iio/industrialio-event.c
463
ret = __iio_add_chan_devattr(postfix, chan, &iio_ev_label_show, NULL,
drivers/iio/industrialio-event.c
476
struct iio_chan_spec const *chan)
drivers/iio/industrialio-event.c
482
for (i = 0; i < chan->num_event_specs; i++) {
drivers/iio/industrialio-event.c
483
type = chan->event_spec[i].type;
drivers/iio/industrialio-event.c
484
dir = chan->event_spec[i].dir;
drivers/iio/industrialio-event.c
486
ret = iio_device_add_event(indio_dev, chan, i, type, dir,
drivers/iio/industrialio-event.c
487
IIO_SEPARATE, &chan->event_spec[i].mask_separate);
drivers/iio/industrialio-event.c
492
ret = iio_device_add_event(indio_dev, chan, i, type, dir,
drivers/iio/industrialio-event.c
494
&chan->event_spec[i].mask_shared_by_type);
drivers/iio/industrialio-event.c
499
ret = iio_device_add_event(indio_dev, chan, i, type, dir,
drivers/iio/industrialio-event.c
501
&chan->event_spec[i].mask_shared_by_dir);
drivers/iio/industrialio-event.c
506
ret = iio_device_add_event(indio_dev, chan, i, type, dir,
drivers/iio/industrialio-event.c
508
&chan->event_spec[i].mask_shared_by_all);
drivers/iio/industrialio-event.c
513
ret = iio_device_add_event_label(indio_dev, chan, i, type, dir);
drivers/iio/inkern.c
1003
ssize_t iio_read_channel_ext_info(struct iio_channel *chan,
drivers/iio/inkern.c
1013
ext_info = iio_lookup_ext_info(chan, attr);
drivers/iio/inkern.c
1017
return ext_info->read(chan->indio_dev, ext_info->private,
drivers/iio/inkern.c
1018
chan->channel, buf);
drivers/iio/inkern.c
1022
ssize_t iio_write_channel_ext_info(struct iio_channel *chan, const char *attr,
drivers/iio/inkern.c
1027
ext_info = iio_lookup_ext_info(chan, attr);
drivers/iio/inkern.c
1031
return ext_info->write(chan->indio_dev, ext_info->private,
drivers/iio/inkern.c
1032
chan->channel, buf, len);
drivers/iio/inkern.c
1036
ssize_t iio_read_channel_label(struct iio_channel *chan, char *buf)
drivers/iio/inkern.c
1043
return do_iio_read_channel_label(chan->indio_dev, chan->channel, buf);
drivers/iio/inkern.c
108
const struct iio_chan_spec *chan = NULL;
drivers/iio/inkern.c
113
chan = &indio_dev->channels[i];
drivers/iio/inkern.c
116
return chan;
drivers/iio/inkern.c
205
struct iio_channel *chan;
drivers/iio/inkern.c
218
chan = fwnode_iio_channel_get(fwnode, index);
drivers/iio/inkern.c
219
if (!IS_ERR(chan) || PTR_ERR(chan) == -EPROBE_DEFER)
drivers/iio/inkern.c
220
return chan;
drivers/iio/inkern.c
239
if (PTR_ERR(chan) != -EINVAL && PTR_ERR(chan) != -ENOENT)
drivers/iio/inkern.c
240
return chan;
drivers/iio/inkern.c
241
} else if (PTR_ERR(chan) != -ENOENT) {
drivers/iio/inkern.c
246
return chan;
drivers/iio/inkern.c
257
struct iio_channel *chan;
drivers/iio/inkern.c
260
chan = __fwnode_iio_channel_get_by_name(fwnode, name);
drivers/iio/inkern.c
261
if (!IS_ERR(chan) || PTR_ERR(chan) != -ENODEV)
drivers/iio/inkern.c
262
return chan;
drivers/iio/inkern.c
275
chan = __fwnode_iio_channel_get_by_name(parent, name);
drivers/iio/inkern.c
276
if (!IS_ERR(chan) || PTR_ERR(chan) != -ENODEV) {
drivers/iio/inkern.c
278
return chan;
drivers/iio/inkern.c
513
struct iio_channel *chan = &channels[0];
drivers/iio/inkern.c
515
while (chan->indio_dev) {
drivers/iio/inkern.c
516
iio_device_put(chan->indio_dev);
drivers/iio/inkern.c
517
chan++;
drivers/iio/inkern.c
546
static int iio_channel_read(struct iio_channel *chan, int *val, int *val2,
drivers/iio/inkern.c
549
const struct iio_info *iio_info = chan->indio_dev->info;
drivers/iio/inkern.c
558
if (!iio_channel_has_info(chan->channel, info))
drivers/iio/inkern.c
562
ret = iio_info->read_raw_multi(chan->indio_dev,
drivers/iio/inkern.c
563
chan->channel,
drivers/iio/inkern.c
569
ret = iio_info->read_raw(chan->indio_dev,
drivers/iio/inkern.c
570
chan->channel, val, val2, info);
drivers/iio/inkern.c
578
int iio_read_channel_raw(struct iio_channel *chan, int *val)
drivers/iio/inkern.c
580
struct iio_dev_opaque *iio_dev_opaque = to_iio_dev_opaque(chan->indio_dev);
drivers/iio/inkern.c
583
if (!chan->indio_dev->info)
drivers/iio/inkern.c
586
return iio_channel_read(chan, val, NULL, IIO_CHAN_INFO_RAW);
drivers/iio/inkern.c
590
int iio_read_channel_average_raw(struct iio_channel *chan, int *val)
drivers/iio/inkern.c
592
struct iio_dev_opaque *iio_dev_opaque = to_iio_dev_opaque(chan->indio_dev);
drivers/iio/inkern.c
595
if (!chan->indio_dev->info)
drivers/iio/inkern.c
598
return iio_channel_read(chan, val, NULL, IIO_CHAN_INFO_AVERAGE_RAW);
drivers/iio/inkern.c
638
static int iio_convert_raw_to_processed_unlocked(struct iio_channel *chan,
drivers/iio/inkern.c
647
offset_type = iio_channel_read(chan, &offset_val, &offset_val2,
drivers/iio/inkern.c
673
scale_type = iio_channel_read(chan, &scale_val, &scale_val2,
drivers/iio/inkern.c
692
int iio_convert_raw_to_processed(struct iio_channel *chan, int raw,
drivers/iio/inkern.c
695
struct iio_dev_opaque *iio_dev_opaque = to_iio_dev_opaque(chan->indio_dev);
drivers/iio/inkern.c
698
if (!chan->indio_dev->info)
drivers/iio/inkern.c
701
return iio_convert_raw_to_processed_unlocked(chan, raw, processed,
drivers/iio/inkern.c
706
int iio_read_channel_attribute(struct iio_channel *chan, int *val, int *val2,
drivers/iio/inkern.c
709
struct iio_dev_opaque *iio_dev_opaque = to_iio_dev_opaque(chan->indio_dev);
drivers/iio/inkern.c
712
if (!chan->indio_dev->info)
drivers/iio/inkern.c
715
return iio_channel_read(chan, val, val2, attribute);
drivers/iio/inkern.c
719
int iio_read_channel_offset(struct iio_channel *chan, int *val, int *val2)
drivers/iio/inkern.c
721
return iio_read_channel_attribute(chan, val, val2, IIO_CHAN_INFO_OFFSET);
drivers/iio/inkern.c
725
int iio_read_channel_processed_scale(struct iio_channel *chan, int *val,
drivers/iio/inkern.c
728
struct iio_dev_opaque *iio_dev_opaque = to_iio_dev_opaque(chan->indio_dev);
drivers/iio/inkern.c
732
if (!chan->indio_dev->info)
drivers/iio/inkern.c
735
if (iio_channel_has_info(chan->channel, IIO_CHAN_INFO_PROCESSED)) {
drivers/iio/inkern.c
736
ret = iio_channel_read(chan, &pval, &pval2,
drivers/iio/inkern.c
747
ret = iio_channel_read(chan, val, NULL, IIO_CHAN_INFO_RAW);
drivers/iio/inkern.c
751
return iio_convert_raw_to_processed_unlocked(chan, *val, val,
drivers/iio/inkern.c
757
int iio_read_channel_processed(struct iio_channel *chan, int *val)
drivers/iio/inkern.c
760
return iio_read_channel_processed_scale(chan, val, 1);
drivers/iio/inkern.c
764
int iio_read_channel_scale(struct iio_channel *chan, int *val, int *val2)
drivers/iio/inkern.c
766
return iio_read_channel_attribute(chan, val, val2, IIO_CHAN_INFO_SCALE);
drivers/iio/inkern.c
770
static int iio_channel_read_avail(struct iio_channel *chan,
drivers/iio/inkern.c
774
const struct iio_info *iio_info = chan->indio_dev->info;
drivers/iio/inkern.c
776
if (!iio_channel_has_available(chan->channel, info))
drivers/iio/inkern.c
780
return iio_info->read_avail(chan->indio_dev, chan->channel,
drivers/iio/inkern.c
785
int iio_read_avail_channel_attribute(struct iio_channel *chan,
drivers/iio/inkern.c
789
struct iio_dev_opaque *iio_dev_opaque = to_iio_dev_opaque(chan->indio_dev);
drivers/iio/inkern.c
792
if (!chan->indio_dev->info)
drivers/iio/inkern.c
795
return iio_channel_read_avail(chan, vals, type, length, attribute);
drivers/iio/inkern.c
799
int iio_read_avail_channel_raw(struct iio_channel *chan,
drivers/iio/inkern.c
805
ret = iio_read_avail_channel_attribute(chan, vals, &type, length,
drivers/iio/inkern.c
816
static int iio_channel_read_max(struct iio_channel *chan,
drivers/iio/inkern.c
824
ret = iio_channel_read_avail(chan, &vals, type, &length, info);
drivers/iio/inkern.c
859
int iio_read_max_channel_raw(struct iio_channel *chan, int *val)
drivers/iio/inkern.c
861
struct iio_dev_opaque *iio_dev_opaque = to_iio_dev_opaque(chan->indio_dev);
drivers/iio/inkern.c
865
if (!chan->indio_dev->info)
drivers/iio/inkern.c
868
return iio_channel_read_max(chan, val, NULL, &type, IIO_CHAN_INFO_RAW);
drivers/iio/inkern.c
872
static int iio_channel_read_min(struct iio_channel *chan,
drivers/iio/inkern.c
880
ret = iio_channel_read_avail(chan, &vals, type, &length, info);
drivers/iio/inkern.c
915
int iio_read_min_channel_raw(struct iio_channel *chan, int *val)
drivers/iio/inkern.c
917
struct iio_dev_opaque *iio_dev_opaque = to_iio_dev_opaque(chan->indio_dev);
drivers/iio/inkern.c
921
if (!chan->indio_dev->info)
drivers/iio/inkern.c
924
return iio_channel_read_min(chan, val, NULL, &type, IIO_CHAN_INFO_RAW);
drivers/iio/inkern.c
928
int iio_get_channel_type(struct iio_channel *chan, enum iio_chan_type *type)
drivers/iio/inkern.c
930
struct iio_dev_opaque *iio_dev_opaque = to_iio_dev_opaque(chan->indio_dev);
drivers/iio/inkern.c
933
if (!chan->indio_dev->info)
drivers/iio/inkern.c
936
*type = chan->channel->type;
drivers/iio/inkern.c
942
static int iio_channel_write(struct iio_channel *chan, int val, int val2,
drivers/iio/inkern.c
945
const struct iio_info *iio_info = chan->indio_dev->info;
drivers/iio/inkern.c
948
return iio_info->write_raw(chan->indio_dev,
drivers/iio/inkern.c
949
chan->channel, val, val2, info);
drivers/iio/inkern.c
953
int iio_write_channel_attribute(struct iio_channel *chan, int val, int val2,
drivers/iio/inkern.c
956
struct iio_dev_opaque *iio_dev_opaque = to_iio_dev_opaque(chan->indio_dev);
drivers/iio/inkern.c
959
if (!chan->indio_dev->info)
drivers/iio/inkern.c
962
return iio_channel_write(chan, val, val2, attribute);
drivers/iio/inkern.c
966
int iio_write_channel_raw(struct iio_channel *chan, int val)
drivers/iio/inkern.c
968
return iio_write_channel_attribute(chan, val, 0, IIO_CHAN_INFO_RAW);
drivers/iio/inkern.c
972
unsigned int iio_get_channel_ext_info_count(struct iio_channel *chan)
drivers/iio/inkern.c
977
if (!chan->channel->ext_info)
drivers/iio/inkern.c
980
for (ext_info = chan->channel->ext_info; ext_info->name; ext_info++)
drivers/iio/inkern.c
988
iio_lookup_ext_info(const struct iio_channel *chan, const char *attr)
drivers/iio/inkern.c
992
if (!chan->channel->ext_info)
drivers/iio/inkern.c
995
for (ext_info = chan->channel->ext_info; ext_info->name; ++ext_info) {
drivers/iio/light/acpi-als.c
114
struct iio_chan_spec const *chan, int *val,
drivers/iio/light/acpi-als.c
125
if (chan->type != IIO_LIGHT)
drivers/iio/light/adjd_s311.c
171
struct iio_chan_spec const *chan,
drivers/iio/light/adjd_s311.c
180
ADJD_S311_DATA_REG(chan->address), val);
drivers/iio/light/adjd_s311.c
186
ADJD_S311_CAP_REG(chan->address));
drivers/iio/light/adjd_s311.c
193
ADJD_S311_INT_REG(chan->address));
drivers/iio/light/adjd_s311.c
208
struct iio_chan_spec const *chan,
drivers/iio/light/adjd_s311.c
219
ADJD_S311_CAP_REG(chan->address), val);
drivers/iio/light/adjd_s311.c
225
ADJD_S311_INT_REG(chan->address), val2);
drivers/iio/light/adjd_s311.c
63
#define ADJD_S311_DATA_REG(chan) (ADJD_S311_DATA_RED + (chan) * 2)
drivers/iio/light/adjd_s311.c
64
#define ADJD_S311_INT_REG(chan) (ADJD_S311_INT_RED + (chan) * 2)
drivers/iio/light/adjd_s311.c
65
#define ADJD_S311_CAP_REG(chan) (ADJD_S311_CAP_RED + (chan))
drivers/iio/light/adux1020.c
360
struct iio_chan_spec const *chan,
drivers/iio/light/adux1020.c
372
switch (chan->type) {
drivers/iio/light/adux1020.c
390
switch (chan->type) {
drivers/iio/light/adux1020.c
409
switch (chan->type) {
drivers/iio/light/adux1020.c
450
struct iio_chan_spec const *chan,
drivers/iio/light/adux1020.c
460
if (chan->type == IIO_PROXIMITY) {
drivers/iio/light/adux1020.c
476
if (chan->type == IIO_CURRENT) {
drivers/iio/light/adux1020.c
501
const struct iio_chan_spec *chan,
drivers/iio/light/adux1020.c
520
switch (chan->type) {
drivers/iio/light/adux1020.c
560
const struct iio_chan_spec *chan,
drivers/iio/light/adux1020.c
568
switch (chan->type) {
drivers/iio/light/adux1020.c
587
const struct iio_chan_spec *chan,
drivers/iio/light/adux1020.c
597
switch (chan->type) {
drivers/iio/light/adux1020.c
618
const struct iio_chan_spec *chan,
drivers/iio/light/adux1020.c
626
switch (chan->type) {
drivers/iio/light/al3000a.c
106
struct iio_chan_spec const *chan, int *val,
drivers/iio/light/al3010.c
109
struct iio_chan_spec const *chan, int *val,
drivers/iio/light/al3010.c
146
struct iio_chan_spec const *chan, int val,
drivers/iio/light/al3320a.c
133
struct iio_chan_spec const *chan, int *val,
drivers/iio/light/al3320a.c
170
struct iio_chan_spec const *chan, int val,
drivers/iio/light/apds9160.c
1012
switch (chan->type) {
drivers/iio/light/apds9160.c
1021
switch (chan->type) {
drivers/iio/light/apds9160.c
1034
switch (chan->type) {
drivers/iio/light/apds9160.c
1043
switch (chan->type) {
drivers/iio/light/apds9160.c
1062
struct iio_chan_spec const *chan, int val,
drivers/iio/light/apds9160.c
1073
switch (chan->type) {
drivers/iio/light/apds9160.c
1082
switch (chan->type) {
drivers/iio/light/apds9160.c
1093
switch (chan->type) {
drivers/iio/light/apds9160.c
1102
switch (chan->type) {
drivers/iio/light/apds9160.c
1113
static inline int apds9160_get_thres_reg(const struct iio_chan_spec *chan,
drivers/iio/light/apds9160.c
1118
switch (chan->type) {
drivers/iio/light/apds9160.c
1129
switch (chan->type) {
drivers/iio/light/apds9160.c
1148
const struct iio_chan_spec *chan,
drivers/iio/light/apds9160.c
1160
ret = apds9160_get_thres_reg(chan, dir, &reg);
drivers/iio/light/apds9160.c
1164
switch (chan->type) {
drivers/iio/light/apds9160.c
1189
const struct iio_chan_spec *chan,
drivers/iio/light/apds9160.c
1201
ret = apds9160_get_thres_reg(chan, dir, &reg);
drivers/iio/light/apds9160.c
1205
switch (chan->type) {
drivers/iio/light/apds9160.c
1230
const struct iio_chan_spec *chan,
drivers/iio/light/apds9160.c
1236
switch (chan->type) {
drivers/iio/light/apds9160.c
1247
const struct iio_chan_spec *chan,
drivers/iio/light/apds9160.c
1254
switch (chan->type) {
drivers/iio/light/apds9160.c
867
struct iio_chan_spec const *chan,
drivers/iio/light/apds9160.c
875
switch (chan->type) {
drivers/iio/light/apds9160.c
892
switch (chan->type) {
drivers/iio/light/apds9160.c
933
switch (chan->type) {
drivers/iio/light/apds9160.c
950
struct iio_chan_spec const *chan,
drivers/iio/light/apds9160.c
970
struct iio_chan_spec const *chan, int *val,
drivers/iio/light/apds9160.c
978
switch (chan->type) {
drivers/iio/light/apds9160.c
982
ret = regmap_bulk_read(data->regmap, chan->address,
drivers/iio/light/apds9160.c
996
ret = regmap_bulk_read(data->regmap, chan->address,
drivers/iio/light/apds9300.c
235
struct iio_chan_spec const *chan, int *val, int *val2,
drivers/iio/light/apds9300.c
242
switch (chan->type) {
drivers/iio/light/apds9300.c
258
ret = apds9300_get_adc_val(data, chan->channel);
drivers/iio/light/apds9300.c
273
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/light/apds9300.c
294
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/light/apds9300.c
312
const struct iio_chan_spec *chan,
drivers/iio/light/apds9300.c
322
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/light/apds9306.c
1009
const struct iio_chan_spec *chan,
drivers/iio/light/apds9306.c
1031
const struct iio_chan_spec *chan,
drivers/iio/light/apds9306.c
1051
if (chan->type == IIO_LIGHT)
drivers/iio/light/apds9306.c
1054
if (chan->type == IIO_INTENSITY)
drivers/iio/light/apds9306.c
1071
const struct iio_chan_spec *chan,
drivers/iio/light/apds9306.c
1095
if (chan->type == IIO_LIGHT)
drivers/iio/light/apds9306.c
1097
else if (chan->type == IIO_INTENSITY)
drivers/iio/light/apds9306.c
819
struct iio_chan_spec const *chan, int *val,
drivers/iio/light/apds9306.c
827
if (chan->channel2 == IIO_MOD_LIGHT_CLEAR)
drivers/iio/light/apds9306.c
868
struct iio_chan_spec const *chan,
drivers/iio/light/apds9306.c
891
struct iio_chan_spec const *chan,
drivers/iio/light/apds9306.c
907
struct iio_chan_spec const *chan, int val,
drivers/iio/light/apds9306.c
978
const struct iio_chan_spec *chan,
drivers/iio/light/apds9960.c
340
struct iio_chan_spec const *chan, int calibbias)
drivers/iio/light/apds9960.c
349
if (apds9960_offset_regs[chan->channel][i] == 0)
drivers/iio/light/apds9960.c
352
ret = regmap_write(data->regmap, apds9960_offset_regs[chan->channel][i], calibbias);
drivers/iio/light/apds9960.c
356
data->calibbias[chan->channel] = calibbias;
drivers/iio/light/apds9960.c
513
struct iio_chan_spec const *chan,
drivers/iio/light/apds9960.c
526
switch (chan->type) {
drivers/iio/light/apds9960.c
528
ret = regmap_read(data->regmap, chan->address, val);
drivers/iio/light/apds9960.c
533
ret = regmap_bulk_read(data->regmap, chan->address,
drivers/iio/light/apds9960.c
548
switch (chan->type) {
drivers/iio/light/apds9960.c
561
switch (chan->type) {
drivers/iio/light/apds9960.c
577
*val = data->calibbias[chan->channel];
drivers/iio/light/apds9960.c
587
struct iio_chan_spec const *chan,
drivers/iio/light/apds9960.c
595
switch (chan->type) {
drivers/iio/light/apds9960.c
606
switch (chan->type) {
drivers/iio/light/apds9960.c
617
return apds9960_set_calibbias(data, chan, val);
drivers/iio/light/apds9960.c
625
static inline int apds9960_get_thres_reg(const struct iio_chan_spec *chan,
drivers/iio/light/apds9960.c
631
switch (chan->type) {
drivers/iio/light/apds9960.c
643
switch (chan->type) {
drivers/iio/light/apds9960.c
662
const struct iio_chan_spec *chan,
drivers/iio/light/apds9960.c
676
ret = apds9960_get_thres_reg(chan, dir, &reg);
drivers/iio/light/apds9960.c
680
if (chan->type == IIO_PROXIMITY) {
drivers/iio/light/apds9960.c
684
} else if (chan->type == IIO_INTENSITY) {
drivers/iio/light/apds9960.c
698
const struct iio_chan_spec *chan,
drivers/iio/light/apds9960.c
712
ret = apds9960_get_thres_reg(chan, dir, &reg);
drivers/iio/light/apds9960.c
716
if (chan->type == IIO_PROXIMITY) {
drivers/iio/light/apds9960.c
722
} else if (chan->type == IIO_INTENSITY) {
drivers/iio/light/apds9960.c
736
const struct iio_chan_spec *chan,
drivers/iio/light/apds9960.c
742
switch (chan->type) {
drivers/iio/light/apds9960.c
753
const struct iio_chan_spec *chan,
drivers/iio/light/apds9960.c
761
switch (chan->type) {
drivers/iio/light/apds9999.c
167
struct iio_chan_spec const *chan,
drivers/iio/light/apds9999.c
178
ret = apds9999_read_channel(data, chan->address, &counts);
drivers/iio/light/as73211.c
100
int (*intensity_scale)(struct as73211_data *data, int chan, int *val, int *val2);
drivers/iio/light/as73211.c
371
static int as73211_intensity_scale(struct as73211_data *data, int chan,
drivers/iio/light/as73211.c
374
switch (chan) {
drivers/iio/light/as73211.c
392
static int as7331_intensity_scale(struct as73211_data *data, int chan,
drivers/iio/light/as73211.c
395
switch (chan) {
drivers/iio/light/as73211.c
413
static int as73211_read_raw(struct iio_dev *indio_dev, struct iio_chan_spec const *chan,
drivers/iio/light/as73211.c
431
ret = i2c_smbus_read_word_data(data->client, chan->address);
drivers/iio/light/as73211.c
445
switch (chan->type) {
drivers/iio/light/as73211.c
452
return data->spec_dev->intensity_scale(data, chan->channel2,
drivers/iio/light/as73211.c
484
static int as73211_read_avail(struct iio_dev *indio_dev, struct iio_chan_spec const *chan,
drivers/iio/light/as73211.c
514
struct iio_chan_spec const *chan __always_unused,
drivers/iio/light/as73211.c
608
static int as73211_write_raw(struct iio_dev *indio_dev, struct iio_chan_spec const *chan,
drivers/iio/light/as73211.c
619
ret = _as73211_write_raw(indio_dev, chan, val, val2, mask);
drivers/iio/light/as73211.c
640
__le16 chan[4];
drivers/iio/light/as73211.c
664
.len = sizeof(scan.chan),
drivers/iio/light/as73211.c
665
.buf = (u8 *)&scan.chan,
drivers/iio/light/as73211.c
677
(char *)&scan.chan[0], 3 * sizeof(scan.chan[0]));
drivers/iio/light/as73211.c
688
scan.chan[1] = cpu_to_le16(U16_MAX);
drivers/iio/light/as73211.c
689
scan.chan[2] = cpu_to_le16(U16_MAX);
drivers/iio/light/as73211.c
690
scan.chan[3] = cpu_to_le16(U16_MAX);
drivers/iio/light/as73211.c
692
scan.chan[0] = cpu_to_le16(U16_MAX);
drivers/iio/light/as73211.c
693
scan.chan[1] = cpu_to_le16(U16_MAX);
drivers/iio/light/as73211.c
694
scan.chan[2] = cpu_to_le16(U16_MAX);
drivers/iio/light/bh1745.c
420
struct iio_chan_spec const *chan,
drivers/iio/light/bh1745.c
432
ret = regmap_bulk_read(data->regmap, chan->address, &value, 2);
drivers/iio/light/bh1745.c
465
struct iio_chan_spec const *chan,
drivers/iio/light/bh1745.c
484
struct iio_chan_spec const *chan,
drivers/iio/light/bh1745.c
500
const struct iio_chan_spec *chan,
drivers/iio/light/bh1745.c
544
const struct iio_chan_spec *chan,
drivers/iio/light/bh1745.c
594
const struct iio_chan_spec *chan,
drivers/iio/light/bh1745.c
612
switch (chan->channel2) {
drivers/iio/light/bh1745.c
639
const struct iio_chan_spec *chan,
drivers/iio/light/bh1745.c
653
switch (chan->channel2) {
drivers/iio/light/bh1745.c
680
struct iio_chan_spec const *chan, const int **vals,
drivers/iio/light/bh1750.c
137
struct iio_chan_spec const *chan,
drivers/iio/light/bh1750.c
146
switch (chan->type) {
drivers/iio/light/bh1750.c
173
struct iio_chan_spec const *chan,
drivers/iio/light/bh1780.c
107
switch (chan->type) {
drivers/iio/light/bh1780.c
99
struct iio_chan_spec const *chan,
drivers/iio/light/cm32181.c
336
struct iio_chan_spec const *chan,
drivers/iio/light/cm32181.c
362
struct iio_chan_spec const *chan,
drivers/iio/light/cm3232.c
234
struct iio_chan_spec const *chan,
drivers/iio/light/cm3232.c
258
struct iio_chan_spec const *chan,
drivers/iio/light/cm3323.c
155
struct iio_chan_spec const *chan, int *val,
drivers/iio/light/cm3323.c
164
ret = i2c_smbus_read_word_data(data->client, chan->address);
drivers/iio/light/cm3323.c
192
struct iio_chan_spec const *chan, int val,
drivers/iio/light/cm3605.c
106
struct iio_chan_spec const *chan,
drivers/iio/light/cm3605.c
114
switch (chan->type) {
drivers/iio/light/cm36651.c
191
struct iio_chan_spec const *chan, int *val)
drivers/iio/light/cm36651.c
196
switch (chan->type) {
drivers/iio/light/cm36651.c
198
*val = i2c_smbus_read_word_data(client, chan->address);
drivers/iio/light/cm36651.c
327
struct iio_chan_spec const *chan, int *val)
drivers/iio/light/cm36651.c
332
if (chan->type == IIO_LIGHT)
drivers/iio/light/cm36651.c
334
else if (chan->type == IIO_PROXIMITY)
drivers/iio/light/cm36651.c
346
ret = cm36651_read_output(cm36651, chan, val);
drivers/iio/light/cm36651.c
356
struct iio_chan_spec const *chan, int *val2)
drivers/iio/light/cm36651.c
358
switch (chan->type) {
drivers/iio/light/cm36651.c
360
if (cm36651->cs_int_time[chan->address] == CM36651_CS_IT1)
drivers/iio/light/cm36651.c
362
else if (cm36651->cs_int_time[chan->address] == CM36651_CS_IT2)
drivers/iio/light/cm36651.c
364
else if (cm36651->cs_int_time[chan->address] == CM36651_CS_IT3)
drivers/iio/light/cm36651.c
366
else if (cm36651->cs_int_time[chan->address] == CM36651_CS_IT4)
drivers/iio/light/cm36651.c
391
struct iio_chan_spec const *chan, int val)
drivers/iio/light/cm36651.c
397
switch (chan->type) {
drivers/iio/light/cm36651.c
411
int_time >> 2 * (chan->address));
drivers/iio/light/cm36651.c
416
cm36651->cs_int_time[chan->address] = int_time;
drivers/iio/light/cm36651.c
446
struct iio_chan_spec const *chan,
drivers/iio/light/cm36651.c
456
ret = cm36651_read_channel(cm36651, chan, val);
drivers/iio/light/cm36651.c
460
ret = cm36651_read_int_time(cm36651, chan, val2);
drivers/iio/light/cm36651.c
472
struct iio_chan_spec const *chan,
drivers/iio/light/cm36651.c
480
ret = cm36651_write_int_time(cm36651, chan, val2);
drivers/iio/light/cm36651.c
489
const struct iio_chan_spec *chan,
drivers/iio/light/cm36651.c
503
const struct iio_chan_spec *chan,
drivers/iio/light/cm36651.c
529
const struct iio_chan_spec *chan,
drivers/iio/light/cm36651.c
548
const struct iio_chan_spec *chan,
drivers/iio/light/cros_ec_light_prox.c
114
ret = cros_ec_sensors_core_read(&st->core, chan, val, val2,
drivers/iio/light/cros_ec_light_prox.c
125
struct iio_chan_spec const *chan,
drivers/iio/light/cros_ec_light_prox.c
130
int idx = chan->scan_index;
drivers/iio/light/cros_ec_light_prox.c
155
ret = cros_ec_sensors_core_write(&st->core, chan, val, val2,
drivers/iio/light/cros_ec_light_prox.c
39
struct iio_chan_spec const *chan,
drivers/iio/light/cros_ec_light_prox.c
46
int idx = chan->scan_index;
drivers/iio/light/cros_ec_light_prox.c
52
if (chan->type == IIO_PROXIMITY) {
drivers/iio/light/cros_ec_light_prox.c
64
if (chan->type == IIO_LIGHT) {
drivers/iio/light/gp2ap002.c
247
struct iio_chan_spec const *chan,
drivers/iio/light/gp2ap002.c
257
switch (chan->type) {
drivers/iio/light/gp2ap002.c
325
const struct iio_chan_spec *chan,
drivers/iio/light/gp2ap002.c
339
const struct iio_chan_spec *chan,
drivers/iio/light/gp2ap020a00f.c
1006
thresh_reg_l = gp2ap020a00f_get_thresh_reg(chan, dir);
drivers/iio/light/gp2ap020a00f.c
1040
const struct iio_chan_spec *chan,
drivers/iio/light/gp2ap020a00f.c
1051
thresh_reg_l = gp2ap020a00f_get_thresh_reg(chan, dir);
drivers/iio/light/gp2ap020a00f.c
1118
const struct iio_chan_spec *chan,
drivers/iio/light/gp2ap020a00f.c
1128
switch (chan->type) {
drivers/iio/light/gp2ap020a00f.c
1147
const struct iio_chan_spec *chan,
drivers/iio/light/gp2ap020a00f.c
1155
switch (chan->type) {
drivers/iio/light/gp2ap020a00f.c
1172
struct iio_chan_spec const *chan, int *val)
drivers/iio/light/gp2ap020a00f.c
1178
switch (chan->scan_index) {
drivers/iio/light/gp2ap020a00f.c
1198
err = gp2ap020a00f_read_output(data, chan->address, val);
drivers/iio/light/gp2ap020a00f.c
1215
struct iio_chan_spec const *chan,
drivers/iio/light/gp2ap020a00f.c
1226
err = gp2ap020a00f_read_channel(data, chan, val);
drivers/iio/light/gp2ap020a00f.c
177
#define GP2AP020A00F_DATA_REG(chan) (GP2AP020A00F_D0_L_REG + (chan) * 2)
drivers/iio/light/gp2ap020a00f.c
973
static int gp2ap020a00f_get_thresh_reg(const struct iio_chan_spec *chan,
drivers/iio/light/gp2ap020a00f.c
976
switch (chan->type) {
drivers/iio/light/gp2ap020a00f.c
993
const struct iio_chan_spec *chan,
drivers/iio/light/hid-sensor-als.c
122
struct iio_chan_spec const *chan,
drivers/iio/light/hid-sensor-als.c
137
switch (chan->scan_index) {
drivers/iio/light/hid-sensor-als.c
140
report_id = als_state->als[chan->scan_index].report_id;
drivers/iio/light/hid-sensor-als.c
141
min = als_state->als[chan->scan_index].logical_minimum;
drivers/iio/light/hid-sensor-als.c
145
report_id = als_state->als[chan->scan_index].report_id;
drivers/iio/light/hid-sensor-als.c
146
min = als_state->als[chan->scan_index].logical_minimum;
drivers/iio/light/hid-sensor-als.c
150
report_id = als_state->als[chan->scan_index].report_id;
drivers/iio/light/hid-sensor-als.c
151
min = als_state->als[chan->scan_index].logical_minimum;
drivers/iio/light/hid-sensor-als.c
155
report_id = als_state->als[chan->scan_index].report_id;
drivers/iio/light/hid-sensor-als.c
156
min = als_state->als[chan->scan_index].logical_minimum;
drivers/iio/light/hid-sensor-als.c
208
struct iio_chan_spec const *chan,
drivers/iio/light/hid-sensor-prox.c
101
if (prox_state->channel2usage[chan->scan_index] ==
drivers/iio/light/hid-sensor-prox.c
108
if (chan->scan_index >= prox_state->num_channels)
drivers/iio/light/hid-sensor-prox.c
111
*val = prox_state->scale_pre_decml[chan->scan_index];
drivers/iio/light/hid-sensor-prox.c
112
*val2 = prox_state->scale_post_decml[chan->scan_index];
drivers/iio/light/hid-sensor-prox.c
113
ret_type = prox_state->scale_precision[chan->scan_index];
drivers/iio/light/hid-sensor-prox.c
137
struct iio_chan_spec const *chan,
drivers/iio/light/hid-sensor-prox.c
192
int chan;
drivers/iio/light/hid-sensor-prox.c
194
for (chan = 0; chan < prox_state->num_channels; chan++)
drivers/iio/light/hid-sensor-prox.c
195
if (prox_state->channel2usage[chan] == usage_id)
drivers/iio/light/hid-sensor-prox.c
197
if (chan == prox_state->num_channels)
drivers/iio/light/hid-sensor-prox.c
205
prox_state->human_presence[chan] = *(u8 *)raw_data * multiplier;
drivers/iio/light/hid-sensor-prox.c
208
prox_state->human_presence[chan] = *(u16 *)raw_data * multiplier;
drivers/iio/light/hid-sensor-prox.c
211
prox_state->human_presence[chan] = *(u32 *)raw_data * multiplier;
drivers/iio/light/hid-sensor-prox.c
72
struct iio_chan_spec const *chan,
drivers/iio/light/hid-sensor-prox.c
88
if (chan->scan_index >= prox_state->num_channels)
drivers/iio/light/hid-sensor-prox.c
90
address = prox_state->channel2usage[chan->scan_index];
drivers/iio/light/hid-sensor-prox.c
91
report_id = prox_state->prox_attr[chan->scan_index].report_id;
drivers/iio/light/hid-sensor-prox.c
93
min = prox_state->prox_attr[chan->scan_index].logical_minimum;
drivers/iio/light/iqs621-als.c
196
struct iio_chan_spec const *chan,
drivers/iio/light/iqs621-als.c
204
switch (chan->type) {
drivers/iio/light/iqs621-als.c
206
ret = regmap_read(iqs62x->regmap, chan->address, val);
drivers/iio/light/iqs621-als.c
215
ret = regmap_raw_read(iqs62x->regmap, chan->address, &val_buf,
drivers/iio/light/iqs621-als.c
229
const struct iio_chan_spec *chan,
drivers/iio/light/iqs621-als.c
237
switch (chan->type) {
drivers/iio/light/iqs621-als.c
253
const struct iio_chan_spec *chan,
drivers/iio/light/iqs621-als.c
270
switch (chan->type) {
drivers/iio/light/iqs621-als.c
314
const struct iio_chan_spec *chan,
drivers/iio/light/iqs621-als.c
346
const struct iio_chan_spec *chan,
drivers/iio/light/isl29018.c
360
struct iio_chan_spec const *chan,
drivers/iio/light/isl29018.c
375
if (chan->type == IIO_LIGHT) {
drivers/iio/light/isl29018.c
382
if (chan->type == IIO_LIGHT && !val)
drivers/iio/light/isl29018.c
386
if (chan->type == IIO_LIGHT)
drivers/iio/light/isl29018.c
400
struct iio_chan_spec const *chan,
drivers/iio/light/isl29018.c
416
switch (chan->type) {
drivers/iio/light/isl29018.c
435
if (chan->type == IIO_LIGHT) {
drivers/iio/light/isl29018.c
442
if (chan->type == IIO_LIGHT) {
drivers/iio/light/isl29018.c
449
if (chan->type == IIO_LIGHT) {
drivers/iio/light/isl29028.c
348
struct iio_chan_spec const *chan,
drivers/iio/light/isl29028.c
362
switch (chan->type) {
drivers/iio/light/isl29028.c
399
__func__, chan->type);
drivers/iio/light/isl29028.c
416
struct iio_chan_spec const *chan,
drivers/iio/light/isl29028.c
433
switch (chan->type) {
drivers/iio/light/isl29028.c
453
if (chan->type != IIO_PROXIMITY)
drivers/iio/light/isl29028.c
461
if (chan->type != IIO_LIGHT)
drivers/iio/light/isl29125.c
121
struct iio_chan_spec const *chan,
drivers/iio/light/isl29125.c
131
ret = isl29125_read_data(data, chan->scan_index);
drivers/iio/light/isl29125.c
149
struct iio_chan_spec const *chan,
drivers/iio/light/isl76682.c
110
if (chan->type == IIO_LIGHT && val2 != isl76682_range_table[i].als)
drivers/iio/light/isl76682.c
112
if (chan->type == IIO_INTENSITY && val2 != isl76682_range_table[i].ir)
drivers/iio/light/isl76682.c
124
struct iio_chan_spec const *chan,
drivers/iio/light/isl76682.c
135
switch (chan->type) {
drivers/iio/light/isl76682.c
151
switch (chan->type) {
drivers/iio/light/isl76682.c
187
struct iio_chan_spec const *chan,
drivers/iio/light/isl76682.c
193
switch (chan->type) {
drivers/iio/light/isl76682.c
97
struct iio_chan_spec const *chan,
drivers/iio/light/jsa1212.c
212
struct iio_chan_spec const *chan,
drivers/iio/light/jsa1212.c
221
switch (chan->type) {
drivers/iio/light/jsa1212.c
235
switch (chan->type) {
drivers/iio/light/lm3533-als.c
192
struct iio_chan_spec const *chan,
drivers/iio/light/lm3533-als.c
199
switch (chan->type) {
drivers/iio/light/lm3533-als.c
204
ret = lm3533_als_get_current(indio_dev, chan->channel,
drivers/iio/light/ltr390.c
222
struct iio_chan_spec const *chan, int *val,
drivers/iio/light/ltr390.c
231
switch (chan->type) {
drivers/iio/light/ltr390.c
258
switch (chan->type) {
drivers/iio/light/ltr390.c
287
struct iio_chan_spec const *chan,
drivers/iio/light/ltr390.c
300
ret = ltr390_do_read_raw(iio_device, chan, val, val2, mask);
drivers/iio/light/ltr390.c
418
static int ltr390_read_avail(struct iio_dev *indio_dev, struct iio_chan_spec const *chan,
drivers/iio/light/ltr390.c
442
static int ltr390_write_raw(struct iio_dev *indio_dev, struct iio_chan_spec const *chan,
drivers/iio/light/ltr390.c
555
const struct iio_chan_spec *chan,
drivers/iio/light/ltr390.c
574
const struct iio_chan_spec *chan,
drivers/iio/light/ltr390.c
599
const struct iio_chan_spec *chan,
drivers/iio/light/ltr390.c
614
const struct iio_chan_spec *chan,
drivers/iio/light/ltr390.c
629
switch (chan->type) {
drivers/iio/light/ltr390.c
650
const struct iio_chan_spec *chan,
drivers/iio/light/ltr390.c
670
ret = ltr390_do_event_config(indio_dev, chan, type, dir, state);
drivers/iio/light/ltr501.c
1000
const struct iio_chan_spec *chan,
drivers/iio/light/ltr501.c
1010
return ltr501_read_thresh(indio_dev, chan, type, dir,
drivers/iio/light/ltr501.c
1014
chan->type, val2);
drivers/iio/light/ltr501.c
1026
const struct iio_chan_spec *chan,
drivers/iio/light/ltr501.c
1036
return ltr501_write_thresh(indio_dev, chan, type, dir,
drivers/iio/light/ltr501.c
1039
return ltr501_write_intr_prst(iio_priv(indio_dev), chan->type,
drivers/iio/light/ltr501.c
1049
const struct iio_chan_spec *chan,
drivers/iio/light/ltr501.c
1056
switch (chan->type) {
drivers/iio/light/ltr501.c
1075
const struct iio_chan_spec *chan,
drivers/iio/light/ltr501.c
1082
switch (chan->type) {
drivers/iio/light/ltr501.c
525
const struct iio_chan_spec *chan,
drivers/iio/light/ltr501.c
645
struct iio_chan_spec const *chan,
drivers/iio/light/ltr501.c
651
switch (chan->type) {
drivers/iio/light/ltr501.c
658
*val = le16_to_cpu(chan->address == LTR501_ALS_DATA1 ?
drivers/iio/light/ltr501.c
675
struct iio_chan_spec const *chan,
drivers/iio/light/ltr501.c
684
switch (chan->type) {
drivers/iio/light/ltr501.c
705
ret = ltr501_read_info_raw(data, chan, val);
drivers/iio/light/ltr501.c
711
switch (chan->type) {
drivers/iio/light/ltr501.c
728
switch (chan->type) {
drivers/iio/light/ltr501.c
735
switch (chan->type) {
drivers/iio/light/ltr501.c
760
struct iio_chan_spec const *chan,
drivers/iio/light/ltr501.c
769
switch (chan->type) {
drivers/iio/light/ltr501.c
799
switch (chan->type) {
drivers/iio/light/ltr501.c
813
switch (chan->type) {
drivers/iio/light/ltr501.c
825
ret = ltr501_write_intr_prst(data, chan->type,
drivers/iio/light/ltr501.c
844
ret = ltr501_write_intr_prst(data, chan->type,
drivers/iio/light/ltr501.c
861
struct iio_chan_spec const *chan,
drivers/iio/light/ltr501.c
869
ret = __ltr501_write_raw(indio_dev, chan, val, val2, mask);
drivers/iio/light/ltr501.c
877
const struct iio_chan_spec *chan,
drivers/iio/light/ltr501.c
886
switch (chan->type) {
drivers/iio/light/ltr501.c
937
const struct iio_chan_spec *chan,
drivers/iio/light/ltr501.c
949
switch (chan->type) {
drivers/iio/light/ltrf216a.c
261
struct iio_chan_spec const *chan, int *val,
drivers/iio/light/ltrf216a.c
300
struct iio_chan_spec const *chan, int val,
drivers/iio/light/ltrf216a.c
320
struct iio_chan_spec const *chan,
drivers/iio/light/lv0104cs.c
227
struct iio_chan_spec const *chan,
drivers/iio/light/lv0104cs.c
233
if (chan->type != IIO_LIGHT)
drivers/iio/light/lv0104cs.c
370
struct iio_chan_spec const *chan,
drivers/iio/light/lv0104cs.c
375
if (chan->type != IIO_LIGHT)
drivers/iio/light/max44000.c
256
struct iio_chan_spec const *chan,
drivers/iio/light/max44000.c
266
switch (chan->type) {
drivers/iio/light/max44000.c
299
switch (chan->type) {
drivers/iio/light/max44000.c
340
struct iio_chan_spec const *chan,
drivers/iio/light/max44000.c
346
if (mask == IIO_CHAN_INFO_RAW && chan->type == IIO_CURRENT) {
drivers/iio/light/max44000.c
351
} else if (mask == IIO_CHAN_INFO_INT_TIME && chan->type == IIO_LIGHT) {
drivers/iio/light/max44000.c
360
} else if (mask == IIO_CHAN_INFO_SCALE && chan->type == IIO_LIGHT) {
drivers/iio/light/max44000.c
375
struct iio_chan_spec const *chan,
drivers/iio/light/max44000.c
378
if (mask == IIO_CHAN_INFO_INT_TIME && chan->type == IIO_LIGHT)
drivers/iio/light/max44000.c
380
else if (mask == IIO_CHAN_INFO_SCALE && chan->type == IIO_LIGHT)
drivers/iio/light/max44009.c
150
struct iio_chan_spec const *chan, int val,
drivers/iio/light/max44009.c
156
if (mask == IIO_CHAN_INFO_INT_TIME && chan->type == IIO_LIGHT) {
drivers/iio/light/max44009.c
166
struct iio_chan_spec const *chan,
drivers/iio/light/max44009.c
247
struct iio_chan_spec const *chan, int *val,
drivers/iio/light/max44009.c
256
switch (chan->type) {
drivers/iio/light/max44009.c
270
switch (chan->type) {
drivers/iio/light/max44009.c
339
const struct iio_chan_spec *chan,
drivers/iio/light/max44009.c
348
if (info != IIO_EV_INFO_VALUE || chan->type != IIO_LIGHT)
drivers/iio/light/max44009.c
398
const struct iio_chan_spec *chan,
drivers/iio/light/max44009.c
407
if (chan->type != IIO_LIGHT || type != IIO_EV_TYPE_THRESH)
drivers/iio/light/max44009.c
422
const struct iio_chan_spec *chan,
drivers/iio/light/max44009.c
430
if (chan->type != IIO_LIGHT || type != IIO_EV_TYPE_THRESH)
drivers/iio/light/max44009.c
447
const struct iio_chan_spec *chan,
drivers/iio/light/max44009.c
453
if (chan->type != IIO_LIGHT || type != IIO_EV_TYPE_THRESH)
drivers/iio/light/noa1305.c
139
struct iio_chan_spec const *chan,
drivers/iio/light/noa1305.c
143
if (chan->type != IIO_LIGHT)
drivers/iio/light/noa1305.c
163
struct iio_chan_spec const *chan,
drivers/iio/light/noa1305.c
168
if (chan->type != IIO_LIGHT)
drivers/iio/light/noa1305.c
184
struct iio_chan_spec const *chan,
drivers/iio/light/noa1305.c
190
if (chan->type != IIO_LIGHT)
drivers/iio/light/opt3001.c
478
struct iio_chan_spec const *chan, int *val, int *val2,
drivers/iio/light/opt3001.c
487
if (chan->type != opt->chip_info->chan_type)
drivers/iio/light/opt3001.c
510
struct iio_chan_spec const *chan, int val, int val2,
drivers/iio/light/opt3001.c
519
if (chan->type != opt->chip_info->chan_type)
drivers/iio/light/opt3001.c
536
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/light/opt3001.c
564
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/light/opt3001.c
628
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/light/opt3001.c
637
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/light/opt4001.c
264
struct iio_chan_spec const *chan,
drivers/iio/light/opt4001.c
282
struct iio_chan_spec const *chan,
drivers/iio/light/opt4001.c
301
struct iio_chan_spec const *chan,
drivers/iio/light/opt4060.c
1066
u32 chan[OPT4060_NUM_CHANS];
drivers/iio/light/opt4060.c
1070
int chan, ret;
drivers/iio/light/opt4060.c
1076
iio_for_each_active_channel(idev, chan) {
drivers/iio/light/opt4060.c
1077
if (chan == OPT4060_ILLUM)
drivers/iio/light/opt4060.c
1078
ret = opt4060_calc_illuminance(chip, &raw.chan[i++]);
drivers/iio/light/opt4060.c
1081
idev->channels[chan].address,
drivers/iio/light/opt4060.c
1082
&raw.chan[i++]);
drivers/iio/light/opt4060.c
1118
int chan = 0;
drivers/iio/light/opt4060.c
1120
ret = opt4060_get_channel_sel(chip, &chan);
drivers/iio/light/opt4060.c
1129
chan,
drivers/iio/light/opt4060.c
1130
idev->channels[chan].channel2,
drivers/iio/light/opt4060.c
1138
chan,
drivers/iio/light/opt4060.c
1139
idev->channels[chan].channel2,
drivers/iio/light/opt4060.c
403
struct iio_chan_spec const *chan, int *val)
drivers/iio/light/opt4060.c
415
ret = opt4060_read_raw_value(chip, chan->address, &adc_raw);
drivers/iio/light/opt4060.c
430
struct iio_chan_spec const *chan,
drivers/iio/light/opt4060.c
435
switch (chan->scan_index) {
drivers/iio/light/opt4060.c
476
struct iio_chan_spec const *chan,
drivers/iio/light/opt4060.c
605
struct iio_chan_spec const *chan,
drivers/iio/light/opt4060.c
612
return opt4060_read_chan_raw(indio_dev, chan, val);
drivers/iio/light/opt4060.c
614
return opt4060_get_chan_scale(indio_dev, chan, val, val2);
drivers/iio/light/opt4060.c
616
return opt4060_read_illuminance(indio_dev, chan, val);
drivers/iio/light/opt4060.c
627
struct iio_chan_spec const *chan,
drivers/iio/light/opt4060.c
646
struct iio_chan_spec const *chan,
drivers/iio/light/opt4060.c
692
struct iio_chan_spec const *chan,
drivers/iio/light/opt4060.c
834
const struct iio_chan_spec *chan,
drivers/iio/light/opt4060.c
844
if (chan->type != IIO_INTENSITY)
drivers/iio/light/opt4060.c
870
const struct iio_chan_spec *chan,
drivers/iio/light/opt4060.c
880
if (chan->type != IIO_INTENSITY)
drivers/iio/light/opt4060.c
903
const struct iio_chan_spec *chan,
drivers/iio/light/opt4060.c
907
int ch_sel, ch_idx = chan->scan_index;
drivers/iio/light/opt4060.c
911
if (chan->type != IIO_INTENSITY)
drivers/iio/light/opt4060.c
928
const struct iio_chan_spec *chan,
drivers/iio/light/opt4060.c
932
int ch_sel, ch_idx = chan->scan_index;
drivers/iio/light/opt4060.c
938
if (chan->type != IIO_INTENSITY)
drivers/iio/light/pa12203001.c
202
struct iio_chan_spec const *chan, int *val,
drivers/iio/light/pa12203001.c
213
switch (chan->type) {
drivers/iio/light/pa12203001.c
270
struct iio_chan_spec const *chan, int val,
drivers/iio/light/rohm-bu27034.c
1010
ret = result_get(data, chan->channel, val);
drivers/iio/light/rohm-bu27034.c
1026
struct iio_chan_spec const *chan,
drivers/iio/light/rohm-bu27034.c
1046
struct iio_chan_spec const *chan,
drivers/iio/light/rohm-bu27034.c
1057
ret = bu27034_set_scale(data, chan->channel, val, val2);
drivers/iio/light/rohm-bu27034.c
1076
struct iio_chan_spec const *chan, const int **vals,
drivers/iio/light/rohm-bu27034.c
258
int chan;
drivers/iio/light/rohm-bu27034.c
261
static int bu27034_get_gain_sel(struct bu27034_data *data, int chan)
drivers/iio/light/rohm-bu27034.c
269
ret = regmap_read(data->regmap, reg[chan], &val);
drivers/iio/light/rohm-bu27034.c
276
static int bu27034_get_gain(struct bu27034_data *data, int chan, int *gain)
drivers/iio/light/rohm-bu27034.c
280
ret = bu27034_get_gain_sel(data, chan);
drivers/iio/light/rohm-bu27034.c
288
dev_err(data->dev, "chan %u: unknown gain value 0x%x\n", chan,
drivers/iio/light/rohm-bu27034.c
348
static int bu27034_write_gain_sel(struct bu27034_data *data, int chan, int sel)
drivers/iio/light/rohm-bu27034.c
359
return regmap_update_bits(data->regmap, reg[chan], mask, val);
drivers/iio/light/rohm-bu27034.c
362
static int bu27034_set_gain(struct bu27034_data *data, int chan, int gain)
drivers/iio/light/rohm-bu27034.c
370
return bu27034_write_gain_sel(data, chan, ret);
drivers/iio/light/rohm-bu27034.c
393
{ .chan = BU27034_CHAN_DATA0 },
drivers/iio/light/rohm-bu27034.c
394
{ .chan = BU27034_CHAN_DATA1 },
drivers/iio/light/rohm-bu27034.c
416
ret = bu27034_get_gain(data, gains[i].chan, &gains[i].old_gain);
drivers/iio/light/rohm-bu27034.c
428
_bu27034_get_scale(data, gains[i].chan, &scale1, &scale2);
drivers/iio/light/rohm-bu27034.c
431
gains[i].chan, time_us, scale1, scale2);
drivers/iio/light/rohm-bu27034.c
448
gains[i].chan);
drivers/iio/light/rohm-bu27034.c
458
gains[i].chan);
drivers/iio/light/rohm-bu27034.c
461
gains[i].chan, gains[i].new_gain);
drivers/iio/light/rohm-bu27034.c
466
ret = bu27034_set_gain(data, gains[i].chan, gains[i].new_gain);
drivers/iio/light/rohm-bu27034.c
474
static int bu27034_set_scale(struct bu27034_data *data, int chan,
drivers/iio/light/rohm-bu27034.c
480
if (chan == BU27034_CHAN_ALS) {
drivers/iio/light/rohm-bu27034.c
506
if (chan == BU27034_CHAN_DATA0)
drivers/iio/light/rohm-bu27034.c
507
gain.chan = BU27034_CHAN_DATA1;
drivers/iio/light/rohm-bu27034.c
508
else if (chan == BU27034_CHAN_DATA1)
drivers/iio/light/rohm-bu27034.c
509
gain.chan = BU27034_CHAN_DATA0;
drivers/iio/light/rohm-bu27034.c
511
ret = bu27034_get_gain(data, gain.chan, &gain.old_gain);
drivers/iio/light/rohm-bu27034.c
549
ret = bu27034_set_gain(data, gain.chan, gain.new_gain);
drivers/iio/light/rohm-bu27034.c
559
return bu27034_write_gain_sel(data, chan, gain_sel);
drivers/iio/light/rohm-bu27034.c
775
static int bu27034_read_result(struct bu27034_data *data, int chan, int *res)
drivers/iio/light/rohm-bu27034.c
790
ret = regmap_bulk_read(data->regmap, reg[chan], &val, sizeof(val));
drivers/iio/light/rohm-bu27034.c
841
static int bu27034_get_single_result(struct bu27034_data *data, int chan,
drivers/iio/light/rohm-bu27034.c
846
if (chan < BU27034_CHAN_DATA0 || chan > BU27034_CHAN_DATA1)
drivers/iio/light/rohm-bu27034.c
859
return bu27034_read_result(data, chan, val);
drivers/iio/light/rohm-bu27034.c
939
static int bu27034_get_mlux(struct bu27034_data *data, int chan, int *val)
drivers/iio/light/rohm-bu27034.c
964
struct iio_chan_spec const *chan,
drivers/iio/light/rohm-bu27034.c
980
ret = bu27034_get_gain(data, chan->channel, val);
drivers/iio/light/rohm-bu27034.c
987
return bu27034_get_scale(data, chan->channel, val, val2);
drivers/iio/light/rohm-bu27034.c
991
int (*result_get)(struct bu27034_data *data, int chan, int *val);
drivers/iio/light/rohm-bu27034.c
993
if (chan->type == IIO_INTENSITY)
drivers/iio/light/rohm-bu27034.c
995
else if (chan->type == IIO_LIGHT)
drivers/iio/light/rpr0521.c
566
static int rpr0521_get_gain(struct rpr0521_data *data, int chan,
drivers/iio/light/rpr0521.c
571
ret = regmap_read(data->regmap, rpr0521_gain[chan].reg, &reg);
drivers/iio/light/rpr0521.c
575
idx = (rpr0521_gain[chan].mask & reg) >> rpr0521_gain[chan].shift;
drivers/iio/light/rpr0521.c
576
*val = rpr0521_gain[chan].gain[idx].scale;
drivers/iio/light/rpr0521.c
577
*val2 = rpr0521_gain[chan].gain[idx].uscale;
drivers/iio/light/rpr0521.c
582
static int rpr0521_set_gain(struct rpr0521_data *data, int chan,
drivers/iio/light/rpr0521.c
588
for (i = 0; i < rpr0521_gain[chan].size; i++)
drivers/iio/light/rpr0521.c
589
if (val == rpr0521_gain[chan].gain[i].scale &&
drivers/iio/light/rpr0521.c
590
val2 == rpr0521_gain[chan].gain[i].uscale) {
drivers/iio/light/rpr0521.c
598
return regmap_update_bits(data->regmap, rpr0521_gain[chan].reg,
drivers/iio/light/rpr0521.c
599
rpr0521_gain[chan].mask,
drivers/iio/light/rpr0521.c
600
idx << rpr0521_gain[chan].shift);
drivers/iio/light/rpr0521.c
704
struct iio_chan_spec const *chan,
drivers/iio/light/rpr0521.c
711
device_mask = rpr0521_data_reg[chan->address].device_mask;
drivers/iio/light/rpr0521.c
719
rpr0521_data_reg[chan->address].address,
drivers/iio/light/rpr0521.c
736
struct iio_chan_spec const *chan, int *val,
drivers/iio/light/rpr0521.c
744
if (chan->type != IIO_INTENSITY && chan->type != IIO_PROXIMITY)
drivers/iio/light/rpr0521.c
750
ret = rpr0521_read_info_raw(data, chan, val);
drivers/iio/light/rpr0521.c
759
ret = rpr0521_get_gain(data, chan->address, val, val2);
drivers/iio/light/rpr0521.c
768
ret = rpr0521_read_samp_freq(data, chan->type, val, val2);
drivers/iio/light/rpr0521.c
790
struct iio_chan_spec const *chan, int val,
drivers/iio/light/rpr0521.c
799
ret = rpr0521_set_gain(data, chan->address, val, val2);
drivers/iio/light/rpr0521.c
806
ret = rpr0521_write_samp_freq_common(data, chan->type,
drivers/iio/light/si1133.c
628
struct iio_chan_spec const *chan,
drivers/iio/light/si1133.c
635
err = si1133_set_adcmux(data, 0, chan->channel);
drivers/iio/light/si1133.c
761
struct iio_chan_spec const *chan,
drivers/iio/light/si1133.c
770
switch (chan->type) {
drivers/iio/light/si1133.c
781
switch (chan->type) {
drivers/iio/light/si1133.c
784
err = si1133_measure(data, chan, val);
drivers/iio/light/si1133.c
793
switch (chan->type) {
drivers/iio/light/si1133.c
805
switch (chan->type) {
drivers/iio/light/si1133.c
818
switch (chan->type) {
drivers/iio/light/si1133.c
835
struct iio_chan_spec const *chan,
drivers/iio/light/si1133.c
842
switch (chan->type) {
drivers/iio/light/si1133.c
859
switch (chan->type) {
drivers/iio/light/si1145.c
562
struct iio_chan_spec const *chan)
drivers/iio/light/si1145.c
568
ret = si1145_set_chlist(indio_dev, BIT(chan->scan_index));
drivers/iio/light/si1145.c
572
cmd = (chan->type == IIO_PROXIMITY) ? SI1145_CMD_PS_FORCE :
drivers/iio/light/si1145.c
578
return i2c_smbus_read_word_data(data->client, chan->address);
drivers/iio/light/si1145.c
622
struct iio_chan_spec const *chan,
drivers/iio/light/si1145.c
631
switch (chan->type) {
drivers/iio/light/si1145.c
639
ret = si1145_measure(indio_dev, chan);
drivers/iio/light/si1145.c
650
SI1145_PS_LED_REG(chan->channel));
drivers/iio/light/si1145.c
654
*val = (ret >> SI1145_PS_LED_SHIFT(chan->channel))
drivers/iio/light/si1145.c
662
switch (chan->type) {
drivers/iio/light/si1145.c
667
if (chan->channel2 == IIO_MOD_LIGHT_IR)
drivers/iio/light/si1145.c
692
switch (chan->type) {
drivers/iio/light/si1145.c
720
struct iio_chan_spec const *chan,
drivers/iio/light/si1145.c
729
switch (chan->type) {
drivers/iio/light/si1145.c
741
if (chan->channel2 == IIO_MOD_LIGHT_IR) {
drivers/iio/light/si1145.c
766
if (chan->type != IIO_CURRENT)
drivers/iio/light/si1145.c
772
reg1 = SI1145_PS_LED_REG(chan->channel);
drivers/iio/light/si1145.c
773
shift = SI1145_PS_LED_SHIFT(chan->channel);
drivers/iio/light/st_uvis25_core.c
239
u8 chan;
drivers/iio/light/st_uvis25_core.c
248
scan.chan = val;
drivers/iio/light/stk3310.c
167
const struct iio_chan_spec *chan,
drivers/iio/light/stk3310.c
250
const struct iio_chan_spec *chan,
drivers/iio/light/stk3310.c
285
const struct iio_chan_spec *chan,
drivers/iio/light/stk3310.c
328
const struct iio_chan_spec *chan,
drivers/iio/light/stk3310.c
344
const struct iio_chan_spec *chan,
drivers/iio/light/stk3310.c
370
struct iio_chan_spec const *chan,
drivers/iio/light/stk3310.c
380
if (chan->type != IIO_LIGHT && chan->type != IIO_PROXIMITY)
drivers/iio/light/stk3310.c
385
if (chan->type == IIO_LIGHT)
drivers/iio/light/stk3310.c
401
if (chan->type == IIO_LIGHT)
drivers/iio/light/stk3310.c
412
if (chan->type == IIO_LIGHT)
drivers/iio/light/stk3310.c
428
struct iio_chan_spec const *chan,
drivers/iio/light/stk3310.c
435
if (chan->type != IIO_LIGHT && chan->type != IIO_PROXIMITY)
drivers/iio/light/stk3310.c
446
if (chan->type == IIO_LIGHT)
drivers/iio/light/stk3310.c
463
if (chan->type == IIO_LIGHT)
drivers/iio/light/tcs3414.c
124
struct iio_chan_spec const *chan,
drivers/iio/light/tcs3414.c
139
ret = i2c_smbus_read_word_data(data->client, chan->address);
drivers/iio/light/tcs3414.c
159
struct iio_chan_spec const *chan,
drivers/iio/light/tcs3472.c
140
struct iio_chan_spec const *chan,
drivers/iio/light/tcs3472.c
155
ret = i2c_smbus_read_word_data(data->client, chan->address);
drivers/iio/light/tcs3472.c
175
struct iio_chan_spec const *chan,
drivers/iio/light/tcs3472.c
222
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/light/tcs3472.c
248
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/light/tcs3472.c
302
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/light/tcs3472.c
313
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/light/tsl2563.c
448
struct iio_chan_spec const *chan,
drivers/iio/light/tsl2563.c
457
if (chan->channel2 == IIO_MOD_LIGHT_BOTH)
drivers/iio/light/tsl2563.c
459
else if (chan->channel2 == IIO_MOD_LIGHT_IR)
drivers/iio/light/tsl2563.c
468
struct iio_chan_spec const *chan,
drivers/iio/light/tsl2563.c
481
switch (chan->type) {
drivers/iio/light/tsl2563.c
497
if (chan->channel2 == IIO_MOD_LIGHT_BOTH)
drivers/iio/light/tsl2563.c
509
if (chan->channel2 == IIO_MOD_LIGHT_BOTH)
drivers/iio/light/tsl2563.c
563
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/light/tsl2563.c
584
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/light/tsl2563.c
631
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/light/tsl2563.c
664
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/light/tsl2583.c
651
struct iio_chan_spec const *chan,
drivers/iio/light/tsl2583.c
666
if (chan->type == IIO_LIGHT) {
drivers/iio/light/tsl2583.c
680
if (chan->channel2 == IIO_MOD_LIGHT_BOTH)
drivers/iio/light/tsl2583.c
689
if (chan->type == IIO_LIGHT) {
drivers/iio/light/tsl2583.c
699
if (chan->type == IIO_LIGHT) {
drivers/iio/light/tsl2583.c
705
if (chan->type == IIO_LIGHT) {
drivers/iio/light/tsl2583.c
711
if (chan->type == IIO_LIGHT) {
drivers/iio/light/tsl2583.c
742
struct iio_chan_spec const *chan,
drivers/iio/light/tsl2583.c
757
if (chan->type == IIO_LIGHT) {
drivers/iio/light/tsl2583.c
763
if (chan->type == IIO_LIGHT) {
drivers/iio/light/tsl2583.c
776
if (chan->type == IIO_LIGHT && !val && val2 >= 50 &&
drivers/iio/light/tsl2591.c
369
struct iio_chan_spec const *chan,
drivers/iio/light/tsl2591.c
397
switch (chan->type) {
drivers/iio/light/tsl2591.c
399
if (chan->channel2 == IIO_MOD_LIGHT_BOTH)
drivers/iio/light/tsl2591.c
401
else if (chan->channel2 == IIO_MOD_LIGHT_IR)
drivers/iio/light/tsl2591.c
650
struct iio_chan_spec const *chan,
drivers/iio/light/tsl2591.c
663
if (chan->type != IIO_INTENSITY) {
drivers/iio/light/tsl2591.c
668
ret = tsl2591_read_channel_data(indio_dev, chan, val, val2);
drivers/iio/light/tsl2591.c
675
if (chan->type != IIO_LIGHT) {
drivers/iio/light/tsl2591.c
680
ret = tsl2591_read_channel_data(indio_dev, chan, val, val2);
drivers/iio/light/tsl2591.c
687
if (chan->type != IIO_INTENSITY) {
drivers/iio/light/tsl2591.c
696
if (chan->type != IIO_INTENSITY) {
drivers/iio/light/tsl2591.c
718
struct iio_chan_spec const *chan,
drivers/iio/light/tsl2591.c
766
struct iio_chan_spec const *chan,
drivers/iio/light/tsl2591.c
788
const struct iio_chan_spec *chan,
drivers/iio/light/tsl2591.c
842
const struct iio_chan_spec *chan,
drivers/iio/light/tsl2591.c
907
const struct iio_chan_spec *chan,
drivers/iio/light/tsl2591.c
917
const struct iio_chan_spec *chan,
drivers/iio/light/tsl2772.c
1079
const struct iio_chan_spec *chan,
drivers/iio/light/tsl2772.c
1085
if (chan->type == IIO_INTENSITY)
drivers/iio/light/tsl2772.c
1092
const struct iio_chan_spec *chan,
drivers/iio/light/tsl2772.c
1099
if (chan->type == IIO_INTENSITY)
drivers/iio/light/tsl2772.c
1108
const struct iio_chan_spec *chan,
drivers/iio/light/tsl2772.c
1120
if (chan->type == IIO_INTENSITY) {
drivers/iio/light/tsl2772.c
1149
if (chan->type == IIO_INTENSITY)
drivers/iio/light/tsl2772.c
1158
if (chan->type == IIO_INTENSITY) {
drivers/iio/light/tsl2772.c
1181
const struct iio_chan_spec *chan,
drivers/iio/light/tsl2772.c
1193
if (chan->type == IIO_INTENSITY) {
drivers/iio/light/tsl2772.c
1218
if (chan->type == IIO_INTENSITY) {
drivers/iio/light/tsl2772.c
1242
struct iio_chan_spec const *chan,
drivers/iio/light/tsl2772.c
1251
switch (chan->type) {
drivers/iio/light/tsl2772.c
1260
switch (chan->type) {
drivers/iio/light/tsl2772.c
1263
if (chan->channel == 0)
drivers/iio/light/tsl2772.c
1277
if (chan->type == IIO_LIGHT)
drivers/iio/light/tsl2772.c
1296
struct iio_chan_spec const *chan,
drivers/iio/light/tsl2772.c
1305
if (chan->type == IIO_INTENSITY) {
drivers/iio/light/tsl2772.c
909
struct iio_chan_spec const *chan,
drivers/iio/light/tsl2772.c
917
if (chan->type == IIO_INTENSITY) {
drivers/iio/light/tsl4531.c
110
struct iio_chan_spec const *chan,
drivers/iio/light/tsl4531.c
75
struct iio_chan_spec const *chan,
drivers/iio/light/us5182d.c
373
struct iio_chan_spec const *chan)
drivers/iio/light/us5182d.c
389
if (chan->type == IIO_LIGHT)
drivers/iio/light/us5182d.c
413
struct iio_chan_spec const *chan, int *val,
drivers/iio/light/us5182d.c
421
ret = us5182d_read_value(data, chan);
drivers/iio/light/us5182d.c
488
struct iio_chan_spec const *chan, int val,
drivers/iio/light/us5182d.c
529
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/light/us5182d.c
554
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/light/us5182d.c
596
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/light/us5182d.c
622
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/light/vcnl4000.c
1006
struct iio_chan_spec const *chan,
drivers/iio/light/vcnl4000.c
1023
return vcnl4000_read_raw(indio_dev, chan, val, val2, mask);
drivers/iio/light/vcnl4000.c
1026
switch (chan->type) {
drivers/iio/light/vcnl4000.c
1041
struct iio_chan_spec const *chan,
drivers/iio/light/vcnl4000.c
1078
struct iio_chan_spec const *chan,
drivers/iio/light/vcnl4000.c
1093
switch (chan->type) {
drivers/iio/light/vcnl4000.c
1105
const struct iio_chan_spec *chan,
drivers/iio/light/vcnl4000.c
1138
const struct iio_chan_spec *chan,
drivers/iio/light/vcnl4000.c
1171
const struct iio_chan_spec *chan,
drivers/iio/light/vcnl4000.c
1180
switch (chan->type) {
drivers/iio/light/vcnl4000.c
1235
const struct iio_chan_spec *chan,
drivers/iio/light/vcnl4000.c
1244
switch (chan->type) {
drivers/iio/light/vcnl4000.c
1313
const struct iio_chan_spec *chan,
drivers/iio/light/vcnl4000.c
1319
switch (chan->type) {
drivers/iio/light/vcnl4000.c
1375
const struct iio_chan_spec *chan,
drivers/iio/light/vcnl4000.c
1380
switch (chan->type) {
drivers/iio/light/vcnl4000.c
1389
const struct iio_chan_spec *chan,
drivers/iio/light/vcnl4000.c
1396
switch (chan->type) {
drivers/iio/light/vcnl4000.c
1421
const struct iio_chan_spec *chan,
drivers/iio/light/vcnl4000.c
1432
switch (chan->type) {
drivers/iio/light/vcnl4000.c
1512
const struct iio_chan_spec *chan,
drivers/iio/light/vcnl4000.c
1572
u16 chan;
drivers/iio/light/vcnl4000.c
1594
scan.chan = val;
drivers/iio/light/vcnl4000.c
463
struct vcnl4200_channel *chan, int *val)
drivers/iio/light/vcnl4000.c
469
scoped_guard(mutex, &chan->lock) {
drivers/iio/light/vcnl4000.c
470
next_measurement = ktime_add(chan->last_measurement,
drivers/iio/light/vcnl4000.c
471
chan->sampling_rate);
drivers/iio/light/vcnl4000.c
475
chan->last_measurement = ktime_get();
drivers/iio/light/vcnl4000.c
478
ret = i2c_smbus_read_word_data(data->client, chan->reg);
drivers/iio/light/vcnl4000.c
845
struct iio_chan_spec const *chan,
drivers/iio/light/vcnl4000.c
857
switch (chan->type) {
drivers/iio/light/vcnl4000.c
875
if (chan->type != IIO_LIGHT)
drivers/iio/light/vcnl4000.c
882
switch (chan->type) {
drivers/iio/light/vcnl4000.c
896
switch (chan->type) {
drivers/iio/light/vcnl4000.c
906
switch (chan->type) {
drivers/iio/light/vcnl4000.c
921
struct iio_chan_spec const *chan,
drivers/iio/light/vcnl4000.c
930
switch (chan->type) {
drivers/iio/light/vcnl4000.c
939
switch (chan->type) {
drivers/iio/light/vcnl4000.c
946
switch (chan->type) {
drivers/iio/light/vcnl4000.c
958
struct iio_chan_spec const *chan,
drivers/iio/light/vcnl4000.c
966
switch (chan->type) {
drivers/iio/light/vcnl4000.c
981
switch (chan->type) {
drivers/iio/light/vcnl4000.c
991
switch (chan->type) {
drivers/iio/light/vcnl4035.c
159
struct iio_chan_spec const *chan, int *val)
drivers/iio/light/vcnl4035.c
169
if (chan->channel)
drivers/iio/light/vcnl4035.c
197
struct iio_chan_spec const *chan, int *val,
drivers/iio/light/vcnl4035.c
208
ret = vcnl4035_read_info_raw(indio_dev, chan, val);
drivers/iio/light/vcnl4035.c
229
struct iio_chan_spec const *chan,
drivers/iio/light/vcnl4035.c
259
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/light/vcnl4035.c
288
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/light/veml3235.c
282
struct iio_chan_spec const *chan, int *val,
drivers/iio/light/veml3235.c
291
switch (chan->type) {
drivers/iio/light/veml3235.c
319
struct iio_chan_spec const *chan,
drivers/iio/light/veml3235.c
336
struct iio_chan_spec const *chan,
drivers/iio/light/veml3235.c
350
struct iio_chan_spec const *chan,
drivers/iio/light/veml3328.c
139
struct iio_chan_spec const *chan,
drivers/iio/light/veml3328.c
156
ret = regmap_read(regmap, chan->address, &reg_val);
drivers/iio/light/veml3328.c
199
struct iio_chan_spec const *chan,
drivers/iio/light/veml3328.c
241
struct iio_chan_spec const *chan,
drivers/iio/light/veml6030.c
657
struct iio_chan_spec const *chan, int *val,
drivers/iio/light/veml6030.c
668
switch (chan->type) {
drivers/iio/light/veml6030.c
701
struct iio_chan_spec const *chan,
drivers/iio/light/veml6030.c
718
struct iio_chan_spec const *chan,
drivers/iio/light/veml6030.c
732
struct iio_chan_spec const *chan,
drivers/iio/light/veml6030.c
746
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/light/veml6030.c
768
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/light/veml6030.c
783
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/light/veml6030.c
810
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/light/veml6040.c
104
struct iio_chan_spec const *chan, int val,
drivers/iio/light/veml6040.c
127
struct iio_chan_spec const *chan,
drivers/iio/light/veml6040.c
66
struct iio_chan_spec const *chan, int *val,
drivers/iio/light/veml6040.c
76
ret = regmap_read(regmap, chan->address, &reg);
drivers/iio/light/veml6046x00.c
718
struct iio_chan_spec const *chan, int *val,
drivers/iio/light/veml6046x00.c
725
if (chan->type != IIO_INTENSITY)
drivers/iio/light/veml6046x00.c
727
return veml6046x00_single_read(iio, chan->channel2, val);
drivers/iio/light/veml6046x00.c
739
struct iio_chan_spec const *chan,
drivers/iio/light/veml6046x00.c
766
struct iio_chan_spec const *chan,
drivers/iio/light/veml6070.c
186
struct iio_chan_spec const *chan,
drivers/iio/light/veml6070.c
211
struct iio_chan_spec const *chan,
drivers/iio/light/veml6070.c
229
struct iio_chan_spec const *chan,
drivers/iio/light/veml6075.c
165
static int veml6075_read_uv_direct(struct veml6075_data *data, int chan,
drivers/iio/light/veml6075.c
180
switch (chan) {
drivers/iio/light/veml6075.c
286
static int veml6075_read_responsivity(int chan, int *val, int *val2)
drivers/iio/light/veml6075.c
289
switch (chan) {
drivers/iio/light/veml6075.c
306
struct iio_chan_spec const *chan,
drivers/iio/light/veml6075.c
323
struct iio_chan_spec const *chan,
drivers/iio/light/veml6075.c
330
return veml6075_read_uv_direct(data, chan->channel, val);
drivers/iio/light/veml6075.c
336
return veml6075_read_responsivity(chan->channel, val, val2);
drivers/iio/light/veml6075.c
361
struct iio_chan_spec const *chan,
drivers/iio/light/vl6180.c
333
struct iio_chan_spec const *chan,
drivers/iio/light/vl6180.c
341
ret = vl6180_measure(data, chan->address);
drivers/iio/light/vl6180.c
354
switch (chan->type) {
drivers/iio/light/vl6180.c
378
switch (chan->type) {
drivers/iio/light/vl6180.c
480
struct iio_chan_spec const *chan,
drivers/iio/light/vl6180.c
491
if (chan->type != IIO_LIGHT)
drivers/iio/light/vl6180.c
499
switch (chan->type) {
drivers/iio/light/vl6180.c
543
u16 chan[2];
drivers/iio/light/vl6180.c
562
scan.chan[i++] = ret;
drivers/iio/light/zopt2201.c
248
struct iio_chan_spec const *chan,
drivers/iio/light/zopt2201.c
257
ret = zopt2201_read(data, chan->address);
drivers/iio/light/zopt2201.c
271
switch (chan->address) {
drivers/iio/light/zopt2201.c
382
struct iio_chan_spec const *chan,
drivers/iio/light/zopt2201.c
391
switch (chan->address) {
drivers/iio/magnetometer/af8133j.c
249
struct iio_chan_spec const *chan, int *val,
drivers/iio/magnetometer/af8133j.c
262
*val = sign_extend32(le16_to_cpu(buf[chan->address]),
drivers/iio/magnetometer/af8133j.c
263
chan->scan_type.realbits - 1);
drivers/iio/magnetometer/af8133j.c
280
struct iio_chan_spec const *chan,
drivers/iio/magnetometer/af8133j.c
328
struct iio_chan_spec const *chan,
drivers/iio/magnetometer/af8133j.c
342
struct iio_chan_spec const *chan,
drivers/iio/magnetometer/af8133j.c
64
const struct iio_chan_spec *chan)
drivers/iio/magnetometer/ak8974.c
591
struct iio_chan_spec const *chan,
drivers/iio/magnetometer/ak8974.c
600
if (chan->address > 2) {
drivers/iio/magnetometer/ak8974.c
604
ret = ak8974_measure_channel(ak8974, chan->address, val);
drivers/iio/magnetometer/ak8974.c
695
const struct iio_chan_spec *chan)
drivers/iio/magnetometer/ak8975.c
801
struct iio_chan_spec const *chan,
drivers/iio/magnetometer/ak8975.c
809
return ak8975_read_axis(indio_dev, chan->address, val);
drivers/iio/magnetometer/ak8975.c
812
*val2 = data->raw_to_gauss[chan->address];
drivers/iio/magnetometer/ak8975.c
820
const struct iio_chan_spec *chan)
drivers/iio/magnetometer/als31300.c
149
const struct iio_chan_spec *chan, int *val,
drivers/iio/magnetometer/als31300.c
163
switch (chan->address) {
drivers/iio/magnetometer/als31300.c
180
switch (chan->type) {
drivers/iio/magnetometer/als31300.c
212
switch (chan->type) {
drivers/iio/magnetometer/bmc150_magn.c
458
struct iio_chan_spec const *chan,
drivers/iio/magnetometer/bmc150_magn.c
481
*val = values[chan->scan_index];
drivers/iio/magnetometer/bmc150_magn.c
504
switch (chan->channel2) {
drivers/iio/magnetometer/bmc150_magn.c
529
struct iio_chan_spec const *chan,
drivers/iio/magnetometer/bmc150_magn.c
543
switch (chan->channel2) {
drivers/iio/magnetometer/bmc150_magn.c
600
const struct iio_chan_spec *chan)
drivers/iio/magnetometer/hid-sensor-magn-3d.c
137
struct iio_chan_spec const *chan,
drivers/iio/magnetometer/hid-sensor-magn-3d.c
152
report_id = magn_state->magn[chan->address].report_id;
drivers/iio/magnetometer/hid-sensor-magn-3d.c
153
min = magn_state->magn[chan->address].logical_minimum;
drivers/iio/magnetometer/hid-sensor-magn-3d.c
154
address = magn_3d_addresses[chan->address];
drivers/iio/magnetometer/hid-sensor-magn-3d.c
174
switch (chan->type) {
drivers/iio/magnetometer/hid-sensor-magn-3d.c
190
switch (chan->type) {
drivers/iio/magnetometer/hid-sensor-magn-3d.c
208
switch (chan->type) {
drivers/iio/magnetometer/hid-sensor-magn-3d.c
231
struct iio_chan_spec const *chan,
drivers/iio/magnetometer/hid-sensor-magn-3d.c
245
switch (chan->type) {
drivers/iio/magnetometer/hmc5843_core.c
208
const struct iio_chan_spec *chan)
drivers/iio/magnetometer/hmc5843_core.c
223
const struct iio_chan_spec *chan,
drivers/iio/magnetometer/hmc5843_core.c
233
const struct iio_chan_spec *chan)
drivers/iio/magnetometer/hmc5843_core.c
365
struct iio_chan_spec const *chan,
drivers/iio/magnetometer/hmc5843_core.c
374
return hmc5843_read_measurement(data, chan->scan_index, val);
drivers/iio/magnetometer/hmc5843_core.c
396
struct iio_chan_spec const *chan,
drivers/iio/magnetometer/hmc5843_core.c
421
struct iio_chan_spec const *chan,
drivers/iio/magnetometer/mag3110.c
265
struct iio_chan_spec const *chan,
drivers/iio/magnetometer/mag3110.c
271
switch (chan->type) {
drivers/iio/magnetometer/mag3110.c
276
*val = sign_extend32(be16_to_cpu(buffer[chan->scan_index]),
drivers/iio/magnetometer/mag3110.c
277
chan->scan_type.realbits - 1);
drivers/iio/magnetometer/mag3110.c
289
*val = sign_extend32(ret, chan->scan_type.realbits - 1);
drivers/iio/magnetometer/mag3110.c
298
struct iio_chan_spec const *chan,
drivers/iio/magnetometer/mag3110.c
308
ret = __mag3110_read_info_raw(data, chan, val);
drivers/iio/magnetometer/mag3110.c
313
switch (chan->type) {
drivers/iio/magnetometer/mag3110.c
331
MAG3110_OFF_X + 2 * chan->scan_index);
drivers/iio/magnetometer/mag3110.c
341
struct iio_chan_spec const *chan,
drivers/iio/magnetometer/mag3110.c
367
MAG3110_OFF_X + 2 * chan->scan_index, val << 1);
drivers/iio/magnetometer/mag3110.c
374
struct iio_chan_spec const *chan,
drivers/iio/magnetometer/mag3110.c
382
ret = __mag3110_write_raw(data, chan, val, val2, mask);
drivers/iio/magnetometer/mmc35240.c
348
struct iio_chan_spec const *chan, int *val,
drivers/iio/magnetometer/mmc35240.c
363
ret = mmc35240_raw_to_mgauss(data, chan->address, buf, val);
drivers/iio/magnetometer/mmc35240.c
391
struct iio_chan_spec const *chan, int val,
drivers/iio/magnetometer/mmc5633.c
289
struct iio_chan_spec const *chan, int *val,
drivers/iio/magnetometer/mmc5633.c
300
ret = mmc5633_read_measurement(data, chan->address, buf, MMC5633_ALL_SIZE);
drivers/iio/magnetometer/mmc5633.c
305
ret = mmc5633_get_raw(data, chan->address, buf, val);
drivers/iio/magnetometer/mmc5633.c
310
if (chan->type == IIO_MAGN) {
drivers/iio/magnetometer/mmc5633.c
319
if (chan->type == IIO_TEMP) {
drivers/iio/magnetometer/mmc5633.c
344
struct iio_chan_spec const *chan, int val,
drivers/iio/magnetometer/mmc5633.c
368
struct iio_chan_spec const *chan,
drivers/iio/magnetometer/mmc5983.c
133
const struct iio_chan_spec *chan, int *val,
drivers/iio/magnetometer/mmc5983.c
162
*val = (m1[chan->address] - m2[chan->address]) / 2;
drivers/iio/magnetometer/rm3100-core.c
385
const struct iio_chan_spec *chan,
drivers/iio/magnetometer/rm3100-core.c
396
ret = rm3100_read_mag(data, chan->scan_index, val);
drivers/iio/magnetometer/rm3100-core.c
413
struct iio_chan_spec const *chan,
drivers/iio/magnetometer/si7210.c
151
struct iio_chan_spec const *chan,
drivers/iio/magnetometer/si7210.c
154
u8 dspsigsel = chan->type == IIO_MAGN ? 0 : 1;
drivers/iio/magnetometer/si7210.c
186
struct iio_chan_spec const *chan,
drivers/iio/magnetometer/si7210.c
196
ret = si7210_fetch_measurement(data, chan, &dspsig);
drivers/iio/magnetometer/si7210.c
213
ret = si7210_fetch_measurement(data, chan, &dspsig);
drivers/iio/magnetometer/si7210.c
264
struct iio_chan_spec const *chan,
drivers/iio/magnetometer/st_magn_core.c
548
struct iio_chan_spec const *chan, int val, int val2, long mask)
drivers/iio/magnetometer/st_magn_core.c
59
const struct iio_chan_spec *chan)
drivers/iio/magnetometer/tlv493d.c
269
const struct iio_chan_spec *chan, int *val,
drivers/iio/magnetometer/tlv493d.c
282
switch (chan->address) {
drivers/iio/magnetometer/tlv493d.c
299
switch (chan->type) {
drivers/iio/magnetometer/tlv493d.c
320
switch (chan->type) {
drivers/iio/magnetometer/tmag5273.c
252
struct iio_chan_spec const *chan,
drivers/iio/magnetometer/tmag5273.c
265
switch (chan->type) {
drivers/iio/magnetometer/tmag5273.c
281
const struct iio_chan_spec *chan, int *val,
drivers/iio/magnetometer/tmag5273.c
302
switch (chan->address) {
drivers/iio/magnetometer/tmag5273.c
325
switch (chan->type) {
drivers/iio/magnetometer/tmag5273.c
353
switch (chan->type) {
drivers/iio/magnetometer/tmag5273.c
370
struct iio_chan_spec const *chan, int val,
drivers/iio/magnetometer/tmag5273.c
379
switch (chan->type) {
drivers/iio/magnetometer/yamaha-yas530.c
613
struct iio_chan_spec const *chan,
drivers/iio/magnetometer/yamaha-yas530.c
630
switch (chan->address) {
drivers/iio/magnetometer/yamaha-yas530.c
694
const struct iio_chan_spec *chan)
drivers/iio/multiplexer/iio-mux.c
118
struct iio_chan_spec const *chan,
drivers/iio/multiplexer/iio-mux.c
123
int idx = chan - mux->chan;
drivers/iio/multiplexer/iio-mux.c
146
struct iio_chan_spec const *chan,
drivers/iio/multiplexer/iio-mux.c
150
int idx = chan - mux->chan;
drivers/iio/multiplexer/iio-mux.c
178
struct iio_chan_spec const *chan, char *buf)
drivers/iio/multiplexer/iio-mux.c
181
int idx = chan - mux->chan;
drivers/iio/multiplexer/iio-mux.c
198
struct iio_chan_spec const *chan,
drivers/iio/multiplexer/iio-mux.c
203
int idx = chan - mux->chan;
drivers/iio/multiplexer/iio-mux.c
296
struct iio_chan_spec *chan = &mux->chan[idx];
drivers/iio/multiplexer/iio-mux.c
301
chan->indexed = 1;
drivers/iio/multiplexer/iio-mux.c
302
chan->output = pchan->output;
drivers/iio/multiplexer/iio-mux.c
303
chan->datasheet_name = label;
drivers/iio/multiplexer/iio-mux.c
304
chan->ext_info = mux->ext_info;
drivers/iio/multiplexer/iio-mux.c
306
ret = iio_get_channel_type(mux->parent, &chan->type);
drivers/iio/multiplexer/iio-mux.c
313
chan->info_mask_separate |= BIT(IIO_CHAN_INFO_RAW);
drivers/iio/multiplexer/iio-mux.c
315
chan->info_mask_separate |= BIT(IIO_CHAN_INFO_SCALE);
drivers/iio/multiplexer/iio-mux.c
318
chan->info_mask_separate_available |= BIT(IIO_CHAN_INFO_RAW);
drivers/iio/multiplexer/iio-mux.c
325
chan->channel = state;
drivers/iio/multiplexer/iio-mux.c
33
struct iio_chan_spec *chan;
drivers/iio/multiplexer/iio-mux.c
384
sizeof_priv += sizeof(*mux->chan) * children;
drivers/iio/multiplexer/iio-mux.c
393
mux->chan = (struct iio_chan_spec *)(mux->child + children);
drivers/iio/multiplexer/iio-mux.c
406
indio_dev->channels = mux->chan;
drivers/iio/multiplexer/iio-mux.c
42
struct iio_chan_spec const *chan = &mux->chan[idx];
drivers/iio/multiplexer/iio-mux.c
46
ret = mux_control_select_delay(mux->control, chan->channel,
drivers/iio/multiplexer/iio-mux.c
53
if (mux->cached_state == chan->channel)
drivers/iio/multiplexer/iio-mux.c
56
if (chan->ext_info) {
drivers/iio/multiplexer/iio-mux.c
57
for (i = 0; chan->ext_info[i].name; ++i) {
drivers/iio/multiplexer/iio-mux.c
58
const char *attr = chan->ext_info[i].name;
drivers/iio/multiplexer/iio-mux.c
77
mux->cached_state = chan->channel;
drivers/iio/multiplexer/iio-mux.c
88
struct iio_chan_spec const *chan,
drivers/iio/multiplexer/iio-mux.c
92
int idx = chan - mux->chan;
drivers/iio/orientation/hid-sensor-incl-3d.c
100
struct iio_chan_spec const *chan,
drivers/iio/orientation/hid-sensor-incl-3d.c
115
report_id = incl_state->incl[chan->scan_index].report_id;
drivers/iio/orientation/hid-sensor-incl-3d.c
116
min = incl_state->incl[chan->scan_index].logical_minimum;
drivers/iio/orientation/hid-sensor-incl-3d.c
117
address = incl_3d_addresses[chan->scan_index];
drivers/iio/orientation/hid-sensor-incl-3d.c
160
struct iio_chan_spec const *chan,
drivers/iio/orientation/hid-sensor-incl-3d.c
88
static void incl_3d_adjust_channel_bit_mask(struct iio_chan_spec *chan,
drivers/iio/orientation/hid-sensor-incl-3d.c
91
chan->scan_type.sign = 's';
drivers/iio/orientation/hid-sensor-incl-3d.c
93
chan->scan_type.realbits = size * 8;
drivers/iio/orientation/hid-sensor-incl-3d.c
95
chan->scan_type.storagebits = sizeof(u32) * 8;
drivers/iio/orientation/hid-sensor-rotation.c
167
struct iio_chan_spec const *chan,
drivers/iio/orientation/hid-sensor-rotation.c
192
const struct iio_chan_spec *chan)
drivers/iio/orientation/hid-sensor-rotation.c
83
struct iio_chan_spec const *chan,
drivers/iio/position/hid-sensor-custom-intel-hinge.c
109
struct iio_chan_spec const *chan, int *val, int *val2,
drivers/iio/position/hid-sensor-custom-intel-hinge.c
121
report_id = st->hinge[chan->scan_index].report_id;
drivers/iio/position/hid-sensor-custom-intel-hinge.c
122
min = st->hinge[chan->scan_index].logical_minimum;
drivers/iio/position/hid-sensor-custom-intel-hinge.c
130
hinge_addresses[chan->scan_index],
drivers/iio/position/hid-sensor-custom-intel-hinge.c
156
struct iio_chan_spec const *chan, int val, int val2,
drivers/iio/position/hid-sensor-custom-intel-hinge.c
174
struct iio_chan_spec const *chan, char *label)
drivers/iio/position/hid-sensor-custom-intel-hinge.c
178
return sysfs_emit(label, "%s\n", st->labels[chan->channel]);
drivers/iio/position/iqs624-pos.c
132
struct iio_chan_spec const *chan,
drivers/iio/position/iqs624-pos.c
166
const struct iio_chan_spec *chan,
drivers/iio/position/iqs624-pos.c
181
const struct iio_chan_spec *chan,
drivers/iio/potentiometer/ad5110.c
200
struct iio_chan_spec const *chan,
drivers/iio/potentiometer/ad5110.c
231
struct iio_chan_spec const *chan,
drivers/iio/potentiometer/ad5272.c
121
struct iio_chan_spec const *chan,
drivers/iio/potentiometer/ad5272.c
99
struct iio_chan_spec const *chan,
drivers/iio/potentiometer/ds1803.c
134
struct iio_chan_spec const *chan,
drivers/iio/potentiometer/ds1803.c
142
ret = data->cfg->read(indio_dev, chan, val);
drivers/iio/potentiometer/ds1803.c
158
struct iio_chan_spec const *chan,
drivers/iio/potentiometer/ds1803.c
162
u8 addr = chan->address;
drivers/iio/potentiometer/ds1803.c
181
struct iio_chan_spec const *chan,
drivers/iio/potentiometer/ds1803.c
39
struct iio_chan_spec const *chan, int *val);
drivers/iio/potentiometer/ds1803.c
68
struct iio_chan_spec const *chan,
drivers/iio/potentiometer/ds1803.c
79
*val = result[chan->channel];
drivers/iio/potentiometer/ds1803.c
84
struct iio_chan_spec const *chan,
drivers/iio/potentiometer/ds1803.c
90
ret = i2c_smbus_read_byte_data(data->client, chan->address);
drivers/iio/potentiometer/max5432.c
43
struct iio_chan_spec const *chan,
drivers/iio/potentiometer/max5432.c
61
struct iio_chan_spec const *chan,
drivers/iio/potentiometer/max5432.c
78
return i2c_smbus_write_byte_data(data->client, chan->address,
drivers/iio/potentiometer/max5481.c
84
struct iio_chan_spec const *chan,
drivers/iio/potentiometer/max5481.c
99
struct iio_chan_spec const *chan,
drivers/iio/potentiometer/max5487.c
49
struct iio_chan_spec const *chan,
drivers/iio/potentiometer/max5487.c
64
struct iio_chan_spec const *chan,
drivers/iio/potentiometer/max5487.c
75
return max5487_write_cmd(data->spi, chan->address | val);
drivers/iio/potentiometer/mcp4018.c
56
struct iio_chan_spec const *chan,
drivers/iio/potentiometer/mcp4018.c
79
struct iio_chan_spec const *chan,
drivers/iio/potentiometer/mcp41010.c
101
struct iio_chan_spec const *chan,
drivers/iio/potentiometer/mcp41010.c
106
int channel = chan->channel;
drivers/iio/potentiometer/mcp41010.c
80
struct iio_chan_spec const *chan,
drivers/iio/potentiometer/mcp41010.c
84
int channel = chan->channel;
drivers/iio/potentiometer/mcp4131.c
163
struct iio_chan_spec const *chan,
drivers/iio/potentiometer/mcp4131.c
168
int address = chan->channel;
drivers/iio/potentiometer/mcp4131.c
204
struct iio_chan_spec const *chan,
drivers/iio/potentiometer/mcp4131.c
209
int address = chan->channel << MCP4131_WIPER_SHIFT;
drivers/iio/potentiometer/mcp4531.c
139
struct iio_chan_spec const *chan,
drivers/iio/potentiometer/mcp4531.c
143
int address = chan->channel << MCP4531_WIPER_SHIFT;
drivers/iio/potentiometer/mcp4531.c
164
struct iio_chan_spec const *chan,
drivers/iio/potentiometer/mcp4531.c
182
struct iio_chan_spec const *chan,
drivers/iio/potentiometer/mcp4531.c
186
int address = chan->channel << MCP4531_WIPER_SHIFT;
drivers/iio/potentiometer/tpl0102.c
103
struct iio_chan_spec const *chan,
drivers/iio/potentiometer/tpl0102.c
114
return regmap_write(data->regmap, chan->channel, val);
drivers/iio/potentiometer/tpl0102.c
64
struct iio_chan_spec const *chan,
drivers/iio/potentiometer/tpl0102.c
71
int ret = regmap_read(data->regmap, chan->channel, val);
drivers/iio/potentiometer/tpl0102.c
85
struct iio_chan_spec const *chan,
drivers/iio/potentiometer/x9250.c
114
static int x9250_write_raw(struct iio_dev *indio_dev, struct iio_chan_spec const *chan,
drivers/iio/potentiometer/x9250.c
118
int ch = chan->channel;
drivers/iio/potentiometer/x9250.c
73
static int x9250_read_raw(struct iio_dev *indio_dev, struct iio_chan_spec const *chan,
drivers/iio/potentiometer/x9250.c
77
int ch = chan->channel;
drivers/iio/potentiometer/x9250.c
98
static int x9250_read_avail(struct iio_dev *indio_dev, struct iio_chan_spec const *chan,
drivers/iio/potentiostat/lmp91000.c
155
struct iio_chan_spec const *chan,
drivers/iio/potentiostat/lmp91000.c
168
ret = lmp91000_read(data, chan->address, val);
drivers/iio/pressure/abp060mg.c
131
struct iio_chan_spec const *chan, int *val,
drivers/iio/pressure/abp2030pa.c
329
data->scan.chan[0] = get_unaligned_be24(&data->rx_buf[1]);
drivers/iio/pressure/abp2030pa.c
330
data->scan.chan[1] = get_unaligned_be24(&data->rx_buf[4]);
drivers/iio/pressure/abp2030pa.h
59
u32 chan[2];
drivers/iio/pressure/adp810.c
108
struct iio_chan_spec const *chan,
drivers/iio/pressure/adp810.c
126
switch (chan->type) {
drivers/iio/pressure/adp810.c
137
switch (chan->type) {
drivers/iio/pressure/bmp280-core.c
616
struct iio_chan_spec const *chan,
drivers/iio/pressure/bmp280-core.c
635
switch (chan->type) {
drivers/iio/pressure/bmp280-core.c
672
switch (chan->type) {
drivers/iio/pressure/bmp280-core.c
698
switch (chan->type) {
drivers/iio/pressure/bmp280-core.c
715
switch (chan->type) {
drivers/iio/pressure/bmp280-core.c
747
struct iio_chan_spec const *chan,
drivers/iio/pressure/bmp280-core.c
754
ret = bmp280_read_raw_impl(indio_dev, chan, val, val2, mask);
drivers/iio/pressure/bmp280-core.c
886
struct iio_chan_spec const *chan,
drivers/iio/pressure/bmp280-core.c
901
switch (chan->type) {
drivers/iio/pressure/bmp280-core.c
921
struct iio_chan_spec const *chan,
drivers/iio/pressure/bmp280-core.c
928
ret = bmp280_write_raw_impl(indio_dev, chan, val, val2, mask);
drivers/iio/pressure/bmp280-core.c
935
struct iio_chan_spec const *chan,
drivers/iio/pressure/bmp280-core.c
943
switch (chan->type) {
drivers/iio/pressure/cros_ec_baro.c
106
ret = cros_ec_sensors_core_write(&st->core, chan, val, val2,
drivers/iio/pressure/cros_ec_baro.c
37
struct iio_chan_spec const *chan,
drivers/iio/pressure/cros_ec_baro.c
43
int idx = chan->scan_index;
drivers/iio/pressure/cros_ec_baro.c
72
ret = cros_ec_sensors_core_read(&st->core, chan, val, val2,
drivers/iio/pressure/cros_ec_baro.c
83
struct iio_chan_spec const *chan,
drivers/iio/pressure/dps310.c
580
struct iio_chan_spec const *chan, int val,
drivers/iio/pressure/dps310.c
591
switch (chan->type) {
drivers/iio/pressure/dps310.c
607
switch (chan->type) {
drivers/iio/pressure/dps310.c
808
struct iio_chan_spec const *chan,
drivers/iio/pressure/dps310.c
813
switch (chan->type) {
drivers/iio/pressure/hid-sensor-press.c
126
struct iio_chan_spec const *chan,
drivers/iio/pressure/hid-sensor-press.c
58
struct iio_chan_spec const *chan,
drivers/iio/pressure/hid-sensor-press.c
72
switch (chan->scan_index) {
drivers/iio/pressure/hp03.c
161
struct iio_chan_spec const *chan,
drivers/iio/pressure/hp03.c
176
switch (chan->type) {
drivers/iio/pressure/hp03.c
188
switch (chan->type) {
drivers/iio/pressure/hp206c.c
204
struct iio_chan_spec const *chan, int *val,
drivers/iio/pressure/hp206c.c
216
switch (chan->type) {
drivers/iio/pressure/hp206c.c
232
switch (chan->type) {
drivers/iio/pressure/hp206c.c
271
switch (chan->type) {
drivers/iio/pressure/hp206c.c
297
struct iio_chan_spec const *chan,
drivers/iio/pressure/hp206c.c
306
switch (chan->type) {
drivers/iio/pressure/hsc030pa.c
313
memcpy(&data->scan.chan[0], &data->buffer[0], 2);
drivers/iio/pressure/hsc030pa.c
314
memcpy(&data->scan.chan[1], &data->buffer[2], 2);
drivers/iio/pressure/hsc030pa.h
60
__be16 chan[2];
drivers/iio/pressure/icp10100.c
335
struct iio_chan_spec const *chan,
drivers/iio/pressure/icp10100.c
351
switch (chan->type) {
drivers/iio/pressure/icp10100.c
375
struct iio_chan_spec const *chan,
drivers/iio/pressure/icp10100.c
383
return icp10100_read_raw_measures(indio_dev, chan, val, val2);
drivers/iio/pressure/icp10100.c
385
switch (chan->type) {
drivers/iio/pressure/icp10100.c
396
switch (chan->type) {
drivers/iio/pressure/icp10100.c
416
struct iio_chan_spec const *chan,
drivers/iio/pressure/icp10100.c
434
struct iio_chan_spec const *chan,
drivers/iio/pressure/icp10100.c
461
struct iio_chan_spec const *chan,
drivers/iio/pressure/mpl115.c
99
struct iio_chan_spec const *chan,
drivers/iio/pressure/mpl3115.c
132
struct iio_chan_spec const *chan, int *val)
drivers/iio/pressure/mpl3115.c
136
switch (chan->type) {
drivers/iio/pressure/mpl3115.c
174
*val = sign_extend32(be16_to_cpu(tmp) >> chan->scan_type.shift,
drivers/iio/pressure/mpl3115.c
175
chan->scan_type.realbits - 1);
drivers/iio/pressure/mpl3115.c
184
struct iio_chan_spec const *chan,
drivers/iio/pressure/mpl3115.c
195
ret = mpl3115_read_info_raw(data, chan, val);
drivers/iio/pressure/mpl3115.c
200
switch (chan->type) {
drivers/iio/pressure/mpl3115.c
227
struct iio_chan_spec const *chan,
drivers/iio/pressure/mpl3115.c
241
const struct iio_chan_spec *chan,
drivers/iio/pressure/mpl3115.c
478
const struct iio_chan_spec *chan,
drivers/iio/pressure/mpl3115.c
484
if (chan->type == IIO_PRESSURE)
drivers/iio/pressure/mpl3115.c
487
if (chan->type == IIO_TEMP)
drivers/iio/pressure/mpl3115.c
494
const struct iio_chan_spec *chan,
drivers/iio/pressure/mpl3115.c
503
switch (chan->type) {
drivers/iio/pressure/mpl3115.c
533
const struct iio_chan_spec *chan,
drivers/iio/pressure/mpl3115.c
546
switch (chan->type) {
drivers/iio/pressure/mpl3115.c
577
const struct iio_chan_spec *chan,
drivers/iio/pressure/mpl3115.c
589
switch (chan->type) {
drivers/iio/pressure/mprls0025pa.c
276
ret = mpr_read_pressure(data, &data->chan.pres);
drivers/iio/pressure/mprls0025pa.c
280
iio_push_to_buffers_with_timestamp(indio_dev, &data->chan,
drivers/iio/pressure/mprls0025pa.c
291
struct iio_chan_spec const *chan, int *val, int *val2, long mask)
drivers/iio/pressure/mprls0025pa.c
297
if (chan->type != IIO_PRESSURE)
drivers/iio/pressure/mprls0025pa.h
78
} chan;
drivers/iio/pressure/ms5611_core.c
237
struct iio_chan_spec const *chan,
drivers/iio/pressure/ms5611_core.c
253
switch (chan->type) {
drivers/iio/pressure/ms5611_core.c
265
switch (chan->type) {
drivers/iio/pressure/ms5611_core.c
277
if (chan->type != IIO_TEMP && chan->type != IIO_PRESSURE)
drivers/iio/pressure/ms5611_core.c
280
if (chan->type == IIO_TEMP)
drivers/iio/pressure/ms5611_core.c
306
struct iio_chan_spec const *chan,
drivers/iio/pressure/ms5611_core.c
315
if (chan->type == IIO_TEMP)
drivers/iio/pressure/ms5611_core.c
318
else if (chan->type == IIO_PRESSURE)
drivers/iio/pressure/ms5611_core.c
329
if (chan->type == IIO_TEMP)
drivers/iio/pressure/ms5637.c
92
struct iio_chan_spec const *chan,
drivers/iio/pressure/rohm-bm1390.c
263
struct iio_chan_spec const *chan, int *val, int *val2)
drivers/iio/pressure/rohm-bm1390.c
276
switch (chan->type) {
drivers/iio/pressure/rohm-bm1390.c
296
struct iio_chan_spec const *chan,
drivers/iio/pressure/rohm-bm1390.c
304
if (chan->type == IIO_TEMP) {
drivers/iio/pressure/rohm-bm1390.c
309
} else if (chan->type == IIO_PRESSURE) {
drivers/iio/pressure/rohm-bm1390.c
325
ret = bm1390_read_data(data, chan, val, val2);
drivers/iio/pressure/sdp500.c
41
struct iio_chan_spec const *chan,
drivers/iio/pressure/t5403.c
127
struct iio_chan_spec const *chan,
drivers/iio/pressure/t5403.c
135
switch (chan->type) {
drivers/iio/pressure/t5403.c
159
struct iio_chan_spec const *chan,
drivers/iio/pressure/zpa2326.c
1468
struct iio_chan_spec const *chan,
drivers/iio/pressure/zpa2326.c
1475
return zpa2326_sample_oneshot(indio_dev, chan->type, val);
drivers/iio/pressure/zpa2326.c
1478
switch (chan->type) {
drivers/iio/pressure/zpa2326.c
1512
switch (chan->type) {
drivers/iio/pressure/zpa2326.c
1532
const struct iio_chan_spec *chan,
drivers/iio/proximity/as3935.c
179
struct iio_chan_spec const *chan,
drivers/iio/proximity/as3935.c
232
st->scan.chan = val & AS3935_DATA_MASK;
drivers/iio/proximity/as3935.c
64
u8 chan;
drivers/iio/proximity/aw96103.c
247
static int aw96103_get_diff_raw(struct aw96103 *aw96103, unsigned int chan,
drivers/iio/proximity/aw96103.c
254
AW96103_REG_DIFF_CH0 + chan * 4, &data);
drivers/iio/proximity/aw96103.c
263
const struct iio_chan_spec *chan,
drivers/iio/proximity/aw96103.c
271
ret = aw96103_get_diff_raw(aw96103, chan->channel, val);
drivers/iio/proximity/aw96103.c
282
const struct iio_chan_spec *chan, int *val)
drivers/iio/proximity/aw96103.c
287
AW96103_REG_PROXTH0_CH(chan->channel), val);
drivers/iio/proximity/aw96103.c
295
const struct iio_chan_spec *chan,
drivers/iio/proximity/aw96103.c
302
AW96103_REG_PROXCTRL_CH(chan->channel), &reg_val);
drivers/iio/proximity/aw96103.c
311
const struct iio_chan_spec *chan, int *val)
drivers/iio/proximity/aw96103.c
317
AW96103_REG_PROXCTRL_CH(chan->channel), &reg_val);
drivers/iio/proximity/aw96103.c
326
const struct iio_chan_spec *chan, int *val)
drivers/iio/proximity/aw96103.c
332
AW96103_REG_PROXCTRL_CH(chan->channel), &reg_val);
drivers/iio/proximity/aw96103.c
341
const struct iio_chan_spec *chan,
drivers/iio/proximity/aw96103.c
349
if (chan->type != IIO_PROXIMITY)
drivers/iio/proximity/aw96103.c
354
return aw96103_read_thresh(aw96103, chan, val);
drivers/iio/proximity/aw96103.c
358
return aw96103_read_out_debounce(aw96103, chan, val);
drivers/iio/proximity/aw96103.c
360
return aw96103_read_in_debounce(aw96103, chan, val);
drivers/iio/proximity/aw96103.c
365
return aw96103_read_hysteresis(aw96103, chan, val);
drivers/iio/proximity/aw96103.c
372
const struct iio_chan_spec *chan,
drivers/iio/proximity/aw96103.c
379
if (chan->type != IIO_PROXIMITY)
drivers/iio/proximity/aw96103.c
385
AW96103_REG_PROXTH0_CH(chan->channel), val);
drivers/iio/proximity/aw96103.c
390
AW96103_REG_PROXCTRL_CH(chan->channel),
drivers/iio/proximity/aw96103.c
396
AW96103_REG_PROXCTRL_CH(chan->channel),
drivers/iio/proximity/aw96103.c
404
AW96103_REG_PROXCTRL_CH(chan->channel),
drivers/iio/proximity/aw96103.c
413
const struct iio_chan_spec *chan,
drivers/iio/proximity/aw96103.c
419
return aw96103->channels_arr[chan->channel].used;
drivers/iio/proximity/aw96103.c
423
const struct iio_chan_spec *chan,
drivers/iio/proximity/aw96103.c
429
aw96103->channels_arr[chan->channel].used = !!state;
drivers/iio/proximity/aw96103.c
432
BIT(chan->channel),
drivers/iio/proximity/aw96103.c
433
state ? BIT(chan->channel) : 0);
drivers/iio/proximity/cros_ec_mkbp_proximity.c
139
const struct iio_chan_spec *chan, int *val,
drivers/iio/proximity/cros_ec_mkbp_proximity.c
145
if (chan->type == IIO_PROXIMITY && mask == IIO_CHAN_INFO_RAW)
drivers/iio/proximity/cros_ec_mkbp_proximity.c
152
const struct iio_chan_spec *chan,
drivers/iio/proximity/cros_ec_mkbp_proximity.c
162
const struct iio_chan_spec *chan,
drivers/iio/proximity/d3323aa.c
552
struct iio_chan_spec const *chan,
drivers/iio/proximity/d3323aa.c
578
struct iio_chan_spec const *chan, int *val,
drivers/iio/proximity/d3323aa.c
603
struct iio_chan_spec const *chan, int val,
drivers/iio/proximity/d3323aa.c
623
const struct iio_chan_spec *chan,
drivers/iio/proximity/d3323aa.c
642
const struct iio_chan_spec *chan,
drivers/iio/proximity/hx9023s.c
658
const struct iio_chan_spec *chan,
drivers/iio/proximity/hx9023s.c
671
*val = data->ch_data[chan->channel].diff;
drivers/iio/proximity/hx9023s.c
692
const struct iio_chan_spec *chan,
drivers/iio/proximity/hx9023s.c
698
if (chan->type != IIO_PROXIMITY)
drivers/iio/proximity/hx9023s.c
706
ret = hx9023s_get_proximity(data, chan, val);
drivers/iio/proximity/hx9023s.c
739
const struct iio_chan_spec *chan,
drivers/iio/proximity/hx9023s.c
744
if (chan->type != IIO_PROXIMITY)
drivers/iio/proximity/hx9023s.c
769
unsigned int chan;
drivers/iio/proximity/hx9023s.c
781
for_each_set_bit(chan, &prox_changed, HX9023S_CH_NUM) {
drivers/iio/proximity/hx9023s.c
784
dir = (data->prox_state_reg & BIT(chan)) ?
drivers/iio/proximity/hx9023s.c
788
IIO_UNMOD_EVENT_CODE(IIO_PROXIMITY, chan,
drivers/iio/proximity/hx9023s.c
807
const struct iio_chan_spec *chan,
drivers/iio/proximity/hx9023s.c
814
if (chan->type != IIO_PROXIMITY)
drivers/iio/proximity/hx9023s.c
821
return hx9023s_get_thres_far(data, chan->channel, val);
drivers/iio/proximity/hx9023s.c
823
return hx9023s_get_thres_near(data, chan->channel, val);
drivers/iio/proximity/hx9023s.c
842
const struct iio_chan_spec *chan,
drivers/iio/proximity/hx9023s.c
849
if (chan->type != IIO_PROXIMITY)
drivers/iio/proximity/hx9023s.c
856
return hx9023s_set_thres_far(data, chan->channel, val);
drivers/iio/proximity/hx9023s.c
858
return hx9023s_set_thres_near(data, chan->channel, val);
drivers/iio/proximity/hx9023s.c
877
const struct iio_chan_spec *chan,
drivers/iio/proximity/hx9023s.c
883
return test_bit(chan->channel, &data->chan_event);
drivers/iio/proximity/hx9023s.c
887
const struct iio_chan_spec *chan,
drivers/iio/proximity/hx9023s.c
894
if (test_bit(chan->channel, &data->chan_in_use)) {
drivers/iio/proximity/hx9023s.c
895
hx9023s_ch_en(data, chan->channel, state);
drivers/iio/proximity/hx9023s.c
896
__assign_bit(chan->channel, &data->chan_event,
drivers/iio/proximity/hx9023s.c
897
data->ch_data[chan->channel].enable);
drivers/iio/proximity/irsd200.c
492
struct iio_chan_spec const *chan, int *val,
drivers/iio/proximity/irsd200.c
531
struct iio_chan_spec const *chan,
drivers/iio/proximity/irsd200.c
557
struct iio_chan_spec const *chan, int val,
drivers/iio/proximity/irsd200.c
575
const struct iio_chan_spec *chan,
drivers/iio/proximity/irsd200.c
608
const struct iio_chan_spec *chan,
drivers/iio/proximity/irsd200.c
628
const struct iio_chan_spec *chan,
drivers/iio/proximity/irsd200.c
650
const struct iio_chan_spec *chan,
drivers/iio/proximity/isl29501.c
259
const struct iio_chan_spec *chan,
drivers/iio/proximity/isl29501.c
381
const struct iio_chan_spec *chan,
drivers/iio/proximity/isl29501.c
612
const struct iio_chan_spec *chan,
drivers/iio/proximity/isl29501.c
617
switch (chan->type) {
drivers/iio/proximity/isl29501.c
656
const struct iio_chan_spec *chan,
drivers/iio/proximity/isl29501.c
662
switch (chan->type) {
drivers/iio/proximity/isl29501.c
713
const struct iio_chan_spec *chan,
drivers/iio/proximity/isl29501.c
716
switch (chan->type) {
drivers/iio/proximity/isl29501.c
774
struct iio_chan_spec const *chan, int *val,
drivers/iio/proximity/isl29501.c
781
return isl29501_get_raw(isl29501, chan, val);
drivers/iio/proximity/isl29501.c
783
return isl29501_get_scale(isl29501, chan, val, val2);
drivers/iio/proximity/isl29501.c
789
return isl29501_get_calibbias(isl29501, chan, val);
drivers/iio/proximity/isl29501.c
796
const struct iio_chan_spec *chan,
drivers/iio/proximity/isl29501.c
799
switch (chan->type) {
drivers/iio/proximity/isl29501.c
825
const struct iio_chan_spec *chan,
drivers/iio/proximity/isl29501.c
830
if (chan->type != IIO_CURRENT)
drivers/iio/proximity/isl29501.c
846
const struct iio_chan_spec *chan,
drivers/iio/proximity/isl29501.c
849
switch (chan->type) {
drivers/iio/proximity/isl29501.c
883
struct iio_chan_spec const *chan,
drivers/iio/proximity/isl29501.c
890
return isl29501_set_raw(isl29501, chan, val);
drivers/iio/proximity/isl29501.c
896
return isl29501_set_scale(isl29501, chan, val, val2);
drivers/iio/proximity/isl29501.c
898
return isl29501_set_calibbias(isl29501, chan, val);
drivers/iio/proximity/pulsedlight-lidar-lite-v2.c
193
struct iio_chan_spec const *chan,
drivers/iio/proximity/pulsedlight-lidar-lite-v2.c
231
u16 chan;
drivers/iio/proximity/pulsedlight-lidar-lite-v2.c
235
ret = lidar_get_measurement(data, &scan.chan);
drivers/iio/proximity/rfd77402.c
237
struct iio_chan_spec const *chan,
drivers/iio/proximity/srf08.c
180
s16 chan;
drivers/iio/proximity/srf08.c
184
scan.chan = srf08_read_ranging(data);
drivers/iio/proximity/srf08.c
185
if (scan.chan < 0)
drivers/iio/proximity/sx9310.c
259
const struct iio_chan_spec *chan, __be16 *val)
drivers/iio/proximity/sx9310.c
263
ret = regmap_write(data->regmap, SX9310_REG_SENSOR_SEL, chan->channel);
drivers/iio/proximity/sx9310.c
267
return regmap_bulk_read(data->regmap, chan->address, val, sizeof(*val));
drivers/iio/proximity/sx9310.c
291
const struct iio_chan_spec *chan, int *val)
drivers/iio/proximity/sx9310.c
300
switch (chan->channel) {
drivers/iio/proximity/sx9310.c
335
const struct iio_chan_spec *chan, int *val,
drivers/iio/proximity/sx9310.c
341
if (chan->type != IIO_PROXIMITY)
drivers/iio/proximity/sx9310.c
349
ret = sx_common_read_proximity(data, chan, val);
drivers/iio/proximity/sx9310.c
356
ret = sx9310_read_gain(data, chan, val);
drivers/iio/proximity/sx9310.c
369
struct iio_chan_spec const *chan,
drivers/iio/proximity/sx9310.c
373
if (chan->type != IIO_PROXIMITY)
drivers/iio/proximity/sx9310.c
412
const struct iio_chan_spec *chan, int *val)
drivers/iio/proximity/sx9310.c
418
reg = ret = sx9310_get_thresh_reg(chan->channel);
drivers/iio/proximity/sx9310.c
435
const struct iio_chan_spec *chan, int *val)
drivers/iio/proximity/sx9310.c
440
ret = sx9310_read_thresh(data, chan, &pthresh);
drivers/iio/proximity/sx9310.c
495
const struct iio_chan_spec *chan,
drivers/iio/proximity/sx9310.c
502
if (chan->type != IIO_PROXIMITY)
drivers/iio/proximity/sx9310.c
507
return sx9310_read_thresh(data, chan, val);
drivers/iio/proximity/sx9310.c
518
return sx9310_read_hysteresis(data, chan, val);
drivers/iio/proximity/sx9310.c
525
const struct iio_chan_spec *chan, int val)
drivers/iio/proximity/sx9310.c
531
reg = ret = sx9310_get_thresh_reg(chan->channel);
drivers/iio/proximity/sx9310.c
553
const struct iio_chan_spec *chan, int _val)
drivers/iio/proximity/sx9310.c
558
ret = sx9310_read_thresh(data, chan, &pthresh);
drivers/iio/proximity/sx9310.c
615
const struct iio_chan_spec *chan,
drivers/iio/proximity/sx9310.c
622
if (chan->type != IIO_PROXIMITY)
drivers/iio/proximity/sx9310.c
627
return sx9310_write_thresh(data, chan, val);
drivers/iio/proximity/sx9310.c
638
return sx9310_write_hysteresis(data, chan, val);
drivers/iio/proximity/sx9310.c
664
const struct iio_chan_spec *chan, int val)
drivers/iio/proximity/sx9310.c
670
switch (chan->channel) {
drivers/iio/proximity/sx9310.c
691
const struct iio_chan_spec *chan, int val, int val2,
drivers/iio/proximity/sx9310.c
696
if (chan->type != IIO_PROXIMITY)
drivers/iio/proximity/sx9310.c
703
return sx9310_write_gain(data, chan, val);
drivers/iio/proximity/sx9324.c
177
const struct iio_chan_spec *chan,
drivers/iio/proximity/sx9324.c
185
ret = regmap_read(data->regmap, SX9324_REG_AFE_PH0 + chan->channel, &val);
drivers/iio/proximity/sx9324.c
355
const struct iio_chan_spec *chan,
drivers/iio/proximity/sx9324.c
360
ret = regmap_write(data->regmap, SX9324_REG_PHASE_SEL, chan->channel);
drivers/iio/proximity/sx9324.c
364
return regmap_bulk_read(data->regmap, chan->address, val, sizeof(*val));
drivers/iio/proximity/sx9324.c
387
const struct iio_chan_spec *chan, int *val)
drivers/iio/proximity/sx9324.c
392
reg = SX9324_REG_PROX_CTRL0 + chan->channel / 2;
drivers/iio/proximity/sx9324.c
427
const struct iio_chan_spec *chan,
drivers/iio/proximity/sx9324.c
438
ret = sx_common_read_proximity(data, chan, val);
drivers/iio/proximity/sx9324.c
445
ret = sx9324_read_gain(data, chan, val);
drivers/iio/proximity/sx9324.c
458
struct iio_chan_spec const *chan,
drivers/iio/proximity/sx9324.c
462
if (chan->type != IIO_PROXIMITY)
drivers/iio/proximity/sx9324.c
502
const struct iio_chan_spec *chan, int *val)
drivers/iio/proximity/sx9324.c
513
reg = SX9324_REG_PROX_CTRL6 + chan->channel / 2;
drivers/iio/proximity/sx9324.c
527
const struct iio_chan_spec *chan, int *val)
drivers/iio/proximity/sx9324.c
532
ret = sx9324_read_thresh(data, chan, &pthresh);
drivers/iio/proximity/sx9324.c
586
const struct iio_chan_spec *chan,
drivers/iio/proximity/sx9324.c
593
if (chan->type != IIO_PROXIMITY)
drivers/iio/proximity/sx9324.c
598
return sx9324_read_thresh(data, chan, val);
drivers/iio/proximity/sx9324.c
609
return sx9324_read_hysteresis(data, chan, val);
drivers/iio/proximity/sx9324.c
616
const struct iio_chan_spec *chan, int _val)
drivers/iio/proximity/sx9324.c
620
reg = SX9324_REG_PROX_CTRL6 + chan->channel / 2;
drivers/iio/proximity/sx9324.c
634
const struct iio_chan_spec *chan, int _val)
drivers/iio/proximity/sx9324.c
639
ret = sx9324_read_thresh(data, chan, &pthresh);
drivers/iio/proximity/sx9324.c
698
const struct iio_chan_spec *chan,
drivers/iio/proximity/sx9324.c
705
if (chan->type != IIO_PROXIMITY)
drivers/iio/proximity/sx9324.c
710
return sx9324_write_thresh(data, chan, val);
drivers/iio/proximity/sx9324.c
721
return sx9324_write_hysteresis(data, chan, val);
drivers/iio/proximity/sx9324.c
728
const struct iio_chan_spec *chan, int val)
drivers/iio/proximity/sx9324.c
732
reg = SX9324_REG_PROX_CTRL0 + chan->channel / 2;
drivers/iio/proximity/sx9324.c
748
const struct iio_chan_spec *chan, int val, int val2,
drivers/iio/proximity/sx9324.c
757
return sx9324_write_gain(data, chan, val);
drivers/iio/proximity/sx9360.c
256
const struct iio_chan_spec *chan,
drivers/iio/proximity/sx9360.c
259
return regmap_bulk_read(data->regmap, chan->address, val, sizeof(*val));
drivers/iio/proximity/sx9360.c
281
const struct iio_chan_spec *chan, int *val)
drivers/iio/proximity/sx9360.c
286
reg = SX9360_REG_PROX_CTRL0_PHR + chan->channel;
drivers/iio/proximity/sx9360.c
319
const struct iio_chan_spec *chan,
drivers/iio/proximity/sx9360.c
330
ret = sx_common_read_proximity(data, chan, val);
drivers/iio/proximity/sx9360.c
337
ret = sx9360_read_gain(data, chan, val);
drivers/iio/proximity/sx9360.c
351
static int sx9360_read_label(struct iio_dev *iio_dev, const struct iio_chan_spec *chan,
drivers/iio/proximity/sx9360.c
354
return sysfs_emit(label, "%s\n", sx9360_channel_labels[chan->channel]);
drivers/iio/proximity/sx9360.c
360
struct iio_chan_spec const *chan,
drivers/iio/proximity/sx9360.c
364
if (chan->type != IIO_PROXIMITY)
drivers/iio/proximity/sx9360.c
473
const struct iio_chan_spec *chan,
drivers/iio/proximity/sx9360.c
480
if (chan->type != IIO_PROXIMITY)
drivers/iio/proximity/sx9360.c
577
const struct iio_chan_spec *chan,
drivers/iio/proximity/sx9360.c
584
if (chan->type != IIO_PROXIMITY)
drivers/iio/proximity/sx9360.c
607
const struct iio_chan_spec *chan, int val)
drivers/iio/proximity/sx9360.c
612
reg = SX9360_REG_PROX_CTRL0_PHR + chan->channel;
drivers/iio/proximity/sx9360.c
622
const struct iio_chan_spec *chan, int val, int val2,
drivers/iio/proximity/sx9360.c
631
return sx9360_write_gain(data, chan, val);
drivers/iio/proximity/sx9500.c
224
static int sx9500_inc_chan_users(struct sx9500_data *data, int chan)
drivers/iio/proximity/sx9500.c
226
return sx9500_inc_users(data, &data->channel_users[chan],
drivers/iio/proximity/sx9500.c
227
SX9500_REG_PROX_CTRL0, BIT(chan));
drivers/iio/proximity/sx9500.c
230
static int sx9500_dec_chan_users(struct sx9500_data *data, int chan)
drivers/iio/proximity/sx9500.c
232
return sx9500_dec_users(data, &data->channel_users[chan],
drivers/iio/proximity/sx9500.c
233
SX9500_REG_PROX_CTRL0, BIT(chan));
drivers/iio/proximity/sx9500.c
263
const struct iio_chan_spec *chan,
drivers/iio/proximity/sx9500.c
269
ret = regmap_write(data->regmap, SX9500_REG_SENSOR_SEL, chan->channel);
drivers/iio/proximity/sx9500.c
303
const struct iio_chan_spec *chan,
drivers/iio/proximity/sx9500.c
310
ret = sx9500_inc_chan_users(data, chan->channel);
drivers/iio/proximity/sx9500.c
330
ret = sx9500_read_prox_data(data, chan, val);
drivers/iio/proximity/sx9500.c
338
ret = sx9500_dec_chan_users(data, chan->channel);
drivers/iio/proximity/sx9500.c
349
sx9500_dec_chan_users(data, chan->channel);
drivers/iio/proximity/sx9500.c
378
const struct iio_chan_spec *chan,
drivers/iio/proximity/sx9500.c
384
switch (chan->type) {
drivers/iio/proximity/sx9500.c
390
ret = sx9500_read_proximity(data, chan, val);
drivers/iio/proximity/sx9500.c
428
const struct iio_chan_spec *chan,
drivers/iio/proximity/sx9500.c
433
switch (chan->type) {
drivers/iio/proximity/sx9500.c
466
unsigned int val, chan;
drivers/iio/proximity/sx9500.c
476
for (chan = 0; chan < SX9500_NUM_CHANNELS; chan++) {
drivers/iio/proximity/sx9500.c
479
bool new_prox = val & BIT(chan);
drivers/iio/proximity/sx9500.c
481
if (!data->event_enabled[chan])
drivers/iio/proximity/sx9500.c
483
if (new_prox == data->prox_stat[chan])
drivers/iio/proximity/sx9500.c
488
ev = IIO_UNMOD_EVENT_CODE(IIO_PROXIMITY, chan,
drivers/iio/proximity/sx9500.c
491
data->prox_stat[chan] = new_prox;
drivers/iio/proximity/sx9500.c
523
const struct iio_chan_spec *chan,
drivers/iio/proximity/sx9500.c
529
if (chan->type != IIO_PROXIMITY || type != IIO_EV_TYPE_THRESH ||
drivers/iio/proximity/sx9500.c
533
return data->event_enabled[chan->channel];
drivers/iio/proximity/sx9500.c
537
const struct iio_chan_spec *chan,
drivers/iio/proximity/sx9500.c
545
if (chan->type != IIO_PROXIMITY || type != IIO_EV_TYPE_THRESH ||
drivers/iio/proximity/sx9500.c
552
ret = sx9500_inc_chan_users(data, chan->channel);
drivers/iio/proximity/sx9500.c
559
ret = sx9500_dec_chan_users(data, chan->channel);
drivers/iio/proximity/sx9500.c
567
data->event_enabled[chan->channel] = state;
drivers/iio/proximity/sx9500.c
572
sx9500_dec_chan_users(data, chan->channel);
drivers/iio/proximity/sx9500.c
574
sx9500_inc_chan_users(data, chan->channel);
drivers/iio/proximity/sx9500.c
635
u16 chan[SX9500_NUM_CHANNELS];
drivers/iio/proximity/sx9500.c
647
scan.chan[i++] = val;
drivers/iio/proximity/sx_common.c
101
dir = (val & BIT(chan)) ? IIO_EV_DIR_FALLING : IIO_EV_DIR_RISING;
drivers/iio/proximity/sx_common.c
102
ev = IIO_UNMOD_EVENT_CODE(IIO_PROXIMITY, chan,
drivers/iio/proximity/sx_common.c
180
const struct iio_chan_spec *chan, int *val)
drivers/iio/proximity/sx_common.c
187
ret = sx_common_get_read_channel(data, chan->channel);
drivers/iio/proximity/sx_common.c
209
ret = data->chip_info->ops.read_prox_data(data, chan, &rawval);
drivers/iio/proximity/sx_common.c
213
*val = sign_extend32(be16_to_cpu(rawval), chan->scan_type.realbits - 1);
drivers/iio/proximity/sx_common.c
219
ret = sx_common_put_read_channel(data, chan->channel);
drivers/iio/proximity/sx_common.c
230
sx_common_put_read_channel(data, chan->channel);
drivers/iio/proximity/sx_common.c
248
const struct iio_chan_spec *chan,
drivers/iio/proximity/sx_common.c
254
return !!(data->chan_event & BIT(chan->channel));
drivers/iio/proximity/sx_common.c
269
const struct iio_chan_spec *chan,
drivers/iio/proximity/sx_common.c
278
if (!!(data->chan_event & BIT(chan->channel)) == state)
drivers/iio/proximity/sx_common.c
283
ret = sx_common_get_event_channel(data, chan->channel);
drivers/iio/proximity/sx_common.c
286
if (!(data->chan_event & ~BIT(chan->channel))) {
drivers/iio/proximity/sx_common.c
289
sx_common_put_event_channel(data, chan->channel);
drivers/iio/proximity/sx_common.c
292
ret = sx_common_put_event_channel(data, chan->channel);
drivers/iio/proximity/sx_common.c
298
sx_common_get_event_channel(data, chan->channel);
drivers/iio/proximity/sx_common.c
77
unsigned int val, chan;
drivers/iio/proximity/sx_common.c
97
for_each_set_bit(chan, &prox_changed, data->chip_info->num_channels) {
drivers/iio/proximity/sx_common.h
137
const struct iio_chan_spec *chan, int *val);
drivers/iio/proximity/sx_common.h
140
const struct iio_chan_spec *chan,
drivers/iio/proximity/sx_common.h
144
const struct iio_chan_spec *chan,
drivers/iio/proximity/sx_common.h
47
const struct iio_chan_spec *chan, __be16 *val);
drivers/iio/proximity/vcnl3020.c
289
const struct iio_chan_spec *chan,
drivers/iio/proximity/vcnl3020.c
324
const struct iio_chan_spec *chan,
drivers/iio/proximity/vcnl3020.c
449
const struct iio_chan_spec *chan,
drivers/iio/proximity/vcnl3020.c
454
switch (chan->type) {
drivers/iio/proximity/vcnl3020.c
463
const struct iio_chan_spec *chan,
drivers/iio/proximity/vcnl3020.c
469
switch (chan->type) {
drivers/iio/proximity/vcnl3020.c
505
struct iio_chan_spec const *chan, int *val,
drivers/iio/proximity/vcnl3020.c
528
struct iio_chan_spec const *chan,
drivers/iio/proximity/vcnl3020.c
542
struct iio_chan_spec const *chan,
drivers/iio/proximity/vl53l0x-i2c.c
145
const struct iio_chan_spec *chan,
drivers/iio/proximity/vl53l0x-i2c.c
213
const struct iio_chan_spec *chan,
drivers/iio/proximity/vl53l0x-i2c.c
219
if (chan->type != IIO_DISTANCE)
drivers/iio/proximity/vl53l0x-i2c.c
224
ret = vl53l0x_read_proximity(data, chan, val);
drivers/iio/proximity/vl53l0x-i2c.c
83
u16 chan;
drivers/iio/proximity/vl53l0x-i2c.c
93
scan.chan = get_unaligned_be16(&buffer[10]);
drivers/iio/proximity/vl53l1x-i2c.c
515
const struct iio_chan_spec *chan,
drivers/iio/proximity/vl53l1x-i2c.c
521
if (chan->type != IIO_DISTANCE)
drivers/iio/resolver/ad2s1200.c
46
struct iio_chan_spec const *chan,
drivers/iio/resolver/ad2s1200.c
56
switch (chan->type) {
drivers/iio/resolver/ad2s1200.c
78
gpiod_set_value(st->rdvel, !!(chan->type == IIO_ANGL));
drivers/iio/resolver/ad2s1200.c
86
switch (chan->type) {
drivers/iio/resolver/ad2s1210.c
1130
struct iio_chan_spec const *chan,
drivers/iio/resolver/ad2s1210.c
1133
if (chan->type == IIO_ANGL) {
drivers/iio/resolver/ad2s1210.c
1134
if (chan->channel == 0)
drivers/iio/resolver/ad2s1210.c
1136
if (chan->channel == 1)
drivers/iio/resolver/ad2s1210.c
1139
if (chan->type == IIO_ANGL_VEL)
drivers/iio/resolver/ad2s1210.c
1141
if (chan->type == IIO_PHASE)
drivers/iio/resolver/ad2s1210.c
1143
if (chan->type == IIO_ALTVOLTAGE) {
drivers/iio/resolver/ad2s1210.c
1144
if (chan->output)
drivers/iio/resolver/ad2s1210.c
1146
if (chan->channel == 0)
drivers/iio/resolver/ad2s1210.c
1148
if (chan->channel == 1)
drivers/iio/resolver/ad2s1210.c
1150
if (chan->channel == 2)
drivers/iio/resolver/ad2s1210.c
1158
const struct iio_chan_spec *chan,
drivers/iio/resolver/ad2s1210.c
1166
switch (chan->type) {
drivers/iio/resolver/ad2s1210.c
1177
if (chan->output)
drivers/iio/resolver/ad2s1210.c
1197
const struct iio_chan_spec *chan,
drivers/iio/resolver/ad2s1210.c
1205
switch (chan->type) {
drivers/iio/resolver/ad2s1210.c
1216
if (chan->output)
drivers/iio/resolver/ad2s1210.c
1236
struct iio_chan_spec const *chan,
drivers/iio/resolver/ad2s1210.c
1241
if (chan->type == IIO_ANGL)
drivers/iio/resolver/ad2s1210.c
1243
if (chan->type == IIO_ANGL_VEL)
drivers/iio/resolver/ad2s1210.c
1245
if (chan->type == IIO_PHASE)
drivers/iio/resolver/ad2s1210.c
1247
if (chan->type == IIO_ALTVOLTAGE) {
drivers/iio/resolver/ad2s1210.c
1248
if (chan->channel == 0) {
drivers/iio/resolver/ad2s1210.c
1258
if (chan->channel == 1 || chan->channel == 2)
drivers/iio/resolver/ad2s1210.c
1284
size_t chan = 0;
drivers/iio/resolver/ad2s1210.c
1309
memcpy(&st->scan.chan[chan++], &st->sample.raw, 2);
drivers/iio/resolver/ad2s1210.c
1329
memcpy(&st->scan.chan[chan++], &st->sample.raw, 2);
drivers/iio/resolver/ad2s1210.c
166
__be16 chan[2];
drivers/iio/resolver/ad2s1210.c
447
struct iio_chan_spec const *chan,
drivers/iio/resolver/ad2s1210.c
462
switch (chan->type) {
drivers/iio/resolver/ad2s1210.c
489
switch (chan->type) {
drivers/iio/resolver/ad2s1210.c
507
switch (chan->type) {
drivers/iio/resolver/ad2s1210.c
752
struct iio_chan_spec const *chan,
drivers/iio/resolver/ad2s1210.c
761
return ad2s1210_single_conversion(indio_dev, chan, val);
drivers/iio/resolver/ad2s1210.c
763
switch (chan->type) {
drivers/iio/resolver/ad2s1210.c
777
switch (chan->type) {
drivers/iio/resolver/ad2s1210.c
784
switch (chan->type) {
drivers/iio/resolver/ad2s1210.c
796
struct iio_chan_spec const *chan,
drivers/iio/resolver/ad2s1210.c
810
switch (chan->type) {
drivers/iio/resolver/ad2s1210.c
819
switch (chan->type) {
drivers/iio/resolver/ad2s1210.c
834
struct iio_chan_spec const *chan,
drivers/iio/resolver/ad2s1210.c
841
switch (chan->type) {
drivers/iio/resolver/ad2s1210.c
848
switch (chan->type) {
drivers/iio/resolver/ad2s90.c
31
struct iio_chan_spec const *chan,
drivers/iio/resolver/ad2s90.c
39
if (chan->type != IIO_ANGL)
drivers/iio/temperature/hid-sensor-temperature.c
103
struct iio_chan_spec const *chan,
drivers/iio/temperature/hid-sensor-temperature.c
57
struct iio_chan_spec const *chan,
drivers/iio/temperature/hid-sensor-temperature.c
64
if (chan->type != IIO_TEMP)
drivers/iio/temperature/iqs620at-temp.c
23
struct iio_chan_spec const *chan,
drivers/iio/temperature/ltc2983.c
1051
sensor->chan < LTC2983_DIFFERENTIAL_CHAN_MIN)
drivers/iio/temperature/ltc2983.c
1054
sensor->chan);
drivers/iio/temperature/ltc2983.c
1154
if (sensor->chan < LTC2983_DIFFERENTIAL_CHAN_MIN)
drivers/iio/temperature/ltc2983.c
1157
sensor->chan);
drivers/iio/temperature/ltc2983.c
1253
if (sensor->chan < LTC2983_DIFFERENTIAL_CHAN_MIN)
drivers/iio/temperature/ltc2983.c
1256
sensor->chan);
drivers/iio/temperature/ltc2983.c
1359
sensor->chan < LTC2983_DIFFERENTIAL_CHAN_MIN)
drivers/iio/temperature/ltc2983.c
1362
sensor->chan);
drivers/iio/temperature/ltc2983.c
1422
if (sensor->chan < LTC2983_DIFFERENTIAL_CHAN_MIN)
drivers/iio/temperature/ltc2983.c
1425
sensor->chan);
drivers/iio/temperature/ltc2983.c
1459
if (!adc->single_ended && sensor->chan < LTC2983_DIFFERENTIAL_CHAN_MIN)
drivers/iio/temperature/ltc2983.c
1462
sensor->chan);
drivers/iio/temperature/ltc2983.c
1485
if (!temp->single_ended && sensor->chan < LTC2983_DIFFERENTIAL_CHAN_MIN)
drivers/iio/temperature/ltc2983.c
1488
sensor->chan);
drivers/iio/temperature/ltc2983.c
1512
start_conversion |= LTC2983_STATUS_CHAN_SEL(sensor->chan);
drivers/iio/temperature/ltc2983.c
1514
sensor->chan, start_conversion);
drivers/iio/temperature/ltc2983.c
1534
ret = regmap_bulk_read(st->regmap, LTC2983_RESULT_ADDR(sensor->chan, base_reg),
drivers/iio/temperature/ltc2983.c
1565
struct iio_chan_spec const *chan,
drivers/iio/temperature/ltc2983.c
1573
if (chan->address >= st->num_channels) {
drivers/iio/temperature/ltc2983.c
1574
dev_err(dev, "Invalid channel address: %ld\n", chan->address);
drivers/iio/temperature/ltc2983.c
1581
switch (chan->type) {
drivers/iio/temperature/ltc2983.c
1583
ret = ltc2983_chan_read(st, st->sensors[chan->address],
drivers/iio/temperature/ltc2983.c
1587
ret = ltc2983_chan_read(st, st->sensors[chan->address],
drivers/iio/temperature/ltc2983.c
1594
switch (chan->type) {
drivers/iio/temperature/ltc2983.c
1658
int ret, chan = 0, channel_avail_mask = 0;
drivers/iio/temperature/ltc2983.c
1678
ret = fwnode_property_read_u32(child, "reg", &sensor.chan);
drivers/iio/temperature/ltc2983.c
1684
if (sensor.chan < LTC2983_MIN_CHANNELS_NR ||
drivers/iio/temperature/ltc2983.c
1685
sensor.chan > st->info->max_channels_nr)
drivers/iio/temperature/ltc2983.c
1688
sensor.chan,
drivers/iio/temperature/ltc2983.c
1692
if (channel_avail_mask & BIT(sensor.chan))
drivers/iio/temperature/ltc2983.c
1695
sensor.chan);
drivers/iio/temperature/ltc2983.c
1709
sensor.type, sensor.chan);
drivers/iio/temperature/ltc2983.c
1713
st->sensors[chan] = ltc2983_thermocouple_new(child, st,
drivers/iio/temperature/ltc2983.c
1717
st->sensors[chan] = ltc2983_rtd_new(child, st, &sensor);
drivers/iio/temperature/ltc2983.c
1720
st->sensors[chan] = ltc2983_thermistor_new(child, st,
drivers/iio/temperature/ltc2983.c
1723
st->sensors[chan] = ltc2983_diode_new(child, st,
drivers/iio/temperature/ltc2983.c
1726
st->sensors[chan] = ltc2983_r_sense_new(child, st,
drivers/iio/temperature/ltc2983.c
1729
st->sensors[chan] = ltc2983_adc_new(child, st, &sensor);
drivers/iio/temperature/ltc2983.c
1731
st->sensors[chan] = ltc2983_temp_new(child, st, &sensor);
drivers/iio/temperature/ltc2983.c
1733
st->sensors[chan] = ltc2983_copper_trace_new(child, st, &sensor);
drivers/iio/temperature/ltc2983.c
1735
st->sensors[chan] = ltc2983_leak_detector_new(child, st, &sensor);
drivers/iio/temperature/ltc2983.c
1742
if (IS_ERR(st->sensors[chan]))
drivers/iio/temperature/ltc2983.c
1743
return dev_err_probe(dev, PTR_ERR(st->sensors[chan]),
drivers/iio/temperature/ltc2983.c
1747
st->sensors[chan]->chan = sensor.chan;
drivers/iio/temperature/ltc2983.c
1748
st->sensors[chan]->type = sensor.type;
drivers/iio/temperature/ltc2983.c
1754
if (!st->sensors[chan]->n_iio_chan) {
drivers/iio/temperature/ltc2983.c
1756
st->sensors[chan]->n_iio_chan = 1;
drivers/iio/temperature/ltc2983.c
1758
st->iio_channels += st->sensors[chan]->n_iio_chan;
drivers/iio/temperature/ltc2983.c
1760
channel_avail_mask |= BIT(sensor.chan);
drivers/iio/temperature/ltc2983.c
1761
chan++;
drivers/iio/temperature/ltc2983.c
1809
u32 chan, iio_idx = 0, status;
drivers/iio/temperature/ltc2983.c
1839
for (chan = 0; chan < st->num_channels; chan++) {
drivers/iio/temperature/ltc2983.c
1842
ret = st->sensors[chan]->assign_chan(st, st->sensors[chan]);
drivers/iio/temperature/ltc2983.c
1851
if (st->sensors[chan]->type == LTC2983_SENSOR_SENSE_RESISTOR ||
drivers/iio/temperature/ltc2983.c
1856
switch (st->sensors[chan]->type) {
drivers/iio/temperature/ltc2983.c
1858
if (st->sensors[chan]->n_iio_chan == 1) {
drivers/iio/temperature/ltc2983.c
1861
LTC2983_CHAN(IIO_RESISTANCE, iio_chan_r++, chan);
drivers/iio/temperature/ltc2983.c
1864
LTC2983_CHAN(IIO_TEMP, iio_chan_t++, chan);
drivers/iio/temperature/ltc2983.c
1866
LTC2983_CHAN(IIO_RESISTANCE, iio_chan_r++, chan);
drivers/iio/temperature/ltc2983.c
1871
LTC2983_CHAN(IIO_COVERAGE, iio_chan_c++, chan);
drivers/iio/temperature/ltc2983.c
1873
LTC2983_CHAN(IIO_RESISTANCE, iio_chan_r++, chan);
drivers/iio/temperature/ltc2983.c
1890
chan);
drivers/iio/temperature/ltc2983.c
275
u32 chan;
drivers/iio/temperature/ltc2983.c
404
u32 reg = LTC2983_CHAN_ASSIGN_ADDR(sensor->chan);
drivers/iio/temperature/ltc2983.c
60
#define LTC2983_CHAN_ASSIGN_ADDR(chan) \
drivers/iio/temperature/ltc2983.c
61
((((chan) - 1) * 4) + LTC2983_CHAN_ASSIGN_START_REG)
drivers/iio/temperature/ltc2983.c
62
#define LTC2983_RESULT_ADDR(chan, base) \
drivers/iio/temperature/ltc2983.c
63
((((chan) - 1) * 4) + (base))
drivers/iio/temperature/ltc2983.c
813
sensor->chan < LTC2983_DIFFERENTIAL_CHAN_MIN)
drivers/iio/temperature/ltc2983.c
816
sensor->chan);
drivers/iio/temperature/ltc2983.c
937
if (sensor->chan < min || sensor->chan > max)
drivers/iio/temperature/ltc2983.c
940
sensor->chan);
drivers/iio/temperature/ltc2983.c
943
if (sensor->chan < LTC2983_DIFFERENTIAL_CHAN_MIN)
drivers/iio/temperature/ltc2983.c
946
sensor->chan);
drivers/iio/temperature/max30208.c
149
struct iio_chan_spec const *chan,
drivers/iio/temperature/max31856.c
157
struct iio_chan_spec const *chan,
drivers/iio/temperature/max31856.c
163
switch (chan->channel2) {
drivers/iio/temperature/max31856.c
213
struct iio_chan_spec const *chan,
drivers/iio/temperature/max31856.c
221
ret = max31856_thermocouple_read(data, chan, val);
drivers/iio/temperature/max31856.c
226
switch (chan->channel2) {
drivers/iio/temperature/max31856.c
255
struct iio_chan_spec const *chan,
drivers/iio/temperature/max31856.c
267
struct iio_chan_spec const *chan,
drivers/iio/temperature/max31865.c
150
struct iio_chan_spec const *chan,
drivers/iio/temperature/maxim_thermocouple.c
136
struct iio_chan_spec const *chan, int *val)
drivers/iio/temperature/maxim_thermocouple.c
139
unsigned int shift = chan->scan_type.shift + (chan->address * 8);
drivers/iio/temperature/maxim_thermocouple.c
162
*val = sign_extend32(*val >> shift, chan->scan_type.realbits - 1);
drivers/iio/temperature/maxim_thermocouple.c
187
struct iio_chan_spec const *chan,
drivers/iio/temperature/maxim_thermocouple.c
198
ret = maxim_thermocouple_read(data, chan, val);
drivers/iio/temperature/maxim_thermocouple.c
205
switch (chan->channel2) {
drivers/iio/temperature/mcp9600.c
184
struct iio_chan_spec const *chan, int *val)
drivers/iio/temperature/mcp9600.c
188
ret = i2c_smbus_read_word_swapped(data->client, chan->address);
drivers/iio/temperature/mcp9600.c
199
struct iio_chan_spec const *chan, int *val,
drivers/iio/temperature/mcp9600.c
207
ret = mcp9600_read(data, chan, val);
drivers/iio/temperature/mcp9600.c
239
const struct iio_chan_spec *chan,
drivers/iio/temperature/mcp9600.c
247
i = mcp9600_get_alert_index(chan->channel2, dir);
drivers/iio/temperature/mcp9600.c
256
const struct iio_chan_spec *chan,
drivers/iio/temperature/mcp9600.c
265
i = mcp9600_get_alert_index(chan->channel2, dir);
drivers/iio/temperature/mcp9600.c
279
const struct iio_chan_spec *chan,
drivers/iio/temperature/mcp9600.c
289
i = mcp9600_get_alert_index(chan->channel2, dir);
drivers/iio/temperature/mcp9600.c
315
const struct iio_chan_spec *chan,
drivers/iio/temperature/mcp9600.c
326
i = mcp9600_get_alert_index(chan->channel2, dir);
drivers/iio/temperature/mcp9600.c
332
if (chan->channel2 == IIO_MOD_TEMP_AMBIENT) {
drivers/iio/temperature/mlx90614.c
402
struct iio_chan_spec const *chan,
drivers/iio/temperature/mlx90632.c
1072
struct iio_chan_spec const *chan,
drivers/iio/temperature/mlx90635.c
790
struct iio_chan_spec const *chan,
drivers/iio/temperature/tmp006.c
136
struct iio_chan_spec const *chan,
drivers/iio/temperature/tmp007.c
217
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/temperature/tmp007.c
224
switch (chan->channel2) {
drivers/iio/temperature/tmp007.c
257
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/temperature/tmp007.c
263
switch (chan->channel2) {
drivers/iio/temperature/tmp007.c
284
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/temperature/tmp007.c
292
switch (chan->channel2) {
drivers/iio/temperature/tmp007.c
320
const struct iio_chan_spec *chan, enum iio_event_type type,
drivers/iio/temperature/tmp007.c
327
switch (chan->channel2) {
drivers/iio/temperature/tsys02d.c
61
struct iio_chan_spec const *chan,
drivers/iio/trigger/stm32-timer-trigger.c
451
struct iio_chan_spec const *chan,
drivers/iio/trigger/stm32-timer-trigger.c
486
struct iio_chan_spec const *chan,
drivers/iio/trigger/stm32-timer-trigger.c
560
const struct iio_chan_spec *chan,
drivers/iio/trigger/stm32-timer-trigger.c
571
const struct iio_chan_spec *chan)
drivers/iio/trigger/stm32-timer-trigger.c
609
const struct iio_chan_spec *chan,
drivers/iio/trigger/stm32-timer-trigger.c
652
const struct iio_chan_spec *chan)
drivers/iio/trigger/stm32-timer-trigger.c
672
const struct iio_chan_spec *chan,
drivers/iio/trigger/stm32-timer-trigger.c
685
const struct iio_chan_spec *chan,
drivers/input/touchscreen/iqs7211.c
1779
int chan = i * total_rx + j;
drivers/input/touchscreen/iqs7211.c
1785
cycle_alloc[k][slot] = chan;
drivers/input/touchscreen/iqs7211.c
1823
int chan = *(cycle_alloc[0] + i);
drivers/input/touchscreen/iqs7211.c
1825
if (chan == U8_MAX)
drivers/input/touchscreen/iqs7211.c
1828
if (chan >= total_rx * total_tx) {
drivers/input/touchscreen/iqs7211.c
1830
chan);
drivers/input/touchscreen/iqs7211.c
1835
if (j == i || *(cycle_alloc[0] + j) != chan)
drivers/input/touchscreen/iqs7211.c
1839
chan);
drivers/input/touchscreen/tsc2007_iio.c
38
struct iio_chan_spec const *chan,
drivers/input/touchscreen/tsc2007_iio.c
43
int adc_chan = chan->channel;
drivers/input/touchscreen/tsc2007_iio.c
53
switch (chan->channel) {
drivers/ipack/devices/ipoctal.c
54
static inline struct ipoctal *chan_to_ipoctal(struct ipoctal_channel *chan,
drivers/ipack/devices/ipoctal.c
57
return container_of(chan, struct ipoctal, channel[index]);
drivers/irqchip/irq-riscv-rpmi-sysmsi.c
114
ret = rpmi_mbox_send_message(priv->chan, &msg);
drivers/irqchip/irq-riscv-rpmi-sysmsi.c
231
priv->chan = mbox_request_channel(&priv->client, 0);
drivers/irqchip/irq-riscv-rpmi-sysmsi.c
232
if (IS_ERR(priv->chan))
drivers/irqchip/irq-riscv-rpmi-sysmsi.c
233
return PTR_ERR(priv->chan);
drivers/irqchip/irq-riscv-rpmi-sysmsi.c
238
mbox_free_channel(priv->chan);
drivers/irqchip/irq-riscv-rpmi-sysmsi.c
253
mbox_free_channel(priv->chan);
drivers/irqchip/irq-riscv-rpmi-sysmsi.c
287
mbox_free_channel(priv->chan);
drivers/irqchip/irq-riscv-rpmi-sysmsi.c
295
mbox_free_channel(priv->chan);
drivers/irqchip/irq-riscv-rpmi-sysmsi.c
57
struct mbox_chan *chan;
drivers/irqchip/irq-riscv-rpmi-sysmsi.c
70
ret = rpmi_mbox_send_message(priv->chan, &msg);
drivers/irqchip/irq-riscv-rpmi-sysmsi.c
91
ret = rpmi_mbox_send_message(priv->chan, &msg);
drivers/irqchip/irq-st.c
32
#define ST_A9_FIQ_N_SEL(dev, chan) (dev << (8 + (chan * 3)))
drivers/irqchip/irq-st.c
33
#define ST_A9_IRQ_N_SEL(dev, chan) (dev << (14 + (chan * 3)))
drivers/leds/leds-is31fl319x.c
196
int chan = led - is31->leds;
drivers/leds/leds-is31fl319x.c
201
dev_dbg(&is31->client->dev, "channel %d: %d\n", chan, brightness);
drivers/leds/leds-is31fl319x.c
206
ret = regmap_write(is31->regmap, IS31FL3190_PWM(chan), brightness);
drivers/leds/leds-is31fl319x.c
250
int chan = led - is31->leds;
drivers/leds/leds-is31fl319x.c
255
dev_dbg(&is31->client->dev, "channel %d: %d\n", chan, brightness);
drivers/leds/leds-is31fl319x.c
260
ret = regmap_write(is31->regmap, IS31FL3196_PWM(chan), brightness);
drivers/leds/leds-lp55xx-common.c
458
struct lp55xx_chip *chip, int chan)
drivers/leds/leds-lp55xx-common.c
470
if (chan >= max_channel) {
drivers/leds/leds-lp55xx-common.c
471
dev_err(dev, "invalid channel: %d / %d\n", chan, max_channel);
drivers/leds/leds-lp55xx-common.c
475
if (pdata->led_config[chan].led_current == 0)
drivers/leds/leds-lp55xx-common.c
478
if (pdata->led_config[chan].name) {
drivers/leds/leds-lp55xx-common.c
479
led->cdev.name = pdata->led_config[chan].name;
drivers/leds/leds-lp55xx-common.c
482
pdata->label ? : chip->cl->name, chan);
drivers/leds/leds-lp55xx-common.c
486
if (pdata->led_config[chan].num_colors > 1) {
drivers/leds/leds-lp55xx-common.c
488
pdata->led_config[chan].num_colors,
drivers/leds/leds-lp55xx-common.c
496
led->mc_cdev.num_colors = pdata->led_config[chan].num_colors;
drivers/leds/leds-lp55xx-common.c
499
pdata->led_config[chan].color_id[i];
drivers/leds/leds-lp55xx-common.c
501
pdata->led_config[chan].output_num[i];
drivers/leds/leds-lp55xx-common.c
510
led->cdev.default_trigger = pdata->led_config[chan].default_trigger;
drivers/leds/leds-lp55xx-common.c
511
led->led_current = pdata->led_config[chan].led_current;
drivers/leds/leds-lp55xx-common.c
512
led->max_current = pdata->led_config[chan].max_current;
drivers/leds/leds-lp55xx-common.c
513
led->chan_nr = pdata->led_config[chan].chan_nr;
drivers/leds/leds-lp55xx-common.c
521
if (pdata->led_config[chan].num_colors > 1)
drivers/leds/rgb/leds-lp5812.c
326
static int lp5812_init_led(struct lp5812_led *led, struct lp5812_chip *chip, int chan)
drivers/leds/rgb/leds-lp5812.c
333
if (chip->led_config[chan].name) {
drivers/leds/rgb/leds-lp5812.c
334
led->cdev.name = chip->led_config[chan].name;
drivers/leds/rgb/leds-lp5812.c
337
chip->label ? : chip->client->name, chan);
drivers/leds/rgb/leds-lp5812.c
342
if (!chip->led_config[chan].is_sc_led) {
drivers/leds/rgb/leds-lp5812.c
343
mc_led_info = devm_kcalloc(dev, chip->led_config[chan].num_colors,
drivers/leds/rgb/leds-lp5812.c
351
led->mc_cdev.num_colors = chip->led_config[chan].num_colors;
drivers/leds/rgb/leds-lp5812.c
354
mc_led_info[i].color_index = chip->led_config[chan].color_id[i];
drivers/leds/rgb/leds-lp5812.c
355
mc_led_info[i].channel = chip->led_config[chan].led_id[i];
drivers/leds/rgb/leds-lp5812.c
363
led->chan_nr = chan;
drivers/leds/rgb/leds-lp5812.c
365
if (chip->led_config[chan].is_sc_led) {
drivers/leds/rgb/leds-lp5860-core.c
147
int chan;
drivers/leds/rgb/leds-lp5860-core.c
156
chan = fwnode_get_child_node_count(multi_led);
drivers/leds/rgb/leds-lp5860-core.c
157
if (!chan || chan > LP5860_MAX_LED_CHANNELS)
drivers/leds/rgb/leds-lp5860-core.c
160
led->mc_cdev.num_colors = chan;
drivers/leds/rgb/leds-lp5860-core.c
162
mc_led_info = devm_kcalloc(lp->dev, chan, sizeof(*mc_led_info), GFP_KERNEL);
drivers/leds/rgb/leds-qcom-lpg.c
1109
chan = led->channels[i];
drivers/leds/rgb/leds-qcom-lpg.c
1111
chan->ramp_tick_ms = delta_t;
drivers/leds/rgb/leds-qcom-lpg.c
1112
chan->ramp_ping_pong = ping_pong;
drivers/leds/rgb/leds-qcom-lpg.c
1113
chan->ramp_oneshot = repeat != -1;
drivers/leds/rgb/leds-qcom-lpg.c
1115
chan->ramp_lo_pause_ms = lo_pause;
drivers/leds/rgb/leds-qcom-lpg.c
1116
chan->ramp_hi_pause_ms = hi_pause;
drivers/leds/rgb/leds-qcom-lpg.c
1118
chan->pattern_lo_idx = lo_idx;
drivers/leds/rgb/leds-qcom-lpg.c
1119
chan->pattern_hi_idx = hi_idx;
drivers/leds/rgb/leds-qcom-lpg.c
1171
struct lpg_channel *chan;
drivers/leds/rgb/leds-qcom-lpg.c
1177
chan = led->channels[0];
drivers/leds/rgb/leds-qcom-lpg.c
1178
lpg_lut_free(lpg, chan->pattern_lo_idx, chan->pattern_hi_idx);
drivers/leds/rgb/leds-qcom-lpg.c
1181
chan = led->channels[i];
drivers/leds/rgb/leds-qcom-lpg.c
1182
lpg_sdam_configure_triggers(chan, 0);
drivers/leds/rgb/leds-qcom-lpg.c
1183
lpg_clear_pbs_trigger(chan->lpg, chan->lut_mask);
drivers/leds/rgb/leds-qcom-lpg.c
1184
chan->pattern_lo_idx = 0;
drivers/leds/rgb/leds-qcom-lpg.c
1185
chan->pattern_hi_idx = 0;
drivers/leds/rgb/leds-qcom-lpg.c
1216
struct lpg_channel *chan = &lpg->channels[pwm->hwpwm];
drivers/leds/rgb/leds-qcom-lpg.c
1218
return chan->in_use ? -EBUSY : 0;
drivers/leds/rgb/leds-qcom-lpg.c
1232
struct lpg_channel *chan = &lpg->channels[pwm->hwpwm];
drivers/leds/rgb/leds-qcom-lpg.c
1241
ret = lpg_calc_freq(chan, state->period);
drivers/leds/rgb/leds-qcom-lpg.c
1245
lpg_calc_duty(chan, state->duty_cycle);
drivers/leds/rgb/leds-qcom-lpg.c
1247
chan->enabled = state->enabled;
drivers/leds/rgb/leds-qcom-lpg.c
1249
lpg_apply(chan);
drivers/leds/rgb/leds-qcom-lpg.c
1261
struct lpg_channel *chan = &lpg->channels[pwm->hwpwm];
drivers/leds/rgb/leds-qcom-lpg.c
1270
ret = regmap_read(lpg->map, chan->base + LPG_SIZE_CLK_REG, &val);
drivers/leds/rgb/leds-qcom-lpg.c
1274
if (chan->subtype == LPG_SUBTYPE_HI_RES_PWM) {
drivers/leds/rgb/leds-qcom-lpg.c
1288
ret = regmap_read(lpg->map, chan->base + LPG_PREDIV_CLK_REG, &val);
drivers/leds/rgb/leds-qcom-lpg.c
1295
ret = regmap_bulk_read(lpg->map, chan->base + PWM_VALUE_REG, &pwm_value, sizeof(pwm_value));
drivers/leds/rgb/leds-qcom-lpg.c
1307
ret = regmap_read(lpg->map, chan->base + PWM_ENABLE_CONTROL_REG, &val);
drivers/leds/rgb/leds-qcom-lpg.c
1348
struct lpg_channel *chan;
drivers/leds/rgb/leds-qcom-lpg.c
1357
chan = &lpg->channels[reg - 1];
drivers/leds/rgb/leds-qcom-lpg.c
1358
chan->in_use = true;
drivers/leds/rgb/leds-qcom-lpg.c
1365
chan->color = color;
drivers/leds/rgb/leds-qcom-lpg.c
1367
*channel = chan;
drivers/leds/rgb/leds-qcom-lpg.c
1474
struct lpg_channel *chan;
drivers/leds/rgb/leds-qcom-lpg.c
1478
chan = &lpg->channels[i];
drivers/leds/rgb/leds-qcom-lpg.c
1480
chan->lpg = lpg;
drivers/leds/rgb/leds-qcom-lpg.c
1481
chan->base = data->channels[i].base;
drivers/leds/rgb/leds-qcom-lpg.c
1482
chan->triled_mask = data->channels[i].triled_mask;
drivers/leds/rgb/leds-qcom-lpg.c
1483
chan->lut_mask = BIT(i);
drivers/leds/rgb/leds-qcom-lpg.c
1484
chan->sdam_offset = data->channels[i].sdam_offset;
drivers/leds/rgb/leds-qcom-lpg.c
1486
regmap_read(lpg->map, chan->base + LPG_SUBTYPE_REG, &chan->subtype);
drivers/leds/rgb/leds-qcom-lpg.c
1576
struct lpg_channel *chan = &lpg->channels[i];
drivers/leds/rgb/leds-qcom-lpg.c
1578
if (chan->sdam_offset) {
drivers/leds/rgb/leds-qcom-lpg.c
1580
SDAM_PBS_SCRATCH_LUT_COUNTER_OFFSET + chan->sdam_offset, 1, &val);
drivers/leds/rgb/leds-qcom-lpg.c
1584
rc = lpg_sdam_configure_triggers(chan, 0);
drivers/leds/rgb/leds-qcom-lpg.c
1588
rc = lpg_clear_pbs_trigger(chan->lpg, chan->lut_mask);
drivers/leds/rgb/leds-qcom-lpg.c
305
static int lpg_sdam_configure_triggers(struct lpg_channel *chan, u8 set_trig)
drivers/leds/rgb/leds-qcom-lpg.c
307
u32 addr = SDAM_LUT_EN_OFFSET + chan->sdam_offset;
drivers/leds/rgb/leds-qcom-lpg.c
309
if (!chan->lpg->lpg_chan_sdam)
drivers/leds/rgb/leds-qcom-lpg.c
312
return nvmem_device_write(chan->lpg->lpg_chan_sdam, addr, 1, &set_trig);
drivers/leds/rgb/leds-qcom-lpg.c
420
static int lpg_calc_freq(struct lpg_channel *chan, uint64_t period)
drivers/leds/rgb/leds-qcom-lpg.c
452
if (chan->subtype == LPG_SUBTYPE_HI_RES_PWM) {
drivers/leds/rgb/leds-qcom-lpg.c
519
chan->clk_sel = best_clk;
drivers/leds/rgb/leds-qcom-lpg.c
520
chan->pre_div_sel = best_div;
drivers/leds/rgb/leds-qcom-lpg.c
521
chan->pre_div_exp = best_m;
drivers/leds/rgb/leds-qcom-lpg.c
522
chan->period = best_period;
drivers/leds/rgb/leds-qcom-lpg.c
523
chan->pwm_resolution_sel = best_pwm_resolution_sel;
drivers/leds/rgb/leds-qcom-lpg.c
527
static void lpg_calc_duty(struct lpg_channel *chan, uint64_t duty)
drivers/leds/rgb/leds-qcom-lpg.c
533
if (chan->subtype == LPG_SUBTYPE_HI_RES_PWM) {
drivers/leds/rgb/leds-qcom-lpg.c
534
max = BIT(lpg_pwm_resolution_hi_res[chan->pwm_resolution_sel]) - 1;
drivers/leds/rgb/leds-qcom-lpg.c
535
clk_rate = lpg_clk_rates_hi_res[chan->clk_sel];
drivers/leds/rgb/leds-qcom-lpg.c
537
max = BIT(lpg_pwm_resolution[chan->pwm_resolution_sel]) - 1;
drivers/leds/rgb/leds-qcom-lpg.c
538
clk_rate = lpg_clk_rates[chan->clk_sel];
drivers/leds/rgb/leds-qcom-lpg.c
542
(u64)NSEC_PER_SEC * lpg_pre_divs[chan->pre_div_sel] * (1 << chan->pre_div_exp));
drivers/leds/rgb/leds-qcom-lpg.c
544
chan->pwm_value = min(val, max);
drivers/leds/rgb/leds-qcom-lpg.c
547
static void lpg_apply_freq(struct lpg_channel *chan)
drivers/leds/rgb/leds-qcom-lpg.c
550
struct lpg *lpg = chan->lpg;
drivers/leds/rgb/leds-qcom-lpg.c
552
if (!chan->enabled)
drivers/leds/rgb/leds-qcom-lpg.c
555
val = chan->clk_sel;
drivers/leds/rgb/leds-qcom-lpg.c
558
switch (chan->subtype) {
drivers/leds/rgb/leds-qcom-lpg.c
563
val |= FIELD_PREP(PWM_SIZE_SELECT_MASK, chan->pwm_resolution_sel);
drivers/leds/rgb/leds-qcom-lpg.c
566
val |= FIELD_PREP(PWM_SIZE_HI_RES_MASK, chan->pwm_resolution_sel);
drivers/leds/rgb/leds-qcom-lpg.c
574
regmap_write(lpg->map, chan->base + LPG_SIZE_CLK_REG, val);
drivers/leds/rgb/leds-qcom-lpg.c
576
val = FIELD_PREP(PWM_FREQ_PRE_DIV_MASK, chan->pre_div_sel) |
drivers/leds/rgb/leds-qcom-lpg.c
577
FIELD_PREP(PWM_FREQ_EXP_MASK, chan->pre_div_exp);
drivers/leds/rgb/leds-qcom-lpg.c
578
regmap_write(lpg->map, chan->base + LPG_PREDIV_CLK_REG, val);
drivers/leds/rgb/leds-qcom-lpg.c
583
static void lpg_enable_glitch(struct lpg_channel *chan)
drivers/leds/rgb/leds-qcom-lpg.c
585
struct lpg *lpg = chan->lpg;
drivers/leds/rgb/leds-qcom-lpg.c
587
regmap_update_bits(lpg->map, chan->base + PWM_TYPE_CONFIG_REG,
drivers/leds/rgb/leds-qcom-lpg.c
591
static void lpg_disable_glitch(struct lpg_channel *chan)
drivers/leds/rgb/leds-qcom-lpg.c
593
struct lpg *lpg = chan->lpg;
drivers/leds/rgb/leds-qcom-lpg.c
595
regmap_update_bits(lpg->map, chan->base + PWM_TYPE_CONFIG_REG,
drivers/leds/rgb/leds-qcom-lpg.c
600
static void lpg_apply_pwm_value(struct lpg_channel *chan)
drivers/leds/rgb/leds-qcom-lpg.c
602
struct lpg *lpg = chan->lpg;
drivers/leds/rgb/leds-qcom-lpg.c
603
u16 val = chan->pwm_value;
drivers/leds/rgb/leds-qcom-lpg.c
605
if (!chan->enabled)
drivers/leds/rgb/leds-qcom-lpg.c
608
regmap_bulk_write(lpg->map, chan->base + PWM_VALUE_REG, &val, sizeof(val));
drivers/leds/rgb/leds-qcom-lpg.c
617
static void lpg_sdam_apply_lut_control(struct lpg_channel *chan)
drivers/leds/rgb/leds-qcom-lpg.c
619
struct nvmem_device *lpg_chan_sdam = chan->lpg->lpg_chan_sdam;
drivers/leds/rgb/leds-qcom-lpg.c
620
unsigned int lo_idx = chan->pattern_lo_idx;
drivers/leds/rgb/leds-qcom-lpg.c
621
unsigned int hi_idx = chan->pattern_hi_idx;
drivers/leds/rgb/leds-qcom-lpg.c
624
struct lpg *lpg = chan->lpg;
drivers/leds/rgb/leds-qcom-lpg.c
626
if (!chan->ramp_enabled || chan->pattern_lo_idx == chan->pattern_hi_idx)
drivers/leds/rgb/leds-qcom-lpg.c
629
hi_pause = DIV_ROUND_UP(chan->ramp_hi_pause_ms, chan->ramp_tick_ms);
drivers/leds/rgb/leds-qcom-lpg.c
630
lo_pause = DIV_ROUND_UP(chan->ramp_lo_pause_ms, chan->ramp_tick_ms);
drivers/leds/rgb/leds-qcom-lpg.c
632
if (!chan->ramp_oneshot)
drivers/leds/rgb/leds-qcom-lpg.c
634
if (chan->ramp_hi_pause_ms && lpg->lut_sdam)
drivers/leds/rgb/leds-qcom-lpg.c
636
if (chan->ramp_lo_pause_ms && lpg->lut_sdam)
drivers/leds/rgb/leds-qcom-lpg.c
645
nvmem_device_write(lpg_chan_sdam, SDAM_PBS_SCRATCH_LUT_COUNTER_OFFSET + chan->sdam_offset, 1, &val);
drivers/leds/rgb/leds-qcom-lpg.c
646
nvmem_device_write(lpg_chan_sdam, SDAM_PATTERN_CONFIG_OFFSET + chan->sdam_offset, 1, &conf);
drivers/leds/rgb/leds-qcom-lpg.c
647
nvmem_device_write(lpg_chan_sdam, SDAM_END_INDEX_OFFSET + chan->sdam_offset, 1, &hi_idx);
drivers/leds/rgb/leds-qcom-lpg.c
648
nvmem_device_write(lpg_chan_sdam, SDAM_START_INDEX_OFFSET + chan->sdam_offset, 1, &lo_idx);
drivers/leds/rgb/leds-qcom-lpg.c
650
val = RAMP_STEP_DURATION(chan->ramp_tick_ms);
drivers/leds/rgb/leds-qcom-lpg.c
654
nvmem_device_write(lpg_chan_sdam, SDAM_PAUSE_HI_MULTIPLIER_OFFSET + chan->sdam_offset, 1, &hi_pause);
drivers/leds/rgb/leds-qcom-lpg.c
655
nvmem_device_write(lpg_chan_sdam, SDAM_PAUSE_LO_MULTIPLIER_OFFSET + chan->sdam_offset, 1, &lo_pause);
drivers/leds/rgb/leds-qcom-lpg.c
660
static void lpg_apply_lut_control(struct lpg_channel *chan)
drivers/leds/rgb/leds-qcom-lpg.c
662
struct lpg *lpg = chan->lpg;
drivers/leds/rgb/leds-qcom-lpg.c
666
unsigned int lo_idx = chan->pattern_lo_idx;
drivers/leds/rgb/leds-qcom-lpg.c
667
unsigned int hi_idx = chan->pattern_hi_idx;
drivers/leds/rgb/leds-qcom-lpg.c
668
u16 step = chan->ramp_tick_ms;
drivers/leds/rgb/leds-qcom-lpg.c
670
if (!chan->ramp_enabled || chan->pattern_lo_idx == chan->pattern_hi_idx)
drivers/leds/rgb/leds-qcom-lpg.c
673
hi_pause = DIV_ROUND_UP(chan->ramp_hi_pause_ms, step);
drivers/leds/rgb/leds-qcom-lpg.c
674
lo_pause = DIV_ROUND_UP(chan->ramp_lo_pause_ms, step);
drivers/leds/rgb/leds-qcom-lpg.c
676
if (!chan->ramp_reverse)
drivers/leds/rgb/leds-qcom-lpg.c
678
if (!chan->ramp_oneshot)
drivers/leds/rgb/leds-qcom-lpg.c
680
if (chan->ramp_ping_pong)
drivers/leds/rgb/leds-qcom-lpg.c
682
if (chan->ramp_hi_pause_ms)
drivers/leds/rgb/leds-qcom-lpg.c
684
if (chan->ramp_lo_pause_ms)
drivers/leds/rgb/leds-qcom-lpg.c
687
regmap_write(lpg->map, chan->base + LPG_PATTERN_CONFIG_REG, conf);
drivers/leds/rgb/leds-qcom-lpg.c
688
regmap_write(lpg->map, chan->base + LPG_HI_IDX_REG, hi_idx);
drivers/leds/rgb/leds-qcom-lpg.c
689
regmap_write(lpg->map, chan->base + LPG_LO_IDX_REG, lo_idx);
drivers/leds/rgb/leds-qcom-lpg.c
691
regmap_bulk_write(lpg->map, chan->base + LPG_RAMP_DURATION_REG, &step, sizeof(step));
drivers/leds/rgb/leds-qcom-lpg.c
692
regmap_write(lpg->map, chan->base + LPG_HI_PAUSE_REG, hi_pause);
drivers/leds/rgb/leds-qcom-lpg.c
693
regmap_write(lpg->map, chan->base + LPG_LO_PAUSE_REG, lo_pause);
drivers/leds/rgb/leds-qcom-lpg.c
701
static void lpg_apply_control(struct lpg_channel *chan)
drivers/leds/rgb/leds-qcom-lpg.c
704
struct lpg *lpg = chan->lpg;
drivers/leds/rgb/leds-qcom-lpg.c
708
if (chan->enabled)
drivers/leds/rgb/leds-qcom-lpg.c
711
if (chan->pattern_lo_idx != chan->pattern_hi_idx)
drivers/leds/rgb/leds-qcom-lpg.c
716
regmap_write(lpg->map, chan->base + PWM_ENABLE_CONTROL_REG, ctrl);
drivers/leds/rgb/leds-qcom-lpg.c
722
if (chan->enabled)
drivers/leds/rgb/leds-qcom-lpg.c
723
lpg_apply_pwm_value(chan);
drivers/leds/rgb/leds-qcom-lpg.c
728
static void lpg_apply_sync(struct lpg_channel *chan)
drivers/leds/rgb/leds-qcom-lpg.c
730
struct lpg *lpg = chan->lpg;
drivers/leds/rgb/leds-qcom-lpg.c
732
regmap_write(lpg->map, chan->base + PWM_SYNC_REG, LPG_SYNC_PWM);
drivers/leds/rgb/leds-qcom-lpg.c
737
struct lpg_channel *chan;
drivers/leds/rgb/leds-qcom-lpg.c
756
chan = &lpg->channels[i];
drivers/leds/rgb/leds-qcom-lpg.c
759
&chan->dtest_line);
drivers/leds/rgb/leds-qcom-lpg.c
764
&chan->dtest_value);
drivers/leds/rgb/leds-qcom-lpg.c
775
static void lpg_apply_dtest(struct lpg_channel *chan)
drivers/leds/rgb/leds-qcom-lpg.c
777
struct lpg *lpg = chan->lpg;
drivers/leds/rgb/leds-qcom-lpg.c
779
if (!chan->dtest_line)
drivers/leds/rgb/leds-qcom-lpg.c
782
regmap_write(lpg->map, chan->base + PWM_SEC_ACCESS_REG, 0xa5);
drivers/leds/rgb/leds-qcom-lpg.c
783
regmap_write(lpg->map, chan->base + PWM_DTEST_REG(chan->dtest_line),
drivers/leds/rgb/leds-qcom-lpg.c
784
chan->dtest_value);
drivers/leds/rgb/leds-qcom-lpg.c
787
static void lpg_apply(struct lpg_channel *chan)
drivers/leds/rgb/leds-qcom-lpg.c
789
lpg_disable_glitch(chan);
drivers/leds/rgb/leds-qcom-lpg.c
790
lpg_apply_freq(chan);
drivers/leds/rgb/leds-qcom-lpg.c
791
lpg_apply_pwm_value(chan);
drivers/leds/rgb/leds-qcom-lpg.c
792
lpg_apply_control(chan);
drivers/leds/rgb/leds-qcom-lpg.c
793
lpg_apply_sync(chan);
drivers/leds/rgb/leds-qcom-lpg.c
794
if (chan->lpg->lpg_chan_sdam)
drivers/leds/rgb/leds-qcom-lpg.c
795
lpg_sdam_apply_lut_control(chan);
drivers/leds/rgb/leds-qcom-lpg.c
797
lpg_apply_lut_control(chan);
drivers/leds/rgb/leds-qcom-lpg.c
798
lpg_enable_glitch(chan);
drivers/leds/rgb/leds-qcom-lpg.c
805
struct lpg_channel *chan;
drivers/leds/rgb/leds-qcom-lpg.c
814
chan = led->channels[i];
drivers/leds/rgb/leds-qcom-lpg.c
818
chan->enabled = false;
drivers/leds/rgb/leds-qcom-lpg.c
819
chan->ramp_enabled = false;
drivers/leds/rgb/leds-qcom-lpg.c
820
} else if (chan->pattern_lo_idx != chan->pattern_hi_idx) {
drivers/leds/rgb/leds-qcom-lpg.c
821
lpg_calc_freq(chan, NSEC_PER_MSEC);
drivers/leds/rgb/leds-qcom-lpg.c
822
lpg_sdam_configure_triggers(chan, 1);
drivers/leds/rgb/leds-qcom-lpg.c
824
chan->enabled = true;
drivers/leds/rgb/leds-qcom-lpg.c
825
chan->ramp_enabled = true;
drivers/leds/rgb/leds-qcom-lpg.c
827
lut_mask |= chan->lut_mask;
drivers/leds/rgb/leds-qcom-lpg.c
828
triled_enabled |= chan->triled_mask;
drivers/leds/rgb/leds-qcom-lpg.c
830
lpg_calc_freq(chan, NSEC_PER_MSEC);
drivers/leds/rgb/leds-qcom-lpg.c
832
duty = div_u64(brightness * chan->period, cdev->max_brightness);
drivers/leds/rgb/leds-qcom-lpg.c
833
lpg_calc_duty(chan, duty);
drivers/leds/rgb/leds-qcom-lpg.c
834
chan->enabled = true;
drivers/leds/rgb/leds-qcom-lpg.c
835
chan->ramp_enabled = false;
drivers/leds/rgb/leds-qcom-lpg.c
837
triled_enabled |= chan->triled_mask;
drivers/leds/rgb/leds-qcom-lpg.c
840
triled_mask |= chan->triled_mask;
drivers/leds/rgb/leds-qcom-lpg.c
842
lpg_apply(chan);
drivers/leds/rgb/leds-qcom-lpg.c
891
struct lpg_channel *chan;
drivers/leds/rgb/leds-qcom-lpg.c
907
chan = led->channels[i];
drivers/leds/rgb/leds-qcom-lpg.c
909
lpg_calc_freq(chan, period);
drivers/leds/rgb/leds-qcom-lpg.c
910
lpg_calc_duty(chan, duty);
drivers/leds/rgb/leds-qcom-lpg.c
912
chan->enabled = true;
drivers/leds/rgb/leds-qcom-lpg.c
913
chan->ramp_enabled = false;
drivers/leds/rgb/leds-qcom-lpg.c
915
triled_mask |= chan->triled_mask;
drivers/leds/rgb/leds-qcom-lpg.c
917
lpg_apply(chan);
drivers/leds/rgb/leds-qcom-lpg.c
923
chan = led->channels[0];
drivers/leds/rgb/leds-qcom-lpg.c
924
duty = div_u64(chan->pwm_value * chan->period, LPG_RESOLUTION_9BIT);
drivers/leds/rgb/leds-qcom-lpg.c
926
*delay_off = div_u64(chan->period - duty, NSEC_PER_MSEC);
drivers/leds/rgb/leds-qcom-lpg.c
965
struct lpg_channel *chan;
drivers/macintosh/windfarm_ad7417_sensor.c
102
int chan = sr - pv->sensors;
drivers/macintosh/windfarm_ad7417_sensor.c
112
buf[1] = (pv->config & 0x1f) | (chan << 5);
drivers/macintosh/windfarm_ad7417_sensor.c
133
wf_ad7417_adc_convert(pv, chan, raw, value);
drivers/macintosh/windfarm_ad7417_sensor.c
137
chan, sr->name, raw, *value);
drivers/macintosh/windfarm_ad7417_sensor.c
80
int chan, s32 raw, s32 *value)
drivers/macintosh/windfarm_ad7417_sensor.c
82
switch(chan) {
drivers/mailbox/arm_mhu.c
100
free_irq(mlink->irq, chan);
drivers/mailbox/arm_mhu.c
130
mhu->chan[i].con_priv = &mhu->mlink[i];
drivers/mailbox/arm_mhu.c
137
mhu->mbox.chans = &mhu->chan[0];
drivers/mailbox/arm_mhu.c
37
struct mbox_chan chan[MHU_CHANS];
drivers/mailbox/arm_mhu.c
43
struct mbox_chan *chan = p;
drivers/mailbox/arm_mhu.c
44
struct mhu_link *mlink = chan->con_priv;
drivers/mailbox/arm_mhu.c
51
mbox_chan_received_data(chan, (void *)&val);
drivers/mailbox/arm_mhu.c
58
static bool mhu_last_tx_done(struct mbox_chan *chan)
drivers/mailbox/arm_mhu.c
60
struct mhu_link *mlink = chan->con_priv;
drivers/mailbox/arm_mhu.c
66
static int mhu_send_data(struct mbox_chan *chan, void *data)
drivers/mailbox/arm_mhu.c
68
struct mhu_link *mlink = chan->con_priv;
drivers/mailbox/arm_mhu.c
76
static int mhu_startup(struct mbox_chan *chan)
drivers/mailbox/arm_mhu.c
78
struct mhu_link *mlink = chan->con_priv;
drivers/mailbox/arm_mhu.c
86
IRQF_SHARED, "mhu_link", chan);
drivers/mailbox/arm_mhu.c
88
dev_err(chan->mbox->dev,
drivers/mailbox/arm_mhu.c
96
static void mhu_shutdown(struct mbox_chan *chan)
drivers/mailbox/arm_mhu.c
98
struct mhu_link *mlink = chan->con_priv;
drivers/mailbox/arm_mhu_db.c
112
chan = mhu_db_mbox_to_channel(mbox, pchan, doorbell);
drivers/mailbox/arm_mhu_db.c
113
if (chan)
drivers/mailbox/arm_mhu_db.c
120
return chan;
drivers/mailbox/arm_mhu_db.c
125
struct mbox_chan *chan;
drivers/mailbox/arm_mhu_db.c
129
while (NULL != (chan = mhu_db_mbox_irq_to_channel(mhu, pchan))) {
drivers/mailbox/arm_mhu_db.c
130
mbox_chan_received_data(chan, NULL);
drivers/mailbox/arm_mhu_db.c
131
mhu_db_mbox_clear_irq(chan);
drivers/mailbox/arm_mhu_db.c
137
static bool mhu_db_last_tx_done(struct mbox_chan *chan)
drivers/mailbox/arm_mhu_db.c
139
struct mhu_db_channel *chan_info = chan->con_priv;
drivers/mailbox/arm_mhu_db.c
148
static int mhu_db_send_data(struct mbox_chan *chan, void *data)
drivers/mailbox/arm_mhu_db.c
150
struct mhu_db_channel *chan_info = chan->con_priv;
drivers/mailbox/arm_mhu_db.c
159
static int mhu_db_startup(struct mbox_chan *chan)
drivers/mailbox/arm_mhu_db.c
161
mhu_db_mbox_clear_irq(chan);
drivers/mailbox/arm_mhu_db.c
165
static void mhu_db_shutdown(struct mbox_chan *chan)
drivers/mailbox/arm_mhu_db.c
167
struct mhu_db_channel *chan_info = chan->con_priv;
drivers/mailbox/arm_mhu_db.c
172
if (chan == &mbox->chans[i])
drivers/mailbox/arm_mhu_db.c
181
mhu_db_mbox_clear_irq(chan);
drivers/mailbox/arm_mhu_db.c
182
devm_kfree(mbox->dev, chan->con_priv);
drivers/mailbox/arm_mhu_db.c
183
chan->con_priv = NULL;
drivers/mailbox/arm_mhu_db.c
191
struct mbox_chan *chan;
drivers/mailbox/arm_mhu_db.c
205
chan = mhu_db_mbox_to_channel(mbox, pchan, doorbell);
drivers/mailbox/arm_mhu_db.c
206
if (chan) {
drivers/mailbox/arm_mhu_db.c
222
chan = &mbox->chans[i];
drivers/mailbox/arm_mhu_db.c
232
chan->con_priv = chan_info;
drivers/mailbox/arm_mhu_db.c
237
return chan;
drivers/mailbox/arm_mhu_db.c
75
static void mhu_db_mbox_clear_irq(struct mbox_chan *chan)
drivers/mailbox/arm_mhu_db.c
77
struct mhu_db_channel *chan_info = chan->con_priv;
drivers/mailbox/arm_mhu_db.c
98
struct mbox_chan *chan = NULL;
drivers/mailbox/arm_mhuv2.c
207
int (*rx_startup)(struct mhuv2 *mhu, struct mbox_chan *chan);
drivers/mailbox/arm_mhuv2.c
208
void (*rx_shutdown)(struct mhuv2 *mhu, struct mbox_chan *chan);
drivers/mailbox/arm_mhuv2.c
209
void *(*read_data)(struct mhuv2 *mhu, struct mbox_chan *chan);
drivers/mailbox/arm_mhuv2.c
211
void (*tx_startup)(struct mhuv2 *mhu, struct mbox_chan *chan);
drivers/mailbox/arm_mhuv2.c
212
void (*tx_shutdown)(struct mhuv2 *mhu, struct mbox_chan *chan);
drivers/mailbox/arm_mhuv2.c
213
int (*last_tx_done)(struct mhuv2 *mhu, struct mbox_chan *chan);
drivers/mailbox/arm_mhuv2.c
214
int (*send_data)(struct mhuv2 *mhu, struct mbox_chan *chan, void *arg);
drivers/mailbox/arm_mhuv2.c
261
static int mhuv2_doorbell_rx_startup(struct mhuv2 *mhu, struct mbox_chan *chan)
drivers/mailbox/arm_mhuv2.c
263
struct mhuv2_mbox_chan_priv *priv = chan->con_priv;
drivers/mailbox/arm_mhuv2.c
271
struct mbox_chan *chan)
drivers/mailbox/arm_mhuv2.c
273
struct mhuv2_mbox_chan_priv *priv = chan->con_priv;
drivers/mailbox/arm_mhuv2.c
279
static void *mhuv2_doorbell_read_data(struct mhuv2 *mhu, struct mbox_chan *chan)
drivers/mailbox/arm_mhuv2.c
281
struct mhuv2_mbox_chan_priv *priv = chan->con_priv;
drivers/mailbox/arm_mhuv2.c
289
struct mbox_chan *chan)
drivers/mailbox/arm_mhuv2.c
291
struct mhuv2_mbox_chan_priv *priv = chan->con_priv;
drivers/mailbox/arm_mhuv2.c
297
static int mhuv2_doorbell_send_data(struct mhuv2 *mhu, struct mbox_chan *chan,
drivers/mailbox/arm_mhuv2.c
300
struct mhuv2_mbox_chan_priv *priv = chan->con_priv;
drivers/mailbox/arm_mhuv2.c
326
struct mbox_chan *chan)
drivers/mailbox/arm_mhuv2.c
328
struct mhuv2_mbox_chan_priv *priv = chan->con_priv;
drivers/mailbox/arm_mhuv2.c
340
struct mbox_chan *chan)
drivers/mailbox/arm_mhuv2.c
342
struct mhuv2_mbox_chan_priv *priv = chan->con_priv;
drivers/mailbox/arm_mhuv2.c
349
struct mbox_chan *chan)
drivers/mailbox/arm_mhuv2.c
351
struct mhuv2_mbox_chan_priv *priv = chan->con_priv;
drivers/mailbox/arm_mhuv2.c
386
struct mbox_chan *chan)
drivers/mailbox/arm_mhuv2.c
388
struct mhuv2_mbox_chan_priv *priv = chan->con_priv;
drivers/mailbox/arm_mhuv2.c
399
struct mbox_chan *chan)
drivers/mailbox/arm_mhuv2.c
401
struct mhuv2_mbox_chan_priv *priv = chan->con_priv;
drivers/mailbox/arm_mhuv2.c
409
struct mbox_chan *chan)
drivers/mailbox/arm_mhuv2.c
411
struct mhuv2_mbox_chan_priv *priv = chan->con_priv;
drivers/mailbox/arm_mhuv2.c
446
struct mbox_chan *chan, void *arg)
drivers/mailbox/arm_mhuv2.c
450
struct mhuv2_mbox_chan_priv *priv = chan->con_priv;
drivers/mailbox/arm_mhuv2.c
460
while(!mhuv2_data_transfer_last_tx_done(mhu, chan))
drivers/mailbox/arm_mhuv2.c
543
struct mbox_chan *chan;
drivers/mailbox/arm_mhuv2.c
548
chan = get_irq_chan_comb(mhu, mhu->send->chcomb_int_st);
drivers/mailbox/arm_mhuv2.c
549
if (IS_ERR(chan)) {
drivers/mailbox/arm_mhuv2.c
553
priv = chan->con_priv;
drivers/mailbox/arm_mhuv2.c
559
if (chan->cl) {
drivers/mailbox/arm_mhuv2.c
560
mbox_chan_txdone(chan, 0);
drivers/mailbox/arm_mhuv2.c
587
priv = chan[i].con_priv;
drivers/mailbox/arm_mhuv2.c
593
if (!chan->cl) {
drivers/mailbox/arm_mhuv2.c
599
mbox_chan_txdone(&chan[i], 0);
drivers/mailbox/arm_mhuv2.c
624
struct mbox_chan *chan;
drivers/mailbox/arm_mhuv2.c
627
chan = get_irq_chan_comb(mhu, mhu->recv->chcomb_int_st);
drivers/mailbox/arm_mhuv2.c
628
if (IS_ERR(chan))
drivers/mailbox/arm_mhuv2.c
629
return chan;
drivers/mailbox/arm_mhuv2.c
631
priv = chan->con_priv;
drivers/mailbox/arm_mhuv2.c
633
return chan;
drivers/mailbox/arm_mhuv2.c
642
return chan + __builtin_ctz(stat);
drivers/mailbox/arm_mhuv2.c
679
struct mbox_chan *chan = get_irq_chan_rx(mhu);
drivers/mailbox/arm_mhuv2.c
685
if (IS_ERR(chan)) {
drivers/mailbox/arm_mhuv2.c
689
priv = chan->con_priv;
drivers/mailbox/arm_mhuv2.c
692
data = priv->ops->read_data(mhu, chan);
drivers/mailbox/arm_mhuv2.c
694
if (!chan->cl) {
drivers/mailbox/arm_mhuv2.c
700
mbox_chan_received_data(chan, data);
drivers/mailbox/arm_mhuv2.c
711
static bool mhuv2_sender_last_tx_done(struct mbox_chan *chan)
drivers/mailbox/arm_mhuv2.c
713
struct mhuv2 *mhu = mhu_from_mbox(chan->mbox);
drivers/mailbox/arm_mhuv2.c
714
struct mhuv2_mbox_chan_priv *priv = chan->con_priv;
drivers/mailbox/arm_mhuv2.c
716
return priv->ops->last_tx_done(mhu, chan);
drivers/mailbox/arm_mhuv2.c
719
static int mhuv2_sender_send_data(struct mbox_chan *chan, void *data)
drivers/mailbox/arm_mhuv2.c
721
struct mhuv2 *mhu = mhu_from_mbox(chan->mbox);
drivers/mailbox/arm_mhuv2.c
722
struct mhuv2_mbox_chan_priv *priv = chan->con_priv;
drivers/mailbox/arm_mhuv2.c
724
if (!priv->ops->last_tx_done(mhu, chan))
drivers/mailbox/arm_mhuv2.c
727
return priv->ops->send_data(mhu, chan, data);
drivers/mailbox/arm_mhuv2.c
730
static int mhuv2_sender_startup(struct mbox_chan *chan)
drivers/mailbox/arm_mhuv2.c
732
struct mhuv2 *mhu = mhu_from_mbox(chan->mbox);
drivers/mailbox/arm_mhuv2.c
733
struct mhuv2_mbox_chan_priv *priv = chan->con_priv;
drivers/mailbox/arm_mhuv2.c
736
priv->ops->tx_startup(mhu, chan);
drivers/mailbox/arm_mhuv2.c
740
static void mhuv2_sender_shutdown(struct mbox_chan *chan)
drivers/mailbox/arm_mhuv2.c
742
struct mhuv2 *mhu = mhu_from_mbox(chan->mbox);
drivers/mailbox/arm_mhuv2.c
743
struct mhuv2_mbox_chan_priv *priv = chan->con_priv;
drivers/mailbox/arm_mhuv2.c
746
priv->ops->tx_shutdown(mhu, chan);
drivers/mailbox/arm_mhuv2.c
756
static int mhuv2_receiver_startup(struct mbox_chan *chan)
drivers/mailbox/arm_mhuv2.c
758
struct mhuv2 *mhu = mhu_from_mbox(chan->mbox);
drivers/mailbox/arm_mhuv2.c
759
struct mhuv2_mbox_chan_priv *priv = chan->con_priv;
drivers/mailbox/arm_mhuv2.c
761
return priv->ops->rx_startup(mhu, chan);
drivers/mailbox/arm_mhuv2.c
764
static void mhuv2_receiver_shutdown(struct mbox_chan *chan)
drivers/mailbox/arm_mhuv2.c
766
struct mhuv2 *mhu = mhu_from_mbox(chan->mbox);
drivers/mailbox/arm_mhuv2.c
767
struct mhuv2_mbox_chan_priv *priv = chan->con_priv;
drivers/mailbox/arm_mhuv2.c
769
priv->ops->rx_shutdown(mhu, chan);
drivers/mailbox/arm_mhuv2.c
772
static int mhuv2_receiver_send_data(struct mbox_chan *chan, void *data)
drivers/mailbox/arm_mhuv2.c
774
dev_err(chan->mbox->dev,
drivers/mailbox/arm_mhuv2.c
779
static bool mhuv2_receiver_last_tx_done(struct mbox_chan *chan)
drivers/mailbox/arm_mhuv2.c
781
dev_err(chan->mbox->dev, "Trying to Tx poll on a receiver MHU frame\n");
drivers/mailbox/arm_mhuv3.c
268
int (*rx_startup)(struct mhuv3 *mhu, struct mbox_chan *chan);
drivers/mailbox/arm_mhuv3.c
269
void (*rx_shutdown)(struct mhuv3 *mhu, struct mbox_chan *chan);
drivers/mailbox/arm_mhuv3.c
270
void *(*read_data)(struct mhuv3 *mhu, struct mbox_chan *chan);
drivers/mailbox/arm_mhuv3.c
271
void (*rx_complete)(struct mhuv3 *mhu, struct mbox_chan *chan);
drivers/mailbox/arm_mhuv3.c
272
void (*tx_startup)(struct mhuv3 *mhu, struct mbox_chan *chan);
drivers/mailbox/arm_mhuv3.c
273
void (*tx_shutdown)(struct mhuv3 *mhu, struct mbox_chan *chan);
drivers/mailbox/arm_mhuv3.c
274
int (*last_tx_done)(struct mhuv3 *mhu, struct mbox_chan *chan);
drivers/mailbox/arm_mhuv3.c
275
int (*send_data)(struct mhuv3 *mhu, struct mbox_chan *chan, void *arg);
drivers/mailbox/arm_mhuv3.c
370
static void mhuv3_doorbell_tx_startup(struct mhuv3 *mhu, struct mbox_chan *chan)
drivers/mailbox/arm_mhuv3.c
372
struct mhuv3_mbox_chan_priv *priv = chan->con_priv;
drivers/mailbox/arm_mhuv3.c
378
static void mhuv3_doorbell_tx_shutdown(struct mhuv3 *mhu, struct mbox_chan *chan)
drivers/mailbox/arm_mhuv3.c
380
struct mhuv3_mbox_chan_priv *priv = chan->con_priv;
drivers/mailbox/arm_mhuv3.c
394
static int mhuv3_doorbell_rx_startup(struct mhuv3 *mhu, struct mbox_chan *chan)
drivers/mailbox/arm_mhuv3.c
396
struct mhuv3_mbox_chan_priv *priv = chan->con_priv;
drivers/mailbox/arm_mhuv3.c
405
struct mbox_chan *chan)
drivers/mailbox/arm_mhuv3.c
407
struct mhuv3_mbox_chan_priv *priv = chan->con_priv;
drivers/mailbox/arm_mhuv3.c
413
static void mhuv3_doorbell_rx_complete(struct mhuv3 *mhu, struct mbox_chan *chan)
drivers/mailbox/arm_mhuv3.c
415
struct mhuv3_mbox_chan_priv *priv = chan->con_priv;
drivers/mailbox/arm_mhuv3.c
422
struct mbox_chan *chan)
drivers/mailbox/arm_mhuv3.c
424
struct mhuv3_mbox_chan_priv *priv = chan->con_priv;
drivers/mailbox/arm_mhuv3.c
442
static int mhuv3_doorbell_send_data(struct mhuv3 *mhu, struct mbox_chan *chan,
drivers/mailbox/arm_mhuv3.c
445
struct mhuv3_mbox_chan_priv *priv = chan->con_priv;
drivers/mailbox/arm_mhuv3.c
472
static bool mhuv3_sender_last_tx_done(struct mbox_chan *chan)
drivers/mailbox/arm_mhuv3.c
474
struct mhuv3_mbox_chan_priv *priv = chan->con_priv;
drivers/mailbox/arm_mhuv3.c
475
struct mhuv3 *mhu = mhu_from_mbox(chan->mbox);
drivers/mailbox/arm_mhuv3.c
477
return priv->ops->last_tx_done(mhu, chan);
drivers/mailbox/arm_mhuv3.c
480
static int mhuv3_sender_send_data(struct mbox_chan *chan, void *data)
drivers/mailbox/arm_mhuv3.c
482
struct mhuv3_mbox_chan_priv *priv = chan->con_priv;
drivers/mailbox/arm_mhuv3.c
483
struct mhuv3 *mhu = mhu_from_mbox(chan->mbox);
drivers/mailbox/arm_mhuv3.c
485
if (!priv->ops->last_tx_done(mhu, chan))
drivers/mailbox/arm_mhuv3.c
488
return priv->ops->send_data(mhu, chan, data);
drivers/mailbox/arm_mhuv3.c
491
static int mhuv3_sender_startup(struct mbox_chan *chan)
drivers/mailbox/arm_mhuv3.c
493
struct mhuv3_mbox_chan_priv *priv = chan->con_priv;
drivers/mailbox/arm_mhuv3.c
494
struct mhuv3 *mhu = mhu_from_mbox(chan->mbox);
drivers/mailbox/arm_mhuv3.c
497
priv->ops->tx_startup(mhu, chan);
drivers/mailbox/arm_mhuv3.c
502
static void mhuv3_sender_shutdown(struct mbox_chan *chan)
drivers/mailbox/arm_mhuv3.c
504
struct mhuv3_mbox_chan_priv *priv = chan->con_priv;
drivers/mailbox/arm_mhuv3.c
505
struct mhuv3 *mhu = mhu_from_mbox(chan->mbox);
drivers/mailbox/arm_mhuv3.c
508
priv->ops->tx_shutdown(mhu, chan);
drivers/mailbox/arm_mhuv3.c
518
static int mhuv3_receiver_startup(struct mbox_chan *chan)
drivers/mailbox/arm_mhuv3.c
520
struct mhuv3_mbox_chan_priv *priv = chan->con_priv;
drivers/mailbox/arm_mhuv3.c
521
struct mhuv3 *mhu = mhu_from_mbox(chan->mbox);
drivers/mailbox/arm_mhuv3.c
523
return priv->ops->rx_startup(mhu, chan);
drivers/mailbox/arm_mhuv3.c
526
static void mhuv3_receiver_shutdown(struct mbox_chan *chan)
drivers/mailbox/arm_mhuv3.c
528
struct mhuv3_mbox_chan_priv *priv = chan->con_priv;
drivers/mailbox/arm_mhuv3.c
529
struct mhuv3 *mhu = mhu_from_mbox(chan->mbox);
drivers/mailbox/arm_mhuv3.c
531
priv->ops->rx_shutdown(mhu, chan);
drivers/mailbox/arm_mhuv3.c
534
static int mhuv3_receiver_send_data(struct mbox_chan *chan, void *data)
drivers/mailbox/arm_mhuv3.c
536
dev_err(chan->mbox->dev,
drivers/mailbox/arm_mhuv3.c
541
static bool mhuv3_receiver_last_tx_done(struct mbox_chan *chan)
drivers/mailbox/arm_mhuv3.c
543
dev_err(chan->mbox->dev, "Trying to Tx poll on a MBX MHUv3 frame\n");
drivers/mailbox/arm_mhuv3.c
878
struct mbox_chan *chan;
drivers/mailbox/arm_mhuv3.c
890
chan = mhu->ext[i]->chan_from_comb_irq_get(mhu);
drivers/mailbox/arm_mhuv3.c
891
if (IS_ERR(chan))
drivers/mailbox/arm_mhuv3.c
895
priv = chan->con_priv;
drivers/mailbox/arm_mhuv3.c
896
if (!chan->cl) {
drivers/mailbox/arm_mhuv3.c
902
mbox_chan_txdone(chan, 0);
drivers/mailbox/arm_mhuv3.c
916
struct mbox_chan *chan;
drivers/mailbox/arm_mhuv3.c
929
chan = mhu->ext[i]->chan_from_comb_irq_get(mhu);
drivers/mailbox/arm_mhuv3.c
930
if (IS_ERR(chan))
drivers/mailbox/arm_mhuv3.c
935
priv = chan->con_priv;
drivers/mailbox/arm_mhuv3.c
936
if (!chan->cl) {
drivers/mailbox/arm_mhuv3.c
944
data = priv->ops->read_data(mhu, chan);
drivers/mailbox/arm_mhuv3.c
953
mbox_chan_received_data(chan, data);
drivers/mailbox/arm_mhuv3.c
963
priv->ops->rx_complete(mhu, chan);
drivers/mailbox/armada-37xx-rwtm-mailbox.c
103
static int a37xx_mbox_startup(struct mbox_chan *chan)
drivers/mailbox/armada-37xx-rwtm-mailbox.c
105
struct a37xx_mbox *mbox = chan->con_priv;
drivers/mailbox/armada-37xx-rwtm-mailbox.c
110
DRIVER_NAME, chan);
drivers/mailbox/armada-37xx-rwtm-mailbox.c
124
static void a37xx_mbox_shutdown(struct mbox_chan *chan)
drivers/mailbox/armada-37xx-rwtm-mailbox.c
127
struct a37xx_mbox *mbox = chan->con_priv;
drivers/mailbox/armada-37xx-rwtm-mailbox.c
134
devm_free_irq(mbox->dev, mbox->irq, chan);
drivers/mailbox/armada-37xx-rwtm-mailbox.c
43
static void a37xx_mbox_receive(struct mbox_chan *chan)
drivers/mailbox/armada-37xx-rwtm-mailbox.c
45
struct a37xx_mbox *mbox = chan->con_priv;
drivers/mailbox/armada-37xx-rwtm-mailbox.c
53
mbox_chan_received_data(chan, &rx_msg);
drivers/mailbox/armada-37xx-rwtm-mailbox.c
58
struct mbox_chan *chan = data;
drivers/mailbox/armada-37xx-rwtm-mailbox.c
59
struct a37xx_mbox *mbox = chan->con_priv;
drivers/mailbox/armada-37xx-rwtm-mailbox.c
65
a37xx_mbox_receive(chan);
drivers/mailbox/armada-37xx-rwtm-mailbox.c
72
mbox_chan_txdone(chan, 0);
drivers/mailbox/armada-37xx-rwtm-mailbox.c
77
static int a37xx_mbox_send_data(struct mbox_chan *chan, void *data)
drivers/mailbox/armada-37xx-rwtm-mailbox.c
79
struct a37xx_mbox *mbox = chan->con_priv;
drivers/mailbox/ast2700-mailbox.c
113
static int ast2700_mbox_startup(struct mbox_chan *chan)
drivers/mailbox/ast2700-mailbox.c
115
struct ast2700_mbox *mb = dev_get_drvdata(chan->mbox->dev);
drivers/mailbox/ast2700-mailbox.c
116
int idx = ch_num(chan);
drivers/mailbox/ast2700-mailbox.c
127
static void ast2700_mbox_shutdown(struct mbox_chan *chan)
drivers/mailbox/ast2700-mailbox.c
129
struct ast2700_mbox *mb = dev_get_drvdata(chan->mbox->dev);
drivers/mailbox/ast2700-mailbox.c
130
int idx = ch_num(chan);
drivers/mailbox/ast2700-mailbox.c
139
static bool ast2700_mbox_last_tx_done(struct mbox_chan *chan)
drivers/mailbox/ast2700-mailbox.c
141
struct ast2700_mbox *mb = dev_get_drvdata(chan->mbox->dev);
drivers/mailbox/ast2700-mailbox.c
142
int idx = ch_num(chan);
drivers/mailbox/ast2700-mailbox.c
37
static inline int ch_num(struct mbox_chan *chan)
drivers/mailbox/ast2700-mailbox.c
39
return chan - chan->mbox->chans;
drivers/mailbox/ast2700-mailbox.c
64
struct mbox_chan *chan = &mb->mbox.chans[n];
drivers/mailbox/ast2700-mailbox.c
70
word_data = chan->con_priv;
drivers/mailbox/ast2700-mailbox.c
75
mbox_chan_received_data(chan, chan->con_priv);
drivers/mailbox/ast2700-mailbox.c
84
static int ast2700_mbox_send_data(struct mbox_chan *chan, void *data)
drivers/mailbox/ast2700-mailbox.c
86
struct ast2700_mbox *mb = dev_get_drvdata(chan->mbox->dev);
drivers/mailbox/ast2700-mailbox.c
87
int idx = ch_num(chan);
drivers/mailbox/bcm-flexrm-mailbox.c
1080
struct mbox_chan *chan = &ring->mbox->controller.chans[ring->num];
drivers/mailbox/bcm-flexrm-mailbox.c
1141
mbox_chan_received_data(chan, msg);
drivers/mailbox/bcm-flexrm-mailbox.c
1184
static int flexrm_send_data(struct mbox_chan *chan, void *data)
drivers/mailbox/bcm-flexrm-mailbox.c
1187
struct flexrm_ring *ring = chan->con_priv;
drivers/mailbox/bcm-flexrm-mailbox.c
1207
static bool flexrm_peek_data(struct mbox_chan *chan)
drivers/mailbox/bcm-flexrm-mailbox.c
1209
int cnt = flexrm_process_completions(chan->con_priv);
drivers/mailbox/bcm-flexrm-mailbox.c
1214
static int flexrm_startup(struct mbox_chan *chan)
drivers/mailbox/bcm-flexrm-mailbox.c
1220
struct flexrm_ring *ring = chan->con_priv;
drivers/mailbox/bcm-flexrm-mailbox.c
1348
static void flexrm_shutdown(struct mbox_chan *chan)
drivers/mailbox/bcm-flexrm-mailbox.c
1353
struct flexrm_ring *ring = chan->con_priv;
drivers/mailbox/bcm-flexrm-mailbox.c
1399
mbox_chan_received_data(chan, msg);
drivers/mailbox/bcm-flexrm-mailbox.c
1437
struct mbox_chan *chan;
drivers/mailbox/bcm-flexrm-mailbox.c
1452
chan = &cntlr->chans[pa->args[0]];
drivers/mailbox/bcm-flexrm-mailbox.c
1453
ring = chan->con_priv;
drivers/mailbox/bcm-flexrm-mailbox.c
1457
return chan;
drivers/mailbox/bcm-pdc-mailbox.c
1153
static bool pdc_last_tx_done(struct mbox_chan *chan)
drivers/mailbox/bcm-pdc-mailbox.c
1155
struct pdc_state *pdcs = chan->con_priv;
drivers/mailbox/bcm-pdc-mailbox.c
1190
static int pdc_send_data(struct mbox_chan *chan, void *data)
drivers/mailbox/bcm-pdc-mailbox.c
1192
struct pdc_state *pdcs = chan->con_priv;
drivers/mailbox/bcm-pdc-mailbox.c
1252
static int pdc_startup(struct mbox_chan *chan)
drivers/mailbox/bcm-pdc-mailbox.c
1254
return pdc_ring_init(chan->con_priv, PDC_RINGSET);
drivers/mailbox/bcm-pdc-mailbox.c
1257
static void pdc_shutdown(struct mbox_chan *chan)
drivers/mailbox/bcm-pdc-mailbox.c
1259
struct pdc_state *pdcs = chan->con_priv;
drivers/mailbox/bcm-pdc-mailbox.c
579
struct mbox_chan *chan;
drivers/mailbox/bcm-pdc-mailbox.c
590
chan = &mbc->chans[0];
drivers/mailbox/bcm-pdc-mailbox.c
658
mbox_chan_received_data(chan, &mssg);
drivers/mailbox/bcm74110-mailbox.c
159
struct mbox_chan *chan;
drivers/mailbox/bcm74110-mailbox.c
180
chan = &mbox->controller.chans[type];
drivers/mailbox/bcm74110-mailbox.c
181
chan_priv = chan->con_priv;
drivers/mailbox/bcm74110-mailbox.c
183
mbox_chan_received_data(chan, NULL);
drivers/mailbox/bcm74110-mailbox.c
469
static int bcm74110_mbox_send_data(struct mbox_chan *chan, void *data)
drivers/mailbox/bcm74110-mailbox.c
471
struct bcm74110_mbox_chan *chan_priv = chan->con_priv;
drivers/mailbox/bcm74110-mailbox.c
488
static int bcm74110_mbox_chan_startup(struct mbox_chan *chan)
drivers/mailbox/bcm74110-mailbox.c
490
struct bcm74110_mbox_chan *chan_priv = chan->con_priv;
drivers/mailbox/bcm74110-mailbox.c
497
static void bcm74110_mbox_chan_shutdown(struct mbox_chan *chan)
drivers/mailbox/bcm74110-mailbox.c
499
struct bcm74110_mbox_chan *chan_priv = chan->con_priv;
drivers/mailbox/cix-mailbox.c
131
static bool mbox_fifo_empty(struct mbox_chan *chan)
drivers/mailbox/cix-mailbox.c
133
struct cix_mbox_priv *priv = to_cix_mbox_priv(chan->mbox);
drivers/mailbox/cix-mailbox.c
150
static int cix_mbox_send_data_db(struct mbox_chan *chan, void *data)
drivers/mailbox/cix-mailbox.c
152
struct cix_mbox_priv *priv = to_cix_mbox_priv(chan->mbox);
drivers/mailbox/cix-mailbox.c
160
static int cix_mbox_send_data_reg(struct mbox_chan *chan, void *data)
drivers/mailbox/cix-mailbox.c
162
struct cix_mbox_priv *priv = to_cix_mbox_priv(chan->mbox);
drivers/mailbox/cix-mailbox.c
179
static int cix_mbox_send_data_fifo(struct mbox_chan *chan, void *data)
drivers/mailbox/cix-mailbox.c
181
struct cix_mbox_priv *priv = to_cix_mbox_priv(chan->mbox);
drivers/mailbox/cix-mailbox.c
201
static int cix_mbox_send_data_fast(struct mbox_chan *chan, void *data)
drivers/mailbox/cix-mailbox.c
203
struct cix_mbox_priv *priv = to_cix_mbox_priv(chan->mbox);
drivers/mailbox/cix-mailbox.c
204
struct cix_mbox_con_priv *cp = chan->con_priv;
drivers/mailbox/cix-mailbox.c
221
static int cix_mbox_send_data(struct mbox_chan *chan, void *data)
drivers/mailbox/cix-mailbox.c
223
struct cix_mbox_priv *priv = to_cix_mbox_priv(chan->mbox);
drivers/mailbox/cix-mailbox.c
224
struct cix_mbox_con_priv *cp = chan->con_priv;
drivers/mailbox/cix-mailbox.c
233
cix_mbox_send_data_db(chan, data);
drivers/mailbox/cix-mailbox.c
236
cix_mbox_send_data_reg(chan, data);
drivers/mailbox/cix-mailbox.c
239
cix_mbox_send_data_fifo(chan, data);
drivers/mailbox/cix-mailbox.c
242
cix_mbox_send_data_fast(chan, data);
drivers/mailbox/cix-mailbox.c
251
static void cix_mbox_isr_db(struct mbox_chan *chan)
drivers/mailbox/cix-mailbox.c
253
struct cix_mbox_priv *priv = to_cix_mbox_priv(chan->mbox);
drivers/mailbox/cix-mailbox.c
262
mbox_chan_received_data(chan, NULL);
drivers/mailbox/cix-mailbox.c
270
mbox_chan_received_data(chan, NULL);
drivers/mailbox/cix-mailbox.c
275
static void cix_mbox_isr_reg(struct mbox_chan *chan)
drivers/mailbox/cix-mailbox.c
277
struct cix_mbox_priv *priv = to_cix_mbox_priv(chan->mbox);
drivers/mailbox/cix-mailbox.c
295
mbox_chan_received_data(chan, data);
drivers/mailbox/cix-mailbox.c
301
mbox_chan_txdone(chan, 0);
drivers/mailbox/cix-mailbox.c
306
static void cix_mbox_isr_fifo(struct mbox_chan *chan)
drivers/mailbox/cix-mailbox.c
308
struct cix_mbox_priv *priv = to_cix_mbox_priv(chan->mbox);
drivers/mailbox/cix-mailbox.c
322
} while (!mbox_fifo_empty(chan) && i < CIX_MBOX_MSG_WORDS);
drivers/mailbox/cix-mailbox.c
324
mbox_chan_received_data(chan, data);
drivers/mailbox/cix-mailbox.c
342
mbox_chan_txdone(chan, 0);
drivers/mailbox/cix-mailbox.c
353
static void cix_mbox_isr_fast(struct mbox_chan *chan)
drivers/mailbox/cix-mailbox.c
355
struct cix_mbox_priv *priv = to_cix_mbox_priv(chan->mbox);
drivers/mailbox/cix-mailbox.c
356
struct cix_mbox_con_priv *cp = chan->con_priv;
drivers/mailbox/cix-mailbox.c
368
mbox_chan_received_data(chan, &data);
drivers/mailbox/cix-mailbox.c
374
struct mbox_chan *chan = arg;
drivers/mailbox/cix-mailbox.c
375
struct cix_mbox_priv *priv = to_cix_mbox_priv(chan->mbox);
drivers/mailbox/cix-mailbox.c
376
struct cix_mbox_con_priv *cp = chan->con_priv;
drivers/mailbox/cix-mailbox.c
380
cix_mbox_isr_db(chan);
drivers/mailbox/cix-mailbox.c
383
cix_mbox_isr_reg(chan);
drivers/mailbox/cix-mailbox.c
386
cix_mbox_isr_fifo(chan);
drivers/mailbox/cix-mailbox.c
389
cix_mbox_isr_fast(chan);
drivers/mailbox/cix-mailbox.c
399
static int cix_mbox_startup(struct mbox_chan *chan)
drivers/mailbox/cix-mailbox.c
401
struct cix_mbox_priv *priv = to_cix_mbox_priv(chan->mbox);
drivers/mailbox/cix-mailbox.c
402
struct cix_mbox_con_priv *cp = chan->con_priv;
drivers/mailbox/cix-mailbox.c
407
dev_name(priv->dev), chan);
drivers/mailbox/cix-mailbox.c
416
chan->txdone_method = MBOX_TXDONE_BY_ACK;
drivers/mailbox/cix-mailbox.c
470
free_irq(priv->irq, chan);
drivers/mailbox/cix-mailbox.c
474
static void cix_mbox_shutdown(struct mbox_chan *chan)
drivers/mailbox/cix-mailbox.c
476
struct cix_mbox_priv *priv = to_cix_mbox_priv(chan->mbox);
drivers/mailbox/cix-mailbox.c
477
struct cix_mbox_con_priv *cp = chan->con_priv;
drivers/mailbox/cix-mailbox.c
527
free_irq(priv->irq, chan);
drivers/mailbox/cix-mailbox.c
544
cp->chan = &priv->mbox_chans[i];
drivers/mailbox/cix-mailbox.c
85
struct mbox_chan *chan;
drivers/mailbox/cv1800-mailbox.c
101
static int cv1800_mbox_send_data(struct mbox_chan *chan, void *data)
drivers/mailbox/cv1800-mailbox.c
104
(struct cv1800_mbox_chan_priv *)chan->con_priv;
drivers/mailbox/cv1800-mailbox.c
105
struct cv1800_mbox *mbox = dev_get_drvdata(chan->mbox->dev);
drivers/mailbox/cv1800-mailbox.c
122
static bool cv1800_last_tx_done(struct mbox_chan *chan)
drivers/mailbox/cv1800-mailbox.c
125
(struct cv1800_mbox_chan_priv *)chan->con_priv;
drivers/mailbox/cv1800-mailbox.c
126
struct cv1800_mbox *mbox = dev_get_drvdata(chan->mbox->dev);
drivers/mailbox/exynos-mailbox.c
37
static int exynos_mbox_send_data(struct mbox_chan *chan, void *data)
drivers/mailbox/exynos-mailbox.c
39
struct device *dev = chan->mbox->dev;
drivers/mailbox/hi3660-mailbox.c
110
static int hi3660_mbox_unlock(struct mbox_chan *chan)
drivers/mailbox/hi3660-mailbox.c
112
struct hi3660_mbox *mbox = to_hi3660_mbox(chan->mbox);
drivers/mailbox/hi3660-mailbox.c
131
static int hi3660_mbox_acquire_channel(struct mbox_chan *chan)
drivers/mailbox/hi3660-mailbox.c
133
unsigned long ch = (unsigned long)chan->con_priv;
drivers/mailbox/hi3660-mailbox.c
134
struct hi3660_mbox *mbox = to_hi3660_mbox(chan->mbox);
drivers/mailbox/hi3660-mailbox.c
157
static int hi3660_mbox_startup(struct mbox_chan *chan)
drivers/mailbox/hi3660-mailbox.c
161
ret = hi3660_mbox_unlock(chan);
drivers/mailbox/hi3660-mailbox.c
165
ret = hi3660_mbox_acquire_channel(chan);
drivers/mailbox/hi3660-mailbox.c
172
static int hi3660_mbox_send_data(struct mbox_chan *chan, void *msg)
drivers/mailbox/hi3660-mailbox.c
174
unsigned long ch = (unsigned long)chan->con_priv;
drivers/mailbox/hi3660-mailbox.c
175
struct hi3660_mbox *mbox = to_hi3660_mbox(chan->mbox);
drivers/mailbox/hi3660-mailbox.c
182
ret = hi3660_mbox_check_state(chan);
drivers/mailbox/hi3660-mailbox.c
225
return &mbox->chan[ch];
drivers/mailbox/hi3660-mailbox.c
239
struct mbox_chan *chan;
drivers/mailbox/hi3660-mailbox.c
253
mbox->controller.chans = mbox->chan;
drivers/mailbox/hi3660-mailbox.c
259
chan = mbox->chan;
drivers/mailbox/hi3660-mailbox.c
261
chan[ch].con_priv = (void *)ch;
drivers/mailbox/hi3660-mailbox.c
73
struct mbox_chan chan[MBOX_CHAN_MAX];
drivers/mailbox/hi3660-mailbox.c
83
static int hi3660_mbox_check_state(struct mbox_chan *chan)
drivers/mailbox/hi3660-mailbox.c
85
unsigned long ch = (unsigned long)chan->con_priv;
drivers/mailbox/hi3660-mailbox.c
86
struct hi3660_mbox *mbox = to_hi3660_mbox(chan->mbox);
drivers/mailbox/hi6220-mailbox.c
110
static bool hi6220_mbox_last_tx_done(struct mbox_chan *chan)
drivers/mailbox/hi6220-mailbox.c
112
struct hi6220_mbox_chan *mchan = chan->con_priv;
drivers/mailbox/hi6220-mailbox.c
123
static int hi6220_mbox_send_data(struct mbox_chan *chan, void *msg)
drivers/mailbox/hi6220-mailbox.c
125
struct hi6220_mbox_chan *mchan = chan->con_priv;
drivers/mailbox/hi6220-mailbox.c
153
struct mbox_chan *chan;
drivers/mailbox/hi6220-mailbox.c
168
chan = mbox->irq_map_chan[intr_bit];
drivers/mailbox/hi6220-mailbox.c
169
if (!chan) {
drivers/mailbox/hi6220-mailbox.c
175
mchan = chan->con_priv;
drivers/mailbox/hi6220-mailbox.c
177
mbox_chan_txdone(chan, 0);
drivers/mailbox/hi6220-mailbox.c
183
mbox_chan_received_data(chan, (void *)msg);
drivers/mailbox/hi6220-mailbox.c
194
static int hi6220_mbox_startup(struct mbox_chan *chan)
drivers/mailbox/hi6220-mailbox.c
196
struct hi6220_mbox_chan *mchan = chan->con_priv;
drivers/mailbox/hi6220-mailbox.c
206
static void hi6220_mbox_shutdown(struct mbox_chan *chan)
drivers/mailbox/hi6220-mailbox.c
208
struct hi6220_mbox_chan *mchan = chan->con_priv;
drivers/mailbox/hi6220-mailbox.c
228
struct mbox_chan *chan;
drivers/mailbox/hi6220-mailbox.c
243
chan = &mbox->chan[i];
drivers/mailbox/hi6220-mailbox.c
244
if (mbox->irq_map_chan[ack_irq] == (void *)chan) {
drivers/mailbox/hi6220-mailbox.c
249
mchan = chan->con_priv;
drivers/mailbox/hi6220-mailbox.c
253
mbox->irq_map_chan[ack_irq] = (void *)chan;
drivers/mailbox/hi6220-mailbox.c
254
return chan;
drivers/mailbox/hi6220-mailbox.c
277
mbox->chan = devm_kcalloc(dev,
drivers/mailbox/hi6220-mailbox.c
278
mbox->chan_num, sizeof(*mbox->chan), GFP_KERNEL);
drivers/mailbox/hi6220-mailbox.c
279
if (!mbox->chan)
drivers/mailbox/hi6220-mailbox.c
307
mbox->controller.chans = &mbox->chan[0];
drivers/mailbox/hi6220-mailbox.c
313
mbox->chan[i].con_priv = &mbox->mchan[i];
drivers/mailbox/hi6220-mailbox.c
83
struct mbox_chan *chan;
drivers/mailbox/imx-mailbox.c
298
mbox_chan_received_data(cp->chan, (void *)&dat);
drivers/mailbox/imx-mailbox.c
308
mbox_chan_received_data(cp->chan, NULL);
drivers/mailbox/imx-mailbox.c
405
mbox_chan_received_data(cp->chan, (void *)priv->msg);
drivers/mailbox/imx-mailbox.c
518
mbox_chan_received_data(cp->chan, (void *)&msg);
drivers/mailbox/imx-mailbox.c
523
mbox_chan_received_data(cp->chan, ERR_PTR(err));
drivers/mailbox/imx-mailbox.c
533
mbox_chan_txdone(cp->chan, 0);
drivers/mailbox/imx-mailbox.c
538
struct mbox_chan *chan = p;
drivers/mailbox/imx-mailbox.c
539
struct imx_mu_priv *priv = to_imx_mu_priv(chan->mbox);
drivers/mailbox/imx-mailbox.c
540
struct imx_mu_con_priv *cp = chan->con_priv;
drivers/mailbox/imx-mailbox.c
544
mbox_chan_txdone(chan, 0);
drivers/mailbox/imx-mailbox.c
567
struct mbox_chan *chan = p;
drivers/mailbox/imx-mailbox.c
568
struct imx_mu_priv *priv = to_imx_mu_priv(chan->mbox);
drivers/mailbox/imx-mailbox.c
569
struct imx_mu_con_priv *cp = chan->con_priv;
drivers/mailbox/imx-mailbox.c
626
static int imx_mu_send_data(struct mbox_chan *chan, void *data)
drivers/mailbox/imx-mailbox.c
628
struct imx_mu_priv *priv = to_imx_mu_priv(chan->mbox);
drivers/mailbox/imx-mailbox.c
629
struct imx_mu_con_priv *cp = chan->con_priv;
drivers/mailbox/imx-mailbox.c
634
static int imx_mu_startup(struct mbox_chan *chan)
drivers/mailbox/imx-mailbox.c
636
struct imx_mu_priv *priv = to_imx_mu_priv(chan->mbox);
drivers/mailbox/imx-mailbox.c
637
struct imx_mu_con_priv *cp = chan->con_priv;
drivers/mailbox/imx-mailbox.c
659
irq_flag, cp->irq_desc, chan);
drivers/mailbox/imx-mailbox.c
680
static void imx_mu_shutdown(struct mbox_chan *chan)
drivers/mailbox/imx-mailbox.c
682
struct imx_mu_priv *priv = to_imx_mu_priv(chan->mbox);
drivers/mailbox/imx-mailbox.c
683
struct imx_mu_con_priv *cp = chan->con_priv;
drivers/mailbox/imx-mailbox.c
719
free_irq(priv->irq[cp->type], chan);
drivers/mailbox/imx-mailbox.c
732
u32 type, idx, chan;
drivers/mailbox/imx-mailbox.c
747
chan = type;
drivers/mailbox/imx-mailbox.c
750
chan = 2 + idx;
drivers/mailbox/imx-mailbox.c
757
if (chan >= mbox->num_chans) {
drivers/mailbox/imx-mailbox.c
758
dev_err(mbox->dev, "Not supported channel number: %d. (type: %d, idx: %d)\n", chan, type, idx);
drivers/mailbox/imx-mailbox.c
762
return &mbox->chans[chan];
drivers/mailbox/imx-mailbox.c
769
u32 type, idx, chan;
drivers/mailbox/imx-mailbox.c
785
chan = type * 4 + idx;
drivers/mailbox/imx-mailbox.c
786
if (chan >= mbox->num_chans) {
drivers/mailbox/imx-mailbox.c
787
dev_err(mbox->dev, "Not supported channel number: %d. (type: %d, idx: %d)\n", chan, type, idx);
drivers/mailbox/imx-mailbox.c
791
p_chan = &mbox->chans[chan];
drivers/mailbox/imx-mailbox.c
81
struct mbox_chan *chan;
drivers/mailbox/imx-mailbox.c
849
cp->chan = &priv->mbox_chans[i];
drivers/mailbox/imx-mailbox.c
886
cp->chan = &priv->mbox_chans[i];
drivers/mailbox/mailbox-altera.c
117
static void altera_mbox_rx_data(struct mbox_chan *chan)
drivers/mailbox/mailbox-altera.c
119
struct altera_mbox *mbox = mbox_chan_to_altera_mbox(chan);
drivers/mailbox/mailbox-altera.c
127
mbox_chan_received_data(chan, (void *)data);
drivers/mailbox/mailbox-altera.c
135
altera_mbox_rx_data(mbox->chan);
drivers/mailbox/mailbox-altera.c
143
struct mbox_chan *chan = (struct mbox_chan *)p;
drivers/mailbox/mailbox-altera.c
144
struct altera_mbox *mbox = mbox_chan_to_altera_mbox(chan);
drivers/mailbox/mailbox-altera.c
147
mbox_chan_txdone(chan, 0);
drivers/mailbox/mailbox-altera.c
154
struct mbox_chan *chan = (struct mbox_chan *)p;
drivers/mailbox/mailbox-altera.c
156
altera_mbox_rx_data(chan);
drivers/mailbox/mailbox-altera.c
160
static int altera_mbox_startup_sender(struct mbox_chan *chan)
drivers/mailbox/mailbox-altera.c
163
struct altera_mbox *mbox = mbox_chan_to_altera_mbox(chan);
drivers/mailbox/mailbox-altera.c
167
DRIVER_NAME, chan);
drivers/mailbox/mailbox-altera.c
179
static int altera_mbox_startup_receiver(struct mbox_chan *chan)
drivers/mailbox/mailbox-altera.c
182
struct altera_mbox *mbox = mbox_chan_to_altera_mbox(chan);
drivers/mailbox/mailbox-altera.c
186
DRIVER_NAME, chan);
drivers/mailbox/mailbox-altera.c
198
mbox->chan = chan;
drivers/mailbox/mailbox-altera.c
206
static int altera_mbox_send_data(struct mbox_chan *chan, void *data)
drivers/mailbox/mailbox-altera.c
208
struct altera_mbox *mbox = mbox_chan_to_altera_mbox(chan);
drivers/mailbox/mailbox-altera.c
233
static bool altera_mbox_last_tx_done(struct mbox_chan *chan)
drivers/mailbox/mailbox-altera.c
235
struct altera_mbox *mbox = mbox_chan_to_altera_mbox(chan);
drivers/mailbox/mailbox-altera.c
241
static bool altera_mbox_peek_data(struct mbox_chan *chan)
drivers/mailbox/mailbox-altera.c
243
struct altera_mbox *mbox = mbox_chan_to_altera_mbox(chan);
drivers/mailbox/mailbox-altera.c
248
static int altera_mbox_startup(struct mbox_chan *chan)
drivers/mailbox/mailbox-altera.c
250
struct altera_mbox *mbox = mbox_chan_to_altera_mbox(chan);
drivers/mailbox/mailbox-altera.c
257
ret = altera_mbox_startup_sender(chan);
drivers/mailbox/mailbox-altera.c
259
ret = altera_mbox_startup_receiver(chan);
drivers/mailbox/mailbox-altera.c
264
static void altera_mbox_shutdown(struct mbox_chan *chan)
drivers/mailbox/mailbox-altera.c
266
struct altera_mbox *mbox = mbox_chan_to_altera_mbox(chan);
drivers/mailbox/mailbox-altera.c
271
free_irq(mbox->irq, chan);
drivers/mailbox/mailbox-altera.c
49
struct mbox_chan *chan;
drivers/mailbox/mailbox-altera.c
52
static struct altera_mbox *mbox_chan_to_altera_mbox(struct mbox_chan *chan)
drivers/mailbox/mailbox-altera.c
54
if (!chan || !chan->con_priv)
drivers/mailbox/mailbox-altera.c
57
return (struct altera_mbox *)chan->con_priv;
drivers/mailbox/mailbox-mchp-ipc-sbi.c
148
static inline void mchp_ipc_prepare_receive_req(struct mbox_chan *chan)
drivers/mailbox/mailbox-mchp-ipc-sbi.c
150
struct mchp_ipc_sbi_chan *chan_info = (struct mchp_ipc_sbi_chan *)chan->con_priv;
drivers/mailbox/mailbox-mchp-ipc-sbi.c
158
static inline void mchp_ipc_process_received_data(struct mbox_chan *chan,
drivers/mailbox/mailbox-mchp-ipc-sbi.c
161
struct mchp_ipc_sbi_chan *chan_info = (struct mchp_ipc_sbi_chan *)chan->con_priv;
drivers/mailbox/mailbox-mchp-ipc-sbi.c
171
struct mbox_chan *chan;
drivers/mailbox/mailbox-mchp-ipc-sbi.c
228
chan = &ipc->chans[chan_id];
drivers/mailbox/mailbox-mchp-ipc-sbi.c
229
chan_info = (struct mchp_ipc_sbi_chan *)chan->con_priv;
drivers/mailbox/mailbox-mchp-ipc-sbi.c
232
mchp_ipc_prepare_receive_req(chan);
drivers/mailbox/mailbox-mchp-ipc-sbi.c
238
mchp_ipc_process_received_data(chan, &ipc_msg);
drivers/mailbox/mailbox-mchp-ipc-sbi.c
250
static int mchp_ipc_send_data(struct mbox_chan *chan, void *data)
drivers/mailbox/mailbox-mchp-ipc-sbi.c
252
struct mchp_ipc_sbi_chan *chan_info = (struct mchp_ipc_sbi_chan *)chan->con_priv;
drivers/mailbox/mailbox-mchp-ipc-sbi.c
264
static int mchp_ipc_startup(struct mbox_chan *chan)
drivers/mailbox/mailbox-mchp-ipc-sbi.c
266
struct mchp_ipc_sbi_chan *chan_info = (struct mchp_ipc_sbi_chan *)chan->con_priv;
drivers/mailbox/mailbox-mchp-ipc-sbi.c
267
struct mchp_ipc_sbi_mbox *ipc = to_mchp_ipc_mbox(chan->mbox);
drivers/mailbox/mailbox-mchp-ipc-sbi.c
340
static void mchp_ipc_shutdown(struct mbox_chan *chan)
drivers/mailbox/mailbox-mchp-ipc-sbi.c
342
struct mchp_ipc_sbi_chan *chan_info = (struct mchp_ipc_sbi_chan *)chan->con_priv;
drivers/mailbox/mailbox-mpfs.c
114
static int mpfs_mbox_send_data(struct mbox_chan *chan, void *data)
drivers/mailbox/mailbox-mpfs.c
116
struct mpfs_mbox *mbox = (struct mpfs_mbox *)chan->con_priv;
drivers/mailbox/mailbox-mpfs.c
166
static void mpfs_mbox_rx_data(struct mbox_chan *chan)
drivers/mailbox/mailbox-mpfs.c
168
struct mpfs_mbox *mbox = (struct mpfs_mbox *)chan->con_priv;
drivers/mailbox/mailbox-mpfs.c
195
mbox_chan_received_data(chan, response);
drivers/mailbox/mailbox-mpfs.c
200
struct mbox_chan *chan = data;
drivers/mailbox/mailbox-mpfs.c
201
struct mpfs_mbox *mbox = (struct mpfs_mbox *)chan->con_priv;
drivers/mailbox/mailbox-mpfs.c
208
mpfs_mbox_rx_data(chan);
drivers/mailbox/mailbox-mpfs.c
213
static int mpfs_mbox_startup(struct mbox_chan *chan)
drivers/mailbox/mailbox-mpfs.c
215
struct mpfs_mbox *mbox = (struct mpfs_mbox *)chan->con_priv;
drivers/mailbox/mailbox-mpfs.c
221
ret = devm_request_irq(mbox->dev, mbox->irq, mpfs_mbox_inbox_isr, 0, "mpfs-mailbox", chan);
drivers/mailbox/mailbox-mpfs.c
228
static void mpfs_mbox_shutdown(struct mbox_chan *chan)
drivers/mailbox/mailbox-mpfs.c
230
struct mpfs_mbox *mbox = (struct mpfs_mbox *)chan->con_priv;
drivers/mailbox/mailbox-mpfs.c
232
devm_free_irq(mbox->dev, mbox->irq, chan);
drivers/mailbox/mailbox-mpfs.c
89
static bool mpfs_mbox_last_tx_done(struct mbox_chan *chan)
drivers/mailbox/mailbox-mpfs.c
91
struct mpfs_mbox *mbox = (struct mpfs_mbox *)chan->con_priv;
drivers/mailbox/mailbox-sti.c
117
static void sti_mbox_enable_channel(struct mbox_chan *chan)
drivers/mailbox/mailbox-sti.c
119
struct sti_channel *chan_info = chan->con_priv;
drivers/mailbox/mailbox-sti.c
132
static void sti_mbox_disable_channel(struct mbox_chan *chan)
drivers/mailbox/mailbox-sti.c
134
struct sti_channel *chan_info = chan->con_priv;
drivers/mailbox/mailbox-sti.c
147
static void sti_mbox_clear_irq(struct mbox_chan *chan)
drivers/mailbox/mailbox-sti.c
149
struct sti_channel *chan_info = chan->con_priv;
drivers/mailbox/mailbox-sti.c
162
struct mbox_chan *chan = NULL;
drivers/mailbox/mailbox-sti.c
177
chan = sti_mbox_to_channel(mbox, instance, channel);
drivers/mailbox/mailbox-sti.c
178
if (chan) {
drivers/mailbox/mailbox-sti.c
186
return chan;
drivers/mailbox/mailbox-sti.c
193
struct mbox_chan *chan;
drivers/mailbox/mailbox-sti.c
198
chan = sti_mbox_irq_to_channel(mdev, instance);
drivers/mailbox/mailbox-sti.c
199
if (!chan)
drivers/mailbox/mailbox-sti.c
202
mbox_chan_received_data(chan, NULL);
drivers/mailbox/mailbox-sti.c
203
sti_mbox_clear_irq(chan);
drivers/mailbox/mailbox-sti.c
204
sti_mbox_enable_channel(chan);
drivers/mailbox/mailbox-sti.c
216
struct mbox_chan *chan;
drivers/mailbox/mailbox-sti.c
221
chan = sti_mbox_irq_to_channel(mdev, instance);
drivers/mailbox/mailbox-sti.c
222
if (!chan)
drivers/mailbox/mailbox-sti.c
224
chan_info = chan->con_priv;
drivers/mailbox/mailbox-sti.c
226
if (!sti_mbox_channel_is_enabled(chan)) {
drivers/mailbox/mailbox-sti.c
239
sti_mbox_disable_channel(chan);
drivers/mailbox/mailbox-sti.c
249
static bool sti_mbox_tx_is_ready(struct mbox_chan *chan)
drivers/mailbox/mailbox-sti.c
251
struct sti_channel *chan_info = chan->con_priv;
drivers/mailbox/mailbox-sti.c
272
static int sti_mbox_send_data(struct mbox_chan *chan, void *data)
drivers/mailbox/mailbox-sti.c
274
struct sti_channel *chan_info = chan->con_priv;
drivers/mailbox/mailbox-sti.c
290
static int sti_mbox_startup_chan(struct mbox_chan *chan)
drivers/mailbox/mailbox-sti.c
292
sti_mbox_clear_irq(chan);
drivers/mailbox/mailbox-sti.c
293
sti_mbox_enable_channel(chan);
drivers/mailbox/mailbox-sti.c
298
static void sti_mbox_shutdown_chan(struct mbox_chan *chan)
drivers/mailbox/mailbox-sti.c
300
struct sti_channel *chan_info = chan->con_priv;
drivers/mailbox/mailbox-sti.c
305
if (chan == &mbox->chans[i])
drivers/mailbox/mailbox-sti.c
314
sti_mbox_disable_channel(chan);
drivers/mailbox/mailbox-sti.c
315
sti_mbox_clear_irq(chan);
drivers/mailbox/mailbox-sti.c
316
chan->con_priv = NULL;
drivers/mailbox/mailbox-sti.c
325
struct mbox_chan *chan = NULL;
drivers/mailbox/mailbox-sti.c
355
if (!chan && !chan_info)
drivers/mailbox/mailbox-sti.c
356
chan = &mbox->chans[i];
drivers/mailbox/mailbox-sti.c
359
if (!chan) {
drivers/mailbox/mailbox-sti.c
372
chan->con_priv = chan_info;
drivers/mailbox/mailbox-sti.c
378
return chan;
drivers/mailbox/mailbox-sti.c
84
static inline bool sti_mbox_channel_is_enabled(struct mbox_chan *chan)
drivers/mailbox/mailbox-sti.c
86
struct sti_channel *chan_info = chan->con_priv;
drivers/mailbox/mailbox-th1520.c
133
struct th1520_mbox_priv *priv = to_th1520_mbox_priv(cp->chan->mbox);
drivers/mailbox/mailbox-th1520.c
202
dev_err(cp->chan->mbox->dev, "convert to mapbit failed\n");
drivers/mailbox/mailbox-th1520.c
209
struct mbox_chan *chan = p;
drivers/mailbox/mailbox-th1520.c
210
struct th1520_mbox_priv *priv = to_th1520_mbox_priv(chan->mbox);
drivers/mailbox/mailbox-th1520.c
211
struct th1520_mbox_con_priv *cp = chan->con_priv;
drivers/mailbox/mailbox-th1520.c
242
mbox_chan_received_data(chan, (void *)dat);
drivers/mailbox/mailbox-th1520.c
252
mbox_chan_txdone(chan, 0);
drivers/mailbox/mailbox-th1520.c
261
static int th1520_mbox_send_data(struct mbox_chan *chan, void *data)
drivers/mailbox/mailbox-th1520.c
263
struct th1520_mbox_con_priv *cp = chan->con_priv;
drivers/mailbox/mailbox-th1520.c
271
static int th1520_mbox_startup(struct mbox_chan *chan)
drivers/mailbox/mailbox-th1520.c
273
struct th1520_mbox_priv *priv = to_th1520_mbox_priv(chan->mbox);
drivers/mailbox/mailbox-th1520.c
274
struct th1520_mbox_con_priv *cp = chan->con_priv;
drivers/mailbox/mailbox-th1520.c
308
IRQF_SHARED | IRQF_NO_SUSPEND, cp->irq_desc, chan);
drivers/mailbox/mailbox-th1520.c
317
static void th1520_mbox_shutdown(struct mbox_chan *chan)
drivers/mailbox/mailbox-th1520.c
319
struct th1520_mbox_priv *priv = to_th1520_mbox_priv(chan->mbox);
drivers/mailbox/mailbox-th1520.c
320
struct th1520_mbox_con_priv *cp = chan->con_priv;
drivers/mailbox/mailbox-th1520.c
323
free_irq(priv->irq, chan);
drivers/mailbox/mailbox-th1520.c
352
u32 chan;
drivers/mailbox/mailbox-th1520.c
360
chan = sp->args[0]; /* comm remote channel */
drivers/mailbox/mailbox-th1520.c
362
if (chan >= mbox->num_chans) {
drivers/mailbox/mailbox-th1520.c
363
dev_err(mbox->dev, "Not supported channel number: %d\n", chan);
drivers/mailbox/mailbox-th1520.c
367
if (chan == TH_1520_MBOX_ICU_KERNEL_CPU0) {
drivers/mailbox/mailbox-th1520.c
372
return &mbox->chans[chan];
drivers/mailbox/mailbox-th1520.c
486
cp->chan = &priv->mbox_chans[i];
drivers/mailbox/mailbox-th1520.c
60
struct mbox_chan *chan;
drivers/mailbox/mailbox-xgene-slimpro.c
110
mbox_chan_txdone(mb_chan->chan, 0);
drivers/mailbox/mailbox-xgene-slimpro.c
113
mbox_chan_received_data(mb_chan->chan, mb_chan->rx_msg);
drivers/mailbox/mailbox-xgene-slimpro.c
118
static int slimpro_mbox_send_data(struct mbox_chan *chan, void *msg)
drivers/mailbox/mailbox-xgene-slimpro.c
120
struct slimpro_mbox_chan *mb_chan = chan->con_priv;
drivers/mailbox/mailbox-xgene-slimpro.c
126
static int slimpro_mbox_startup(struct mbox_chan *chan)
drivers/mailbox/mailbox-xgene-slimpro.c
128
struct slimpro_mbox_chan *mb_chan = chan->con_priv;
drivers/mailbox/mailbox-xgene-slimpro.c
151
static void slimpro_mbox_shutdown(struct mbox_chan *chan)
drivers/mailbox/mailbox-xgene-slimpro.c
153
struct slimpro_mbox_chan *mb_chan = chan->con_priv;
drivers/mailbox/mailbox-xgene-slimpro.c
201
ctx->mc[i].chan = &ctx->chans[i];
drivers/mailbox/mailbox-xgene-slimpro.c
45
struct mbox_chan *chan;
drivers/mailbox/mailbox.c
100
if (chan->cl->tx_done)
drivers/mailbox/mailbox.c
101
chan->cl->tx_done(chan->cl, mssg, r);
drivers/mailbox/mailbox.c
103
if (r != -ETIME && chan->cl->tx_block) {
drivers/mailbox/mailbox.c
104
chan->tx_status = r;
drivers/mailbox/mailbox.c
105
complete(&chan->tx_complete);
drivers/mailbox/mailbox.c
117
struct mbox_chan *chan = &mbox->chans[i];
drivers/mailbox/mailbox.c
119
if (chan->active_req != MBOX_NO_MSG && chan->cl) {
drivers/mailbox/mailbox.c
120
txdone = chan->mbox->ops->last_tx_done(chan);
drivers/mailbox/mailbox.c
122
tx_tick(chan, 0);
drivers/mailbox/mailbox.c
149
void mbox_chan_received_data(struct mbox_chan *chan, void *mssg)
drivers/mailbox/mailbox.c
152
if (chan->cl->rx_callback)
drivers/mailbox/mailbox.c
153
chan->cl->rx_callback(chan->cl, mssg);
drivers/mailbox/mailbox.c
167
void mbox_chan_txdone(struct mbox_chan *chan, int r)
drivers/mailbox/mailbox.c
169
if (unlikely(!(chan->txdone_method & MBOX_TXDONE_BY_IRQ))) {
drivers/mailbox/mailbox.c
170
dev_err(chan->mbox->dev,
drivers/mailbox/mailbox.c
175
tx_tick(chan, r);
drivers/mailbox/mailbox.c
188
void mbox_client_txdone(struct mbox_chan *chan, int r)
drivers/mailbox/mailbox.c
190
if (unlikely(!(chan->txdone_method & MBOX_TXDONE_BY_ACK))) {
drivers/mailbox/mailbox.c
191
dev_err(chan->mbox->dev, "Client can't run the TX ticker\n");
drivers/mailbox/mailbox.c
195
tx_tick(chan, r);
drivers/mailbox/mailbox.c
214
bool mbox_client_peek_data(struct mbox_chan *chan)
drivers/mailbox/mailbox.c
216
if (chan->mbox->ops->peek_data)
drivers/mailbox/mailbox.c
217
return chan->mbox->ops->peek_data(chan);
drivers/mailbox/mailbox.c
235
unsigned int mbox_chan_tx_slots_available(struct mbox_chan *chan)
drivers/mailbox/mailbox.c
239
guard(spinlock_irqsave)(&chan->lock);
drivers/mailbox/mailbox.c
240
ret = MBOX_TX_QUEUE_LEN - chan->msg_count;
drivers/mailbox/mailbox.c
26
static int add_to_rbuf(struct mbox_chan *chan, void *mssg)
drivers/mailbox/mailbox.c
274
int mbox_send_message(struct mbox_chan *chan, void *mssg)
drivers/mailbox/mailbox.c
278
if (!chan || !chan->cl || mssg == MBOX_NO_MSG)
drivers/mailbox/mailbox.c
281
t = add_to_rbuf(chan, mssg);
drivers/mailbox/mailbox.c
283
dev_err(chan->mbox->dev, "Try increasing MBOX_TX_QUEUE_LEN\n");
drivers/mailbox/mailbox.c
287
msg_submit(chan);
drivers/mailbox/mailbox.c
289
if (chan->cl->tx_block) {
drivers/mailbox/mailbox.c
293
if (!chan->cl->tx_tout) /* wait forever */
drivers/mailbox/mailbox.c
296
wait = msecs_to_jiffies(chan->cl->tx_tout);
drivers/mailbox/mailbox.c
298
ret = wait_for_completion_timeout(&chan->tx_complete, wait);
drivers/mailbox/mailbox.c
30
guard(spinlock_irqsave)(&chan->lock);
drivers/mailbox/mailbox.c
301
tx_tick(chan, t);
drivers/mailbox/mailbox.c
302
} else if (chan->tx_status < 0) {
drivers/mailbox/mailbox.c
303
t = chan->tx_status;
drivers/mailbox/mailbox.c
325
int mbox_flush(struct mbox_chan *chan, unsigned long timeout)
drivers/mailbox/mailbox.c
329
if (!chan->mbox->ops->flush)
drivers/mailbox/mailbox.c
33
if (chan->msg_count == MBOX_TX_QUEUE_LEN)
drivers/mailbox/mailbox.c
332
ret = chan->mbox->ops->flush(chan, timeout);
drivers/mailbox/mailbox.c
334
tx_tick(chan, ret);
drivers/mailbox/mailbox.c
340
static void mbox_clean_and_put_channel(struct mbox_chan *chan)
drivers/mailbox/mailbox.c
343
scoped_guard(spinlock_irqsave, &chan->lock) {
drivers/mailbox/mailbox.c
344
chan->cl = NULL;
drivers/mailbox/mailbox.c
345
chan->active_req = MBOX_NO_MSG;
drivers/mailbox/mailbox.c
346
if (chan->txdone_method == MBOX_TXDONE_BY_ACK)
drivers/mailbox/mailbox.c
347
chan->txdone_method = MBOX_TXDONE_BY_POLL;
drivers/mailbox/mailbox.c
350
module_put(chan->mbox->dev->driver->owner);
drivers/mailbox/mailbox.c
353
static int __mbox_bind_client(struct mbox_chan *chan, struct mbox_client *cl)
drivers/mailbox/mailbox.c
358
if (chan->cl || !try_module_get(chan->mbox->dev->driver->owner)) {
drivers/mailbox/mailbox.c
36
idx = chan->msg_free;
drivers/mailbox/mailbox.c
363
scoped_guard(spinlock_irqsave, &chan->lock) {
drivers/mailbox/mailbox.c
364
chan->msg_free = 0;
drivers/mailbox/mailbox.c
365
chan->msg_count = 0;
drivers/mailbox/mailbox.c
366
chan->active_req = MBOX_NO_MSG;
drivers/mailbox/mailbox.c
367
chan->cl = cl;
drivers/mailbox/mailbox.c
368
init_completion(&chan->tx_complete);
drivers/mailbox/mailbox.c
37
chan->msg_data[idx] = mssg;
drivers/mailbox/mailbox.c
370
if (chan->txdone_method == MBOX_TXDONE_BY_POLL && cl->knows_txdone)
drivers/mailbox/mailbox.c
371
chan->txdone_method = MBOX_TXDONE_BY_ACK;
drivers/mailbox/mailbox.c
374
if (chan->mbox->ops->startup) {
drivers/mailbox/mailbox.c
375
ret = chan->mbox->ops->startup(chan);
drivers/mailbox/mailbox.c
378
mbox_clean_and_put_channel(chan);
drivers/mailbox/mailbox.c
38
chan->msg_count++;
drivers/mailbox/mailbox.c
403
int mbox_bind_client(struct mbox_chan *chan, struct mbox_client *cl)
drivers/mailbox/mailbox.c
407
return __mbox_bind_client(chan, cl);
drivers/mailbox/mailbox.c
41
chan->msg_free = 0;
drivers/mailbox/mailbox.c
43
chan->msg_free++;
drivers/mailbox/mailbox.c
434
struct mbox_chan *chan;
drivers/mailbox/mailbox.c
464
chan = ERR_PTR(-EPROBE_DEFER);
drivers/mailbox/mailbox.c
468
chan = mbox->fw_xlate(mbox, &fwspec);
drivers/mailbox/mailbox.c
469
if (!IS_ERR(chan))
drivers/mailbox/mailbox.c
472
chan = mbox->of_xlate(mbox, &spec);
drivers/mailbox/mailbox.c
473
if (!IS_ERR(chan))
drivers/mailbox/mailbox.c
48
static void msg_submit(struct mbox_chan *chan)
drivers/mailbox/mailbox.c
481
if (IS_ERR(chan))
drivers/mailbox/mailbox.c
482
return chan;
drivers/mailbox/mailbox.c
484
ret = __mbox_bind_client(chan, cl);
drivers/mailbox/mailbox.c
486
chan = ERR_PTR(ret);
drivers/mailbox/mailbox.c
489
return chan;
drivers/mailbox/mailbox.c
512
void mbox_free_channel(struct mbox_chan *chan)
drivers/mailbox/mailbox.c
514
if (!chan || !chan->cl)
drivers/mailbox/mailbox.c
517
if (chan->mbox->ops->shutdown)
drivers/mailbox/mailbox.c
518
chan->mbox->ops->shutdown(chan);
drivers/mailbox/mailbox.c
520
mbox_clean_and_put_channel(chan);
drivers/mailbox/mailbox.c
54
scoped_guard(spinlock_irqsave, &chan->lock) {
drivers/mailbox/mailbox.c
55
if (!chan->msg_count || chan->active_req != MBOX_NO_MSG)
drivers/mailbox/mailbox.c
565
struct mbox_chan *chan = &mbox->chans[i];
drivers/mailbox/mailbox.c
567
chan->cl = NULL;
drivers/mailbox/mailbox.c
568
chan->mbox = mbox;
drivers/mailbox/mailbox.c
569
chan->active_req = MBOX_NO_MSG;
drivers/mailbox/mailbox.c
570
chan->txdone_method = txdone;
drivers/mailbox/mailbox.c
571
spin_lock_init(&chan->lock);
drivers/mailbox/mailbox.c
58
count = chan->msg_count;
drivers/mailbox/mailbox.c
59
idx = chan->msg_free;
drivers/mailbox/mailbox.c
65
data = chan->msg_data[idx];
drivers/mailbox/mailbox.c
67
if (chan->cl->tx_prepare)
drivers/mailbox/mailbox.c
674
struct mbox_chan *chan = &mbox->chans[i];
drivers/mailbox/mailbox.c
676
scoped_guard(spinlock_irqsave, &chan->lock) {
drivers/mailbox/mailbox.c
677
if (chan->cl) {
drivers/mailbox/mailbox.c
678
struct device *cl_dev = chan->cl->dev;
drivers/mailbox/mailbox.c
68
chan->cl->tx_prepare(chan->cl, data);
drivers/mailbox/mailbox.c
70
err = chan->mbox->ops->send_data(chan, data);
drivers/mailbox/mailbox.c
72
chan->active_req = data;
drivers/mailbox/mailbox.c
73
chan->msg_count--;
drivers/mailbox/mailbox.c
77
if (!err && (chan->txdone_method & MBOX_TXDONE_BY_POLL)) {
drivers/mailbox/mailbox.c
79
scoped_guard(spinlock_irqsave, &chan->mbox->poll_hrt_lock)
drivers/mailbox/mailbox.c
80
hrtimer_start(&chan->mbox->poll_hrt, 0, HRTIMER_MODE_REL);
drivers/mailbox/mailbox.c
84
static void tx_tick(struct mbox_chan *chan, int r)
drivers/mailbox/mailbox.c
88
scoped_guard(spinlock_irqsave, &chan->lock) {
drivers/mailbox/mailbox.c
89
mssg = chan->active_req;
drivers/mailbox/mailbox.c
90
chan->active_req = MBOX_NO_MSG;
drivers/mailbox/mailbox.c
94
msg_submit(chan);
drivers/mailbox/mtk-adsp-mailbox.c
39
struct mbox_chan *chan = data;
drivers/mailbox/mtk-adsp-mailbox.c
40
struct mtk_adsp_mbox_priv *priv = get_mtk_adsp_mbox_priv(chan->mbox);
drivers/mailbox/mtk-adsp-mailbox.c
50
struct mbox_chan *chan = data;
drivers/mailbox/mtk-adsp-mailbox.c
52
mbox_chan_received_data(chan, NULL);
drivers/mailbox/mtk-adsp-mailbox.c
63
static int mtk_adsp_mbox_startup(struct mbox_chan *chan)
drivers/mailbox/mtk-adsp-mailbox.c
65
struct mtk_adsp_mbox_priv *priv = get_mtk_adsp_mbox_priv(chan->mbox);
drivers/mailbox/mtk-adsp-mailbox.c
76
static void mtk_adsp_mbox_shutdown(struct mbox_chan *chan)
drivers/mailbox/mtk-adsp-mailbox.c
78
struct mtk_adsp_mbox_priv *priv = get_mtk_adsp_mbox_priv(chan->mbox);
drivers/mailbox/mtk-adsp-mailbox.c
87
static int mtk_adsp_mbox_send_data(struct mbox_chan *chan, void *data)
drivers/mailbox/mtk-adsp-mailbox.c
89
struct mtk_adsp_mbox_priv *priv = get_mtk_adsp_mbox_priv(chan->mbox);
drivers/mailbox/mtk-adsp-mailbox.c
97
static bool mtk_adsp_mbox_last_tx_done(struct mbox_chan *chan)
drivers/mailbox/mtk-adsp-mailbox.c
99
struct mtk_adsp_mbox_priv *priv = get_mtk_adsp_mbox_priv(chan->mbox);
drivers/mailbox/mtk-cmdq-mailbox.c
117
void cmdq_get_mbox_priv(struct mbox_chan *chan, struct cmdq_mbox_priv *priv)
drivers/mailbox/mtk-cmdq-mailbox.c
119
struct cmdq *cmdq = container_of(chan->mbox, struct cmdq, mbox);
drivers/mailbox/mtk-cmdq-mailbox.c
126
u8 cmdq_get_shift_pa(struct mbox_chan *chan)
drivers/mailbox/mtk-cmdq-mailbox.c
128
struct cmdq *cmdq = container_of(chan->mbox, struct cmdq, mbox);
drivers/mailbox/mtk-cmdq-mailbox.c
285
mbox_chan_received_data(task->thread->chan, &data);
drivers/mailbox/mtk-cmdq-mailbox.c
372
spin_lock_irqsave(&thread->chan->lock, flags);
drivers/mailbox/mtk-cmdq-mailbox.c
374
spin_unlock_irqrestore(&thread->chan->lock, flags);
drivers/mailbox/mtk-cmdq-mailbox.c
447
static int cmdq_mbox_send_data(struct mbox_chan *chan, void *data)
drivers/mailbox/mtk-cmdq-mailbox.c
450
struct cmdq_thread *thread = (struct cmdq_thread *)chan->con_priv;
drivers/mailbox/mtk-cmdq-mailbox.c
451
struct cmdq *cmdq = dev_get_drvdata(chan->mbox->dev);
drivers/mailbox/mtk-cmdq-mailbox.c
511
static int cmdq_mbox_startup(struct mbox_chan *chan)
drivers/mailbox/mtk-cmdq-mailbox.c
516
static void cmdq_mbox_shutdown(struct mbox_chan *chan)
drivers/mailbox/mtk-cmdq-mailbox.c
518
struct cmdq_thread *thread = (struct cmdq_thread *)chan->con_priv;
drivers/mailbox/mtk-cmdq-mailbox.c
519
struct cmdq *cmdq = dev_get_drvdata(chan->mbox->dev);
drivers/mailbox/mtk-cmdq-mailbox.c
525
spin_lock_irqsave(&thread->chan->lock, flags);
drivers/mailbox/mtk-cmdq-mailbox.c
551
spin_unlock_irqrestore(&thread->chan->lock, flags);
drivers/mailbox/mtk-cmdq-mailbox.c
557
static int cmdq_mbox_flush(struct mbox_chan *chan, unsigned long timeout)
drivers/mailbox/mtk-cmdq-mailbox.c
559
struct cmdq_thread *thread = (struct cmdq_thread *)chan->con_priv;
drivers/mailbox/mtk-cmdq-mailbox.c
561
struct cmdq *cmdq = dev_get_drvdata(chan->mbox->dev);
drivers/mailbox/mtk-cmdq-mailbox.c
571
spin_lock_irqsave(&thread->chan->lock, flags);
drivers/mailbox/mtk-cmdq-mailbox.c
583
mbox_chan_received_data(task->thread->chan, &data);
drivers/mailbox/mtk-cmdq-mailbox.c
592
spin_unlock_irqrestore(&thread->chan->lock, flags);
drivers/mailbox/mtk-cmdq-mailbox.c
600
spin_unlock_irqrestore(&thread->chan->lock, flags);
drivers/mailbox/mtk-cmdq-mailbox.c
631
thread->chan = &mbox->chans[ind];
drivers/mailbox/mtk-cmdq-mailbox.c
70
struct mbox_chan *chan;
drivers/mailbox/mtk-gpueb-mailbox.c
127
static int mtk_gpueb_mbox_send_data(struct mbox_chan *chan, void *data)
drivers/mailbox/mtk-gpueb-mailbox.c
129
struct mtk_gpueb_mbox_chan *ch = chan->con_priv;
drivers/mailbox/mtk-gpueb-mailbox.c
150
static int mtk_gpueb_mbox_startup(struct mbox_chan *chan)
drivers/mailbox/mtk-gpueb-mailbox.c
152
struct mtk_gpueb_mbox_chan *ch = chan->con_priv;
drivers/mailbox/mtk-gpueb-mailbox.c
185
static void mtk_gpueb_mbox_shutdown(struct mbox_chan *chan)
drivers/mailbox/mtk-gpueb-mailbox.c
187
struct mtk_gpueb_mbox_chan *ch = chan->con_priv;
drivers/mailbox/mtk-gpueb-mailbox.c
196
static bool mtk_gpueb_mbox_last_tx_done(struct mbox_chan *chan)
drivers/mailbox/mtk-gpueb-mailbox.c
198
struct mtk_gpueb_mbox_chan *ch = chan->con_priv;
drivers/mailbox/mtk-gpueb-mailbox.c
87
static void mtk_gpueb_mbox_read_rx(void *buf, struct mtk_gpueb_mbox_chan *chan)
drivers/mailbox/mtk-gpueb-mailbox.c
89
memcpy_fromio(buf, chan->ebm->mbox_mmio + chan->c->rx_offset, chan->c->rx_len);
drivers/mailbox/mtk-vcp-mailbox.c
58
static int mtk_vcp_mbox_send_data(struct mbox_chan *chan, void *data)
drivers/mailbox/mtk-vcp-mailbox.c
60
struct mtk_vcp_mbox *priv = chan->con_priv;
drivers/mailbox/mtk-vcp-mailbox.c
85
static bool mtk_vcp_mbox_last_tx_done(struct mbox_chan *chan)
drivers/mailbox/mtk-vcp-mailbox.c
87
struct mtk_ipi_info *ipi_info = chan->active_req;
drivers/mailbox/mtk-vcp-mailbox.c
88
struct mtk_vcp_mbox *priv = chan->con_priv;
drivers/mailbox/omap-mailbox.c
199
mbox_chan_txdone(mbox->chan, 0);
drivers/mailbox/omap-mailbox.c
208
mbox_chan_received_data(mbox->chan, (void *)(uintptr_t)msg);
drivers/mailbox/omap-mailbox.c
241
mbox->chan->txdone_method = MBOX_TXDONE_BY_ACK;
drivers/mailbox/omap-mailbox.c
254
static int omap_mbox_chan_startup(struct mbox_chan *chan)
drivers/mailbox/omap-mailbox.c
256
struct omap_mbox *mbox = chan->con_priv;
drivers/mailbox/omap-mailbox.c
269
static void omap_mbox_chan_shutdown(struct mbox_chan *chan)
drivers/mailbox/omap-mailbox.c
271
struct omap_mbox *mbox = chan->con_priv;
drivers/mailbox/omap-mailbox.c
311
static int omap_mbox_chan_send_data(struct mbox_chan *chan, void *data)
drivers/mailbox/omap-mailbox.c
313
struct omap_mbox *mbox = chan->con_priv;
drivers/mailbox/omap-mailbox.c
556
mbox->chan = &chnls[i];
drivers/mailbox/omap-mailbox.c
89
struct mbox_chan *chan;
drivers/mailbox/pcc.c
102
struct pcc_mbox_chan chan;
drivers/mailbox/pcc.c
114
#define to_pcc_chan_info(c) container_of(c, struct pcc_chan_info, chan)
drivers/mailbox/pcc.c
295
pcc_hdr = pchan->chan.shmem;
drivers/mailbox/pcc.c
316
struct mbox_chan *chan = p;
drivers/mailbox/pcc.c
318
pchan = chan->con_priv;
drivers/mailbox/pcc.c
340
mbox_chan_received_data(chan, NULL);
drivers/mailbox/pcc.c
341
mbox_chan_txdone(chan, 0);
drivers/mailbox/pcc.c
365
struct mbox_chan *chan;
drivers/mailbox/pcc.c
372
chan = pchan->chan.mchan;
drivers/mailbox/pcc.c
373
if (IS_ERR(chan) || chan->cl) {
drivers/mailbox/pcc.c
378
pcc_mchan = &pchan->chan;
drivers/mailbox/pcc.c
384
rc = mbox_bind_client(chan, cl);
drivers/mailbox/pcc.c
403
struct mbox_chan *chan = pchan->mchan;
drivers/mailbox/pcc.c
407
if (!chan || !chan->cl)
drivers/mailbox/pcc.c
409
pchan_info = chan->con_priv;
drivers/mailbox/pcc.c
410
pcc_mbox_chan = &pchan_info->chan;
drivers/mailbox/pcc.c
416
mbox_free_channel(chan);
drivers/mailbox/pcc.c
432
static int pcc_send_data(struct mbox_chan *chan, void *data)
drivers/mailbox/pcc.c
435
struct pcc_chan_info *pchan = chan->con_priv;
drivers/mailbox/pcc.c
448
static bool pcc_last_tx_done(struct mbox_chan *chan)
drivers/mailbox/pcc.c
450
struct pcc_chan_info *pchan = chan->con_priv;
drivers/mailbox/pcc.c
462
static int pcc_startup(struct mbox_chan *chan)
drivers/mailbox/pcc.c
464
struct pcc_chan_info *pchan = chan->con_priv;
drivers/mailbox/pcc.c
477
rc = devm_request_irq(chan->mbox->dev, pchan->plat_irq, pcc_mbox_irq,
drivers/mailbox/pcc.c
478
irqflags, MBOX_IRQ_NAME, chan);
drivers/mailbox/pcc.c
480
dev_err(chan->mbox->dev, "failed to register PCC interrupt %d\n",
drivers/mailbox/pcc.c
494
static void pcc_shutdown(struct mbox_chan *chan)
drivers/mailbox/pcc.c
496
struct pcc_chan_info *pchan = chan->con_priv;
drivers/mailbox/pcc.c
499
devm_free_irq(chan->mbox->dev, pchan->plat_irq, chan);
drivers/mailbox/pcc.c
689
pchan->chan.shmem_base_addr = pcct_ss->base_address;
drivers/mailbox/pcc.c
690
pchan->chan.shmem_size = pcct_ss->length;
drivers/mailbox/pcc.c
691
pchan->chan.latency = pcct_ss->latency;
drivers/mailbox/pcc.c
692
pchan->chan.max_access_rate = pcct_ss->max_access_rate;
drivers/mailbox/pcc.c
693
pchan->chan.min_turnaround_time = pcct_ss->min_turnaround_time;
drivers/mailbox/pcc.c
698
pchan->chan.shmem_base_addr = pcct_ext->base_address;
drivers/mailbox/pcc.c
699
pchan->chan.shmem_size = pcct_ext->length;
drivers/mailbox/pcc.c
700
pchan->chan.latency = pcct_ext->latency;
drivers/mailbox/pcc.c
701
pchan->chan.max_access_rate = pcct_ext->max_access_rate;
drivers/mailbox/pcc.c
702
pchan->chan.min_turnaround_time = pcct_ext->min_turnaround_time;
drivers/mailbox/pcc.c
813
pchan->chan.mchan = &pcc_mbox_channels[i];
drivers/mailbox/platform_mhu.c
101
static void platform_mhu_shutdown(struct mbox_chan *chan)
drivers/mailbox/platform_mhu.c
103
struct platform_mhu_link *mlink = chan->con_priv;
drivers/mailbox/platform_mhu.c
105
free_irq(mlink->irq, chan);
drivers/mailbox/platform_mhu.c
136
mhu->chan[i].con_priv = &mhu->mlink[i];
drivers/mailbox/platform_mhu.c
145
mhu->mbox.chans = &mhu->chan[0];
drivers/mailbox/platform_mhu.c
42
struct mbox_chan chan[MHU_CHANS];
drivers/mailbox/platform_mhu.c
48
struct mbox_chan *chan = p;
drivers/mailbox/platform_mhu.c
49
struct platform_mhu_link *mlink = chan->con_priv;
drivers/mailbox/platform_mhu.c
56
mbox_chan_received_data(chan, (void *)&val);
drivers/mailbox/platform_mhu.c
63
static bool platform_mhu_last_tx_done(struct mbox_chan *chan)
drivers/mailbox/platform_mhu.c
65
struct platform_mhu_link *mlink = chan->con_priv;
drivers/mailbox/platform_mhu.c
71
static int platform_mhu_send_data(struct mbox_chan *chan, void *data)
drivers/mailbox/platform_mhu.c
73
struct platform_mhu_link *mlink = chan->con_priv;
drivers/mailbox/platform_mhu.c
81
static int platform_mhu_startup(struct mbox_chan *chan)
drivers/mailbox/platform_mhu.c
83
struct platform_mhu_link *mlink = chan->con_priv;
drivers/mailbox/platform_mhu.c
91
IRQF_SHARED, "platform_mhu_link", chan);
drivers/mailbox/platform_mhu.c
93
dev_err(chan->mbox->dev,
drivers/mailbox/qcom-apcs-ipc-mailbox.c
63
static int qcom_apcs_ipc_send_data(struct mbox_chan *chan, void *data)
drivers/mailbox/qcom-apcs-ipc-mailbox.c
65
struct qcom_apcs_ipc *apcs = container_of(chan->mbox,
drivers/mailbox/qcom-apcs-ipc-mailbox.c
67
unsigned long idx = (unsigned long)chan->con_priv;
drivers/mailbox/qcom-cpucp-mbox.c
103
static int qcom_cpucp_mbox_send_data(struct mbox_chan *chan, void *data)
drivers/mailbox/qcom-cpucp-mbox.c
105
struct qcom_cpucp_mbox *cpucp = container_of(chan->mbox, struct qcom_cpucp_mbox, mbox);
drivers/mailbox/qcom-cpucp-mbox.c
106
unsigned long chan_id = channel_number(chan);
drivers/mailbox/qcom-cpucp-mbox.c
50
static inline int channel_number(struct mbox_chan *chan)
drivers/mailbox/qcom-cpucp-mbox.c
52
return chan - chan->mbox->chans;
drivers/mailbox/qcom-cpucp-mbox.c
65
struct mbox_chan *chan = &cpucp->chans[i];
drivers/mailbox/qcom-cpucp-mbox.c
69
spin_lock_irqsave(&chan->lock, flags);
drivers/mailbox/qcom-cpucp-mbox.c
70
if (chan->cl)
drivers/mailbox/qcom-cpucp-mbox.c
71
mbox_chan_received_data(chan, &val);
drivers/mailbox/qcom-cpucp-mbox.c
73
spin_unlock_irqrestore(&chan->lock, flags);
drivers/mailbox/qcom-cpucp-mbox.c
79
static int qcom_cpucp_mbox_startup(struct mbox_chan *chan)
drivers/mailbox/qcom-cpucp-mbox.c
81
struct qcom_cpucp_mbox *cpucp = container_of(chan->mbox, struct qcom_cpucp_mbox, mbox);
drivers/mailbox/qcom-cpucp-mbox.c
82
unsigned long chan_id = channel_number(chan);
drivers/mailbox/qcom-cpucp-mbox.c
92
static void qcom_cpucp_mbox_shutdown(struct mbox_chan *chan)
drivers/mailbox/qcom-cpucp-mbox.c
94
struct qcom_cpucp_mbox *cpucp = container_of(chan->mbox, struct qcom_cpucp_mbox, mbox);
drivers/mailbox/qcom-cpucp-mbox.c
95
unsigned long chan_id = channel_number(chan);
drivers/mailbox/qcom-ipcc.c
148
static int qcom_ipcc_mbox_send_data(struct mbox_chan *chan, void *data)
drivers/mailbox/qcom-ipcc.c
150
struct qcom_ipcc *ipcc = to_qcom_ipcc(chan->mbox);
drivers/mailbox/qcom-ipcc.c
151
struct qcom_ipcc_chan_info *mchan = chan->con_priv;
drivers/mailbox/qcom-ipcc.c
160
static void qcom_ipcc_mbox_shutdown(struct mbox_chan *chan)
drivers/mailbox/qcom-ipcc.c
162
chan->con_priv = NULL;
drivers/mailbox/qcom-ipcc.c
170
struct mbox_chan *chan;
drivers/mailbox/qcom-ipcc.c
180
chan = &ipcc->chans[chan_id];
drivers/mailbox/qcom-ipcc.c
181
mchan = chan->con_priv;
drivers/mailbox/qcom-ipcc.c
199
chan->con_priv = mchan;
drivers/mailbox/qcom-ipcc.c
201
return chan;
drivers/mailbox/riscv-sbi-mpxy-mbox.c
474
static void mpxy_mbox_peek_rpmi_data(struct mbox_chan *chan,
drivers/mailbox/riscv-sbi-mpxy-mbox.c
492
mbox_chan_received_data(chan, &msg);
drivers/mailbox/riscv-sbi-mpxy-mbox.c
507
static int mpxy_mbox_send_data(struct mbox_chan *chan, void *data)
drivers/mailbox/riscv-sbi-mpxy-mbox.c
509
struct mpxy_mbox_channel *mchan = chan->con_priv;
drivers/mailbox/riscv-sbi-mpxy-mbox.c
519
static bool mpxy_mbox_peek_data(struct mbox_chan *chan)
drivers/mailbox/riscv-sbi-mpxy-mbox.c
521
struct mpxy_mbox_channel *mchan = chan->con_priv;
drivers/mailbox/riscv-sbi-mpxy-mbox.c
536
mpxy_mbox_peek_rpmi_data(chan, mchan, notif, data_len);
drivers/mailbox/riscv-sbi-mpxy-mbox.c
550
static int mpxy_mbox_setup_msi(struct mbox_chan *chan,
drivers/mailbox/riscv-sbi-mpxy-mbox.c
566
0, dev_name(dev), chan);
drivers/mailbox/riscv-sbi-mpxy-mbox.c
581
free_irq(mchan->msi_irq, chan);
drivers/mailbox/riscv-sbi-mpxy-mbox.c
588
static void mpxy_mbox_cleanup_msi(struct mbox_chan *chan,
drivers/mailbox/riscv-sbi-mpxy-mbox.c
612
free_irq(mchan->msi_irq, chan);
drivers/mailbox/riscv-sbi-mpxy-mbox.c
664
static int mpxy_mbox_startup(struct mbox_chan *chan)
drivers/mailbox/riscv-sbi-mpxy-mbox.c
666
struct mpxy_mbox_channel *mchan = chan->con_priv;
drivers/mailbox/riscv-sbi-mpxy-mbox.c
673
rc = mpxy_mbox_setup_msi(chan, mchan);
drivers/mailbox/riscv-sbi-mpxy-mbox.c
680
mpxy_mbox_cleanup_msi(chan, mchan);
drivers/mailbox/riscv-sbi-mpxy-mbox.c
690
static void mpxy_mbox_shutdown(struct mbox_chan *chan)
drivers/mailbox/riscv-sbi-mpxy-mbox.c
692
struct mpxy_mbox_channel *mchan = chan->con_priv;
drivers/mailbox/riscv-sbi-mpxy-mbox.c
704
mpxy_mbox_cleanup_msi(chan, mchan);
drivers/mailbox/rockchip-mailbox.c
52
static int rockchip_mbox_send_data(struct mbox_chan *chan, void *data)
drivers/mailbox/rockchip-mailbox.c
54
struct rockchip_mbox *mb = dev_get_drvdata(chan->mbox->dev);
drivers/mailbox/rockchip-mailbox.c
79
static int rockchip_mbox_startup(struct mbox_chan *chan)
drivers/mailbox/rockchip-mailbox.c
81
struct rockchip_mbox *mb = dev_get_drvdata(chan->mbox->dev);
drivers/mailbox/rockchip-mailbox.c
90
static void rockchip_mbox_shutdown(struct mbox_chan *chan)
drivers/mailbox/rockchip-mailbox.c
92
struct rockchip_mbox *mb = dev_get_drvdata(chan->mbox->dev);
drivers/mailbox/sprd-mailbox.c
128
struct mbox_chan *chan;
drivers/mailbox/sprd-mailbox.c
145
chan = &priv->chan[id];
drivers/mailbox/sprd-mailbox.c
146
if (chan->cl)
drivers/mailbox/sprd-mailbox.c
147
mbox_chan_received_data(chan, (void *)msg);
drivers/mailbox/sprd-mailbox.c
179
struct mbox_chan *chan;
drivers/mailbox/sprd-mailbox.c
213
chan = &priv->chan[id];
drivers/mailbox/sprd-mailbox.c
225
mbox_chan_txdone(chan, 0);
drivers/mailbox/sprd-mailbox.c
234
static int sprd_mbox_send_data(struct mbox_chan *chan, void *msg)
drivers/mailbox/sprd-mailbox.c
236
struct sprd_mbox_priv *priv = to_sprd_mbox_priv(chan->mbox);
drivers/mailbox/sprd-mailbox.c
237
unsigned long id = (unsigned long)chan->con_priv;
drivers/mailbox/sprd-mailbox.c
253
static int sprd_mbox_flush(struct mbox_chan *chan, unsigned long timeout)
drivers/mailbox/sprd-mailbox.c
255
struct sprd_mbox_priv *priv = to_sprd_mbox_priv(chan->mbox);
drivers/mailbox/sprd-mailbox.c
256
unsigned long id = (unsigned long)chan->con_priv;
drivers/mailbox/sprd-mailbox.c
265
mbox_chan_txdone(chan, 0);
drivers/mailbox/sprd-mailbox.c
275
static int sprd_mbox_startup(struct mbox_chan *chan)
drivers/mailbox/sprd-mailbox.c
277
struct sprd_mbox_priv *priv = to_sprd_mbox_priv(chan->mbox);
drivers/mailbox/sprd-mailbox.c
306
static void sprd_mbox_shutdown(struct mbox_chan *chan)
drivers/mailbox/sprd-mailbox.c
308
struct sprd_mbox_priv *priv = to_sprd_mbox_priv(chan->mbox);
drivers/mailbox/sprd-mailbox.c
418
priv->mbox.chans = &priv->chan[0];
drivers/mailbox/sprd-mailbox.c
428
priv->chan[id].con_priv = (void *)id;
drivers/mailbox/sprd-mailbox.c
92
struct mbox_chan chan[SPRD_MBOX_R2_CHAN_MAX];
drivers/mailbox/stm32-ipcc.c
102
dev_dbg(dev, "%s: chan:%d rx\n", __func__, chan);
drivers/mailbox/stm32-ipcc.c
104
mbox_chan_received_data(&ipcc->controller.chans[chan], NULL);
drivers/mailbox/stm32-ipcc.c
107
RX_BIT_CHAN(chan));
drivers/mailbox/stm32-ipcc.c
119
u32 status, mr, tosr, chan;
drivers/mailbox/stm32-ipcc.c
128
for (chan = 0; chan < ipcc->n_chans ; chan++) {
drivers/mailbox/stm32-ipcc.c
129
if (!(status & (1 << chan)))
drivers/mailbox/stm32-ipcc.c
132
dev_dbg(dev, "%s: chan:%d tx\n", __func__, chan);
drivers/mailbox/stm32-ipcc.c
136
TX_BIT_CHAN(chan));
drivers/mailbox/stm32-ipcc.c
138
mbox_chan_txdone(&ipcc->controller.chans[chan], 0);
drivers/mailbox/stm32-ipcc.c
148
unsigned long chan = (unsigned long)link->con_priv;
drivers/mailbox/stm32-ipcc.c
152
dev_dbg(ipcc->controller.dev, "%s: chan:%lu\n", __func__, chan);
drivers/mailbox/stm32-ipcc.c
156
TX_BIT_CHAN(chan));
drivers/mailbox/stm32-ipcc.c
160
TX_BIT_CHAN(chan));
drivers/mailbox/stm32-ipcc.c
167
unsigned long chan = (unsigned long)link->con_priv;
drivers/mailbox/stm32-ipcc.c
180
RX_BIT_CHAN(chan));
drivers/mailbox/stm32-ipcc.c
187
unsigned long chan = (unsigned long)link->con_priv;
drivers/mailbox/stm32-ipcc.c
193
RX_BIT_CHAN(chan) | TX_BIT_CHAN(chan));
drivers/mailbox/stm32-ipcc.c
36
#define RX_BIT_CHAN(chan) BIT(chan)
drivers/mailbox/stm32-ipcc.c
39
#define TX_BIT_CHAN(chan) BIT(TX_BIT_SHIFT + (chan))
drivers/mailbox/stm32-ipcc.c
86
u32 status, mr, tosr, chan;
drivers/mailbox/stm32-ipcc.c
98
for (chan = 0; chan < ipcc->n_chans; chan++) {
drivers/mailbox/stm32-ipcc.c
99
if (!(status & (1 << chan)))
drivers/mailbox/sun6i-msgbox.c
101
struct sun6i_msgbox *mbox = to_sun6i_msgbox(chan);
drivers/mailbox/sun6i-msgbox.c
102
int n = channel_number(chan);
drivers/mailbox/sun6i-msgbox.c
115
static int sun6i_msgbox_startup(struct mbox_chan *chan)
drivers/mailbox/sun6i-msgbox.c
117
struct sun6i_msgbox *mbox = to_sun6i_msgbox(chan);
drivers/mailbox/sun6i-msgbox.c
118
int n = channel_number(chan);
drivers/mailbox/sun6i-msgbox.c
123
while (sun6i_msgbox_peek_data(chan))
drivers/mailbox/sun6i-msgbox.c
139
static void sun6i_msgbox_shutdown(struct mbox_chan *chan)
drivers/mailbox/sun6i-msgbox.c
141
struct sun6i_msgbox *mbox = to_sun6i_msgbox(chan);
drivers/mailbox/sun6i-msgbox.c
142
int n = channel_number(chan);
drivers/mailbox/sun6i-msgbox.c
153
while (sun6i_msgbox_peek_data(chan))
drivers/mailbox/sun6i-msgbox.c
162
static bool sun6i_msgbox_last_tx_done(struct mbox_chan *chan)
drivers/mailbox/sun6i-msgbox.c
164
struct sun6i_msgbox *mbox = to_sun6i_msgbox(chan);
drivers/mailbox/sun6i-msgbox.c
165
int n = channel_number(chan);
drivers/mailbox/sun6i-msgbox.c
179
static bool sun6i_msgbox_peek_data(struct mbox_chan *chan)
drivers/mailbox/sun6i-msgbox.c
181
struct sun6i_msgbox *mbox = to_sun6i_msgbox(chan);
drivers/mailbox/sun6i-msgbox.c
182
int n = channel_number(chan);
drivers/mailbox/sun6i-msgbox.c
53
static bool sun6i_msgbox_last_tx_done(struct mbox_chan *chan);
drivers/mailbox/sun6i-msgbox.c
54
static bool sun6i_msgbox_peek_data(struct mbox_chan *chan);
drivers/mailbox/sun6i-msgbox.c
56
static inline int channel_number(struct mbox_chan *chan)
drivers/mailbox/sun6i-msgbox.c
58
return chan - chan->mbox->chans;
drivers/mailbox/sun6i-msgbox.c
61
static inline struct sun6i_msgbox *to_sun6i_msgbox(struct mbox_chan *chan)
drivers/mailbox/sun6i-msgbox.c
63
return chan->con_priv;
drivers/mailbox/sun6i-msgbox.c
80
struct mbox_chan *chan = &mbox->controller.chans[n];
drivers/mailbox/sun6i-msgbox.c
85
while (sun6i_msgbox_peek_data(chan)) {
drivers/mailbox/sun6i-msgbox.c
89
mbox_chan_received_data(chan, &msg);
drivers/mailbox/sun6i-msgbox.c
99
static int sun6i_msgbox_send_data(struct mbox_chan *chan, void *data)
drivers/mailbox/tegra-hsp.c
219
if (db && db->channel.chan)
drivers/mailbox/tegra-hsp.c
220
mbox_chan_received_data(db->channel.chan, NULL);
drivers/mailbox/tegra-hsp.c
258
mbox_chan_txdone(mb->channel.chan, 0);
drivers/mailbox/tegra-hsp.c
304
static int tegra_hsp_doorbell_send_data(struct mbox_chan *chan, void *data)
drivers/mailbox/tegra-hsp.c
306
struct tegra_hsp_doorbell *db = chan->con_priv;
drivers/mailbox/tegra-hsp.c
313
static int tegra_hsp_doorbell_startup(struct mbox_chan *chan)
drivers/mailbox/tegra-hsp.c
315
struct tegra_hsp_doorbell *db = chan->con_priv;
drivers/mailbox/tegra-hsp.c
321
if (db->master >= chan->mbox->num_chans) {
drivers/mailbox/tegra-hsp.c
322
dev_err(chan->mbox->dev,
drivers/mailbox/tegra-hsp.c
351
static void tegra_hsp_doorbell_shutdown(struct mbox_chan *chan)
drivers/mailbox/tegra-hsp.c
353
struct tegra_hsp_doorbell *db = chan->con_priv;
drivers/mailbox/tegra-hsp.c
407
mbox_chan_received_data(channel->chan, msg);
drivers/mailbox/tegra-hsp.c
453
mbox_chan_received_data(channel->chan, msg);
drivers/mailbox/tegra-hsp.c
461
static int tegra_hsp_mailbox_send_data(struct mbox_chan *chan, void *data)
drivers/mailbox/tegra-hsp.c
463
struct tegra_hsp_mailbox *mb = chan->con_priv;
drivers/mailbox/tegra-hsp.c
483
static int tegra_hsp_mailbox_flush(struct mbox_chan *chan,
drivers/mailbox/tegra-hsp.c
486
struct tegra_hsp_mailbox *mb = chan->con_priv;
drivers/mailbox/tegra-hsp.c
495
mbox_chan_txdone(chan, 0);
drivers/mailbox/tegra-hsp.c
498
if (chan->active_req != MBOX_NO_MSG)
drivers/mailbox/tegra-hsp.c
510
static int tegra_hsp_mailbox_startup(struct mbox_chan *chan)
drivers/mailbox/tegra-hsp.c
512
struct tegra_hsp_mailbox *mb = chan->con_priv;
drivers/mailbox/tegra-hsp.c
517
chan->txdone_method = MBOX_TXDONE_BY_IRQ;
drivers/mailbox/tegra-hsp.c
553
static void tegra_hsp_mailbox_shutdown(struct mbox_chan *chan)
drivers/mailbox/tegra-hsp.c
555
struct tegra_hsp_mailbox *mb = chan->con_priv;
drivers/mailbox/tegra-hsp.c
57
struct mbox_chan *chan;
drivers/mailbox/tegra-hsp.c
595
struct mbox_chan *chan;
drivers/mailbox/tegra-hsp.c
612
chan = &mbox->chans[i];
drivers/mailbox/tegra-hsp.c
613
if (!chan->con_priv) {
drivers/mailbox/tegra-hsp.c
614
channel->chan = chan;
drivers/mailbox/tegra-hsp.c
615
chan->con_priv = db;
drivers/mailbox/tegra-hsp.c
619
chan = NULL;
drivers/mailbox/tegra-hsp.c
624
return chan ?: ERR_PTR(-EBUSY);
drivers/mailbox/tegra-hsp.c
656
return mb->channel.chan;
drivers/mailbox/tegra-hsp.c
692
mb->channel.chan = &hsp->mbox_sm.chans[i];
drivers/mailbox/tegra-hsp.c
693
mb->channel.chan->con_priv = mb;
drivers/mailbox/tegra-hsp.c
893
if (db->channel.chan)
drivers/mailbox/tegra-hsp.c
894
tegra_hsp_doorbell_startup(db->channel.chan);
drivers/mailbox/tegra-hsp.c
901
if (mb->channel.chan->cl)
drivers/mailbox/tegra-hsp.c
902
tegra_hsp_mailbox_startup(mb->channel.chan);
drivers/mailbox/ti-msgmgr.c
116
struct mbox_chan *chan;
drivers/mailbox/ti-msgmgr.c
196
static int ti_msgmgr_queue_rx_data(struct mbox_chan *chan, struct ti_queue_inst *qinst,
drivers/mailbox/ti-msgmgr.c
238
mbox_chan_received_data(chan, (void *)&message);
drivers/mailbox/ti-msgmgr.c
243
static int ti_msgmgr_queue_rx_poll_timeout(struct mbox_chan *chan, int timeout_us)
drivers/mailbox/ti-msgmgr.c
245
struct device *dev = chan->mbox->dev;
drivers/mailbox/ti-msgmgr.c
247
struct ti_queue_inst *qinst = chan->con_priv;
drivers/mailbox/ti-msgmgr.c
258
ti_msgmgr_queue_rx_data(chan, qinst, desc);
drivers/mailbox/ti-msgmgr.c
274
struct mbox_chan *chan = p;
drivers/mailbox/ti-msgmgr.c
275
struct device *dev = chan->mbox->dev;
drivers/mailbox/ti-msgmgr.c
277
struct ti_queue_inst *qinst = chan->con_priv;
drivers/mailbox/ti-msgmgr.c
307
ti_msgmgr_queue_rx_data(chan, qinst, desc);
drivers/mailbox/ti-msgmgr.c
318
static bool ti_msgmgr_queue_peek_data(struct mbox_chan *chan)
drivers/mailbox/ti-msgmgr.c
320
struct ti_queue_inst *qinst = chan->con_priv;
drivers/mailbox/ti-msgmgr.c
321
struct device *dev = chan->mbox->dev;
drivers/mailbox/ti-msgmgr.c
345
static bool ti_msgmgr_last_tx_done(struct mbox_chan *chan)
drivers/mailbox/ti-msgmgr.c
347
struct ti_queue_inst *qinst = chan->con_priv;
drivers/mailbox/ti-msgmgr.c
348
struct device *dev = chan->mbox->dev;
drivers/mailbox/ti-msgmgr.c
372
static bool ti_msgmgr_chan_has_polled_queue_rx(struct mbox_chan *chan)
drivers/mailbox/ti-msgmgr.c
376
if (!chan)
drivers/mailbox/ti-msgmgr.c
379
qinst = chan->con_priv;
drivers/mailbox/ti-msgmgr.c
390
static int ti_msgmgr_send_data(struct mbox_chan *chan, void *data)
drivers/mailbox/ti-msgmgr.c
392
struct device *dev = chan->mbox->dev;
drivers/mailbox/ti-msgmgr.c
395
struct ti_queue_inst *qinst = chan->con_priv;
drivers/mailbox/ti-msgmgr.c
466
struct mbox_chan *chan)
drivers/mailbox/ti-msgmgr.c
494
IRQF_SHARED, qinst->name, chan);
drivers/mailbox/ti-msgmgr.c
509
static int ti_msgmgr_queue_startup(struct mbox_chan *chan)
drivers/mailbox/ti-msgmgr.c
511
struct device *dev = chan->mbox->dev;
drivers/mailbox/ti-msgmgr.c
513
struct ti_queue_inst *qinst = chan->con_priv;
drivers/mailbox/ti-msgmgr.c
541
ret = ti_msgmgr_queue_rx_irq_req(dev, d, qinst, chan);
drivers/mailbox/ti-msgmgr.c
555
static void ti_msgmgr_queue_shutdown(struct mbox_chan *chan)
drivers/mailbox/ti-msgmgr.c
557
struct ti_queue_inst *qinst = chan->con_priv;
drivers/mailbox/ti-msgmgr.c
560
free_irq(qinst->irq, chan);
drivers/mailbox/ti-msgmgr.c
609
return qinst->chan;
drivers/mailbox/ti-msgmgr.c
615
return qinst->chan;
drivers/mailbox/ti-msgmgr.c
643
struct mbox_chan *chan)
drivers/mailbox/ti-msgmgr.c
688
qinst->chan = chan;
drivers/mailbox/ti-msgmgr.c
693
chan->con_priv = qinst;
drivers/mailbox/zynqmp-ipi-mailbox.c
178
struct mbox_chan *chan;
drivers/mailbox/zynqmp-ipi-mailbox.c
192
chan = &ipi_mbox->mbox.chans[IPI_MB_CHNL_RX];
drivers/mailbox/zynqmp-ipi-mailbox.c
203
mbox_chan_received_data(chan, (void *)msg);
drivers/mailbox/zynqmp-ipi-mailbox.c
226
static bool zynqmp_ipi_peek_data(struct mbox_chan *chan)
drivers/mailbox/zynqmp-ipi-mailbox.c
228
struct device *dev = chan->mbox->dev;
drivers/mailbox/zynqmp-ipi-mailbox.c
230
struct zynqmp_ipi_mchan *mchan = chan->con_priv;
drivers/mailbox/zynqmp-ipi-mailbox.c
266
static bool zynqmp_ipi_last_tx_done(struct mbox_chan *chan)
drivers/mailbox/zynqmp-ipi-mailbox.c
268
struct device *dev = chan->mbox->dev;
drivers/mailbox/zynqmp-ipi-mailbox.c
270
struct zynqmp_ipi_mchan *mchan = chan->con_priv;
drivers/mailbox/zynqmp-ipi-mailbox.c
304
static int zynqmp_ipi_send_data(struct mbox_chan *chan, void *data)
drivers/mailbox/zynqmp-ipi-mailbox.c
306
struct device *dev = chan->mbox->dev;
drivers/mailbox/zynqmp-ipi-mailbox.c
308
struct zynqmp_ipi_mchan *mchan = chan->con_priv;
drivers/mailbox/zynqmp-ipi-mailbox.c
355
static int zynqmp_ipi_startup(struct mbox_chan *chan)
drivers/mailbox/zynqmp-ipi-mailbox.c
357
struct device *dev = chan->mbox->dev;
drivers/mailbox/zynqmp-ipi-mailbox.c
359
struct zynqmp_ipi_mchan *mchan = chan->con_priv;
drivers/mailbox/zynqmp-ipi-mailbox.c
397
static void zynqmp_ipi_shutdown(struct mbox_chan *chan)
drivers/mailbox/zynqmp-ipi-mailbox.c
399
struct device *dev = chan->mbox->dev;
drivers/mailbox/zynqmp-ipi-mailbox.c
401
struct zynqmp_ipi_mchan *mchan = chan->con_priv;
drivers/mailbox/zynqmp-ipi-mailbox.c
445
struct mbox_chan *chan;
drivers/mailbox/zynqmp-ipi-mailbox.c
456
chan = &mbox->chans[chan_type];
drivers/mailbox/zynqmp-ipi-mailbox.c
457
return chan;
drivers/media/dvb-frontends/af9013.c
1236
static int af9013_select(struct i2c_mux_core *muxc, u32 chan)
drivers/media/dvb-frontends/af9013.c
1257
static int af9013_deselect(struct i2c_mux_core *muxc, u32 chan)
drivers/media/dvb-frontends/dib3000mc.c
586
struct dtv_frontend_properties *chan = &demod->dtv_property_cache;
drivers/media/dvb-frontends/dib3000mc.c
592
schan = *chan;
drivers/media/dvb-frontends/lgdt3306a.c
2156
static int lgdt3306a_select(struct i2c_mux_core *muxc, u32 chan)
drivers/media/dvb-frontends/lgdt3306a.c
2164
static int lgdt3306a_deselect(struct i2c_mux_core *muxc, u32 chan)
drivers/media/dvb-frontends/m88ds3103.c
1914
static int m88ds3103_select(struct i2c_mux_core *muxc, u32 chan)
drivers/media/dvb-frontends/si2168.c
600
static int si2168_select(struct i2c_mux_core *muxc, u32 chan)
drivers/media/dvb-frontends/si2168.c
618
static int si2168_deselect(struct i2c_mux_core *muxc, u32 chan)
drivers/media/i2c/max9286.c
340
static int max9286_i2c_mux_select(struct i2c_mux_core *muxc, u32 chan)
drivers/media/i2c/max9286.c
348
if (priv->mux_channel == chan)
drivers/media/i2c/max9286.c
351
priv->mux_channel = chan;
drivers/media/i2c/max9286.c
353
max9286_i2c_mux_configure(priv, MAX9286_FWDCCEN(chan) |
drivers/media/i2c/max9286.c
354
MAX9286_REVCCEN(chan));
drivers/media/i2c/max96714.c
656
static int max96714_i2c_mux_select(struct i2c_mux_core *mux, u32 chan)
drivers/media/i2c/max96717.c
147
static int max96717_i2c_mux_select(struct i2c_mux_core *mux, u32 chan)
drivers/media/i2c/saa7110.c
120
static int saa7110_selmux(struct v4l2_subdev *sd, int chan)
drivers/media/i2c/saa7110.c
152
const unsigned char *ptr = modes[chan];
drivers/media/i2c/saa7110.c
162
decoder->input = chan;
drivers/media/pci/cx25821/cx25821-video.c
131
struct cx25821_channel *chan = q->drv_priv;
drivers/media/pci/cx25821/cx25821-video.c
132
unsigned size = (chan->fmt->depth * chan->width * chan->height) >> 3;
drivers/media/pci/cx25821/cx25821-video.c
145
struct cx25821_channel *chan = vb->vb2_queue->drv_priv;
drivers/media/pci/cx25821/cx25821-video.c
146
struct cx25821_dev *dev = chan->dev;
drivers/media/pci/cx25821/cx25821-video.c
154
if (chan->pixel_formats == PIXEL_FRMT_411)
drivers/media/pci/cx25821/cx25821-video.c
155
buf->bpl = (chan->fmt->depth * chan->width) >> 3;
drivers/media/pci/cx25821/cx25821-video.c
157
buf->bpl = (chan->fmt->depth >> 3) * chan->width;
drivers/media/pci/cx25821/cx25821-video.c
159
if (vb2_plane_size(vb, 0) < chan->height * buf->bpl)
drivers/media/pci/cx25821/cx25821-video.c
161
vb2_set_plane_payload(vb, 0, chan->height * buf->bpl);
drivers/media/pci/cx25821/cx25821-video.c
162
buf->vb.field = chan->field;
drivers/media/pci/cx25821/cx25821-video.c
164
if (chan->pixel_formats == PIXEL_FRMT_411) {
drivers/media/pci/cx25821/cx25821-video.c
169
if (chan->use_cif_resolution) {
drivers/media/pci/cx25821/cx25821-video.c
173
bpl_local = chan->cif_width << 1;
drivers/media/pci/cx25821/cx25821-video.c
177
switch (chan->field) {
drivers/media/pci/cx25821/cx25821-video.c
181
buf->bpl, 0, chan->height);
drivers/media/pci/cx25821/cx25821-video.c
186
buf->bpl, 0, chan->height);
drivers/media/pci/cx25821/cx25821-video.c
196
chan->height >> 1);
drivers/media/pci/cx25821/cx25821-video.c
201
0, buf->bpl * (chan->height >> 1),
drivers/media/pci/cx25821/cx25821-video.c
202
buf->bpl, 0, chan->height >> 1);
drivers/media/pci/cx25821/cx25821-video.c
207
buf->bpl * (chan->height >> 1), 0,
drivers/media/pci/cx25821/cx25821-video.c
208
buf->bpl, 0, chan->height >> 1);
drivers/media/pci/cx25821/cx25821-video.c
217
buf, buf->vb.vb2_buf.index, chan->width, chan->height,
drivers/media/pci/cx25821/cx25821-video.c
218
chan->fmt->depth, chan->fmt->fourcc,
drivers/media/pci/cx25821/cx25821-video.c
229
struct cx25821_channel *chan = vb->vb2_queue->drv_priv;
drivers/media/pci/cx25821/cx25821-video.c
230
struct cx25821_dev *dev = chan->dev;
drivers/media/pci/cx25821/cx25821-video.c
240
struct cx25821_channel *chan = vb->vb2_queue->drv_priv;
drivers/media/pci/cx25821/cx25821-video.c
241
struct cx25821_dev *dev = chan->dev;
drivers/media/pci/cx25821/cx25821-video.c
243
struct cx25821_dmaqueue *q = &dev->channels[chan->id].dma_vidq;
drivers/media/pci/cx25821/cx25821-video.c
263
struct cx25821_channel *chan = q->drv_priv;
drivers/media/pci/cx25821/cx25821-video.c
264
struct cx25821_dev *dev = chan->dev;
drivers/media/pci/cx25821/cx25821-video.c
265
struct cx25821_dmaqueue *dmaq = &dev->channels[chan->id].dma_vidq;
drivers/media/pci/cx25821/cx25821-video.c
270
cx25821_start_video_dma(dev, dmaq, buf, chan->sram_channels);
drivers/media/pci/cx25821/cx25821-video.c
276
struct cx25821_channel *chan = q->drv_priv;
drivers/media/pci/cx25821/cx25821-video.c
277
struct cx25821_dev *dev = chan->dev;
drivers/media/pci/cx25821/cx25821-video.c
278
struct cx25821_dmaqueue *dmaq = &dev->channels[chan->id].dma_vidq;
drivers/media/pci/cx25821/cx25821-video.c
281
cx_write(chan->sram_channels->dma_ctl, 0); /* FIFO and RISC disable */
drivers/media/pci/cx25821/cx25821-video.c
318
struct cx25821_channel *chan = video_drvdata(file);
drivers/media/pci/cx25821/cx25821-video.c
320
f->fmt.pix.width = chan->width;
drivers/media/pci/cx25821/cx25821-video.c
321
f->fmt.pix.height = chan->height;
drivers/media/pci/cx25821/cx25821-video.c
322
f->fmt.pix.field = chan->field;
drivers/media/pci/cx25821/cx25821-video.c
323
f->fmt.pix.pixelformat = chan->fmt->fourcc;
drivers/media/pci/cx25821/cx25821-video.c
324
f->fmt.pix.bytesperline = (chan->width * chan->fmt->depth) >> 3;
drivers/media/pci/cx25821/cx25821-video.c
325
f->fmt.pix.sizeimage = chan->height * f->fmt.pix.bytesperline;
drivers/media/pci/cx25821/cx25821-video.c
334
struct cx25821_channel *chan = video_drvdata(file);
drivers/media/pci/cx25821/cx25821-video.c
335
struct cx25821_dev *dev = chan->dev;
drivers/media/pci/cx25821/cx25821-video.c
372
struct cx25821_channel *chan = video_drvdata(file);
drivers/media/pci/cx25821/cx25821-video.c
373
struct cx25821_dev *dev = chan->dev;
drivers/media/pci/cx25821/cx25821-video.c
382
chan->fmt = cx25821_format_by_fourcc(f->fmt.pix.pixelformat);
drivers/media/pci/cx25821/cx25821-video.c
383
chan->field = f->fmt.pix.field;
drivers/media/pci/cx25821/cx25821-video.c
384
chan->width = f->fmt.pix.width;
drivers/media/pci/cx25821/cx25821-video.c
385
chan->height = f->fmt.pix.height;
drivers/media/pci/cx25821/cx25821-video.c
395
if (chan->width == 320 || chan->width == 352)
drivers/media/pci/cx25821/cx25821-video.c
396
chan->use_cif_resolution = 1;
drivers/media/pci/cx25821/cx25821-video.c
398
chan->use_cif_resolution = 0;
drivers/media/pci/cx25821/cx25821-video.c
400
chan->cif_width = chan->width;
drivers/media/pci/cx25821/cx25821-video.c
401
medusa_set_resolution(dev, chan->width, SRAM_CH00);
drivers/media/pci/cx25821/cx25821-video.c
407
struct cx25821_channel *chan = video_drvdata(file);
drivers/media/pci/cx25821/cx25821-video.c
408
struct cx25821_dev *dev = chan->dev;
drivers/media/pci/cx25821/cx25821-video.c
409
const struct sram_channel *sram_ch = chan->sram_channels;
drivers/media/pci/cx25821/cx25821-video.c
422
struct cx25821_channel *chan = video_drvdata(file);
drivers/media/pci/cx25821/cx25821-video.c
423
struct cx25821_dev *dev = chan->dev;
drivers/media/pci/cx25821/cx25821-video.c
436
struct cx25821_channel *chan = video_drvdata(file);
drivers/media/pci/cx25821/cx25821-video.c
438
*tvnorms = chan->dev->tvnorm;
drivers/media/pci/cx25821/cx25821-video.c
445
struct cx25821_channel *chan = video_drvdata(file);
drivers/media/pci/cx25821/cx25821-video.c
446
struct cx25821_dev *dev = chan->dev;
drivers/media/pci/cx25821/cx25821-video.c
452
chan->width = 720;
drivers/media/pci/cx25821/cx25821-video.c
453
chan->height = (dev->tvnorm & V4L2_STD_625_50) ? 576 : 480;
drivers/media/pci/cx25821/cx25821-video.c
485
struct cx25821_channel *chan =
drivers/media/pci/cx25821/cx25821-video.c
487
struct cx25821_dev *dev = chan->dev;
drivers/media/pci/cx25821/cx25821-video.c
491
medusa_set_brightness(dev, ctrl->val, chan->id);
drivers/media/pci/cx25821/cx25821-video.c
494
medusa_set_hue(dev, ctrl->val, chan->id);
drivers/media/pci/cx25821/cx25821-video.c
497
medusa_set_contrast(dev, ctrl->val, chan->id);
drivers/media/pci/cx25821/cx25821-video.c
500
medusa_set_saturation(dev, ctrl->val, chan->id);
drivers/media/pci/cx25821/cx25821-video.c
534
struct cx25821_channel *chan = video_drvdata(file);
drivers/media/pci/cx25821/cx25821-video.c
535
struct cx25821_dev *dev = chan->dev;
drivers/media/pci/cx25821/cx25821-video.c
553
struct cx25821_channel *chan = video_drvdata(file);
drivers/media/pci/cx25821/cx25821-video.c
561
chan->fmt = cx25821_format_by_fourcc(f->fmt.pix.pixelformat);
drivers/media/pci/cx25821/cx25821-video.c
562
chan->field = f->fmt.pix.field;
drivers/media/pci/cx25821/cx25821-video.c
563
chan->width = f->fmt.pix.width;
drivers/media/pci/cx25821/cx25821-video.c
564
chan->height = f->fmt.pix.height;
drivers/media/pci/cx25821/cx25821-video.c
566
chan->pixel_formats = PIXEL_FRMT_411;
drivers/media/pci/cx25821/cx25821-video.c
568
chan->pixel_formats = PIXEL_FRMT_422;
drivers/media/pci/cx25821/cx25821-video.c
676
struct cx25821_channel *chan = &dev->channels[i];
drivers/media/pci/cx25821/cx25821-video.c
677
struct video_device *vdev = &chan->vdev;
drivers/media/pci/cx25821/cx25821-video.c
678
struct v4l2_ctrl_handler *hdl = &chan->hdl;
drivers/media/pci/cx25821/cx25821-video.c
703
chan->out = &dev->vid_out_data[i - SRAM_CH09];
drivers/media/pci/cx25821/cx25821-video.c
704
chan->out->chan = chan;
drivers/media/pci/cx25821/cx25821-video.c
707
chan->sram_channels = &cx25821_sram_channels[i];
drivers/media/pci/cx25821/cx25821-video.c
708
chan->width = 720;
drivers/media/pci/cx25821/cx25821-video.c
709
chan->field = V4L2_FIELD_INTERLACED;
drivers/media/pci/cx25821/cx25821-video.c
711
chan->height = 576;
drivers/media/pci/cx25821/cx25821-video.c
713
chan->height = 480;
drivers/media/pci/cx25821/cx25821-video.c
715
if (chan->pixel_formats == PIXEL_FRMT_411)
drivers/media/pci/cx25821/cx25821-video.c
716
chan->fmt = cx25821_format_by_fourcc(V4L2_PIX_FMT_Y41P);
drivers/media/pci/cx25821/cx25821-video.c
718
chan->fmt = cx25821_format_by_fourcc(V4L2_PIX_FMT_YUYV);
drivers/media/pci/cx25821/cx25821-video.c
720
cx_write(chan->sram_channels->int_stat, 0xffffffff);
drivers/media/pci/cx25821/cx25821-video.c
722
INIT_LIST_HEAD(&chan->dma_vidq.active);
drivers/media/pci/cx25821/cx25821-video.c
724
q = &chan->vidq;
drivers/media/pci/cx25821/cx25821-video.c
732
q->drv_priv = chan;
drivers/media/pci/cx25821/cx25821-video.c
756
video_set_drvdata(vdev, chan);
drivers/media/pci/cx25821/cx25821.h
166
struct cx25821_channel *chan;
drivers/media/pci/hws/hws_video.c
514
void hws_enable_video_capture(struct hws_pcie_dev *hws, unsigned int chan,
drivers/media/pci/hws/hws_video.c
519
if (!hws || hws->pci_lost || chan >= hws->max_channels)
drivers/media/pci/hws/hws_video.c
523
status = on ? (status | BIT(chan)) : (status & ~BIT(chan));
drivers/media/pci/hws/hws_video.c
527
WRITE_ONCE(hws->video[chan].cap_active, on);
drivers/media/pci/hws/hws_video.c
530
on ? "ON" : "OFF", chan, status);
drivers/media/pci/hws/hws_video.h
10
unsigned int chan,
drivers/media/pci/mgb4/mgb4_core.h
37
struct dma_chan *chan;
drivers/media/pci/mgb4/mgb4_dma.c
101
ret = PTR_ERR(mgbdev->h2c_chan[i].chan);
drivers/media/pci/mgb4/mgb4_dma.c
102
mgbdev->h2c_chan[i].chan = NULL;
drivers/media/pci/mgb4/mgb4_dma.c
116
if (mgbdev->c2h_chan[i].chan)
drivers/media/pci/mgb4/mgb4_dma.c
117
dma_release_channel(mgbdev->c2h_chan[i].chan);
drivers/media/pci/mgb4/mgb4_dma.c
120
if (mgbdev->h2c_chan[i].chan)
drivers/media/pci/mgb4/mgb4_dma.c
121
dma_release_channel(mgbdev->h2c_chan[i].chan);
drivers/media/pci/mgb4/mgb4_dma.c
17
struct mgb4_dma_channel *chan = param;
drivers/media/pci/mgb4/mgb4_dma.c
19
complete(&chan->req_compl);
drivers/media/pci/mgb4/mgb4_dma.c
26
struct mgb4_dma_channel *chan;
drivers/media/pci/mgb4/mgb4_dma.c
37
chan = &mgbdev->h2c_chan[channel];
drivers/media/pci/mgb4/mgb4_dma.c
42
chan = &mgbdev->c2h_chan[channel];
drivers/media/pci/mgb4/mgb4_dma.c
45
ret = dmaengine_slave_config(chan->chan, &cfg);
drivers/media/pci/mgb4/mgb4_dma.c
51
tx = dmaengine_prep_slave_sg(chan->chan, sgt->sgl, sgt->nents,
drivers/media/pci/mgb4/mgb4_dma.c
59
tx->callback_param = chan;
drivers/media/pci/mgb4/mgb4_dma.c
67
dma_async_issue_pending(chan->chan);
drivers/media/pci/mgb4/mgb4_dma.c
69
if (!wait_for_completion_timeout(&chan->req_compl,
drivers/media/pci/mgb4/mgb4_dma.c
72
dmaengine_terminate_sync(chan->chan);
drivers/media/pci/mgb4/mgb4_dma.c
87
mgbdev->c2h_chan[i].chan = dma_request_chan(&pdev->dev, name);
drivers/media/pci/mgb4/mgb4_dma.c
88
if (IS_ERR(mgbdev->c2h_chan[i].chan)) {
drivers/media/pci/mgb4/mgb4_dma.c
90
ret = PTR_ERR(mgbdev->c2h_chan[i].chan);
drivers/media/pci/mgb4/mgb4_dma.c
91
mgbdev->c2h_chan[i].chan = NULL;
drivers/media/pci/mgb4/mgb4_dma.c
98
mgbdev->h2c_chan[i].chan = dma_request_chan(&pdev->dev, name);
drivers/media/pci/mgb4/mgb4_dma.c
99
if (IS_ERR(mgbdev->h2c_chan[i].chan)) {
drivers/media/pci/mgb4/mgb4_trigger.c
30
struct iio_chan_spec const *chan, int *val,
drivers/media/pci/ngene/ngene-cards.c
108
static struct i2c_adapter *i2c_adapter_from_chan(struct ngene_channel *chan)
drivers/media/pci/ngene/ngene-cards.c
111
if (chan->number < 2)
drivers/media/pci/ngene/ngene-cards.c
112
return &chan->dev->channel[0].i2c_adapter;
drivers/media/pci/ngene/ngene-cards.c
114
return &chan->dev->channel[1].i2c_adapter;
drivers/media/pci/ngene/ngene-cards.c
117
static int tuner_attach_stv6110(struct ngene_channel *chan)
drivers/media/pci/ngene/ngene-cards.c
119
struct device *pdev = &chan->dev->pci_dev->dev;
drivers/media/pci/ngene/ngene-cards.c
120
struct i2c_adapter *i2c = i2c_adapter_from_chan(chan);
drivers/media/pci/ngene/ngene-cards.c
122
chan->dev->card_info->fe_config[chan->number];
drivers/media/pci/ngene/ngene-cards.c
124
chan->dev->card_info->tuner_config[chan->number];
drivers/media/pci/ngene/ngene-cards.c
127
ctl = dvb_attach(stv6110x_attach, chan->fe, tunerconf, i2c);
drivers/media/pci/ngene/ngene-cards.c
148
static int tuner_attach_stv6111(struct ngene_channel *chan)
drivers/media/pci/ngene/ngene-cards.c
150
struct device *pdev = &chan->dev->pci_dev->dev;
drivers/media/pci/ngene/ngene-cards.c
151
struct i2c_adapter *i2c = i2c_adapter_from_chan(chan);
drivers/media/pci/ngene/ngene-cards.c
153
u8 adr = 4 + ((chan->number & 1) ? 0x63 : 0x60);
drivers/media/pci/ngene/ngene-cards.c
155
fe = dvb_attach(stv6111_attach, chan->fe, i2c, adr);
drivers/media/pci/ngene/ngene-cards.c
157
fe = dvb_attach(stv6111_attach, chan->fe, i2c, adr & ~4);
drivers/media/pci/ngene/ngene-cards.c
168
struct ngene_channel *chan = fe->sec_priv;
drivers/media/pci/ngene/ngene-cards.c
172
down(&chan->dev->pll_mutex);
drivers/media/pci/ngene/ngene-cards.c
173
status = chan->gate_ctrl(fe, 1);
drivers/media/pci/ngene/ngene-cards.c
175
status = chan->gate_ctrl(fe, 0);
drivers/media/pci/ngene/ngene-cards.c
176
up(&chan->dev->pll_mutex);
drivers/media/pci/ngene/ngene-cards.c
181
static int tuner_attach_tda18271(struct ngene_channel *chan)
drivers/media/pci/ngene/ngene-cards.c
183
struct device *pdev = &chan->dev->pci_dev->dev;
drivers/media/pci/ngene/ngene-cards.c
184
struct i2c_adapter *i2c = i2c_adapter_from_chan(chan);
drivers/media/pci/ngene/ngene-cards.c
187
if (chan->fe->ops.i2c_gate_ctrl)
drivers/media/pci/ngene/ngene-cards.c
188
chan->fe->ops.i2c_gate_ctrl(chan->fe, 1);
drivers/media/pci/ngene/ngene-cards.c
189
fe = dvb_attach(tda18271c2dd_attach, chan->fe, i2c, 0x60);
drivers/media/pci/ngene/ngene-cards.c
190
if (chan->fe->ops.i2c_gate_ctrl)
drivers/media/pci/ngene/ngene-cards.c
191
chan->fe->ops.i2c_gate_ctrl(chan->fe, 0);
drivers/media/pci/ngene/ngene-cards.c
200
static int tuner_tda18212_ping(struct ngene_channel *chan,
drivers/media/pci/ngene/ngene-cards.c
204
struct device *pdev = &chan->dev->pci_dev->dev;
drivers/media/pci/ngene/ngene-cards.c
209
if (chan->fe->ops.i2c_gate_ctrl)
drivers/media/pci/ngene/ngene-cards.c
210
chan->fe->ops.i2c_gate_ctrl(chan->fe, 1);
drivers/media/pci/ngene/ngene-cards.c
217
if (chan->fe->ops.i2c_gate_ctrl)
drivers/media/pci/ngene/ngene-cards.c
218
chan->fe->ops.i2c_gate_ctrl(chan->fe, 0);
drivers/media/pci/ngene/ngene-cards.c
223
static int tuner_attach_tda18212(struct ngene_channel *chan, u32 dmdtype)
drivers/media/pci/ngene/ngene-cards.c
225
struct device *pdev = &chan->dev->pci_dev->dev;
drivers/media/pci/ngene/ngene-cards.c
226
struct i2c_adapter *i2c = i2c_adapter_from_chan(chan);
drivers/media/pci/ngene/ngene-cards.c
229
.fe = chan->fe,
drivers/media/pci/ngene/ngene-cards.c
238
u8 addr = (chan->number & 1) ? 0x63 : 0x60;
drivers/media/pci/ngene/ngene-cards.c
246
tuner_tda18212_ping(chan, i2c, addr);
drivers/media/pci/ngene/ngene-cards.c
253
chan->i2c_client[0] = client;
drivers/media/pci/ngene/ngene-cards.c
254
chan->i2c_client_fe = 1;
drivers/media/pci/ngene/ngene-cards.c
262
static int tuner_attach_probe(struct ngene_channel *chan)
drivers/media/pci/ngene/ngene-cards.c
264
switch (chan->demod_type) {
drivers/media/pci/ngene/ngene-cards.c
266
return tuner_attach_stv6110(chan);
drivers/media/pci/ngene/ngene-cards.c
268
return tuner_attach_tda18271(chan);
drivers/media/pci/ngene/ngene-cards.c
274
return tuner_attach_tda18212(chan, chan->demod_type);
drivers/media/pci/ngene/ngene-cards.c
276
return tuner_attach_stv6111(chan);
drivers/media/pci/ngene/ngene-cards.c
282
static int demod_attach_stv0900(struct ngene_channel *chan)
drivers/media/pci/ngene/ngene-cards.c
284
struct device *pdev = &chan->dev->pci_dev->dev;
drivers/media/pci/ngene/ngene-cards.c
285
struct i2c_adapter *i2c = i2c_adapter_from_chan(chan);
drivers/media/pci/ngene/ngene-cards.c
287
chan->dev->card_info->fe_config[chan->number];
drivers/media/pci/ngene/ngene-cards.c
289
chan->fe = dvb_attach(stv090x_attach, feconf, i2c,
drivers/media/pci/ngene/ngene-cards.c
290
(chan->number & 1) == 0 ? STV090x_DEMODULATOR_0
drivers/media/pci/ngene/ngene-cards.c
292
if (chan->fe == NULL) {
drivers/media/pci/ngene/ngene-cards.c
299
chan->fe->analog_demod_priv = chan;
drivers/media/pci/ngene/ngene-cards.c
301
if (!dvb_attach(lnbh24_attach, chan->fe, i2c, 0,
drivers/media/pci/ngene/ngene-cards.c
302
0, chan->dev->card_info->lnb[chan->number])) {
drivers/media/pci/ngene/ngene-cards.c
304
dvb_frontend_detach(chan->fe);
drivers/media/pci/ngene/ngene-cards.c
305
chan->fe = NULL;
drivers/media/pci/ngene/ngene-cards.c
325
static int demod_attach_stv0910(struct ngene_channel *chan,
drivers/media/pci/ngene/ngene-cards.c
328
struct device *pdev = &chan->dev->pci_dev->dev;
drivers/media/pci/ngene/ngene-cards.c
332
chan->fe = dvb_attach(stv0910_attach, i2c, &cfg, (chan->number & 1));
drivers/media/pci/ngene/ngene-cards.c
333
if (!chan->fe) {
drivers/media/pci/ngene/ngene-cards.c
335
chan->fe = dvb_attach(stv0910_attach, i2c,
drivers/media/pci/ngene/ngene-cards.c
336
&cfg, (chan->number & 1));
drivers/media/pci/ngene/ngene-cards.c
338
if (!chan->fe) {
drivers/media/pci/ngene/ngene-cards.c
347
lnbcfg.i2c_address = (((chan->number & 1) ? 0x0d : 0x0c) << 1);
drivers/media/pci/ngene/ngene-cards.c
348
if (!dvb_attach(lnbh25_attach, chan->fe, &lnbcfg, i2c)) {
drivers/media/pci/ngene/ngene-cards.c
349
lnbcfg.i2c_address = (((chan->number & 1) ? 0x09 : 0x08) << 1);
drivers/media/pci/ngene/ngene-cards.c
350
if (!dvb_attach(lnbh25_attach, chan->fe, &lnbcfg, i2c)) {
drivers/media/pci/ngene/ngene-cards.c
352
dvb_frontend_detach(chan->fe);
drivers/media/pci/ngene/ngene-cards.c
353
chan->fe = NULL;
drivers/media/pci/ngene/ngene-cards.c
379
static int demod_attach_stv0367(struct ngene_channel *chan,
drivers/media/pci/ngene/ngene-cards.c
382
struct device *pdev = &chan->dev->pci_dev->dev;
drivers/media/pci/ngene/ngene-cards.c
384
chan->fe = dvb_attach(stv0367ddb_attach,
drivers/media/pci/ngene/ngene-cards.c
385
&ddb_stv0367_config[(chan->number & 1)], i2c);
drivers/media/pci/ngene/ngene-cards.c
387
if (!chan->fe) {
drivers/media/pci/ngene/ngene-cards.c
392
chan->fe->sec_priv = chan;
drivers/media/pci/ngene/ngene-cards.c
393
chan->gate_ctrl = chan->fe->ops.i2c_gate_ctrl;
drivers/media/pci/ngene/ngene-cards.c
394
chan->fe->ops.i2c_gate_ctrl = drxk_gate_ctrl;
drivers/media/pci/ngene/ngene-cards.c
398
static int demod_attach_cxd28xx(struct ngene_channel *chan,
drivers/media/pci/ngene/ngene-cards.c
401
struct device *pdev = &chan->dev->pci_dev->dev;
drivers/media/pci/ngene/ngene-cards.c
405
cfg.i2c_addr = ((chan->number & 1) ? 0x6d : 0x6c) << 1;
drivers/media/pci/ngene/ngene-cards.c
413
chan->fe = dvb_attach(cxd2841er_attach_t_c, &cfg, i2c);
drivers/media/pci/ngene/ngene-cards.c
415
if (!chan->fe) {
drivers/media/pci/ngene/ngene-cards.c
420
chan->fe->sec_priv = chan;
drivers/media/pci/ngene/ngene-cards.c
421
chan->gate_ctrl = chan->fe->ops.i2c_gate_ctrl;
drivers/media/pci/ngene/ngene-cards.c
422
chan->fe->ops.i2c_gate_ctrl = drxk_gate_ctrl;
drivers/media/pci/ngene/ngene-cards.c
428
struct ngene_channel *chan = fe->analog_demod_priv;
drivers/media/pci/ngene/ngene-cards.c
431
down(&chan->dev->pll_mutex);
drivers/media/pci/ngene/ngene-cards.c
433
up(&chan->dev->pll_mutex);
drivers/media/pci/ngene/ngene-cards.c
487
static int demod_attach_drxk(struct ngene_channel *chan,
drivers/media/pci/ngene/ngene-cards.c
490
struct device *pdev = &chan->dev->pci_dev->dev;
drivers/media/pci/ngene/ngene-cards.c
496
config.adr = 0x29 + (chan->number ^ 2);
drivers/media/pci/ngene/ngene-cards.c
498
chan->fe = dvb_attach(drxk_attach, &config, i2c);
drivers/media/pci/ngene/ngene-cards.c
499
if (!chan->fe) {
drivers/media/pci/ngene/ngene-cards.c
503
chan->fe->sec_priv = chan;
drivers/media/pci/ngene/ngene-cards.c
504
chan->gate_ctrl = chan->fe->ops.i2c_gate_ctrl;
drivers/media/pci/ngene/ngene-cards.c
505
chan->fe->ops.i2c_gate_ctrl = drxk_gate_ctrl;
drivers/media/pci/ngene/ngene-cards.c
522
static int init_xo2(struct ngene_channel *chan, struct i2c_adapter *i2c)
drivers/media/pci/ngene/ngene-cards.c
524
struct device *pdev = &chan->dev->pci_dev->dev;
drivers/media/pci/ngene/ngene-cards.c
534
dev_info(pdev, "Invalid XO2 on channel %d\n", chan->number);
drivers/media/pci/ngene/ngene-cards.c
594
static int cineS2_probe(struct ngene_channel *chan)
drivers/media/pci/ngene/ngene-cards.c
596
struct device *pdev = &chan->dev->pci_dev->dev;
drivers/media/pci/ngene/ngene-cards.c
597
struct i2c_adapter *i2c = i2c_adapter_from_chan(chan);
drivers/media/pci/ngene/ngene-cards.c
608
chan->number, xo2_type, xo2_id);
drivers/media/pci/ngene/ngene-cards.c
612
if (chan->number & 1)
drivers/media/pci/ngene/ngene-cards.c
615
chan->number);
drivers/media/pci/ngene/ngene-cards.c
617
init_xo2(chan, i2c);
drivers/media/pci/ngene/ngene-cards.c
627
xo2names[xo2_id], chan->number);
drivers/media/pci/ngene/ngene-cards.c
628
chan->demod_type = xo2_demodtype;
drivers/media/pci/ngene/ngene-cards.c
632
demod_attach_cxd28xx(chan, i2c, sony_osc24);
drivers/media/pci/ngene/ngene-cards.c
636
xo2names[xo2_id], chan->number);
drivers/media/pci/ngene/ngene-cards.c
637
chan->demod_type = xo2_demodtype;
drivers/media/pci/ngene/ngene-cards.c
638
demod_attach_stv0910(chan, i2c);
drivers/media/pci/ngene/ngene-cards.c
643
chan->number);
drivers/media/pci/ngene/ngene-cards.c
654
} else if (port_has_stv0900(i2c, chan->number)) {
drivers/media/pci/ngene/ngene-cards.c
655
chan->demod_type = DEMOD_TYPE_STV090X;
drivers/media/pci/ngene/ngene-cards.c
656
fe_conf = chan->dev->card_info->fe_config[chan->number];
drivers/media/pci/ngene/ngene-cards.c
658
rc = demod_attach_stv0900(chan);
drivers/media/pci/ngene/ngene-cards.c
659
if (rc < 0 || chan->number < 2)
drivers/media/pci/ngene/ngene-cards.c
666
switch (chan->number) {
drivers/media/pci/ngene/ngene-cards.c
683
} else if (port_has_drxk(i2c, chan->number^2)) {
drivers/media/pci/ngene/ngene-cards.c
684
chan->demod_type = DEMOD_TYPE_DRXK;
drivers/media/pci/ngene/ngene-cards.c
685
demod_attach_drxk(chan, i2c);
drivers/media/pci/ngene/ngene-cards.c
687
chan->demod_type = DEMOD_TYPE_STV0367;
drivers/media/pci/ngene/ngene-cards.c
688
dev_info(pdev, "STV0367 on channel %d\n", chan->number);
drivers/media/pci/ngene/ngene-cards.c
689
demod_attach_stv0367(chan, i2c);
drivers/media/pci/ngene/ngene-cards.c
691
dev_info(pdev, "No demod found on chan %d\n", chan->number);
drivers/media/pci/ngene/ngene-cards.c
711
static int demod_attach_lg330x(struct ngene_channel *chan)
drivers/media/pci/ngene/ngene-cards.c
713
struct device *pdev = &chan->dev->pci_dev->dev;
drivers/media/pci/ngene/ngene-cards.c
715
chan->fe = dvb_attach(lgdt330x_attach, &aver_m780,
drivers/media/pci/ngene/ngene-cards.c
716
0xb2 >> 1, &chan->i2c_adapter);
drivers/media/pci/ngene/ngene-cards.c
717
if (chan->fe == NULL) {
drivers/media/pci/ngene/ngene-cards.c
722
dvb_attach(mt2131_attach, chan->fe, &chan->i2c_adapter,
drivers/media/pci/ngene/ngene-cards.c
725
return (chan->fe) ? 0 : -ENODEV;
drivers/media/pci/ngene/ngene-cards.c
728
static int demod_attach_drxd(struct ngene_channel *chan)
drivers/media/pci/ngene/ngene-cards.c
730
struct device *pdev = &chan->dev->pci_dev->dev;
drivers/media/pci/ngene/ngene-cards.c
733
feconf = chan->dev->card_info->fe_config[chan->number];
drivers/media/pci/ngene/ngene-cards.c
735
chan->fe = dvb_attach(drxd_attach, feconf, chan,
drivers/media/pci/ngene/ngene-cards.c
736
&chan->i2c_adapter, &chan->dev->pci_dev->dev);
drivers/media/pci/ngene/ngene-cards.c
737
if (!chan->fe) {
drivers/media/pci/ngene/ngene-cards.c
744
static int tuner_attach_dtt7520x(struct ngene_channel *chan)
drivers/media/pci/ngene/ngene-cards.c
746
struct device *pdev = &chan->dev->pci_dev->dev;
drivers/media/pci/ngene/ngene-cards.c
749
feconf = chan->dev->card_info->fe_config[chan->number];
drivers/media/pci/ngene/ngene-cards.c
751
if (!dvb_attach(dvb_pll_attach, chan->fe, feconf->pll_address,
drivers/media/pci/ngene/ngene-cards.c
752
&chan->i2c_adapter,
drivers/media/pci/ngene/ngene-cards.c
946
struct ngene_channel *chan = priv;
drivers/media/pci/ngene/ngene-cards.c
947
struct device *pdev = &chan->dev->pci_dev->dev;
drivers/media/pci/ngene/ngene-cards.c
948
struct i2c_adapter *adap = &chan->i2c_adapter;
drivers/media/pci/ngene/ngene-cards.c
955
eeprom_write_ushort(adap, 0x1000 + chan->number, data);
drivers/media/pci/ngene/ngene-cards.c
957
if (eeprom_read_ushort(adap, 0x1000 + chan->number, &data))
drivers/media/pci/ngene/ngene-core.c
101
if (chan->HWState == HWSTATE_RUN) {
drivers/media/pci/ngene/ngene-core.c
110
chan->HWState = HWSTATE_RUN;
drivers/media/pci/ngene/ngene-core.c
114
if (chan->HWState == HWSTATE_RUN) {
drivers/media/pci/ngene/ngene-core.c
119
if (chan->AudioDTOUpdated) {
drivers/media/pci/ngene/ngene-core.c
121
chan->AudioDTOValue);
drivers/media/pci/ngene/ngene-core.c
123
chan->AudioDTOValue;
drivers/media/pci/ngene/ngene-core.c
124
chan->AudioDTOUpdated = 0;
drivers/media/pci/ngene/ngene-core.c
127
if (chan->HWState == HWSTATE_RUN) {
drivers/media/pci/ngene/ngene-core.c
128
u32 Flags = chan->DataFormatFlags;
drivers/media/pci/ngene/ngene-core.c
129
IBufferExchange *exch1 = chan->pBufferExchange;
drivers/media/pci/ngene/ngene-core.c
130
IBufferExchange *exch2 = chan->pBufferExchange2;
drivers/media/pci/ngene/ngene-core.c
135
spin_unlock_irq(&chan->state_lock);
drivers/media/pci/ngene/ngene-core.c
137
exch1(chan, Cur->Buffer1,
drivers/media/pci/ngene/ngene-core.c
138
chan->Capture1Length,
drivers/media/pci/ngene/ngene-core.c
1390
static void release_channel(struct ngene_channel *chan)
drivers/media/pci/ngene/ngene-core.c
1392
struct dvb_demux *dvbdemux = &chan->demux;
drivers/media/pci/ngene/ngene-core.c
1393
struct ngene *dev = chan->dev;
drivers/media/pci/ngene/ngene-core.c
1395
if (chan->running)
drivers/media/pci/ngene/ngene-core.c
1396
set_transfer(chan, 0);
drivers/media/pci/ngene/ngene-core.c
1398
cancel_work_sync(&chan->demux_bh_work);
drivers/media/pci/ngene/ngene-core.c
1400
if (chan->ci_dev) {
drivers/media/pci/ngene/ngene-core.c
1401
dvb_unregister_device(chan->ci_dev);
drivers/media/pci/ngene/ngene-core.c
1402
chan->ci_dev = NULL;
drivers/media/pci/ngene/ngene-core.c
1405
if (chan->fe2)
drivers/media/pci/ngene/ngene-core.c
1406
dvb_unregister_frontend(chan->fe2);
drivers/media/pci/ngene/ngene-core.c
1408
if (chan->fe) {
drivers/media/pci/ngene/ngene-core.c
1409
dvb_unregister_frontend(chan->fe);
drivers/media/pci/ngene/ngene-core.c
1412
if (chan->i2c_client_fe) {
drivers/media/pci/ngene/ngene-core.c
1413
dvb_module_release(chan->i2c_client[0]);
drivers/media/pci/ngene/ngene-core.c
1414
chan->i2c_client[0] = NULL;
drivers/media/pci/ngene/ngene-core.c
1417
dvb_frontend_detach(chan->fe);
drivers/media/pci/ngene/ngene-core.c
1418
chan->fe = NULL;
drivers/media/pci/ngene/ngene-core.c
142
exch2(chan, Cur->Buffer2,
drivers/media/pci/ngene/ngene-core.c
1421
if (chan->has_demux) {
drivers/media/pci/ngene/ngene-core.c
1422
dvb_net_release(&chan->dvbnet);
drivers/media/pci/ngene/ngene-core.c
1425
&chan->hw_frontend);
drivers/media/pci/ngene/ngene-core.c
1427
&chan->mem_frontend);
drivers/media/pci/ngene/ngene-core.c
1428
dvb_dmxdev_release(&chan->dmxdev);
drivers/media/pci/ngene/ngene-core.c
1429
dvb_dmx_release(&chan->demux);
drivers/media/pci/ngene/ngene-core.c
143
chan->Capture2Length,
drivers/media/pci/ngene/ngene-core.c
1430
chan->has_demux = false;
drivers/media/pci/ngene/ngene-core.c
1433
if (chan->has_adapter) {
drivers/media/pci/ngene/ngene-core.c
1434
dvb_unregister_adapter(&dev->adapter[chan->number]);
drivers/media/pci/ngene/ngene-core.c
1435
chan->has_adapter = false;
drivers/media/pci/ngene/ngene-core.c
1439
static int init_channel(struct ngene_channel *chan)
drivers/media/pci/ngene/ngene-core.c
1441
int ret = 0, nr = chan->number;
drivers/media/pci/ngene/ngene-core.c
1443
struct dvb_demux *dvbdemux = &chan->demux;
drivers/media/pci/ngene/ngene-core.c
1444
struct ngene *dev = chan->dev;
drivers/media/pci/ngene/ngene-core.c
1448
INIT_WORK(&chan->demux_bh_work, demux_bh_work);
drivers/media/pci/ngene/ngene-core.c
1449
chan->users = 0;
drivers/media/pci/ngene/ngene-core.c
1450
chan->type = io;
drivers/media/pci/ngene/ngene-core.c
1451
chan->mode = chan->type; /* for now only one mode */
drivers/media/pci/ngene/ngene-core.c
1452
chan->i2c_client_fe = 0; /* be sure this is set to zero */
drivers/media/pci/ngene/ngene-core.c
1455
chan->fe = NULL;
drivers/media/pci/ngene/ngene-core.c
1457
ret = ni->demod_attach[nr](chan);
drivers/media/pci/ngene/ngene-core.c
146
spin_lock_irq(&chan->state_lock);
drivers/media/pci/ngene/ngene-core.c
1461
if (chan->fe && ni->tuner_attach[nr]) {
drivers/media/pci/ngene/ngene-core.c
1462
ret = ni->tuner_attach[nr](chan);
drivers/media/pci/ngene/ngene-core.c
147
} else if (chan->HWState != HWSTATE_STOP)
drivers/media/pci/ngene/ngene-core.c
1473
chan->DataFormatFlags = DF_SWAP32;
drivers/media/pci/ngene/ngene-core.c
1479
&chan->dev->pci_dev->dev,
drivers/media/pci/ngene/ngene-core.c
148
chan->HWState = HWSTATE_RUN;
drivers/media/pci/ngene/ngene-core.c
1485
chan->has_adapter = true;
drivers/media/pci/ngene/ngene-core.c
1494
set_transfer(chan, 1);
drivers/media/pci/ngene/ngene-core.c
1495
chan->dev->channel[2].DataFormatFlags = DF_SWAP32;
drivers/media/pci/ngene/ngene-core.c
1496
set_transfer(&chan->dev->channel[2], 1);
drivers/media/pci/ngene/ngene-core.c
1497
dvb_register_device(adapter, &chan->ci_dev,
drivers/media/pci/ngene/ngene-core.c
1498
&ngene_dvbdev_ci, (void *) chan,
drivers/media/pci/ngene/ngene-core.c
1500
if (!chan->ci_dev)
drivers/media/pci/ngene/ngene-core.c
1504
if (chan->fe) {
drivers/media/pci/ngene/ngene-core.c
1505
if (dvb_register_frontend(adapter, chan->fe) < 0)
drivers/media/pci/ngene/ngene-core.c
1507
chan->has_demux = true;
drivers/media/pci/ngene/ngene-core.c
1509
if (chan->fe2) {
drivers/media/pci/ngene/ngene-core.c
1510
if (dvb_register_frontend(adapter, chan->fe2) < 0)
drivers/media/pci/ngene/ngene-core.c
1512
if (chan->fe) {
drivers/media/pci/ngene/ngene-core.c
1513
chan->fe2->tuner_priv = chan->fe->tuner_priv;
drivers/media/pci/ngene/ngene-core.c
1514
memcpy(&chan->fe2->ops.tuner_ops,
drivers/media/pci/ngene/ngene-core.c
1515
&chan->fe->ops.tuner_ops,
drivers/media/pci/ngene/ngene-core.c
1520
if (chan->has_demux) {
drivers/media/pci/ngene/ngene-core.c
1523
ngene_stop_feed, chan);
drivers/media/pci/ngene/ngene-core.c
1524
ret = my_dvb_dmxdev_ts_card_init(&chan->dmxdev, &chan->demux,
drivers/media/pci/ngene/ngene-core.c
1525
&chan->hw_frontend,
drivers/media/pci/ngene/ngene-core.c
1526
&chan->mem_frontend, adapter);
drivers/media/pci/ngene/ngene-core.c
1527
ret = dvb_net_init(adapter, &chan->dvbnet, &chan->demux.dmx);
drivers/media/pci/ngene/ngene-core.c
153
chan->nextBuffer = Cur;
drivers/media/pci/ngene/ngene-core.c
1533
if (chan->fe) {
drivers/media/pci/ngene/ngene-core.c
1534
dvb_frontend_detach(chan->fe);
drivers/media/pci/ngene/ngene-core.c
1535
chan->fe = NULL;
drivers/media/pci/ngene/ngene-core.c
1537
release_channel(chan);
drivers/media/pci/ngene/ngene-core.c
155
spin_unlock_irq(&chan->state_lock);
drivers/media/pci/ngene/ngene-core.c
497
static void flush_buffers(struct ngene_channel *chan)
drivers/media/pci/ngene/ngene-core.c
503
spin_lock_irq(&chan->state_lock);
drivers/media/pci/ngene/ngene-core.c
504
val = chan->nextBuffer->ngeneBuffer.SR.Flags & 0x80;
drivers/media/pci/ngene/ngene-core.c
505
spin_unlock_irq(&chan->state_lock);
drivers/media/pci/ngene/ngene-core.c
509
static void clear_buffers(struct ngene_channel *chan)
drivers/media/pci/ngene/ngene-core.c
511
struct SBufferHeader *Cur = chan->nextBuffer;
drivers/media/pci/ngene/ngene-core.c
515
if (chan->mode & NGENE_IO_TSOUT)
drivers/media/pci/ngene/ngene-core.c
517
chan->Capture1Length,
drivers/media/pci/ngene/ngene-core.c
518
chan->DataFormatFlags);
drivers/media/pci/ngene/ngene-core.c
520
} while (Cur != chan->nextBuffer);
drivers/media/pci/ngene/ngene-core.c
522
if (chan->mode & NGENE_IO_TSOUT) {
drivers/media/pci/ngene/ngene-core.c
523
chan->nextBuffer->ngeneBuffer.SR.DTOUpdate =
drivers/media/pci/ngene/ngene-core.c
524
chan->AudioDTOValue;
drivers/media/pci/ngene/ngene-core.c
525
chan->AudioDTOUpdated = 0;
drivers/media/pci/ngene/ngene-core.c
527
Cur = chan->TSIdleBuffer.Head;
drivers/media/pci/ngene/ngene-core.c
533
chan->Capture1Length,
drivers/media/pci/ngene/ngene-core.c
534
chan->DataFormatFlags);
drivers/media/pci/ngene/ngene-core.c
536
} while (Cur != chan->TSIdleBuffer.Head);
drivers/media/pci/ngene/ngene-core.c
544
struct ngene_channel *chan = &dev->channel[stream];
drivers/media/pci/ngene/ngene-core.c
555
if (chan->mode & NGENE_IO_TSOUT)
drivers/media/pci/ngene/ngene-core.c
567
chan->Mode = mode;
drivers/media/pci/ngene/ngene-core.c
570
spin_lock_irq(&chan->state_lock);
drivers/media/pci/ngene/ngene-core.c
571
if (chan->State == KSSTATE_RUN) {
drivers/media/pci/ngene/ngene-core.c
572
chan->State = KSSTATE_ACQUIRE;
drivers/media/pci/ngene/ngene-core.c
573
chan->HWState = HWSTATE_STOP;
drivers/media/pci/ngene/ngene-core.c
574
spin_unlock_irq(&chan->state_lock);
drivers/media/pci/ngene/ngene-core.c
578
flush_buffers(chan);
drivers/media/pci/ngene/ngene-core.c
581
spin_unlock_irq(&chan->state_lock);
drivers/media/pci/ngene/ngene-core.c
587
chan->Capture1Length / AUDIO_BLOCK_SIZE;
drivers/media/pci/ngene/ngene-core.c
588
com.cmd.StreamControl.Buffer_Address = chan->RingBuffer.PAHead;
drivers/media/pci/ngene/ngene-core.c
591
chan->Capture1Length / TS_BLOCK_SIZE;
drivers/media/pci/ngene/ngene-core.c
593
chan->Capture1Length / TS_BLOCK_SIZE;
drivers/media/pci/ngene/ngene-core.c
595
chan->TSRingBuffer.PAHead;
drivers/media/pci/ngene/ngene-core.c
596
if (chan->mode & NGENE_IO_TSOUT) {
drivers/media/pci/ngene/ngene-core.c
598
chan->Capture1Length / TS_BLOCK_SIZE;
drivers/media/pci/ngene/ngene-core.c
602
com.cmd.StreamControl.BytesPerVideoLine = chan->nBytesPerLine;
drivers/media/pci/ngene/ngene-core.c
603
com.cmd.StreamControl.MaxLinesPerField = chan->nLines;
drivers/media/pci/ngene/ngene-core.c
605
com.cmd.StreamControl.Buffer_Address = chan->RingBuffer.PAHead;
drivers/media/pci/ngene/ngene-core.c
609
chan->nVBILines;
drivers/media/pci/ngene/ngene-core.c
612
chan->nBytesPerVBILine;
drivers/media/pci/ngene/ngene-core.c
618
spin_lock_irq(&chan->state_lock);
drivers/media/pci/ngene/ngene-core.c
620
chan->nextBuffer = chan->RingBuffer.Head;
drivers/media/pci/ngene/ngene-core.c
635
chan->nextBuffer = chan->TSRingBuffer.Head;
drivers/media/pci/ngene/ngene-core.c
637
if (chan->mode & NGENE_IO_TSOUT) {
drivers/media/pci/ngene/ngene-core.c
660
chan->nextBuffer = chan->RingBuffer.Head;
drivers/media/pci/ngene/ngene-core.c
665
ITUDecoderSetup[chan->itumode], 16);
drivers/media/pci/ngene/ngene-core.c
669
clear_buffers(chan);
drivers/media/pci/ngene/ngene-core.c
670
chan->State = KSSTATE_RUN;
drivers/media/pci/ngene/ngene-core.c
672
chan->HWState = HWSTATE_RUN;
drivers/media/pci/ngene/ngene-core.c
674
chan->HWState = HWSTATE_STARTUP;
drivers/media/pci/ngene/ngene-core.c
675
spin_unlock_irq(&chan->state_lock);
drivers/media/pci/ngene/ngene-core.c
683
void set_transfer(struct ngene_channel *chan, int state)
drivers/media/pci/ngene/ngene-core.c
685
struct device *pdev = &chan->dev->pci_dev->dev;
drivers/media/pci/ngene/ngene-core.c
687
struct ngene *dev = chan->dev;
drivers/media/pci/ngene/ngene-core.c
696
if (chan->running) {
drivers/media/pci/ngene/ngene-core.c
701
if (!chan->running) {
drivers/media/pci/ngene/ngene-core.c
708
dev->card_info->switch_ctrl(chan, 1, state ^ 1);
drivers/media/pci/ngene/ngene-core.c
711
spin_lock_irq(&chan->state_lock);
drivers/media/pci/ngene/ngene-core.c
717
if (chan->mode & (NGENE_IO_TSIN | NGENE_IO_TSOUT)) {
drivers/media/pci/ngene/ngene-core.c
718
chan->Capture1Length = 512 * 188;
drivers/media/pci/ngene/ngene-core.c
721
if (chan->mode & NGENE_IO_TSOUT) {
drivers/media/pci/ngene/ngene-core.c
722
chan->pBufferExchange = tsout_exchange;
drivers/media/pci/ngene/ngene-core.c
724
chan->AudioDTOValue = 0x80000000;
drivers/media/pci/ngene/ngene-core.c
725
chan->AudioDTOUpdated = 1;
drivers/media/pci/ngene/ngene-core.c
727
if (chan->mode & NGENE_IO_TSIN)
drivers/media/pci/ngene/ngene-core.c
728
chan->pBufferExchange = tsin_exchange;
drivers/media/pci/ngene/ngene-core.c
729
spin_unlock_irq(&chan->state_lock);
drivers/media/pci/ngene/ngene-core.c
73
struct ngene_channel *chan = from_work(chan, t, demux_bh_work);
drivers/media/pci/ngene/ngene-core.c
735
ret = ngene_command_stream_control(dev, chan->number,
drivers/media/pci/ngene/ngene-core.c
74
struct device *pdev = &chan->dev->pci_dev->dev;
drivers/media/pci/ngene/ngene-core.c
740
chan->running = state;
drivers/media/pci/ngene/ngene-core.c
744
spin_lock_irq(&chan->state_lock);
drivers/media/pci/ngene/ngene-core.c
745
chan->pBufferExchange = NULL;
drivers/media/pci/ngene/ngene-core.c
747
spin_unlock_irq(&chan->state_lock);
drivers/media/pci/ngene/ngene-core.c
75
struct SBufferHeader *Cur = chan->nextBuffer;
drivers/media/pci/ngene/ngene-core.c
77
spin_lock_irq(&chan->state_lock);
drivers/media/pci/ngene/ngene-core.c
80
if (chan->mode & NGENE_IO_TSOUT) {
drivers/media/pci/ngene/ngene-core.c
805
struct ngene_channel *chan;
drivers/media/pci/ngene/ngene-core.c
808
chan = &dev->channel[i];
drivers/media/pci/ngene/ngene-core.c
809
free_idlebuffer(dev, &chan->TSIdleBuffer, &chan->TSRingBuffer);
drivers/media/pci/ngene/ngene-core.c
81
u32 Flags = chan->DataFormatFlags;
drivers/media/pci/ngene/ngene-core.c
810
free_ringbuffer(dev, &chan->RingBuffer);
drivers/media/pci/ngene/ngene-core.c
811
free_ringbuffer(dev, &chan->TSRingBuffer);
drivers/media/pci/ngene/ngene-core.c
84
if (chan->pBufferExchange) {
drivers/media/pci/ngene/ngene-core.c
85
if (!chan->pBufferExchange(chan,
drivers/media/pci/ngene/ngene-core.c
87
chan->Capture1Length,
drivers/media/pci/ngene/ngene-dvb.c
162
struct ngene_channel *chan = priv;
drivers/media/pci/ngene/ngene-dvb.c
163
struct ngene *dev = chan->dev;
drivers/media/pci/ngene/ngene-dvb.c
169
if (dev->ci.en && chan->number == 2) {
drivers/media/pci/ngene/ngene-dvb.c
189
if (chan->tsin_offset) {
drivers/media/pci/ngene/ngene-dvb.c
190
memcpy(&chan->tsin_buffer[(188 - chan->tsin_offset)],
drivers/media/pci/ngene/ngene-dvb.c
191
buf, chan->tsin_offset);
drivers/media/pci/ngene/ngene-dvb.c
192
tsin_copy_stripped(dev, &chan->tsin_buffer);
drivers/media/pci/ngene/ngene-dvb.c
194
buf += chan->tsin_offset;
drivers/media/pci/ngene/ngene-dvb.c
195
len -= chan->tsin_offset;
drivers/media/pci/ngene/ngene-dvb.c
210
chan->tsin_offset += tsoff;
drivers/media/pci/ngene/ngene-dvb.c
211
chan->tsin_offset %= 188;
drivers/media/pci/ngene/ngene-dvb.c
219
chan->number);
drivers/media/pci/ngene/ngene-dvb.c
242
memcpy(&chan->tsin_buffer, buf, len);
drivers/media/pci/ngene/ngene-dvb.c
247
if (chan->users > 0)
drivers/media/pci/ngene/ngene-dvb.c
248
dvb_dmx_swfilter(&chan->demux, buf, len);
drivers/media/pci/ngene/ngene-dvb.c
255
struct ngene_channel *chan = priv;
drivers/media/pci/ngene/ngene-dvb.c
256
struct ngene *dev = chan->dev;
drivers/media/pci/ngene/ngene-dvb.c
278
struct ngene_channel *chan = dvbdmx->priv;
drivers/media/pci/ngene/ngene-dvb.c
280
if (chan->users == 0) {
drivers/media/pci/ngene/ngene-dvb.c
281
if (!chan->dev->cmd_timeout_workaround || !chan->running)
drivers/media/pci/ngene/ngene-dvb.c
282
set_transfer(chan, 1);
drivers/media/pci/ngene/ngene-dvb.c
285
return ++chan->users;
drivers/media/pci/ngene/ngene-dvb.c
291
struct ngene_channel *chan = dvbdmx->priv;
drivers/media/pci/ngene/ngene-dvb.c
293
if (--chan->users)
drivers/media/pci/ngene/ngene-dvb.c
294
return chan->users;
drivers/media/pci/ngene/ngene-dvb.c
296
if (!chan->dev->cmd_timeout_workaround)
drivers/media/pci/ngene/ngene-dvb.c
297
set_transfer(chan, 0);
drivers/media/pci/ngene/ngene-dvb.c
40
struct ngene_channel *chan = dvbdev->priv;
drivers/media/pci/ngene/ngene-dvb.c
41
struct ngene *dev = chan->dev;
drivers/media/pci/ngene/ngene-dvb.c
57
struct ngene_channel *chan = dvbdev->priv;
drivers/media/pci/ngene/ngene-dvb.c
58
struct ngene *dev = chan->dev;
drivers/media/pci/ngene/ngene-dvb.c
80
struct ngene_channel *chan = dvbdev->priv;
drivers/media/pci/ngene/ngene-dvb.c
81
struct ngene *dev = chan->dev;
drivers/media/pci/ngene/ngene-i2c.c
104
struct ngene_channel *chan =
drivers/media/pci/ngene/ngene-i2c.c
106
struct ngene *dev = chan->dev;
drivers/media/pci/ngene/ngene-i2c.c
109
ngene_i2c_set_bus(dev, chan->number);
drivers/media/pci/ngene/ngene.h
587
struct ngene_channel *chan;
drivers/media/pci/ngene/ngene.h
825
void set_transfer(struct ngene_channel *chan, int state);
drivers/media/platform/intel/pxa_camera.c
1004
int chan;
drivers/media/platform/intel/pxa_camera.c
1041
chan = 1;
drivers/media/platform/intel/pxa_camera.c
1044
chan = 2;
drivers/media/platform/intel/pxa_camera.c
1047
chan = 0;
drivers/media/platform/intel/pxa_camera.c
1052
last_status = dma_async_is_tx_complete(pcdev->dma_chans[chan],
drivers/media/platform/intel/pxa_camera.c
1053
last_buf->cookie[chan],
drivers/media/platform/intel/pxa_camera.c
1068
pxa_camera_check_link_miss(pcdev, last_buf->cookie[chan],
drivers/media/platform/m2m-deinterlace.c
213
struct dma_chan *chan = pcdev->dma_chan;
drivers/media/platform/m2m-deinterlace.c
214
struct dma_device *dmadev = chan->device;
drivers/media/platform/m2m-deinterlace.c
333
tx = dmadev->device_prep_interleaved_dma(chan, ctx->xt, flags);
drivers/media/platform/m2m-deinterlace.c
353
dma_async_issue_pending(chan);
drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c
701
dma_sync_single_for_device(mdp->cmdq_clt[i]->chan->mbox->dev,
drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c
705
ret = mbox_send_message(mdp->cmdq_clt[i]->chan, &cmd[i]->pkt);
drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c
711
mbox_client_txdone(mdp->cmdq_clt[i]->chan, 0);
drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.c
313
mdp->cmdq_shift_pa[i] = cmdq_get_shift_pa(mdp->cmdq_clt[i]->chan);
drivers/media/platform/nxp/imx-mipi-csis.c
962
for (unsigned int chan = 0; chan < csis->num_channels; chan++) {
drivers/media/platform/nxp/imx-mipi-csis.c
965
chan);
drivers/media/platform/st/stm32/stm32-dcmi.c
1960
struct dma_chan *chan, *mdma_chan;
drivers/media/platform/st/stm32/stm32-dcmi.c
2019
chan = dma_request_chan(&pdev->dev, "tx");
drivers/media/platform/st/stm32/stm32-dcmi.c
2020
if (IS_ERR(chan))
drivers/media/platform/st/stm32/stm32-dcmi.c
2021
return dev_err_probe(&pdev->dev, PTR_ERR(chan),
drivers/media/platform/st/stm32/stm32-dcmi.c
2041
ret = dmaengine_slave_config(chan, &dma_config);
drivers/media/platform/st/stm32/stm32-dcmi.c
2084
ret = dma_get_slave_caps(chan, &caps);
drivers/media/platform/st/stm32/stm32-dcmi.c
2097
dcmi->dma_chan = chan;
drivers/media/platform/ti/davinci/vpif_capture.c
1491
struct vpif_capture_chan_config *chan;
drivers/media/platform/ti/davinci/vpif_capture.c
1531
chan = &pdata->chan_config[i];
drivers/media/platform/ti/davinci/vpif_capture.c
1532
chan->inputs = devm_kcalloc(&pdev->dev,
drivers/media/platform/ti/davinci/vpif_capture.c
1534
sizeof(*chan->inputs),
drivers/media/platform/ti/davinci/vpif_capture.c
1536
if (!chan->inputs)
drivers/media/platform/ti/davinci/vpif_capture.c
1539
chan->input_count++;
drivers/media/platform/ti/davinci/vpif_capture.c
1540
chan->inputs[i].input.type = V4L2_INPUT_TYPE_CAMERA;
drivers/media/platform/ti/davinci/vpif_capture.c
1541
chan->inputs[i].input.std = V4L2_STD_ALL;
drivers/media/platform/ti/davinci/vpif_capture.c
1542
chan->inputs[i].input.capabilities = V4L2_IN_CAP_STD;
drivers/media/platform/ti/davinci/vpif_capture.c
1558
chan->vpif_if.hd_pol = 1;
drivers/media/platform/ti/davinci/vpif_capture.c
1561
chan->vpif_if.vd_pol = 1;
drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c
1269
dma_release_channel(ctx->dma.chan);
drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c
1290
q->dev = dmaengine_get_dma_device(ctx->dma.chan);
drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c
1381
ctx->dma.chan = dma_request_chan(ctx->csi->dev, name);
drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c
1382
if (IS_ERR(ctx->dma.chan))
drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c
1383
return PTR_ERR(ctx->dma.chan);
drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c
1385
ret = dmaengine_slave_config(ctx->dma.chan, &cfg);
drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c
1387
dma_release_channel(ctx->dma.chan);
drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c
1516
dma_release_channel(ctx->dma.chan);
drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c
1528
dma_release_channel(csi->ctx[i].dma.chan);
drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c
1590
ret = dmaengine_terminate_sync(ctx->dma.chan);
drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c
663
desc = dmaengine_prep_slave_single(ctx->dma.chan, csi->drain.paddr,
drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c
679
dma_async_issue_pending(ctx->dma.chan);
drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c
755
desc = dmaengine_prep_slave_single(ctx->dma.chan, addr, len,
drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c
769
dma_async_issue_pending(ctx->dma.chan);
drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c
809
ret = dmaengine_terminate_sync(ctx->dma.chan);
drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c
93
struct dma_chan *chan;
drivers/media/platform/ti/omap/omap_vout_vrfb.c
135
vout->vrfb_dma_tx.chan = dma_request_chan_by_mask(&mask);
drivers/media/platform/ti/omap/omap_vout_vrfb.c
136
if (IS_ERR(vout->vrfb_dma_tx.chan)) {
drivers/media/platform/ti/omap/omap_vout_vrfb.c
144
dma_release_channel(vout->vrfb_dma_tx.chan);
drivers/media/platform/ti/omap/omap_vout_vrfb.c
188
dmaengine_terminate_sync(vout->vrfb_dma_tx.chan);
drivers/media/platform/ti/omap/omap_vout_vrfb.c
189
dma_release_channel(vout->vrfb_dma_tx.chan);
drivers/media/platform/ti/omap/omap_vout_vrfb.c
235
struct dma_chan *chan = vout->vrfb_dma_tx.chan;
drivers/media/platform/ti/omap/omap_vout_vrfb.c
270
tx = dmaengine_prep_interleaved_dma(chan, xt, flags);
drivers/media/platform/ti/omap/omap_vout_vrfb.c
286
dma_async_issue_pending(chan);
drivers/media/platform/ti/omap/omap_vout_vrfb.c
292
status = dma_async_is_tx_complete(chan, cookie, NULL, NULL);
drivers/media/platform/ti/omap/omap_vout_vrfb.c
296
dmaengine_terminate_sync(chan);
drivers/media/platform/ti/omap/omap_vout_vrfb.c
301
dmaengine_terminate_sync(chan);
drivers/media/platform/ti/omap/omap_voutdef.h
86
struct dma_chan *chan;
drivers/media/platform/ti/vpe/vpdma.c
1058
enum vpdma_channel chan)
drivers/media/platform/ti/vpe/vpdma.c
1060
int client_cstat = chan_info[chan].cstat_offset;
drivers/media/platform/ti/vpe/vpdma.c
1073
enum vpdma_channel chan)
drivers/media/platform/ti/vpe/vpdma.c
1075
int client_cstat = chan_info[chan].cstat_offset;
drivers/media/platform/ti/vpe/vpdma.c
720
enum vpdma_channel chan)
drivers/media/platform/ti/vpe/vpdma.c
730
ctd->type_source_ctl = ctd_type_source_ctl(chan_info[chan].num,
drivers/media/platform/ti/vpe/vpdma.c
766
int dir, chan;
drivers/media/platform/ti/vpe/vpdma.c
769
chan = dtd_get_chan(dtd);
drivers/media/platform/ti/vpe/vpdma.c
772
dir == DTD_DIR_OUT ? "outbound" : "inbound", chan);
drivers/media/platform/ti/vpe/vpdma.c
787
dtd_get_mode(dtd), dir, chan, dtd_get_priority(dtd),
drivers/media/platform/ti/vpe/vpdma.c
826
int max_w, int max_h, enum vpdma_channel chan, u32 flags)
drivers/media/platform/ti/vpe/vpdma.c
829
max_w, max_h, chan_info[chan].num, flags);
drivers/media/platform/ti/vpe/vpdma.c
905
enum vpdma_channel chan, int field, u32 flags, int frame_width,
drivers/media/platform/ti/vpe/vpdma.c
915
channel = next_chan = chan_info[chan].num;
drivers/media/platform/ti/vpe/vpdma.h
240
enum vpdma_channel chan);
drivers/media/platform/ti/vpe/vpdma.h
246
int max_w, int max_h, enum vpdma_channel chan, u32 flags);
drivers/media/platform/ti/vpe/vpdma.h
255
enum vpdma_channel chan, int field, u32 flags, int frame_width,
drivers/media/platform/ti/vpe/vpdma.h
270
enum vpdma_channel chan);
drivers/media/platform/ti/vpe/vpdma.h
272
enum vpdma_frame_start_event fs_event, enum vpdma_channel chan);
drivers/media/platform/ti/vpe/vpdma_priv.h
270
static inline u32 dtd_pkt_ctl(bool mode, bool dir, int chan, int pri,
drivers/media/platform/ti/vpe/vpdma_priv.h
274
(dir << DTD_DIR_SHFT) | (chan << DTD_CHAN_SHFT) |
drivers/media/radio/si470x/radio-si470x-common.c
193
static int si470x_set_chan(struct si470x_device *radio, unsigned short chan)
drivers/media/radio/si470x/radio-si470x-common.c
210
radio->registers[CHANNEL] |= CHANNEL_TUNE | chan;
drivers/media/radio/si470x/radio-si470x-common.c
261
int chan, retval;
drivers/media/radio/si470x/radio-si470x-common.c
265
chan = radio->registers[READCHAN] & READCHAN_READCHAN;
drivers/media/radio/si470x/radio-si470x-common.c
268
*freq = chan * si470x_get_step(radio) + bands[radio->band].rangelow;
drivers/media/radio/si470x/radio-si470x-common.c
279
unsigned short chan;
drivers/media/radio/si470x/radio-si470x-common.c
284
chan = (freq - bands[radio->band].rangelow) / si470x_get_step(radio);
drivers/media/radio/si470x/radio-si470x-common.c
286
return si470x_set_chan(radio, chan);
drivers/memory/tegra/tegra210-emc-core.c
58
#define TRIM_REG(chan, rank, reg, byte) \
drivers/memory/tegra/tegra210-emc-core.c
68
next->trim_perch_regs[EMC ## chan ## \
drivers/mfd/stm32-timers.c
113
dma_async_issue_pending(dma->chan);
drivers/mfd/stm32-timers.c
144
dmaengine_terminate_all(dma->chan);
drivers/mfd/stm32-timers.c
148
dma->chan = NULL;
drivers/mfd/stm32-timers.c
35
status = dmaengine_tx_status(dma->chan, dma->chan->cookie, &state);
drivers/mfd/stm32-timers.c
83
dma->chan = dma->chans[id];
drivers/mfd/stm32-timers.c
94
ret = dmaengine_slave_config(dma->chan, &config);
drivers/mfd/stm32-timers.c
98
desc = dmaengine_prep_slave_single(dma->chan, dma_buf, len,
drivers/misc/bcm-vk/bcm_vk_msg.c
1011
struct bcm_vk_msg_chan *chan = &vk->to_h_msg_chan;
drivers/misc/bcm-vk/bcm_vk_msg.c
1029
spin_lock(&chan->pendq_lock);
drivers/misc/bcm-vk/bcm_vk_msg.c
1030
for (q_num = 0; q_num < chan->q_nr; q_num++) {
drivers/misc/bcm-vk/bcm_vk_msg.c
1031
list_for_each_entry(iter, &chan->pendq[q_num], node) {
drivers/misc/bcm-vk/bcm_vk_msg.c
1050
spin_unlock(&chan->pendq_lock);
drivers/misc/bcm-vk/bcm_vk_msg.c
341
struct bcm_vk_msg_chan *chan,
drivers/misc/bcm-vk/bcm_vk_msg.c
353
spin_lock(&chan->pendq_lock);
drivers/misc/bcm-vk/bcm_vk_msg.c
354
for (num = 0; num < chan->q_nr; num++) {
drivers/misc/bcm-vk/bcm_vk_msg.c
355
list_for_each_entry_safe(entry, tmp, &chan->pendq[num], node) {
drivers/misc/bcm-vk/bcm_vk_msg.c
361
spin_unlock(&chan->pendq_lock);
drivers/misc/bcm-vk/bcm_vk_msg.c
416
struct bcm_vk_msg_chan *chan;
drivers/misc/bcm-vk/bcm_vk_msg.c
458
chan = chan_list[i];
drivers/misc/bcm-vk/bcm_vk_msg.c
459
memset(chan->sync_qinfo, 0, sizeof(chan->sync_qinfo));
drivers/misc/bcm-vk/bcm_vk_msg.c
468
chan->msgq[j] = msgq;
drivers/misc/bcm-vk/bcm_vk_msg.c
492
qinfo = &chan->sync_qinfo[j];
drivers/misc/bcm-vk/bcm_vk_msg.c
509
static int bcm_vk_msg_chan_init(struct bcm_vk_msg_chan *chan)
drivers/misc/bcm-vk/bcm_vk_msg.c
513
mutex_init(&chan->msgq_mutex);
drivers/misc/bcm-vk/bcm_vk_msg.c
514
spin_lock_init(&chan->pendq_lock);
drivers/misc/bcm-vk/bcm_vk_msg.c
516
INIT_LIST_HEAD(&chan->pendq[i]);
drivers/misc/bcm-vk/bcm_vk_msg.c
521
static void bcm_vk_append_pendq(struct bcm_vk_msg_chan *chan, u16 q_num,
drivers/misc/bcm-vk/bcm_vk_msg.c
526
spin_lock(&chan->pendq_lock);
drivers/misc/bcm-vk/bcm_vk_msg.c
527
list_add_tail(&entry->node, &chan->pendq[q_num]);
drivers/misc/bcm-vk/bcm_vk_msg.c
533
spin_unlock(&chan->pendq_lock);
drivers/misc/bcm-vk/bcm_vk_msg.c
544
struct bcm_vk_msg_chan *chan = &vk->to_v_msg_chan;
drivers/misc/bcm-vk/bcm_vk_msg.c
555
msgq = chan->msgq[q_num];
drivers/misc/bcm-vk/bcm_vk_msg.c
556
qinfo = &chan->sync_qinfo[q_num];
drivers/misc/bcm-vk/bcm_vk_msg.c
586
struct bcm_vk_msg_chan *chan = &vk->to_v_msg_chan;
drivers/misc/bcm-vk/bcm_vk_msg.c
587
struct bcm_vk_sync_qinfo *qinfo = &chan->sync_qinfo[q_num];
drivers/misc/bcm-vk/bcm_vk_msg.c
595
struct bcm_vk_msg_chan *chan = &vk->to_v_msg_chan;
drivers/misc/bcm-vk/bcm_vk_msg.c
618
msgq = chan->msgq[q_num];
drivers/misc/bcm-vk/bcm_vk_msg.c
619
qinfo = &chan->sync_qinfo[q_num];
drivers/misc/bcm-vk/bcm_vk_msg.c
621
mutex_lock(&chan->msgq_mutex);
drivers/misc/bcm-vk/bcm_vk_msg.c
629
mutex_unlock(&chan->msgq_mutex);
drivers/misc/bcm-vk/bcm_vk_msg.c
632
mutex_lock(&chan->msgq_mutex);
drivers/misc/bcm-vk/bcm_vk_msg.c
636
mutex_unlock(&chan->msgq_mutex);
drivers/misc/bcm-vk/bcm_vk_msg.c
681
mutex_unlock(&chan->msgq_mutex);
drivers/misc/bcm-vk/bcm_vk_msg.c
756
struct bcm_vk_msg_chan *chan,
drivers/misc/bcm-vk/bcm_vk_msg.c
762
spin_lock(&chan->pendq_lock);
drivers/misc/bcm-vk/bcm_vk_msg.c
763
list_for_each_entry(iter, &chan->pendq[q_num], node) {
drivers/misc/bcm-vk/bcm_vk_msg.c
771
spin_unlock(&chan->pendq_lock);
drivers/misc/bcm-vk/bcm_vk_msg.c
778
struct bcm_vk_msg_chan *chan = &vk->to_h_msg_chan;
drivers/misc/bcm-vk/bcm_vk_msg.c
800
mutex_lock(&chan->msgq_mutex);
drivers/misc/bcm-vk/bcm_vk_msg.c
802
for (q_num = 0; q_num < chan->q_nr; q_num++) {
drivers/misc/bcm-vk/bcm_vk_msg.c
803
msgq = chan->msgq[q_num];
drivers/misc/bcm-vk/bcm_vk_msg.c
804
qinfo = &chan->sync_qinfo[q_num];
drivers/misc/bcm-vk/bcm_vk_msg.c
925
mutex_unlock(&chan->msgq_mutex);
drivers/mmc/host/atmel-mci.c
1111
struct dma_chan *chan;
drivers/mmc/host/atmel-mci.c
1144
if (!host->dma.chan)
drivers/mmc/host/atmel-mci.c
1147
chan = host->dma.chan;
drivers/mmc/host/atmel-mci.c
1148
host->data_chan = chan;
drivers/mmc/host/atmel-mci.c
1164
sglen = dma_map_sg(chan->device->dev, data->sg,
drivers/mmc/host/atmel-mci.c
1167
dmaengine_slave_config(chan, &host->dma_conf);
drivers/mmc/host/atmel-mci.c
1168
desc = dmaengine_prep_slave_sg(chan,
drivers/mmc/host/atmel-mci.c
1180
dma_unmap_sg(chan->device->dev, data->sg, data->sg_len,
drivers/mmc/host/atmel-mci.c
1206
struct dma_chan *chan = host->data_chan;
drivers/mmc/host/atmel-mci.c
1209
if (chan) {
drivers/mmc/host/atmel-mci.c
1211
dma_async_issue_pending(chan);
drivers/mmc/host/atmel-mci.c
1234
struct dma_chan *chan = host->data_chan;
drivers/mmc/host/atmel-mci.c
1237
if (chan) {
drivers/mmc/host/atmel-mci.c
1238
dmaengine_terminate_all(chan);
drivers/mmc/host/atmel-mci.c
2363
host->dma.chan = dma_request_chan(dev, "rxtx");
drivers/mmc/host/atmel-mci.c
2364
if (IS_ERR(host->dma.chan))
drivers/mmc/host/atmel-mci.c
2365
return PTR_ERR(host->dma.chan);
drivers/mmc/host/atmel-mci.c
2367
dev_info(dev, "using %s for DMA transfers\n", dma_chan_name(host->dma.chan));
drivers/mmc/host/atmel-mci.c
244
struct dma_chan *chan;
drivers/mmc/host/atmel-mci.c
2580
if (!IS_ERR(host->dma.chan))
drivers/mmc/host/atmel-mci.c
2581
dma_release_channel(host->dma.chan);
drivers/mmc/host/atmel-mci.c
2608
if (!IS_ERR(host->dma.chan))
drivers/mmc/host/atmel-mci.c
2609
dma_release_channel(host->dma.chan);
drivers/mmc/host/atmel-mci.c
964
dma_unmap_sg(host->dma.chan->device->dev,
drivers/mmc/host/au1xmmc.c
354
u32 chan = DMA_CHANNEL(host);
drivers/mmc/host/au1xmmc.c
356
chan_tab_t *c = *((chan_tab_t **)chan);
drivers/mmc/host/davinci_mmc.c
392
struct dma_chan *chan;
drivers/mmc/host/davinci_mmc.c
404
chan = host->dma_tx;
drivers/mmc/host/davinci_mmc.c
426
chan = host->dma_rx;
drivers/mmc/host/davinci_mmc.c
443
dma_async_issue_pending(chan);
drivers/mmc/host/jz4740_mmc.c
289
struct dma_chan *chan = jz4740_mmc_get_dma_chan(host, data);
drivers/mmc/host/jz4740_mmc.c
292
dma_unmap_sg(chan->device->dev, data->sg, data->sg_len, dir);
drivers/mmc/host/jz4740_mmc.c
303
struct dma_chan *chan = jz4740_mmc_get_dma_chan(host, data);
drivers/mmc/host/jz4740_mmc.c
310
sg_count = dma_map_sg(chan->device->dev,
drivers/mmc/host/jz4740_mmc.c
330
struct dma_chan *chan = jz4740_mmc_get_dma_chan(host, data);
drivers/mmc/host/jz4740_mmc.c
352
dmaengine_slave_config(chan, &conf);
drivers/mmc/host/jz4740_mmc.c
353
desc = dmaengine_prep_slave_sg(chan, data->sg, sg_count,
drivers/mmc/host/jz4740_mmc.c
364
dma_async_issue_pending(chan);
drivers/mmc/host/jz4740_mmc.c
399
struct dma_chan *chan = jz4740_mmc_get_dma_chan(host, data);
drivers/mmc/host/jz4740_mmc.c
401
dmaengine_terminate_all(chan);
drivers/mmc/host/loongson2-mmc.c
245
struct dma_chan *chan;
drivers/mmc/host/loongson2-mmc.c
672
dmaengine_slave_config(host->chan, &dma_conf);
drivers/mmc/host/loongson2-mmc.c
673
desc = dmaengine_prep_slave_sg(host->chan, data->sg, data->sg_len,
drivers/mmc/host/loongson2-mmc.c
680
dma_async_issue_pending(host->chan);
drivers/mmc/host/loongson2-mmc.c
692
dma_release_channel(host->chan);
drivers/mmc/host/loongson2-mmc.c
709
host->chan = dma_request_chan(&pdev->dev, "rx-tx");
drivers/mmc/host/loongson2-mmc.c
710
ret = PTR_ERR_OR_ZERO(host->chan);
drivers/mmc/host/loongson2-mmc.c
733
host->chan = dma_request_chan(&pdev->dev, "rx-tx");
drivers/mmc/host/loongson2-mmc.c
734
ret = PTR_ERR_OR_ZERO(host->chan);
drivers/mmc/host/mmci.c
1025
struct dma_chan *chan;
drivers/mmc/host/mmci.c
1033
chan = dmae->rx_channel;
drivers/mmc/host/mmci.c
1036
chan = dmae->tx_channel;
drivers/mmc/host/mmci.c
1040
if (!chan)
drivers/mmc/host/mmci.c
1059
device = chan->device;
drivers/mmc/host/mmci.c
1068
dmaengine_slave_config(chan, &conf);
drivers/mmc/host/mmci.c
1069
desc = dmaengine_prep_slave_sg(chan, data->sg, nr_sg,
drivers/mmc/host/mmci.c
1074
*dma_chan = chan;
drivers/mmc/host/mmci.c
1096
return _mmci_dmae_prep_data(host, data, &nd->chan, &nd->desc);
drivers/mmc/host/mmci.c
1132
WARN_ON(!data->host_cookie && (next->desc || next->chan));
drivers/mmc/host/mmci.c
1135
dmae->cur = next->chan;
drivers/mmc/host/mmci.c
1137
next->chan = NULL;
drivers/mmc/host/mmci.c
1153
struct dma_chan *chan;
drivers/mmc/host/mmci.c
1155
chan = dmae->rx_channel;
drivers/mmc/host/mmci.c
1157
chan = dmae->tx_channel;
drivers/mmc/host/mmci.c
1158
dmaengine_terminate_all(chan);
drivers/mmc/host/mmci.c
1163
if (dmae->cur == next->chan) {
drivers/mmc/host/mmci.c
1169
next->chan = NULL;
drivers/mmc/host/mmci.c
833
struct dma_chan *chan;
drivers/mmc/host/mmci.c
936
struct dma_chan *chan;
drivers/mmc/host/mmci.c
939
chan = dmae->rx_channel;
drivers/mmc/host/mmci.c
941
chan = dmae->tx_channel;
drivers/mmc/host/mmci.c
943
dma_unmap_sg(chan->device->dev, data->sg, data->sg_len,
drivers/mmc/host/mxcmmc.c
944
static bool filter(struct dma_chan *chan, void *param)
drivers/mmc/host/mxcmmc.c
948
if (!imx_dma_is_general_purpose(chan))
drivers/mmc/host/mxcmmc.c
951
chan->private = &host->dma_data;
drivers/mmc/host/omap_hsmmc.c
1160
struct dma_chan *chan;
drivers/mmc/host/omap_hsmmc.c
1171
chan = omap_hsmmc_get_dma_chan(host, data);
drivers/mmc/host/omap_hsmmc.c
1173
dma_unmap_sg(chan->device->dev,
drivers/mmc/host/omap_hsmmc.c
1193
struct dma_chan *chan)
drivers/mmc/host/omap_hsmmc.c
1207
dma_len = dma_map_sg(chan->device->dev, data->sg, data->sg_len,
drivers/mmc/host/omap_hsmmc.c
1237
struct dma_chan *chan;
drivers/mmc/host/omap_hsmmc.c
1263
chan = omap_hsmmc_get_dma_chan(host, data);
drivers/mmc/host/omap_hsmmc.c
1265
ret = dmaengine_slave_config(chan, &cfg);
drivers/mmc/host/omap_hsmmc.c
1269
ret = omap_hsmmc_pre_dma_transfer(host, data, NULL, chan);
drivers/mmc/host/omap_hsmmc.c
1273
tx = dmaengine_prep_slave_sg(chan, data->sg, data->sg_len,
drivers/mmc/host/omap_hsmmc.c
1334
struct dma_chan *chan;
drivers/mmc/host/omap_hsmmc.c
1342
chan = omap_hsmmc_get_dma_chan(host, req->data);
drivers/mmc/host/omap_hsmmc.c
1343
dma_async_issue_pending(chan);
drivers/mmc/host/omap_hsmmc.c
915
struct dma_chan *chan = omap_hsmmc_get_dma_chan(host, host->data);
drivers/mmc/host/omap_hsmmc.c
917
dmaengine_terminate_all(chan);
drivers/mmc/host/omap_hsmmc.c
918
dma_unmap_sg(chan->device->dev,
drivers/mmc/host/pxamci.c
163
struct dma_chan *chan;
drivers/mmc/host/pxamci.c
190
chan = host->dma_chan_rx;
drivers/mmc/host/pxamci.c
194
chan = host->dma_chan_tx;
drivers/mmc/host/pxamci.c
199
ret = dmaengine_slave_config(chan, &config);
drivers/mmc/host/pxamci.c
205
host->dma_len = dma_map_sg(chan->device->dev, data->sg, data->sg_len,
drivers/mmc/host/pxamci.c
208
tx = dmaengine_prep_slave_sg(chan, data->sg, host->dma_len, direction,
drivers/mmc/host/pxamci.c
229
dma_async_issue_pending(chan);
drivers/mmc/host/pxamci.c
332
struct dma_chan *chan;
drivers/mmc/host/pxamci.c
338
chan = host->dma_chan_rx;
drivers/mmc/host/pxamci.c
340
chan = host->dma_chan_tx;
drivers/mmc/host/pxamci.c
341
dma_unmap_sg(chan->device->dev,
drivers/mmc/host/pxamci.c
533
struct dma_chan *chan;
drivers/mmc/host/pxamci.c
542
chan = host->dma_chan_rx;
drivers/mmc/host/pxamci.c
544
chan = host->dma_chan_tx;
drivers/mmc/host/pxamci.c
546
status = dmaengine_tx_status(chan, host->dma_cookie, &state);
drivers/mmc/host/renesas_sdhi_sys_dmac.c
161
struct dma_chan *chan = host->chan_rx;
drivers/mmc/host/renesas_sdhi_sys_dmac.c
192
ret = dma_map_sg(chan->device->dev, sg, host->sg_len, DMA_FROM_DEVICE);
drivers/mmc/host/renesas_sdhi_sys_dmac.c
194
desc = dmaengine_prep_slave_sg(chan, sg, ret, DMA_DEV_TO_MEM,
drivers/mmc/host/renesas_sdhi_sys_dmac.c
216
dma_release_channel(chan);
drivers/mmc/host/renesas_sdhi_sys_dmac.c
218
chan = host->chan_tx;
drivers/mmc/host/renesas_sdhi_sys_dmac.c
219
if (chan) {
drivers/mmc/host/renesas_sdhi_sys_dmac.c
221
dma_release_channel(chan);
drivers/mmc/host/renesas_sdhi_sys_dmac.c
233
struct dma_chan *chan = host->chan_tx;
drivers/mmc/host/renesas_sdhi_sys_dmac.c
268
ret = dma_map_sg(chan->device->dev, sg, host->sg_len, DMA_TO_DEVICE);
drivers/mmc/host/renesas_sdhi_sys_dmac.c
270
desc = dmaengine_prep_slave_sg(chan, sg, ret, DMA_MEM_TO_DEV,
drivers/mmc/host/renesas_sdhi_sys_dmac.c
292
dma_release_channel(chan);
drivers/mmc/host/renesas_sdhi_sys_dmac.c
294
chan = host->chan_rx;
drivers/mmc/host/renesas_sdhi_sys_dmac.c
295
if (chan) {
drivers/mmc/host/renesas_sdhi_sys_dmac.c
297
dma_release_channel(chan);
drivers/mmc/host/renesas_sdhi_sys_dmac.c
319
struct dma_chan *chan = NULL;
drivers/mmc/host/renesas_sdhi_sys_dmac.c
325
chan = host->chan_rx;
drivers/mmc/host/renesas_sdhi_sys_dmac.c
327
chan = host->chan_tx;
drivers/mmc/host/renesas_sdhi_sys_dmac.c
334
if (chan)
drivers/mmc/host/renesas_sdhi_sys_dmac.c
335
dma_async_issue_pending(chan);
drivers/mmc/host/renesas_sdhi_sys_dmac.c
426
struct dma_chan *chan = host->chan_tx;
drivers/mmc/host/renesas_sdhi_sys_dmac.c
429
dma_release_channel(chan);
drivers/mmc/host/renesas_sdhi_sys_dmac.c
432
struct dma_chan *chan = host->chan_rx;
drivers/mmc/host/renesas_sdhi_sys_dmac.c
435
dma_release_channel(chan);
drivers/mmc/host/sdhci.c
1263
struct dma_chan *chan;
drivers/mmc/host/sdhci.c
1285
chan = sdhci_external_dma_channel(host, data);
drivers/mmc/host/sdhci.c
1287
ret = dmaengine_slave_config(chan, &cfg);
drivers/mmc/host/sdhci.c
1296
desc = dmaengine_prep_slave_sg(chan, data->sg, data->sg_len, dir,
drivers/mmc/host/sdhci.c
1355
struct dma_chan *chan;
drivers/mmc/host/sdhci.c
1360
chan = sdhci_external_dma_channel(host, cmd->data);
drivers/mmc/host/sdhci.c
1361
if (chan)
drivers/mmc/host/sdhci.c
1362
dma_async_issue_pending(chan);
drivers/mmc/host/sdhci.c
3204
struct dma_chan *chan = sdhci_external_dma_channel(host, data);
drivers/mmc/host/sdhci.c
3208
dmaengine_terminate_sync(chan);
drivers/mmc/host/sh_mmcif.c
288
struct dma_chan *chan = host->chan_rx;
drivers/mmc/host/sh_mmcif.c
293
ret = dma_map_sg(chan->device->dev, sg, data->sg_len,
drivers/mmc/host/sh_mmcif.c
297
desc = dmaengine_prep_slave_sg(chan, sg, ret,
drivers/mmc/host/sh_mmcif.c
306
dma_async_issue_pending(chan);
drivers/mmc/host/sh_mmcif.c
317
dma_release_channel(chan);
drivers/mmc/host/sh_mmcif.c
319
chan = host->chan_tx;
drivers/mmc/host/sh_mmcif.c
320
if (chan) {
drivers/mmc/host/sh_mmcif.c
322
dma_release_channel(chan);
drivers/mmc/host/sh_mmcif.c
338
struct dma_chan *chan = host->chan_tx;
drivers/mmc/host/sh_mmcif.c
343
ret = dma_map_sg(chan->device->dev, sg, data->sg_len,
drivers/mmc/host/sh_mmcif.c
347
desc = dmaengine_prep_slave_sg(chan, sg, ret,
drivers/mmc/host/sh_mmcif.c
356
dma_async_issue_pending(chan);
drivers/mmc/host/sh_mmcif.c
367
dma_release_channel(chan);
drivers/mmc/host/sh_mmcif.c
369
chan = host->chan_rx;
drivers/mmc/host/sh_mmcif.c
370
if (chan) {
drivers/mmc/host/sh_mmcif.c
372
dma_release_channel(chan);
drivers/mmc/host/sh_mmcif.c
397
struct dma_chan *chan,
drivers/mmc/host/sh_mmcif.c
417
return dmaengine_slave_config(chan, &cfg);
drivers/mmc/host/sh_mmcif.c
465
struct dma_chan *chan = host->chan_tx;
drivers/mmc/host/sh_mmcif.c
467
dma_release_channel(chan);
drivers/mmc/host/sh_mmcif.c
470
struct dma_chan *chan = host->chan_rx;
drivers/mmc/host/sh_mmcif.c
472
dma_release_channel(chan);
drivers/mmc/host/uniphier-sd.c
140
if (!priv->chan)
drivers/mmc/host/uniphier-sd.c
156
desc = dmaengine_prep_slave_sg(priv->chan, host->sg_ptr, sg_len,
drivers/mmc/host/uniphier-sd.c
188
struct dma_chan *chan;
drivers/mmc/host/uniphier-sd.c
190
chan = dma_request_chan(mmc_dev(host->mmc), "rx-tx");
drivers/mmc/host/uniphier-sd.c
191
if (IS_ERR(chan)) {
drivers/mmc/host/uniphier-sd.c
198
priv->chan = chan;
drivers/mmc/host/uniphier-sd.c
199
host->chan_rx = chan;
drivers/mmc/host/uniphier-sd.c
200
host->chan_tx = chan;
drivers/mmc/host/uniphier-sd.c
209
if (priv->chan)
drivers/mmc/host/uniphier-sd.c
210
dma_release_channel(priv->chan);
drivers/mmc/host/uniphier-sd.c
219
if (priv->chan)
drivers/mmc/host/uniphier-sd.c
220
dmaengine_terminate_sync(priv->chan);
drivers/mmc/host/uniphier-sd.c
74
struct dma_chan *chan;
drivers/mmc/host/uniphier-sd.c
99
dma_async_issue_pending(priv->chan);
drivers/mmc/host/usdhi6rol0.c
521
struct dma_chan *chan = host->chan_tx;
drivers/mmc/host/usdhi6rol0.c
523
dma_release_channel(chan);
drivers/mmc/host/usdhi6rol0.c
526
struct dma_chan *chan = host->chan_rx;
drivers/mmc/host/usdhi6rol0.c
528
dma_release_channel(chan);
drivers/mmc/host/usdhi6rol0.c
566
static int usdhi6_dma_setup(struct usdhi6_host *host, struct dma_chan *chan,
drivers/mmc/host/usdhi6rol0.c
587
ret = dma_map_sg(chan->device->dev, sg, data->sg_len, data_dir);
drivers/mmc/host/usdhi6rol0.c
590
desc = dmaengine_prep_slave_sg(chan, sg, ret, dir,
drivers/mtd/nand/qpic_common.c
149
struct dma_chan *chan, unsigned long flags)
drivers/mtd/nand/qpic_common.c
163
if (chan == nandc->cmd_chan) {
drivers/mtd/nand/qpic_common.c
169
} else if (chan == nandc->tx_chan) {
drivers/mtd/nand/qpic_common.c
194
dma_desc = dmaengine_prep_slave_sg(chan, sgl, sgl_cnt, dir_eng,
drivers/mtd/nand/qpic_common.c
207
if (chan == nandc->cmd_chan)
drivers/mtd/nand/qpic_common.c
408
ret = dmaengine_slave_config(nandc->chan, &slave_conf);
drivers/mtd/nand/qpic_common.c
414
dma_desc = dmaengine_prep_slave_sg(nandc->chan, sgl, 1, dir_eng, 0);
drivers/mtd/nand/qpic_common.c
598
if (dma_sync_wait(nandc->chan, cookie) != DMA_COMPLETE)
drivers/mtd/nand/qpic_common.c
661
if (nandc->chan)
drivers/mtd/nand/qpic_common.c
662
dma_release_channel(nandc->chan);
drivers/mtd/nand/qpic_common.c
758
nandc->chan = dma_request_chan(nandc->dev, "rxtx");
drivers/mtd/nand/qpic_common.c
759
if (IS_ERR(nandc->chan)) {
drivers/mtd/nand/qpic_common.c
760
ret = PTR_ERR(nandc->chan);
drivers/mtd/nand/qpic_common.c
761
nandc->chan = NULL;
drivers/mtd/nand/raw/cadence-nand-controller.c
1875
struct dma_chan *chan;
drivers/mtd/nand/raw/cadence-nand-controller.c
1881
chan = cdns_ctrl->dmac;
drivers/mtd/nand/raw/cadence-nand-controller.c
1882
dma_dev = chan->device;
drivers/mtd/nand/raw/fsmc_nand.c
488
struct dma_chan *chan;
drivers/mtd/nand/raw/fsmc_nand.c
498
chan = host->write_dma_chan;
drivers/mtd/nand/raw/fsmc_nand.c
500
chan = host->read_dma_chan;
drivers/mtd/nand/raw/fsmc_nand.c
504
dma_dev = chan->device;
drivers/mtd/nand/raw/fsmc_nand.c
517
tx = dma_dev->device_prep_dma_memcpy(chan, dma_dst, dma_src,
drivers/mtd/nand/raw/fsmc_nand.c
535
dma_async_issue_pending(chan);
drivers/mtd/nand/raw/fsmc_nand.c
541
dmaengine_terminate_all(chan);
drivers/mtd/nand/raw/fsmc_nand.c
860
static bool filter(struct dma_chan *chan, void *slave)
drivers/mtd/nand/raw/fsmc_nand.c
862
chan->private = slave;
drivers/mtd/nand/raw/intel-nand-controller.c
293
struct dma_chan *chan;
drivers/mtd/nand/raw/intel-nand-controller.c
301
chan = ebu_host->dma_rx;
drivers/mtd/nand/raw/intel-nand-controller.c
305
chan = ebu_host->dma_tx;
drivers/mtd/nand/raw/intel-nand-controller.c
310
buf_dma = dma_map_single(chan->device->dev, (void *)buf, len, dir);
drivers/mtd/nand/raw/intel-nand-controller.c
311
if (dma_mapping_error(chan->device->dev, buf_dma)) {
drivers/mtd/nand/raw/intel-nand-controller.c
317
tx = dmaengine_prep_slave_single(chan, buf_dma, len, dir, flags);
drivers/mtd/nand/raw/intel-nand-controller.c
335
dma_async_issue_pending(chan);
drivers/mtd/nand/raw/intel-nand-controller.c
341
dmaengine_tx_status(chan, cookie, NULL));
drivers/mtd/nand/raw/intel-nand-controller.c
342
dmaengine_terminate_sync(chan);
drivers/mtd/nand/raw/loongson-nand-controller.c
393
struct dma_chan *chan = host->dma_chan;
drivers/mtd/nand/raw/loongson-nand-controller.c
394
struct device *dev = chan->device->dev;
drivers/mtd/nand/raw/loongson-nand-controller.c
397
status = dmaengine_tx_status(chan, host->dma_cookie, NULL);
drivers/mtd/nand/raw/loongson-nand-controller.c
409
struct dma_chan *chan = host->dma_chan;
drivers/mtd/nand/raw/loongson-nand-controller.c
410
struct device *dev = chan->device->dev;
drivers/mtd/nand/raw/loongson-nand-controller.c
435
desc = dmaengine_prep_slave_single(chan, dma_addr, op->len, xfer_dir, DMA_PREP_INTERRUPT);
drivers/mtd/nand/raw/loongson-nand-controller.c
452
dma_async_issue_pending(chan);
drivers/mtd/nand/raw/loongson-nand-controller.c
455
dmaengine_terminate_sync(chan);
drivers/mtd/nand/raw/loongson-nand-controller.c
791
struct dma_chan *chan;
drivers/mtd/nand/raw/loongson-nand-controller.c
822
chan = dma_request_chan(dev, "rxtx");
drivers/mtd/nand/raw/loongson-nand-controller.c
823
if (IS_ERR(chan))
drivers/mtd/nand/raw/loongson-nand-controller.c
824
return dev_err_probe(dev, PTR_ERR(chan), "failed to request DMA channel\n");
drivers/mtd/nand/raw/loongson-nand-controller.c
825
host->dma_chan = chan;
drivers/mtd/nand/raw/sh_flctl.c
381
struct dma_chan *chan;
drivers/mtd/nand/raw/sh_flctl.c
390
chan = flctl->chan_fifo0_rx;
drivers/mtd/nand/raw/sh_flctl.c
393
chan = flctl->chan_fifo0_tx;
drivers/mtd/nand/raw/sh_flctl.c
397
dma_addr = dma_map_single(chan->device->dev, buf, len, dir);
drivers/mtd/nand/raw/sh_flctl.c
399
if (!dma_mapping_error(chan->device->dev, dma_addr))
drivers/mtd/nand/raw/sh_flctl.c
400
desc = dmaengine_prep_slave_single(chan, dma_addr, len,
drivers/mtd/nand/raw/sh_flctl.c
418
dma_async_issue_pending(chan);
drivers/mtd/nand/raw/sh_flctl.c
433
dmaengine_terminate_all(chan);
drivers/mtd/nand/raw/sh_flctl.c
443
dma_unmap_single(chan->device->dev, dma_addr, len, dir);
drivers/net/can/sja1000/peak_pci.c
403
struct peak_pci_chan *chan = priv->priv;
drivers/net/can/sja1000/peak_pci.c
404
struct peak_pciec_card *card = chan->pciec_card;
drivers/net/can/sja1000/peak_pci.c
439
struct peak_pci_chan *chan = priv->priv;
drivers/net/can/sja1000/peak_pci.c
444
if (chan->prev_dev) {
drivers/net/can/sja1000/peak_pci.c
445
struct sja1000_priv *prev_priv = netdev_priv(chan->prev_dev);
drivers/net/can/sja1000/peak_pci.c
459
card->cfg_base = chan->cfg_base;
drivers/net/can/sja1000/peak_pci.c
492
chan->pciec_card = card;
drivers/net/can/sja1000/peak_pci.c
542
struct peak_pci_chan *chan = priv->priv;
drivers/net/can/sja1000/peak_pci.c
546
icr = readw(chan->cfg_base + PITA_ICR);
drivers/net/can/sja1000/peak_pci.c
547
if (icr & chan->icr_mask)
drivers/net/can/sja1000/peak_pci.c
548
writew(chan->icr_mask, chan->cfg_base + PITA_ICR);
drivers/net/can/sja1000/peak_pci.c
554
struct peak_pci_chan *chan;
drivers/net/can/sja1000/peak_pci.c
638
chan = priv->priv;
drivers/net/can/sja1000/peak_pci.c
640
chan->cfg_base = cfg_base;
drivers/net/can/sja1000/peak_pci.c
658
chan->icr_mask = peak_pci_icr_masks[i];
drivers/net/can/sja1000/peak_pci.c
659
icr |= chan->icr_mask;
drivers/net/can/sja1000/peak_pci.c
665
chan->prev_dev = pci_get_drvdata(pdev);
drivers/net/can/sja1000/peak_pci.c
691
dev->name, priv->reg_base, chan->cfg_base, dev->irq);
drivers/net/can/sja1000/peak_pci.c
700
pci_set_drvdata(pdev, chan->prev_dev);
drivers/net/can/sja1000/peak_pci.c
707
chan = NULL;
drivers/net/can/sja1000/peak_pci.c
710
chan = priv->priv;
drivers/net/can/sja1000/peak_pci.c
711
prev_dev = chan->prev_dev;
drivers/net/can/sja1000/peak_pci.c
718
if (chan && chan->pciec_card)
drivers/net/can/sja1000/peak_pci.c
719
peak_pciec_remove(chan->pciec_card);
drivers/net/can/sja1000/peak_pci.c
743
struct peak_pci_chan *chan = priv->priv;
drivers/net/can/sja1000/peak_pci.c
744
void __iomem *cfg_base = chan->cfg_base;
drivers/net/can/sja1000/peak_pci.c
752
struct net_device *prev_dev = chan->prev_dev;
drivers/net/can/sja1000/peak_pci.c
756
if (!prev_dev && chan->pciec_card)
drivers/net/can/sja1000/peak_pci.c
757
peak_pciec_remove(chan->pciec_card);
drivers/net/can/sja1000/peak_pci.c
765
chan = priv->priv;
drivers/net/dsa/microchip/ksz_ptp.c
849
enum ptp_pin_function func, unsigned int chan)
drivers/net/dsa/mv88e6xxx/chip.h
773
enum ptp_pin_function func, unsigned int chan);
drivers/net/dsa/mv88e6xxx/ptp.c
371
enum ptp_pin_function func, unsigned int chan)
drivers/net/dsa/sja1105/sja1105_ptp.c
849
enum ptp_pin_function func, unsigned int chan)
drivers/net/dsa/sja1105/sja1105_ptp.c
854
if (chan != 0 || pin != 0)
drivers/net/ethernet/airoha/airoha_eth.c
1977
u32 val, pse_port, chan;
drivers/net/ethernet/airoha/airoha_eth.c
1993
chan = port->id == AIROHA_GDM3_IDX ? airoha_is_7581(eth) ? 4 : 3 : 0;
drivers/net/ethernet/airoha/airoha_eth.c
1996
FIELD_PREP(LPBK_CHAN_MASK, chan) |
drivers/net/ethernet/aquantia/atlantic/aq_ptp.c
1337
pin_desc[out_pin_cnt].chan = out_pin_cnt;
drivers/net/ethernet/aquantia/atlantic/aq_ptp.c
1351
pin_desc[out_pin_cnt].chan = 0;
drivers/net/ethernet/aquantia/atlantic/aq_ptp.c
543
enum ptp_pin_function func, unsigned int chan)
drivers/net/ethernet/aquantia/atlantic/aq_ptp.c
550
if (chan != ptp->pin_config[pin].chan)
drivers/net/ethernet/broadcom/bcm63xx_enet.c
103
u32 val, u32 off, int chan)
drivers/net/ethernet/broadcom/bcm63xx_enet.c
106
bcm63xx_enetdmacreg(off) + chan * priv->dma_chan_width);
drivers/net/ethernet/broadcom/bcm63xx_enet.c
109
static inline u32 enet_dmas_readl(struct bcm_enet_priv *priv, u32 off, int chan)
drivers/net/ethernet/broadcom/bcm63xx_enet.c
111
return bcm_readl(bcm_enet_shared_base[2] + off + chan * priv->dma_chan_width);
drivers/net/ethernet/broadcom/bcm63xx_enet.c
115
u32 val, u32 off, int chan)
drivers/net/ethernet/broadcom/bcm63xx_enet.c
1165
static void bcm_enet_disable_dma(struct bcm_enet_priv *priv, int chan)
drivers/net/ethernet/broadcom/bcm63xx_enet.c
1169
enet_dmac_writel(priv, 0, ENETDMAC_CHANCFG, chan);
drivers/net/ethernet/broadcom/bcm63xx_enet.c
117
bcm_writel(val, bcm_enet_shared_base[2] + off + chan * priv->dma_chan_width);
drivers/net/ethernet/broadcom/bcm63xx_enet.c
1175
val = enet_dmac_readl(priv, ENETDMAC_CHANCFG, chan);
drivers/net/ethernet/broadcom/bcm63xx_enet.c
96
static inline u32 enet_dmac_readl(struct bcm_enet_priv *priv, u32 off, int chan)
drivers/net/ethernet/broadcom/bcm63xx_enet.c
99
bcm63xx_enetdmacreg(off) + chan * priv->dma_chan_width);
drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c
929
enum ptp_pin_function func, unsigned int chan)
drivers/net/ethernet/broadcom/sb1250-mac.c
269
static void sbdma_initctx(struct sbmacdma *d, struct sbmac_softc *s, int chan,
drivers/net/ethernet/broadcom/sb1250-mac.c
557
static void sbdma_initctx(struct sbmacdma *d, struct sbmac_softc *s, int chan,
drivers/net/ethernet/broadcom/sb1250-mac.c
569
d->sbdma_channel = chan;
drivers/net/ethernet/broadcom/sb1250-mac.c
604
s->sbm_base + R_MAC_DMA_REGISTER(txrx,chan,R_MAC_DMA_CONFIG0);
drivers/net/ethernet/broadcom/sb1250-mac.c
606
s->sbm_base + R_MAC_DMA_REGISTER(txrx,chan,R_MAC_DMA_CONFIG1);
drivers/net/ethernet/broadcom/sb1250-mac.c
608
s->sbm_base + R_MAC_DMA_REGISTER(txrx,chan,R_MAC_DMA_DSCR_BASE);
drivers/net/ethernet/broadcom/sb1250-mac.c
610
s->sbm_base + R_MAC_DMA_REGISTER(txrx,chan,R_MAC_DMA_DSCR_CNT);
drivers/net/ethernet/broadcom/sb1250-mac.c
612
s->sbm_base + R_MAC_DMA_REGISTER(txrx,chan,R_MAC_DMA_CUR_DSCRADDR);
drivers/net/ethernet/broadcom/sb1250-mac.c
617
s->sbm_base + R_MAC_DMA_REGISTER(txrx,chan,R_MAC_DMA_OODPKTLOST_RX);
drivers/net/ethernet/broadcom/tg3.c
2467
int chan;
drivers/net/ethernet/broadcom/tg3.c
2469
for (chan = 0; chan < 4; chan++) {
drivers/net/ethernet/broadcom/tg3.c
2473
(chan * 0x2000) | 0x0200);
drivers/net/ethernet/broadcom/tg3.c
2478
test_pat[chan][i]);
drivers/net/ethernet/broadcom/tg3.c
2487
(chan * 0x2000) | 0x0200);
drivers/net/ethernet/broadcom/tg3.c
2511
if (low != test_pat[chan][i] ||
drivers/net/ethernet/broadcom/tg3.c
2512
high != test_pat[chan][i+1]) {
drivers/net/ethernet/broadcom/tg3.c
2527
int chan;
drivers/net/ethernet/broadcom/tg3.c
2529
for (chan = 0; chan < 4; chan++) {
drivers/net/ethernet/broadcom/tg3.c
2533
(chan * 0x2000) | 0x0200);
drivers/net/ethernet/cavium/thunder/nic_main.c
475
u32 vnic, bgx, lmac, chan;
drivers/net/ethernet/cavium/thunder/nic_main.c
484
chan = (lmac * hw->chans_per_lmac) + (bgx * hw->chans_per_bgx);
drivers/net/ethernet/cavium/thunder/nic_main.c
489
nic_reg_write(nic, NIC_PF_CHAN_0_255_RX_BP_CFG | (chan << 3),
drivers/net/ethernet/cavium/thunder/nic_main.c
491
nic_reg_write(nic, NIC_PF_CHAN_0_255_RX_CFG | (chan << 3),
drivers/net/ethernet/cavium/thunder/nic_main.c
615
u32 bgx, lmac, chan;
drivers/net/ethernet/cavium/thunder/nic_main.c
669
chan = (lmac * hw->chans_per_lmac) + (bgx * hw->chans_per_bgx);
drivers/net/ethernet/cavium/thunder/nic_main.c
671
nic_reg_write(nic, NIC_PF_TL3_0_255_CHAN | (tl3 << 3), chan);
drivers/net/ethernet/cavium/thunder/nic_main.c
676
nic_reg_write(nic, NIC_PF_CHAN_0_255_TX_CFG | (chan << 3), 1);
drivers/net/ethernet/cavium/thunder/q_struct.h
199
u64 chan:12;
drivers/net/ethernet/cavium/thunder/q_struct.h
239
u64 chan:12;
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
1728
static void mk_tid_release(struct sk_buff *skb, unsigned int chan,
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
1733
set_wr_txq(skb, CPL_PRIORITY_SETUP, chan);
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
1743
static void cxgb4_queue_tid_release(struct tid_info *t, unsigned int chan,
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
1752
adap->tid_release_head = (void **)((uintptr_t)p | chan);
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
1773
unsigned int chan = (uintptr_t)p & 3;
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
1774
p = (void *)p - chan;
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
1784
mk_tid_release(skb, chan, p - adap->tids.tid_tab);
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
1796
void cxgb4_remove_tid(struct tid_info *t, unsigned int chan, unsigned int tid,
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
1825
mk_tid_release(skb, chan, tid);
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
1828
cxgb4_queue_tid_release(t, chan, tid);
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
1929
unsigned int chan;
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
1947
chan = rxq_to_chan(&adap->sge, queue);
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
1948
req->opt0 = cpu_to_be64(TX_CHAN_V(chan));
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
1970
unsigned int chan;
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
1990
chan = rxq_to_chan(&adap->sge, queue);
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
1991
req->opt0 = cpu_to_be64(TX_CHAN_V(chan));
drivers/net/ethernet/chelsio/cxgb4/t4_hw.c
8852
int chan = FW_PORT_CMD_PORTID_G(be32_to_cpu(p->op_to_portid));
drivers/net/ethernet/chelsio/cxgb4/t4_hw.c
8857
if (pi->tx_chan == chan)
drivers/net/ethernet/chelsio/cxgb4/t4_hw.c
9404
int chan, ret;
drivers/net/ethernet/chelsio/cxgb4/t4_hw.c
9412
for (chan = 0; chan < NCHAN; chan++)
drivers/net/ethernet/chelsio/cxgb4/t4_hw.c
9413
adap->params.tp.tx_modq[chan] = chan;
drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.h
101
cxgb_mk_close_con_req(struct sk_buff *skb, u32 len, u32 tid, u16 chan,
drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.h
110
set_wr_txq(skb, CPL_PRIORITY_DATA, chan);
drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.h
115
cxgb_mk_abort_req(struct sk_buff *skb, u32 len, u32 tid, u16 chan,
drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.h
125
set_wr_txq(skb, CPL_PRIORITY_DATA, chan);
drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.h
130
cxgb_mk_abort_rpl(struct sk_buff *skb, u32 len, u32 tid, u16 chan)
drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.h
139
set_wr_txq(skb, CPL_PRIORITY_DATA, chan);
drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.h
143
cxgb_mk_rx_data_ack(struct sk_buff *skb, u32 len, u32 tid, u16 chan,
drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.h
153
set_wr_txq(skb, CPL_PRIORITY_ACK, chan);
drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.h
89
cxgb_mk_tid_release(struct sk_buff *skb, u32 len, u32 tid, u16 chan)
drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.h
97
set_wr_txq(skb, CPL_PRIORITY_SETUP, chan);
drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
893
priv->cgr_data.cgr.chan);
drivers/net/ethernet/fungible/funeth/funeth_ethtool.c
525
struct ethtool_channels *chan)
drivers/net/ethernet/fungible/funeth/funeth_ethtool.c
527
chan->max_rx = netdev->num_rx_queues;
drivers/net/ethernet/fungible/funeth/funeth_ethtool.c
528
chan->rx_count = netdev->real_num_rx_queues;
drivers/net/ethernet/fungible/funeth/funeth_ethtool.c
530
chan->max_tx = netdev->num_tx_queues;
drivers/net/ethernet/fungible/funeth/funeth_ethtool.c
531
chan->tx_count = netdev->real_num_tx_queues;
drivers/net/ethernet/fungible/funeth/funeth_ethtool.c
535
struct ethtool_channels *chan)
drivers/net/ethernet/fungible/funeth/funeth_ethtool.c
537
if (!chan->tx_count || !chan->rx_count)
drivers/net/ethernet/fungible/funeth/funeth_ethtool.c
540
if (chan->tx_count == netdev->real_num_tx_queues &&
drivers/net/ethernet/fungible/funeth/funeth_ethtool.c
541
chan->rx_count == netdev->real_num_rx_queues)
drivers/net/ethernet/fungible/funeth/funeth_ethtool.c
545
return fun_change_num_queues(netdev, chan->tx_count,
drivers/net/ethernet/fungible/funeth/funeth_ethtool.c
546
chan->rx_count);
drivers/net/ethernet/fungible/funeth/funeth_ethtool.c
548
fun_set_ring_count(netdev, chan->tx_count, chan->rx_count);
drivers/net/ethernet/hisilicon/hip04_eth.c
215
int chan;
drivers/net/ethernet/hisilicon/hip04_eth.c
332
val |= priv->chan << PPE_CFG_RX_START_SHIFT;
drivers/net/ethernet/hisilicon/hip04_eth.c
939
priv->chan = arg.args[1] * RX_DESC_NUM;
drivers/net/ethernet/intel/i40e/i40e_ptp.c
1356
pf->ptp_caps.pin_config[i].chan = sdp_desc[i].chan;
drivers/net/ethernet/intel/i40e/i40e_ptp.c
255
enum ptp_pin_function func, unsigned int chan)
drivers/net/ethernet/intel/i40e/i40e_ptp.c
533
static int i40e_ptp_enable_pin(struct i40e_pf *pf, unsigned int chan,
drivers/net/ethernet/intel/i40e/i40e_ptp.c
556
pin_index = ptp_find_pin(pf->ptp_clock, func, chan);
drivers/net/ethernet/intel/i40e/i40e_ptp.c
574
*pin = i40e_pin_state(chan, func);
drivers/net/ethernet/intel/i40e/i40e_ptp.c
599
unsigned int chan;
drivers/net/ethernet/intel/i40e/i40e_ptp.c
605
chan = rq->extts.index;
drivers/net/ethernet/intel/i40e/i40e_ptp.c
609
chan = rq->perout.index;
drivers/net/ethernet/intel/i40e/i40e_ptp.c
617
return i40e_ptp_enable_pin(pf, chan, func, on);
drivers/net/ethernet/intel/ice/ice_ptp.c
1473
u8 chan, tmr_idx;
drivers/net/ethernet/intel/ice/ice_ptp.c
1486
for (chan = 0; chan < GLTSYN_EVNT_H_IDX_MAX; chan++) {
drivers/net/ethernet/intel/ice/ice_ptp.c
1490
if (!(pf->ptp.ext_ts_irq & (1 << chan)))
drivers/net/ethernet/intel/ice/ice_ptp.c
1493
lo = rd32(hw, GLTSYN_EVNT_L(chan, tmr_idx));
drivers/net/ethernet/intel/ice/ice_ptp.c
1494
hi = rd32(hw, GLTSYN_EVNT_H(chan, tmr_idx));
drivers/net/ethernet/intel/ice/ice_ptp.c
1498
pin_desc_idx = ice_ptp_find_pin_idx(pf, PTP_PF_EXTTS, chan);
drivers/net/ethernet/intel/ice/ice_ptp.c
1507
event.index = chan;
drivers/net/ethernet/intel/ice/ice_ptp.c
1508
pf->ptp.ext_ts_irq &= ~(1 << chan);
drivers/net/ethernet/intel/ice/ice_ptp.c
1528
unsigned int chan, gpio_pin;
drivers/net/ethernet/intel/ice/ice_ptp.c
1533
chan = rq->index;
drivers/net/ethernet/intel/ice/ice_ptp.c
1535
pin_desc_idx = ice_ptp_find_pin_idx(pf, PTP_PF_EXTTS, chan);
drivers/net/ethernet/intel/ice/ice_ptp.c
1561
1 + chan + (tmr_idx * 3));
drivers/net/ethernet/intel/ice/ice_ptp.c
1572
i != chan) {
drivers/net/ethernet/intel/ice/ice_ptp.c
1581
wr32(hw, GLTSYN_AUX_IN(chan, tmr_idx), aux_reg);
drivers/net/ethernet/intel/ice/ice_ptp.c
1625
static int ice_ptp_write_perout(struct ice_hw *hw, unsigned int chan,
drivers/net/ethernet/intel/ice/ice_ptp.c
1633
wr32(hw, GLTSYN_AUX_OUT(chan, tmr_idx), 0);
drivers/net/ethernet/intel/ice/ice_ptp.c
1660
wr32(hw, GLTSYN_CLKO(chan, tmr_idx), lower_32_bits(period));
drivers/net/ethernet/intel/ice/ice_ptp.c
1663
wr32(hw, GLTSYN_TGT_L(chan, tmr_idx), lower_32_bits(start));
drivers/net/ethernet/intel/ice/ice_ptp.c
1664
wr32(hw, GLTSYN_TGT_H(chan, tmr_idx), upper_32_bits(start));
drivers/net/ethernet/intel/ice/ice_ptp.c
1669
wr32(hw, GLTSYN_AUX_OUT(chan, tmr_idx), val);
drivers/net/ethernet/intel/ice/ice_ptp.c
1675
8 + chan + (tmr_idx * 4));
drivers/net/ethernet/intel/ice/ice_ptp.c
1793
enum ptp_pin_function func, unsigned int chan)
drivers/net/ethernet/intel/ice/ice_ptp.c
74
unsigned int chan)
drivers/net/ethernet/intel/ice/ice_ptp.c
81
info->pin_config[i].chan == chan)
drivers/net/ethernet/intel/idpf/idpf_ptp.c
548
enum ptp_pin_function func, unsigned int chan)
drivers/net/ethernet/intel/igb/igb_ptp.c
387
static void igb_pin_extts(struct igb_adapter *igb, int chan, int pin)
drivers/net/ethernet/intel/igb/igb_ptp.c
410
if (chan == 1) {
drivers/net/ethernet/intel/igb/igb_ptp.c
423
static void igb_pin_perout(struct igb_adapter *igb, int chan, int pin, int freq)
drivers/net/ethernet/intel/igb/igb_ptp.c
472
if (chan == 1)
drivers/net/ethernet/intel/igb/igb_ptp.c
477
if (chan == 1)
drivers/net/ethernet/intel/igb/igb_ptp.c
786
enum ptp_pin_function func, unsigned int chan)
drivers/net/ethernet/intel/igc/igc_ptp.c
144
static void igc_pin_perout(struct igc_adapter *igc, int chan, int pin, int freq)
drivers/net/ethernet/intel/igc/igc_ptp.c
193
if (chan == 1)
drivers/net/ethernet/intel/igc/igc_ptp.c
198
if (chan == 1)
drivers/net/ethernet/intel/igc/igc_ptp.c
210
static void igc_pin_extts(struct igc_adapter *igc, int chan, int pin)
drivers/net/ethernet/intel/igc/igc_ptp.c
233
if (chan == 1) {
drivers/net/ethernet/intel/igc/igc_ptp.c
408
enum ptp_pin_function func, unsigned int chan)
drivers/net/ethernet/marvell/octeontx2/af/npc.h
663
u16 chan;
drivers/net/ethernet/marvell/octeontx2/af/rvu.h
1064
int nixlf, u64 chan, u8 *mac_addr);
drivers/net/ethernet/marvell/octeontx2/af/rvu.h
1066
int nixlf, u64 chan, u8 chan_cnt);
drivers/net/ethernet/marvell/octeontx2/af/rvu.h
1070
int nixlf, u64 chan);
drivers/net/ethernet/marvell/octeontx2/af/rvu.h
1072
u64 chan);
drivers/net/ethernet/marvell/octeontx2/af/rvu.h
831
u8 lmacid, u8 chan)
drivers/net/ethernet/marvell/octeontx2/af/rvu.h
838
return NIX_CHAN_CGX_LMAC_CHX(cgxid, lmacid, chan);
drivers/net/ethernet/marvell/octeontx2/af/rvu.h
841
(cgxid * hw->lmac_per_cgx + lmacid) * cgx_chans + chan;
drivers/net/ethernet/marvell/octeontx2/af/rvu.h
845
u8 chan)
drivers/net/ethernet/marvell/octeontx2/af/rvu.h
852
return NIX_CHAN_LBK_CHX(lbkid, chan);
drivers/net/ethernet/marvell/octeontx2/af/rvu.h
854
return rvu->hw->lbk_chan_base + lbkid * lbk_chans + chan;
drivers/net/ethernet/marvell/octeontx2/af/rvu.h
857
static inline u16 rvu_nix_chan_sdp(struct rvu *rvu, u8 chan)
drivers/net/ethernet/marvell/octeontx2/af/rvu.h
862
return NIX_CHAN_SDP_CHX(chan);
drivers/net/ethernet/marvell/octeontx2/af/rvu.h
864
return hw->sdp_chan_base + chan;
drivers/net/ethernet/marvell/octeontx2/af/rvu.h
867
static inline u16 rvu_nix_chan_cpt(struct rvu *rvu, u8 chan)
drivers/net/ethernet/marvell/octeontx2/af/rvu.h
869
return rvu->hw->cpt_chan_base + chan;
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
3558
seq_printf(s, "\tchannel: 0x%x\n", iter->chan);
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
3649
seq_printf(s, "0x%x %pM\t\t\t", mem_entry[j]->chan,
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
3666
seq_printf(s, "%d\t0x%x\t%pM\n", cam_entry->index, cam_entry->chan,
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
3720
u16 chan, pcifunc;
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
3739
chan = field->kw_mask[0] & cam1;
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
3745
i, rvu_read64(rvu, blkaddr, off), chan, str);
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
3750
chan, str);
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
824
char cgx[10], lmac[10], chan[10];
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
862
sprintf(chan, "%d",
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
866
chan);
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
579
static u16 nix_get_channel(u16 chan, bool cpt_link)
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
584
return cpt_link ? chan | BIT(11) : chan;
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
593
u16 chan_base, chan, bpid;
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
618
for (chan = chan_base; chan < (chan_base + req->chan_cnt); chan++) {
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
619
chan_v = nix_get_channel(chan, cpt_link);
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
741
u16 chan_base, chan;
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
766
for (chan = chan_base; chan < (chan_base + req->chan_cnt); chan++) {
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
772
chan_v = nix_get_channel(chan, cpt_link);
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
782
for (chan = 0; chan < req->chan_cnt; chan++) {
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
784
rsp->chan_bpid[chan] = ((req->chan_base + chan) & 0x7F) << 10 |
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c
1067
req.channel = chan;
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c
719
int nixlf, u64 chan, u8 *mac_addr)
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c
766
req.channel = chan;
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c
783
int nixlf, u64 chan, u8 chan_cnt)
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c
875
req.channel = chan;
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c
918
int nixlf, u64 chan)
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c
975
req.channel = chan;
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c
989
u64 chan)
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c
1587
rule->chan = cn20k_wreq.entry_data.kw[0] &
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c
1592
rule->chan = write_req.entry_data.kw[0] & NPC_KEX_CHAN_MASK;
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c
1595
rule->chan &= rule->chan_mask;
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c
2162
rule->chan = chan_val;
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c
1330
u16 chan, u8 ctype, u32 *seq_id, bool cmd,
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c
1345
err = rvu_npc_exact_alloc_table_entry(rvu, mac, chan, ctype, &index, &ways, &opc_type);
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c
1352
mdata = rvu_exact_prepare_table_entry(rvu, true, ctype, chan, mac);
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c
1361
mac, chan, ctype, seq_id, cmd, mcam_idx, pcifunc);
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c
1434
hash_index = rvu_exact_calculate_hash(rvu, entry->chan, entry->ctype,
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c
1446
mdata = rvu_exact_prepare_table_entry(rvu, true, entry->ctype, entry->chan, new_mac);
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c
414
static u64 rvu_exact_prepare_mdata(u8 *mac, u16 chan, u16 ctype, u64 mask)
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c
421
ldata |= ((u64)chan << 48);
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c
439
static u32 rvu_exact_calculate_hash(struct rvu *rvu, u16 chan, u16 ctype, u8 *mac,
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c
455
ldata = rvu_exact_prepare_mdata(mac, chan, ctype, mask);
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c
601
u8 ctype, u16 chan, u8 *mac_addr)
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c
613
mdata |= FIELD_PREP(GENMASK_ULL(59, 48), chan);
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c
798
u32 index, u8 cgx_id, u8 lmac_id, u8 *mac_addr, u16 chan,
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c
851
entry->chan = chan;
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c
986
static int rvu_npc_exact_alloc_table_entry(struct rvu *rvu, char *mac, u16 chan, u8 ctype,
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c
996
hash = rvu_exact_calculate_hash(rvu, chan, ctype, mac, table->mem_table.mask,
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.h
157
u16 chan;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c
1920
int chan, chan_id;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c
1922
for (chan = 0; chan < rsp->chan_cnt; chan++) {
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c
1923
chan_id = ((rsp->chan_bpid[chan] >> 10) & 0x7F);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c
1924
pfvf->bpid[chan_id] = rsp->chan_bpid[chan] & 0x3FF;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
275
enum ptp_pin_function func, unsigned int chan)
drivers/net/ethernet/marvell/octeontx2/nic/otx2_struct.h
91
u64 chan : 12;
drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
1007
enum ptp_pin_function func, unsigned int chan)
drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c
1107
clock->ptp_info.pin_config[i].chan = 0;
drivers/net/ethernet/micrel/ks8842.c
131
struct dma_chan *chan;
drivers/net/ethernet/micrel/ks8842.c
139
struct dma_chan *chan;
drivers/net/ethernet/micrel/ks8842.c
451
ctl->adesc = dmaengine_prep_slave_sg(ctl->chan,
drivers/net/ethernet/micrel/ks8842.c
562
ctl->adesc = dmaengine_prep_slave_sg(ctl->chan,
drivers/net/ethernet/micrel/ks8842.c
867
if (tx_ctl->chan)
drivers/net/ethernet/micrel/ks8842.c
868
dmaengine_terminate_all(tx_ctl->chan);
drivers/net/ethernet/micrel/ks8842.c
871
if (rx_ctl->chan)
drivers/net/ethernet/micrel/ks8842.c
872
dmaengine_terminate_all(rx_ctl->chan);
drivers/net/ethernet/micrel/ks8842.c
890
if (tx_ctl->chan)
drivers/net/ethernet/micrel/ks8842.c
891
dma_release_channel(tx_ctl->chan);
drivers/net/ethernet/micrel/ks8842.c
892
tx_ctl->chan = NULL;
drivers/net/ethernet/micrel/ks8842.c
894
if (rx_ctl->chan)
drivers/net/ethernet/micrel/ks8842.c
895
dma_release_channel(rx_ctl->chan);
drivers/net/ethernet/micrel/ks8842.c
896
rx_ctl->chan = NULL;
drivers/net/ethernet/micrel/ks8842.c
909
static bool ks8842_dma_filter_fn(struct dma_chan *chan, void *filter_param)
drivers/net/ethernet/micrel/ks8842.c
911
return chan->chan_id == (long)filter_param;
drivers/net/ethernet/micrel/ks8842.c
929
tx_ctl->chan = dma_request_channel(mask, ks8842_dma_filter_fn,
drivers/net/ethernet/micrel/ks8842.c
931
if (!tx_ctl->chan) {
drivers/net/ethernet/micrel/ks8842.c
951
rx_ctl->chan = dma_request_channel(mask, ks8842_dma_filter_fn,
drivers/net/ethernet/micrel/ks8842.c
953
if (!rx_ctl->chan) {
drivers/net/ethernet/microchip/lan743x_ptp.c
998
unsigned int chan)
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
794
enum ptp_pin_function func, unsigned int chan)
drivers/net/ethernet/microchip/lan966x/lan966x_ptp.c
802
if (chan != 0)
drivers/net/ethernet/mscc/ocelot_fdma.c
101
static int ocelot_fdma_wait_chan_safe(struct ocelot *ocelot, int chan)
drivers/net/ethernet/mscc/ocelot_fdma.c
106
safe & BIT(chan), 0,
drivers/net/ethernet/mscc/ocelot_fdma.c
238
const u8 chan = MSCC_FDMA_XTR_CHAN;
drivers/net/ethernet/mscc/ocelot_fdma.c
245
ret = ocelot_fdma_wait_chan_safe(ocelot, chan);
drivers/net/ethernet/mscc/ocelot_fdma.c
258
llp_prev = ocelot_fdma_readl(ocelot, MSCC_FDMA_DCB_LLP_PREV(chan));
drivers/net/ethernet/mscc/ocelot_fdma.c
267
ocelot_fdma_activate_chan(ocelot, new_llp, chan);
drivers/net/ethernet/mscc/ocelot_fdma.c
86
int chan)
drivers/net/ethernet/mscc/ocelot_fdma.c
88
ocelot_fdma_writel(ocelot, MSCC_FDMA_DCB_LLP(chan), dma);
drivers/net/ethernet/mscc/ocelot_fdma.c
93
ocelot_fdma_writel(ocelot, MSCC_FDMA_CH_ACTIVATE, BIT(chan));
drivers/net/ethernet/mscc/ocelot_ptp.c
185
enum ptp_pin_function func, unsigned int chan)
drivers/net/ethernet/pasemi/pasemi_mac.c
1103
write_iob_reg(PAS_IOB_DMA_RXCH_CFG(mac->rx->chan.chno),
drivers/net/ethernet/pasemi/pasemi_mac.c
1106
write_iob_reg(PAS_IOB_DMA_TXCH_CFG(mac->tx->chan.chno),
drivers/net/ethernet/pasemi/pasemi_mac.c
1110
PAS_MAC_IPC_CHNL_DCHNO(mac->rx->chan.chno) |
drivers/net/ethernet/pasemi/pasemi_mac.c
1111
PAS_MAC_IPC_CHNL_BCH(mac->rx->chan.chno));
drivers/net/ethernet/pasemi/pasemi_mac.c
1122
pasemi_dma_start_chan(&rx_ring(mac)->chan, PAS_DMA_RXCHAN_CCMDSTA_DU |
drivers/net/ethernet/pasemi/pasemi_mac.c
1128
pasemi_dma_start_chan(&tx_ring(mac)->chan, PAS_DMA_TXCHAN_TCMDSTA_SZ |
drivers/net/ethernet/pasemi/pasemi_mac.c
1135
write_dma_reg(PAS_DMA_RXCHAN_INCR(rx_ring(mac)->chan.chno),
drivers/net/ethernet/pasemi/pasemi_mac.c
1171
ret = request_irq(mac->tx->chan.irq, pasemi_mac_tx_intr, 0,
drivers/net/ethernet/pasemi/pasemi_mac.c
1175
mac->tx->chan.irq, ret);
drivers/net/ethernet/pasemi/pasemi_mac.c
1182
ret = request_irq(mac->rx->chan.irq, pasemi_mac_rx_intr, 0,
drivers/net/ethernet/pasemi/pasemi_mac.c
1186
mac->rx->chan.irq, ret);
drivers/net/ethernet/pasemi/pasemi_mac.c
1199
free_irq(mac->tx->chan.irq, mac->tx);
drivers/net/ethernet/pasemi/pasemi_mac.c
1217
int txch = tx_ring(mac)->chan.chno;
drivers/net/ethernet/pasemi/pasemi_mac.c
1239
int rxch = rx_ring(mac)->chan.chno;
drivers/net/ethernet/pasemi/pasemi_mac.c
1281
rxch = rx_ring(mac)->chan.chno;
drivers/net/ethernet/pasemi/pasemi_mac.c
1282
txch = tx_ring(mac)->chan.chno;
drivers/net/ethernet/pasemi/pasemi_mac.c
1321
free_irq(mac->tx->chan.irq, mac->tx);
drivers/net/ethernet/pasemi/pasemi_mac.c
1322
free_irq(mac->rx->chan.irq, mac->rx);
drivers/net/ethernet/pasemi/pasemi_mac.c
1378
csdma = csring->chan.ring_dma + (fill & (CS_RING_SIZE-1)) * 8 + 2;
drivers/net/ethernet/pasemi/pasemi_mac.c
1409
write_dma_reg(PAS_DMA_TXCHAN_INCR(csring->chan.chno), (cs_size) >> 1);
drivers/net/ethernet/pasemi/pasemi_mac.c
1421
write_dma_reg(PAS_DMA_TXCHAN_INCR(txring->chan.chno), 2);
drivers/net/ethernet/pasemi/pasemi_mac.c
1527
write_dma_reg(PAS_DMA_TXCHAN_INCR(txring->chan.chno), (nfrags+2) >> 1);
drivers/net/ethernet/pasemi/pasemi_mac.c
1585
disable_irq(mac->tx->chan.irq);
drivers/net/ethernet/pasemi/pasemi_mac.c
1586
pasemi_mac_tx_intr(mac->tx->chan.irq, mac->tx);
drivers/net/ethernet/pasemi/pasemi_mac.c
1587
enable_irq(mac->tx->chan.irq);
drivers/net/ethernet/pasemi/pasemi_mac.c
1589
disable_irq(mac->rx->chan.irq);
drivers/net/ethernet/pasemi/pasemi_mac.c
1590
pasemi_mac_rx_intr(mac->rx->chan.irq, mac->rx);
drivers/net/ethernet/pasemi/pasemi_mac.c
1591
enable_irq(mac->rx->chan.irq);
drivers/net/ethernet/pasemi/pasemi_mac.c
1807
pasemi_dma_free_chan(&mac->tx->chan);
drivers/net/ethernet/pasemi/pasemi_mac.c
1808
pasemi_dma_free_chan(&mac->rx->chan);
drivers/net/ethernet/pasemi/pasemi_mac.c
275
offsetof(struct pasemi_mac_csring, chan));
drivers/net/ethernet/pasemi/pasemi_mac.c
282
chno = ring->chan.chno;
drivers/net/ethernet/pasemi/pasemi_mac.c
288
if (pasemi_dma_alloc_ring(&ring->chan, CS_RING_SIZE))
drivers/net/ethernet/pasemi/pasemi_mac.c
292
PAS_DMA_TXCHAN_BASEL_BRBL(ring->chan.ring_dma));
drivers/net/ethernet/pasemi/pasemi_mac.c
293
val = PAS_DMA_TXCHAN_BASEU_BRBH(ring->chan.ring_dma >> 32);
drivers/net/ethernet/pasemi/pasemi_mac.c
320
pasemi_dma_start_chan(&ring->chan, PAS_DMA_TXCHAN_TCMDSTA_SZ |
drivers/net/ethernet/pasemi/pasemi_mac.c
333
pasemi_dma_free_ring(&ring->chan);
drivers/net/ethernet/pasemi/pasemi_mac.c
335
pasemi_dma_free_chan(&ring->chan);
drivers/net/ethernet/pasemi/pasemi_mac.c
357
pasemi_dma_stop_chan(&csring->chan);
drivers/net/ethernet/pasemi/pasemi_mac.c
360
pasemi_dma_free_ring(&csring->chan);
drivers/net/ethernet/pasemi/pasemi_mac.c
361
pasemi_dma_free_chan(&csring->chan);
drivers/net/ethernet/pasemi/pasemi_mac.c
373
offsetof(struct pasemi_mac_rxring, chan));
drivers/net/ethernet/pasemi/pasemi_mac.c
379
chno = ring->chan.chno;
drivers/net/ethernet/pasemi/pasemi_mac.c
390
if (pasemi_dma_alloc_ring(&ring->chan, RX_RING_SIZE))
drivers/net/ethernet/pasemi/pasemi_mac.c
400
PAS_DMA_RXCHAN_BASEL_BRBL(ring->chan.ring_dma));
drivers/net/ethernet/pasemi/pasemi_mac.c
403
PAS_DMA_RXCHAN_BASEU_BRBH(ring->chan.ring_dma >> 32) |
drivers/net/ethernet/pasemi/pasemi_mac.c
439
pasemi_dma_free_chan(&ring->chan);
drivers/net/ethernet/pasemi/pasemi_mac.c
454
offsetof(struct pasemi_mac_txring, chan));
drivers/net/ethernet/pasemi/pasemi_mac.c
461
chno = ring->chan.chno;
drivers/net/ethernet/pasemi/pasemi_mac.c
471
if (pasemi_dma_alloc_ring(&ring->chan, TX_RING_SIZE))
drivers/net/ethernet/pasemi/pasemi_mac.c
475
PAS_DMA_TXCHAN_BASEL_BRBL(ring->chan.ring_dma));
drivers/net/ethernet/pasemi/pasemi_mac.c
476
val = PAS_DMA_TXCHAN_BASEU_BRBH(ring->chan.ring_dma >> 32);
drivers/net/ethernet/pasemi/pasemi_mac.c
500
pasemi_dma_free_chan(&ring->chan);
drivers/net/ethernet/pasemi/pasemi_mac.c
536
pasemi_dma_free_chan(&txring->chan);
drivers/net/ethernet/pasemi/pasemi_mac.c
569
pasemi_dma_free_chan(&rx_ring(mac)->chan);
drivers/net/ethernet/pasemi/pasemi_mac.c
630
pcnt = *rx->chan.status & PAS_STATUS_PCNT_M;
drivers/net/ethernet/pasemi/pasemi_mac.c
634
if (*rx->chan.status & PAS_STATUS_TIMER)
drivers/net/ethernet/pasemi/pasemi_mac.c
637
write_iob_reg(PAS_IOB_DMA_RXCH_RESET(mac->rx->chan.chno), reg);
drivers/net/ethernet/pasemi/pasemi_mac.c
645
pcnt = *tx_ring(mac)->chan.status & PAS_STATUS_PCNT_M;
drivers/net/ethernet/pasemi/pasemi_mac.c
649
write_iob_reg(PAS_IOB_DMA_TXCH_RESET(tx_ring(mac)->chan.chno), reg);
drivers/net/ethernet/pasemi/pasemi_mac.c
657
struct pasemi_dmachan *chan = &rx_ring(mac)->chan;
drivers/net/ethernet/pasemi/pasemi_mac.c
663
ccmdsta = read_dma_reg(PAS_DMA_RXCHAN_CCMDSTA(chan->chno));
drivers/net/ethernet/pasemi/pasemi_mac.c
666
macrx, *chan->status);
drivers/net/ethernet/pasemi/pasemi_mac.c
676
struct pasemi_dmachan *chan = &tx_ring(mac)->chan;
drivers/net/ethernet/pasemi/pasemi_mac.c
681
cmdsta = read_dma_reg(PAS_DMA_TXCHAN_TCMDSTA(chan->chno));
drivers/net/ethernet/pasemi/pasemi_mac.c
684
"tx status 0x%016llx\n", mactx, *chan->status);
drivers/net/ethernet/pasemi/pasemi_mac.c
692
const struct pasemi_dmachan *chan = &rx->chan;
drivers/net/ethernet/pasemi/pasemi_mac.c
717
(*chan->status & PAS_STATUS_ERROR))
drivers/net/ethernet/pasemi/pasemi_mac.c
796
write_dma_reg(PAS_DMA_RXCHAN_INCR(mac->rx->chan.chno), count << 1);
drivers/net/ethernet/pasemi/pasemi_mac.c
813
struct pasemi_dmachan *chan = &txring->chan;
drivers/net/ethernet/pasemi/pasemi_mac.c
849
(*chan->status & PAS_STATUS_ERROR))
drivers/net/ethernet/pasemi/pasemi_mac.c
907
const struct pasemi_dmachan *chan = &rxring->chan;
drivers/net/ethernet/pasemi/pasemi_mac.c
910
if (!(*chan->status & PAS_STATUS_CAUSE_M))
drivers/net/ethernet/pasemi/pasemi_mac.c
918
if (*chan->status & PAS_STATUS_SOFT)
drivers/net/ethernet/pasemi/pasemi_mac.c
920
if (*chan->status & PAS_STATUS_ERROR)
drivers/net/ethernet/pasemi/pasemi_mac.c
925
write_iob_reg(PAS_IOB_DMA_RXCH_RESET(chan->chno), reg);
drivers/net/ethernet/pasemi/pasemi_mac.c
948
const struct pasemi_dmachan *chan = &txring->chan;
drivers/net/ethernet/pasemi/pasemi_mac.c
952
if (!(*chan->status & PAS_STATUS_CAUSE_M))
drivers/net/ethernet/pasemi/pasemi_mac.c
957
if (*chan->status & PAS_STATUS_SOFT)
drivers/net/ethernet/pasemi/pasemi_mac.c
959
if (*chan->status & PAS_STATUS_ERROR)
drivers/net/ethernet/pasemi/pasemi_mac.c
967
write_iob_reg(PAS_IOB_DMA_TXCH_RESET(chan->chno), reg);
drivers/net/ethernet/pasemi/pasemi_mac.h
26
struct pasemi_dmachan chan; /* Must be first */
drivers/net/ethernet/pasemi/pasemi_mac.h
37
struct pasemi_dmachan chan; /* Must be first */
drivers/net/ethernet/pasemi/pasemi_mac.h
49
struct pasemi_dmachan chan;
drivers/net/ethernet/pasemi/pasemi_mac.h
94
#define TX_DESC(tx, num) ((tx)->chan.ring_virt[(num) & (TX_RING_SIZE-1)])
drivers/net/ethernet/pasemi/pasemi_mac.h
96
#define RX_DESC(rx, num) ((rx)->chan.ring_virt[(num) & (RX_RING_SIZE-1)])
drivers/net/ethernet/pasemi/pasemi_mac.h
99
#define CS_DESC(cs, num) ((cs)->chan.ring_virt[(num) & (CS_RING_SIZE-1)])
drivers/net/ethernet/samsung/sxgbe/sxgbe_platform.c
124
for (i = 0, chan = 1; i < SXGBE_TX_QUEUES; i++) {
drivers/net/ethernet/samsung/sxgbe/sxgbe_platform.c
125
priv->txq[i]->irq_no = irq_of_parse_and_map(node, chan++);
drivers/net/ethernet/samsung/sxgbe/sxgbe_platform.c
133
priv->rxq[i]->irq_no = irq_of_parse_and_map(node, chan++);
drivers/net/ethernet/samsung/sxgbe/sxgbe_platform.c
140
priv->lpi_irq = irq_of_parse_and_map(node, chan);
drivers/net/ethernet/samsung/sxgbe/sxgbe_platform.c
80
int i, chan;
drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
184
u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
190
value = readl(ioaddr + DMA_CHAN_BUS_MODE(chan));
drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
213
writel(value, ioaddr + DMA_CHAN_BUS_MODE(chan));
drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
217
DMA_CHAN_INTR_ENA(chan));
drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
223
u32 chan, u32 dir)
drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
233
intr_status = readl(ioaddr + DMA_CHAN_STATUS(chan));
drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
281
u64_stats_inc(&stats->rx_normal_irq_n[chan]);
drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
288
u64_stats_inc(&stats->tx_normal_irq_n[chan]);
drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c
301
writel((intr_status & 0x7ffff), ioaddr + DMA_CHAN_STATUS(chan));
drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
300
dma_addr_t dma_rx_phy, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
309
dma_addr_t dma_tx_phy, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
349
void __iomem *ioaddr, u32 chan,
drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
363
void __iomem *ioaddr, u32 chan,
drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
377
void __iomem *ioaddr, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
387
static void sun8i_dwmac_enable_dma_transmission(void __iomem *ioaddr, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
398
void __iomem *ioaddr, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
408
void __iomem *ioaddr, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
419
void __iomem *ioaddr, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
430
struct stmmac_extra_stats *x, u32 chan,
drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
447
u64_stats_inc(&stats->tx_normal_irq_n[chan]);
drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
471
u64_stats_inc(&stats->rx_normal_irq_n[chan]);
drivers/net/ethernet/stmicro/stmmac/dwmac1000_dma.c
102
writel(lower_32_bits(dma_tx_phy), ioaddr + DMA_CHAN_TX_BASE_ADDR(chan));
drivers/net/ethernet/stmicro/stmmac/dwmac1000_dma.c
48
struct stmmac_dma_cfg *dma_cfg, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwmac1000_dma.c
54
value = readl(ioaddr + DMA_CHAN_BUS_MODE(chan));
drivers/net/ethernet/stmicro/stmmac/dwmac1000_dma.c
81
writel(value, ioaddr + DMA_CHAN_BUS_MODE(chan));
drivers/net/ethernet/stmicro/stmmac/dwmac1000_dma.c
84
writel(DMA_INTR_DEFAULT_MASK, ioaddr + DMA_CHAN_INTR_ENA(chan));
drivers/net/ethernet/stmicro/stmmac/dwmac1000_dma.c
90
dma_addr_t dma_rx_phy, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwmac1000_dma.c
93
writel(lower_32_bits(dma_rx_phy), ioaddr + DMA_CHAN_RCV_BASE_ADDR(chan));
drivers/net/ethernet/stmicro/stmmac/dwmac1000_dma.c
99
dma_addr_t dma_tx_phy, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwmac100_dma.c
35
dma_addr_t dma_rx_phy, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwmac100_dma.c
43
dma_addr_t dma_tx_phy, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwmac4.h
278
#define MTL_RXQ_DMA_QXMDMACH(chan, q) ((chan) << (8 * (q)))
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c
255
static void dwmac4_map_mtl_dma(struct mac_device_info *hw, u32 queue, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c
263
value |= MTL_RXQ_DMA_QXMDMACH(chan, queue);
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c
268
value |= MTL_RXQ_DMA_QXMDMACH(chan, queue - 4);
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c
598
struct mac_device_info *hw, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c
608
if (mtl_int_qx_status & MTL_INT_QX(chan)) {
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c
611
chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c
616
ioaddr + MTL_CHAN_INT_CTRL(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
102
writel(value, ioaddr + DMA_CHAN_CONTROL(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
106
ioaddr + DMA_CHAN_INTR_ENA(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
110
void __iomem *ioaddr, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
115
value = readl(ioaddr + DMA_CHAN_INTR_ENA(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
117
writel(value, ioaddr + DMA_CHAN_INTR_ENA(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
122
struct stmmac_dma_cfg *dma_cfg, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
128
value = readl(ioaddr + DMA_CHAN_CONTROL(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
132
writel(value, ioaddr + DMA_CHAN_CONTROL(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
136
ioaddr + DMA_CHAN_INTR_ENA(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
140
void __iomem *ioaddr, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
145
value = readl(ioaddr + DMA_CHAN_INTR_ENA(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
147
writel(value, ioaddr + DMA_CHAN_INTR_ENA(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
479
bool en, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
48
dma_addr_t dma_rx_phy, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
486
value = readl(ioaddr + DMA_CHAN_TX_CONTROL(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
488
ioaddr + DMA_CHAN_TX_CONTROL(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
491
value = readl(ioaddr + DMA_CHAN_TX_CONTROL(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
493
ioaddr + DMA_CHAN_TX_CONTROL(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
514
int bfsize, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
517
u32 value = readl(ioaddr + DMA_CHAN_RX_CONTROL(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
521
writel(value, ioaddr + DMA_CHAN_RX_CONTROL(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
525
bool en, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
539
value = readl(ioaddr + DMA_CHAN_CONTROL(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
54
value = readl(ioaddr + DMA_CHAN_RX_CONTROL(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
544
writel(value, ioaddr + DMA_CHAN_CONTROL(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
548
bool en, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
551
u32 value = readl(ioaddr + DMA_CHAN_TX_CONTROL(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
558
writel(value, ioaddr + DMA_CHAN_TX_CONTROL(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
56
writel(value, ioaddr + DMA_CHAN_RX_CONTROL(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
561
chan)) & DMA_CONTROL_EDSE;
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
60
ioaddr + DMA_CHAN_RX_BASE_ADDR_HI(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
63
ioaddr + DMA_CHAN_RX_BASE_ADDR(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
69
dma_addr_t dma_tx_phy, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
75
value = readl(ioaddr + DMA_CHAN_TX_CONTROL(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
81
writel(value, ioaddr + DMA_CHAN_TX_CONTROL(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
85
ioaddr + DMA_CHAN_TX_BASE_ADDR_HI(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
88
ioaddr + DMA_CHAN_TX_BASE_ADDR(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
93
struct stmmac_dma_cfg *dma_cfg, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
99
value = readl(ioaddr + DMA_CHAN_CONTROL(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.h
178
u32 chan, bool rx, bool tx);
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.h
180
u32 chan, bool rx, bool tx);
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.h
182
u32 chan);
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.h
184
u32 chan);
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.h
186
u32 chan);
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.h
188
u32 chan);
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.h
190
struct stmmac_extra_stats *x, u32 chan, u32 dir);
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.h
192
u32 len, u32 chan);
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.h
194
u32 len, u32 chan);
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.h
196
u32 tail_ptr, u32 chan);
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.h
198
u32 tail_ptr, u32 chan);
drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c
101
writel(len, ioaddr + DMA_CHAN_TX_RING_LEN(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c
105
u32 len, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c
109
writel(len, ioaddr + DMA_CHAN_RX_RING_LEN(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c
113
u32 chan, bool rx, bool tx)
drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c
116
u32 value = readl(ioaddr + DMA_CHAN_INTR_ENA(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c
123
writel(value, ioaddr + DMA_CHAN_INTR_ENA(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c
127
u32 chan, bool rx, bool tx)
drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c
130
u32 value = readl(ioaddr + DMA_CHAN_INTR_ENA(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c
137
writel(value, ioaddr + DMA_CHAN_INTR_ENA(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c
141
struct stmmac_extra_stats *x, u32 chan, u32 dir)
drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c
144
u32 intr_status = readl(ioaddr + DMA_CHAN_STATUS(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c
145
u32 intr_en = readl(ioaddr + DMA_CHAN_INTR_ENA(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c
178
u64_stats_inc(&stats->rx_normal_irq_n[chan]);
drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c
184
u64_stats_inc(&stats->tx_normal_irq_n[chan]);
drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c
195
ioaddr + DMA_CHAN_STATUS(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c
30
u32 tail_ptr, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c
34
writel(tail_ptr, ioaddr + DMA_CHAN_RX_END_ADDR(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c
38
u32 tail_ptr, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c
42
writel(tail_ptr, ioaddr + DMA_CHAN_TX_END_ADDR(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c
46
u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c
49
u32 value = readl(ioaddr + DMA_CHAN_TX_CONTROL(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c
52
writel(value, ioaddr + DMA_CHAN_TX_CONTROL(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c
60
u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c
64
u32 value = readl(ioaddr + DMA_CHAN_TX_CONTROL(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c
67
writel(value, ioaddr + DMA_CHAN_TX_CONTROL(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c
71
u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c
75
u32 value = readl(ioaddr + DMA_CHAN_RX_CONTROL(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c
79
writel(value, ioaddr + DMA_CHAN_RX_CONTROL(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c
87
u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c
90
u32 value = readl(ioaddr + DMA_CHAN_RX_CONTROL(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c
93
writel(value, ioaddr + DMA_CHAN_RX_CONTROL(dwmac4_addrs, chan));
drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c
97
u32 len, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwmac_dma.h
101
static inline u32 dma_chan_base_addr(u32 base, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwmac_dma.h
103
return base + chan * DMA_CHAN_BASE_OFFSET;
drivers/net/ethernet/stmicro/stmmac/dwmac_dma.h
106
#define DMA_CHAN_BUS_MODE(chan) dma_chan_base_addr(DMA_BUS_MODE, chan)
drivers/net/ethernet/stmicro/stmmac/dwmac_dma.h
107
#define DMA_CHAN_XMT_POLL_DEMAND(chan) \
drivers/net/ethernet/stmicro/stmmac/dwmac_dma.h
108
dma_chan_base_addr(DMA_XMT_POLL_DEMAND, chan)
drivers/net/ethernet/stmicro/stmmac/dwmac_dma.h
109
#define DMA_CHAN_RCV_POLL_DEMAND(chan) \
drivers/net/ethernet/stmicro/stmmac/dwmac_dma.h
110
dma_chan_base_addr(DMA_RCV_POLL_DEMAND, chan)
drivers/net/ethernet/stmicro/stmmac/dwmac_dma.h
111
#define DMA_CHAN_RCV_BASE_ADDR(chan) \
drivers/net/ethernet/stmicro/stmmac/dwmac_dma.h
112
dma_chan_base_addr(DMA_RCV_BASE_ADDR, chan)
drivers/net/ethernet/stmicro/stmmac/dwmac_dma.h
113
#define DMA_CHAN_TX_BASE_ADDR(chan) \
drivers/net/ethernet/stmicro/stmmac/dwmac_dma.h
114
dma_chan_base_addr(DMA_TX_BASE_ADDR, chan)
drivers/net/ethernet/stmicro/stmmac/dwmac_dma.h
115
#define DMA_CHAN_STATUS(chan) dma_chan_base_addr(DMA_STATUS, chan)
drivers/net/ethernet/stmicro/stmmac/dwmac_dma.h
116
#define DMA_CHAN_CONTROL(chan) dma_chan_base_addr(DMA_CONTROL, chan)
drivers/net/ethernet/stmicro/stmmac/dwmac_dma.h
117
#define DMA_CHAN_INTR_ENA(chan) dma_chan_base_addr(DMA_INTR_ENA, chan)
drivers/net/ethernet/stmicro/stmmac/dwmac_dma.h
118
#define DMA_CHAN_RX_WATCHDOG(chan) \
drivers/net/ethernet/stmicro/stmmac/dwmac_dma.h
119
dma_chan_base_addr(DMA_RX_WATCHDOG, chan)
drivers/net/ethernet/stmicro/stmmac/dwmac_dma.h
145
void dwmac_enable_dma_transmission(void __iomem *ioaddr, u32 chan);
drivers/net/ethernet/stmicro/stmmac/dwmac_dma.h
146
void dwmac_enable_dma_reception(void __iomem *ioaddr, u32 chan);
drivers/net/ethernet/stmicro/stmmac/dwmac_dma.h
148
u32 chan, bool rx, bool tx);
drivers/net/ethernet/stmicro/stmmac/dwmac_dma.h
150
u32 chan, bool rx, bool tx);
drivers/net/ethernet/stmicro/stmmac/dwmac_dma.h
152
u32 chan);
drivers/net/ethernet/stmicro/stmmac/dwmac_dma.h
154
u32 chan);
drivers/net/ethernet/stmicro/stmmac/dwmac_dma.h
156
u32 chan);
drivers/net/ethernet/stmicro/stmmac/dwmac_dma.h
158
u32 chan);
drivers/net/ethernet/stmicro/stmmac/dwmac_dma.h
160
struct stmmac_extra_stats *x, u32 chan, u32 dir);
drivers/net/ethernet/stmicro/stmmac/dwmac_lib.c
162
struct stmmac_extra_stats *x, u32 chan, u32 dir)
drivers/net/ethernet/stmicro/stmmac/dwmac_lib.c
167
u32 intr_status = readl(ioaddr + DMA_CHAN_STATUS(chan));
drivers/net/ethernet/stmicro/stmmac/dwmac_lib.c
217
u64_stats_inc(&stats->rx_normal_irq_n[chan]);
drivers/net/ethernet/stmicro/stmmac/dwmac_lib.c
224
u64_stats_inc(&stats->tx_normal_irq_n[chan]);
drivers/net/ethernet/stmicro/stmmac/dwmac_lib.c
31
void dwmac_enable_dma_transmission(void __iomem *ioaddr, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwmac_lib.c
33
writel(1, ioaddr + DMA_CHAN_XMT_POLL_DEMAND(chan));
drivers/net/ethernet/stmicro/stmmac/dwmac_lib.c
36
void dwmac_enable_dma_reception(void __iomem *ioaddr, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwmac_lib.c
38
writel(1, ioaddr + DMA_CHAN_RCV_POLL_DEMAND(chan));
drivers/net/ethernet/stmicro/stmmac/dwmac_lib.c
42
u32 chan, bool rx, bool tx)
drivers/net/ethernet/stmicro/stmmac/dwmac_lib.c
44
u32 value = readl(ioaddr + DMA_CHAN_INTR_ENA(chan));
drivers/net/ethernet/stmicro/stmmac/dwmac_lib.c
51
writel(value, ioaddr + DMA_CHAN_INTR_ENA(chan));
drivers/net/ethernet/stmicro/stmmac/dwmac_lib.c
55
u32 chan, bool rx, bool tx)
drivers/net/ethernet/stmicro/stmmac/dwmac_lib.c
57
u32 value = readl(ioaddr + DMA_CHAN_INTR_ENA(chan));
drivers/net/ethernet/stmicro/stmmac/dwmac_lib.c
64
writel(value, ioaddr + DMA_CHAN_INTR_ENA(chan));
drivers/net/ethernet/stmicro/stmmac/dwmac_lib.c
68
u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwmac_lib.c
70
u32 value = readl(ioaddr + DMA_CHAN_CONTROL(chan));
drivers/net/ethernet/stmicro/stmmac/dwmac_lib.c
72
writel(value, ioaddr + DMA_CHAN_CONTROL(chan));
drivers/net/ethernet/stmicro/stmmac/dwmac_lib.c
75
void dwmac_dma_stop_tx(struct stmmac_priv *priv, void __iomem *ioaddr, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwmac_lib.c
77
u32 value = readl(ioaddr + DMA_CHAN_CONTROL(chan));
drivers/net/ethernet/stmicro/stmmac/dwmac_lib.c
79
writel(value, ioaddr + DMA_CHAN_CONTROL(chan));
drivers/net/ethernet/stmicro/stmmac/dwmac_lib.c
83
u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwmac_lib.c
85
u32 value = readl(ioaddr + DMA_CHAN_CONTROL(chan));
drivers/net/ethernet/stmicro/stmmac/dwmac_lib.c
87
writel(value, ioaddr + DMA_CHAN_CONTROL(chan));
drivers/net/ethernet/stmicro/stmmac/dwmac_lib.c
90
void dwmac_dma_stop_rx(struct stmmac_priv *priv, void __iomem *ioaddr, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwmac_lib.c
92
u32 value = readl(ioaddr + DMA_CHAN_CONTROL(chan));
drivers/net/ethernet/stmicro/stmmac/dwmac_lib.c
94
writel(value, ioaddr + DMA_CHAN_CONTROL(chan));
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
255
u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
266
value |= (chan << XGMAC_QxMDMACH_SHIFT(queue)) & XGMAC_QxMDMACH(queue);
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
337
struct mac_device_info *hw, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
344
if (status & BIT(chan)) {
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
345
u32 chan_status = readl(ioaddr + XGMAC_MTL_QINT_STATUS(chan));
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c
350
writel(~0x0, ioaddr + XGMAC_MTL_QINT_STATUS(chan));
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
222
void __iomem *ioaddr, u32 chan,
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
225
u32 value = readl(ioaddr + XGMAC_DMA_CH_INT_EN(chan));
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
232
writel(value, ioaddr + XGMAC_DMA_CH_INT_EN(chan));
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
236
void __iomem *ioaddr, u32 chan,
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
239
u32 value = readl(ioaddr + XGMAC_DMA_CH_INT_EN(chan));
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
246
writel(value, ioaddr + XGMAC_DMA_CH_INT_EN(chan));
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
250
void __iomem *ioaddr, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
254
value = readl(ioaddr + XGMAC_DMA_CH_TX_CONTROL(chan));
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
256
writel(value, ioaddr + XGMAC_DMA_CH_TX_CONTROL(chan));
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
264
u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
268
value = readl(ioaddr + XGMAC_DMA_CH_TX_CONTROL(chan));
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
270
writel(value, ioaddr + XGMAC_DMA_CH_TX_CONTROL(chan));
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
278
void __iomem *ioaddr, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
282
value = readl(ioaddr + XGMAC_DMA_CH_RX_CONTROL(chan));
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
284
writel(value, ioaddr + XGMAC_DMA_CH_RX_CONTROL(chan));
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
292
u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
296
value = readl(ioaddr + XGMAC_DMA_CH_RX_CONTROL(chan));
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
298
writel(value, ioaddr + XGMAC_DMA_CH_RX_CONTROL(chan));
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
303
struct stmmac_extra_stats *x, u32 chan,
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
307
u32 intr_status = readl(ioaddr + XGMAC_DMA_CH_STATUS(chan));
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
308
u32 intr_en = readl(ioaddr + XGMAC_DMA_CH_INT_EN(chan));
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
335
u64_stats_inc(&stats->rx_normal_irq_n[chan]);
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
341
u64_stats_inc(&stats->tx_normal_irq_n[chan]);
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
347
writel(intr_en & intr_status, ioaddr + XGMAC_DMA_CH_STATUS(chan));
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
38
struct stmmac_dma_cfg *dma_cfg, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
40
u32 value = readl(ioaddr + XGMAC_DMA_CH_CONTROL(chan));
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
45
writel(value, ioaddr + XGMAC_DMA_CH_CONTROL(chan));
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
46
writel(XGMAC_DMA_INT_DEFAULT_EN, ioaddr + XGMAC_DMA_CH_INT_EN(chan));
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
480
void __iomem *ioaddr, u32 len, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
482
writel(len, ioaddr + XGMAC_DMA_CH_RxDESC_RING_LEN(chan));
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
486
void __iomem *ioaddr, u32 len, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
488
writel(len, ioaddr + XGMAC_DMA_CH_TxDESC_RING_LEN(chan));
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
492
void __iomem *ioaddr, u32 ptr, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
494
writel(ptr, ioaddr + XGMAC_DMA_CH_RxDESC_TAIL_LPTR(chan));
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
498
void __iomem *ioaddr, u32 ptr, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
500
writel(ptr, ioaddr + XGMAC_DMA_CH_TxDESC_TAIL_LPTR(chan));
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
504
bool en, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
506
u32 value = readl(ioaddr + XGMAC_DMA_CH_TX_CONTROL(chan));
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
513
writel(value, ioaddr + XGMAC_DMA_CH_TX_CONTROL(chan));
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
52
dma_addr_t phy, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
536
int bfsize, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
540
value = readl(ioaddr + XGMAC_DMA_CH_RX_CONTROL(chan));
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
542
writel(value, ioaddr + XGMAC_DMA_CH_RX_CONTROL(chan));
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
546
bool en, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
554
value = readl(ioaddr + XGMAC_DMA_CH_CONTROL(chan));
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
559
writel(value, ioaddr + XGMAC_DMA_CH_CONTROL(chan));
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
563
bool en, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
565
u32 value = readl(ioaddr + XGMAC_DMA_CH_TX_CONTROL(chan));
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
57
value = readl(ioaddr + XGMAC_DMA_CH_RX_CONTROL(chan));
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
572
writel(value, ioaddr + XGMAC_DMA_CH_TX_CONTROL(chan));
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
574
value = readl(ioaddr + XGMAC_DMA_CH_TX_CONTROL(chan)) & XGMAC_EDSE;
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
59
writel(value, ioaddr + XGMAC_DMA_CH_RX_CONTROL(chan));
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
61
writel(upper_32_bits(phy), ioaddr + XGMAC_DMA_CH_RxDESC_HADDR(chan));
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
62
writel(lower_32_bits(phy), ioaddr + XGMAC_DMA_CH_RxDESC_LADDR(chan));
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
68
dma_addr_t phy, u32 chan)
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
73
value = readl(ioaddr + XGMAC_DMA_CH_TX_CONTROL(chan));
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
75
writel(value, ioaddr + XGMAC_DMA_CH_TX_CONTROL(chan));
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
77
writel(upper_32_bits(phy), ioaddr + XGMAC_DMA_CH_TxDESC_HADDR(chan));
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c
78
writel(lower_32_bits(phy), ioaddr + XGMAC_DMA_CH_TxDESC_LADDR(chan));
drivers/net/ethernet/stmicro/stmmac/hwif.h
172
struct stmmac_dma_cfg *dma_cfg, u32 chan);
drivers/net/ethernet/stmicro/stmmac/hwif.h
174
u32 chan);
drivers/net/ethernet/stmicro/stmmac/hwif.h
177
dma_addr_t phy, u32 chan);
drivers/net/ethernet/stmicro/stmmac/hwif.h
180
dma_addr_t phy, u32 chan);
drivers/net/ethernet/stmicro/stmmac/hwif.h
194
void (*enable_dma_transmission)(void __iomem *ioaddr, u32 chan);
drivers/net/ethernet/stmicro/stmmac/hwif.h
195
void (*enable_dma_reception)(void __iomem *ioaddr, u32 chan);
drivers/net/ethernet/stmicro/stmmac/hwif.h
197
u32 chan, bool rx, bool tx);
drivers/net/ethernet/stmicro/stmmac/hwif.h
199
u32 chan, bool rx, bool tx);
drivers/net/ethernet/stmicro/stmmac/hwif.h
201
u32 chan);
drivers/net/ethernet/stmicro/stmmac/hwif.h
203
u32 chan);
drivers/net/ethernet/stmicro/stmmac/hwif.h
205
u32 chan);
drivers/net/ethernet/stmicro/stmmac/hwif.h
207
u32 chan);
drivers/net/ethernet/stmicro/stmmac/hwif.h
209
struct stmmac_extra_stats *x, u32 chan, u32 dir);
drivers/net/ethernet/stmicro/stmmac/hwif.h
217
u32 len, u32 chan);
drivers/net/ethernet/stmicro/stmmac/hwif.h
219
u32 len, u32 chan);
drivers/net/ethernet/stmicro/stmmac/hwif.h
221
u32 tail_ptr, u32 chan);
drivers/net/ethernet/stmicro/stmmac/hwif.h
223
u32 tail_ptr, u32 chan);
drivers/net/ethernet/stmicro/stmmac/hwif.h
225
bool en, u32 chan);
drivers/net/ethernet/stmicro/stmmac/hwif.h
229
int bfsize, u32 chan);
drivers/net/ethernet/stmicro/stmmac/hwif.h
231
bool en, u32 chan);
drivers/net/ethernet/stmicro/stmmac/hwif.h
233
bool en, u32 chan);
drivers/net/ethernet/stmicro/stmmac/hwif.h
342
void (*map_mtl_to_dma)(struct mac_device_info *hw, u32 queue, u32 chan);
drivers/net/ethernet/stmicro/stmmac/hwif.h
354
struct mac_device_info *hw, u32 chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c
979
struct ethtool_channels *chan)
drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c
983
chan->rx_count = priv->plat->rx_queues_to_use;
drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c
984
chan->tx_count = priv->plat->tx_queues_to_use;
drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c
985
chan->max_rx = priv->dma_cap.number_rx_queues;
drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c
986
chan->max_tx = priv->dma_cap.number_tx_queues;
drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c
990
struct ethtool_channels *chan)
drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c
994
if (chan->rx_count > priv->dma_cap.number_rx_queues ||
drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c
995
chan->tx_count > priv->dma_cap.number_tx_queues ||
drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c
996
!chan->rx_count || !chan->tx_count)
drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c
999
return stmmac_reinit_queues(dev, chan->rx_count, chan->tx_count);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
159
u32 rxmode, u32 chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2455
static void stmmac_start_rx_dma(struct stmmac_priv *priv, u32 chan)
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2457
netdev_dbg(priv->dev, "DMA RX processes started in channel %d\n", chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2458
stmmac_start_rx(priv, priv->ioaddr, chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2468
static void stmmac_start_tx_dma(struct stmmac_priv *priv, u32 chan)
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2470
netdev_dbg(priv->dev, "DMA TX processes started in channel %d\n", chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2471
stmmac_start_tx(priv, priv->ioaddr, chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2481
static void stmmac_stop_rx_dma(struct stmmac_priv *priv, u32 chan)
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2483
netdev_dbg(priv->dev, "DMA RX processes stopped in channel %d\n", chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2484
stmmac_stop_rx(priv, priv->ioaddr, chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2494
static void stmmac_stop_tx_dma(struct stmmac_priv *priv, u32 chan)
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2496
netdev_dbg(priv->dev, "DMA TX processes stopped in channel %d\n", chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2497
stmmac_stop_tx(priv, priv->ioaddr, chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2505
u8 chan;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2507
for (chan = 0; chan < dma_csr_ch; chan++) {
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2508
struct stmmac_channel *ch = &priv->channel[chan];
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2512
stmmac_enable_dma_irq(priv, priv->ioaddr, chan, 1, 1);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2527
u8 chan;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2529
for (chan = 0; chan < rx_channels_count; chan++)
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2530
stmmac_start_rx_dma(priv, chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2532
for (chan = 0; chan < tx_channels_count; chan++)
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2533
stmmac_start_tx_dma(priv, chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2547
u8 chan;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2549
for (chan = 0; chan < rx_channels_count; chan++)
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2550
stmmac_stop_rx_dma(priv, chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2552
for (chan = 0; chan < tx_channels_count; chan++)
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2553
stmmac_stop_tx_dma(priv, chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2555
for (chan = 0; chan < dma_csr_ch; chan++)
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2556
stmmac_deinit_chan(priv, priv->ioaddr, chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2574
u8 chan;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2607
for (chan = 0; chan < rx_channels_count; chan++) {
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2608
struct stmmac_rx_queue *rx_q = &priv->dma_conf.rx_queue[chan];
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2610
qmode = priv->plat->rx_queues_cfg[chan].mode_to_use;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2612
stmmac_dma_rx_mode(priv, priv->ioaddr, rxmode, chan,
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2615
stmmac_set_queue_rx_buf_size(priv, rx_q, chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2618
for (chan = 0; chan < tx_channels_count; chan++) {
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2619
qmode = priv->plat->tx_queues_cfg[chan].mode_to_use;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2621
stmmac_dma_tx_mode(priv, priv->ioaddr, txmode, chan,
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2788
static void stmmac_bump_dma_threshold(struct stmmac_priv *priv, u32 chan)
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2794
stmmac_set_dma_operation_mode(priv, tc, tc, chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
2797
chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3002
static void stmmac_tx_err(struct stmmac_priv *priv, u32 chan)
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3004
struct stmmac_tx_queue *tx_q = &priv->dma_conf.tx_queue[chan];
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3006
netif_tx_stop_queue(netdev_get_tx_queue(priv->dev, chan));
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3008
stmmac_stop_tx_dma(priv, chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3009
dma_free_tx_skbufs(priv, &priv->dma_conf, chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3010
stmmac_clear_tx_descriptors(priv, &priv->dma_conf, chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3011
stmmac_reset_tx_queue(priv, chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3013
tx_q->dma_tx_phy, chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3014
stmmac_start_tx_dma(priv, chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3017
netif_tx_wake_queue(netdev_get_tx_queue(priv->dev, chan));
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3031
u32 rxmode, u32 chan)
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3033
u8 rxqmode = priv->plat->rx_queues_cfg[chan].mode_to_use;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3034
u8 txqmode = priv->plat->tx_queues_cfg[chan].mode_to_use;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3049
stmmac_dma_rx_mode(priv, priv->ioaddr, rxmode, chan, rxfifosz, rxqmode);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3050
stmmac_dma_tx_mode(priv, priv->ioaddr, txmode, chan, txfifosz, txqmode);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3067
static int stmmac_napi_check(struct stmmac_priv *priv, u32 chan, u32 dir)
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3070
&priv->xstats, chan, dir);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3071
struct stmmac_rx_queue *rx_q = &priv->dma_conf.rx_queue[chan];
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3072
struct stmmac_tx_queue *tx_q = &priv->dma_conf.tx_queue[chan];
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3073
struct stmmac_channel *ch = &priv->channel[chan];
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3081
if ((status & handle_rx) && (chan < priv->plat->rx_queues_to_use)) {
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3084
stmmac_disable_dma_irq(priv, priv->ioaddr, chan, 1, 0);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3090
if ((status & handle_tx) && (chan < priv->plat->tx_queues_to_use)) {
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3093
stmmac_disable_dma_irq(priv, priv->ioaddr, chan, 0, 1);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3116
u8 chan;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3122
for (chan = 0; chan < channels_to_check; chan++)
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3123
status[chan] = stmmac_napi_check(priv, chan,
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3126
for (chan = 0; chan < tx_channel_count; chan++) {
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3127
if (unlikely(status[chan] & tx_hard_error_bump_tc)) {
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3129
stmmac_bump_dma_threshold(priv, chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3130
} else if (unlikely(status[chan] == tx_hard_error)) {
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3131
stmmac_tx_err(priv, chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3266
u8 chan;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3285
for (chan = 0; chan < dma_csr_ch; chan++) {
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3286
stmmac_init_chan(priv, priv->ioaddr, priv->plat->dma_cfg, chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3287
stmmac_disable_dma_irq(priv, priv->ioaddr, chan, 1, 1);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3291
for (chan = 0; chan < rx_channels_count; chan++) {
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3292
rx_q = &priv->dma_conf.rx_queue[chan];
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3295
rx_q->dma_rx_phy, chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3297
stmmac_set_queue_rx_tail_ptr(priv, rx_q, chan,
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3302
for (chan = 0; chan < tx_channels_count; chan++) {
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3303
tx_q = &priv->dma_conf.tx_queue[chan];
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3306
tx_q->dma_tx_phy, chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3308
stmmac_set_queue_tx_tail_ptr(priv, tx_q, chan, 0);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3381
u8 chan;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3383
for (chan = 0; chan < tx_channel_count; chan++) {
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3384
struct stmmac_tx_queue *tx_q = &priv->dma_conf.tx_queue[chan];
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3386
priv->tx_coal_frames[chan] = STMMAC_TX_FRAMES;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3387
priv->tx_coal_timer[chan] = STMMAC_COAL_TX_TIMER;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3392
for (chan = 0; chan < rx_channel_count; chan++)
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3393
priv->rx_coal_frames[chan] = STMMAC_RX_FRAMES;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3400
u8 chan;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3403
for (chan = 0; chan < tx_channels_count; chan++)
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3405
(priv->dma_conf.dma_tx_size - 1), chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3408
for (chan = 0; chan < rx_channels_count; chan++)
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3410
(priv->dma_conf.dma_rx_size - 1), chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3465
u32 chan;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3468
chan = priv->plat->rx_queues_cfg[queue].chan;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3469
stmmac_map_mtl_to_dma(priv, priv->hw, queue, chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3616
unsigned int chan)
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3619
return !(priv->dma_conf.tx_queue[chan].tbs & STMMAC_TBS_AVAIL);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3640
u8 chan;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3709
for (chan = 0; chan < tx_cnt; chan++) {
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3710
if (!stmmac_tso_channel_permitted(priv, chan))
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3713
stmmac_enable_tso(priv, priv->ioaddr, 1, chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3719
for (chan = 0; chan < rx_cnt; chan++)
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3720
stmmac_enable_sph(priv, priv->ioaddr, sph_en, chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3728
for (chan = 0; chan < tx_cnt; chan++) {
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3729
struct stmmac_tx_queue *tx_q = &priv->dma_conf.tx_queue[chan];
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
3732
stmmac_enable_tbs(priv, priv->ioaddr, enable, chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
390
unsigned int chan, unsigned int index)
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
398
stmmac_set_tx_tail_ptr(priv, priv->ioaddr, tx_tail_addr, chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
4054
u8 chan;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
4084
for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++) {
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
4085
struct stmmac_tx_queue *tx_q = &dma_conf->tx_queue[chan];
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
4086
int tbs_en = priv->plat->tx_queues_cfg[chan].tbs_en;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
4129
u8 chan;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
4166
for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
4167
hrtimer_cancel(&priv->dma_conf.tx_queue[chan].txtimer);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
421
unsigned int chan, unsigned int index)
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
4228
u8 chan;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
4235
for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
4236
hrtimer_cancel(&priv->dma_conf.tx_queue[chan].txtimer);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
429
stmmac_set_rx_tail_ptr(priv, priv->ioaddr, rx_tail_addr, chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
434
unsigned int chan)
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
443
stmmac_set_dma_bfsize(priv, priv->ioaddr, buf_size, chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
5940
u32 chan = ch->index;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
5943
rxq_stats = &priv->xstats.rxq_stats[chan];
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
5948
work_done = stmmac_rx(priv, budget, chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
5953
stmmac_enable_dma_irq(priv, priv->ioaddr, chan, 1, 0);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
5967
u32 chan = ch->index;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
5970
txq_stats = &priv->xstats.txq_stats[chan];
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
5975
work_done = stmmac_tx_clean(priv, budget, chan, &pending_packets);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
5982
stmmac_enable_dma_irq(priv, priv->ioaddr, chan, 0, 1);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
5988
stmmac_tx_timer_arm(priv, chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
6002
u32 chan = ch->index;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
6004
rxq_stats = &priv->xstats.rxq_stats[chan];
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
6009
txq_stats = &priv->xstats.txq_stats[chan];
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
6014
tx_done = stmmac_tx_clean(priv, budget, chan, &tx_pending_packets);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
6017
rx_done = stmmac_rx_zc(priv, budget, chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
6035
stmmac_enable_dma_irq(priv, priv->ioaddr, chan, 1, 1);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
6041
stmmac_tx_timer_arm(priv, chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
6186
u8 chan;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
6188
for (chan = 0; chan < priv->plat->rx_queues_to_use; chan++)
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
6189
stmmac_enable_sph(priv, priv->ioaddr, sph_en, chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
6313
int chan = tx_q->queue_index;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
6317
dma_conf = container_of(tx_q, struct stmmac_dma_conf, tx_queue[chan]);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
6324
status = stmmac_napi_check(priv, chan, DMA_DIR_TX);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
6328
stmmac_bump_dma_threshold(priv, chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
6330
stmmac_tx_err(priv, chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
6340
int chan = rx_q->queue_index;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
6343
dma_conf = container_of(rx_q, struct stmmac_dma_conf, rx_queue[chan]);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
6350
stmmac_napi_check(priv, chan, DMA_DIR_RX);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
7087
u8 chan;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
7095
for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
7096
hrtimer_cancel(&priv->dma_conf.tx_queue[chan].txtimer);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
7126
u8 chan;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
7146
for (chan = 0; chan < dma_csr_ch; chan++) {
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
7147
stmmac_init_chan(priv, priv->ioaddr, priv->plat->dma_cfg, chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
7148
stmmac_disable_dma_irq(priv, priv->ioaddr, chan, 1, 1);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
7155
for (chan = 0; chan < rx_cnt; chan++) {
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
7156
rx_q = &priv->dma_conf.rx_queue[chan];
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
7159
rx_q->dma_rx_phy, chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
7161
stmmac_set_queue_rx_tail_ptr(priv, rx_q, chan,
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
7164
stmmac_set_queue_rx_buf_size(priv, rx_q, chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
7166
stmmac_enable_sph(priv, priv->ioaddr, sph_en, chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
7170
for (chan = 0; chan < tx_cnt; chan++) {
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
7171
tx_q = &priv->dma_conf.tx_queue[chan];
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
7174
tx_q->dma_tx_phy, chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
7176
stmmac_set_queue_tx_tail_ptr(priv, tx_q, chan, 0);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
7200
for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
7201
hrtimer_cancel(&priv->dma_conf.tx_queue[chan].txtimer);
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
7778
plat_dat->rx_queues_cfg[i].chan = i;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
8168
u8 chan;
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
8179
for (chan = 0; chan < priv->plat->tx_queues_to_use; chan++)
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
8180
hrtimer_cancel(&priv->dma_conf.tx_queue[chan].txtimer);
drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
184
&plat->rx_queues_cfg[queue].chan);
drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c
1703
u32 chan, tx_cnt = priv->plat->tx_queues_to_use;
drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c
1709
for (chan = 0; chan < tx_cnt; chan++) {
drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c
1710
ret = __stmmac_test_jumbo(priv, chan);
drivers/net/ethernet/sun/niu.c
658
static int esr_read_rxtx_ctrl(struct niu *np, unsigned long chan, u32 *val)
drivers/net/ethernet/sun/niu.c
662
err = mdio_read(np, np->port, NIU_ESR_DEV_ADDR, ESR_RXTX_CTRL_L(chan));
drivers/net/ethernet/sun/niu.c
666
ESR_RXTX_CTRL_H(chan));
drivers/net/ethernet/sun/niu.c
674
static int esr_read_glue0(struct niu *np, unsigned long chan, u32 *val)
drivers/net/ethernet/sun/niu.c
679
ESR_GLUE_CTRL0_L(chan));
drivers/net/ethernet/sun/niu.c
683
ESR_GLUE_CTRL0_H(chan));
drivers/net/ethernet/sun/niu.c
710
static int esr_write_rxtx_ctrl(struct niu *np, unsigned long chan, u32 val)
drivers/net/ethernet/sun/niu.c
715
ESR_RXTX_CTRL_L(chan), val & 0xffff);
drivers/net/ethernet/sun/niu.c
718
ESR_RXTX_CTRL_H(chan), (val >> 16));
drivers/net/ethernet/sun/niu.c
722
static int esr_write_glue0(struct niu *np, unsigned long chan, u32 val)
drivers/net/ethernet/sun/niu.c
727
ESR_GLUE_CTRL0_L(chan), val & 0xffff);
drivers/net/ethernet/sun/niu.c
730
ESR_GLUE_CTRL0_H(chan), (val >> 16));
drivers/net/ethernet/ti/davinci_cpdma.c
1000
struct cpdma_desc __iomem *prev = chan->tail;
drivers/net/ethernet/ti/davinci_cpdma.c
1008
if (!chan->head) {
drivers/net/ethernet/ti/davinci_cpdma.c
1009
chan->stats.head_enqueue++;
drivers/net/ethernet/ti/davinci_cpdma.c
1010
chan->head = desc;
drivers/net/ethernet/ti/davinci_cpdma.c
1011
chan->tail = desc;
drivers/net/ethernet/ti/davinci_cpdma.c
1012
if (chan->state == CPDMA_STATE_ACTIVE)
drivers/net/ethernet/ti/davinci_cpdma.c
1013
chan_write(chan, hdp, desc_dma);
drivers/net/ethernet/ti/davinci_cpdma.c
1019
chan->tail = desc;
drivers/net/ethernet/ti/davinci_cpdma.c
1020
chan->stats.tail_enqueue++;
drivers/net/ethernet/ti/davinci_cpdma.c
1025
(chan->state == CPDMA_STATE_ACTIVE)) {
drivers/net/ethernet/ti/davinci_cpdma.c
1027
chan_write(chan, hdp, desc_dma);
drivers/net/ethernet/ti/davinci_cpdma.c
1028
chan->stats.misqueued++;
drivers/net/ethernet/ti/davinci_cpdma.c
1034
struct cpdma_chan *chan = si->chan;
drivers/net/ethernet/ti/davinci_cpdma.c
1035
struct cpdma_ctlr *ctlr = chan->ctlr;
drivers/net/ethernet/ti/davinci_cpdma.c
1042
if (chan->count >= chan->desc_num) {
drivers/net/ethernet/ti/davinci_cpdma.c
1043
chan->stats.desc_alloc_fail++;
drivers/net/ethernet/ti/davinci_cpdma.c
1049
chan->stats.desc_alloc_fail++;
drivers/net/ethernet/ti/davinci_cpdma.c
1055
chan->stats.runt_transmit_buff++;
drivers/net/ethernet/ti/davinci_cpdma.c
1059
cpdma_desc_to_port(chan, mode, si->directed);
drivers/net/ethernet/ti/davinci_cpdma.c
1063
dma_sync_single_for_device(ctlr->dev, buffer, len, chan->dir);
drivers/net/ethernet/ti/davinci_cpdma.c
1065
buffer = dma_map_single(ctlr->dev, si->data_virt, len, chan->dir);
drivers/net/ethernet/ti/davinci_cpdma.c
1086
__cpdma_chan_submit(chan, desc);
drivers/net/ethernet/ti/davinci_cpdma.c
1088
if (chan->state == CPDMA_STATE_ACTIVE && chan->rxfree)
drivers/net/ethernet/ti/davinci_cpdma.c
1089
chan_write(chan, rxfree, 1);
drivers/net/ethernet/ti/davinci_cpdma.c
1091
chan->count++;
drivers/net/ethernet/ti/davinci_cpdma.c
1095
int cpdma_chan_idle_submit(struct cpdma_chan *chan, void *token, void *data,
drivers/net/ethernet/ti/davinci_cpdma.c
1102
si.chan = chan;
drivers/net/ethernet/ti/davinci_cpdma.c
1109
spin_lock_irqsave(&chan->lock, flags);
drivers/net/ethernet/ti/davinci_cpdma.c
1110
if (chan->state == CPDMA_STATE_TEARDOWN) {
drivers/net/ethernet/ti/davinci_cpdma.c
1111
spin_unlock_irqrestore(&chan->lock, flags);
drivers/net/ethernet/ti/davinci_cpdma.c
1116
spin_unlock_irqrestore(&chan->lock, flags);
drivers/net/ethernet/ti/davinci_cpdma.c
1121
int cpdma_chan_idle_submit_mapped(struct cpdma_chan *chan, void *token,
drivers/net/ethernet/ti/davinci_cpdma.c
1128
si.chan = chan;
drivers/net/ethernet/ti/davinci_cpdma.c
1135
spin_lock_irqsave(&chan->lock, flags);
drivers/net/ethernet/ti/davinci_cpdma.c
1136
if (chan->state == CPDMA_STATE_TEARDOWN) {
drivers/net/ethernet/ti/davinci_cpdma.c
1137
spin_unlock_irqrestore(&chan->lock, flags);
drivers/net/ethernet/ti/davinci_cpdma.c
1142
spin_unlock_irqrestore(&chan->lock, flags);
drivers/net/ethernet/ti/davinci_cpdma.c
1147
int cpdma_chan_submit(struct cpdma_chan *chan, void *token, void *data,
drivers/net/ethernet/ti/davinci_cpdma.c
1154
si.chan = chan;
drivers/net/ethernet/ti/davinci_cpdma.c
1161
spin_lock_irqsave(&chan->lock, flags);
drivers/net/ethernet/ti/davinci_cpdma.c
1162
if (chan->state != CPDMA_STATE_ACTIVE) {
drivers/net/ethernet/ti/davinci_cpdma.c
1163
spin_unlock_irqrestore(&chan->lock, flags);
drivers/net/ethernet/ti/davinci_cpdma.c
1168
spin_unlock_irqrestore(&chan->lock, flags);
drivers/net/ethernet/ti/davinci_cpdma.c
1173
int cpdma_chan_submit_mapped(struct cpdma_chan *chan, void *token,
drivers/net/ethernet/ti/davinci_cpdma.c
1180
si.chan = chan;
drivers/net/ethernet/ti/davinci_cpdma.c
1187
spin_lock_irqsave(&chan->lock, flags);
drivers/net/ethernet/ti/davinci_cpdma.c
1188
if (chan->state != CPDMA_STATE_ACTIVE) {
drivers/net/ethernet/ti/davinci_cpdma.c
1189
spin_unlock_irqrestore(&chan->lock, flags);
drivers/net/ethernet/ti/davinci_cpdma.c
1194
spin_unlock_irqrestore(&chan->lock, flags);
drivers/net/ethernet/ti/davinci_cpdma.c
1199
bool cpdma_check_free_tx_desc(struct cpdma_chan *chan)
drivers/net/ethernet/ti/davinci_cpdma.c
1201
struct cpdma_ctlr *ctlr = chan->ctlr;
drivers/net/ethernet/ti/davinci_cpdma.c
1206
spin_lock_irqsave(&chan->lock, flags);
drivers/net/ethernet/ti/davinci_cpdma.c
1207
free_tx_desc = (chan->count < chan->desc_num) &&
drivers/net/ethernet/ti/davinci_cpdma.c
1209
spin_unlock_irqrestore(&chan->lock, flags);
drivers/net/ethernet/ti/davinci_cpdma.c
1214
static void __cpdma_chan_free(struct cpdma_chan *chan,
drivers/net/ethernet/ti/davinci_cpdma.c
1218
struct cpdma_ctlr *ctlr = chan->ctlr;
drivers/net/ethernet/ti/davinci_cpdma.c
1231
chan->dir);
drivers/net/ethernet/ti/davinci_cpdma.c
1233
dma_unmap_single(ctlr->dev, buff_dma, origlen, chan->dir);
drivers/net/ethernet/ti/davinci_cpdma.c
1237
(*chan->handler)((void *)token, outlen, status);
drivers/net/ethernet/ti/davinci_cpdma.c
1240
static int __cpdma_chan_process(struct cpdma_chan *chan)
drivers/net/ethernet/ti/davinci_cpdma.c
1242
struct cpdma_ctlr *ctlr = chan->ctlr;
drivers/net/ethernet/ti/davinci_cpdma.c
1250
spin_lock_irqsave(&chan->lock, flags);
drivers/net/ethernet/ti/davinci_cpdma.c
1252
desc = chan->head;
drivers/net/ethernet/ti/davinci_cpdma.c
1254
chan->stats.empty_dequeue++;
drivers/net/ethernet/ti/davinci_cpdma.c
1263
chan->stats.busy_dequeue++;
drivers/net/ethernet/ti/davinci_cpdma.c
1274
chan->head = desc_from_phys(pool, desc_read(desc, hw_next));
drivers/net/ethernet/ti/davinci_cpdma.c
1275
chan_write(chan, cp, desc_dma);
drivers/net/ethernet/ti/davinci_cpdma.c
1276
chan->count--;
drivers/net/ethernet/ti/davinci_cpdma.c
1277
chan->stats.good_dequeue++;
drivers/net/ethernet/ti/davinci_cpdma.c
1279
if ((status & CPDMA_DESC_EOQ) && chan->head) {
drivers/net/ethernet/ti/davinci_cpdma.c
1280
chan->stats.requeue++;
drivers/net/ethernet/ti/davinci_cpdma.c
1281
chan_write(chan, hdp, desc_phys(pool, chan->head));
drivers/net/ethernet/ti/davinci_cpdma.c
1284
spin_unlock_irqrestore(&chan->lock, flags);
drivers/net/ethernet/ti/davinci_cpdma.c
1290
__cpdma_chan_free(chan, desc, outlen, cb_status);
drivers/net/ethernet/ti/davinci_cpdma.c
1294
spin_unlock_irqrestore(&chan->lock, flags);
drivers/net/ethernet/ti/davinci_cpdma.c
1298
int cpdma_chan_process(struct cpdma_chan *chan, int quota)
drivers/net/ethernet/ti/davinci_cpdma.c
1302
if (chan->state != CPDMA_STATE_ACTIVE)
drivers/net/ethernet/ti/davinci_cpdma.c
1306
ret = __cpdma_chan_process(chan);
drivers/net/ethernet/ti/davinci_cpdma.c
1315
int cpdma_chan_start(struct cpdma_chan *chan)
drivers/net/ethernet/ti/davinci_cpdma.c
1317
struct cpdma_ctlr *ctlr = chan->ctlr;
drivers/net/ethernet/ti/davinci_cpdma.c
1322
ret = cpdma_chan_set_chan_shaper(chan);
drivers/net/ethernet/ti/davinci_cpdma.c
1327
ret = cpdma_chan_on(chan);
drivers/net/ethernet/ti/davinci_cpdma.c
1335
int cpdma_chan_stop(struct cpdma_chan *chan)
drivers/net/ethernet/ti/davinci_cpdma.c
1337
struct cpdma_ctlr *ctlr = chan->ctlr;
drivers/net/ethernet/ti/davinci_cpdma.c
1343
spin_lock_irqsave(&chan->lock, flags);
drivers/net/ethernet/ti/davinci_cpdma.c
1344
if (chan->state == CPDMA_STATE_TEARDOWN) {
drivers/net/ethernet/ti/davinci_cpdma.c
1345
spin_unlock_irqrestore(&chan->lock, flags);
drivers/net/ethernet/ti/davinci_cpdma.c
1349
chan->state = CPDMA_STATE_TEARDOWN;
drivers/net/ethernet/ti/davinci_cpdma.c
1350
dma_reg_write(ctlr, chan->int_clear, chan->mask);
drivers/net/ethernet/ti/davinci_cpdma.c
1353
dma_reg_write(ctlr, chan->td, chan_linear(chan));
drivers/net/ethernet/ti/davinci_cpdma.c
1358
u32 cp = chan_read(chan, cp);
drivers/net/ethernet/ti/davinci_cpdma.c
1365
chan_write(chan, cp, CPDMA_TEARDOWN_VALUE);
drivers/net/ethernet/ti/davinci_cpdma.c
1368
spin_unlock_irqrestore(&chan->lock, flags);
drivers/net/ethernet/ti/davinci_cpdma.c
1370
ret = __cpdma_chan_process(chan);
drivers/net/ethernet/ti/davinci_cpdma.c
1374
spin_lock_irqsave(&chan->lock, flags);
drivers/net/ethernet/ti/davinci_cpdma.c
1377
while (chan->head) {
drivers/net/ethernet/ti/davinci_cpdma.c
1378
struct cpdma_desc __iomem *desc = chan->head;
drivers/net/ethernet/ti/davinci_cpdma.c
138
struct cpdma_chan *chan;
drivers/net/ethernet/ti/davinci_cpdma.c
1382
chan->head = desc_from_phys(pool, next_dma);
drivers/net/ethernet/ti/davinci_cpdma.c
1383
chan->count--;
drivers/net/ethernet/ti/davinci_cpdma.c
1384
chan->stats.teardown_dequeue++;
drivers/net/ethernet/ti/davinci_cpdma.c
1387
spin_unlock_irqrestore(&chan->lock, flags);
drivers/net/ethernet/ti/davinci_cpdma.c
1388
__cpdma_chan_free(chan, desc, 0, -ENOSYS);
drivers/net/ethernet/ti/davinci_cpdma.c
1389
spin_lock_irqsave(&chan->lock, flags);
drivers/net/ethernet/ti/davinci_cpdma.c
1392
chan->state = CPDMA_STATE_IDLE;
drivers/net/ethernet/ti/davinci_cpdma.c
1393
spin_unlock_irqrestore(&chan->lock, flags);
drivers/net/ethernet/ti/davinci_cpdma.c
1398
int cpdma_chan_int_ctrl(struct cpdma_chan *chan, bool enable)
drivers/net/ethernet/ti/davinci_cpdma.c
1402
spin_lock_irqsave(&chan->lock, flags);
drivers/net/ethernet/ti/davinci_cpdma.c
1403
if (chan->state != CPDMA_STATE_ACTIVE) {
drivers/net/ethernet/ti/davinci_cpdma.c
1404
spin_unlock_irqrestore(&chan->lock, flags);
drivers/net/ethernet/ti/davinci_cpdma.c
1408
dma_reg_write(chan->ctlr, enable ? chan->int_set : chan->int_clear,
drivers/net/ethernet/ti/davinci_cpdma.c
1409
chan->mask);
drivers/net/ethernet/ti/davinci_cpdma.c
1410
spin_unlock_irqrestore(&chan->lock, flags);
drivers/net/ethernet/ti/davinci_cpdma.c
161
#define tx_chan_num(chan) (chan)
drivers/net/ethernet/ti/davinci_cpdma.c
162
#define rx_chan_num(chan) ((chan) + CPDMA_MAX_CHANNELS)
drivers/net/ethernet/ti/davinci_cpdma.c
163
#define is_rx_chan(chan) ((chan)->chan_num >= CPDMA_MAX_CHANNELS)
drivers/net/ethernet/ti/davinci_cpdma.c
164
#define is_tx_chan(chan) (!is_rx_chan(chan))
drivers/net/ethernet/ti/davinci_cpdma.c
166
#define chan_linear(chan) __chan_linear((chan)->chan_num)
drivers/net/ethernet/ti/davinci_cpdma.c
174
#define chan_read(chan, fld) readl((chan)->fld)
drivers/net/ethernet/ti/davinci_cpdma.c
177
#define chan_write(chan, fld, v) writel(v, (chan)->fld)
drivers/net/ethernet/ti/davinci_cpdma.c
180
#define cpdma_desc_to_port(chan, mode, directed) \
drivers/net/ethernet/ti/davinci_cpdma.c
182
if (!is_rx_chan(chan) && ((directed == 1) || \
drivers/net/ethernet/ti/davinci_cpdma.c
355
static int cpdma_chan_set_chan_shaper(struct cpdma_chan *chan)
drivers/net/ethernet/ti/davinci_cpdma.c
357
struct cpdma_ctlr *ctlr = chan->ctlr;
drivers/net/ethernet/ti/davinci_cpdma.c
362
if (!chan->rate)
drivers/net/ethernet/ti/davinci_cpdma.c
365
rate_reg = CPDMA_TX_PRI0_RATE + 4 * chan->chan_num;
drivers/net/ethernet/ti/davinci_cpdma.c
366
dma_reg_write(ctlr, rate_reg, chan->rate_factor);
drivers/net/ethernet/ti/davinci_cpdma.c
369
rmask |= chan->mask;
drivers/net/ethernet/ti/davinci_cpdma.c
375
static int cpdma_chan_on(struct cpdma_chan *chan)
drivers/net/ethernet/ti/davinci_cpdma.c
377
struct cpdma_ctlr *ctlr = chan->ctlr;
drivers/net/ethernet/ti/davinci_cpdma.c
381
spin_lock_irqsave(&chan->lock, flags);
drivers/net/ethernet/ti/davinci_cpdma.c
382
if (chan->state != CPDMA_STATE_IDLE) {
drivers/net/ethernet/ti/davinci_cpdma.c
383
spin_unlock_irqrestore(&chan->lock, flags);
drivers/net/ethernet/ti/davinci_cpdma.c
387
spin_unlock_irqrestore(&chan->lock, flags);
drivers/net/ethernet/ti/davinci_cpdma.c
390
dma_reg_write(ctlr, chan->int_set, chan->mask);
drivers/net/ethernet/ti/davinci_cpdma.c
391
chan->state = CPDMA_STATE_ACTIVE;
drivers/net/ethernet/ti/davinci_cpdma.c
392
if (chan->head) {
drivers/net/ethernet/ti/davinci_cpdma.c
393
chan_write(chan, hdp, desc_phys(pool, chan->head));
drivers/net/ethernet/ti/davinci_cpdma.c
394
if (chan->rxfree)
drivers/net/ethernet/ti/davinci_cpdma.c
395
chan_write(chan, rxfree, chan->count);
drivers/net/ethernet/ti/davinci_cpdma.c
398
spin_unlock_irqrestore(&chan->lock, flags);
drivers/net/ethernet/ti/davinci_cpdma.c
410
struct cpdma_chan *chan;
drivers/net/ethernet/ti/davinci_cpdma.c
417
chan = ctlr->channels[i];
drivers/net/ethernet/ti/davinci_cpdma.c
418
if (!chan)
drivers/net/ethernet/ti/davinci_cpdma.c
421
if (chan == ch)
drivers/net/ethernet/ti/davinci_cpdma.c
422
chan->rate = rate;
drivers/net/ethernet/ti/davinci_cpdma.c
424
if (chan->rate) {
drivers/net/ethernet/ti/davinci_cpdma.c
426
new_rmask |= chan->mask;
drivers/net/ethernet/ti/davinci_cpdma.c
441
chan->chan_num);
drivers/net/ethernet/ti/davinci_cpdma.c
538
struct cpdma_chan *chan;
drivers/net/ethernet/ti/davinci_cpdma.c
578
chan = ctlr->channels[i];
drivers/net/ethernet/ti/davinci_cpdma.c
579
if (chan) {
drivers/net/ethernet/ti/davinci_cpdma.c
580
cpdma_chan_set_chan_shaper(chan);
drivers/net/ethernet/ti/davinci_cpdma.c
581
cpdma_chan_on(chan);
drivers/net/ethernet/ti/davinci_cpdma.c
584
if (is_tx_chan(chan) && !chan->rate)
drivers/net/ethernet/ti/davinci_cpdma.c
691
struct cpdma_chan *chan, *most_chan = NULL;
drivers/net/ethernet/ti/davinci_cpdma.c
708
chan = ctlr->channels[i];
drivers/net/ethernet/ti/davinci_cpdma.c
709
if (!chan)
drivers/net/ethernet/ti/davinci_cpdma.c
712
if (chan->weight)
drivers/net/ethernet/ti/davinci_cpdma.c
713
chan->desc_num = (chan->weight * desc_num) / 100;
drivers/net/ethernet/ti/davinci_cpdma.c
715
chan->desc_num = per_ch_desc;
drivers/net/ethernet/ti/davinci_cpdma.c
717
desc_cnt -= chan->desc_num;
drivers/net/ethernet/ti/davinci_cpdma.c
719
if (most_dnum < chan->desc_num) {
drivers/net/ethernet/ti/davinci_cpdma.c
720
most_dnum = chan->desc_num;
drivers/net/ethernet/ti/davinci_cpdma.c
721
most_chan = chan;
drivers/net/ethernet/ti/davinci_cpdma.c
739
struct cpdma_chan *chan;
drivers/net/ethernet/ti/davinci_cpdma.c
746
chan = ctlr->channels[i];
drivers/net/ethernet/ti/davinci_cpdma.c
747
if (!chan)
drivers/net/ethernet/ti/davinci_cpdma.c
750
if (is_rx_chan(chan)) {
drivers/net/ethernet/ti/davinci_cpdma.c
751
if (!chan->weight)
drivers/net/ethernet/ti/davinci_cpdma.c
753
rx_weight += chan->weight;
drivers/net/ethernet/ti/davinci_cpdma.c
755
if (!chan->weight)
drivers/net/ethernet/ti/davinci_cpdma.c
757
tx_weight += chan->weight;
drivers/net/ethernet/ti/davinci_cpdma.c
892
struct cpdma_chan *chan;
drivers/net/ethernet/ti/davinci_cpdma.c
900
chan = devm_kzalloc(ctlr->dev, sizeof(*chan), GFP_KERNEL);
drivers/net/ethernet/ti/davinci_cpdma.c
901
if (!chan)
drivers/net/ethernet/ti/davinci_cpdma.c
907
devm_kfree(ctlr->dev, chan);
drivers/net/ethernet/ti/davinci_cpdma.c
911
chan->ctlr = ctlr;
drivers/net/ethernet/ti/davinci_cpdma.c
912
chan->state = CPDMA_STATE_IDLE;
drivers/net/ethernet/ti/davinci_cpdma.c
913
chan->chan_num = chan_num;
drivers/net/ethernet/ti/davinci_cpdma.c
914
chan->handler = handler;
drivers/net/ethernet/ti/davinci_cpdma.c
915
chan->rate = 0;
drivers/net/ethernet/ti/davinci_cpdma.c
916
chan->weight = 0;
drivers/net/ethernet/ti/davinci_cpdma.c
918
if (is_rx_chan(chan)) {
drivers/net/ethernet/ti/davinci_cpdma.c
919
chan->hdp = ctlr->params.rxhdp + offset;
drivers/net/ethernet/ti/davinci_cpdma.c
920
chan->cp = ctlr->params.rxcp + offset;
drivers/net/ethernet/ti/davinci_cpdma.c
921
chan->rxfree = ctlr->params.rxfree + offset;
drivers/net/ethernet/ti/davinci_cpdma.c
922
chan->int_set = CPDMA_RXINTMASKSET;
drivers/net/ethernet/ti/davinci_cpdma.c
923
chan->int_clear = CPDMA_RXINTMASKCLEAR;
drivers/net/ethernet/ti/davinci_cpdma.c
924
chan->td = CPDMA_RXTEARDOWN;
drivers/net/ethernet/ti/davinci_cpdma.c
925
chan->dir = DMA_FROM_DEVICE;
drivers/net/ethernet/ti/davinci_cpdma.c
927
chan->hdp = ctlr->params.txhdp + offset;
drivers/net/ethernet/ti/davinci_cpdma.c
928
chan->cp = ctlr->params.txcp + offset;
drivers/net/ethernet/ti/davinci_cpdma.c
929
chan->int_set = CPDMA_TXINTMASKSET;
drivers/net/ethernet/ti/davinci_cpdma.c
930
chan->int_clear = CPDMA_TXINTMASKCLEAR;
drivers/net/ethernet/ti/davinci_cpdma.c
931
chan->td = CPDMA_TXTEARDOWN;
drivers/net/ethernet/ti/davinci_cpdma.c
932
chan->dir = DMA_TO_DEVICE;
drivers/net/ethernet/ti/davinci_cpdma.c
934
chan->mask = BIT(chan_linear(chan));
drivers/net/ethernet/ti/davinci_cpdma.c
936
spin_lock_init(&chan->lock);
drivers/net/ethernet/ti/davinci_cpdma.c
938
ctlr->channels[chan_num] = chan;
drivers/net/ethernet/ti/davinci_cpdma.c
944
return chan;
drivers/net/ethernet/ti/davinci_cpdma.c
948
int cpdma_chan_get_rx_buf_num(struct cpdma_chan *chan)
drivers/net/ethernet/ti/davinci_cpdma.c
953
spin_lock_irqsave(&chan->lock, flags);
drivers/net/ethernet/ti/davinci_cpdma.c
954
desc_num = chan->desc_num;
drivers/net/ethernet/ti/davinci_cpdma.c
955
spin_unlock_irqrestore(&chan->lock, flags);
drivers/net/ethernet/ti/davinci_cpdma.c
961
int cpdma_chan_destroy(struct cpdma_chan *chan)
drivers/net/ethernet/ti/davinci_cpdma.c
966
if (!chan)
drivers/net/ethernet/ti/davinci_cpdma.c
968
ctlr = chan->ctlr;
drivers/net/ethernet/ti/davinci_cpdma.c
971
if (chan->state != CPDMA_STATE_IDLE)
drivers/net/ethernet/ti/davinci_cpdma.c
972
cpdma_chan_stop(chan);
drivers/net/ethernet/ti/davinci_cpdma.c
973
ctlr->channels[chan->chan_num] = NULL;
drivers/net/ethernet/ti/davinci_cpdma.c
975
devm_kfree(ctlr->dev, chan);
drivers/net/ethernet/ti/davinci_cpdma.c
983
int cpdma_chan_get_stats(struct cpdma_chan *chan,
drivers/net/ethernet/ti/davinci_cpdma.c
987
if (!chan)
drivers/net/ethernet/ti/davinci_cpdma.c
989
spin_lock_irqsave(&chan->lock, flags);
drivers/net/ethernet/ti/davinci_cpdma.c
990
memcpy(stats, &chan->stats, sizeof(*stats));
drivers/net/ethernet/ti/davinci_cpdma.c
991
spin_unlock_irqrestore(&chan->lock, flags);
drivers/net/ethernet/ti/davinci_cpdma.c
996
static void __cpdma_chan_submit(struct cpdma_chan *chan,
drivers/net/ethernet/ti/davinci_cpdma.c
999
struct cpdma_ctlr *ctlr = chan->ctlr;
drivers/net/ethernet/ti/davinci_cpdma.h
73
int cpdma_chan_get_rx_buf_num(struct cpdma_chan *chan);
drivers/net/ethernet/ti/davinci_cpdma.h
74
int cpdma_chan_destroy(struct cpdma_chan *chan);
drivers/net/ethernet/ti/davinci_cpdma.h
75
int cpdma_chan_start(struct cpdma_chan *chan);
drivers/net/ethernet/ti/davinci_cpdma.h
76
int cpdma_chan_stop(struct cpdma_chan *chan);
drivers/net/ethernet/ti/davinci_cpdma.h
78
int cpdma_chan_get_stats(struct cpdma_chan *chan,
drivers/net/ethernet/ti/davinci_cpdma.h
80
int cpdma_chan_submit_mapped(struct cpdma_chan *chan, void *token,
drivers/net/ethernet/ti/davinci_cpdma.h
82
int cpdma_chan_submit(struct cpdma_chan *chan, void *token, void *data,
drivers/net/ethernet/ti/davinci_cpdma.h
84
int cpdma_chan_idle_submit_mapped(struct cpdma_chan *chan, void *token,
drivers/net/ethernet/ti/davinci_cpdma.h
86
int cpdma_chan_idle_submit(struct cpdma_chan *chan, void *token, void *data,
drivers/net/ethernet/ti/davinci_cpdma.h
88
int cpdma_chan_process(struct cpdma_chan *chan, int quota);
drivers/net/ethernet/ti/davinci_cpdma.h
92
int cpdma_chan_int_ctrl(struct cpdma_chan *chan, bool enable);
drivers/net/ethernet/ti/davinci_cpdma.h
95
bool cpdma_check_free_tx_desc(struct cpdma_chan *chan);
drivers/net/hyperv/netvsc_trace.h
134
const struct vmbus_channel *chan,
drivers/net/hyperv/netvsc_trace.h
136
TP_ARGS(ndev, chan, rpkt),
drivers/net/hyperv/netvsc_trace.h
146
__entry->qid = chan->offermsg.offer.sub_channel_index;
drivers/net/hyperv/netvsc_trace.h
159
const struct vmbus_channel *chan,
drivers/net/hyperv/netvsc_trace.h
161
TP_ARGS(ndev, chan, msg),
drivers/net/hyperv/netvsc_trace.h
169
__entry->qid = chan->offermsg.offer.sub_channel_index;
drivers/net/mdio/mdio-realtek-rtl9300.c
159
struct otto_emdio_chan *chan = bus->priv;
drivers/net/mdio/mdio-realtek-rtl9300.c
163
priv = chan->priv;
drivers/net/mdio/mdio-realtek-rtl9300.c
166
if (priv->smi_bus[i] == chan->mdio_bus &&
drivers/net/mdio/mdio-realtek-rtl9300.c
175
struct otto_emdio_chan *chan = bus->priv;
drivers/net/mdio/mdio-realtek-rtl9300.c
177
return chan->priv;
drivers/net/mdio/mdio-realtek-rtl9300.c
513
struct otto_emdio_chan *chan;
drivers/net/mdio/mdio-realtek-rtl9300.c
526
bus = devm_mdiobus_alloc_size(dev, sizeof(*chan));
drivers/net/mdio/mdio-realtek-rtl9300.c
539
chan = bus->priv;
drivers/net/mdio/mdio-realtek-rtl9300.c
540
chan->mdio_bus = mdio_bus;
drivers/net/mdio/mdio-realtek-rtl9300.c
541
chan->priv = priv;
drivers/net/mhi_net.c
390
{ .chan = "IP_HW0", .driver_data = (kernel_ulong_t)&mhi_hwip0 },
drivers/net/mhi_net.c
392
{ .chan = "IP_SW0", .driver_data = (kernel_ulong_t)&mhi_swip0 },
drivers/net/phy/bcm-phy-ptp.c
713
enum ptp_pin_function func, unsigned int chan)
drivers/net/phy/dp83640.c
196
pd[index].chan = 0;
drivers/net/phy/dp83640.c
200
pd[index].chan = 0;
drivers/net/phy/dp83640.c
205
pd[index].chan = i - EXTTS0_GPIO;
drivers/net/phy/dp83640.c
521
enum ptp_pin_function func, unsigned int chan)
drivers/net/phy/micrel.c
4024
enum ptp_pin_function func, unsigned int chan)
drivers/net/phy/micrel.c
4033
if (pin >= LAN8814_PTP_PEROUT_NUM || pin != chan)
drivers/net/phy/micrel.c
5568
enum ptp_pin_function func, unsigned int chan)
drivers/net/phy/microchip_rds_ptp.c
270
enum ptp_pin_function func, unsigned int chan)
drivers/net/phy/microchip_rds_ptp.c
276
if (!(pin == clock->event_pin && chan == 0))
drivers/net/phy/nxp-c45-tja11xx.c
921
enum ptp_pin_function func, unsigned int chan)
drivers/net/ppp/ppp_async.c
103
static int ppp_async_ioctl(struct ppp_channel *chan, unsigned int cmd,
drivers/net/ppp/ppp_async.c
188
ap->chan.private = ap;
drivers/net/ppp/ppp_async.c
189
ap->chan.ops = &async_ops;
drivers/net/ppp/ppp_async.c
190
ap->chan.mtu = PPP_MRU;
drivers/net/ppp/ppp_async.c
192
ap->chan.speed = speed;
drivers/net/ppp/ppp_async.c
193
err = ppp_register_channel(&ap->chan);
drivers/net/ppp/ppp_async.c
238
ppp_unregister_channel(&ap->chan);
drivers/net/ppp/ppp_async.c
296
if (put_user(ppp_channel_index(&ap->chan), p))
drivers/net/ppp/ppp_async.c
303
if (put_user(ppp_unit_number(&ap->chan), p))
drivers/net/ppp/ppp_async.c
394
ppp_async_ioctl(struct ppp_channel *chan, unsigned int cmd, unsigned long arg)
drivers/net/ppp/ppp_async.c
396
struct asyncppp *ap = chan->private;
drivers/net/ppp/ppp_async.c
494
ppp_input_error(&ap->chan);
drivers/net/ppp/ppp_async.c
495
ppp_input(&ap->chan, skb);
drivers/net/ppp/ppp_async.c
500
ppp_output_wakeup(&ap->chan);
drivers/net/ppp/ppp_async.c
623
ppp_async_send(struct ppp_channel *chan, struct sk_buff *skb)
drivers/net/ppp/ppp_async.c
625
struct asyncppp *ap = chan->private;
drivers/net/ppp/ppp_async.c
70
struct ppp_channel chan; /* interface to generic ppp layer */
drivers/net/ppp/ppp_async.c
736
ppp_output_wakeup(&ap->chan);
drivers/net/ppp/ppp_async.c
98
static int ppp_async_send(struct ppp_channel *chan, struct sk_buff *skb);
drivers/net/ppp/ppp_async.c
995
ap->chan.mtu = val;
drivers/net/ppp/ppp_generic.c
1052
struct channel *chan;
drivers/net/ppp/ppp_generic.c
1096
chan = ppp_find_channel(pn, unit);
drivers/net/ppp/ppp_generic.c
1097
if (chan) {
drivers/net/ppp/ppp_generic.c
1098
refcount_inc(&chan->file.refcnt);
drivers/net/ppp/ppp_generic.c
1099
file->private_data = &chan->file;
drivers/net/ppp/ppp_generic.c
1594
struct ppp_channel *chan;
drivers/net/ppp/ppp_generic.c
1604
chan = pch->chan;
drivers/net/ppp/ppp_generic.c
1605
if (!chan->ops->fill_forward_path)
drivers/net/ppp/ppp_generic.c
1608
return chan->ops->fill_forward_path(ctx, path, chan);
drivers/net/ppp/ppp_generic.c
178
struct ppp_channel *chan; /* public channel data structure */
drivers/net/ppp/ppp_generic.c
1919
struct ppp_channel *chan;
drivers/net/ppp/ppp_generic.c
1926
chan = pch->chan;
drivers/net/ppp/ppp_generic.c
1927
if (unlikely(!chan->direct_xmit && skb_linearize(skb))) {
drivers/net/ppp/ppp_generic.c
1936
ret = chan->ops->start_xmit(chan, skb);
drivers/net/ppp/ppp_generic.c
1977
struct ppp_channel *chan;
drivers/net/ppp/ppp_generic.c
1992
pch->speed = pch->chan->speed;
drivers/net/ppp/ppp_generic.c
2116
mtu = pch->chan->mtu - (hdrlen - 2);
drivers/net/ppp/ppp_generic.c
2143
chan = pch->chan;
drivers/net/ppp/ppp_generic.c
2145
!chan->ops->start_xmit(chan, frag))
drivers/net/ppp/ppp_generic.c
2175
if (pch->chan) {
drivers/net/ppp/ppp_generic.c
2178
if (!pch->chan->ops->start_xmit(pch->chan, skb)) {
drivers/net/ppp/ppp_generic.c
2296
if (!pchb->chan) {
drivers/net/ppp/ppp_generic.c
2303
if (!pchb->chan->ops->start_xmit(pchb->chan, skb))
drivers/net/ppp/ppp_generic.c
2316
ppp_input(struct ppp_channel *chan, struct sk_buff *skb)
drivers/net/ppp/ppp_generic.c
2318
struct channel *pch = chan->ppp;
drivers/net/ppp/ppp_generic.c
2360
ppp_input_error(struct ppp_channel *chan)
drivers/net/ppp/ppp_generic.c
2362
struct channel *pch = chan->ppp;
drivers/net/ppp/ppp_generic.c
2900
int ppp_register_channel(struct ppp_channel *chan)
drivers/net/ppp/ppp_generic.c
2902
return ppp_register_net_channel(current->nsproxy->net_ns, chan);
drivers/net/ppp/ppp_generic.c
2906
int ppp_register_net_channel(struct net *net, struct ppp_channel *chan)
drivers/net/ppp/ppp_generic.c
2917
pch->chan = chan;
drivers/net/ppp/ppp_generic.c
2919
chan->ppp = pch;
drivers/net/ppp/ppp_generic.c
2921
pch->file.hdrlen = chan->hdrlen;
drivers/net/ppp/ppp_generic.c
2941
int ppp_channel_index(struct ppp_channel *chan)
drivers/net/ppp/ppp_generic.c
2943
struct channel *pch = chan->ppp;
drivers/net/ppp/ppp_generic.c
2953
int ppp_unit_number(struct ppp_channel *chan)
drivers/net/ppp/ppp_generic.c
2955
struct channel *pch = chan->ppp;
drivers/net/ppp/ppp_generic.c
2973
char *ppp_dev_name(struct ppp_channel *chan)
drivers/net/ppp/ppp_generic.c
2975
struct channel *pch = chan->ppp;
drivers/net/ppp/ppp_generic.c
2993
ppp_unregister_channel(struct ppp_channel *chan)
drivers/net/ppp/ppp_generic.c
2995
struct channel *pch = chan->ppp;
drivers/net/ppp/ppp_generic.c
3001
chan->ppp = NULL;
drivers/net/ppp/ppp_generic.c
3010
pch->chan = NULL;
drivers/net/ppp/ppp_generic.c
3032
ppp_output_wakeup(struct ppp_channel *chan)
drivers/net/ppp/ppp_generic.c
3034
struct channel *pch = chan->ppp;
drivers/net/ppp/ppp_generic.c
3515
if (!pch->chan) {
drivers/net/ppp/ppp_generic.c
3522
if (pch->chan->direct_xmit)
drivers/net/ppp/ppp_generic.c
750
struct ppp_channel *chan;
drivers/net/ppp/ppp_generic.c
792
chan = pch->chan;
drivers/net/ppp/ppp_generic.c
794
if (chan && chan->ops->ioctl)
drivers/net/ppp/ppp_generic.c
795
err = chan->ops->ioctl(chan, cmd, arg);
drivers/net/ppp/ppp_synctty.c
185
ap->chan.private = ap;
drivers/net/ppp/ppp_synctty.c
186
ap->chan.ops = &sync_ops;
drivers/net/ppp/ppp_synctty.c
187
ap->chan.mtu = PPP_MRU;
drivers/net/ppp/ppp_synctty.c
188
ap->chan.hdrlen = 2; /* for A/C bytes */
drivers/net/ppp/ppp_synctty.c
190
ap->chan.speed = speed;
drivers/net/ppp/ppp_synctty.c
191
err = ppp_register_channel(&ap->chan);
drivers/net/ppp/ppp_synctty.c
236
ppp_unregister_channel(&ap->chan);
drivers/net/ppp/ppp_synctty.c
288
if (put_user(ppp_channel_index(&ap->chan), p))
drivers/net/ppp/ppp_synctty.c
295
if (put_user(ppp_unit_number(&ap->chan), p))
drivers/net/ppp/ppp_synctty.c
386
ppp_sync_ioctl(struct ppp_channel *chan, unsigned int cmd, unsigned long arg)
drivers/net/ppp/ppp_synctty.c
388
struct syncppp *ap = chan->private;
drivers/net/ppp/ppp_synctty.c
486
ppp_input_error(&ap->chan);
drivers/net/ppp/ppp_synctty.c
490
ppp_input(&ap->chan, skb);
drivers/net/ppp/ppp_synctty.c
495
ppp_output_wakeup(&ap->chan);
drivers/net/ppp/ppp_synctty.c
565
ppp_sync_send(struct ppp_channel *chan, struct sk_buff *skb)
drivers/net/ppp/ppp_synctty.c
567
struct syncppp *ap = chan->private;
drivers/net/ppp/ppp_synctty.c
652
ppp_output_wakeup(&ap->chan);
drivers/net/ppp/ppp_synctty.c
74
struct ppp_channel chan; /* interface to generic ppp layer */
drivers/net/ppp/ppp_synctty.c
90
static int ppp_sync_send(struct ppp_channel *chan, struct sk_buff *skb);
drivers/net/ppp/ppp_synctty.c
91
static int ppp_sync_ioctl(struct ppp_channel *chan, unsigned int cmd,
drivers/net/ppp/pppoe.c
361
ppp_input(&po->chan, skb);
drivers/net/ppp/pppoe.c
635
memset(&po->chan, 0, sizeof(po->chan));
drivers/net/ppp/pppoe.c
667
po->chan.hdrlen = (sizeof(struct pppoe_hdr) +
drivers/net/ppp/pppoe.c
670
po->chan.mtu = dev->mtu - sizeof(struct pppoe_hdr) - 2;
drivers/net/ppp/pppoe.c
671
po->chan.private = sk;
drivers/net/ppp/pppoe.c
672
po->chan.ops = &pppoe_chan_ops;
drivers/net/ppp/pppoe.c
673
po->chan.direct_xmit = true;
drivers/net/ppp/pppoe.c
675
error = ppp_register_net_channel(dev_net(dev), &po->chan);
drivers/net/ppp/pppoe.c
902
static int pppoe_xmit(struct ppp_channel *chan, struct sk_buff *skb)
drivers/net/ppp/pppoe.c
904
struct sock *sk = chan->private;
drivers/net/ppp/pppoe.c
910
const struct ppp_channel *chan)
drivers/net/ppp/pppoe.c
912
struct sock *sk = chan->private;
drivers/net/ppp/pppox.c
58
ppp_unregister_channel(&pppox_sk(sk)->chan);
drivers/net/ppp/pppox.c
83
index = ppp_channel_index(&po->chan);
drivers/net/ppp/pptp.c
149
static int pptp_xmit(struct ppp_channel *chan, struct sk_buff *skb)
drivers/net/ppp/pptp.c
151
struct sock *sk = chan->private;
drivers/net/ppp/pptp.c
341
ppp_input(&po->chan, skb);
drivers/net/ppp/pptp.c
456
po->chan.private = sk;
drivers/net/ppp/pptp.c
457
po->chan.ops = &pptp_chan_ops;
drivers/net/ppp/pptp.c
466
po->chan.mtu = dst_mtu(&rt->dst);
drivers/net/ppp/pptp.c
467
if (!po->chan.mtu)
drivers/net/ppp/pptp.c
468
po->chan.mtu = PPP_MRU;
drivers/net/ppp/pptp.c
469
po->chan.mtu -= PPTP_HEADER_OVERHEAD;
drivers/net/ppp/pptp.c
471
po->chan.hdrlen = 2 + sizeof(struct pptp_gre_header);
drivers/net/ppp/pptp.c
472
po->chan.direct_xmit = true;
drivers/net/ppp/pptp.c
473
error = ppp_register_channel(&po->chan);
drivers/net/ppp/pptp.c
580
static int pptp_ppp_ioctl(struct ppp_channel *chan, unsigned int cmd,
drivers/net/ppp/pptp.c
583
struct sock *sk = chan->private;
drivers/net/pse-pd/si3474.c
131
#define CHAN_IDX(chan) ((chan) % 4)
drivers/net/pse-pd/si3474.c
132
#define CHAN_BIT(chan) BIT(CHAN_IDX(chan))
drivers/net/pse-pd/si3474.c
133
#define CHAN_UPPER_BIT(chan) BIT(CHAN_IDX(chan) + 4)
drivers/net/pse-pd/si3474.c
135
#define CHAN_MASK(chan) (0x03U << (2 * CHAN_IDX(chan)))
drivers/net/pse-pd/si3474.c
136
#define CHAN_REG(base, chan) ((base) + (CHAN_IDX(chan) * 4))
drivers/net/pse-pd/si3474.c
139
u8 chan[2];
drivers/net/pse-pd/si3474.c
158
*chan0 = priv->pi[id].chan[0];
drivers/net/pse-pd/si3474.c
159
*chan1 = priv->pi[id].chan[1];
drivers/net/pse-pd/si3474.c
163
u8 chan)
drivers/net/pse-pd/si3474.c
165
return (chan < 4) ? priv->client[0] : priv->client[1];
drivers/net/pse-pd/si3474.c
259
priv->pi[pi_no].chan[pairset_no] = chan_id;
drivers/net/pse-pd/si3474.c
352
static int si3474_pi_get_chan_current(struct si3474_priv *priv, u8 chan)
drivers/net/pse-pd/si3474.c
359
client = si3474_get_chan_client(priv, chan);
drivers/net/pse-pd/si3474.c
362
reg = CHAN_REG(PORT1_CURRENT_LSB_REG, chan);
drivers/net/pse-pd/si3474.c
375
static int si3474_pi_get_chan_voltage(struct si3474_priv *priv, u8 chan)
drivers/net/pse-pd/si3474.c
382
client = si3474_get_chan_client(priv, chan);
drivers/net/pse-pd/si3474.c
385
reg = CHAN_REG(PORT1_VOLTAGE_LSB_REG, chan);
drivers/net/pse-pd/tps23881.c
100
if (chan >= 4)
drivers/net/pse-pd/tps23881.c
1149
u8 chan;
drivers/net/pse-pd/tps23881.c
1161
chan = priv->port[i].chan[0];
drivers/net/pse-pd/tps23881.c
1163
if (BIT(chan) & chans) {
drivers/net/pse-pd/tps23881.c
119
static u16 tps23881_set_val(u16 reg_val, u8 chan, u8 field_offset,
drivers/net/pse-pd/tps23881.c
124
if (chan < 4) {
drivers/net/pse-pd/tps23881.c
142
u8 chan;
drivers/net/pse-pd/tps23881.c
144
chan = priv->port[id].chan[0];
drivers/net/pse-pd/tps23881.c
146
reg = TPS23881_REG_2PAIR_POL1 + (chan % 4);
drivers/net/pse-pd/tps23881.c
149
if ((chan % 4) < 2)
drivers/net/pse-pd/tps23881.c
159
val = tps23881_set_val(ret, chan, 0, 0xff, pw_pol);
drivers/net/pse-pd/tps23881.c
167
u8 chan;
drivers/net/pse-pd/tps23881.c
178
chan = priv->port[id].chan[0];
drivers/net/pse-pd/tps23881.c
179
val = tps23881_set_val(ret, chan, 0, BIT(chan % 4), BIT(chan % 4));
drivers/net/pse-pd/tps23881.c
187
u8 chan;
drivers/net/pse-pd/tps23881.c
194
chan = priv->port[id].chan[0];
drivers/net/pse-pd/tps23881.c
195
val = tps23881_set_val(0, chan, 0, BIT(chan % 4), BIT(chan % 4));
drivers/net/pse-pd/tps23881.c
198
chan = priv->port[id].chan[1];
drivers/net/pse-pd/tps23881.c
199
val = tps23881_set_val(val, chan, 0, BIT(chan % 4),
drivers/net/pse-pd/tps23881.c
200
BIT(chan % 4));
drivers/net/pse-pd/tps23881.c
208
chan = priv->port[id].chan[0];
drivers/net/pse-pd/tps23881.c
213
val = tps23881_set_val(ret, chan, 0, BIT(chan % 4), BIT(chan % 4));
drivers/net/pse-pd/tps23881.c
225
u8 chan;
drivers/net/pse-pd/tps23881.c
232
chan = priv->port[id].chan[0];
drivers/net/pse-pd/tps23881.c
233
val = tps23881_set_val(0, chan, 4, BIT(chan % 4), BIT(chan % 4));
drivers/net/pse-pd/tps23881.c
236
chan = priv->port[id].chan[1];
drivers/net/pse-pd/tps23881.c
237
val = tps23881_set_val(val, chan, 4, BIT(chan % 4),
drivers/net/pse-pd/tps23881.c
238
BIT(chan % 4));
drivers/net/pse-pd/tps23881.c
252
chan = priv->port[id].chan[0];
drivers/net/pse-pd/tps23881.c
257
val = tps23881_set_val(ret, chan, 0, 0, BIT(chan % 4));
drivers/net/pse-pd/tps23881.c
267
chan = priv->port[id].chan[0];
drivers/net/pse-pd/tps23881.c
268
val = tps23881_set_val(ret, chan, 0, BIT(chan % 4), BIT(chan % 4));
drivers/net/pse-pd/tps23881.c
269
val = tps23881_set_val(val, chan, 4, BIT(chan % 4), BIT(chan % 4));
drivers/net/pse-pd/tps23881.c
272
chan = priv->port[id].chan[1];
drivers/net/pse-pd/tps23881.c
273
val = tps23881_set_val(ret, chan, 0, BIT(chan % 4),
drivers/net/pse-pd/tps23881.c
274
BIT(chan % 4));
drivers/net/pse-pd/tps23881.c
275
val = tps23881_set_val(val, chan, 4, BIT(chan % 4),
drivers/net/pse-pd/tps23881.c
276
BIT(chan % 4));
drivers/net/pse-pd/tps23881.c
303
u8 chan;
drivers/net/pse-pd/tps23881.c
311
chan = priv->port[id].chan[0];
drivers/net/pse-pd/tps23881.c
312
val = tps23881_calc_val(ret, chan, 0, BIT(chan % 4));
drivers/net/pse-pd/tps23881.c
316
chan = priv->port[id].chan[1];
drivers/net/pse-pd/tps23881.c
317
val = tps23881_calc_val(ret, chan, 0, BIT(chan % 4));
drivers/net/pse-pd/tps23881.c
339
u8 chan;
drivers/net/pse-pd/tps23881.c
347
chan = priv->port[id].chan[0];
drivers/net/pse-pd/tps23881.c
348
val = tps23881_calc_val(ret, chan, 4, BIT(chan % 4));
drivers/net/pse-pd/tps23881.c
352
chan = priv->port[id].chan[1];
drivers/net/pse-pd/tps23881.c
353
val = tps23881_calc_val(ret, chan, 4, BIT(chan % 4));
drivers/net/pse-pd/tps23881.c
386
tps23881_pi_get_chan_current(struct tps23881_priv *priv, u8 chan)
drivers/net/pse-pd/tps23881.c
393
reg = TPS23881_REG_CHAN1_A + (chan % 4) * 4 + (chan >= 4);
drivers/net/pse-pd/tps23881.c
411
u8 chan;
drivers/net/pse-pd/tps23881.c
413
chan = priv->port[id].chan[0];
drivers/net/pse-pd/tps23881.c
414
reg = TPS23881_REG_CHAN1_CLASS + (chan % 4);
drivers/net/pse-pd/tps23881.c
419
return tps23881_calc_val(ret, chan, 4, 0x0f);
drivers/net/pse-pd/tps23881.c
428
u8 chan;
drivers/net/pse-pd/tps23881.c
435
chan = priv->port[id].chan[0];
drivers/net/pse-pd/tps23881.c
436
ret = tps23881_pi_get_chan_current(priv, chan);
drivers/net/pse-pd/tps23881.c
442
chan = priv->port[id].chan[1];
drivers/net/pse-pd/tps23881.c
443
ret = tps23881_pi_get_chan_current(priv, chan);
drivers/net/pse-pd/tps23881.c
456
tps23881_pi_get_pw_limit_chan(struct tps23881_priv *priv, u8 chan)
drivers/net/pse-pd/tps23881.c
462
reg = TPS23881_REG_2PAIR_POL1 + (chan % 4);
drivers/net/pse-pd/tps23881.c
467
val = tps23881_calc_val(ret, chan, 0, 0xff);
drivers/net/pse-pd/tps23881.c
475
u8 chan;
drivers/net/pse-pd/tps23881.c
477
chan = priv->port[id].chan[0];
drivers/net/pse-pd/tps23881.c
478
ret = tps23881_pi_get_pw_limit_chan(priv, chan);
drivers/net/pse-pd/tps23881.c
484
chan = priv->port[id].chan[1];
drivers/net/pse-pd/tps23881.c
485
ret = tps23881_pi_get_pw_limit_chan(priv, chan);
drivers/net/pse-pd/tps23881.c
615
int chan)
drivers/net/pse-pd/tps23881.c
621
(port_matrix[i].hw_chan[0] == chan ||
drivers/net/pse-pd/tps23881.c
622
port_matrix[i].hw_chan[1] == chan))
drivers/net/pse-pd/tps23881.c
68
u8 chan[2];
drivers/net/pse-pd/tps23881.c
830
priv->port[pi_id].chan[0] = lgcl_chan;
drivers/net/pse-pd/tps23881.c
849
priv->port[pi_id].chan[1] = lgcl_chan;
drivers/net/pse-pd/tps23881.c
97
static u16 tps23881_calc_val(u16 reg_val, u8 chan, u8 field_offset,
drivers/net/pse-pd/tps23881.c
979
u8 reg, chan;
drivers/net/pse-pd/tps23881.c
987
chan = priv->port[id].chan[0];
drivers/net/pse-pd/tps23881.c
988
reg = TPS23881_REG_DISC + (chan % 4);
drivers/net/pse-pd/tps23881.c
993
val = tps23881_calc_val(ret, chan, 4, 0xf);
drivers/net/wan/hd64572.c
147
sca_out(0, DSR_RX(port->chan), card);
drivers/net/wan/hd64572.c
148
sca_out(0, DSR_TX(port->chan), card);
drivers/net/wan/hd64572.c
151
sca_out(DCR_ABORT, DCR_RX(port->chan), card);
drivers/net/wan/hd64572.c
152
sca_out(DCR_ABORT, DCR_TX(port->chan), card);
drivers/net/wan/hd64572.c
162
sca_out(DCR_CLEAR_EOF, DCR_RX(port->chan), card);
drivers/net/wan/hd64572.c
163
sca_out(DCR_CLEAR_EOF, DCR_TX(port->chan), card);
drivers/net/wan/hd64572.c
167
sca_out(0x14, DMR_RX(port->chan), card); /* Chain mode, Multi-frame */
drivers/net/wan/hd64572.c
168
sca_out(DIR_EOME, DIR_RX(port->chan), card); /* enable interrupts */
drivers/net/wan/hd64572.c
169
sca_out(DSR_DE, DSR_RX(port->chan), card); /* DMA enable */
drivers/net/wan/hd64572.c
172
sca_out(0x14, DMR_TX(port->chan), card); /* Chain mode, Multi-frame */
drivers/net/wan/hd64572.c
173
sca_out(DIR_EOME, DIR_TX(port->chan), card); /* enable interrupts */
drivers/net/wan/hd64572.c
228
u8 stat = sca_in(DSR_RX(port->chan), card); /* read DMA Status */
drivers/net/wan/hd64572.c
233
DSR_RX(port->chan), card);
drivers/net/wan/hd64572.c
273
sca_out(DSR_DE, DSR_RX(port->chan), card);
drivers/net/wan/hd64572.c
287
stat = sca_in(DSR_TX(port->chan), card); /* read DMA Status */
drivers/net/wan/hd64572.c
291
DSR_TX(port->chan), card);
drivers/net/wan/hd64572.c
322
if (isr0 & (port->chan ? 0x08000000 : 0x00080000))
drivers/net/wan/hd64572.c
325
if (isr0 & (port->chan ? 0x00002000 : 0x00000020))
drivers/net/wan/hd64572.c
328
if (isr0 & (port->chan ? 0x00000200 : 0x00000002))
drivers/net/wan/hd64572.c
44
#define get_msci(port) ((port)->chan ? MSCI1_OFFSET : MSCI0_OFFSET)
drivers/net/wan/hd64572.c
45
#define get_dmac_rx(port) ((port)->chan ? DMAC1RX_OFFSET : DMAC0RX_OFFSET)
drivers/net/wan/hd64572.c
46
#define get_dmac_tx(port) ((port)->chan ? DMAC1TX_OFFSET : DMAC0TX_OFFSET)
drivers/net/wan/hd64572.c
528
sca_in(DSR_RX(port->chan), card), port->rxin,
drivers/net/wan/hd64572.c
529
sca_in(DSR_RX(port->chan), card) & DSR_DE ? "" : "in");
drivers/net/wan/hd64572.c
538
sca_in(DSR_TX(port->chan), card), port->txin, port->txlast,
drivers/net/wan/hd64572.c
539
sca_in(DSR_TX(port->chan), card) & DSR_DE ? "" : "in");
drivers/net/wan/hd64572.c
593
sca_out(DSR_DE, DSR_TX(port->chan), card); /* Enable TX DMA */
drivers/net/wan/hd64572.c
66
(port->chan ? 0x08002200 : 0x00080022), IER0, port->card);
drivers/net/wan/hd64572.c
72
(port->chan ? 0x00FF00FF : 0xFF00FF00), IER0, port->card);
drivers/net/wan/hd64572.c
81
return port->chan * (rx_buffs + tx_buffs) + transmit * rx_buffs + desc;
drivers/net/wan/hd64572.h
126
#define DSR_RX(chan) (0x48 + 2*chan) /* DMA Status Reg (Rx) */
drivers/net/wan/hd64572.h
127
#define DSR_TX(chan) (0x49 + 2*chan) /* DMA Status Reg (Tx) */
drivers/net/wan/hd64572.h
128
#define DIR_RX(chan) (0x4c + 2*chan) /* DMA Interrupt Enable Reg (Rx) */
drivers/net/wan/hd64572.h
129
#define DIR_TX(chan) (0x4d + 2*chan) /* DMA Interrupt Enable Reg (Tx) */
drivers/net/wan/hd64572.h
130
#define FCT_RX(chan) (0x50 + 2*chan) /* Frame End Interrupt Counter (Rx) */
drivers/net/wan/hd64572.h
131
#define FCT_TX(chan) (0x51 + 2*chan) /* Frame End Interrupt Counter (Tx) */
drivers/net/wan/hd64572.h
132
#define DMR_RX(chan) (0x54 + 2*chan) /* DMA Mode Reg (Rx) */
drivers/net/wan/hd64572.h
133
#define DMR_TX(chan) (0x55 + 2*chan) /* DMA Mode Reg (Tx) */
drivers/net/wan/hd64572.h
134
#define DCR_RX(chan) (0x58 + 2*chan) /* DMA Command Reg (Rx) */
drivers/net/wan/hd64572.h
135
#define DCR_TX(chan) (0x59 + 2*chan) /* DMA Command Reg (Tx) */
drivers/net/wan/hd64572.h
46
#define M_REG(reg, chan) (reg + 0x80*chan) /* MSCI */
drivers/net/wan/hd64572.h
47
#define DRX_REG(reg, chan) (reg + 0x40*chan) /* DMA Rx */
drivers/net/wan/hd64572.h
48
#define DTX_REG(reg, chan) (reg + 0x20*(2*chan + 1)) /* DMA Tx */
drivers/net/wan/hd64572.h
49
#define TRX_REG(reg, chan) (reg + 0x20*chan) /* Timer Rx */
drivers/net/wan/hd64572.h
50
#define TTX_REG(reg, chan) (reg + 0x10*(2*chan + 1)) /* Timer Tx */
drivers/net/wan/hd64572.h
51
#define ST_REG(reg, chan) (reg + 0x80*chan) /* Status Cnt */
drivers/net/wan/hd64572.h
52
#define IR0_DRX(val, chan) ((val)<<(8*(chan))) /* Int DMA Rx */
drivers/net/wan/hd64572.h
53
#define IR0_DTX(val, chan) ((val)<<(4*(2*chan + 1))) /* Int DMA Tx */
drivers/net/wan/hd64572.h
54
#define IR0_M(val, chan) ((val)<<(8*(chan))) /* Int MSCI */
drivers/net/wan/pc300too.c
117
sca_out(EXS_TES1, (port->chan ? MSCI1_OFFSET : MSCI0_OFFSET) + EXS,
drivers/net/wan/pc300too.c
150
PC300_CHMEDIA_MASK(port->chan), init_ctrl);
drivers/net/wan/pc300too.c
153
~PC300_CHMEDIA_MASK(port->chan), init_ctrl);
drivers/net/wan/pc300too.c
433
port->chan = i;
drivers/net/wan/pc300too.c
458
netdev_info(dev, "PC300 channel %d\n", port->chan);
drivers/net/wan/pc300too.c
86
u8 chan; /* physical port # - 0 or 1 */
drivers/net/wan/pci200syn.c
117
sca_out(EXS_TES1, (port->chan ? MSCI1_OFFSET : MSCI0_OFFSET) + EXS,
drivers/net/wan/pci200syn.c
372
port->chan = i;
drivers/net/wan/pci200syn.c
392
netdev_info(dev, "PCI200SYN channel %d\n", port->chan);
drivers/net/wan/pci200syn.c
73
u8 chan; /* physical port # - 0 or 1 */
drivers/net/wireless/admtek/adm8211.c
1301
ieee80211_frequency_to_channel(conf->chandef.chan->center_freq);
drivers/net/wireless/admtek/adm8211.c
619
static int adm8211_rf_set_channel(struct ieee80211_hw *dev, unsigned int chan)
drivers/net/wireless/admtek/adm8211.c
630
priv->eeprom->antenna_power[chan - 1] : priv->ant_power;
drivers/net/wireless/admtek/adm8211.c
632
priv->eeprom->tx_power[chan - 1] : priv->tx_power;
drivers/net/wireless/admtek/adm8211.c
634
priv->eeprom->lpf_cutoff[chan - 1] : priv->lpf_cutoff;
drivers/net/wireless/admtek/adm8211.c
636
priv->eeprom->lnags_threshold[chan - 1] : priv->lnags_threshold;
drivers/net/wireless/admtek/adm8211.c
649
adm8211_rfmd2958_reg5[chan - 1]);
drivers/net/wireless/admtek/adm8211.c
651
adm8211_rfmd2958_reg6[chan - 1]);
drivers/net/wireless/admtek/adm8211.c
662
(chan == 14 ?
drivers/net/wireless/admtek/adm8211.c
663
2110 : (2033 + (chan * 5))));
drivers/net/wireless/admtek/adm8211.c
671
(chan == 14 ? 0x054 : (0x7 + (chan * 5))));
drivers/net/wireless/admtek/adm8211.c
676
(chan == 14 ? 0x229B4 : (0x22967 + (chan * 5))));
drivers/net/wireless/admtek/adm8211.c
694
if (chan != 14)
drivers/net/wireless/admtek/adm8211.c
745
reg |= chan;
drivers/net/wireless/ath/ar5523/ar5523.c
1164
band = ar->hw->wiphy->bands[ar->hw->conf.chandef.chan->band];
drivers/net/wireless/ath/ar5523/ar5523.c
1170
sta_rate_set = sta->deflink.supp_rates[ar->hw->conf.chandef.chan->band];
drivers/net/wireless/ath/ar5523/ar5523.c
1208
sta_rate_set = sta->deflink.supp_rates[ar->hw->conf.chandef.chan->band];
drivers/net/wireless/ath/ar5523/ar5523.c
1212
band = ar->hw->wiphy->bands[ar->hw->conf.chandef.chan->band];
drivers/net/wireless/ath/ar5523/ar5523.c
470
reset.freq = cpu_to_be32(conf->chandef.chan->center_freq);
drivers/net/wireless/ath/ar5523/ar5523.c
477
conf->chandef.chan->center_freq);
drivers/net/wireless/ath/ar5523/ar5523.c
607
rx_status->band = hw->conf.chandef.chan->band;
drivers/net/wireless/ath/ath10k/htt_rx.c
1152
return def.chan;
drivers/net/wireless/ath/ath10k/htt_rx.c
1166
return def.chan;
drivers/net/wireless/ath/ath10k/htt_rx.c
1191
return def.chan;
drivers/net/wireless/ath/ath10k/htt_rx.c
3849
if (conf && conf->def.chan->band == NL80211_BAND_5GHZ)
drivers/net/wireless/ath/ath10k/mac.c
1069
channel = chandef->chan;
drivers/net/wireless/ath/ath10k/mac.c
1524
arg.channel.freq = chandef->chan->center_freq;
drivers/net/wireless/ath/ath10k/mac.c
1530
arg.channel.max_power = chandef->chan->max_power * 2;
drivers/net/wireless/ath/ath10k/mac.c
1531
arg.channel.max_reg_power = chandef->chan->max_reg_power * 2;
drivers/net/wireless/ath/ath10k/mac.c
1532
arg.channel.max_antenna_gain = chandef->chan->max_antenna_gain;
drivers/net/wireless/ath/ath10k/mac.c
1541
!!(chandef->chan->flags & IEEE80211_CHAN_RADAR);
drivers/net/wireless/ath/ath10k/mac.c
2225
bss = cfg80211_get_bss(ar->hw->wiphy, def.chan, info->bssid,
drivers/net/wireless/ath/ath10k/mac.c
2283
band = def.chan->band;
drivers/net/wireless/ath/ath10k/mac.c
2348
band = def.chan->band;
drivers/net/wireless/ath/ath10k/mac.c
2596
band = def.chan->band;
drivers/net/wireless/ath/ath10k/mac.c
2604
if (def.chan->band == NL80211_BAND_2GHZ)
drivers/net/wireless/ath/ath10k/mac.c
2767
band = def.chan->band;
drivers/net/wireless/ath/ath10k/mac.c
578
switch (chandef->chan->band) {
drivers/net/wireless/ath/ath10k/mac.c
582
if (chandef->chan->flags & IEEE80211_CHAN_NO_OFDM)
drivers/net/wireless/ath/ath10k/mac.c
6090
sband = ar->hw->wiphy->bands[def->chan->band];
drivers/net/wireless/ath/ath10k/mac.c
6303
band = def.chan->band;
drivers/net/wireless/ath/ath10k/mac.c
6770
band = def.chan->band;
drivers/net/wireless/ath/ath10k/mac.c
7063
band = def.chan->band;
drivers/net/wireless/ath/ath10k/mac.c
7931
struct ieee80211_channel *chan,
drivers/net/wireless/ath/ath10k/mac.c
7957
ar->scan.roc_freq = chan->center_freq;
drivers/net/wireless/ath/ath10k/mac.c
7984
arg->channels[0] = chan->center_freq;
drivers/net/wireless/ath/ath10k/mac.c
8470
band = def.chan->band;
drivers/net/wireless/ath/ath10k/mac.c
8739
ar->rx_channel = def->chan;
drivers/net/wireless/ath/ath10k/mac.c
8747
ar->rx_channel = ctx->def.chan;
drivers/net/wireless/ath/ath10k/mac.c
8777
vifs[i].old_ctx->def.chan->center_freq,
drivers/net/wireless/ath/ath10k/mac.c
8778
vifs[i].new_ctx->def.chan->center_freq,
drivers/net/wireless/ath/ath10k/mac.c
8850
ctx->def.chan->center_freq, ctx->def.width, ctx);
drivers/net/wireless/ath/ath10k/mac.c
8874
ctx->def.chan->center_freq, ctx->def.width, ctx);
drivers/net/wireless/ath/ath10k/mac.c
8939
ctx->def.chan->center_freq, ctx->def.width, ctx, changed);
drivers/net/wireless/ath/ath10k/mac.c
9008
ctx->def.chan->center_freq, ret);
drivers/net/wireless/ath/ath10k/wmi-ops.h
1501
const struct wmi_channel_arg *chan)
drivers/net/wireless/ath/ath10k/wmi-ops.h
1508
skb = ar->wmi.ops->gen_tdls_peer_update(ar, arg, cap, chan);
drivers/net/wireless/ath/ath10k/wmi-ops.h
196
const struct wmi_channel_arg *chan);
drivers/net/wireless/ath/ath10k/wmi-tlv.c
3553
struct wmi_channel *chan;
drivers/net/wireless/ath/ath10k/wmi-tlv.c
3563
sizeof(*tlv) + cap->peer_chan_len * sizeof(*chan);
drivers/net/wireless/ath/ath10k/wmi-tlv.c
3608
tlv->len = __cpu_to_le16(cap->peer_chan_len * sizeof(*chan));
drivers/net/wireless/ath/ath10k/wmi-tlv.c
3615
tlv->len = __cpu_to_le16(sizeof(*chan));
drivers/net/wireless/ath/ath10k/wmi-tlv.c
3616
chan = (void *)tlv->value;
drivers/net/wireless/ath/ath10k/wmi-tlv.c
3617
ath10k_wmi_put_wmi_channel(ar, chan, &chan_arg[i]);
drivers/net/wireless/ath/ath10k/wmi-tlv.c
3620
ptr += sizeof(*chan);
drivers/net/wireless/ath/ath10k/wmi.c
1703
struct ieee80211_channel *chan = NULL;
drivers/net/wireless/ath/ath10k/wmi.c
1725
chan = ieee80211_get_channel(ar->hw->wiphy,
drivers/net/wireless/ath/ath10k/wmi.c
1744
chan = ieee80211_get_channel(ar->hw->wiphy,
drivers/net/wireless/ath/ath10k/wmi.c
1750
if (chan && chan->flags & IEEE80211_CHAN_RADAR)
drivers/net/wireless/ath/ath10k/wmi.c
7225
ath10k_wmi_put_wmi_channel(ar, &cmd->chan, &arg->channel);
drivers/net/wireless/ath/ath10k/wmi.c
7231
cmd->chan.flags, arg->channel.max_power);
drivers/net/wireless/ath/ath10k/wmi.c
8976
struct wmi_channel *chan;
drivers/net/wireless/ath/ath10k/wmi.c
8985
len = sizeof(*cmd) + chan_len * sizeof(*chan);
drivers/net/wireless/ath/ath10k/wmi.c
9016
chan = (struct wmi_channel *)&peer_cap->peer_chan_list[i];
drivers/net/wireless/ath/ath10k/wmi.c
9017
ath10k_wmi_put_wmi_channel(ar, chan, &chan_arg[i]);
drivers/net/wireless/ath/ath10k/wmi.h
4317
struct wmi_channel chan;
drivers/net/wireless/ath/ath10k/wmi.h
4948
struct wmi_channel chan;
drivers/net/wireless/ath/ath10k/wmi.h
5853
struct wmi_channel chan;
drivers/net/wireless/ath/ath11k/mac.c
10025
arvif->chanctx.def.chan &&
drivers/net/wireless/ath/ath11k/mac.c
10026
arvif->chanctx.def.chan->band == NL80211_BAND_6GHZ) {
drivers/net/wireless/ath/ath11k/mac.c
1852
bss = cfg80211_get_bss(ar->hw->wiphy, def.chan, info->bssid, NULL, 0,
drivers/net/wireless/ath/ath11k/mac.c
1916
band = def.chan->band;
drivers/net/wireless/ath/ath11k/mac.c
1980
band = def.chan->band;
drivers/net/wireless/ath/ath11k/mac.c
2177
band = def.chan->band;
drivers/net/wireless/ath/ath11k/mac.c
2188
if (def.chan->band == NL80211_BAND_2GHZ)
drivers/net/wireless/ath/ath11k/mac.c
2378
band = def.chan->band;
drivers/net/wireless/ath/ath11k/mac.c
2611
band = def.chan->band;
drivers/net/wireless/ath/ath11k/mac.c
2859
band = def.chan->band;
drivers/net/wireless/ath/ath11k/mac.c
3053
if (def.chan->band == NL80211_BAND_2GHZ)
drivers/net/wireless/ath/ath11k/mac.c
3274
sband = ar->hw->wiphy->bands[def->chan->band];
drivers/net/wireless/ath/ath11k/mac.c
3508
chandef->chan &&
drivers/net/wireless/ath/ath11k/mac.c
3509
chandef->chan->band == NL80211_BAND_6GHZ;
drivers/net/wireless/ath/ath11k/mac.c
3727
band = def.chan->band;
drivers/net/wireless/ath/ath11k/mac.c
4875
band = def.chan->band;
drivers/net/wireless/ath/ath11k/mac.c
5012
band = def.chan->band;
drivers/net/wireless/ath/ath11k/mac.c
6348
max_tx_power = min(def.chan->max_reg_power, (int)ar->max_tx_power / 2);
drivers/net/wireless/ath/ath11k/mac.c
695
band = def.chan->band;
drivers/net/wireless/ath/ath11k/mac.c
7514
ctx->def.chan->center_freq, ctx->def.width, ctx);
drivers/net/wireless/ath/ath11k/mac.c
7522
ar->rx_channel = ctx->def.chan;
drivers/net/wireless/ath/ath11k/mac.c
7538
ctx->def.chan->center_freq, ctx->def.width, ctx);
drivers/net/wireless/ath/ath11k/mac.c
7572
arg.channel.freq = chandef->chan->center_freq;
drivers/net/wireless/ath/ath11k/mac.c
7576
ath11k_phymodes[chandef->chan->band][chandef->width];
drivers/net/wireless/ath/ath11k/mac.c
7579
arg.channel.max_power = chandef->chan->max_power;
drivers/net/wireless/ath/ath11k/mac.c
7580
arg.channel.max_reg_power = chandef->chan->max_reg_power;
drivers/net/wireless/ath/ath11k/mac.c
7581
arg.channel.max_antenna_gain = chandef->chan->max_antenna_gain;
drivers/net/wireless/ath/ath11k/mac.c
7604
!!(chandef->chan->flags & IEEE80211_CHAN_RADAR);
drivers/net/wireless/ath/ath11k/mac.c
7615
arg.channel.passive |= !!(chandef->chan->flags & IEEE80211_CHAN_NO_IR);
drivers/net/wireless/ath/ath11k/mac.c
7899
ctx->def.chan->center_freq, ctx->def.width, ctx, changed);
drivers/net/wireless/ath/ath11k/mac.c
7932
arvif->chanctx.def.chan->center_freq, ret);
drivers/net/wireless/ath/ath11k/mac.c
7990
if (chan_def->chan->flags & IEEE80211_CHAN_PSD) {
drivers/net/wireless/ath/ath11k/mac.c
8140
struct ieee80211_channel *chan, *temp_chan;
drivers/net/wireless/ath/ath11k/mac.c
8148
chan = ctx->def.chan;
drivers/net/wireless/ath/ath11k/mac.c
8164
if (chan->flags & IEEE80211_CHAN_PSD) {
drivers/net/wireless/ath/ath11k/mac.c
8233
if (chan->flags & IEEE80211_CHAN_PSD) {
drivers/net/wireless/ath/ath11k/mac.c
8404
ctx->def.chan->band == NL80211_BAND_6GHZ &&
drivers/net/wireless/ath/ath11k/mac.c
8442
ctx->def.chan->center_freq, ret);
drivers/net/wireless/ath/ath11k/mac.c
9115
band = def.chan->band;
drivers/net/wireless/ath/ath11k/mac.c
931
channel = chandef->chan;
drivers/net/wireless/ath/ath11k/mac.c
938
arg.channel.mode = ath11k_phymodes[chandef->chan->band][chandef->width];
drivers/net/wireless/ath/ath11k/mac.c
949
arg.channel.passive = !!(chandef->chan->flags & IEEE80211_CHAN_NO_IR);
drivers/net/wireless/ath/ath11k/mac.c
9689
struct ieee80211_channel *chan,
drivers/net/wireless/ath/ath11k/mac.c
9710
ar->scan.roc_freq = chan->center_freq;
drivers/net/wireless/ath/ath11k/mac.c
9738
arg->chan_list[0] = chan->center_freq;
drivers/net/wireless/ath/ath11k/wmi.c
880
static void ath11k_wmi_put_wmi_channel(struct wmi_channel *chan,
drivers/net/wireless/ath/ath11k/wmi.c
885
memset(chan, 0, sizeof(*chan));
drivers/net/wireless/ath/ath11k/wmi.c
887
chan->mhz = arg->channel.freq;
drivers/net/wireless/ath/ath11k/wmi.c
888
chan->band_center_freq1 = arg->channel.band_center_freq1;
drivers/net/wireless/ath/ath11k/wmi.c
892
chan->band_center_freq1 = center_freq1 + 40;
drivers/net/wireless/ath/ath11k/wmi.c
894
chan->band_center_freq1 = center_freq1 - 40;
drivers/net/wireless/ath/ath11k/wmi.c
896
chan->band_center_freq2 = arg->channel.band_center_freq1;
drivers/net/wireless/ath/ath11k/wmi.c
900
chan->band_center_freq2 = arg->channel.band_center_freq2;
drivers/net/wireless/ath/ath11k/wmi.c
902
chan->band_center_freq2 = 0;
drivers/net/wireless/ath/ath11k/wmi.c
905
chan->info |= FIELD_PREP(WMI_CHAN_INFO_MODE, arg->channel.mode);
drivers/net/wireless/ath/ath11k/wmi.c
907
chan->info |= WMI_CHAN_INFO_PASSIVE;
drivers/net/wireless/ath/ath11k/wmi.c
909
chan->info |= WMI_CHAN_INFO_ADHOC_ALLOWED;
drivers/net/wireless/ath/ath11k/wmi.c
911
chan->info |= WMI_CHAN_INFO_ALLOW_HT;
drivers/net/wireless/ath/ath11k/wmi.c
913
chan->info |= WMI_CHAN_INFO_ALLOW_VHT;
drivers/net/wireless/ath/ath11k/wmi.c
915
chan->info |= WMI_CHAN_INFO_ALLOW_HE;
drivers/net/wireless/ath/ath11k/wmi.c
917
chan->info |= WMI_CHAN_INFO_HT40_PLUS;
drivers/net/wireless/ath/ath11k/wmi.c
919
chan->info |= WMI_CHAN_INFO_DFS;
drivers/net/wireless/ath/ath11k/wmi.c
921
chan->info |= WMI_CHAN_INFO_DFS_FREQ2;
drivers/net/wireless/ath/ath11k/wmi.c
923
chan->reg_info_1 = FIELD_PREP(WMI_CHAN_REG_INFO1_MAX_PWR,
drivers/net/wireless/ath/ath11k/wmi.c
928
chan->reg_info_2 = FIELD_PREP(WMI_CHAN_REG_INFO2_ANT_MAX,
drivers/net/wireless/ath/ath11k/wmi.c
940
struct wmi_channel *chan;
drivers/net/wireless/ath/ath11k/wmi.c
948
len = sizeof(*cmd) + sizeof(*chan) + TLV_HDR_SIZE;
drivers/net/wireless/ath/ath11k/wmi.c
987
chan = ptr;
drivers/net/wireless/ath/ath11k/wmi.c
989
ath11k_wmi_put_wmi_channel(chan, arg);
drivers/net/wireless/ath/ath11k/wmi.c
991
chan->tlv_header = FIELD_PREP(WMI_TLV_TAG, WMI_TAG_CHANNEL) |
drivers/net/wireless/ath/ath11k/wmi.c
993
sizeof(*chan) - TLV_HDR_SIZE);
drivers/net/wireless/ath/ath11k/wmi.c
994
ptr += sizeof(*chan);
drivers/net/wireless/ath/ath12k/mac.c
11174
ctx->def.chan->center_freq, ctx->def.width, ctx);
drivers/net/wireless/ath/ath12k/mac.c
11180
ar->rx_channel = ctx->def.chan;
drivers/net/wireless/ath/ath12k/mac.c
11204
ctx->def.chan->center_freq, ctx->def.width, ctx);
drivers/net/wireless/ath/ath12k/mac.c
11368
arg.freq = chandef->chan->center_freq;
drivers/net/wireless/ath/ath12k/mac.c
11371
arg.mode = ath12k_phymodes[chandef->chan->band][chandef->width];
drivers/net/wireless/ath/ath12k/mac.c
11374
chandef->chan->band,
drivers/net/wireless/ath/ath12k/mac.c
11377
arg.max_power = chandef->chan->max_power;
drivers/net/wireless/ath/ath12k/mac.c
11378
arg.max_reg_power = chandef->chan->max_reg_power;
drivers/net/wireless/ath/ath12k/mac.c
11379
arg.max_antenna_gain = chandef->chan->max_antenna_gain;
drivers/net/wireless/ath/ath12k/mac.c
11401
arg.chan_radar = !!(chandef->chan->flags & IEEE80211_CHAN_RADAR);
drivers/net/wireless/ath/ath12k/mac.c
11414
arg.passive |= !!(chandef->chan->flags & IEEE80211_CHAN_NO_IR);
drivers/net/wireless/ath/ath12k/mac.c
11662
vifs[i].old_ctx->def.chan->center_freq,
drivers/net/wireless/ath/ath12k/mac.c
11663
vifs[i].new_ctx->def.chan->center_freq,
drivers/net/wireless/ath/ath12k/mac.c
11754
chandef->chan->center_freq) {
drivers/net/wireless/ath/ath12k/mac.c
11766
chandef->chan->center_freq ||
drivers/net/wireless/ath/ath12k/mac.c
11775
chandef->chan->center_freq,
drivers/net/wireless/ath/ath12k/mac.c
11831
ctx->def.chan->center_freq, ctx->def.width, ctx, changed);
drivers/net/wireless/ath/ath12k/mac.c
11873
chanctx->def.chan->center_freq, ret);
drivers/net/wireless/ath/ath12k/mac.c
11893
if (chan_def->chan->flags & IEEE80211_CHAN_PSD) {
drivers/net/wireless/ath/ath12k/mac.c
12045
struct ieee80211_channel *chan, *temp_chan;
drivers/net/wireless/ath/ath12k/mac.c
12054
chan = ctx->def.chan;
drivers/net/wireless/ath/ath12k/mac.c
12069
if (chan->flags & IEEE80211_CHAN_PSD) {
drivers/net/wireless/ath/ath12k/mac.c
12138
if (chan->flags & IEEE80211_CHAN_PSD) {
drivers/net/wireless/ath/ath12k/mac.c
12327
ctx->def.chan->band == NL80211_BAND_6GHZ &&
drivers/net/wireless/ath/ath12k/mac.c
12362
ctx->def.chan->center_freq, ret);
drivers/net/wireless/ath/ath12k/mac.c
12467
if (v->old_ctx->def.chan->band != v->new_ctx->def.chan->band) {
drivers/net/wireless/ath/ath12k/mac.c
12481
v->old_ctx->def.chan->center_freq,
drivers/net/wireless/ath/ath12k/mac.c
12483
v->new_ctx->def.chan->center_freq,
drivers/net/wireless/ath/ath12k/mac.c
13374
band = def.chan->band;
drivers/net/wireless/ath/ath12k/mac.c
1357
channel = chandef->chan;
drivers/net/wireless/ath/ath12k/mac.c
1362
arg.mode = ath12k_phymodes[chandef->chan->band][chandef->width];
drivers/net/wireless/ath/ath12k/mac.c
1374
arg.passive |= !!(chandef->chan->flags & IEEE80211_CHAN_NO_IR);
drivers/net/wireless/ath/ath12k/mac.c
13936
struct ieee80211_channel *chan,
drivers/net/wireless/ath/ath12k/mac.c
13951
ar = ath12k_mac_select_scan_device(hw, vif, chan->center_freq);
drivers/net/wireless/ath/ath12k/mac.c
14008
ar->scan.roc_freq = chan->center_freq;
drivers/net/wireless/ath/ath12k/mac.c
14036
arg->chan_list[0] = chan->center_freq;
drivers/net/wireless/ath/ath12k/mac.c
2063
bss = cfg80211_get_bss(hw->wiphy, def.chan, info->bssid, NULL, 0,
drivers/net/wireless/ath/ath12k/mac.c
2137
band = def.chan->band;
drivers/net/wireless/ath/ath12k/mac.c
2211
band = def.chan->band;
drivers/net/wireless/ath/ath12k/mac.c
2418
band = def.chan->band;
drivers/net/wireless/ath/ath12k/mac.c
2429
if (def.chan->band == NL80211_BAND_2GHZ)
drivers/net/wireless/ath/ath12k/mac.c
2638
band = def.chan->band;
drivers/net/wireless/ath/ath12k/mac.c
2853
band = def.chan->band;
drivers/net/wireless/ath/ath12k/mac.c
3185
band = def.chan->band;
drivers/net/wireless/ath/ath12k/mac.c
3386
band = def.chan->band;
drivers/net/wireless/ath/ath12k/mac.c
3742
if (def.chan->band == NL80211_BAND_2GHZ)
drivers/net/wireless/ath/ath12k/mac.c
4126
sband = hw->wiphy->bands[def->chan->band];
drivers/net/wireless/ath/ath12k/mac.c
4561
chandef->chan &&
drivers/net/wireless/ath/ath12k/mac.c
4562
chandef->chan->band == NL80211_BAND_6GHZ;
drivers/net/wireless/ath/ath12k/mac.c
4983
band = def.chan->band;
drivers/net/wireless/ath/ath12k/mac.c
5756
struct ieee80211_channel **chan_list, *chan;
drivers/net/wireless/ath/ath12k/mac.c
5778
chan = hw_req->req.channels[j];
drivers/net/wireless/ath/ath12k/mac.c
5780
chan->center_freq);
drivers/net/wireless/ath/ath12k/mac.c
5783
chan->center_freq);
drivers/net/wireless/ath/ath12k/mac.c
5790
chan_list[n_chans++] = chan;
drivers/net/wireless/ath/ath12k/mac.c
6525
band = def.chan->band;
drivers/net/wireless/ath/ath12k/mac.c
6731
band = def.chan->band;
drivers/net/wireless/ath/ath12k/mac.c
7590
mlo_freq_list[num_mlo_vdev] = conf->def.chan->center_freq;
drivers/net/wireless/ath/ath12k/mac.c
7654
struct ieee80211_channel *chan;
drivers/net/wireless/ath/ath12k/mac.c
7680
assoc_link_freq = chanctx->def.chan->center_freq;
drivers/net/wireless/ath/ath12k/mac.c
7697
chan = info->chanreq.oper.chan;
drivers/net/wireless/ath/ath12k/mac.c
7698
if (!chan) {
drivers/net/wireless/ath/ath12k/mac.c
7703
partner_freq = chan->center_freq;
drivers/net/wireless/ath/ath12k/mac.c
912
return ath12k_mac_get_ar_by_chan(hw, ctx->def.chan);
drivers/net/wireless/ath/ath12k/mac.c
9368
max_tx_power = min(conf->def.chan->max_reg_power,
drivers/net/wireless/ath/ath12k/mac.c
998
band = def.chan->band;
drivers/net/wireless/ath/ath12k/mac.h
320
struct ieee80211_channel *chan,
drivers/net/wireless/ath/ath12k/wmi.c
1079
static void ath12k_wmi_put_wmi_channel(struct ath12k_wmi_channel_params *chan,
drivers/net/wireless/ath/ath12k/wmi.c
1084
memset(chan, 0, sizeof(*chan));
drivers/net/wireless/ath/ath12k/wmi.c
1086
chan->mhz = cpu_to_le32(arg->freq);
drivers/net/wireless/ath/ath12k/wmi.c
1087
chan->band_center_freq1 = cpu_to_le32(center_freq1);
drivers/net/wireless/ath/ath12k/wmi.c
1090
chan->band_center_freq1 = cpu_to_le32(center_freq1 + 80);
drivers/net/wireless/ath/ath12k/wmi.c
1092
chan->band_center_freq1 = cpu_to_le32(center_freq1 - 80);
drivers/net/wireless/ath/ath12k/wmi.c
1094
chan->band_center_freq2 = cpu_to_le32(center_freq1);
drivers/net/wireless/ath/ath12k/wmi.c
1099
chan->band_center_freq1 = cpu_to_le32(center_freq1 + 40);
drivers/net/wireless/ath/ath12k/wmi.c
1101
chan->band_center_freq1 = cpu_to_le32(center_freq1 - 40);
drivers/net/wireless/ath/ath12k/wmi.c
1103
chan->band_center_freq2 = cpu_to_le32(center_freq1);
drivers/net/wireless/ath/ath12k/wmi.c
1105
chan->band_center_freq2 = 0;
drivers/net/wireless/ath/ath12k/wmi.c
1108
chan->info |= le32_encode_bits(arg->mode, WMI_CHAN_INFO_MODE);
drivers/net/wireless/ath/ath12k/wmi.c
1110
chan->info |= cpu_to_le32(WMI_CHAN_INFO_PASSIVE);
drivers/net/wireless/ath/ath12k/wmi.c
1112
chan->info |= cpu_to_le32(WMI_CHAN_INFO_ADHOC_ALLOWED);
drivers/net/wireless/ath/ath12k/wmi.c
1114
chan->info |= cpu_to_le32(WMI_CHAN_INFO_ALLOW_HT);
drivers/net/wireless/ath/ath12k/wmi.c
1116
chan->info |= cpu_to_le32(WMI_CHAN_INFO_ALLOW_VHT);
drivers/net/wireless/ath/ath12k/wmi.c
1118
chan->info |= cpu_to_le32(WMI_CHAN_INFO_ALLOW_HE);
drivers/net/wireless/ath/ath12k/wmi.c
1120
chan->info |= cpu_to_le32(WMI_CHAN_INFO_HT40_PLUS);
drivers/net/wireless/ath/ath12k/wmi.c
1122
chan->info |= cpu_to_le32(WMI_CHAN_INFO_DFS);
drivers/net/wireless/ath/ath12k/wmi.c
1124
chan->info |= cpu_to_le32(WMI_CHAN_INFO_DFS_FREQ2);
drivers/net/wireless/ath/ath12k/wmi.c
1126
chan->reg_info_1 = le32_encode_bits(arg->max_power,
drivers/net/wireless/ath/ath12k/wmi.c
1131
chan->reg_info_2 = le32_encode_bits(arg->max_antenna_gain,
drivers/net/wireless/ath/ath12k/wmi.c
1144
struct ath12k_wmi_channel_params *chan;
drivers/net/wireless/ath/ath12k/wmi.c
1152
len = sizeof(*cmd) + sizeof(*chan) + TLV_HDR_SIZE;
drivers/net/wireless/ath/ath12k/wmi.c
1195
chan = ptr;
drivers/net/wireless/ath/ath12k/wmi.c
1197
ath12k_wmi_put_wmi_channel(chan, arg);
drivers/net/wireless/ath/ath12k/wmi.c
1199
chan->tlv_header = ath12k_wmi_tlv_cmd_hdr(WMI_TAG_CHANNEL,
drivers/net/wireless/ath/ath12k/wmi.c
1200
sizeof(*chan));
drivers/net/wireless/ath/ath12k/wmi.c
1201
ptr += sizeof(*chan);
drivers/net/wireless/ath/ath12k/wmi.c
8864
if (segment_freq == chandef->chan->center_freq) {
drivers/net/wireless/ath/ath12k/wmi.c
8964
if (info.chan_freq != arg.chanctx_conf->def.chan->center_freq) {
drivers/net/wireless/ath/ath12k/wmi.c
8967
info.chan_freq, arg.chanctx_conf->def.chan->center_freq);
drivers/net/wireless/ath/ath12k/wmi.c
8972
incumbent->center_freq = arg.chanctx_conf->def.chan->center_freq;
drivers/net/wireless/ath/ath5k/base.c
270
static bool ath5k_is_standard_channel(short chan, enum nl80211_band band)
drivers/net/wireless/ath/ath5k/base.c
276
static bool ath5k_is_standard_channel(short chan, enum nl80211_band band)
drivers/net/wireless/ath/ath5k/base.c
278
if (band == NL80211_BAND_2GHZ && chan <= 14)
drivers/net/wireless/ath/ath5k/base.c
2790
ah->curchan = ah->hw->conf.chandef.chan;
drivers/net/wireless/ath/ath5k/base.c
282
(((chan & 3) == 0 && chan >= 36 && chan <= 64) ||
drivers/net/wireless/ath/ath5k/base.c
284
((chan & 3) == 0 && chan >= 100 && chan <= 140) ||
drivers/net/wireless/ath/ath5k/base.c
286
((chan & 3) == 1 && chan >= 149 && chan <= 165) ||
drivers/net/wireless/ath/ath5k/base.c
288
(chan == 8 || chan == 12 || chan == 16) ||
drivers/net/wireless/ath/ath5k/base.c
290
(chan == 184 || chan == 188 || chan == 192 || chan == 196));
drivers/net/wireless/ath/ath5k/base.c
2901
ath5k_reset(struct ath5k_hw *ah, struct ieee80211_channel *chan,
drivers/net/wireless/ath/ath5k/base.c
2906
bool fast = chan && modparam_fastchanswitch ? 1 : 0;
drivers/net/wireless/ath/ath5k/base.c
2946
if (chan)
drivers/net/wireless/ath/ath5k/base.c
2947
ah->curchan = chan;
drivers/net/wireless/ath/ath5k/base.c
450
ah->curchan->center_freq, chandef->chan->center_freq);
drivers/net/wireless/ath/ath5k/base.c
474
return ath5k_reset(ah, chandef->chan, true);
drivers/net/wireless/ath/ath5k/base.c
96
static int ath5k_reset(struct ath5k_hw *ah, struct ieee80211_channel *chan,
drivers/net/wireless/ath/ath5k/mac80211-ops.c
672
survey->channel = conf->chandef.chan;
drivers/net/wireless/ath/ath6kl/cfg80211.c
1638
if (ibss_param->chandef.chan)
drivers/net/wireless/ath/ath6kl/cfg80211.c
1639
vif->ch_hint = ibss_param->chandef.chan->center_freq;
drivers/net/wireless/ath/ath6kl/cfg80211.c
2900
p.ch = cpu_to_le16(info->chandef.chan->center_freq);
drivers/net/wireless/ath/ath6kl/cfg80211.c
2931
if (ath6kl_set_htcap(vif, info->chandef.chan->band,
drivers/net/wireless/ath/ath6kl/cfg80211.c
3035
struct ieee80211_channel *chan,
drivers/net/wireless/ath/ath6kl/cfg80211.c
3053
chan->center_freq, duration);
drivers/net/wireless/ath/ath6kl/cfg80211.c
3197
struct ieee80211_channel *chan = params->chan;
drivers/net/wireless/ath/ath6kl/cfg80211.c
3210
if (chan)
drivers/net/wireless/ath/ath6kl/cfg80211.c
3211
freq = chan->center_freq;
drivers/net/wireless/ath/ath6kl/cfg80211.c
683
struct ieee80211_channel *chan,
drivers/net/wireless/ath/ath6kl/cfg80211.c
701
bss = cfg80211_get_bss(ar->wiphy, chan, bssid,
drivers/net/wireless/ath/ath6kl/cfg80211.c
720
bss = cfg80211_inform_bss(ar->wiphy, chan,
drivers/net/wireless/ath/ath6kl/cfg80211.c
743
struct ieee80211_channel *chan;
drivers/net/wireless/ath/ath6kl/cfg80211.c
784
chan = ieee80211_get_channel(ar->wiphy, (int) channel);
drivers/net/wireless/ath/ath6kl/cfg80211.c
786
bss = ath6kl_add_bss_if_needed(vif, nw_type, bssid, chan,
drivers/net/wireless/ath/ath6kl/cfg80211.c
796
cfg80211_ibss_joined(vif->ndev, bssid, chan, GFP_KERNEL);
drivers/net/wireless/ath/ath6kl/wmi.c
521
struct ieee80211_channel *chan;
drivers/net/wireless/ath/ath6kl/wmi.c
533
chan = ieee80211_get_channel(ar->wiphy, freq);
drivers/net/wireless/ath/ath6kl/wmi.c
534
if (!chan) {
drivers/net/wireless/ath/ath6kl/wmi.c
541
cfg80211_ready_on_channel(&vif->wdev, id, chan,
drivers/net/wireless/ath/ath6kl/wmi.c
554
struct ieee80211_channel *chan;
drivers/net/wireless/ath/ath6kl/wmi.c
567
chan = ieee80211_get_channel(ar->wiphy, freq);
drivers/net/wireless/ath/ath6kl/wmi.c
568
if (!chan) {
drivers/net/wireless/ath/ath6kl/wmi.c
580
cfg80211_remain_on_channel_expired(&vif->wdev, id, chan, GFP_ATOMIC);
drivers/net/wireless/ath/ath9k/ani.c
312
struct ath9k_channel *chan = ah->curchan;
drivers/net/wireless/ath/ath9k/ani.c
316
if (!chan)
drivers/net/wireless/ath/ath9k/ani.c
343
chan->channel,
drivers/net/wireless/ath/ath9k/ani.c
358
chan->channel,
drivers/net/wireless/ath/ath9k/ani.c
401
void ath9k_hw_ani_monitor(struct ath_hw *ah, struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1032
chan->channel,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1056
chan->channel,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1064
chan->channel,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1091
chan->channel,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1099
chan->channel,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1172
struct ath9k_channel *chan = ah->curchan;
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1183
chan->channel);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1317
struct ath9k_channel *chan, int ht40_delta)
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1319
if (IS_CHAN_5GHZ(chan)) {
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1322
if (IS_CHAN_HT20(chan) || IS_CHAN_HT40(chan)) {
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1326
IS_CHAN_HT40(chan),
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1333
if (IS_CHAN_HT20(chan) || IS_CHAN_HT40(chan)) {
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1337
IS_CHAN_HT40(chan),
drivers/net/wireless/ath/ath9k/ar5008_phy.c
203
static int ar5008_hw_set_channel(struct ath_hw *ah, struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar5008_phy.c
213
ath9k_hw_get_channel_centers(ah, chan, &centers);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
270
ah->curchan = chan;
drivers/net/wireless/ath/ath9k/ar5008_phy.c
276
struct ath9k_channel *chan, int bin)
drivers/net/wireless/ath/ath9k/ar5008_phy.c
433
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar5008_phy.c
444
bool is2GHz = IS_CHAN_2GHZ(chan);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
450
cur_bb_spur = cur_bb_spur - (chan->channel * 10);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
480
denominator = IS_CHAN_2GHZ(chan) ? 440 : 400;
drivers/net/wireless/ath/ath9k/ar5008_phy.c
488
ar5008_hw_cmn_spur_mitigate(ah, chan, bin);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
525
struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
550
if (IS_CHAN_2GHZ(chan)) {
drivers/net/wireless/ath/ath9k/ar5008_phy.c
579
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar5008_phy.c
587
ath9k_hw_synth_delay(ah, chan, synthDelay);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
636
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar5008_phy.c
689
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar5008_phy.c
701
if (IS_CHAN_HT40(chan)) {
drivers/net/wireless/ath/ath9k/ar5008_phy.c
704
if (IS_CHAN_HT40PLUS(chan))
drivers/net/wireless/ath/ath9k/ar5008_phy.c
713
ath9k_hw_set11nmac2040(ah, chan);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
723
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar5008_phy.c
729
if (IS_CHAN_5GHZ(chan)) {
drivers/net/wireless/ath/ath9k/ar5008_phy.c
731
modesIndex = IS_CHAN_HT40(chan) ? 2 : 1;
drivers/net/wireless/ath/ath9k/ar5008_phy.c
734
modesIndex = IS_CHAN_HT40(chan) ? 3 : 4;
drivers/net/wireless/ath/ath9k/ar5008_phy.c
746
ah->eep_ops->set_addac(ah, chan);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
807
if (IS_CHAN_A_FAST_CLOCK(ah, chan))
drivers/net/wireless/ath/ath9k/ar5008_phy.c
811
ar5008_hw_override_ini(ah, chan);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
812
ar5008_hw_set_channel_regs(ah, chan);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
815
ath9k_hw_apply_txpower(ah, chan, false);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
818
if (!ath9k_hw_set_rf_regs(ah, chan, freqIndex)) {
drivers/net/wireless/ath/ath9k/ar5008_phy.c
826
static void ar5008_hw_set_rfmode(struct ath_hw *ah, struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar5008_phy.c
830
if (chan == NULL)
drivers/net/wireless/ath/ath9k/ar5008_phy.c
833
if (IS_CHAN_2GHZ(chan))
drivers/net/wireless/ath/ath9k/ar5008_phy.c
839
rfMode |= (IS_CHAN_5GHZ(chan)) ?
drivers/net/wireless/ath/ath9k/ar5008_phy.c
842
if (IS_CHAN_A_FAST_CLOCK(ah, chan))
drivers/net/wireless/ath/ath9k/ar5008_phy.c
854
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar5008_phy.c
860
if (IS_CHAN_HALF_RATE(chan))
drivers/net/wireless/ath/ath9k/ar5008_phy.c
862
else if (IS_CHAN_QUARTER_RATE(chan))
drivers/net/wireless/ath/ath9k/ar5008_phy.c
865
ath9k_hw_get_channel_centers(ah, chan, &centers);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
914
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar5008_phy.c
920
if (chan && IS_CHAN_HALF_RATE(chan))
drivers/net/wireless/ath/ath9k/ar5008_phy.c
922
else if (chan && IS_CHAN_QUARTER_RATE(chan))
drivers/net/wireless/ath/ath9k/ar5008_phy.c
925
if (chan && IS_CHAN_5GHZ(chan))
drivers/net/wireless/ath/ath9k/ar5008_phy.c
934
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar5008_phy.c
940
if (chan && IS_CHAN_HALF_RATE(chan))
drivers/net/wireless/ath/ath9k/ar5008_phy.c
942
else if (chan && IS_CHAN_QUARTER_RATE(chan))
drivers/net/wireless/ath/ath9k/ar5008_phy.c
945
if (chan && IS_CHAN_5GHZ(chan))
drivers/net/wireless/ath/ath9k/ar5008_phy.c
958
struct ath9k_channel *chan = ah->curchan;
drivers/net/wireless/ath/ath9k/ar9002_calib.c
32
struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/ar9002_calib.c
43
if (IS_CHAN_HT40(chan))
drivers/net/wireless/ath/ath9k/ar9002_calib.c
668
static int ar9002_hw_calibrate(struct ath_hw *ah, struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/ar9002_calib.c
689
if (!ar9002_hw_per_calibration(ah, chan, rxchainmask, currCal))
drivers/net/wireless/ath/ath9k/ar9002_calib.c
720
if (ath9k_hw_getnf(ah, chan)) {
drivers/net/wireless/ath/ath9k/ar9002_calib.c
747
static bool ar9285_hw_cl_cal(struct ath_hw *ah, struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar9002_calib.c
752
if (IS_CHAN_HT20(chan)) {
drivers/net/wireless/ath/ath9k/ar9002_calib.c
789
static bool ar9285_hw_clc(struct ath_hw *ah, struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar9002_calib.c
801
if (!(ar9285_hw_cl_cal(ah, chan)))
drivers/net/wireless/ath/ath9k/ar9002_calib.c
839
retv = ar9285_hw_cl_cal(ah, chan);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
845
static bool ar9002_hw_init_cal(struct ath_hw *ah, struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar9002_calib.c
850
if (!ar9285_hw_cl_cal(ah, chan))
drivers/net/wireless/ath/ath9k/ar9002_calib.c
853
if (!ar9285_hw_clc(ah, chan))
drivers/net/wireless/ath/ath9k/ar9002_calib.c
890
ath9k_hw_loadnf(ah, chan);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
905
if (ar9002_hw_is_cal_supported(ah, chan, ADC_GAIN_CAL)) {
drivers/net/wireless/ath/ath9k/ar9002_calib.c
912
if (ar9002_hw_is_cal_supported(ah, chan, ADC_DC_CAL)) {
drivers/net/wireless/ath/ath9k/ar9002_calib.c
919
if (ar9002_hw_is_cal_supported(ah, chan, IQ_MISMATCH_CAL)) {
drivers/net/wireless/ath/ath9k/ar9002_hw.c
426
void ar9002_hw_load_ani_reg(struct ath_hw *ah, struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar9002_hw.c
431
if (IS_CHAN_5GHZ(chan))
drivers/net/wireless/ath/ath9k/ar9002_hw.c
432
modesIndex = IS_CHAN_HT40(chan) ? 2 : 1;
drivers/net/wireless/ath/ath9k/ar9002_hw.c
434
modesIndex = IS_CHAN_HT40(chan) ? 3 : 4;
drivers/net/wireless/ath/ath9k/ar9002_phy.c
114
if (IS_CHAN_HALF_RATE(chan) || IS_CHAN_QUARTER_RATE(chan))
drivers/net/wireless/ath/ath9k/ar9002_phy.c
155
ah->curchan = chan;
drivers/net/wireless/ath/ath9k/ar9002_phy.c
169
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar9002_phy.c
183
bool is2GHz = IS_CHAN_2GHZ(chan);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
185
ath9k_hw_get_channel_centers(ah, chan, &centers);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
201
if (IS_CHAN_HT40(chan)) {
drivers/net/wireless/ath/ath9k/ar9002_phy.c
242
if (IS_CHAN_HT40(chan)) {
drivers/net/wireless/ath/ath9k/ar9002_phy.c
255
if (IS_CHAN_HT40(chan))
drivers/net/wireless/ath/ath9k/ar9002_phy.c
264
denominator = IS_CHAN_2GHZ(chan) ? 44 : 40;
drivers/net/wireless/ath/ath9k/ar9002_phy.c
275
ar5008_hw_cmn_spur_mitigate(ah, chan, bin);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
305
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar9002_phy.c
311
if (chan && IS_CHAN_5GHZ(chan) && !IS_CHAN_A_FAST_CLOCK(ah, chan)) {
drivers/net/wireless/ath/ath9k/ar9002_phy.c
323
if (chan && IS_CHAN_HALF_RATE(chan))
drivers/net/wireless/ath/ath9k/ar9002_phy.c
325
else if (chan && IS_CHAN_QUARTER_RATE(chan))
drivers/net/wireless/ath/ath9k/ar9002_phy.c
66
static int ar9002_hw_set_channel(struct ath_hw *ah, struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar9002_phy.c
73
ath9k_hw_get_channel_centers(ah, chan, &centers);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
123
static int ar9003_hw_calibrate(struct ath_hw *ah, struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1300
struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1312
ar9003_hw_manual_peak_cal(ah, i, IS_CHAN_2GHZ(chan));
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1319
if (IS_CHAN_2GHZ(chan)){
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1393
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1410
if (!ar9003_hw_rtt_restore(ah, chan))
drivers/net/wireless/ath/ath9k/ar9003_calib.c
142
iscaldone = ar9003_hw_per_calibration(ah, chan,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1450
if ((IS_CHAN_HALF_RATE(chan) || IS_CHAN_QUARTER_RATE(chan)) ||
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1474
if (ath9k_hw_mci_is_enabled(ah) && IS_CHAN_2GHZ(chan) && run_agc_cal)
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1497
ar9003_hw_do_pcoem_manual_peak_cal(ah, chan, run_rtt_cal);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1505
if (ath9k_hw_mci_is_enabled(ah) && IS_CHAN_2GHZ(chan) && run_agc_cal)
drivers/net/wireless/ath/ath9k/ar9003_calib.c
158
if (longcal && ath9k_hw_getnf(ah, chan)) {
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1580
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1595
if (IS_CHAN_HALF_RATE(chan) || IS_CHAN_QUARTER_RATE(chan))
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1630
if (AR_SREV_9550(ah) && IS_CHAN_2GHZ(chan)) {
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1642
IS_CHAN_2GHZ(chan));
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3839
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3846
if (IS_CHAN_2GHZ(chan))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3855
value = ar9003_hw_power_interpolate((s32) chan->channel,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3867
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3874
if (IS_CHAN_2GHZ(chan))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3883
value = ar9003_hw_power_interpolate((s32) chan->channel,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3893
static void ar9003_hw_atten_apply(struct ath_hw *ah, struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3903
value = ar9003_hw_atten_chain_get(ah, 1, chan);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3907
value = ar9003_hw_atten_chain_get_margin(ah, 1, chan);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3916
value = ar9003_hw_atten_chain_get(ah, i, chan);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3925
value = ar9003_hw_atten_chain_get_margin(ah, i, chan);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4236
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4238
bool is2ghz = IS_CHAN_2GHZ(chan);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4244
ar9003_hw_atten_apply(ah, chan);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4245
ar9003_hw_quick_drop_apply(ah, chan->channel);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4256
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4456
struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4462
if (IS_CHAN_2GHZ(chan)) {
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4725
struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4728
bool is2GHz = IS_CHAN_2GHZ(chan);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4731
u16 freq = chan->channel;
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4739
if (IS_CHAN_HT40(chan))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5226
struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5250
bool is2ghz = IS_CHAN_2GHZ(chan);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5252
ath9k_hw_get_channel_centers(ah, chan, &centers);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5263
if (IS_CHAN_HT40(chan))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5272
if (IS_CHAN_HT40(chan))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5314
chan->channel);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5415
struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5423
if (IS_CHAN_HT40(chan))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5428
if (IS_CHAN_2GHZ(chan)) {
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5431
if (IS_CHAN_HT40(chan))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5442
struct ath9k_channel *chan, u16 cfgCtl,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5459
ar9003_hw_get_target_power_eeprom(ah, chan, targetPowerValT2);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5463
ar9003_get_paprd_rate_mask_ht20(ah, IS_CHAN_2GHZ(chan)) &
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5467
ar9003_get_paprd_rate_mask_ht40(ah, IS_CHAN_2GHZ(chan)) &
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5470
paprd_scale_factor = ar9003_get_paprd_scale_factor(ah, chan);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5471
min_pwridx = IS_CHAN_HT40(chan) ? ALL_TARGET_HT40_0_8_16 :
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5492
ar9003_hw_set_power_per_rate_table(ah, chan,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5531
ar9003_hw_calibration_apply(ah, chan->channel);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5532
ar9003_paprd_set_txpower(ah, chan, targetPowerValT2);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5534
ar9003_hw_selfgen_tpc_txpower(ah, chan, targetPowerValT2);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5540
ar9003_hw_init_rate_txpower(ah, targetPowerValT2_tpc, chan);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5595
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5597
bool is2ghz = IS_CHAN_2GHZ(chan);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5603
if (chan->channel >= 5700)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5606
else if (chan->channel >= 5400)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.h
369
struct ath9k_channel *chan);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
691
bool ar9003_mci_start_reset(struct ath_hw *ah, struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
697
ar9003_mci_2g5g_changed(ah, IS_CHAN_2GHZ(chan));
drivers/net/wireless/ath/ath9k/ar9003_mci.c
731
int ar9003_mci_end_reset(struct ath_hw *ah, struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
739
if (!IS_CHAN_2GHZ(chan) || (mci_hw->bt_state != MCI_BT_SLEEP))
drivers/net/wireless/ath/ath9k/ar9003_mci.c
760
if (IS_CHAN_2GHZ(chan))
drivers/net/wireless/ath/ath9k/ar9003_mci.c
774
if (!ath9k_hw_init_cal(ah, chan))
drivers/net/wireless/ath/ath9k/ar9003_mci.h
330
bool ar9003_mci_start_reset(struct ath_hw *ah, struct ath9k_channel *chan);
drivers/net/wireless/ath/ath9k/ar9003_mci.h
331
int ar9003_mci_end_reset(struct ath_hw *ah, struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/ar9003_mci.h
361
static inline bool ar9003_mci_start_reset(struct ath_hw *ah, struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar9003_mci.h
365
static inline int ar9003_mci_end_reset(struct ath_hw *ah, struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
101
struct ath9k_channel *chan = ah->curchan;
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
104
scale = ar9003_get_paprd_scale_factor(ah, chan);
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
106
if (IS_CHAN_HT40(chan))
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
23
struct ath9k_channel *chan = ah->curchan;
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
24
bool is2ghz = IS_CHAN_2GHZ(chan);
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
40
if (chan->channel >= UPPER_5G_SUB_BAND_START) {
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
44
} else if (chan->channel >= MID_5G_SUB_BAND_START) {
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
57
ath9k_hw_apply_txpower(ah, chan, false);
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
73
struct ath9k_channel *chan = ah->curchan;
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
76
scale = ar9003_get_paprd_scale_factor(ah, chan);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1006
if (IS_CHAN_HALF_RATE(chan))
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1008
else if (IS_CHAN_QUARTER_RATE(chan))
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1015
ath9k_hw_get_channel_centers(ah, chan, &centers);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1066
struct ath9k_channel *chan = ah->curchan;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1151
chan->channel,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1206
chan->channel,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1214
chan->channel,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1270
chan->channel,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1278
chan->channel,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1308
chan->channel,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1393
struct ath9k_channel *chan = ah->curchan;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1404
chan->channel);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
149
static int ar9003_hw_set_channel(struct ath_hw *ah, struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
156
ath9k_hw_get_channel_centers(ah, chan, &centers);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1665
struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1671
if (IS_CHAN_5GHZ(chan))
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1672
modesIndex = IS_CHAN_HT40(chan) ? 2 : 1;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1674
modesIndex = IS_CHAN_HT40(chan) ? 3 : 4;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1710
if (IS_CHAN_A_FAST_CLOCK(ah, chan))
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1719
if (chan->channel == 2484)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1726
ar9003_hw_set_rfmode(ah, chan);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1884
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1886
if (IS_CHAN_5GHZ(chan)) {
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1889
if (IS_CHAN_HT20(chan) || IS_CHAN_HT40(chan)) {
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1894
IS_CHAN_HT40(chan));
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1904
if (IS_CHAN_HT20(chan) || IS_CHAN_HT40(chan)) {
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1909
IS_CHAN_HT40(chan));
drivers/net/wireless/ath/ath9k/ar9003_phy.c
223
ah->curchan = chan;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
239
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
245
u8 *spur_fbin_ptr = ar9003_get_spur_chan_ptr(ah, IS_CHAN_2GHZ(chan));
drivers/net/wireless/ath/ath9k/ar9003_phy.c
257
if (IS_CHAN_HT40(chan)) {
drivers/net/wireless/ath/ath9k/ar9003_phy.c
261
synth_freq = chan->channel + 10;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
263
synth_freq = chan->channel - 10;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
266
synth_freq = chan->channel;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
271
synth_freq = chan->channel;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
282
IS_CHAN_2GHZ(chan));
drivers/net/wireless/ath/ath9k/ar9003_phy.c
470
struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
479
if (IS_CHAN_HT40(chan)) {
drivers/net/wireless/ath/ath9k/ar9003_phy.c
521
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
526
u8 *spur_fbin_ptr = ar9003_get_spur_chan_ptr(ah, IS_CHAN_2GHZ(chan));
drivers/net/wireless/ath/ath9k/ar9003_phy.c
532
if (IS_CHAN_HT40(chan)) {
drivers/net/wireless/ath/ath9k/ar9003_phy.c
536
synth_freq = chan->channel - 10;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
538
synth_freq = chan->channel + 10;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
541
synth_freq = chan->channel;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
548
IS_CHAN_2GHZ(chan));
drivers/net/wireless/ath/ath9k/ar9003_phy.c
551
ar9003_hw_spur_ofdm_work(ah, chan, freq_offset,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
557
IS_CHAN_2GHZ(chan));
drivers/net/wireless/ath/ath9k/ar9003_phy.c
569
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
572
ar9003_hw_spur_mitigate_mrc_cck(ah, chan);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
573
ar9003_hw_spur_mitigate_ofdm(ah, chan);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
577
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
583
if (chan && IS_CHAN_HALF_RATE(chan))
drivers/net/wireless/ath/ath9k/ar9003_phy.c
585
else if (chan && IS_CHAN_QUARTER_RATE(chan))
drivers/net/wireless/ath/ath9k/ar9003_phy.c
594
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
600
if (chan && IS_CHAN_HALF_RATE(chan))
drivers/net/wireless/ath/ath9k/ar9003_phy.c
602
else if (chan && IS_CHAN_QUARTER_RATE(chan))
drivers/net/wireless/ath/ath9k/ar9003_phy.c
611
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
626
if (IS_CHAN_HT40(chan)) {
drivers/net/wireless/ath/ath9k/ar9003_phy.c
629
if (IS_CHAN_HT40PLUS(chan))
drivers/net/wireless/ath/ath9k/ar9003_phy.c
642
ath9k_hw_set11nmac2040(ah, chan);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
651
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
664
ath9k_hw_synth_delay(ah, chan, synthDelay);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
770
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
774
if (IS_CHAN_2GHZ(chan)) {
drivers/net/wireless/ath/ath9k/ar9003_phy.c
775
if (IS_CHAN_HT40(chan))
drivers/net/wireless/ath/ath9k/ar9003_phy.c
781
if (chan->channel <= 5350)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
783
else if ((chan->channel > 5350) && (chan->channel <= 5600))
drivers/net/wireless/ath/ath9k/ar9003_phy.c
788
if (IS_CHAN_HT40(chan))
drivers/net/wireless/ath/ath9k/ar9003_phy.c
795
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
797
if (IS_CHAN_2GHZ(chan)) {
drivers/net/wireless/ath/ath9k/ar9003_phy.c
798
if (IS_CHAN_HT40(chan))
drivers/net/wireless/ath/ath9k/ar9003_phy.c
856
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
861
if (IS_CHAN_5GHZ(chan))
drivers/net/wireless/ath/ath9k/ar9003_phy.c
862
modesIndex = IS_CHAN_HT40(chan) ? 2 : 1;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
864
modesIndex = IS_CHAN_HT40(chan) ? 3 : 4;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
922
modes_txgain_index = ar9550_hw_get_modes_txgain_index(ah, chan);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
926
ar9561_hw_get_modes_txgain_index(ah, chan);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
938
if (IS_CHAN_A_FAST_CLOCK(ah, chan))
drivers/net/wireless/ath/ath9k/ar9003_phy.c
950
if (chan->channel == 2484) {
drivers/net/wireless/ath/ath9k/ar9003_phy.c
960
ar9003_hw_set_channel_regs(ah, chan);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
962
ath9k_hw_apply_txpower(ah, chan, false);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
968
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
972
if (chan == NULL)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
975
if (IS_CHAN_2GHZ(chan))
drivers/net/wireless/ath/ath9k/ar9003_phy.c
980
if (IS_CHAN_A_FAST_CLOCK(ah, chan))
drivers/net/wireless/ath/ath9k/ar9003_phy.c
983
if (IS_CHAN_HALF_RATE(chan) || IS_CHAN_QUARTER_RATE(chan))
drivers/net/wireless/ath/ath9k/ar9003_phy.c
996
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
206
bool ar9003_hw_rtt_restore(struct ath_hw *ah, struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
214
if (IS_CHAN_2GHZ(chan)){
drivers/net/wireless/ath/ath9k/ar9003_rtt.h
28
bool ar9003_hw_rtt_restore(struct ath_hw *ah, struct ath9k_channel *chan);
drivers/net/wireless/ath/ath9k/ar9003_rtt.h
59
static inline bool ar9003_hw_rtt_restore(struct ath_hw *ah, struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ath9k.h
416
struct ath_chanctx chan;
drivers/net/wireless/ath/ath9k/beacon.c
83
sband = &common->sbands[sc->cur_chandef.chan->band];
drivers/net/wireless/ath/ath9k/calib.c
210
ah->curchan->chan->center_freq);
drivers/net/wireless/ath/ath9k/calib.c
240
int ath9k_hw_loadnf(struct ath_hw *ah, struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/calib.c
246
s16 default_nf = ath9k_hw_get_nf_limits(ah, chan)->nominal;
drivers/net/wireless/ath/ath9k/calib.c
257
if ((i >= AR5416_MAX_CHAINS) && !IS_CHAN_HT40(chan))
drivers/net/wireless/ath/ath9k/calib.c
267
ath9k_hw_get_nf_limits(ah, chan)->cal[i];
drivers/net/wireless/ath/ath9k/calib.c
350
if ((i >= AR5416_MAX_CHAINS) && !IS_CHAN_HT40(chan))
drivers/net/wireless/ath/ath9k/calib.c
397
bool ath9k_hw_getnf(struct ath_hw *ah, struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/calib.c
403
struct ieee80211_channel *c = chan->chan;
drivers/net/wireless/ath/ath9k/calib.c
41
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/calib.c
423
chan->noisefloor = nf;
drivers/net/wireless/ath/ath9k/calib.c
430
chan->noisefloor = h[0].privNF;
drivers/net/wireless/ath/ath9k/calib.c
431
ah->noise = ath9k_hw_getchan_noise(ah, chan, chan->noisefloor);
drivers/net/wireless/ath/ath9k/calib.c
437
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/calib.c
442
ah->caldata->channel = chan->channel;
drivers/net/wireless/ath/ath9k/calib.c
443
ah->caldata->channelFlags = chan->channelFlags;
drivers/net/wireless/ath/ath9k/calib.c
447
h[i].privNF = ath9k_hw_get_default_nf(ah, chan, k);
drivers/net/wireless/ath/ath9k/calib.c
45
if (!chan || IS_CHAN_2GHZ(chan))
drivers/net/wireless/ath/ath9k/calib.c
54
struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/calib.c
57
s16 calib_nf = ath9k_hw_get_nf_limits(ah, chan)->cal[chain];
drivers/net/wireless/ath/ath9k/calib.c
62
return ath9k_hw_get_nf_limits(ah, chan)->nominal;
drivers/net/wireless/ath/ath9k/calib.c
65
s16 ath9k_hw_getchan_noise(struct ath_hw *ah, struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/calib.c
72
ath9k_hw_get_default_nf(ah, chan, 0);
drivers/net/wireless/ath/ath9k/calib.h
112
int ath9k_hw_loadnf(struct ath_hw *ah, struct ath9k_channel *chan);
drivers/net/wireless/ath/ath9k/calib.h
113
bool ath9k_hw_getnf(struct ath_hw *ah, struct ath9k_channel *chan);
drivers/net/wireless/ath/ath9k/calib.h
115
struct ath9k_channel *chan);
drivers/net/wireless/ath/ath9k/calib.h
119
s16 ath9k_hw_getchan_noise(struct ath_hw *ah, struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/channel.c
1027
if (!(sc->cur_chan->chandef.chan->flags & IEEE80211_CHAN_NO_IR) &&
drivers/net/wireless/ath/ath9k/channel.c
108
struct ieee80211_channel *chan;
drivers/net/wireless/ath/ath9k/channel.c
1104
int band = sc->cur_chan->chandef.chan->band;
drivers/net/wireless/ath/ath9k/channel.c
115
chan = &sband->channels[0];
drivers/net/wireless/ath/ath9k/channel.c
1160
if (sc->cur_chan == &sc->offchannel.chan)
drivers/net/wireless/ath/ath9k/channel.c
118
cfg80211_chandef_create(&ctx->chandef, chan, NL80211_CHAN_HT20);
drivers/net/wireless/ath/ath9k/channel.c
1194
if (sc->cur_chan->chandef.chan !=
drivers/net/wireless/ath/ath9k/channel.c
1195
sc->offchannel.chan.chandef.chan)
drivers/net/wireless/ath/ath9k/channel.c
1207
if (sc->cur_chan != &sc->offchannel.chan)
drivers/net/wireless/ath/ath9k/channel.c
1255
if (sc->next_chan == &sc->offchannel.chan) {
drivers/net/wireless/ath/ath9k/channel.c
1272
if (sc->cur_chan != &sc->offchannel.chan) {
drivers/net/wireless/ath/ath9k/channel.c
1331
struct ieee80211_channel *chan;
drivers/net/wireless/ath/ath9k/channel.c
1338
chan = &sband->channels[0];
drivers/net/wireless/ath/ath9k/channel.c
1340
ctx = &sc->offchannel.chan;
drivers/net/wireless/ath/ath9k/channel.c
1343
cfg80211_chandef_create(&ctx->chandef, chan, NL80211_CHAN_HT20);
drivers/net/wireless/ath/ath9k/channel.c
1351
sc->offchannel.chan.offchannel = true;
drivers/net/wireless/ath/ath9k/channel.c
1383
if (ctx == &sc->offchannel.chan) {
drivers/net/wireless/ath/ath9k/channel.c
1402
if (ctx == &sc->offchannel.chan) {
drivers/net/wireless/ath/ath9k/channel.c
253
if (ctx == &sc->offchannel.chan) {
drivers/net/wireless/ath/ath9k/channel.c
30
struct ieee80211_channel *chan = chandef->chan;
drivers/net/wireless/ath/ath9k/channel.c
31
int pos = chan->hw_value;
drivers/net/wireless/ath/ath9k/channel.c
43
chan->center_freq, chandef->width);
drivers/net/wireless/ath/ath9k/channel.c
532
sc->next_chan = &sc->offchannel.chan;
drivers/net/wireless/ath/ath9k/channel.c
592
if (sc->next_chan == &sc->offchannel.chan) {
drivers/net/wireless/ath/ath9k/channel.c
671
sc->cur_chan == &sc->offchannel.chan)
drivers/net/wireless/ath/ath9k/channel.c
709
sc->cur_chan == &sc->offchannel.chan)
drivers/net/wireless/ath/ath9k/channel.c
740
if (sc->cur_chan == &sc->offchannel.chan ||
drivers/net/wireless/ath/ath9k/channel.c
750
sc->next_chan != &sc->offchannel.chan)
drivers/net/wireless/ath/ath9k/channel.c
786
struct ieee80211_channel *chan)
drivers/net/wireless/ath/ath9k/channel.c
790
if (!req->n_ssids || (chan->flags & IEEE80211_CHAN_NO_IR))
drivers/net/wireless/ath/ath9k/channel.c
804
(sc->cur_chan != ctx) && (ctx == &sc->offchannel.chan)) {
drivers/net/wireless/ath/ath9k/channel.c
827
if (sc->next_chan == &sc->offchannel.chan) {
drivers/net/wireless/ath/ath9k/channel.c
844
struct ieee80211_channel *chan)
drivers/net/wireless/ath/ath9k/channel.c
849
cfg80211_chandef_create(&chandef, chan, NL80211_CHAN_NO_HT);
drivers/net/wireless/ath/ath9k/channel.c
853
ath_chanctx_switch(sc, &sc->offchannel.chan, &chandef);
drivers/net/wireless/ath/ath9k/channel.c
879
struct ieee80211_channel *chan;
drivers/net/wireless/ath/ath9k/channel.c
898
chan = req->channels[sc->offchannel.scan_idx++];
drivers/net/wireless/ath/ath9k/channel.c
899
sc->offchannel.duration = ath_scan_channel_duration(sc, chan);
drivers/net/wireless/ath/ath9k/channel.c
902
ath_chanctx_offchan_switch(sc, chan);
drivers/net/wireless/ath/ath9k/channel.c
911
sc->offchannel.chan.txpower = vif->bss_conf.txpower;
drivers/net/wireless/ath/ath9k/channel.c
915
sc->offchannel.chan.txpower = vif->bss_conf.txpower;
drivers/net/wireless/ath/ath9k/channel.c
92
chan->center_freq);
drivers/net/wireless/ath/ath9k/channel.c
992
int band = sc->offchannel.chan.chandef.chan->band;
drivers/net/wireless/ath/ath9k/common-spectral.c
484
u16 fft_len, sample_len, freq = ah->curchan->chan->center_freq;
drivers/net/wireless/ath/ath9k/common.c
181
band = ah->curchan->chan->band;
drivers/net/wireless/ath/ath9k/common.c
304
struct ieee80211_channel *chan = chandef->chan;
drivers/net/wireless/ath/ath9k/common.c
307
ichan->channel = chan->center_freq;
drivers/net/wireless/ath/ath9k/common.c
308
ichan->chan = chan;
drivers/net/wireless/ath/ath9k/common.c
310
if (chan->band == NL80211_BAND_5GHZ)
drivers/net/wireless/ath/ath9k/common.c
326
if (chandef->center_freq1 > chandef->chan->center_freq)
drivers/net/wireless/ath/ath9k/common.c
345
struct ieee80211_channel *curchan = chandef->chan;
drivers/net/wireless/ath/ath9k/debug_sta.c
142
if (ah->curchan->chan->band == NL80211_BAND_2GHZ)
drivers/net/wireless/ath/ath9k/debug_sta.c
186
band = ah->curchan->chan->band;
drivers/net/wireless/ath/ath9k/dynack.c
34
const struct ath9k_channel *chan = ah->curchan;
drivers/net/wireless/ath/ath9k/dynack.c
36
if (!chan)
drivers/net/wireless/ath/ath9k/dynack.c
39
if (IS_CHAN_HT40(chan))
drivers/net/wireless/ath/ath9k/dynack.c
41
if (IS_CHAN_HALF_RATE(chan))
drivers/net/wireless/ath/ath9k/dynack.c
43
if (IS_CHAN_QUARTER_RATE(chan))
drivers/net/wireless/ath/ath9k/eeprom.c
268
struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/eeprom.c
280
ath9k_hw_get_channel_centers(ah, chan, &centers);
drivers/net/wireless/ath/ath9k/eeprom.c
284
IS_CHAN_2GHZ(chan))) {
drivers/net/wireless/ath/ath9k/eeprom.c
290
IS_CHAN_2GHZ(chan))) {
drivers/net/wireless/ath/ath9k/eeprom.c
294
IS_CHAN_2GHZ(chan)) && i > 0 &&
drivers/net/wireless/ath/ath9k/eeprom.c
296
IS_CHAN_2GHZ(chan))) {
drivers/net/wireless/ath/ath9k/eeprom.c
309
IS_CHAN_2GHZ(chan));
drivers/net/wireless/ath/ath9k/eeprom.c
311
IS_CHAN_2GHZ(chan));
drivers/net/wireless/ath/ath9k/eeprom.c
323
struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/eeprom.c
335
ath9k_hw_get_channel_centers(ah, chan, &centers);
drivers/net/wireless/ath/ath9k/eeprom.c
338
if (freq <= ath9k_hw_fbin2freq(powInfo[0].bChannel, IS_CHAN_2GHZ(chan))) {
drivers/net/wireless/ath/ath9k/eeprom.c
344
IS_CHAN_2GHZ(chan))) {
drivers/net/wireless/ath/ath9k/eeprom.c
349
IS_CHAN_2GHZ(chan)) && i > 0 &&
drivers/net/wireless/ath/ath9k/eeprom.c
351
IS_CHAN_2GHZ(chan))) {
drivers/net/wireless/ath/ath9k/eeprom.c
364
IS_CHAN_2GHZ(chan));
drivers/net/wireless/ath/ath9k/eeprom.c
366
IS_CHAN_2GHZ(chan));
drivers/net/wireless/ath/ath9k/eeprom.c
453
struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/eeprom.c
492
ath9k_hw_get_channel_centers(ah, chan, &centers);
drivers/net/wireless/ath/ath9k/eeprom.c
500
IS_CHAN_2GHZ(chan)),
drivers/net/wireless/ath/ath9k/eeprom.c
576
(chan)),
drivers/net/wireless/ath/ath9k/eeprom.h
662
void (*set_board_values)(struct ath_hw *hw, struct ath9k_channel *chan);
drivers/net/wireless/ath/ath9k/eeprom.h
663
void (*set_addac)(struct ath_hw *hw, struct ath9k_channel *chan);
drivers/net/wireless/ath/ath9k/eeprom.h
664
void (*set_txpower)(struct ath_hw *hw, struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/eeprom.h
689
struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/eeprom.h
695
struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/eeprom.h
708
struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
284
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/eeprom_4k.c
338
ath9k_hw_get_gain_boundaries_pdadcs(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
387
struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
424
ath9k_hw_get_channel_centers(ah, chan, &centers);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
431
ath9k_hw_get_legacy_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
435
ath9k_hw_get_legacy_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
439
ath9k_hw_get_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
444
if (IS_CHAN_HT40(chan)) {
drivers/net/wireless/ath/ath9k/eeprom_4k.c
446
ath9k_hw_get_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
450
ath9k_hw_get_legacy_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
454
ath9k_hw_get_legacy_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
483
IS_CHAN_2GHZ(chan),
drivers/net/wireless/ath/ath9k/eeprom_4k.c
563
if (IS_CHAN_HT40(chan)) {
drivers/net/wireless/ath/ath9k/eeprom_4k.c
578
struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
595
ath9k_hw_set_4k_power_per_rate_table(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
600
ath9k_hw_set_4k_power_cal_table(ah, chan);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
656
if (IS_CHAN_HT40(chan)) {
drivers/net/wireless/ath/ath9k/eeprom_4k.c
686
ht40_delta = (IS_CHAN_HT40(chan)) ? ht40PowerIncForPdadc : 0;
drivers/net/wireless/ath/ath9k/eeprom_4k.c
687
ar5008_hw_init_rate_txpower(ah, ratesArray, chan, ht40_delta);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
757
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/eeprom_4k.c
999
if (IS_CHAN_HT40(chan))
drivers/net/wireless/ath/ath9k/eeprom_9287.c
284
struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
292
ath9k_hw_get_channel_centers(ah, chan, &centers);
drivers/net/wireless/ath/ath9k/eeprom_9287.c
300
(u8)FREQ2FBIN(centers.synth_center, IS_CHAN_2GHZ(chan)),
drivers/net/wireless/ath/ath9k/eeprom_9287.c
354
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/eeprom_9287.c
377
if (IS_CHAN_2GHZ(chan)) {
drivers/net/wireless/ath/ath9k/eeprom_9287.c
418
ar9287_eeprom_get_tx_gain_index(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
428
ath9k_hw_get_gain_boundaries_pdadcs(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
492
struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
529
ath9k_hw_get_channel_centers(ah, chan, &centers);
drivers/net/wireless/ath/ath9k/eeprom_9287.c
536
if (IS_CHAN_2GHZ(chan)) {
drivers/net/wireless/ath/ath9k/eeprom_9287.c
543
ath9k_hw_get_legacy_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
547
ath9k_hw_get_legacy_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
551
ath9k_hw_get_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
556
if (IS_CHAN_HT40(chan)) {
drivers/net/wireless/ath/ath9k/eeprom_9287.c
559
ath9k_hw_get_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
563
ath9k_hw_get_legacy_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
567
ath9k_hw_get_legacy_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
600
IS_CHAN_2GHZ(chan),
drivers/net/wireless/ath/ath9k/eeprom_9287.c
680
if (IS_CHAN_2GHZ(chan)) {
drivers/net/wireless/ath/ath9k/eeprom_9287.c
689
if (IS_CHAN_HT40(chan)) {
drivers/net/wireless/ath/ath9k/eeprom_9287.c
697
if (IS_CHAN_2GHZ(chan))
drivers/net/wireless/ath/ath9k/eeprom_9287.c
706
struct ath9k_channel *chan, u16 cfgCtl,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
722
ath9k_hw_set_ar9287_power_per_rate_table(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
727
ath9k_hw_set_ar9287_power_cal_table(ah, chan);
drivers/net/wireless/ath/ath9k/eeprom_9287.c
762
if (IS_CHAN_2GHZ(chan)) {
drivers/net/wireless/ath/ath9k/eeprom_9287.c
789
if (IS_CHAN_HT40(chan)) {
drivers/net/wireless/ath/ath9k/eeprom_9287.c
836
ht40_delta = (IS_CHAN_HT40(chan)) ? ht40PowerIncForPdadc : 0;
drivers/net/wireless/ath/ath9k/eeprom_9287.c
837
ar5008_hw_init_rate_txpower(ah, ratesArray, chan, ht40_delta);
drivers/net/wireless/ath/ath9k/eeprom_9287.c
850
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/eeprom_9287.c
894
if (IS_CHAN_HT40(chan))
drivers/net/wireless/ath/ath9k/eeprom_def.c
1000
ath9k_hw_get_legacy_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_def.c
1004
ath9k_hw_get_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_def.c
1009
if (IS_CHAN_HT40(chan)) {
drivers/net/wireless/ath/ath9k/eeprom_def.c
1011
ath9k_hw_get_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_def.c
1015
ath9k_hw_get_legacy_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_def.c
1045
IS_CHAN_2GHZ(chan), AR5416_NUM_BAND_EDGES);
drivers/net/wireless/ath/ath9k/eeprom_def.c
1118
if (IS_CHAN_2GHZ(chan)) {
drivers/net/wireless/ath/ath9k/eeprom_def.c
1127
if (IS_CHAN_HT40(chan)) {
drivers/net/wireless/ath/ath9k/eeprom_def.c
1135
if (IS_CHAN_2GHZ(chan)) {
drivers/net/wireless/ath/ath9k/eeprom_def.c
1143
struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/eeprom_def.c
1152
&(pEepData->modalHeader[IS_CHAN_2GHZ(chan)]);
drivers/net/wireless/ath/ath9k/eeprom_def.c
1162
ath9k_hw_set_def_power_per_rate_table(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_def.c
1167
ath9k_hw_set_def_power_cal_table(ah, chan);
drivers/net/wireless/ath/ath9k/eeprom_def.c
1205
if (IS_CHAN_2GHZ(chan)) {
drivers/net/wireless/ath/ath9k/eeprom_def.c
1243
if (IS_CHAN_HT40(chan)) {
drivers/net/wireless/ath/ath9k/eeprom_def.c
1285
ht40_delta = (IS_CHAN_HT40(chan)) ? ht40PowerIncForPdadc : 0;
drivers/net/wireless/ath/ath9k/eeprom_def.c
1286
ar5008_hw_init_rate_txpower(ah, ratesArray, chan, ht40_delta);
drivers/net/wireless/ath/ath9k/eeprom_def.c
22
struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/eeprom_def.c
31
ath9k_hw_get_channel_centers(ah, chan, &centers);
drivers/net/wireless/ath/ath9k/eeprom_def.c
38
(u8)FREQ2FBIN(centers.synth_center, IS_CHAN_2GHZ(chan)),
drivers/net/wireless/ath/ath9k/eeprom_def.c
467
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/eeprom_def.c
475
pModal = &(eep->modalHeader[IS_CHAN_2GHZ(chan)]);
drivers/net/wireless/ath/ath9k/eeprom_def.c
476
txRxAttenLocal = IS_CHAN_2GHZ(chan) ? 23 : 44;
drivers/net/wireless/ath/ath9k/eeprom_def.c
509
if (IS_CHAN_2GHZ(chan)) {
drivers/net/wireless/ath/ath9k/eeprom_def.c
602
if (IS_CHAN_HT40(chan))
drivers/net/wireless/ath/ath9k/eeprom_def.c
617
if (IS_CHAN_2GHZ(chan))
drivers/net/wireless/ath/ath9k/eeprom_def.c
638
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/eeprom_def.c
651
pModal = &(eep->modalHeader[IS_CHAN_2GHZ(chan)]);
drivers/net/wireless/ath/ath9k/eeprom_def.c
659
ath9k_hw_get_channel_centers(ah, chan, &centers);
drivers/net/wireless/ath/ath9k/eeprom_def.c
662
IS_CHAN_2GHZ(chan));
drivers/net/wireless/ath/ath9k/eeprom_def.c
681
if (IS_CHAN_2GHZ(chan)) {
drivers/net/wireless/ath/ath9k/eeprom_def.c
762
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/eeprom_def.c
782
modalIdx = IS_CHAN_2GHZ(chan) ? 1 : 0;
drivers/net/wireless/ath/ath9k/eeprom_def.c
795
if (IS_CHAN_2GHZ(chan)) {
drivers/net/wireless/ath/ath9k/eeprom_def.c
803
if (OLC_FOR_AR9280_20_LATER(ah) && IS_CHAN_2GHZ(chan)) {
drivers/net/wireless/ath/ath9k/eeprom_def.c
838
if (IS_CHAN_2GHZ(chan))
drivers/net/wireless/ath/ath9k/eeprom_def.c
848
ath9k_get_txgain_index(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_def.c
855
chan, pRawDataset,
drivers/net/wireless/ath/ath9k/eeprom_def.c
920
struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/eeprom_def.c
957
ath9k_hw_get_channel_centers(ah, chan, &centers);
drivers/net/wireless/ath/ath9k/eeprom_def.c
962
if (IS_CHAN_2GHZ(chan)) {
drivers/net/wireless/ath/ath9k/eeprom_def.c
967
ath9k_hw_get_legacy_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_def.c
971
ath9k_hw_get_legacy_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_def.c
975
ath9k_hw_get_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_def.c
980
if (IS_CHAN_HT40(chan)) {
drivers/net/wireless/ath/ath9k/eeprom_def.c
982
ath9k_hw_get_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_def.c
986
ath9k_hw_get_legacy_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_def.c
990
ath9k_hw_get_legacy_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1209
struct ieee80211_channel *curchan = hw->conf.chandef.chan;
drivers/net/wireless/ath/ath9k/htc_drv_main.c
188
struct ieee80211_channel *channel = priv->hw->conf.chandef.chan;
drivers/net/wireless/ath/ath9k/htc_drv_main.c
248
struct ieee80211_channel *channel = hw->conf.chandef.chan;
drivers/net/wireless/ath/ath9k/htc_drv_main.c
602
sband = priv->hw->wiphy->bands[priv->hw->conf.chandef.chan->band];
drivers/net/wireless/ath/ath9k/htc_drv_main.c
912
struct ieee80211_channel *curchan = hw->conf.chandef.chan;
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
1068
rx_status->band = ah->curchan->chan->band;
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
1069
rx_status->freq = ah->curchan->chan->center_freq;
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
502
if (cur_conf->chandef.chan->band == NL80211_BAND_5GHZ)
drivers/net/wireless/ath/ath9k/hw-ops.h
141
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/hw-ops.h
143
return ath9k_hw_private_ops(ah)->rf_set_freq(ah, chan);
drivers/net/wireless/ath/ath9k/hw-ops.h
147
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/hw-ops.h
149
ath9k_hw_private_ops(ah)->spur_mitigate_freq(ah, chan);
drivers/net/wireless/ath/ath9k/hw-ops.h
153
struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/hw-ops.h
159
return ath9k_hw_private_ops(ah)->set_rf_regs(ah, chan, modesIndex);
drivers/net/wireless/ath/ath9k/hw-ops.h
163
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/hw-ops.h
165
return ath9k_hw_private_ops(ah)->init_bb(ah, chan);
drivers/net/wireless/ath/ath9k/hw-ops.h
169
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/hw-ops.h
171
return ath9k_hw_private_ops(ah)->set_channel_regs(ah, chan);
drivers/net/wireless/ath/ath9k/hw-ops.h
175
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/hw-ops.h
177
return ath9k_hw_private_ops(ah)->process_ini(ah, chan);
drivers/net/wireless/ath/ath9k/hw-ops.h
189
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/hw-ops.h
191
return ath9k_hw_private_ops(ah)->set_rfmode(ah, chan);
drivers/net/wireless/ath/ath9k/hw-ops.h
200
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/hw-ops.h
202
return ath9k_hw_private_ops(ah)->set_delta_slope(ah, chan);
drivers/net/wireless/ath/ath9k/hw-ops.h
236
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/hw-ops.h
238
return ath9k_hw_private_ops(ah)->init_cal(ah, chan);
drivers/net/wireless/ath/ath9k/hw-ops.h
248
struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/hw-ops.h
251
return ath9k_hw_private_ops(ah)->fast_chan_change(ah, chan,
drivers/net/wireless/ath/ath9k/hw-ops.h
269
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/hw-ops.h
271
return ath9k_hw_private_ops(ah)->compute_pll_control(ah, chan);
drivers/net/wireless/ath/ath9k/hw-ops.h
45
struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/hw-ops.h
48
return ath9k_hw_ops(ah)->calibrate(ah, chan, rxchainmask, longcal);
drivers/net/wireless/ath/ath9k/hw.c
103
if (IS_CHAN_HALF_RATE(chan))
drivers/net/wireless/ath/ath9k/hw.c
105
else if (IS_CHAN_QUARTER_RATE(chan))
drivers/net/wireless/ath/ath9k/hw.c
1051
const struct ath9k_channel *chan = ah->curchan;
drivers/net/wireless/ath/ath9k/hw.c
1061
if (!chan)
drivers/net/wireless/ath/ath9k/hw.c
1067
if (IS_CHAN_A_FAST_CLOCK(ah, chan))
drivers/net/wireless/ath/ath9k/hw.c
1073
if (IS_CHAN_5GHZ(chan))
drivers/net/wireless/ath/ath9k/hw.c
1078
if (IS_CHAN_HALF_RATE(chan)) {
drivers/net/wireless/ath/ath9k/hw.c
1082
if (IS_CHAN_A_FAST_CLOCK(ah, chan))
drivers/net/wireless/ath/ath9k/hw.c
1089
} else if (IS_CHAN_QUARTER_RATE(chan)) {
drivers/net/wireless/ath/ath9k/hw.c
1093
if (IS_CHAN_A_FAST_CLOCK(ah, chan))
drivers/net/wireless/ath/ath9k/hw.c
1127
if (IS_CHAN_2GHZ(chan) &&
drivers/net/wireless/ath/ath9k/hw.c
1128
!IS_CHAN_HALF_RATE(chan) && !IS_CHAN_QUARTER_RATE(chan)) {
drivers/net/wireless/ath/ath9k/hw.c
1155
if (IS_CHAN_HALF_RATE(chan) || IS_CHAN_QUARTER_RATE(chan))
drivers/net/wireless/ath/ath9k/hw.c
1177
u32 ath9k_regd_get_ctl(struct ath_regulatory *reg, struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/hw.c
1179
u32 ctl = ath_regd_get_band_ctl(reg, chan->chan->band);
drivers/net/wireless/ath/ath9k/hw.c
1181
if (IS_CHAN_2GHZ(chan))
drivers/net/wireless/ath/ath9k/hw.c
1515
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/hw.c
1538
ath9k_hw_init_pll(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
1544
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/hw.c
1554
u32 flags_diff = chan->channelFlags ^ ah->curchan->channelFlags;
drivers/net/wireless/ath/ath9k/hw.c
1577
ath9k_hw_init_pll(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
1579
if (ath9k_hw_fast_chan_change(ah, chan, &ini_reloaded)) {
drivers/net/wireless/ath/ath9k/hw.c
1585
ath9k_hw_set_channel_regs(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
1587
r = ath9k_hw_rf_set_freq(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
1593
ath9k_hw_apply_txpower(ah, chan, false);
drivers/net/wireless/ath/ath9k/hw.c
1595
ath9k_hw_set_delta_slope(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
1596
ath9k_hw_spur_mitigate_freq(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
1599
ah->eep_ops->set_board_values(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
1601
ath9k_hw_init_bb(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
1606
ath9k_hw_init_cal(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
1788
static int ath9k_hw_do_fastcc(struct ath_hw *ah, struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/hw.c
1803
if (chan->channel == ah->curchan->channel)
drivers/net/wireless/ath/ath9k/hw.c
1806
if ((ah->curchan->channelFlags | chan->channelFlags) &
drivers/net/wireless/ath/ath9k/hw.c
1814
((chan->channelFlags ^ ah->curchan->channelFlags) & ~CHANNEL_HT))
drivers/net/wireless/ath/ath9k/hw.c
1831
ah->curchan->channel, chan->channel);
drivers/net/wireless/ath/ath9k/hw.c
1833
ret = ath9k_hw_channel_change(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
1844
ar9002_hw_load_ani_reg(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
1859
int ath9k_hw_reset(struct ath_hw *ah, struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/hw.c
1874
start_mci_reset = ar9003_mci_start_reset(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
1886
if (caldata && (chan->channel != caldata->channel ||
drivers/net/wireless/ath/ath9k/hw.c
1887
chan->channelFlags != caldata->channelFlags)) {
drivers/net/wireless/ath/ath9k/hw.c
1890
ath9k_init_nfcal_hist_buffer(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
1894
ah->noise = ath9k_hw_getchan_noise(ah, chan, chan->noisefloor);
drivers/net/wireless/ath/ath9k/hw.c
1897
r = ath9k_hw_do_fastcc(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
1931
if (!ath9k_hw_chip_reset(ah, chan)) {
drivers/net/wireless/ath/ath9k/hw.c
1955
r = ath9k_hw_process_ini(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
1959
ath9k_hw_set_rfmode(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
1962
ar9003_mci_reset(ah, false, IS_CHAN_2GHZ(chan), save_fullsleep);
drivers/net/wireless/ath/ath9k/hw.c
1976
ath9k_hw_set_delta_slope(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
1977
ath9k_hw_spur_mitigate_freq(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
1978
ah->eep_ops->set_board_values(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
1982
r = ath9k_hw_rf_set_freq(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
2026
ath9k_hw_init_bb(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
2032
if (!ath9k_hw_init_cal(ah, chan))
drivers/net/wireless/ath/ath9k/hw.c
2035
if (ath9k_hw_mci_is_enabled(ah) && ar9003_mci_end_reset(ah, chan, caldata))
drivers/net/wireless/ath/ath9k/hw.c
2056
ath9k_hw_loadnf(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
2073
ah->radar_conf.ext_channel = IS_CHAN_HT40(chan);
drivers/net/wireless/ath/ath9k/hw.c
223
struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/hw.c
228
if (!IS_CHAN_HT40(chan)) {
drivers/net/wireless/ath/ath9k/hw.c
230
centers->synth_center = chan->channel;
drivers/net/wireless/ath/ath9k/hw.c
234
if (IS_CHAN_HT40PLUS(chan)) {
drivers/net/wireless/ath/ath9k/hw.c
236
chan->channel + HT40_CHANNEL_CENTER_SHIFT;
drivers/net/wireless/ath/ath9k/hw.c
240
chan->channel - HT40_CHANNEL_CENTER_SHIFT;
drivers/net/wireless/ath/ath9k/hw.c
2935
static int get_antenna_gain(struct ath_hw *ah, struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/hw.c
2939
if (IS_CHAN_2GHZ(chan))
drivers/net/wireless/ath/ath9k/hw.c
2947
void ath9k_hw_apply_txpower(struct ath_hw *ah, struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/hw.c
2955
if (!chan)
drivers/net/wireless/ath/ath9k/hw.c
2959
ctl = ath9k_regd_get_ctl(reg, chan);
drivers/net/wireless/ath/ath9k/hw.c
2961
channel = chan->chan;
drivers/net/wireless/ath/ath9k/hw.c
2965
ah->eep_ops->set_txpower(ah, chan, ctl,
drivers/net/wireless/ath/ath9k/hw.c
2966
get_antenna_gain(ah, chan), new_pwr, test);
drivers/net/wireless/ath/ath9k/hw.c
2972
struct ath9k_channel *chan = ah->curchan;
drivers/net/wireless/ath/ath9k/hw.c
2973
struct ieee80211_channel *channel = chan->chan;
drivers/net/wireless/ath/ath9k/hw.c
2979
ath9k_hw_apply_txpower(ah, chan, test);
drivers/net/wireless/ath/ath9k/hw.c
3058
void ath9k_hw_set11nmac2040(struct ath_hw *ah, struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/hw.c
3062
if (IS_CHAN_HT40(chan) && !ah->config.cwm_ignore_extcca)
drivers/net/wireless/ath/ath9k/hw.c
43
struct ath9k_channel *chan = ah->curchan;
drivers/net/wireless/ath/ath9k/hw.c
49
else if (!chan) /* should really check for CCK instead */
drivers/net/wireless/ath/ath9k/hw.c
51
else if (IS_CHAN_2GHZ(chan))
drivers/net/wireless/ath/ath9k/hw.c
58
if (chan) {
drivers/net/wireless/ath/ath9k/hw.c
59
if (IS_CHAN_HT40(chan))
drivers/net/wireless/ath/ath9k/hw.c
61
if (IS_CHAN_HALF_RATE(chan))
drivers/net/wireless/ath/ath9k/hw.c
63
if (IS_CHAN_QUARTER_RATE(chan))
drivers/net/wireless/ath/ath9k/hw.c
762
struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/hw.c
766
pll = ath9k_hw_compute_pll_control(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
98
void ath9k_hw_synth_delay(struct ath_hw *ah, struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/hw.h
1028
int ath9k_hw_reset(struct ath_hw *ah, struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/hw.h
1031
u32 ath9k_regd_get_ctl(struct ath_regulatory *reg, struct ath9k_channel *chan);
drivers/net/wireless/ath/ath9k/hw.h
1043
void ath9k_hw_synth_delay(struct ath_hw *ah, struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/hw.h
1054
struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/hw.h
1072
void ath9k_hw_set11nmac2040(struct ath_hw *ah, struct ath9k_channel *chan);
drivers/net/wireless/ath/ath9k/hw.h
1102
void ath9k_hw_apply_txpower(struct ath_hw *ah, struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/hw.h
1133
struct ath9k_channel *chan);
drivers/net/wireless/ath/ath9k/hw.h
1135
struct ath9k_channel *chan, int bin);
drivers/net/wireless/ath/ath9k/hw.h
1137
struct ath9k_channel *chan, int ht40_delta);
drivers/net/wireless/ath/ath9k/hw.h
1150
void ar9002_hw_load_ani_reg(struct ath_hw *ah, struct ath9k_channel *chan);
drivers/net/wireless/ath/ath9k/hw.h
1153
void ath9k_hw_ani_monitor(struct ath_hw *ah, struct ath9k_channel *chan);
drivers/net/wireless/ath/ath9k/hw.h
451
struct ieee80211_channel *chan;
drivers/net/wireless/ath/ath9k/hw.h
636
bool (*init_cal)(struct ath_hw *ah, struct ath9k_channel *chan);
drivers/net/wireless/ath/ath9k/hw.h
644
struct ath9k_channel *chan);
drivers/net/wireless/ath/ath9k/hw.h
646
struct ath9k_channel *chan);
drivers/net/wireless/ath/ath9k/hw.h
648
struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/hw.h
650
void (*set_channel_regs)(struct ath_hw *ah, struct ath9k_channel *chan);
drivers/net/wireless/ath/ath9k/hw.h
652
struct ath9k_channel *chan);
drivers/net/wireless/ath/ath9k/hw.h
653
int (*process_ini)(struct ath_hw *ah, struct ath9k_channel *chan);
drivers/net/wireless/ath/ath9k/hw.h
655
void (*set_rfmode)(struct ath_hw *ah, struct ath9k_channel *chan);
drivers/net/wireless/ath/ath9k/hw.h
657
void (*set_delta_slope)(struct ath_hw *ah, struct ath9k_channel *chan);
drivers/net/wireless/ath/ath9k/hw.h
662
struct ath9k_channel *chan);
drivers/net/wireless/ath/ath9k/hw.h
668
int (*fast_chan_change)(struct ath_hw *ah, struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/hw.h
728
int (*calibrate)(struct ath_hw *ah, struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/init.c
268
sc->cur_chan->txpower = 2 * ah->curchan->chan->max_power;
drivers/net/wireless/ath/ath9k/init.c
800
struct ieee80211_channel *chan;
drivers/net/wireless/ath/ath9k/init.c
808
chan = &sband->channels[i];
drivers/net/wireless/ath/ath9k/init.c
809
ah->curchan = &ah->channels[chan->hw_value];
drivers/net/wireless/ath/ath9k/init.c
810
cfg80211_chandef_create(&chandef, chan, NL80211_CHAN_HT20);
drivers/net/wireless/ath/ath9k/link.c
214
tx_info->band = sc->cur_chandef.chan->band;
drivers/net/wireless/ath/ath9k/link.c
520
struct ath9k_channel *chan = &ah->channels[channel];
drivers/net/wireless/ath/ath9k/link.c
523
if (chan->noisefloor) {
drivers/net/wireless/ath/ath9k/link.c
525
survey->noise = ath9k_hw_getchan_noise(ah, chan,
drivers/net/wireless/ath/ath9k/link.c
526
chan->noisefloor);
drivers/net/wireless/ath/ath9k/main.c
1194
if (ctx == &sc->offchannel.chan)
drivers/net/wireless/ath/ath9k/main.c
1579
sc->offchannel.chan.rxfilter = *total_flags;
drivers/net/wireless/ath/ath9k/main.c
2068
struct ieee80211_channel *chan;
drivers/net/wireless/ath/ath9k/main.c
2093
chan = &sband->channels[idx];
drivers/net/wireless/ath/ath9k/main.c
2094
pos = chan->hw_value;
drivers/net/wireless/ath/ath9k/main.c
2096
survey->channel = chan;
drivers/net/wireless/ath/ath9k/main.c
2389
struct ieee80211_channel *chan = chandef->chan;
drivers/net/wireless/ath/ath9k/main.c
2390
int pos = chan->hw_value;
drivers/net/wireless/ath/ath9k/main.c
2489
struct ieee80211_channel *chan, int duration,
drivers/net/wireless/ath/ath9k/main.c
2505
sc->offchannel.roc_chan = chan;
drivers/net/wireless/ath/ath9k/main.c
2566
conf->def.chan->center_freq);
drivers/net/wireless/ath/ath9k/main.c
2590
conf->def.chan->center_freq);
drivers/net/wireless/ath/ath9k/main.c
2610
conf->def.chan->center_freq);
drivers/net/wireless/ath/ath9k/main.c
2633
conf->def.chan->center_freq);
drivers/net/wireless/ath/ath9k/main.c
2665
conf->def.chan->center_freq);
drivers/net/wireless/ath/ath9k/main.c
658
struct ieee80211_channel *curchan = sc->cur_chan->chandef.chan;
drivers/net/wireless/ath/ath9k/mci.c
648
struct ath9k_channel *chan = ah->curchan;
drivers/net/wireless/ath/ath9k/mci.c
654
if (!chan || !IS_CHAN_2GHZ(chan))
drivers/net/wireless/ath/ath9k/mci.c
660
wlan_chan = chan->channel - 2402;
drivers/net/wireless/ath/ath9k/mci.c
665
if (IS_CHAN_HT40PLUS(chan))
drivers/net/wireless/ath/ath9k/mci.c
667
else if (IS_CHAN_HT40MINUS(chan))
drivers/net/wireless/ath/ath9k/recv.c
552
if (sc->cur_chan == &sc->offchannel.chan)
drivers/net/wireless/ath/ath9k/recv.c
933
rx_status->band = ah->curchan->chan->band;
drivers/net/wireless/ath/ath9k/recv.c
934
rx_status->freq = ah->curchan->chan->center_freq;
drivers/net/wireless/ath/ath9k/tx99.c
83
tx_info->band = sc->cur_chan->chandef.chan->band;
drivers/net/wireless/ath/carl9170/debug.c
642
err = carl9170_set_channel(ar, ar->hw->conf.chandef.chan,
drivers/net/wireless/ath/carl9170/mac.c
123
if (ar->hw->conf.chandef.chan->band == NL80211_BAND_5GHZ)
drivers/net/wireless/ath/carl9170/mac.c
51
if (ar->hw->conf.chandef.chan->band == NL80211_BAND_2GHZ)
drivers/net/wireless/ath/carl9170/mac.c
69
if (ar->hw->conf.chandef.chan->band == NL80211_BAND_2GHZ) {
drivers/net/wireless/ath/carl9170/mac.c
96
if ((ar->hw->conf.chandef.chan->band == NL80211_BAND_5GHZ) ||
drivers/net/wireless/ath/carl9170/main.c
1611
struct ieee80211_channel *chan;
drivers/net/wireless/ath/carl9170/main.c
1615
chan = ar->channel;
drivers/net/wireless/ath/carl9170/main.c
1616
if (!chan)
drivers/net/wireless/ath/carl9170/main.c
1619
if (idx == chan->hw_value) {
drivers/net/wireless/ath/carl9170/main.c
1635
chan = &band->channels[i];
drivers/net/wireless/ath/carl9170/main.c
1645
survey->channel = chan;
drivers/net/wireless/ath/carl9170/main.c
1648
if (ar->channel == chan)
drivers/net/wireless/ath/carl9170/main.c
928
err = carl9170_set_channel(ar, hw->conf.chandef.chan,
drivers/net/wireless/ath/carl9170/main.c
947
err = carl9170_set_mac_tpc(ar, ar->hw->conf.chandef.chan);
drivers/net/wireless/ath/carl9170/phy.c
1333
ar->hw->conf.chandef.chan->band);
drivers/net/wireless/ath/carl9170/phy.c
1343
if (ar->hw->conf.chandef.chan->band == NL80211_BAND_2GHZ) {
drivers/net/wireless/ath/carl9170/rx.c
294
struct ieee80211_channel *chan;
drivers/net/wireless/ath/carl9170/rx.c
353
chan = ar->channel;
drivers/net/wireless/ath/carl9170/rx.c
354
if (chan) {
drivers/net/wireless/ath/carl9170/rx.c
355
status->band = chan->band;
drivers/net/wireless/ath/carl9170/rx.c
356
status->freq = chan->center_freq;
drivers/net/wireless/ath/wcn36xx/smd.c
1671
bss->ext_channel = HW_VALUE_PHY(chandef->chan->hw_value);
drivers/net/wireless/ath/wcn36xx/wcn36xx.h
91
HW_VALUE_CHANNEL(__wcn->hw->conf.chandef.chan->hw_value)
drivers/net/wireless/ath/wcn36xx/wcn36xx.h
92
#define WCN36XX_BAND(__wcn) (__wcn->hw->conf.chandef.chan->band)
drivers/net/wireless/ath/wcn36xx/wcn36xx.h
93
#define WCN36XX_CENTER_FREQ(__wcn) (__wcn->hw->conf.chandef.chan->center_freq)
drivers/net/wireless/ath/wcn36xx/wcn36xx.h
96
#define WCN36XX_MAX_POWER(__wcn) (__wcn->hw->conf.chandef.chan->max_power)
drivers/net/wireless/ath/wil6210/cfg80211.c
1445
params->chan ? params->chan->hw_value : -1,
drivers/net/wireless/ath/wil6210/cfg80211.c
1454
if (params->chan && params->chan->hw_value == 0) {
drivers/net/wireless/ath/wil6210/cfg80211.c
1466
if (!params->chan || params->chan->hw_value == vif->channel) {
drivers/net/wireless/ath/wil6210/cfg80211.c
1476
vif->channel, params->chan->hw_value);
drivers/net/wireless/ath/wil6210/cfg80211.c
1481
rc = wmi_mgmt_tx_ext(vif, buf, len, params->chan->hw_value,
drivers/net/wireless/ath/wil6210/cfg80211.c
1736
struct ieee80211_channel *chan,
drivers/net/wireless/ath/wil6210/cfg80211.c
1745
chan->center_freq, duration, wdev->iftype);
drivers/net/wireless/ath/wil6210/cfg80211.c
1747
rc = wil_p2p_listen(wil, wdev, duration, chan, cookie);
drivers/net/wireless/ath/wil6210/cfg80211.c
1932
int bi, u8 chan, u8 wmi_edmg_channel,
drivers/net/wireless/ath/wil6210/cfg80211.c
1994
vif->channel = chan;
drivers/net/wireless/ath/wil6210/cfg80211.c
2006
rc = wmi_pcp_start(vif, bi, wmi_nettype, chan, wmi_edmg_channel,
drivers/net/wireless/ath/wil6210/cfg80211.c
2129
struct ieee80211_channel *channel = info->chandef.chan;
drivers/net/wireless/ath/wil6210/p2p.c
126
unsigned int duration, struct ieee80211_channel *chan,
drivers/net/wireless/ath/wil6210/p2p.c
133
if (!chan)
drivers/net/wireless/ath/wil6210/p2p.c
146
memcpy(&p2p->listen_chan, chan, sizeof(*chan));
drivers/net/wireless/ath/wil6210/p2p.c
169
cfg80211_ready_on_channel(wdev, *cookie, chan, duration,
drivers/net/wireless/ath/wil6210/txrx.c
324
struct ieee80211_channel *ch = wil->monitor_chandef.chan;
drivers/net/wireless/ath/wil6210/wil6210.h
1303
unsigned int duration, struct ieee80211_channel *chan,
drivers/net/wireless/ath/wil6210/wil6210.h
1343
int wmi_pcp_start(struct wil6210_vif *vif, int bi, u8 wmi_nettype, u8 chan,
drivers/net/wireless/ath/wil6210/wmi.c
1438
bss_data.chan = channel;
drivers/net/wireless/ath/wil6210/wmi.c
2201
u8 chan, u8 wmi_edmg_chan, u8 hidden_ssid, u8 is_go)
drivers/net/wireless/ath/wil6210/wmi.c
2210
.channel = chan - 1,
drivers/net/wireless/ath/wil6210/wmi.c
2637
struct ieee80211_channel *ch = wil->monitor_chandef.chan;
drivers/net/wireless/ath/wil6210/wmi.c
872
.chan = channel,
drivers/net/wireless/atmel/at76c50x-usb.c
2013
__func__, hw->conf.chandef.chan->hw_value);
drivers/net/wireless/atmel/at76c50x-usb.c
2018
priv->channel = hw->conf.chandef.chan->hw_value;
drivers/net/wireless/broadcom/b43/b43.h
1000
return wl->hw->conf.chandef.chan->band;
drivers/net/wireless/broadcom/b43/main.c
3895
struct ieee80211_channel *chan)
drivers/net/wireless/broadcom/b43/main.c
3901
switch (chan->band) {
drivers/net/wireless/broadcom/b43/main.c
3916
band_to_string(chan->band));
drivers/net/wireless/broadcom/b43/main.c
3926
band_to_string(chan->band));
drivers/net/wireless/broadcom/b43/main.c
4004
phy->channel = conf->chandef.chan->hw_value;
drivers/net/wireless/broadcom/b43/main.c
4007
err = b43_switch_band(dev, conf->chandef.chan);
drivers/net/wireless/broadcom/b43/main.c
5181
survey->channel = conf->chandef.chan;
drivers/net/wireless/broadcom/b43/phy_common.c
94
phy->channel = phy->chandef->chan->hw_value;
drivers/net/wireless/broadcom/b43/phy_ht.c
1060
struct ieee80211_channel *channel = dev->wl->hw->conf.chandef.chan;
drivers/net/wireless/broadcom/b43/phy_ht.c
630
u16 freq = dev->phy.chandef->chan->center_freq;
drivers/net/wireless/broadcom/b43/phy_lcn.c
778
struct ieee80211_channel *channel = dev->wl->hw->conf.chandef.chan;
drivers/net/wireless/broadcom/b43/phy_lp.c
1618
struct lpphy_rx_iq_comp { u8 chan; s8 c1, c0; };
drivers/net/wireless/broadcom/b43/phy_lp.c
1621
{ .chan = 1, .c1 = -66, .c0 = 15, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1622
{ .chan = 2, .c1 = -66, .c0 = 15, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1623
{ .chan = 3, .c1 = -66, .c0 = 15, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1624
{ .chan = 4, .c1 = -66, .c0 = 15, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1625
{ .chan = 5, .c1 = -66, .c0 = 15, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1626
{ .chan = 6, .c1 = -66, .c0 = 15, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1627
{ .chan = 7, .c1 = -66, .c0 = 14, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1628
{ .chan = 8, .c1 = -66, .c0 = 14, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1629
{ .chan = 9, .c1 = -66, .c0 = 14, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1630
{ .chan = 10, .c1 = -66, .c0 = 14, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1631
{ .chan = 11, .c1 = -66, .c0 = 14, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1632
{ .chan = 12, .c1 = -66, .c0 = 13, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1633
{ .chan = 13, .c1 = -66, .c0 = 13, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1634
{ .chan = 14, .c1 = -66, .c0 = 13, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1638
{ .chan = 1, .c1 = -64, .c0 = 13, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1639
{ .chan = 2, .c1 = -64, .c0 = 13, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1640
{ .chan = 3, .c1 = -64, .c0 = 13, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1641
{ .chan = 4, .c1 = -64, .c0 = 13, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1642
{ .chan = 5, .c1 = -64, .c0 = 12, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1643
{ .chan = 6, .c1 = -64, .c0 = 12, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1644
{ .chan = 7, .c1 = -64, .c0 = 12, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1645
{ .chan = 8, .c1 = -64, .c0 = 12, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1646
{ .chan = 9, .c1 = -64, .c0 = 12, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1647
{ .chan = 10, .c1 = -64, .c0 = 11, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1648
{ .chan = 11, .c1 = -64, .c0 = 11, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1649
{ .chan = 12, .c1 = -64, .c0 = 11, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1650
{ .chan = 13, .c1 = -64, .c0 = 11, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1651
{ .chan = 14, .c1 = -64, .c0 = 10, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1652
{ .chan = 34, .c1 = -62, .c0 = 24, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1653
{ .chan = 38, .c1 = -62, .c0 = 24, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1654
{ .chan = 42, .c1 = -62, .c0 = 24, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1655
{ .chan = 46, .c1 = -62, .c0 = 23, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1656
{ .chan = 36, .c1 = -62, .c0 = 24, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1657
{ .chan = 40, .c1 = -62, .c0 = 24, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1658
{ .chan = 44, .c1 = -62, .c0 = 23, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1659
{ .chan = 48, .c1 = -62, .c0 = 23, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1660
{ .chan = 52, .c1 = -62, .c0 = 23, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1661
{ .chan = 56, .c1 = -62, .c0 = 22, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1662
{ .chan = 60, .c1 = -62, .c0 = 22, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1663
{ .chan = 64, .c1 = -62, .c0 = 22, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1664
{ .chan = 100, .c1 = -62, .c0 = 16, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1665
{ .chan = 104, .c1 = -62, .c0 = 16, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1666
{ .chan = 108, .c1 = -62, .c0 = 15, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1667
{ .chan = 112, .c1 = -62, .c0 = 14, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1668
{ .chan = 116, .c1 = -62, .c0 = 14, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1669
{ .chan = 120, .c1 = -62, .c0 = 13, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1670
{ .chan = 124, .c1 = -62, .c0 = 12, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1671
{ .chan = 128, .c1 = -62, .c0 = 12, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1672
{ .chan = 132, .c1 = -62, .c0 = 12, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1673
{ .chan = 136, .c1 = -62, .c0 = 11, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1674
{ .chan = 140, .c1 = -62, .c0 = 10, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1675
{ .chan = 149, .c1 = -61, .c0 = 9, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1676
{ .chan = 153, .c1 = -61, .c0 = 9, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1677
{ .chan = 157, .c1 = -61, .c0 = 9, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1678
{ .chan = 161, .c1 = -61, .c0 = 8, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1679
{ .chan = 165, .c1 = -61, .c0 = 8, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1680
{ .chan = 184, .c1 = -62, .c0 = 25, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1681
{ .chan = 188, .c1 = -62, .c0 = 25, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1682
{ .chan = 192, .c1 = -62, .c0 = 25, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1683
{ .chan = 196, .c1 = -62, .c0 = 25, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1684
{ .chan = 200, .c1 = -62, .c0 = 25, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1685
{ .chan = 204, .c1 = -62, .c0 = 25, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1686
{ .chan = 208, .c1 = -62, .c0 = 25, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1687
{ .chan = 212, .c1 = -62, .c0 = 25, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1688
{ .chan = 216, .c1 = -62, .c0 = 26, },
drivers/net/wireless/broadcom/b43/phy_lp.c
1692
.chan = 0,
drivers/net/wireless/broadcom/b43/phy_lp.c
1853
if (lpphy_5354_iq_table[i].chan == lpphy->channel) {
drivers/net/wireless/broadcom/b43/phy_lp.c
1861
if (lpphy_rev0_1_iq_table[i].chan == lpphy->channel) {
drivers/net/wireless/broadcom/b43/phy_n.c
1236
u16 freq = phy->chandef->chan->center_freq;
drivers/net/wireless/broadcom/b43/phy_n.c
2281
nphy->rssical_chanspec_2G.center_freq = phy->chandef->chan->center_freq;
drivers/net/wireless/broadcom/b43/phy_n.c
2283
nphy->rssical_chanspec_5G.center_freq = phy->chandef->chan->center_freq;
drivers/net/wireless/broadcom/b43/phy_n.c
3051
u16 freq = phy->chandef->chan->center_freq;
drivers/net/wireless/broadcom/b43/phy_n.c
3741
u16 freq = phy->chandef->chan->center_freq;
drivers/net/wireless/broadcom/b43/phy_n.c
3936
if (phy->chandef->chan->flags & IEEE80211_CHAN_NO_IR)
drivers/net/wireless/broadcom/b43/phy_n.c
4053
u16 freq = phy->chandef->chan->center_freq;
drivers/net/wireless/broadcom/b43/phy_n.c
5224
iqcal_chanspec->center_freq = dev->phy.chandef->chan->center_freq;
drivers/net/wireless/broadcom/b43/phy_n.c
5525
phy->chandef->chan->center_freq;
drivers/net/wireless/broadcom/b43/phy_n.c
5563
nphy->txiqlocal_chanspec.center_freq != dev->phy.chandef->chan->center_freq ||
drivers/net/wireless/broadcom/b43/phy_n.c
5834
struct ieee80211_channel *channel = dev->wl->hw->conf.chandef.chan;
drivers/net/wireless/broadcom/b43/phy_n.c
5849
max = INT_TO_Q52(phy->chandef->chan->max_power);
drivers/net/wireless/broadcom/b43/phy_n.c
6629
struct ieee80211_channel *channel = dev->wl->hw->conf.chandef.chan;
drivers/net/wireless/broadcom/b43legacy/main.c
2692
switch (conf->chandef.chan->band) {
drivers/net/wireless/broadcom/b43legacy/main.c
2720
if (conf->chandef.chan->hw_value != phy->channel)
drivers/net/wireless/broadcom/b43legacy/main.c
2721
b43legacy_radio_selectchannel(dev, conf->chandef.chan->hw_value,
drivers/net/wireless/broadcom/b43legacy/main.c
3525
survey->channel = conf->chandef.chan;
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
1816
if (params->chandef.chan)
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
1818
params->chandef.chan->center_freq);
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
1890
if (params->chandef.chan) {
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
1895
params->chandef.chan->center_freq);
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
2383
struct ieee80211_channel *chan = sme->channel;
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
2406
chan = sme->channel_hint;
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
2442
if (chan) {
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
2444
ieee80211_frequency_to_channel(chan->center_freq);
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
2445
chanspec = channel_to_chanspec(&cfg->d11inf, chan);
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
2447
cfg->channel, chan->center_freq, chanspec);
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
333
ch->chan->center_freq, ch->center_freq1, ch->width);
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
335
primary_offset = ch->chan->center_freq - ch->center_freq1;
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
3379
bss_data.chan = ieee80211_get_channel(wiphy, freq);
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
3771
struct ieee80211_channel *chan;
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
3784
chan = ieee80211_get_channel(req->wiphy, freq);
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
3785
if (!chan)
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
3789
if (req->channels[i] == chan)
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
3794
req->channels[i] = chan;
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
385
switch (ch->chan->band) {
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
5145
settings->chandef.chan->hw_value,
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
5537
struct ieee80211_channel *chan = params->chan;
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
5610
if (chan) {
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
5611
hw_ch = cpu_to_le32(chan->hw_value);
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
5768
chandef->chan = ieee80211_get_channel(wiphy, freq);
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
6572
struct ieee80211_channel *chan;
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
6588
chan = ieee80211_get_channel(cfg->wiphy, cfg->channel);
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
6590
cfg80211_ibss_joined(ndev, e->addr, chan, GFP_KERNEL);
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
8119
brcmf_set_channel(struct brcmf_cfg80211_info *cfg, struct ieee80211_channel *chan)
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
8125
if (chan->flags & IEEE80211_CHAN_DISABLED)
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
8129
chspec = channel_to_chanspec(&cfg->d11inf, chan);
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/core.c
106
struct ieee80211_channel *chan = params->chan;
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/core.c
144
if (chan) {
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/core.c
145
hw_ch = cpu_to_le16(chan->hw_value);
drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c
822
struct ieee80211_channel *chan = request->channels[i];
drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c
824
if (chan->flags & (IEEE80211_CHAN_RADAR |
drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c
829
chan);
drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c
831
num_nodfs, chan->hw_value, chanspecs[i]);
drivers/net/wireless/broadcom/brcm80211/brcmfmac/pno.c
277
u16 chan;
drivers/net/wireless/broadcom/brcm80211/brcmfmac/pno.c
285
chan = r->channels[i]->hw_value;
drivers/net/wireless/broadcom/brcm80211/brcmfmac/pno.c
286
brcmf_dbg(SCAN, "[%d] Chan : %u\n", n_chan, chan);
drivers/net/wireless/broadcom/brcm80211/brcmfmac/pno.c
287
pno_cfg->channel_list[n_chan++] = cpu_to_le16(chan);
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
2189
uint chan)
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
2229
hd_info.channel = chan;
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
2237
((BRCMF_CTL_ON() && chan == SDPCM_CONTROL_CHANNEL) ||
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
2238
(BRCMF_DATA_ON() && chan != SDPCM_CONTROL_CHANNEL)))
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
2299
uint chan)
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
2306
ret = brcmf_sdio_txpkt_prep(bus, pktq, chan);
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
541
#define RETRYCHAN(chan) ((chan) == SDPCM_EVENT_CHANNEL)
drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c
377
struct ieee80211_channel *ch = wlc->pub->ieee_hw->conf.chandef.chan;
drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c
402
struct ieee80211_channel *ch = wlc->pub->ieee_hw->conf.chandef.chan;
drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c
404
uint chan;
drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c
422
chan = CHSPEC_CHANNEL(chanspec);
drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c
465
maxpwr_idx = (chan - 1);
drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c
467
maxpwr_idx = CHANNEL_POWER_IDX_5G(chan);
drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c
502
if (chan >= 3 && chan <= 11)
drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c
570
conf->chandef.chan->hw_value);
drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c
5026
ch = wlc->pub->ieee_hw->conf.chandef.chan;
drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c
7763
struct ieee80211_channel *ch = wlc->pub->ieee_hw->conf.chandef.chan;
drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_cmn.c
1144
if (chan_info_all[i].chan == channel)
drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_cmn.c
1160
channel = chan_info_all[i].chan;
drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_cmn.c
1243
if (channel == chan_info_all[i].chan)
drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_cmn.c
1293
wlc_user_txpwr_antport_to_rfport(struct brcms_phy *pi, uint chan, u32 band,
drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_cmn.c
41
u16 chan;
drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_hal.h
204
void wlc_phy_txpower_sromlimit(struct brcms_phy_pub *ppi, uint chan, u8 *_min_,
drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_int.h
1060
u8 wlc_phy_get_chan_freq_range_nphy(struct brcms_phy *pi, uint chan);
drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_int.h
65
#define CHAN5G_FREQ(chan) (5000 + chan*5)
drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_int.h
66
#define CHAN2G_FREQ(chan) (2407 + chan*5)
drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_int.h
972
void wlc_phy_txpower_sromlimit_get_nphy(struct brcms_phy *pi, uint chan,
drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_lcn.c
1327
if (iqcomp[iqcomp_sz].chan ==
drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_lcn.c
157
u8 chan;
drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_lcn.c
1629
if (chan_info_2064_lcnphy[i].chan == channel)
drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_lcn.c
482
uint chan;
drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_n.c
20295
if (chan_info_tbl_p_2[i].chan == channel)
drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_n.c
20299
if (chan_info_tbl_p_0[i].chan == channel)
drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_n.c
20354
if (chan_info_tbl_p_1[i].chan == channel)
drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_n.c
20366
if (chan_info_nphy_2055[i].chan == channel)
drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_n.c
280
u16 chan;
drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_n.c
28518
wlc_phy_txpower_sromlimit_get_nphy(struct brcms_phy *pi, uint chan, u8 *max_pwr,
drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_n.c
28523
chan_freq_range = wlc_phy_get_chan_freq_range_nphy(pi, chan);
drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_n.c
314
u16 chan;
drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_n.c
362
u16 chan;
drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_n.c
401
u16 chan;
drivers/net/wireless/intel/ipw2x00/ipw2100.c
1974
u32 chan;
drivers/net/wireless/intel/ipw2x00/ipw2100.c
2003
ret = ipw2100_get_ordinal(priv, IPW_ORD_OUR_FREQ, &chan, &len);
drivers/net/wireless/intel/ipw2x00/ipw2100.c
2040
txratename, chan, bssid);
drivers/net/wireless/intel/ipw2x00/ipw2100.c
2047
priv->channel = chan;
drivers/net/wireless/intel/ipw2x00/ipw2100.c
4087
u32 chan = 0;
drivers/net/wireless/intel/ipw2x00/ipw2100.c
4112
ret = ipw2100_get_ordinal(priv, IPW_ORD_OUR_FREQ, &chan, &length);
drivers/net/wireless/intel/ipw2x00/ipw2100.c
4119
out += sprintf(out, "Channel: %d\n", chan);
drivers/net/wireless/intel/iwlegacy/3945-mac.c
1486
struct ieee80211_channel *chan;
drivers/net/wireless/intel/iwlegacy/3945-mac.c
1504
chan = il->scan_request->channels[i];
drivers/net/wireless/intel/iwlegacy/3945-mac.c
1506
if (chan->band != band)
drivers/net/wireless/intel/iwlegacy/3945-mac.c
1509
scan_ch->channel = chan->hw_value;
drivers/net/wireless/intel/iwlegacy/3945-mac.c
1524
(chan->flags & IEEE80211_CHAN_NO_IR)) {
drivers/net/wireless/intel/iwlegacy/3945-rs.c
335
sband = hw->wiphy->bands[conf->chandef.chan->band];
drivers/net/wireless/intel/iwlegacy/3945.c
1389
u16 chan;
drivers/net/wireless/intel/iwlegacy/3945.c
1396
chan = le16_to_cpu(il->active.channel);
drivers/net/wireless/intel/iwlegacy/3945.c
1399
ch_info = il_get_channel_info(il, il->band, chan);
drivers/net/wireless/intel/iwlegacy/3945.c
1401
IL_ERR("Failed to get channel info for channel %d [%d]\n", chan,
drivers/net/wireless/intel/iwlegacy/4965-mac.c
5160
int i, chan;
drivers/net/wireless/intel/iwlegacy/4965-mac.c
5183
for (chan = 0; chan < FH49_TCSR_CHNL_NUM; chan++)
drivers/net/wireless/intel/iwlegacy/4965-mac.c
5184
il_wr(il, FH49_TCSR_CHNL_TX_CONFIG_REG(chan),
drivers/net/wireless/intel/iwlegacy/4965-mac.c
6052
struct ieee80211_channel *channel = ch_switch->chandef.chan;
drivers/net/wireless/intel/iwlegacy/4965-mac.c
760
struct ieee80211_channel *chan;
drivers/net/wireless/intel/iwlegacy/4965-mac.c
779
chan = il->scan_request->channels[i];
drivers/net/wireless/intel/iwlegacy/4965-mac.c
781
if (chan->band != band)
drivers/net/wireless/intel/iwlegacy/4965-mac.c
784
channel = chan->hw_value;
drivers/net/wireless/intel/iwlegacy/4965-mac.c
795
(chan->flags & IEEE80211_CHAN_NO_IR))
drivers/net/wireless/intel/iwlegacy/4965-rs.c
2275
sband = hw->wiphy->bands[conf->chandef.chan->band];
drivers/net/wireless/intel/iwlegacy/4965.c
1481
ch = ch_switch->chandef.chan->hw_value;
drivers/net/wireless/intel/iwlegacy/common.c
4993
struct ieee80211_channel *channel = conf->chandef.chan;
drivers/net/wireless/intel/iwlwifi/dvm/devices.c
409
ch = ch_switch->chandef.chan->hw_value;
drivers/net/wireless/intel/iwlwifi/dvm/devices.c
445
ch_switch->chandef.chan->flags & IEEE80211_CHAN_RADAR;
drivers/net/wireless/intel/iwlwifi/dvm/devices.c
577
ch = ch_switch->chandef.chan->hw_value;
drivers/net/wireless/intel/iwlwifi/dvm/devices.c
613
ch_switch->chandef.chan->flags & IEEE80211_CHAN_RADAR;
drivers/net/wireless/intel/iwlwifi/dvm/eeprom.c
341
struct ieee80211_channel *chan = &data->channels[ch_idx];
drivers/net/wireless/intel/iwlwifi/dvm/eeprom.c
344
if (txp->channel != 0 && chan->hw_value != txp->channel)
drivers/net/wireless/intel/iwlwifi/dvm/eeprom.c
348
if (band != chan->band)
drivers/net/wireless/intel/iwlwifi/dvm/eeprom.c
351
if (chan->max_power < max_txpower_avg &&
drivers/net/wireless/intel/iwlwifi/dvm/eeprom.c
353
chan->max_power = max_txpower_avg;
drivers/net/wireless/intel/iwlwifi/dvm/eeprom.c
473
struct ieee80211_channel *chan = NULL;
drivers/net/wireless/intel/iwlwifi/dvm/eeprom.c
481
chan = &data->channels[i];
drivers/net/wireless/intel/iwlwifi/dvm/eeprom.c
485
if (!chan)
drivers/net/wireless/intel/iwlwifi/dvm/eeprom.c
504
chan->flags &= ~clear_ht40_extension_channel;
drivers/net/wireless/intel/iwlwifi/dvm/mac80211.c
924
struct ieee80211_channel *channel = ch_switch->chandef.chan;
drivers/net/wireless/intel/iwlwifi/dvm/rs.c
2753
sband = hw->wiphy->bands[conf->chandef.chan->band];
drivers/net/wireless/intel/iwlwifi/dvm/rxon.c
1157
struct ieee80211_channel *channel = conf->chandef.chan;
drivers/net/wireless/intel/iwlwifi/dvm/rxon.c
63
cpu_to_le16(priv->hw->conf.chandef.chan->hw_value);
drivers/net/wireless/intel/iwlwifi/dvm/rxon.c
64
priv->band = priv->hw->conf.chandef.chan->band;
drivers/net/wireless/intel/iwlwifi/dvm/rxon.c
927
sband = priv->hw->wiphy->bands[priv->hw->conf.chandef.chan->band];
drivers/net/wireless/intel/iwlwifi/dvm/scan.c
494
struct ieee80211_channel *chan;
drivers/net/wireless/intel/iwlwifi/dvm/scan.c
512
chan = priv->scan_request->channels[i];
drivers/net/wireless/intel/iwlwifi/dvm/scan.c
514
if (chan->band != band)
drivers/net/wireless/intel/iwlwifi/dvm/scan.c
517
channel = chan->hw_value;
drivers/net/wireless/intel/iwlwifi/dvm/scan.c
520
if (!is_active || (chan->flags & IEEE80211_CHAN_NO_IR))
drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c
240
int chan, u32 flags)
drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c
247
chan, flags);
drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c
254
chan, flags,
drivers/net/wireless/intel/iwlwifi/iwl-nvm-utils.c
17
struct ieee80211_channel *chan = &data->channels[0];
drivers/net/wireless/intel/iwlwifi/iwl-nvm-utils.c
20
while (idx < n_channels && chan->band != band)
drivers/net/wireless/intel/iwlwifi/iwl-nvm-utils.c
21
chan = &data->channels[++idx];
drivers/net/wireless/intel/iwlwifi/iwl-nvm-utils.c
25
while (idx < n_channels && chan->band == band) {
drivers/net/wireless/intel/iwlwifi/iwl-nvm-utils.c
26
chan = &data->channels[++idx];
drivers/net/wireless/intel/iwlwifi/mld/ap.c
111
if (WARN_ON(!ctx || !ctx->def.chan))
drivers/net/wireless/intel/iwlwifi/mld/ap.c
114
enable_fils = cfg80211_channel_is_psc(ctx->def.chan) ||
drivers/net/wireless/intel/iwlwifi/mld/ap.c
115
(ctx->def.chan->band == NL80211_BAND_6GHZ &&
drivers/net/wireless/intel/iwlwifi/mld/ap.c
127
ctx->def.chan->band);
drivers/net/wireless/intel/iwlwifi/mld/debugfs.c
736
ctx->def.chan->band));
drivers/net/wireless/intel/iwlwifi/mld/ftm-initiator.c
117
target->band = iwl_mld_nl80211_band_to_fw(peer->chandef.chan->band);
drivers/net/wireless/intel/iwlwifi/mld/ftm-initiator.c
68
u32 freq = peer->chandef.chan->center_freq;
drivers/net/wireless/intel/iwlwifi/mld/iface.c
780
if (!link->chanreq.oper.chan ||
drivers/net/wireless/intel/iwlwifi/mld/iface.c
781
link->chanreq.oper.chan->band != NL80211_BAND_2GHZ ||
drivers/net/wireless/intel/iwlwifi/mld/link.c
1041
if (WARN_ONCE(link_conf->chanreq.oper.chan->band != NL80211_BAND_6GHZ,
drivers/net/wireless/intel/iwlwifi/mld/link.c
1043
link_conf->chanreq.oper.chan->band))
drivers/net/wireless/intel/iwlwifi/mld/link.c
1097
primary_idx = (chandef->chan->center_freq - start_freq - 10) / 20;
drivers/net/wireless/intel/iwlwifi/mld/link.c
1121
if (WARN_ONCE(link_conf->chanreq.oper.chan->band != NL80211_BAND_6GHZ,
drivers/net/wireless/intel/iwlwifi/mld/link.c
1123
link_conf->chanreq.oper.chan->band))
drivers/net/wireless/intel/iwlwifi/mld/link.c
1248
band = link_conf->chanreq.oper.chan->band;
drivers/net/wireless/intel/iwlwifi/mld/link.c
94
mld->hw->wiphy->bands[chandef->chan->band];
drivers/net/wireless/intel/iwlwifi/mld/link.c
991
enum nl80211_band band = link_conf->chanreq.oper.chan->band;
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1071
if (chandef->chan == phy->chandef.chan &&
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1102
control_start = chandef->chan->center_freq - 10;
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1726
if (WARN_ON_ONCE(!link_conf->chanreq.oper.chan))
drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
1729
if (!(link_conf->chanreq.oper.chan->flags & IEEE80211_CHAN_RADAR)) {
drivers/net/wireless/intel/iwlwifi/mld/mlo.c
1051
if (WARN_ON(!link->chanreq.oper.chan))
drivers/net/wireless/intel/iwlwifi/mld/mlo.c
1054
if (link->chanreq.oper.chan->band == NL80211_BAND_2GHZ) {
drivers/net/wireless/intel/iwlwifi/mld/mlo.c
661
if (WARN_ON(chandef->chan->band != NL80211_BAND_2GHZ &&
drivers/net/wireless/intel/iwlwifi/mld/mlo.c
662
chandef->chan->band != NL80211_BAND_5GHZ &&
drivers/net/wireless/intel/iwlwifi/mld/mlo.c
663
chandef->chan->band != NL80211_BAND_6GHZ))
drivers/net/wireless/intel/iwlwifi/mld/mlo.c
703
if (link->chandef->chan->band == NL80211_BAND_2GHZ && mld->bt_is_active)
drivers/net/wireless/intel/iwlwifi/mld/mlo.c
853
if (a->chandef->chan->band == b->chandef->chan->band) {
drivers/net/wireless/intel/iwlwifi/mld/mlo.c
858
if (c_low->chan->center_freq > c_high->chan->center_freq)
drivers/net/wireless/intel/iwlwifi/mld/mlo.c
866
if (a->chandef->chan->band == NL80211_BAND_5GHZ &&
drivers/net/wireless/intel/iwlwifi/mld/nan.c
191
if (conf->band_cfgs[NL80211_BAND_5GHZ].chan) {
drivers/net/wireless/intel/iwlwifi/mld/nan.c
193
conf->band_cfgs[NL80211_BAND_5GHZ].chan->hw_value;
drivers/net/wireless/intel/iwlwifi/mld/nan.c
398
struct ieee80211_channel *chan;
drivers/net/wireless/intel/iwlwifi/mld/nan.c
417
chan = ieee80211_get_channel(mld->wiphy, 2437);
drivers/net/wireless/intel/iwlwifi/mld/nan.c
421
chan = ieee80211_get_channel(mld->wiphy, 5745);
drivers/net/wireless/intel/iwlwifi/mld/nan.c
430
if (WARN_ON_ONCE(!chan))
drivers/net/wireless/intel/iwlwifi/mld/nan.c
434
cfg80211_next_nan_dw_notif(wdev, chan, GFP_KERNEL);
drivers/net/wireless/intel/iwlwifi/mld/nan.c
722
if (!sched_cfg->channels[i].chanreq.oper.chan)
drivers/net/wireless/intel/iwlwifi/mld/nan.c
804
if (!sched_cfg->channels[i].chanreq.oper.chan)
drivers/net/wireless/intel/iwlwifi/mld/nan.c
964
struct ieee80211_nan_channel *chan;
drivers/net/wireless/intel/iwlwifi/mld/nan.c
967
chan = sched->maps[i].slots[slot];
drivers/net/wireless/intel/iwlwifi/mld/nan.c
968
if (!chan)
drivers/net/wireless/intel/iwlwifi/mld/nan.c
971
ctx = chan->chanctx_conf;
drivers/net/wireless/intel/iwlwifi/mld/nan.c
999
chan->channel_entry,
drivers/net/wireless/intel/iwlwifi/mld/phy.c
132
return _iwl_mld_get_fw_ctrl_pos(chandef->chan->center_freq,
drivers/net/wireless/intel/iwlwifi/mld/phy.c
146
.ci.channel = cpu_to_le32(chandef->chan->hw_value),
drivers/net/wireless/intel/iwlwifi/mld/phy.c
147
.ci.band = iwl_mld_nl80211_band_to_fw(chandef->chan->band),
drivers/net/wireless/intel/iwlwifi/mld/phy.c
153
if (ctx->ap.chan) {
drivers/net/wireless/intel/iwlwifi/mld/phy.c
37
return cfg80211_channel_is_psc(ctx->def.chan) ||
drivers/net/wireless/intel/iwlwifi/mld/phy.c
38
(ctx->def.chan->band == NL80211_BAND_6GHZ &&
drivers/net/wireless/intel/iwlwifi/mld/power.c
492
if (link->chanreq.oper.chan->band != NL80211_BAND_6GHZ)
drivers/net/wireless/intel/iwlwifi/mld/power.c
88
return chanctx_conf->def.chan->flags & IEEE80211_CHAN_RADAR;
drivers/net/wireless/intel/iwlwifi/mld/scan.c
1982
channels[n_channels++] = link_conf->chanreq.oper.chan;
drivers/net/wireless/intel/iwlwifi/mld/sta.c
498
is_6ghz = link->chanreq.oper.chan->band == NL80211_BAND_6GHZ;
drivers/net/wireless/intel/iwlwifi/mld/tests/link.c
522
link_conf->chanreq.oper.chan = &chan_6ghz;
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.h
88
.chan = &(_channel), \
drivers/net/wireless/intel/iwlwifi/mld/tlc.c
566
band = chan_ctx->def.chan->band;
drivers/net/wireless/intel/iwlwifi/mld/tlc.c
753
band = chandef->chan->band;
drivers/net/wireless/intel/iwlwifi/mld/tlc.c
834
if (WARN_ON(!link || !link->chanreq.oper.chan))
drivers/net/wireless/intel/iwlwifi/mld/tlc.c
837
band = link->chanreq.oper.chan->band;
drivers/net/wireless/intel/iwlwifi/mld/tx.c
334
if (link_conf->chanreq.oper.chan)
drivers/net/wireless/intel/iwlwifi/mld/tx.c
335
*band = link_conf->chanreq.oper.chan->band;
drivers/net/wireless/intel/iwlwifi/mvm/coex.c
112
chanctx_conf->def.chan->band != NL80211_BAND_2GHZ) {
drivers/net/wireless/intel/iwlwifi/mvm/coex.c
288
chanctx_conf->def.chan->band != NL80211_BAND_2GHZ)) {
drivers/net/wireless/intel/iwlwifi/mvm/coex.c
465
struct ieee80211_chanctx_conf *chan = data.primary;
drivers/net/wireless/intel/iwlwifi/mvm/coex.c
466
if (WARN_ON(!chan->def.chan)) {
drivers/net/wireless/intel/iwlwifi/mvm/coex.c
471
if (chan->def.width < NL80211_CHAN_WIDTH_40) {
drivers/net/wireless/intel/iwlwifi/mvm/coex.c
474
if (chan->def.center_freq1 >
drivers/net/wireless/intel/iwlwifi/mvm/coex.c
475
chan->def.chan->center_freq)
drivers/net/wireless/intel/iwlwifi/mvm/coex.c
482
iwl_ci_mask[chan->def.chan->hw_value][ci_bw_idx];
drivers/net/wireless/intel/iwlwifi/mvm/coex.c
488
struct ieee80211_chanctx_conf *chan = data.secondary;
drivers/net/wireless/intel/iwlwifi/mvm/coex.c
489
if (WARN_ON(!data.secondary->def.chan)) {
drivers/net/wireless/intel/iwlwifi/mvm/coex.c
494
if (chan->def.width < NL80211_CHAN_WIDTH_40) {
drivers/net/wireless/intel/iwlwifi/mvm/coex.c
497
if (chan->def.center_freq1 >
drivers/net/wireless/intel/iwlwifi/mvm/coex.c
498
chan->def.chan->center_freq)
drivers/net/wireless/intel/iwlwifi/mvm/coex.c
505
iwl_ci_mask[chan->def.chan->hw_value][ci_bw_idx];
drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c
222
u32 freq = peer->chandef.chan->center_freq;
drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c
257
u32 freq = peer->chandef.chan->center_freq;
drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c
875
iwl_mvm_phy_band_from_nl80211(peer->chandef.chan->band);
drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c
931
iwl_mvm_phy_band_from_nl80211(peer->chandef.chan->band);
drivers/net/wireless/intel/iwlwifi/mvm/ftm-responder.c
131
.channel_num = chandef->chan->hw_value,
drivers/net/wireless/intel/iwlwifi/mvm/ftm-responder.c
146
iwl_mvm_phy_band_from_nl80211(chandef->chan->band);
drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c
1082
if (cfg80211_channel_is_psc(ctx->def.chan))
drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c
1085
return (ctx->def.chan->band == NL80211_BAND_6GHZ &&
drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c
1106
channel = ieee80211_frequency_to_channel(ctx->def.chan->center_freq);
drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c
892
if (link_conf->chanreq.oper.chan)
drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c
893
band = link_conf->chanreq.oper.chan->band;
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
1646
control_start = chandef->chan->center_freq - 10;
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
3509
if (WARN_ON_ONCE(!link_conf->chanreq.oper.chan ||
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
3513
if (!(link_conf->chanreq.oper.chan->flags & IEEE80211_CHAN_RADAR)) {
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
3578
if (!vif->bss_conf.chanreq.oper.chan)
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
3581
conn_info.channel = vif->bss_conf.chanreq.oper.chan->hw_value;
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
5496
mvmvif->csa_target_freq = chsw->chandef.chan->center_freq;
drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c
379
if (bss_conf->chanreq.oper.chan->band != NL80211_BAND_6GHZ)
drivers/net/wireless/intel/iwlwifi/mvm/mvm.h
2562
u32 chan, u8 band, u8 width,
drivers/net/wireless/intel/iwlwifi/mvm/mvm.h
2566
ci->channel = cpu_to_le32(chan);
drivers/net/wireless/intel/iwlwifi/mvm/mvm.h
2574
ci_v1->channel = chan;
drivers/net/wireless/intel/iwlwifi/mvm/mvm.h
2586
enum nl80211_band band = chandef->chan->band;
drivers/net/wireless/intel/iwlwifi/mvm/mvm.h
2588
iwl_mvm_set_chan_info(mvm, ci, chandef->chan->hw_value,
drivers/net/wireless/intel/iwlwifi/mvm/ops.c
163
if (!vif->bss_conf.chanreq.oper.chan ||
drivers/net/wireless/intel/iwlwifi/mvm/ops.c
164
vif->bss_conf.chanreq.oper.chan->band != NL80211_BAND_2GHZ ||
drivers/net/wireless/intel/iwlwifi/mvm/phy-ctxt.c
144
chandef->chan->band));
drivers/net/wireless/intel/iwlwifi/mvm/phy-ctxt.c
271
ctxt->channel = chandef->chan;
drivers/net/wireless/intel/iwlwifi/mvm/phy-ctxt.c
321
ctxt->channel == chandef->chan &&
drivers/net/wireless/intel/iwlwifi/mvm/phy-ctxt.c
329
ctxt->channel->band != chandef->chan->band) {
drivers/net/wireless/intel/iwlwifi/mvm/phy-ctxt.c
343
ctxt->channel = chandef->chan;
drivers/net/wireless/intel/iwlwifi/mvm/phy-ctxt.c
38
int offs = chandef->chan->center_freq - chandef->center_freq1;
drivers/net/wireless/intel/iwlwifi/mvm/power.c
294
return chanctx_conf->def.chan->flags & IEEE80211_CHAN_RADAR;
drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c
524
if (WARN_ON_ONCE(!link_conf->chanreq.oper.chan))
drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c
527
if (link_conf->chanreq.oper.chan->band == NL80211_BAND_6GHZ) {
drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c
537
} else if (link_conf->chanreq.oper.chan->band == NL80211_BAND_2GHZ &&
drivers/net/wireless/intel/iwlwifi/mvm/rs.c
1992
band = chanctx_conf->def.chan->band;
drivers/net/wireless/intel/iwlwifi/mvm/scan.c
2785
struct ieee80211_channel *chan;
drivers/net/wireless/intel/iwlwifi/mvm/scan.c
2802
chan = ieee80211_get_channel(mvm->hw->wiphy,
drivers/net/wireless/intel/iwlwifi/mvm/scan.c
2805
if (!chan) {
drivers/net/wireless/intel/iwlwifi/mvm/scan.c
2819
params->channels[i] = chan;
drivers/net/wireless/intel/iwlwifi/mvm/sta.c
211
mvm_sta->vif->bss_conf.chanreq.oper.chan->band == NL80211_BAND_6GHZ)
drivers/net/wireless/intel/iwlwifi/mvm/sta.c
74
if (link_conf->chanreq.oper.chan->band == NL80211_BAND_6GHZ) {
drivers/net/wireless/intel/iwlwifi/mvm/tdls.c
376
mvm->tdls_cs.peer.chandef.chan) {
drivers/net/wireless/intel/iwlwifi/mvm/tdls.c
512
sta->addr, chandef->chan->center_freq, chandef->width);
drivers/net/wireless/intel/iwlwifi/mvm/tx.c
2054
tx_info->band = chanctx_conf->def.chan->band;
drivers/net/wireless/intel/iwlwifi/mvm/tx.c
885
band = mvmsta->vif->bss_conf.chanreq.oper.chan->band;
drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/tx.c
484
int chan;
drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/tx.c
520
for (chan = 0; chan < FH_TCSR_CHNL_NUM; chan++)
drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/tx.c
521
iwl_write_direct32(trans, FH_TCSR_CHNL_TX_CONFIG_REG(chan),
drivers/net/wireless/intersil/p54/eeprom.c
172
struct p54_channel_entry *chan = &list->channels[i];
drivers/net/wireless/intersil/p54/eeprom.c
175
if (chan->band != band)
drivers/net/wireless/intersil/p54/eeprom.c
178
if (chan->data != CHAN_HAS_ALL) {
drivers/net/wireless/intersil/p54/eeprom.c
181
(chan->data & CHAN_HAS_CAL ? "" :
drivers/net/wireless/intersil/p54/eeprom.c
183
(chan->data & CHAN_HAS_LIMIT ? "" :
drivers/net/wireless/intersil/p54/eeprom.c
185
(chan->data & CHAN_HAS_CURVE ? "" :
drivers/net/wireless/intersil/p54/eeprom.c
187
chan->index, chan->freq);
drivers/net/wireless/intersil/p54/eeprom.c
191
dest->band = chan->band;
drivers/net/wireless/intersil/p54/eeprom.c
192
dest->center_freq = chan->freq;
drivers/net/wireless/intersil/p54/eeprom.c
193
dest->max_power = chan->max_power;
drivers/net/wireless/intersil/p54/fwio.c
403
__le16 freq = cpu_to_le16(priv->hw->conf.chandef.chan->center_freq);
drivers/net/wireless/intersil/p54/fwio.c
482
struct p54_scan_body *chan = &body->normal;
drivers/net/wireless/intersil/p54/fwio.c
487
chan->pa_points_per_curve = 8;
drivers/net/wireless/intersil/p54/fwio.c
488
memset(chan->curve_data, 0, sizeof(chan->curve_data));
drivers/net/wireless/intersil/p54/fwio.c
489
memcpy(chan->curve_data, entry,
drivers/net/wireless/intersil/p54/fwio.c
533
priv->hw->conf.chandef.chan->center_freq));
drivers/net/wireless/intersil/p54/main.c
301
struct ieee80211_channel *chan = priv->curchan;
drivers/net/wireless/intersil/p54/main.c
303
if (chan) {
drivers/net/wireless/intersil/p54/main.c
304
struct survey_info *info = &priv->survey[chan->hw_value];
drivers/net/wireless/intersil/p54/main.c
341
priv->curchan = priv->hw->conf.chandef.chan;
drivers/net/wireless/intersil/p54/main.c
477
if (dev->conf.chandef.chan->band == NL80211_BAND_5GHZ)
drivers/net/wireless/intersil/p54/main.c
610
struct ieee80211_channel *chan;
drivers/net/wireless/intersil/p54/main.c
619
chan = priv->curchan;
drivers/net/wireless/intersil/p54/main.c
620
if (chan && chan->hw_value == idx) {
drivers/net/wireless/intersil/p54/txrx.c
357
if (priv->hw->conf.chandef.chan->band == NL80211_BAND_5GHZ)
drivers/net/wireless/intersil/p54/txrx.c
363
rx_status->band = priv->hw->conf.chandef.chan->band;
drivers/net/wireless/intersil/p54/txrx.c
530
struct ieee80211_channel *chan;
drivers/net/wireless/intersil/p54/txrx.c
601
chan = priv->curchan;
drivers/net/wireless/intersil/p54/txrx.c
602
if (chan) {
drivers/net/wireless/intersil/p54/txrx.c
603
struct survey_info *survey = &priv->survey[chan->hw_value];
drivers/net/wireless/marvell/libertas/cfg.c
1727
*fake++ = params->chandef.chan->hw_value;
drivers/net/wireless/marvell/libertas/cfg.c
1748
params->chandef.chan,
drivers/net/wireless/marvell/libertas/cfg.c
1758
cfg80211_ibss_joined(priv->dev, bssid, params->chandef.chan,
drivers/net/wireless/marvell/libertas/cfg.c
1824
cmd.bss.ds.channel = params->chandef.chan->hw_value;
drivers/net/wireless/marvell/libertas/cfg.c
1938
cmd.ds.channel = params->chandef.chan->hw_value;
drivers/net/wireless/marvell/libertas/cfg.c
1979
if (!params->chandef.chan) {
drivers/net/wireless/marvell/libertas/cfg.c
1984
ret = lbs_set_channel(priv, params->chandef.chan->hw_value);
drivers/net/wireless/marvell/libertas/cfg.c
1990
bss = cfg80211_get_bss(wiphy, params->chandef.chan, params->bssid,
drivers/net/wireless/marvell/libertas/cfg.c
498
ret = lbs_set_channel(priv, chandef->chan->hw_value);
drivers/net/wireless/marvell/libertas/mesh.c
128
action, priv->mesh_tlv, chan, ie->val.mesh_id_len,
drivers/net/wireless/marvell/libertas/mesh.c
87
uint16_t chan)
drivers/net/wireless/marvell/libertas/mesh.c
94
cmd.channel = cpu_to_le16(chan);
drivers/net/wireless/marvell/libertas_tf/cmd.c
54
#define CHAN_TO_IDX(chan) ((chan) - 1)
drivers/net/wireless/marvell/libertas_tf/main.c
346
if (conf->chandef.chan->center_freq != priv->cur_freq) {
drivers/net/wireless/marvell/libertas_tf/main.c
347
priv->cur_freq = conf->chandef.chan->center_freq;
drivers/net/wireless/marvell/libertas_tf/main.c
348
lbtf_set_channel(priv, conf->chandef.chan->hw_value);
drivers/net/wireless/marvell/libertas_tf/main.c
468
survey->channel = conf->chandef.chan;
drivers/net/wireless/marvell/mwifiex/11h.c
145
cr_req->chan_desc.chan_num = radar_params->chandef->chan->hw_value;
drivers/net/wireless/marvell/mwifiex/11h.c
152
radar_params->chandef->chan->hw_value);
drivers/net/wireless/marvell/mwifiex/11h.c
220
priv->dfs_chandef.chan->hw_value);
drivers/net/wireless/marvell/mwifiex/11h.c
52
constraint->chan = bss_desc->channel;
drivers/net/wireless/marvell/mwifiex/11n.c
338
struct ieee80211_channel *chan =
drivers/net/wireless/marvell/mwifiex/11n.c
343
if (chan->flags & IEEE80211_CHAN_NO_HT40PLUS) {
drivers/net/wireless/marvell/mwifiex/11n.c
352
if (chan->flags & IEEE80211_CHAN_NO_HT40MINUS) {
drivers/net/wireless/marvell/mwifiex/11n.c
808
u8 mwifiex_get_sec_chan_offset(int chan)
drivers/net/wireless/marvell/mwifiex/11n.c
812
switch (chan) {
drivers/net/wireless/marvell/mwifiex/11n.h
54
u8 mwifiex_get_sec_chan_offset(int chan);
drivers/net/wireless/marvell/mwifiex/cfg80211.c
1617
u32 chan = priv->curr_bss_params.bss_descriptor.channel;
drivers/net/wireless/marvell/mwifiex/cfg80211.c
1621
ieee80211_channel_to_frequency(chan, band));
drivers/net/wireless/marvell/mwifiex/cfg80211.c
2217
struct ieee80211_channel *chan;
drivers/net/wireless/marvell/mwifiex/cfg80211.c
2235
chan = ieee80211_get_channel(priv->wdev.wiphy,
drivers/net/wireless/marvell/mwifiex/cfg80211.c
2239
bss = cfg80211_inform_bss(priv->wdev.wiphy, chan,
drivers/net/wireless/marvell/mwifiex/cfg80211.c
2526
if (params->chandef.chan->band == NL80211_BAND_2GHZ) {
drivers/net/wireless/marvell/mwifiex/cfg80211.c
2576
params->chandef.chan->center_freq);
drivers/net/wireless/marvell/mwifiex/cfg80211.c
2613
params->chandef.chan, NULL,
drivers/net/wireless/marvell/mwifiex/cfg80211.c
2618
params->chandef.chan, GFP_KERNEL);
drivers/net/wireless/marvell/mwifiex/cfg80211.c
2665
struct ieee80211_channel *chan;
drivers/net/wireless/marvell/mwifiex/cfg80211.c
2721
chan = request->channels[i];
drivers/net/wireless/marvell/mwifiex/cfg80211.c
2722
user_scan_cfg->chan_list[i].chan_number = chan->hw_value;
drivers/net/wireless/marvell/mwifiex/cfg80211.c
2723
user_scan_cfg->chan_list[i].radio_type = chan->band;
drivers/net/wireless/marvell/mwifiex/cfg80211.c
2725
if ((chan->flags & IEEE80211_CHAN_NO_IR) || !request->n_ssids)
drivers/net/wireless/marvell/mwifiex/cfg80211.c
2776
struct ieee80211_channel *chan;
drivers/net/wireless/marvell/mwifiex/cfg80211.c
2819
chan = request->channels[i];
drivers/net/wireless/marvell/mwifiex/cfg80211.c
2820
bgscan_cfg->chan_list[i].chan_number = chan->hw_value;
drivers/net/wireless/marvell/mwifiex/cfg80211.c
2821
bgscan_cfg->chan_list[i].radio_type = chan->band;
drivers/net/wireless/marvell/mwifiex/cfg80211.c
2823
if ((chan->flags & IEEE80211_CHAN_NO_IR) || !request->n_ssids)
drivers/net/wireless/marvell/mwifiex/cfg80211.c
306
struct ieee80211_channel *chan,
drivers/net/wireless/marvell/mwifiex/cfg80211.c
313
if (!chan || !cookie) {
drivers/net/wireless/marvell/mwifiex/cfg80211.c
325
ret = mwifiex_remain_on_chan_cfg(priv, HostCmd_ACT_GEN_SET, chan,
drivers/net/wireless/marvell/mwifiex/cfg80211.c
331
priv->roc_cfg.chan = *chan;
drivers/net/wireless/marvell/mwifiex/cfg80211.c
333
cfg80211_ready_on_channel(wdev, *cookie, chan,
drivers/net/wireless/marvell/mwifiex/cfg80211.c
357
&priv->roc_cfg.chan, 0);
drivers/net/wireless/marvell/mwifiex/cfg80211.c
361
&priv->roc_cfg.chan,
drivers/net/wireless/marvell/mwifiex/cfg80211.c
3916
u16 chan;
drivers/net/wireless/marvell/mwifiex/cfg80211.c
3944
chan = chandef->chan->hw_value;
drivers/net/wireless/marvell/mwifiex/cfg80211.c
3945
second_chan_offset = mwifiex_get_sec_chan_offset(chan);
drivers/net/wireless/marvell/mwifiex/cfg80211.c
3946
band = chandef->chan->band;
drivers/net/wireless/marvell/mwifiex/cfg80211.c
3947
mwifiex_start_tdls_cs(priv, addr, chan, second_chan_offset, band);
drivers/net/wireless/marvell/mwifiex/cfg80211.c
4091
struct ieee80211_channel *chan;
drivers/net/wireless/marvell/mwifiex/cfg80211.c
4105
chan = ieee80211_get_channel(wiphy, freq);
drivers/net/wireless/marvell/mwifiex/cfg80211.c
4109
cfg80211_chandef_create(chandef, chan, chan_type);
drivers/net/wireless/marvell/mwifiex/cfg80211.c
4111
cfg80211_chandef_create(chandef, chan,
drivers/net/wireless/marvell/mwifiex/cfg80211.c
4344
priv->roc_cfg.chan = *req->bss->channel;
drivers/net/wireless/marvell/mwifiex/cfg80211.c
4461
&priv->roc_cfg.chan, 0);
drivers/net/wireless/marvell/mwifiex/cfg80211.c
641
struct ieee80211_channel *chan;
drivers/net/wireless/marvell/mwifiex/cfg80211.c
649
chan = &sband->channels[i];
drivers/net/wireless/marvell/mwifiex/cfg80211.c
650
if ((!(chan->flags & IEEE80211_CHAN_DISABLED)) &&
drivers/net/wireless/marvell/mwifiex/cfg80211.c
651
(chan->flags & IEEE80211_CHAN_RADAR))
drivers/net/wireless/marvell/mwifiex/cfg80211.c
652
chan->flags |= IEEE80211_CHAN_NO_IR;
drivers/net/wireless/marvell/mwifiex/fw.h
1777
u8 chan;
drivers/net/wireless/marvell/mwifiex/main.h
1501
struct ieee80211_channel *chan,
drivers/net/wireless/marvell/mwifiex/main.h
492
struct ieee80211_channel chan;
drivers/net/wireless/marvell/mwifiex/scan.c
1840
struct ieee80211_channel *chan;
drivers/net/wireless/marvell/mwifiex/scan.c
1859
chan = ieee80211_get_channel(priv->wdev.wiphy, freq);
drivers/net/wireless/marvell/mwifiex/scan.c
1861
if (chan && !(chan->flags & IEEE80211_CHAN_DISABLED)) {
drivers/net/wireless/marvell/mwifiex/scan.c
1863
chan, CFG80211_BSS_FTYPE_UNKNOWN,
drivers/net/wireless/marvell/mwifiex/scan.c
1878
if ((chan->flags & IEEE80211_CHAN_RADAR) ||
drivers/net/wireless/marvell/mwifiex/scan.c
1879
(chan->flags & IEEE80211_CHAN_NO_IR)) {
drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c
1060
u8 chan;
drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c
1063
chan = *buf++;
drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c
1064
if (!chan) {
drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c
1069
band = (chan <= 14) ? NL80211_BAND_2GHZ : NL80211_BAND_5GHZ;
drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c
1070
freq = ieee80211_channel_to_frequency(chan, band);
drivers/net/wireless/marvell/mwifiex/sta_event.c
1021
&priv->roc_cfg.chan,
drivers/net/wireless/marvell/mwifiex/sta_ioctl.c
1207
struct ieee80211_channel *chan,
drivers/net/wireless/marvell/mwifiex/sta_ioctl.c
1216
roc_cfg.band_cfg = chan->band;
drivers/net/wireless/marvell/mwifiex/sta_ioctl.c
1221
ieee80211_frequency_to_channel(chan->center_freq);
drivers/net/wireless/marvell/mwifiex/uap_cmd.c
1010
if (chandef.center_freq1 < chandef.chan->center_freq)
drivers/net/wireless/marvell/mwifiex/uap_cmd.c
983
chandef.chan->center_freq);
drivers/net/wireless/marvell/mwifiex/uap_cmd.c
986
if (chandef.chan->band == NL80211_BAND_2GHZ) {
drivers/net/wireless/marvell/mwifiex/uap_event.c
336
&priv->roc_cfg.chan,
drivers/net/wireless/marvell/mwifiex/util.c
389
priv->bss_chandef.chan->center_freq,
drivers/net/wireless/marvell/mwifiex/util.c
510
cfg80211_rx_mgmt(&priv->wdev, priv->roc_cfg.chan.center_freq,
drivers/net/wireless/marvell/mwl8k.c
2891
struct ieee80211_channel *channel = conf->chandef.chan;
drivers/net/wireless/marvell/mwl8k.c
3010
buf_dst[pos + 2] = hw->conf.chandef.chan->hw_value;
drivers/net/wireless/marvell/mwl8k.c
3224
struct ieee80211_channel *channel = conf->chandef.chan;
drivers/net/wireless/marvell/mwl8k.c
4186
if (hw->conf.chandef.chan->band == NL80211_BAND_2GHZ)
drivers/net/wireless/marvell/mwl8k.c
4623
if (hw->conf.chandef.chan->band == NL80211_BAND_2GHZ)
drivers/net/wireless/marvell/mwl8k.c
5104
if (hw->conf.chandef.chan->band == NL80211_BAND_2GHZ) {
drivers/net/wireless/marvell/mwl8k.c
5135
if (hw->conf.chandef.chan->band ==
drivers/net/wireless/marvell/mwl8k.c
5210
if (hw->conf.chandef.chan->band == NL80211_BAND_2GHZ)
drivers/net/wireless/marvell/mwl8k.c
5506
survey->channel = conf->chandef.chan;
drivers/net/wireless/mediatek/mt76/channel.c
200
phy = new_ctx->phy = dev->band_phys[conf->def.chan->band];
drivers/net/wireless/mediatek/mt76/channel.c
323
if (phy->chanctx && phy->main_chandef.chan && phy->offchannel &&
drivers/net/wireless/mediatek/mt76/channel.c
358
struct ieee80211_channel *chan, int duration,
drivers/net/wireless/mediatek/mt76/channel.c
368
phy = dev->band_phys[chan->band];
drivers/net/wireless/mediatek/mt76/channel.c
392
offchannel = mt76_offchannel_chandef(phy, chan, &chandef);
drivers/net/wireless/mediatek/mt76/channel.c
40
phy = ctx->phy = dev->band_phys[conf->def.chan->band];
drivers/net/wireless/mediatek/mt76/eeprom.c
277
mt76_find_channel_node(struct device_node *np, struct ieee80211_channel *chan)
drivers/net/wireless/mediatek/mt76/eeprom.c
289
if (chan->hw_value >= be32_to_cpu(val[0]) &&
drivers/net/wireless/mediatek/mt76/eeprom.c
290
chan->hw_value <= be32_to_cpu(val[1]))
drivers/net/wireless/mediatek/mt76/eeprom.c
427
struct ieee80211_channel *chan,
drivers/net/wireless/mediatek/mt76/eeprom.c
451
switch (chan->band) {
drivers/net/wireless/mediatek/mt76/eeprom.c
470
np = mt76_find_channel_node(np, chan);
drivers/net/wireless/mediatek/mt76/mac80211.c
1046
if (phy->chandef.chan->center_freq != chandef->chan->center_freq ||
drivers/net/wireless/mediatek/mt76/mac80211.c
1051
phy->chan_state = mt76_channel_state(phy, chandef->chan);
drivers/net/wireless/mediatek/mt76/mac80211.c
1057
if (chandef->chan != phy->main_chandef.chan)
drivers/net/wireless/mediatek/mt76/mac80211.c
1120
struct ieee80211_channel *chan;
drivers/net/wireless/mediatek/mt76/mac80211.c
1147
chan = &sband->sband.channels[idx];
drivers/net/wireless/mediatek/mt76/mac80211.c
1148
state = mt76_channel_state(phy, chan);
drivers/net/wireless/mediatek/mt76/mac80211.c
1151
survey->channel = chan;
drivers/net/wireless/mediatek/mt76/mac80211.c
1157
if (chan == phy->main_chandef.chan) {
drivers/net/wireless/mediatek/mt76/mac80211.c
1783
txpower = mt76_get_sar_power(phy, phy->chandef.chan, txpower * 2);
drivers/net/wireless/mediatek/mt76/mac80211.c
1834
struct ieee80211_channel *chan,
drivers/net/wireless/mediatek/mt76/mac80211.c
1846
freq = ieee80211_channel_to_frequency(chan->hw_value, chan->band);
drivers/net/wireless/mediatek/mt76/mac80211.c
2074
(phy->chandef.chan->flags & IEEE80211_CHAN_RADAR))
drivers/net/wireless/mediatek/mt76/mac80211.c
2125
data[n_data].band = link_conf->chanreq.oper.chan->band;
drivers/net/wireless/mediatek/mt76/mac80211.c
2179
phy->main_chandef.chan->band,
drivers/net/wireless/mediatek/mt76/mac80211.c
2308
mt76_scan_rx_beacon(phy->dev, phy->chandef.chan);
drivers/net/wireless/mediatek/mt76/mac80211.c
306
const struct ieee80211_channel *chan, int n_chan,
drivers/net/wireless/mediatek/mt76/mac80211.c
317
size = n_chan * sizeof(*chan);
drivers/net/wireless/mediatek/mt76/mac80211.c
318
chanlist = devm_kmemdup(dev->dev, chan, size, GFP_KERNEL);
drivers/net/wireless/mediatek/mt76/mac80211.c
322
msband->chan = devm_kcalloc(dev->dev, n_chan, sizeof(*msband->chan),
drivers/net/wireless/mediatek/mt76/mac80211.c
324
if (!msband->chan)
drivers/net/wireless/mediatek/mt76/mac80211.c
416
phy->chan_state = &msband->chan[0];
drivers/net/wireless/mediatek/mt76/mac80211.c
997
return &msband->chan[idx];
drivers/net/wireless/mediatek/mt76/mt76.h
1016
struct ieee80211_channel *chan;
drivers/net/wireless/mediatek/mt76/mt76.h
1595
struct ieee80211_channel *chan,
drivers/net/wireless/mediatek/mt76/mt76.h
1611
void mt76_scan_rx_beacon(struct mt76_dev *dev, struct ieee80211_channel *chan);
drivers/net/wireless/mediatek/mt76/mt76.h
1639
struct ieee80211_channel *chan, int duration,
drivers/net/wireless/mediatek/mt76/mt76.h
1805
mt76_offchannel_chandef(struct mt76_phy *phy, struct ieee80211_channel *chan,
drivers/net/wireless/mediatek/mt76/mt76.h
1808
cfg80211_chandef_create(chandef, chan, NL80211_CHAN_HT20);
drivers/net/wireless/mediatek/mt76/mt76.h
1809
if (phy->main_chandef.chan != chan)
drivers/net/wireless/mediatek/mt76/mt76.h
1951
mt76_find_channel_node(struct device_node *np, struct ieee80211_channel *chan);
drivers/net/wireless/mediatek/mt76/mt76.h
1954
struct ieee80211_channel *chan,
drivers/net/wireless/mediatek/mt76/mt76.h
609
struct mt76_channel_state *chan;
drivers/net/wireless/mediatek/mt76/mt7603/init.c
455
struct ieee80211_channel *chan;
drivers/net/wireless/mediatek/mt76/mt7603/init.c
489
chan = &sband->channels[i];
drivers/net/wireless/mediatek/mt76/mt7603/init.c
490
chan->max_power = min_t(int, chan->max_reg_power, target_power);
drivers/net/wireless/mediatek/mt76/mt7603/init.c
491
chan->orig_mpwr = target_power;
drivers/net/wireless/mediatek/mt76/mt7603/mac.c
1194
if (dev->mphy.chandef.chan->band == NL80211_BAND_5GHZ)
drivers/net/wireless/mediatek/mt76/mt7603/mac.c
54
bool is_5ghz = dev->mphy.chandef.chan->band == NL80211_BAND_5GHZ;
drivers/net/wireless/mediatek/mt76/mt7603/mac.c
704
int band = dev->mphy.chandef.chan->band;
drivers/net/wireless/mediatek/mt76/mt7603/main.c
159
if (def->chan->band == NL80211_BAND_5GHZ) {
drivers/net/wireless/mediatek/mt76/mt7603/main.c
169
idx |= (def->chan -
drivers/net/wireless/mediatek/mt76/mt7603/main.c
170
mt76_hw(dev)->wiphy->bands[def->chan->band]->channels) << 1;
drivers/net/wireless/mediatek/mt76/mt7603/mcu.c
353
.center_channel = dev->mphy.chandef.chan->hw_value,
drivers/net/wireless/mediatek/mt76/mt7603/mcu.c
399
.control_chan = chandef->chan->hw_value,
drivers/net/wireless/mediatek/mt76/mt7603/mcu.c
400
.center_chan = chandef->chan->hw_value,
drivers/net/wireless/mediatek/mt76/mt7603/mcu.c
410
if (chandef->center_freq1 > chandef->chan->center_freq)
drivers/net/wireless/mediatek/mt76/mt7603/mcu.c
416
tx_power = mt76_get_sar_power(&dev->mphy, chandef->chan, tx_power);
drivers/net/wireless/mediatek/mt76/mt7615/eeprom.c
174
struct ieee80211_channel *chan,
drivers/net/wireless/mediatek/mt76/mt7615/eeprom.c
182
if (chan->band == NL80211_BAND_2GHZ)
drivers/net/wireless/mediatek/mt76/mt7615/eeprom.c
185
group = mt7615_get_channel_group(chan->hw_value);
drivers/net/wireless/mediatek/mt76/mt7615/eeprom.c
195
struct ieee80211_channel *chan,
drivers/net/wireless/mediatek/mt76/mt7615/eeprom.c
201
return mt7663_eeprom_get_target_power_index(dev, chan,
drivers/net/wireless/mediatek/mt76/mt7615/eeprom.c
208
if (mt7615_ext_pa_enabled(dev, chan->band)) {
drivers/net/wireless/mediatek/mt76/mt7615/eeprom.c
209
if (chan->band == NL80211_BAND_2GHZ)
drivers/net/wireless/mediatek/mt76/mt7615/eeprom.c
216
if (chan->band == NL80211_BAND_2GHZ) {
drivers/net/wireless/mediatek/mt76/mt7615/eeprom.c
219
int group = mt7615_get_channel_group(chan->hw_value);
drivers/net/wireless/mediatek/mt76/mt7615/init.c
293
struct ieee80211_channel *chan = &sband->channels[i];
drivers/net/wireless/mediatek/mt76/mt7615/init.c
300
index = mt7615_eeprom_get_target_power_index(dev, chan, j);
drivers/net/wireless/mediatek/mt76/mt7615/init.c
307
target_power = mt76_get_rate_power_limits(&dev->mphy, chan,
drivers/net/wireless/mediatek/mt76/mt7615/init.c
312
chan->max_power = min_t(int, chan->max_reg_power,
drivers/net/wireless/mediatek/mt76/mt7615/init.c
314
chan->orig_mpwr = target_power;
drivers/net/wireless/mediatek/mt76/mt7615/init.c
347
if (chandef->chan->flags & IEEE80211_CHAN_RADAR)
drivers/net/wireless/mediatek/mt76/mt7615/mac.c
1402
if (mphy->chandef.chan->band == NL80211_BAND_5GHZ)
drivers/net/wireless/mediatek/mt76/mt7615/mac.c
145
bool is_5ghz = phy->mt76->chandef.chan->band == NL80211_BAND_5GHZ;
drivers/net/wireless/mediatek/mt76/mt7615/mac.c
205
status->freq = mphy->chandef.chan->center_freq;
drivers/net/wireless/mediatek/mt76/mt7615/mac.c
206
status->band = mphy->chandef.chan->band;
drivers/net/wireless/mediatek/mt76/mt7615/mac.c
2218
if ((chandef->chan->flags & IEEE80211_CHAN_RADAR) &&
drivers/net/wireless/mediatek/mt76/mt7615/mac.c
683
int band = mphy->chandef.chan->band;
drivers/net/wireless/mediatek/mt76/mt7615/main.c
1162
struct ieee80211_channel *chan,
drivers/net/wireless/mediatek/mt76/mt7615/main.c
1174
err = mt7615_mcu_set_roc(phy, vif, chan, duration);
drivers/net/wireless/mediatek/mt76/mt7615/mcu.c
2071
tx_power = mt76_get_sar_power(mphy, mphy->chandef.chan, tx_power);
drivers/net/wireless/mediatek/mt76/mt7615/mcu.c
2073
tx_power = mt76_get_rate_power_limits(mphy, mphy->chandef.chan,
drivers/net/wireless/mediatek/mt76/mt7615/mcu.c
2138
.control_chan = chandef->chan->hw_value,
drivers/net/wireless/mediatek/mt76/mt7615/mcu.c
2549
struct ieee80211_channel *chan, int duration)
drivers/net/wireless/mediatek/mt76/mt7615/mcu.c
2555
.active = !chan,
drivers/net/wireless/mediatek/mt76/mt7615/mcu.c
2557
.primary_chan = chan ? chan->hw_value : 0,
drivers/net/wireless/mediatek/mt76/mt7615/mcu.c
2558
.band = chan ? chan->band : 0,
drivers/net/wireless/mediatek/mt76/mt7615/mt7615.h
388
struct ieee80211_channel *chan,
drivers/net/wireless/mediatek/mt76/mt7615/mt7615.h
527
struct ieee80211_channel *chan, int duration);
drivers/net/wireless/mediatek/mt76/mt7615/testmode.c
56
enum nl80211_band band = chandef->chan->band;
drivers/net/wireless/mediatek/mt76/mt7615/testmode.c
83
ret = mt7615_eeprom_get_target_power_index(dev, chandef->chan, i);
drivers/net/wireless/mediatek/mt76/mt76_connac.h
441
struct ieee80211_channel *chan,
drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c
319
band = chandef->chan->band;
drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c
683
if (mphy->chandef.chan->band == NL80211_BAND_5GHZ)
drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c
685
else if (mphy->chandef.chan->band == NL80211_BAND_6GHZ)
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
109
struct ieee80211_channel *chan;
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
124
chan = &phy->sband_2g.sband.channels[i];
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
125
if (chan->flags & IEEE80211_CHAN_DISABLED)
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
128
channel.hw_value = cpu_to_le16(chan->hw_value);
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
129
channel.flags = cpu_to_le32(chan->flags);
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
136
chan = &phy->sband_5g.sband.channels[i];
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
137
if (chan->flags & IEEE80211_CHAN_DISABLED)
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
140
channel.hw_value = cpu_to_le16(chan->hw_value);
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
141
channel.flags = cpu_to_le32(chan->flags);
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
1430
enum nl80211_band band = chandef->chan->band;
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
1442
enum nl80211_band band = phy->chandef.chan->band;
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
148
chan = &phy->sband_6g.sband.channels[i];
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
1483
enum nl80211_band band = chandef->chan->band;
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
149
if (chan->flags & IEEE80211_CHAN_DISABLED)
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
1512
.control_channel = chandef->chan->hw_value,
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
152
channel.hw_value = cpu_to_le16(chan->hw_value);
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
153
channel.flags = cpu_to_le32(chan->flags);
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
1568
enum nl80211_band band = chandef->chan->band;
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
1761
struct mt76_connac_mcu_scan_channel *chan;
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
1816
chan = &req->ext_channels[i - 32];
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
1818
chan = &req->channels[i];
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
1822
chan->band = 1;
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
1825
chan->band = 3;
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
1828
chan->band = 2;
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
1831
chan->channel_num = scan_list[i]->hw_value;
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
1889
struct mt76_connac_mcu_scan_channel *chan;
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
1939
chan = &req->channels[i];
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
1943
chan->band = 1;
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
1946
chan->band = 3;
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
1949
chan->band = 2;
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
1952
chan->channel_num = scan_list[i]->hw_value;
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
2094
struct ieee80211_channel *chan,
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
2101
switch (chan->band) {
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
2118
if (ch->hw_value == chan->hw_value) {
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
2236
struct ieee80211_channel chan = {
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
2242
max_power = mt76_connac_get_rate_power_limit(phy, &chan,
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
2244
if (phy->chandef.chan &&
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
2245
phy->chandef.chan->hw_value == ch_list[idx] &&
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
2246
phy->chandef.chan->band == band)
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
2892
chandef->chan->band, NULL);
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
2980
struct ieee80211_channel *chan,
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
2990
reg_power = mt76_connac_get_ch_power(phy, chan, tx_power);
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
2991
sar_power = mt76_get_sar_power(phy, chan, reg_power);
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
2992
return mt76_get_rate_power_limits(phy, chan, limits, sar_power);
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
861
enum nl80211_band band = chandef->chan->band;
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.h
2061
struct ieee80211_channel *chan,
drivers/net/wireless/mediatek/mt76/mt76x0/eeprom.c
112
struct ieee80211_channel *chan = dev->mphy.chandef.chan;
drivers/net/wireless/mediatek/mt76/mt76x0/eeprom.c
118
mt76x02_get_rx_gain(dev, chan->band, &rssi_offset, &lna_2g, lna_5g);
drivers/net/wireless/mediatek/mt76/mt76x0/eeprom.c
119
caldata->lna_gain = mt76x02_get_lna_gain(dev, &lna_2g, lna_5g, chan);
drivers/net/wireless/mediatek/mt76/mt76x0/eeprom.c
141
if (chandef->chan->band == NL80211_BAND_5GHZ)
drivers/net/wireless/mediatek/mt76/mt76x0/eeprom.c
153
struct ieee80211_channel *chan,
drivers/net/wireless/mediatek/mt76/mt76x0/eeprom.c
156
bool is_2ghz = chan->band == NL80211_BAND_2GHZ;
drivers/net/wireless/mediatek/mt76/mt76x0/eeprom.c
201
struct ieee80211_channel *chan, s8 *tp)
drivers/net/wireless/mediatek/mt76/mt76x0/eeprom.c
204
u8 chan;
drivers/net/wireless/mediatek/mt76/mt76x0/eeprom.c
222
if (chan->band == NL80211_BAND_5GHZ)
drivers/net/wireless/mediatek/mt76/mt76x0/eeprom.c
233
if (chan->hw_value <= chan_map[i].chan) {
drivers/net/wireless/mediatek/mt76/mt76x0/eeprom.c
234
idx = (chan->hw_value == chan_map[i].chan);
drivers/net/wireless/mediatek/mt76/mt76x0/eeprom.c
242
if (chan->band == NL80211_BAND_2GHZ) {
drivers/net/wireless/mediatek/mt76/mt76x0/eeprom.c
245
switch (chan->hw_value) {
drivers/net/wireless/mediatek/mt76/mt76x0/eeprom.h
21
struct ieee80211_channel *chan,
drivers/net/wireless/mediatek/mt76/mt76x0/eeprom.h
24
struct ieee80211_channel *chan, s8 *tp);
drivers/net/wireless/mediatek/mt76/mt76x0/init.c
219
struct ieee80211_channel *chan;
drivers/net/wireless/mediatek/mt76/mt76x0/init.c
225
chan = &sband->channels[i];
drivers/net/wireless/mediatek/mt76/mt76x0/init.c
227
mt76x0_get_tx_power_per_rate(dev, chan, &t);
drivers/net/wireless/mediatek/mt76/mt76x0/init.c
228
mt76x0_get_power_info(dev, chan, &tp);
drivers/net/wireless/mediatek/mt76/mt76x0/init.c
230
chan->orig_mpwr = (mt76x02_get_max_rate_power(&t) + tp) / 2;
drivers/net/wireless/mediatek/mt76/mt76x0/init.c
231
chan->max_power = min_t(int, chan->max_reg_power,
drivers/net/wireless/mediatek/mt76/mt76x0/init.c
232
chan->orig_mpwr);
drivers/net/wireless/mediatek/mt76/mt76x0/main.c
49
dev->txpower_conf = mt76_get_sar_power(mphy, mphy->chandef.chan,
drivers/net/wireless/mediatek/mt76/mt76x0/main.c
74
mphy->chandef.chan,
drivers/net/wireless/mediatek/mt76/mt76x0/phy.c
1042
dev->mphy.chandef.chan->hw_value);
drivers/net/wireless/mediatek/mt76/mt76x0/phy.c
1062
if ((dev->mphy.chandef.chan->flags & IEEE80211_CHAN_RADAR) &&
drivers/net/wireless/mediatek/mt76/mt76x0/phy.c
505
struct ieee80211_channel *chan = dev->mphy.chandef.chan;
drivers/net/wireless/mediatek/mt76/mt76x0/phy.c
508
if (chan->band == NL80211_BAND_5GHZ)
drivers/net/wireless/mediatek/mt76/mt76x0/phy.c
520
val = (chan->band == NL80211_BAND_5GHZ) ? 0x80055 : 0x80050;
drivers/net/wireless/mediatek/mt76/mt76x0/phy.c
538
if (chan->band == NL80211_BAND_5GHZ)
drivers/net/wireless/mediatek/mt76/mt76x0/phy.c
546
struct ieee80211_channel *chan = dev->mphy.chandef.chan;
drivers/net/wireless/mediatek/mt76/mt76x0/phy.c
549
val = (chan->band == NL80211_BAND_5GHZ) ? 0x80055 : 0x80050;
drivers/net/wireless/mediatek/mt76/mt76x0/phy.c
558
if (chan->band == NL80211_BAND_5GHZ)
drivers/net/wireless/mediatek/mt76/mt76x0/phy.c
701
struct ieee80211_channel *chan = dev->mphy.chandef.chan;
drivers/net/wireless/mediatek/mt76/mt76x0/phy.c
707
if (chan->band == NL80211_BAND_5GHZ) {
drivers/net/wireless/mediatek/mt76/mt76x0/phy.c
717
if (chan->hw_value <= bound[i] || !bound[i])
drivers/net/wireless/mediatek/mt76/mt76x0/phy.c
737
if (chan->band == NL80211_BAND_2GHZ)
drivers/net/wireless/mediatek/mt76/mt76x0/phy.c
777
if (chan->band == NL80211_BAND_5GHZ) {
drivers/net/wireless/mediatek/mt76/mt76x0/phy.c
849
mt76x0_get_tx_power_per_rate(dev, dev->mphy.chandef.chan, t);
drivers/net/wireless/mediatek/mt76/mt76x0/phy.c
850
mt76x0_get_power_info(dev, dev->mphy.chandef.chan, &info);
drivers/net/wireless/mediatek/mt76/mt76x0/phy.c
863
struct ieee80211_channel *chan = dev->mphy.chandef.chan;
drivers/net/wireless/mediatek/mt76/mt76x0/phy.c
864
int is_5ghz = (chan->band == NL80211_BAND_5GHZ) ? 1 : 0;
drivers/net/wireless/mediatek/mt76/mt76x0/phy.c
872
mt76x02_mcu_calibrate(dev, MCU_CAL_VCO, chan->hw_value);
drivers/net/wireless/mediatek/mt76/mt76x0/phy.c
893
if (chan->hw_value < 100)
drivers/net/wireless/mediatek/mt76/mt76x0/phy.c
895
else if (chan->hw_value < 140)
drivers/net/wireless/mediatek/mt76/mt76x0/phy.c
944
freq = chandef->chan->center_freq;
drivers/net/wireless/mediatek/mt76/mt76x0/phy.c
946
channel = chandef->chan->hw_value;
drivers/net/wireless/mediatek/mt76/mt76x0/phy.c
982
mt76x02_phy_set_band(dev, chandef->chan->band,
drivers/net/wireless/mediatek/mt76/mt76x0/phy.c
993
mt76x0_phy_set_band(dev, chandef->chan->band);
drivers/net/wireless/mediatek/mt76/mt76x02_dfs.c
310
if (dev->mphy.chandef.chan->center_freq >= 5250 &&
drivers/net/wireless/mediatek/mt76/mt76x02_dfs.c
311
dev->mphy.chandef.chan->center_freq <= 5350) {
drivers/net/wireless/mediatek/mt76/mt76x02_dfs.c
726
if (dev->mphy.chandef.chan->center_freq >= 5250 &&
drivers/net/wireless/mediatek/mt76/mt76x02_dfs.c
727
dev->mphy.chandef.chan->center_freq <= 5350)
drivers/net/wireless/mediatek/mt76/mt76x02_eeprom.c
132
struct ieee80211_channel *chan)
drivers/net/wireless/mediatek/mt76/mt76x02_eeprom.c
136
if (chan->band == NL80211_BAND_2GHZ)
drivers/net/wireless/mediatek/mt76/mt76x02_eeprom.c
138
else if (chan->hw_value <= 64)
drivers/net/wireless/mediatek/mt76/mt76x02_eeprom.c
140
else if (chan->hw_value <= 128)
drivers/net/wireless/mediatek/mt76/mt76x02_eeprom.h
179
struct ieee80211_channel *chan);
drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
1106
struct ieee80211_channel *chan = dev->mphy.chandef.chan;
drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
1107
u8 ed_th = chan->band == NL80211_BAND_5GHZ ? 0x0e : 0x20;
drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
204
int band = dev->mphy.chandef.chan->band;
drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
497
dev->mphy.chandef.chan->band);
drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
503
dev->mphy.chandef.chan->band);
drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
507
dev->mphy.chandef.chan->band);
drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
866
status->freq = dev->mphy.chandef.chan->center_freq;
drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
867
status->band = dev->mphy.chandef.chan->band;
drivers/net/wireless/mediatek/mt76/mt76x02_txrx.c
76
enum nl80211_band band = dev->mphy.chandef.chan->band;
drivers/net/wireless/mediatek/mt76/mt76x2/eeprom.c
256
struct ieee80211_channel *chan = dev->mphy.chandef.chan;
drivers/net/wireless/mediatek/mt76/mt76x2/eeprom.c
257
int channel = chan->hw_value;
drivers/net/wireless/mediatek/mt76/mt76x2/eeprom.c
263
if (chan->band == NL80211_BAND_2GHZ)
drivers/net/wireless/mediatek/mt76/mt76x2/eeprom.c
270
mt76x02_get_rx_gain(dev, chan->band, &val, &lna_2g, lna_5g);
drivers/net/wireless/mediatek/mt76/mt76x2/eeprom.c
280
if (chan->band == NL80211_BAND_2GHZ)
drivers/net/wireless/mediatek/mt76/mt76x2/eeprom.c
286
lna = mt76x02_get_lna_gain(dev, &lna_2g, lna_5g, chan);
drivers/net/wireless/mediatek/mt76/mt76x2/eeprom.c
293
struct ieee80211_channel *chan)
drivers/net/wireless/mediatek/mt76/mt76x2/eeprom.c
298
is_5ghz = chan->band == NL80211_BAND_5GHZ;
drivers/net/wireless/mediatek/mt76/mt76x2/eeprom.c
346
struct ieee80211_channel *chan,
drivers/net/wireless/mediatek/mt76/mt76x2/eeprom.c
349
int channel = chan->hw_value;
drivers/net/wireless/mediatek/mt76/mt76x2/eeprom.c
376
struct ieee80211_channel *chan,
drivers/net/wireless/mediatek/mt76/mt76x2/eeprom.c
379
int channel = chan->hw_value;
drivers/net/wireless/mediatek/mt76/mt76x2/eeprom.c
427
struct ieee80211_channel *chan)
drivers/net/wireless/mediatek/mt76/mt76x2/eeprom.c
436
if (chan->band == NL80211_BAND_5GHZ) {
drivers/net/wireless/mediatek/mt76/mt76x2/eeprom.c
438
mt76x2_get_power_info_5g(dev, t, chan, 0,
drivers/net/wireless/mediatek/mt76/mt76x2/eeprom.c
440
mt76x2_get_power_info_5g(dev, t, chan, 1,
drivers/net/wireless/mediatek/mt76/mt76x2/eeprom.c
443
mt76x2_get_power_info_2g(dev, t, chan, 0,
drivers/net/wireless/mediatek/mt76/mt76x2/eeprom.c
445
mt76x2_get_power_info_2g(dev, t, chan, 1,
drivers/net/wireless/mediatek/mt76/mt76x2/eeprom.c
460
enum nl80211_band band = dev->mphy.chandef.chan->band;
drivers/net/wireless/mediatek/mt76/mt76x2/eeprom.h
44
struct ieee80211_channel *chan);
drivers/net/wireless/mediatek/mt76/mt76x2/eeprom.h
47
struct ieee80211_channel *chan);
drivers/net/wireless/mediatek/mt76/mt76x2/eeprom.h
56
if (dev->mphy.chandef.chan->band == NL80211_BAND_2GHZ)
drivers/net/wireless/mediatek/mt76/mt76x2/init.c
183
struct ieee80211_channel *chan;
drivers/net/wireless/mediatek/mt76/mt76x2/init.c
189
chan = &sband->channels[i];
drivers/net/wireless/mediatek/mt76/mt76x2/init.c
191
mt76x2_get_power_info(dev, &txp, chan);
drivers/net/wireless/mediatek/mt76/mt76x2/init.c
192
mt76x2_get_rate_power(dev, &t, chan);
drivers/net/wireless/mediatek/mt76/mt76x2/init.c
194
chan->orig_mpwr = mt76x02_get_max_rate_power(&t) +
drivers/net/wireless/mediatek/mt76/mt76x2/init.c
196
chan->orig_mpwr = DIV_ROUND_UP(chan->orig_mpwr, 2);
drivers/net/wireless/mediatek/mt76/mt76x2/init.c
199
chan->orig_mpwr += 3;
drivers/net/wireless/mediatek/mt76/mt76x2/init.c
200
chan->max_power = min_t(int, chan->max_reg_power,
drivers/net/wireless/mediatek/mt76/mt76x2/init.c
201
chan->orig_mpwr);
drivers/net/wireless/mediatek/mt76/mt76x2/init.c
26
dev->txpower_conf = mt76_get_sar_power(mphy, mphy->chandef.chan,
drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2.h
33
struct ieee80211_channel *chan = dev->mphy.chandef.chan;
drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2.h
35
return ((chan->flags & IEEE80211_CHAN_RADAR) &&
drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2.h
36
chan->dfs_state != NL80211_DFS_AVAILABLE);
drivers/net/wireless/mediatek/mt76/mt76x2/pci_main.c
77
mphy->chandef.chan,
drivers/net/wireless/mediatek/mt76/mt76x2/pci_phy.c
120
struct ieee80211_channel *chan = chandef->chan;
drivers/net/wireless/mediatek/mt76/mt76x2/pci_phy.c
122
enum nl80211_band band = chan->band;
drivers/net/wireless/mediatek/mt76/mt76x2/pci_phy.c
15
struct ieee80211_channel *chan = dev->mphy.chandef.chan;
drivers/net/wireless/mediatek/mt76/mt76x2/pci_phy.c
153
freq = chandef->chan->center_freq;
drivers/net/wireless/mediatek/mt76/mt76x2/pci_phy.c
155
channel = chan->hw_value;
drivers/net/wireless/mediatek/mt76/mt76x2/pci_phy.c
189
mt76x02_phy_set_band(dev, chan->band, ch_group_index & 1);
drivers/net/wireless/mediatek/mt76/mt76x2/pci_phy.c
24
if (chan->band == NL80211_BAND_5GHZ)
drivers/net/wireless/mediatek/mt76/mt76x2/pci_phy.c
27
if (mt76x02_ext_pa_enabled(dev, chan->band))
drivers/net/wireless/mediatek/mt76/mt76x2/pci_phy.c
38
struct ieee80211_channel *chan = dev->mphy.chandef.chan;
drivers/net/wireless/mediatek/mt76/mt76x2/pci_phy.c
39
bool is_5ghz = chan->band == NL80211_BAND_5GHZ;
drivers/net/wireless/mediatek/mt76/mt76x2/phy.c
140
struct ieee80211_channel *chan = dev->mphy.chandef.chan;
drivers/net/wireless/mediatek/mt76/mt76x2/phy.c
146
mt76x2_get_power_info(dev, &txp, chan);
drivers/net/wireless/mediatek/mt76/mt76x2/phy.c
153
mt76x2_get_rate_power(dev, &t, chan);
drivers/net/wireless/mediatek/mt76/mt76x2/phy.c
205
struct ieee80211_channel *chan = dev->mphy.chandef.chan;
drivers/net/wireless/mediatek/mt76/mt76x2/phy.c
222
mt76x2_get_power_info(dev, &txp, chan);
drivers/net/wireless/mediatek/mt76/mt76x2/phy.c
224
if (mt76x02_ext_pa_enabled(dev, chan->band))
drivers/net/wireless/mediatek/mt76/mt76x2/phy.c
238
mt76x02_mcu_calibrate(dev, MCU_CAL_DPD, chan->hw_value);
drivers/net/wireless/mediatek/mt76/mt76x2/phy.c
259
dev->mphy.chandef.chan->band == NL80211_BAND_2GHZ &&
drivers/net/wireless/mediatek/mt76/mt76x2/phy.c
270
if (dev->mphy.chandef.chan->flags & IEEE80211_CHAN_RADAR)
drivers/net/wireless/mediatek/mt76/mt76x2/phy.c
318
if (dev->mphy.chandef.chan->band == NL80211_BAND_2GHZ)
drivers/net/wireless/mediatek/mt76/mt76x2/usb_main.c
73
mphy->chandef.chan,
drivers/net/wireless/mediatek/mt76/mt76x2/usb_phy.c
122
mt76x2_phy_set_txpower_regs(dev, chan->band);
drivers/net/wireless/mediatek/mt76/mt76x2/usb_phy.c
123
mt76x2_configure_tx_delay(dev, chan->band, bw);
drivers/net/wireless/mediatek/mt76/mt76x2/usb_phy.c
126
mt76x02_phy_set_band(dev, chan->band, ch_group_index & 1);
drivers/net/wireless/mediatek/mt76/mt76x2/usb_phy.c
13
struct ieee80211_channel *chan = dev->mphy.chandef.chan;
drivers/net/wireless/mediatek/mt76/mt76x2/usb_phy.c
14
bool is_5ghz = chan->band == NL80211_BAND_5GHZ;
drivers/net/wireless/mediatek/mt76/mt76x2/usb_phy.c
185
struct ieee80211_channel *chan;
drivers/net/wireless/mediatek/mt76/mt76x2/usb_phy.c
188
chan = dev->mphy.chandef.chan;
drivers/net/wireless/mediatek/mt76/mt76x2/usb_phy.c
189
if (chan->band == NL80211_BAND_5GHZ)
drivers/net/wireless/mediatek/mt76/mt76x2/usb_phy.c
191
if (mt76x02_ext_pa_enabled(dev, chan->band))
drivers/net/wireless/mediatek/mt76/mt76x2/usb_phy.c
86
struct ieee80211_channel *chan = chandef->chan;
drivers/net/wireless/mediatek/mt76/mt76x2/usb_phy.c
87
u8 channel = chan->hw_value, bw, bw_index;
drivers/net/wireless/mediatek/mt76/mt76x2/usb_phy.c
91
freq = chandef->chan->center_freq;
drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c
1018
phy != &dev->phy, phy->mt76->chandef.chan->hw_value);
drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c
497
chandef->chan->hw_value, chandef->chan->center_freq,
drivers/net/wireless/mediatek/mt76/mt7915/eeprom.c
291
struct ieee80211_channel *chan,
drivers/net/wireless/mediatek/mt76/mt7915/eeprom.c
301
tssi_on = mt7915_tssi_enabled(dev, chan->band);
drivers/net/wireless/mediatek/mt76/mt7915/eeprom.c
304
if (chan->band == NL80211_BAND_2GHZ) {
drivers/net/wireless/mediatek/mt76/mt7915/eeprom.c
315
} else if (chan->band == NL80211_BAND_5GHZ) {
drivers/net/wireless/mediatek/mt76/mt7915/eeprom.c
316
int group = mt7915_get_channel_group_5g(chan->hw_value, is_7976);
drivers/net/wireless/mediatek/mt76/mt7915/eeprom.c
329
int group = mt7915_get_channel_group_6g(chan->hw_value);
drivers/net/wireless/mediatek/mt76/mt7915/init.c
295
struct ieee80211_channel *chan = &sband->channels[i];
drivers/net/wireless/mediatek/mt76/mt7915/init.c
302
val = mt7915_eeprom_get_target_power(dev, chan, j);
drivers/net/wireless/mediatek/mt76/mt7915/init.c
307
target_power = mt76_get_rate_power_limits(phy->mt76, chan,
drivers/net/wireless/mediatek/mt76/mt7915/init.c
317
chan->max_power = min_t(int, chan->max_reg_power,
drivers/net/wireless/mediatek/mt76/mt7915/init.c
319
chan->orig_mpwr = target_power;
drivers/net/wireless/mediatek/mt76/mt7915/mac.c
1137
bool a_band = !(phy->mt76->chandef.chan->band == NL80211_BAND_2GHZ);
drivers/net/wireless/mediatek/mt76/mt7915/mac.c
323
status->freq = mphy->chandef.chan->center_freq;
drivers/net/wireless/mediatek/mt76/mt7915/mac.c
324
status->band = mphy->chandef.chan->band;
drivers/net/wireless/mediatek/mt76/mt7915/mac.c
636
band = phy->mt76->chandef.chan->band;
drivers/net/wireless/mediatek/mt76/mt7915/main.c
1695
!!(dev->rdd2_chandef.chan->flags & IEEE80211_CHAN_RADAR);
drivers/net/wireless/mediatek/mt76/mt7915/main.c
1698
!(chandef->chan->flags & IEEE80211_CHAN_RADAR)) {
drivers/net/wireless/mediatek/mt76/mt7915/main.c
643
if (phy->mt76->chandef.chan->band == NL80211_BAND_2GHZ &&
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
1465
enum nl80211_band band = chandef->chan->band;
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
1555
enum nl80211_band band = chandef->chan->band;
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
1567
ra->channel = chandef->chan->hw_value;
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
1965
enum nl80211_band band = chandef->chan->band;
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
2686
struct ieee80211_channel *chan = mphy->chandef.chan;
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
2700
req.chan = chan->hw_value;
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
2703
req.monitor_chan = chandef->chan->hw_value;
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
2712
req.monitor_chan = chandef->chan->hw_value;
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
2719
req.chan = chan->hw_value;
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
2728
req.band = chandef ? chandef->chan->band == NL80211_BAND_5GHZ : 1;
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
2803
.control_ch = chandef->chan->hw_value,
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
2809
.channel_band = ch_band[chandef->chan->band],
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
3105
enum nl80211_band band = chandef->chan->band;
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
3394
struct ieee80211_channel *chan = mphy->main_chandef.chan;
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
3397
if (!chan) {
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
3403
val = mt7915_eeprom_get_target_power(phy->dev, chan, chain_idx);
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
3404
val += mt7915_eeprom_get_power_delta(phy->dev, chan->band);
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
3438
tx_power = mt76_get_rate_power_limits(mphy, mphy->chandef.chan,
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
3907
if (mphy->chandef.chan->band == NL80211_BAND_5GHZ)
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
3909
else if (mphy->chandef.chan->band == NL80211_BAND_6GHZ)
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
514
if (!(vif->bss_conf.chanreq.oper.chan->flags & IEEE80211_CHAN_RADAR))
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
540
ch->pri_ch = chandef->chan->hw_value;
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
63
enum nl80211_band band = msta->vif->phy->mt76->chandef.chan->band;
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
639
enum nl80211_band band = chandef->chan->band;
drivers/net/wireless/mediatek/mt76/mt7915/mcu.h
110
u8 chan; /* primary channel */
drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h
441
struct ieee80211_channel *chan,
drivers/net/wireless/mediatek/mt76/mt7915/testmode.c
274
if (mphy->chandef.chan->band == NL80211_BAND_5GHZ)
drivers/net/wireless/mediatek/mt76/mt7915/testmode.c
276
else if (mphy->chandef.chan->band == NL80211_BAND_6GHZ)
drivers/net/wireless/mediatek/mt76/mt7915/testmode.c
531
tx_cont->control_ch = chandef->chan->hw_value;
drivers/net/wireless/mediatek/mt76/mt7915/testmode.c
574
if (chandef->chan->band == NL80211_BAND_5GHZ)
drivers/net/wireless/mediatek/mt76/mt7915/testmode.c
576
else if (chandef->chan->band == NL80211_BAND_6GHZ)
drivers/net/wireless/mediatek/mt76/mt7921/main.c
1439
mt7921_set_roc(mvif->phy, mvif, mvif->bss_conf.mt76.ctx->def.chan, duration,
drivers/net/wireless/mediatek/mt76/mt7921/main.c
423
struct ieee80211_channel *chan,
drivers/net/wireless/mediatek/mt76/mt7921/main.c
434
err = mt7921_mcu_set_roc(phy, vif, chan, duration, type,
drivers/net/wireless/mediatek/mt76/mt7921/main.c
453
struct ieee80211_channel *chan,
drivers/net/wireless/mediatek/mt76/mt7921/main.c
462
err = mt7921_set_roc(phy, mvif, chan, duration, MT7921_ROC_REQ_ROC);
drivers/net/wireless/mediatek/mt76/mt7921/main.c
804
if (vif->bss_conf.chanreq.oper.chan->band == NL80211_BAND_6GHZ)
drivers/net/wireless/mediatek/mt76/mt7921/mcu.c
1205
.control_ch = chandef->chan->hw_value,
drivers/net/wireless/mediatek/mt76/mt7921/mcu.c
1210
if (chandef->chan->band < ARRAY_SIZE(ch_band))
drivers/net/wireless/mediatek/mt76/mt7921/mcu.c
1211
req.tlv.ch_band = ch_band[chandef->chan->band];
drivers/net/wireless/mediatek/mt76/mt7921/mcu.c
765
struct ieee80211_channel *chan, int duration,
drivers/net/wireless/mediatek/mt76/mt7921/mcu.c
768
int center_ch = ieee80211_frequency_to_channel(chan->center_freq);
drivers/net/wireless/mediatek/mt76/mt7921/mcu.c
801
.control_channel = chan->hw_value,
drivers/net/wireless/mediatek/mt76/mt7921/mcu.c
810
if (chan->hw_value < center_ch)
drivers/net/wireless/mediatek/mt76/mt7921/mcu.c
812
else if (chan->hw_value > center_ch)
drivers/net/wireless/mediatek/mt76/mt7921/mcu.c
815
switch (chan->band) {
drivers/net/wireless/mediatek/mt76/mt7921/mcu.c
884
.control_ch = chandef->chan->hw_value,
drivers/net/wireless/mediatek/mt76/mt7921/mcu.c
892
if (chandef->chan->band == NL80211_BAND_6GHZ)
drivers/net/wireless/mediatek/mt76/mt7921/mcu.c
895
req.channel_band = chandef->chan->band;
drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h
347
struct ieee80211_channel *chan, int duration,
drivers/net/wireless/mediatek/mt76/mt7925/mac.c
952
if (mphy->chandef.chan->band == NL80211_BAND_5GHZ)
drivers/net/wireless/mediatek/mt76/mt7925/mac.c
954
else if (mphy->chandef.chan->band == NL80211_BAND_6GHZ)
drivers/net/wireless/mediatek/mt76/mt7925/main.c
1152
enum nl80211_band band = chandef->chan->band, secondary_band;
drivers/net/wireless/mediatek/mt76/mt7925/main.c
1161
secondary_band = link_conf->chanreq.oper.chan->band;
drivers/net/wireless/mediatek/mt76/mt7925/main.c
2003
mvif->bss_conf.mt76.ctx->def.chan, duration,
drivers/net/wireless/mediatek/mt76/mt7925/main.c
2311
band_idx = mt7927_band_idx(ctx->def.chan->band);
drivers/net/wireless/mediatek/mt76/mt7925/main.c
2405
ret = mt7925_set_roc(mvif->phy, mconf, dev->new_ctx->def.chan,
drivers/net/wireless/mediatek/mt76/mt7925/main.c
401
struct ieee80211_channel *chan;
drivers/net/wireless/mediatek/mt76/mt7925/main.c
403
if (link_conf->chanreq.oper.chan)
drivers/net/wireless/mediatek/mt76/mt7925/main.c
404
chan = link_conf->chanreq.oper.chan;
drivers/net/wireless/mediatek/mt76/mt7925/main.c
406
chan = mvif->phy->mt76->chandef.chan;
drivers/net/wireless/mediatek/mt76/mt7925/main.c
408
mconf->mt76.band_idx = mt7927_band_idx(chan->band);
drivers/net/wireless/mediatek/mt76/mt7925/main.c
415
if (mvif->phy->mt76->chandef.chan->band != NL80211_BAND_2GHZ)
drivers/net/wireless/mediatek/mt76/mt7925/main.c
545
struct ieee80211_channel *chan,
drivers/net/wireless/mediatek/mt76/mt7925/main.c
556
err = mt7925_mcu_set_roc(phy, mconf, chan, duration, type,
drivers/net/wireless/mediatek/mt76/mt7925/main.c
602
struct ieee80211_channel *chan,
drivers/net/wireless/mediatek/mt76/mt7925/main.c
612
chan, duration, MT7925_ROC_REQ_ROC);
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
1359
struct ieee80211_channel *chan;
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
1373
struct ieee80211_channel *chan;
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
1401
links[i].chan = link_conf->chanreq.oper.chan;
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
1402
if (WARN_ON_ONCE(!links[i].chan))
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
1409
is_AG_band |= links[i].chan->band == NL80211_BAND_2GHZ;
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
1420
if (WARN_ON_ONCE(!links[i].mconf || !links[i].chan))
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
1423
chan = links[i].chan;
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
1424
center_ch = ieee80211_frequency_to_channel(chan->center_freq);
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
1431
req.roc[i].control_channel = chan->hw_value;
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
1444
if (chan->hw_value < center_ch)
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
1446
else if (chan->hw_value > center_ch)
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
1449
req.roc[i].band = ch_band[chan->band];
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
1457
struct ieee80211_channel *chan, int duration,
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
1460
int center_ch = ieee80211_frequency_to_channel(chan->center_freq);
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
1475
.control_channel = chan->hw_value,
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
1484
if (chan->hw_value < center_ch)
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
1486
else if (chan->hw_value > center_ch)
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
1489
switch (chan->band) {
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
1839
chandef->chan->band,
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
1913
band = chandef->chan->band;
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
2252
.control_ch = chandef->chan->hw_value,
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
2258
if (chandef->chan->band < ARRAY_SIZE(ch_band))
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
2259
req.tlv.ch_band = ch_band[chandef->chan->band];
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
2368
enum nl80211_band band = chandef->chan->band;
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
2374
req->control_channel = chandef->chan->hw_value;
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
2564
enum nl80211_band band = chandef->chan->band;
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
2680
enum nl80211_band band = chandef->chan->band;
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
3055
struct mt76_connac_mcu_scan_channel *chan;
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
3138
chan = &chan_info->channels[i];
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
3142
chan->band = 1;
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
3145
chan->band = 3;
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
3148
chan->band = 2;
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
3151
chan->channel_num = scan_list[i]->hw_value;
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
3184
struct mt76_connac_mcu_scan_channel *chan;
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
3251
chan = &chan_info->channels[i];
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
3255
chan->band = 1;
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
3258
chan->band = 3;
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
3261
chan->band = 2;
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
3264
chan->channel_num = scan_list[i]->hw_value;
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
3391
struct ieee80211_channel *chan;
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
3406
chan = &phy->sband_2g.sband.channels[i];
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
3407
if (chan->flags & IEEE80211_CHAN_DISABLED)
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
3410
channel.hw_value = cpu_to_le16(chan->hw_value);
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
3411
channel.flags = cpu_to_le32(chan->flags);
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
3418
chan = &phy->sband_5g.sband.channels[i];
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
3419
if (chan->flags & IEEE80211_CHAN_DISABLED)
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
3422
channel.hw_value = cpu_to_le16(chan->hw_value);
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
3423
channel.flags = cpu_to_le32(chan->flags);
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
3430
chan = &phy->sband_6g.sband.channels[i];
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
3431
if (chan->flags & IEEE80211_CHAN_DISABLED)
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
3434
channel.hw_value = cpu_to_le16(chan->hw_value);
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
3435
channel.flags = cpu_to_le32(chan->flags);
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
3847
struct ieee80211_channel chan = {
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
3853
reg_power = mt76_connac_get_ch_power(phy, &chan,
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
3855
sar_power = mt76_get_sar_power(phy, &chan, reg_power);
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
3857
mt76_get_rate_power_limits(phy, &chan, limits,
drivers/net/wireless/mediatek/mt76/mt7925/mt7925.h
383
struct ieee80211_channel *chan, int duration,
drivers/net/wireless/mediatek/mt76/mt792x_core.c
338
struct ieee80211_channel *chan;
drivers/net/wireless/mediatek/mt76/mt792x_core.c
354
if (mconf && mconf->mt76.ctx && mconf->mt76.ctx->def.chan)
drivers/net/wireless/mediatek/mt76/mt792x_core.c
355
chan = mconf->mt76.ctx->def.chan;
drivers/net/wireless/mediatek/mt76/mt792x_core.c
360
chan = phy->chandef.chan;
drivers/net/wireless/mediatek/mt76/mt792x_core.c
364
if (!chan)
drivers/net/wireless/mediatek/mt76/mt792x_core.c
367
max_power = mt76_connac_get_rate_power_limit(phy, chan, &limits);
drivers/net/wireless/mediatek/mt76/mt792x_mac.c
44
bool is_2ghz = phy->mt76->chandef.chan->band == NL80211_BAND_2GHZ;
drivers/net/wireless/mediatek/mt76/mt7996/debugfs.c
304
chandef->chan->hw_value, chandef->chan->center_freq,
drivers/net/wireless/mediatek/mt76/mt7996/eeprom.c
351
struct ieee80211_channel *chan)
drivers/net/wireless/mediatek/mt76/mt7996/eeprom.c
356
if (chan->band == NL80211_BAND_5GHZ)
drivers/net/wireless/mediatek/mt76/mt7996/eeprom.c
358
mt7996_get_channel_group_5g(chan->hw_value)];
drivers/net/wireless/mediatek/mt76/mt7996/eeprom.c
359
else if (chan->band == NL80211_BAND_6GHZ)
drivers/net/wireless/mediatek/mt76/mt7996/eeprom.c
361
mt7996_get_channel_group_6g(chan->hw_value)];
drivers/net/wireless/mediatek/mt76/mt7996/init.c
368
struct ieee80211_channel *chan = &sband->channels[i];
drivers/net/wireless/mediatek/mt76/mt7996/init.c
369
int target_power = mt7996_eeprom_get_target_power(dev, chan);
drivers/net/wireless/mediatek/mt76/mt7996/init.c
372
target_power = mt76_get_rate_power_limits(phy->mt76, chan,
drivers/net/wireless/mediatek/mt76/mt7996/init.c
377
chan->max_power = min_t(int, chan->max_reg_power,
drivers/net/wireless/mediatek/mt76/mt7996/init.c
379
chan->orig_mpwr = target_power;
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
1471
if (mphy->chandef.chan->band == NL80211_BAND_5GHZ)
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
1473
else if (mphy->chandef.chan->band == NL80211_BAND_6GHZ)
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
475
status->freq = mphy->chandef.chan->center_freq;
drivers/net/wireless/mediatek/mt76/mt7996/mac.c
476
status->band = mphy->chandef.chan->band;
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1044
struct mt7996_phy *phy = mt7996_band_phy(dev, chandef->chan->band);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
1082
struct mt7996_phy *phy = mt7996_band_phy(dev, chandef->chan->band);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
2334
phy = mt7996_band_phy(dev, chandef->chan->band);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
2354
!!(dev->rdd2_chandef.chan->flags & IEEE80211_CHAN_RADAR);
drivers/net/wireless/mediatek/mt76/mt7996/main.c
2357
!(chandef->chan->flags & IEEE80211_CHAN_RADAR)) {
drivers/net/wireless/mediatek/mt76/mt7996/main.c
359
if (phy->mt76->chandef.chan->band != NL80211_BAND_2GHZ)
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1089
bool is_2ghz = phy->mt76->chandef.chan->band == NL80211_BAND_2GHZ;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1181
chandef->chan->band, NULL);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
1183
chandef->chan->band);
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
139
band = mphy->chandef.chan->band;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2322
band = mphy->chandef.chan->band;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2418
band = chandef->chan->band;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
2424
ra->channel = chandef->chan->hw_value;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
3210
band = chandef->chan->band;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
3970
struct ieee80211_channel *chan = mphy->chandef.chan;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
3986
req.chan = chan->hw_value;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
3989
req.monitor_chan = chandef->chan->hw_value;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
3998
req.monitor_chan = chandef->chan->hw_value;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
4005
req.chan = chan->hw_value;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
4014
req.band = chandef ? chandef->chan->band == NL80211_BAND_5GHZ : 1;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
4092
.control_ch = chandef->chan->hw_value,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
4098
.channel_band = ch_band[chandef->chan->band],
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
5367
tx_power = mt76_get_rate_power_limits(mphy, mphy->chandef.chan,
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
900
ch->control_channel = chandef->chan->hw_value;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
905
ch->band = rlm_ch_band[chandef->chan->band];
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
984
enum nl80211_band band = chandef->chan->band;
drivers/net/wireless/mediatek/mt76/mt7996/mcu.h
126
u8 chan; /* primary channel */
drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h
689
struct ieee80211_channel *chan);
drivers/net/wireless/mediatek/mt76/scan.c
134
if (dev->scan.chan && phy->num_sta && phy->offchannel) {
drivers/net/wireless/mediatek/mt76/scan.c
135
dev->scan.chan = NULL;
drivers/net/wireless/mediatek/mt76/scan.c
141
dev->scan.chan = req->channels[dev->scan.chan_idx++];
drivers/net/wireless/mediatek/mt76/scan.c
142
offchannel = mt76_offchannel_chandef(phy, dev->scan.chan, &chandef);
drivers/net/wireless/mediatek/mt76/scan.c
151
if (chandef.chan->flags & (IEEE80211_CHAN_NO_IR | IEEE80211_CHAN_RADAR)) {
drivers/net/wireless/mediatek/mt76/scan.c
168
if (dev->scan.chan && phy->offchannel)
drivers/net/wireless/mediatek/mt76/scan.c
19
if (dev->scan.chan && phy->main_chandef.chan && phy->offchannel &&
drivers/net/wireless/mediatek/mt76/scan.c
47
enum nl80211_band band = dev->scan.chan->band;
drivers/net/wireless/mediatek/mt76/scan.c
86
void mt76_scan_rx_beacon(struct mt76_dev *dev, struct ieee80211_channel *chan)
drivers/net/wireless/mediatek/mt76/scan.c
93
dev->scan.chan != chan)
drivers/net/wireless/mediatek/mt76/testmode.c
203
if (phy->chandef.chan->band != NL80211_BAND_2GHZ)
drivers/net/wireless/mediatek/mt76/testmode.c
210
if (phy->chandef.chan->band != NL80211_BAND_2GHZ)
drivers/net/wireless/mediatek/mt7601u/init.c
519
const struct ieee80211_channel *chan, int n_chan,
drivers/net/wireless/mediatek/mt7601u/init.c
526
size = n_chan * sizeof(*chan);
drivers/net/wireless/mediatek/mt7601u/init.c
527
chanlist = devm_kmemdup(dev->dev, chan, size, GFP_KERNEL);
drivers/net/wireless/mediatek/mt7601u/init.c
550
dev->chandef.chan = &sband->channels[0];
drivers/net/wireless/mediatek/mt7601u/mac.c
122
int band = dev->chandef.chan->band;
drivers/net/wireless/mediatek/mt7601u/mac.c
489
status->freq = dev->chandef.chan->center_freq;
drivers/net/wireless/mediatek/mt7601u/mac.c
490
status->band = dev->chandef.chan->band;
drivers/net/wireless/mediatek/mt7601u/phy.c
371
struct ieee80211_channel *chan = chandef->chan;
drivers/net/wireless/mediatek/mt7601u/phy.c
382
chan_idx = chan->hw_value - 1;
drivers/net/wireless/mediatek/mt7601u/phy.c
428
mt7601u_apply_ch14_fixup(dev, chan->hw_value);
drivers/net/wireless/mediatek/mt7601u/phy.c
776
return dev->ee->chan_pwr[dev->chandef.chan->hw_value - 1];
drivers/net/wireless/mediatek/mt7601u/phy.c
904
if (dev->chandef.chan->hw_value < 5)
drivers/net/wireless/mediatek/mt7601u/phy.c
906
else if (dev->chandef.chan->hw_value < 9)
drivers/net/wireless/microchip/wilc1000/cfg80211.c
1102
struct ieee80211_channel *chan,
drivers/net/wireless/microchip/wilc1000/cfg80211.c
1120
ret = wilc_remain_on_channel(vif, id, chan->hw_value,
drivers/net/wireless/microchip/wilc1000/cfg80211.c
1125
vif->wilc->op_ch = chan->hw_value;
drivers/net/wireless/microchip/wilc1000/cfg80211.c
1127
priv->remain_on_ch_params.listen_ch = chan;
drivers/net/wireless/microchip/wilc1000/cfg80211.c
1133
cfg80211_ready_on_channel(wdev, *cookie, chan, duration, GFP_KERNEL);
drivers/net/wireless/microchip/wilc1000/cfg80211.c
1158
struct ieee80211_channel *chan = params->chan;
drivers/net/wireless/microchip/wilc1000/cfg80211.c
1196
wilc_set_mac_chnl_num(vif, chan->hw_value);
drivers/net/wireless/microchip/wilc1000/cfg80211.c
1197
vif->wilc->op_ch = chan->hw_value;
drivers/net/wireless/microchip/wilc1000/cfg80211.c
1202
if (chan)
drivers/net/wireless/microchip/wilc1000/cfg80211.c
1203
wilc_set_mac_chnl_num(vif, chan->hw_value);
drivers/net/wireless/microchip/wilc1000/cfg80211.c
1213
wilc_set_mac_chnl_num(vif, chan->hw_value);
drivers/net/wireless/microchip/wilc1000/cfg80211.c
1214
vif->wilc->op_ch = chan->hw_value;
drivers/net/wireless/microchip/wilc1000/cfg80211.c
250
channelnum = ieee80211_frequency_to_channel(chandef->chan->center_freq);
drivers/net/wireless/microchip/wilc1000/hif.c
1702
int wilc_remain_on_channel(struct wilc_vif *vif, u64 cookie, u16 chan,
drivers/net/wireless/microchip/wilc1000/hif.c
1708
roc.ch = chan;
drivers/net/wireless/microchip/wilc1000/hif.h
198
int wilc_remain_on_channel(struct wilc_vif *vif, u64 cookie, u16 chan,
drivers/net/wireless/quantenna/qtnfmac/cfg80211.c
471
if (params->chan)
drivers/net/wireless/quantenna/qtnfmac/cfg80211.c
472
freq = params->chan->center_freq;
drivers/net/wireless/quantenna/qtnfmac/cfg80211.c
752
struct ieee80211_channel *chan;
drivers/net/wireless/quantenna/qtnfmac/cfg80211.c
767
chan = &sband->channels[idx];
drivers/net/wireless/quantenna/qtnfmac/cfg80211.c
768
survey->channel = chan;
drivers/net/wireless/quantenna/qtnfmac/cfg80211.c
771
if (chandef && chan == chandef->chan)
drivers/net/wireless/quantenna/qtnfmac/cfg80211.c
774
ret = qtnf_cmd_get_chan_stats(mac, chan->center_freq, survey);
drivers/net/wireless/quantenna/qtnfmac/cfg80211.c
777
chan->hw_value);
drivers/net/wireless/quantenna/qtnfmac/cfg80211.c
804
ndev->name, chandef->chan->center_freq,
drivers/net/wireless/quantenna/qtnfmac/cfg80211.c
822
params->chandef.chan->hw_value, params->count,
drivers/net/wireless/quantenna/qtnfmac/cfg80211.c
833
dev->name, params->chandef.chan->hw_value);
drivers/net/wireless/quantenna/qtnfmac/commands.c
1364
struct ieee80211_channel *chan;
drivers/net/wireless/quantenna/qtnfmac/commands.c
1388
band->channels = kzalloc_objs(*chan, band->n_channels);
drivers/net/wireless/quantenna/qtnfmac/commands.c
1412
chan = &band->channels[chidx++];
drivers/net/wireless/quantenna/qtnfmac/commands.c
1415
chan->hw_value = le16_to_cpu(qchan->hw_value);
drivers/net/wireless/quantenna/qtnfmac/commands.c
1416
chan->band = band->band;
drivers/net/wireless/quantenna/qtnfmac/commands.c
1417
chan->center_freq = le16_to_cpu(qchan->center_freq);
drivers/net/wireless/quantenna/qtnfmac/commands.c
1418
chan->max_antenna_gain = (int)qchan->max_antenna_gain;
drivers/net/wireless/quantenna/qtnfmac/commands.c
1419
chan->max_power = (int)qchan->max_power;
drivers/net/wireless/quantenna/qtnfmac/commands.c
1420
chan->max_reg_power = (int)qchan->max_reg_power;
drivers/net/wireless/quantenna/qtnfmac/commands.c
1421
chan->beacon_found = qchan->beacon_found;
drivers/net/wireless/quantenna/qtnfmac/commands.c
1422
chan->dfs_cac_ms = le32_to_cpu(qchan->dfs_cac_ms);
drivers/net/wireless/quantenna/qtnfmac/commands.c
1423
chan->flags = 0;
drivers/net/wireless/quantenna/qtnfmac/commands.c
1426
chan->flags |= IEEE80211_CHAN_DISABLED;
drivers/net/wireless/quantenna/qtnfmac/commands.c
1429
chan->flags |= IEEE80211_CHAN_NO_IR;
drivers/net/wireless/quantenna/qtnfmac/commands.c
1432
chan->flags |= IEEE80211_CHAN_NO_HT40PLUS;
drivers/net/wireless/quantenna/qtnfmac/commands.c
1435
chan->flags |= IEEE80211_CHAN_NO_HT40MINUS;
drivers/net/wireless/quantenna/qtnfmac/commands.c
1438
chan->flags |= IEEE80211_CHAN_NO_OFDM;
drivers/net/wireless/quantenna/qtnfmac/commands.c
1441
chan->flags |= IEEE80211_CHAN_NO_80MHZ;
drivers/net/wireless/quantenna/qtnfmac/commands.c
1444
chan->flags |= IEEE80211_CHAN_NO_160MHZ;
drivers/net/wireless/quantenna/qtnfmac/commands.c
1447
chan->flags |= IEEE80211_CHAN_INDOOR_ONLY;
drivers/net/wireless/quantenna/qtnfmac/commands.c
1450
chan->flags |= IEEE80211_CHAN_IR_CONCURRENT;
drivers/net/wireless/quantenna/qtnfmac/commands.c
1453
chan->flags |= IEEE80211_CHAN_NO_20MHZ;
drivers/net/wireless/quantenna/qtnfmac/commands.c
1456
chan->flags |= IEEE80211_CHAN_NO_10MHZ;
drivers/net/wireless/quantenna/qtnfmac/commands.c
1459
chan->flags |= IEEE80211_CHAN_RADAR;
drivers/net/wireless/quantenna/qtnfmac/commands.c
1460
chan->dfs_state_entered = jiffies;
drivers/net/wireless/quantenna/qtnfmac/commands.c
1463
chan->dfs_state = NL80211_DFS_USABLE;
drivers/net/wireless/quantenna/qtnfmac/commands.c
1466
chan->dfs_state = NL80211_DFS_AVAILABLE;
drivers/net/wireless/quantenna/qtnfmac/commands.c
1468
chan->dfs_state =
drivers/net/wireless/quantenna/qtnfmac/commands.c
1473
chan->hw_value, chan->flags, chan->max_power,
drivers/net/wireless/quantenna/qtnfmac/commands.c
1474
chan->max_reg_power);
drivers/net/wireless/quantenna/qtnfmac/commands.c
1950
qch = &tlv->chan;
drivers/net/wireless/quantenna/qtnfmac/commands.c
2505
qlink_chandef_q2cfg(priv_to_wiphy(vif->mac), &resp->chan, chdef);
drivers/net/wireless/quantenna/qtnfmac/commands.c
2531
qlink_chandef_cfg2q(chdef, &cmd->chan);
drivers/net/wireless/quantenna/qtnfmac/event.c
167
le16_to_cpu(join_info->chan.chan.center_freq), status);
drivers/net/wireless/quantenna/qtnfmac/event.c
172
qlink_chandef_q2cfg(wiphy, &join_info->chan, &chandef);
drivers/net/wireless/quantenna/qtnfmac/event.c
176
chandef.chan ? chandef.chan->center_freq : 0,
drivers/net/wireless/quantenna/qtnfmac/event.c
184
bss = cfg80211_get_bss(wiphy, chandef.chan, join_info->bssid,
drivers/net/wireless/quantenna/qtnfmac/event.c
190
join_info->bssid, chandef.chan->hw_value);
drivers/net/wireless/quantenna/qtnfmac/event.c
214
bss = cfg80211_inform_bss(wiphy, chandef.chan,
drivers/net/wireless/quantenna/qtnfmac/event.c
453
qlink_chandef_q2cfg(wiphy, &data->chan, &chandef);
drivers/net/wireless/quantenna/qtnfmac/event.c
457
mac->macid, chandef.chan->center_freq,
drivers/net/wireless/quantenna/qtnfmac/event.c
464
mac->macid, chandef.chan->hw_value, chandef.center_freq1,
drivers/net/wireless/quantenna/qtnfmac/event.c
503
qlink_chandef_q2cfg(wiphy, &ev->chan, &chandef);
drivers/net/wireless/quantenna/qtnfmac/qlink.h
1209
struct qlink_chandef chan;
drivers/net/wireless/quantenna/qtnfmac/qlink.h
1297
struct qlink_chandef chan;
drivers/net/wireless/quantenna/qtnfmac/qlink.h
1321
struct qlink_chandef chan;
drivers/net/wireless/quantenna/qtnfmac/qlink.h
1412
struct qlink_chandef chan;
drivers/net/wireless/quantenna/qtnfmac/qlink.h
1615
struct qlink_channel chan;
drivers/net/wireless/quantenna/qtnfmac/qlink.h
185
struct qlink_channel chan;
drivers/net/wireless/quantenna/qtnfmac/qlink.h
787
struct qlink_chandef chan;
drivers/net/wireless/quantenna/qtnfmac/qlink_util.c
119
struct ieee80211_channel *chan;
drivers/net/wireless/quantenna/qtnfmac/qlink_util.c
121
chan = ieee80211_get_channel(wiphy, le16_to_cpu(qch->chan.center_freq));
drivers/net/wireless/quantenna/qtnfmac/qlink_util.c
123
chdef->chan = chan;
drivers/net/wireless/quantenna/qtnfmac/qlink_util.c
134
struct ieee80211_channel *chan = chdef->chan;
drivers/net/wireless/quantenna/qtnfmac/qlink_util.c
136
qch->chan.hw_value = cpu_to_le16(chan->hw_value);
drivers/net/wireless/quantenna/qtnfmac/qlink_util.c
137
qch->chan.center_freq = cpu_to_le16(chan->center_freq);
drivers/net/wireless/quantenna/qtnfmac/qlink_util.c
138
qch->chan.flags = cpu_to_le32(chan->flags);
drivers/net/wireless/ralink/rt2x00/rt2800lib.c
1257
struct ieee80211_channel *chan = rt2x00dev->hw->conf.chandef.chan;
drivers/net/wireless/ralink/rt2x00/rt2800lib.c
1259
&rt2x00dev->chan_survey[chan->hw_value];
drivers/net/wireless/ralink/rt2x00/rt2800lib.c
3920
struct ieee80211_channel *chan,
drivers/net/wireless/ralink/rt2x00/rt2800lib.c
3987
if (chan->center_freq > 2457) {
drivers/net/wireless/ralink/rt2x00/rt2800lib.c
4820
struct ieee80211_channel *chan,
drivers/net/wireless/ralink/rt2x00/rt2800lib.c
4827
enum nl80211_band band = chan->band;
drivers/net/wireless/ralink/rt2x00/rt2800lib.c
5206
struct ieee80211_channel *chan,
drivers/net/wireless/ralink/rt2x00/rt2800lib.c
5213
enum nl80211_band band = chan->band;
drivers/net/wireless/ralink/rt2x00/rt2800lib.c
5324
rt2800_config_alc_rt6352(rt2x00dev, chan, power_level);
drivers/net/wireless/ralink/rt2x00/rt2800lib.c
5339
struct ieee80211_channel *chan,
drivers/net/wireless/ralink/rt2x00/rt2800lib.c
5346
enum nl80211_band band = chan->band;
drivers/net/wireless/ralink/rt2x00/rt2800lib.c
5382
chan->max_power);
drivers/net/wireless/ralink/rt2x00/rt2800lib.c
5522
struct ieee80211_channel *chan,
drivers/net/wireless/ralink/rt2x00/rt2800lib.c
5527
rt2800_config_txpower_rt3593(rt2x00dev, chan, power_level);
drivers/net/wireless/ralink/rt2x00/rt2800lib.c
5529
rt2800_config_txpower_rt6352(rt2x00dev, chan, power_level);
drivers/net/wireless/ralink/rt2x00/rt2800lib.c
5531
rt2800_config_txpower_rt28xx(rt2x00dev, chan, power_level);
drivers/net/wireless/ralink/rt2x00/rt2800lib.c
5536
rt2800_config_txpower(rt2x00dev, rt2x00dev->hw->conf.chandef.chan,
drivers/net/wireless/ralink/rt2x00/rt2800lib.c
5695
rt2800_config_txpower(rt2x00dev, libconf->conf->chandef.chan,
drivers/net/wireless/ralink/rt2x00/rt2800lib.c
5699
rt2800_config_txpower(rt2x00dev, libconf->conf->chandef.chan,
drivers/net/wireless/ralink/rt2x00/rt2x00config.c
175
center_channel = spec->channels[conf->chandef.chan->hw_value].channel;
drivers/net/wireless/ralink/rt2x00/rt2x00config.c
190
return conf->chandef.chan->hw_value;
drivers/net/wireless/ralink/rt2x00/rt2x00config.c
218
hw_value = conf->chandef.chan->hw_value;
drivers/net/wireless/ralink/rt2x00/rt2x00config.c
252
rt2x00dev->curr_band = conf->chandef.chan->band;
drivers/net/wireless/ralink/rt2x00/rt2x00config.c
253
rt2x00dev->curr_freq = conf->chandef.chan->center_freq;
drivers/net/wireless/ralink/rt2x00/rt61pci.c
756
if (libconf->conf->chandef.chan->band == NL80211_BAND_2GHZ) {
drivers/net/wireless/ralink/rt2x00/rt73usb.c
731
if (libconf->conf->chandef.chan->band == NL80211_BAND_2GHZ) {
drivers/net/wireless/realtek/rtl818x/rtl8180/dev.c
313
rx_status.freq = dev->conf.chandef.chan->center_freq;
drivers/net/wireless/realtek/rtl818x/rtl8180/dev.c
314
rx_status.band = dev->conf.chandef.chan->band;
drivers/net/wireless/realtek/rtl818x/rtl8180/grf5101.c
54
static void grf5101_write_phy_antenna(struct ieee80211_hw *dev, short chan)
drivers/net/wireless/realtek/rtl818x/rtl8180/grf5101.c
62
if (chan == 14)
drivers/net/wireless/realtek/rtl818x/rtl8180/grf5101.c
82
ieee80211_frequency_to_channel(conf->chandef.chan->center_freq);
drivers/net/wireless/realtek/rtl818x/rtl8180/grf5101.c
84
u32 chan = channel - 1;
drivers/net/wireless/realtek/rtl818x/rtl8180/grf5101.c
94
write_grf5101(dev, 0x0B, chan);
drivers/net/wireless/realtek/rtl818x/rtl8180/max2820.c
104
write_max2820(dev, 3, chan);
drivers/net/wireless/realtek/rtl818x/rtl8180/max2820.c
59
static void max2820_write_phy_antenna(struct ieee80211_hw *dev, short chan)
drivers/net/wireless/realtek/rtl818x/rtl8180/max2820.c
67
if (chan == 14)
drivers/net/wireless/realtek/rtl818x/rtl8180/max2820.c
94
ieee80211_frequency_to_channel(conf->chandef.chan->center_freq) : 1;
drivers/net/wireless/realtek/rtl818x/rtl8180/max2820.c
97
u32 chan = max2820_chan[chan_idx];
drivers/net/wireless/realtek/rtl818x/rtl8180/rtl8225.c
719
int chan =
drivers/net/wireless/realtek/rtl818x/rtl8180/rtl8225.c
720
ieee80211_frequency_to_channel(conf->chandef.chan->center_freq);
drivers/net/wireless/realtek/rtl818x/rtl8180/rtl8225.c
723
rtl8225_rf_set_tx_power(dev, chan);
drivers/net/wireless/realtek/rtl818x/rtl8180/rtl8225.c
725
rtl8225z2_rf_set_tx_power(dev, chan);
drivers/net/wireless/realtek/rtl818x/rtl8180/rtl8225.c
727
rtl8225_write(dev, 0x7, rtl8225_chan[chan - 1]);
drivers/net/wireless/realtek/rtl818x/rtl8180/rtl8225se.c
409
int chan =
drivers/net/wireless/realtek/rtl818x/rtl8180/rtl8225se.c
410
ieee80211_frequency_to_channel(conf->chandef.chan->center_freq);
drivers/net/wireless/realtek/rtl818x/rtl8180/rtl8225se.c
412
rtl8225sez2_rf_set_tx_power(dev, chan);
drivers/net/wireless/realtek/rtl818x/rtl8180/rtl8225se.c
413
rtl8187se_rf_writereg(dev, 0x7, rtl8225se_chan[chan - 1]);
drivers/net/wireless/realtek/rtl818x/rtl8180/rtl8225se.c
415
rtl8225se_chan[chan - 1])
drivers/net/wireless/realtek/rtl818x/rtl8180/rtl8225se.c
416
rtl8187se_rf_writereg(dev, 0x7, rtl8225se_chan[chan - 1]);
drivers/net/wireless/realtek/rtl818x/rtl8180/sa2400.c
105
ieee80211_frequency_to_channel(conf->chandef.chan->center_freq);
drivers/net/wireless/realtek/rtl818x/rtl8180/sa2400.c
107
u32 chan = sa2400_chan[channel - 1];
drivers/net/wireless/realtek/rtl818x/rtl8180/sa2400.c
113
write_sa2400(dev, 0, chan);
drivers/net/wireless/realtek/rtl818x/rtl8180/sa2400.c
60
static void sa2400_write_phy_antenna(struct ieee80211_hw *dev, short chan)
drivers/net/wireless/realtek/rtl818x/rtl8180/sa2400.c
68
if (chan == 14)
drivers/net/wireless/realtek/rtl818x/rtl8187/dev.c
389
rx_status.freq = dev->conf.chandef.chan->center_freq;
drivers/net/wireless/realtek/rtl818x/rtl8187/dev.c
390
rx_status.band = dev->conf.chandef.chan->band;
drivers/net/wireless/realtek/rtl818x/rtl8187/rtl8225.c
1000
rtl8225_write(dev, 0x7, rtl8225_chan[chan - 1]);
drivers/net/wireless/realtek/rtl818x/rtl8187/rtl8225.c
990
int chan =
drivers/net/wireless/realtek/rtl818x/rtl8187/rtl8225.c
991
ieee80211_frequency_to_channel(conf->chandef.chan->center_freq);
drivers/net/wireless/realtek/rtl818x/rtl8187/rtl8225.c
994
rtl8225_rf_set_tx_power(dev, chan);
drivers/net/wireless/realtek/rtl818x/rtl8187/rtl8225.c
996
rtl8225z2_rf_set_tx_power(dev, chan);
drivers/net/wireless/realtek/rtl818x/rtl8187/rtl8225.c
998
rtl8225z2_b_rf_set_tx_power(dev, chan);
drivers/net/wireless/realtek/rtl8xxxu/8188e.c
433
channel = hw->conf.chandef.chan->hw_value;
drivers/net/wireless/realtek/rtl8xxxu/8188e.c
451
hw->conf.chandef.chan->center_freq) {
drivers/net/wireless/realtek/rtl8xxxu/8188f.c
521
channel = (u8)hw->conf.chandef.chan->hw_value;
drivers/net/wireless/realtek/rtl8xxxu/8188f.c
587
hw->conf.chandef.chan->center_freq) {
drivers/net/wireless/realtek/rtl8xxxu/8192f.c
592
channel = (u8)hw->conf.chandef.chan->hw_value;
drivers/net/wireless/realtek/rtl8xxxu/8710b.c
687
channel = (u8)hw->conf.chandef.chan->hw_value;
drivers/net/wireless/realtek/rtl8xxxu/core.c
1218
channel = hw->conf.chandef.chan->hw_value;
drivers/net/wireless/realtek/rtl8xxxu/core.c
1242
hw->conf.chandef.chan->center_freq) {
drivers/net/wireless/realtek/rtl8xxxu/core.c
1341
channel = hw->conf.chandef.chan->hw_value;
drivers/net/wireless/realtek/rtl8xxxu/core.c
1371
hw->conf.chandef.chan->center_freq) {
drivers/net/wireless/realtek/rtl8xxxu/core.c
4758
if (hw->conf.chandef.chan->band == NL80211_BAND_5GHZ)
drivers/net/wireless/realtek/rtl8xxxu/core.c
4778
if (hw->conf.chandef.chan->band == NL80211_BAND_5GHZ) {
drivers/net/wireless/realtek/rtl8xxxu/core.c
4831
if (priv->hw->conf.chandef.chan->band == NL80211_BAND_5GHZ ||
drivers/net/wireless/realtek/rtl8xxxu/core.c
6419
rx_status->freq = hw->conf.chandef.chan->center_freq;
drivers/net/wireless/realtek/rtl8xxxu/core.c
6420
rx_status->band = hw->conf.chandef.chan->band;
drivers/net/wireless/realtek/rtl8xxxu/core.c
6527
rx_status->freq = hw->conf.chandef.chan->center_freq;
drivers/net/wireless/realtek/rtl8xxxu/core.c
6528
rx_status->band = hw->conf.chandef.chan->band;
drivers/net/wireless/realtek/rtl8xxxu/core.c
6818
__func__, hw->conf.chandef.chan->hw_value,
drivers/net/wireless/realtek/rtl8xxxu/core.c
6835
channel = hw->conf.chandef.chan->hw_value;
drivers/net/wireless/realtek/rtlwifi/base.c
1060
if (NL80211_BAND_2GHZ == hw->conf.chandef.chan->band) {
drivers/net/wireless/realtek/rtlwifi/base.c
1351
rx_status.freq = hw->conf.chandef.chan->center_freq;
drivers/net/wireless/realtek/rtlwifi/base.c
1352
rx_status.band = hw->conf.chandef.chan->band;
drivers/net/wireless/realtek/rtlwifi/base.c
2474
info->band = hw->conf.chandef.chan->band;
drivers/net/wireless/realtek/rtlwifi/core.c
627
struct ieee80211_channel *channel = hw->conf.chandef.chan;
drivers/net/wireless/realtek/rtlwifi/core.c
653
(u32)hw->conf.chandef.chan->center_freq;
drivers/net/wireless/realtek/rtlwifi/rtl8188ee/trx.c
416
rx_status->freq = hw->conf.chandef.chan->center_freq;
drivers/net/wireless/realtek/rtlwifi/rtl8188ee/trx.c
417
rx_status->band = hw->conf.chandef.chan->band;
drivers/net/wireless/realtek/rtlwifi/rtl8192ce/trx.c
286
rx_status->freq = hw->conf.chandef.chan->center_freq;
drivers/net/wireless/realtek/rtlwifi/rtl8192ce/trx.c
287
rx_status->band = hw->conf.chandef.chan->band;
drivers/net/wireless/realtek/rtlwifi/rtl8192cu/trx.c
315
rx_status->freq = hw->conf.chandef.chan->center_freq;
drivers/net/wireless/realtek/rtlwifi/rtl8192cu/trx.c
316
rx_status->band = hw->conf.chandef.chan->band;
drivers/net/wireless/realtek/rtlwifi/rtl8192cu/trx.c
384
rx_status->freq = hw->conf.chandef.chan->center_freq;
drivers/net/wireless/realtek/rtlwifi/rtl8192cu/trx.c
385
rx_status->band = hw->conf.chandef.chan->band;
drivers/net/wireless/realtek/rtlwifi/rtl8192d/trx_common.c
409
rx_status->freq = hw->conf.chandef.chan->center_freq;
drivers/net/wireless/realtek/rtlwifi/rtl8192d/trx_common.c
410
rx_status->band = hw->conf.chandef.chan->band;
drivers/net/wireless/realtek/rtlwifi/rtl8192ee/trx.c
369
rx_status->freq = hw->conf.chandef.chan->center_freq;
drivers/net/wireless/realtek/rtlwifi/rtl8192ee/trx.c
370
rx_status->band = hw->conf.chandef.chan->band;
drivers/net/wireless/realtek/rtlwifi/rtl8192se/trx.c
263
rx_status->freq = hw->conf.chandef.chan->center_freq;
drivers/net/wireless/realtek/rtlwifi/rtl8192se/trx.c
264
rx_status->band = hw->conf.chandef.chan->band;
drivers/net/wireless/realtek/rtlwifi/rtl8723ae/trx.c
289
rx_status->freq = hw->conf.chandef.chan->center_freq;
drivers/net/wireless/realtek/rtlwifi/rtl8723ae/trx.c
290
rx_status->band = hw->conf.chandef.chan->band;
drivers/net/wireless/realtek/rtlwifi/rtl8723be/trx.c
344
rx_status->freq = hw->conf.chandef.chan->center_freq;
drivers/net/wireless/realtek/rtlwifi/rtl8723be/trx.c
345
rx_status->band = hw->conf.chandef.chan->band;
drivers/net/wireless/realtek/rtlwifi/rtl8821ae/trx.c
489
rx_status->freq = hw->conf.chandef.chan->center_freq;
drivers/net/wireless/realtek/rtlwifi/rtl8821ae/trx.c
490
rx_status->band = hw->conf.chandef.chan->band;
drivers/net/wireless/realtek/rtw88/fw.c
2132
u8 *chan = &buf[list->size];
drivers/net/wireless/realtek/rtw88/fw.c
2138
CH_INFO_SET_CH(chan, info->channel);
drivers/net/wireless/realtek/rtw88/fw.c
2139
CH_INFO_SET_PRI_CH_IDX(chan, info->pri_ch_idx);
drivers/net/wireless/realtek/rtw88/fw.c
2140
CH_INFO_SET_BW(chan, info->bw);
drivers/net/wireless/realtek/rtw88/fw.c
2141
CH_INFO_SET_TIMEOUT(chan, info->timeout);
drivers/net/wireless/realtek/rtw88/fw.c
2142
CH_INFO_SET_ACTION_ID(chan, info->action_id);
drivers/net/wireless/realtek/rtw88/fw.c
2143
CH_INFO_SET_EXTRA_INFO(chan, info->extra_info);
drivers/net/wireless/realtek/rtw88/fw.c
2145
EXTRA_CH_INFO_SET_ID(chan, RTW_SCAN_EXTRA_ID_DFS);
drivers/net/wireless/realtek/rtw88/fw.c
2146
EXTRA_CH_INFO_SET_INFO(chan, RTW_SCAN_EXTRA_ACTION_SCAN);
drivers/net/wireless/realtek/rtw88/fw.c
2147
EXTRA_CH_INFO_SET_SIZE(chan, RTW_EX_CH_INFO_SIZE -
drivers/net/wireless/realtek/rtw88/fw.c
2149
EXTRA_CH_INFO_SET_DFS_EXT_TIME(chan, RTW_DFS_CHAN_TIME);
drivers/net/wireless/realtek/rtw88/fw.c
2276
u8 chan = scan_info->op_chan;
drivers/net/wireless/realtek/rtw88/fw.c
2287
if (chan)
drivers/net/wireless/realtek/rtw88/fw.c
2427
u8 chan, band, status;
drivers/net/wireless/realtek/rtw88/fw.c
2433
chan = GET_CHAN_SWITCH_CENTRAL_CH(c2h->payload);
drivers/net/wireless/realtek/rtw88/fw.c
2438
band = chan > 14 ? RTW_BAND_5G : RTW_BAND_2G;
drivers/net/wireless/realtek/rtw88/fw.c
2439
rtw_update_channel(rtwdev, chan, chan, band,
drivers/net/wireless/realtek/rtw88/fw.c
2441
if (rtw_is_op_chan(rtwdev, chan)) {
drivers/net/wireless/realtek/rtw88/fw.c
2447
if (IS_CH_5G_BAND(chan)) {
drivers/net/wireless/realtek/rtw88/fw.c
2449
} else if (IS_CH_2G_BAND(chan)) {
drivers/net/wireless/realtek/rtw88/fw.c
2462
if (!rtw_is_op_chan(rtwdev, chan) &&
drivers/net/wireless/realtek/rtw88/fw.c
2470
"Chan switch: %x, id: %x, status: %x\n", chan, id, status);
drivers/net/wireless/realtek/rtw88/main.c
825
struct ieee80211_channel *channel = chandef->chan;
drivers/net/wireless/realtek/rtw88/rx.c
206
rx_status->freq = hw->conf.chandef.chan->center_freq;
drivers/net/wireless/realtek/rtw88/rx.c
207
rx_status->band = hw->conf.chandef.chan->band;
drivers/net/wireless/realtek/rtw89/chan.c
1017
chan = rtw89_chan_get(rtwdev, rtwvif_link->chanctx_idx);
drivers/net/wireless/realtek/rtw89/chan.c
1018
role->is_2ghz = chan->band_type == RTW89_BAND_2G;
drivers/net/wireless/realtek/rtw89/chan.c
131
void rtw89_chan_create(struct rtw89_chan *chan, u8 center_chan, u8 primary_chan,
drivers/net/wireless/realtek/rtw89/chan.c
137
memset(chan, 0, sizeof(*chan));
drivers/net/wireless/realtek/rtw89/chan.c
138
chan->channel = center_chan;
drivers/net/wireless/realtek/rtw89/chan.c
139
chan->primary_channel = primary_chan;
drivers/net/wireless/realtek/rtw89/chan.c
140
chan->band_type = band;
drivers/net/wireless/realtek/rtw89/chan.c
141
chan->band_width = bandwidth;
drivers/net/wireless/realtek/rtw89/chan.c
146
chan->freq = center_freq;
drivers/net/wireless/realtek/rtw89/chan.c
147
chan->subband_type = rtw89_get_subband_type(band, center_chan);
drivers/net/wireless/realtek/rtw89/chan.c
148
chan->tx_comp_band = rtw89_get_tx_comp_band(band, center_chan);
drivers/net/wireless/realtek/rtw89/chan.c
149
chan->pri_ch_idx = rtw89_get_primary_chan_idx(bandwidth, center_freq,
drivers/net/wireless/realtek/rtw89/chan.c
151
chan->pri_sb_idx = rtw89_get_primary_sb_idx(center_chan, primary_chan,
drivers/net/wireless/realtek/rtw89/chan.c
153
chan->rfsi_band = band == RTW89_BAND_2G ? RFSI_CTRL_BAND_2GHZ :
drivers/net/wireless/realtek/rtw89/chan.c
1874
const struct rtw89_chan *chan;
drivers/net/wireless/realtek/rtw89/chan.c
1877
chan = rtw89_chan_get(rtwdev, role->rtwvif_link->chanctx_idx);
drivers/net/wireless/realtek/rtw89/chan.c
1878
req.central_ch_seg0 = chan->channel;
drivers/net/wireless/realtek/rtw89/chan.c
1879
req.primary_ch = chan->primary_channel;
drivers/net/wireless/realtek/rtw89/chan.c
1880
req.bandwidth = chan->band_width;
drivers/net/wireless/realtek/rtw89/chan.c
1881
req.ch_band_type = chan->band_type;
drivers/net/wireless/realtek/rtw89/chan.c
1927
const struct rtw89_chan *chan;
drivers/net/wireless/realtek/rtw89/chan.c
1935
chan = rtw89_chan_get(rtwdev, role->rtwvif_link->chanctx_idx);
drivers/net/wireless/realtek/rtw89/chan.c
1939
slot_arg->roles[0].band = chan->band_type;
drivers/net/wireless/realtek/rtw89/chan.c
1940
slot_arg->roles[0].bw = chan->band_width;
drivers/net/wireless/realtek/rtw89/chan.c
1941
slot_arg->roles[0].central_ch = chan->channel;
drivers/net/wireless/realtek/rtw89/chan.c
1942
slot_arg->roles[0].primary_ch = chan->primary_channel;
drivers/net/wireless/realtek/rtw89/chan.c
204
struct rtw89_chan *chan = &hal->chanctx[idx].chan;
drivers/net/wireless/realtek/rtw89/chan.c
208
rcd->prev_primary_channel = chan->primary_channel;
drivers/net/wireless/realtek/rtw89/chan.c
209
rcd->prev_band_type = chan->band_type;
drivers/net/wireless/realtek/rtw89/chan.c
210
band_changed = new->band_type != chan->band_type;
drivers/net/wireless/realtek/rtw89/chan.c
213
*chan = *new;
drivers/net/wireless/realtek/rtw89/chan.c
218
int (*iterator)(const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/chan.c
223
const struct rtw89_chan *chan;
drivers/net/wireless/realtek/rtw89/chan.c
230
chan = rtw89_chan_get(rtwdev, idx);
drivers/net/wireless/realtek/rtw89/chan.c
231
ret = iterator(chan, data);
drivers/net/wireless/realtek/rtw89/chan.c
3144
const struct rtw89_chan *chan;
drivers/net/wireless/realtek/rtw89/chan.c
3159
chan = rtw89_chan_get(rtwdev, chanctx_idx);
drivers/net/wireless/realtek/rtw89/chan.c
3160
num[chan->band_type]++;
drivers/net/wireless/realtek/rtw89/chan.c
600
struct rtw89_chan chan;
drivers/net/wireless/realtek/rtw89/chan.c
645
rtw89_get_channel_params(chandef, &chan);
drivers/net/wireless/realtek/rtw89/chan.c
646
if (chan.channel == 0) {
drivers/net/wireless/realtek/rtw89/chan.c
651
rtw89_assign_entity_chan(rtwdev, idx, &chan);
drivers/net/wireless/realtek/rtw89/chan.c
997
const struct rtw89_chan *chan;
drivers/net/wireless/realtek/rtw89/chan.h
159
void rtw89_chan_create(struct rtw89_chan *chan, u8 center_chan, u8 primary_chan,
drivers/net/wireless/realtek/rtw89/chan.h
165
int (*iterator)(const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/coex.c
6589
if (r1->chan != r2->chan) { /* primary ch is different */
drivers/net/wireless/realtek/rtw89/coex.c
8170
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev,
drivers/net/wireless/realtek/rtw89/coex.c
8192
chan->band_type, chan->channel, chan->band_width);
drivers/net/wireless/realtek/rtw89/coex.c
8235
r.band = chan->band_type;
drivers/net/wireless/realtek/rtw89/coex.c
8236
r.ch = chan->channel;
drivers/net/wireless/realtek/rtw89/coex.c
8237
r.bw = chan->band_width;
drivers/net/wireless/realtek/rtw89/coex.c
8238
r.chdef.band = chan->band_type;
drivers/net/wireless/realtek/rtw89/coex.c
8239
r.chdef.center_ch = chan->channel;
drivers/net/wireless/realtek/rtw89/coex.c
8240
r.chdef.bw = chan->band_width;
drivers/net/wireless/realtek/rtw89/coex.c
8241
r.chdef.chan = chan->primary_channel;
drivers/net/wireless/realtek/rtw89/coex.h
308
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, chanctx_idx);
drivers/net/wireless/realtek/rtw89/coex.h
313
FIELD_PREP(BTC_RFK_BAND_MAP, chan->band_type);
drivers/net/wireless/realtek/rtw89/core.c
1051
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, idx);
drivers/net/wireless/realtek/rtw89/core.c
1061
else if (chan->band_type == RTW89_BAND_2G)
drivers/net/wireless/realtek/rtw89/core.c
1072
if (!link_sta->supp_rates[chan->band_type]) {
drivers/net/wireless/realtek/rtw89/core.c
1077
rate = __ffs(link_sta->supp_rates[chan->band_type]) + lowest_rate;
drivers/net/wireless/realtek/rtw89/core.c
1196
const struct rtw89_chan *chan;
drivers/net/wireless/realtek/rtw89/core.c
1220
chan = rtw89_chan_get(rtwdev, tx_req->rtwvif_link->chanctx_idx);
drivers/net/wireless/realtek/rtw89/core.c
1222
desc_info->data_rate = idx + (chan->band_type == RTW89_BAND_2G ?
drivers/net/wireless/realtek/rtw89/core.c
2789
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, rtwvif_link->chanctx_idx);
drivers/net/wireless/realtek/rtw89/core.c
2799
switch (chan->band_type) {
drivers/net/wireless/realtek/rtw89/core.c
3155
u16 chan = rcd->prev_primary_channel;
drivers/net/wireless/realtek/rtw89/core.c
3161
status->freq = ieee80211_channel_to_frequency(chan, band);
drivers/net/wireless/realtek/rtw89/core.c
3792
int chan;
drivers/net/wireless/realtek/rtw89/core.c
3820
chan = cfg80211_get_ies_channel_number(variable, ielen, NL80211_BAND_2GHZ);
drivers/net/wireless/realtek/rtw89/core.c
3821
if (chan == -1)
drivers/net/wireless/realtek/rtw89/core.c
3824
rx_status->band = chan > 14 ? RTW89_BAND_5G : RTW89_BAND_2G;
drivers/net/wireless/realtek/rtw89/core.c
3825
rx_status->freq = ieee80211_channel_to_frequency(chan, rx_status->band);
drivers/net/wireless/realtek/rtw89/core.c
3836
const struct rtw89_chan *chan;
drivers/net/wireless/realtek/rtw89/core.c
3855
chan = rtw89_chan_get(rtwdev, rtwvif_link->chanctx_idx);
drivers/net/wireless/realtek/rtw89/core.c
3856
band = rtw89_hw_to_nl80211_band(chan->band_type);
drivers/net/wireless/realtek/rtw89/core.c
3857
rx_status->freq = ieee80211_channel_to_frequency(chan->primary_channel, band);
drivers/net/wireless/realtek/rtw89/core.c
402
struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/core.c
404
struct ieee80211_channel *channel = chandef->chan;
drivers/net/wireless/realtek/rtw89/core.c
4340
rx_status->freq = chandef->chan->center_freq;
drivers/net/wireless/realtek/rtw89/core.c
4341
rx_status->band = chandef->chan->band;
drivers/net/wireless/realtek/rtw89/core.c
4350
u8 chan = cur->primary_channel;
drivers/net/wireless/realtek/rtw89/core.c
4355
rx_status->freq = ieee80211_channel_to_frequency(chan, nl_band);
drivers/net/wireless/realtek/rtw89/core.c
458
rtw89_chan_create(chan, center_chan, channel->hw_value, band, bandwidth);
drivers/net/wireless/realtek/rtw89/core.c
462
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/core.c
472
chip->ops->set_txpwr(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/core.c
5034
cfg80211_chandef_create(&roc_chan, &roc->chan, NL80211_CHAN_NO_HT);
drivers/net/wireless/realtek/rtw89/core.c
5311
const struct rtw89_chan *chan;
drivers/net/wireless/realtek/rtw89/core.c
532
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/core.c
5335
chan = rtw89_chan_get(rtwdev, rtwvif_link->chanctx_idx);
drivers/net/wireless/realtek/rtw89/core.c
5336
if (decided_bands & BIT(chan->band_type))
drivers/net/wireless/realtek/rtw89/core.c
5353
channel = link_conf->chanreq.oper.chan;
drivers/net/wireless/realtek/rtw89/core.c
543
chan_rcd = rtw89_chan_rcd_get_by_chan(chan);
drivers/net/wireless/realtek/rtw89/core.c
545
rtw89_chip_set_channel_prepare(rtwdev, &bak, chan, mac_idx, phy_idx);
drivers/net/wireless/realtek/rtw89/core.c
547
chip->ops->set_channel(rtwdev, chan, mac_idx, phy_idx);
drivers/net/wireless/realtek/rtw89/core.c
549
chip->ops->set_txpwr(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/core.c
551
rtw89_chip_set_channel_done(rtwdev, &bak, chan, mac_idx, phy_idx);
drivers/net/wireless/realtek/rtw89/core.c
554
rtw89_btc_ntfy_switch_band(rtwdev, phy_idx, chan->band_type);
drivers/net/wireless/realtek/rtw89/core.c
555
rtw89_chip_rfk_band_changed(rtwdev, phy_idx, chan);
drivers/net/wireless/realtek/rtw89/core.c
5807
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev,
drivers/net/wireless/realtek/rtw89/core.c
5872
rtw89_core_get_no_ul_ofdma_htc(rtwdev, &rtwsta_link->htc_template, chan);
drivers/net/wireless/realtek/rtw89/core.c
6972
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev,
drivers/net/wireless/realtek/rtw89/core.c
6979
rtw89_btc_ntfy_scan_start(rtwdev, rtwvif_link->phy_idx, chan->band_type);
drivers/net/wireless/realtek/rtw89/core.c
713
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/core.c
727
else if (chan->band_type == RTW89_BAND_2G)
drivers/net/wireless/realtek/rtw89/core.c
871
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev,
drivers/net/wireless/realtek/rtw89/core.c
891
desc_info->data_rate = rtw89_core_get_mgmt_rate(rtwdev, tx_req, chan);
drivers/net/wireless/realtek/rtw89/core.c
900
desc_info->data_rate, chan->channel, chan->band_type,
drivers/net/wireless/realtek/rtw89/core.c
901
chan->band_width);
drivers/net/wireless/realtek/rtw89/core.c
916
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/core.c
930
chan->band_type != RTW89_BAND_2G ||
drivers/net/wireless/realtek/rtw89/core.c
931
chan->band_width != RTW89_CHANNEL_WIDTH_40)
drivers/net/wireless/realtek/rtw89/core.c
934
om_bandwidth = chan->band_width < ARRAY_SIZE(rtw89_bandwidth_to_om) ?
drivers/net/wireless/realtek/rtw89/core.c
935
rtw89_bandwidth_to_om[chan->band_width] : 0;
drivers/net/wireless/realtek/rtw89/core.h
1558
u8 chan;
drivers/net/wireless/realtek/rtw89/core.h
3686
struct ieee80211_channel chan;
drivers/net/wireless/realtek/rtw89/core.h
3859
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/core.h
3864
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/core.h
3879
const struct rtw89_chan *chan);
drivers/net/wireless/realtek/rtw89/core.h
3885
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/core.h
3892
const struct rtw89_chan *chan);
drivers/net/wireless/realtek/rtw89/core.h
3911
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/core.h
5281
struct rtw89_chan chan;
drivers/net/wireless/realtek/rtw89/core.h
6052
struct rtw89_chan chan;
drivers/net/wireless/realtek/rtw89/core.h
7436
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/core.h
7440
rtwdev->chip->ops->set_channel_help(rtwdev, true, p, chan,
drivers/net/wireless/realtek/rtw89/core.h
7447
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/core.h
7451
rtwdev->chip->ops->set_channel_help(rtwdev, false, p, chan,
drivers/net/wireless/realtek/rtw89/core.h
7474
return &hal->chanctx[idx].chan;
drivers/net/wireless/realtek/rtw89/core.h
7487
const struct rtw89_chan_rcd *rtw89_chan_rcd_get_by_chan(const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/core.h
7490
container_of_const(chan, struct rtw89_chanctx, chan);
drivers/net/wireless/realtek/rtw89/core.h
7594
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/core.h
7599
chip->ops->rfk_band_changed(rtwdev, phy_idx, chan);
drivers/net/wireless/realtek/rtw89/core.h
7667
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/core.h
7674
return chip->ops->chan_to_rf18_val(rtwdev, chan);
drivers/net/wireless/realtek/rtw89/core.h
7734
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/core.h
7742
chip->ops->calc_rx_gain_normal(rtwdev, chan, path, phy_idx, calc);
drivers/net/wireless/realtek/rtw89/core.h
8160
struct rtw89_chan *chan);
drivers/net/wireless/realtek/rtw89/debug.c
1005
p += rtw89_print_ant_gain(rtwdev, p, end - p, chan);
drivers/net/wireless/realtek/rtw89/debug.c
906
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/debug.c
910
u8 band = chan->band_type;
drivers/net/wireless/realtek/rtw89/debug.c
952
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/debug.c
959
chan->band_type, chan->channel, chan->band_width);
drivers/net/wireless/realtek/rtw89/debug.c
962
p += __print_regd(rtwdev, p, end - p, chan);
drivers/net/wireless/realtek/rtw89/debug.c
964
if (chan->band_type == RTW89_BAND_6G) {
drivers/net/wireless/realtek/rtw89/debug.c
986
const struct rtw89_chan *chan;
drivers/net/wireless/realtek/rtw89/debug.c
993
chan = rtw89_chan_get(rtwdev, RTW89_CHANCTX_0);
drivers/net/wireless/realtek/rtw89/debug.c
994
sar_parm.center_freq = chan->freq;
drivers/net/wireless/realtek/rtw89/debug.c
996
p += rtw89_debug_priv_txpwr_table_get_regd(rtwdev, p, end - p, chan);
drivers/net/wireless/realtek/rtw89/fw.c
3169
const struct rtw89_chan *chan;
drivers/net/wireless/realtek/rtw89/fw.c
3196
chan = rtw89_chan_get(rtwdev, rtwvif_link->chanctx_idx);
drivers/net/wireless/realtek/rtw89/fw.c
3199
h2c->info[phy_idx].central_ch = chan->channel;
drivers/net/wireless/realtek/rtw89/fw.c
3200
h2c->info[phy_idx].pri_ch = chan->primary_channel;
drivers/net/wireless/realtek/rtw89/fw.c
3201
h2c->info[phy_idx].band = chan->band_type;
drivers/net/wireless/realtek/rtw89/fw.c
3202
h2c->info[phy_idx].bw = chan->band_width;
drivers/net/wireless/realtek/rtw89/fw.c
3246
const struct rtw89_chan *chan;
drivers/net/wireless/realtek/rtw89/fw.c
3277
chan = rtw89_chan_get(rtwdev, rtwvif_link->chanctx_idx);
drivers/net/wireless/realtek/rtw89/fw.c
3278
gain_band = rtw89_subband_to_gain_band_be(chan->subband_type);
drivers/net/wireless/realtek/rtw89/fw.c
3281
h2c->central_ch[rtwvif_link->phy_idx] = chan->channel;
drivers/net/wireless/realtek/rtw89/fw.c
3282
h2c->pri_ch[rtwvif_link->phy_idx] = chan->primary_channel;
drivers/net/wireless/realtek/rtw89/fw.c
3283
h2c->band[rtwvif_link->phy_idx] = chan->band_type;
drivers/net/wireless/realtek/rtw89/fw.c
3284
h2c->bw[rtwvif_link->phy_idx] = chan->band_width;
drivers/net/wireless/realtek/rtw89/fw.c
3339
const struct rtw89_chan *chan, u8 phy_idx)
drivers/net/wireless/realtek/rtw89/fw.c
3344
u8 bw = chan->band_width;
drivers/net/wireless/realtek/rtw89/fw.c
3350
rtw89_chan_create(&chan_bcn, chan->primary_channel, chan->primary_channel,
drivers/net/wireless/realtek/rtw89/fw.c
3351
chan->band_type, RTW89_CHANNEL_WIDTH_20);
drivers/net/wireless/realtek/rtw89/fw.c
3359
rtw89_chip_calc_rx_gain_normal(rtwdev, chan, path, phy_idx,
drivers/net/wireless/realtek/rtw89/fw.c
3361
gain_band = rtw89_subband_to_gain_band_be(chan->subband_type);
drivers/net/wireless/realtek/rtw89/fw.c
3416
const struct rtw89_chan *chan;
drivers/net/wireless/realtek/rtw89/fw.c
3448
chan = rtw89_chan_get(rtwdev, rtwvif_link->chanctx_idx);
drivers/net/wireless/realtek/rtw89/fw.c
3451
h2c->central_ch[phy_idx] = chan->channel;
drivers/net/wireless/realtek/rtw89/fw.c
3452
h2c->pri_ch[phy_idx] = chan->primary_channel;
drivers/net/wireless/realtek/rtw89/fw.c
3453
h2c->band[phy_idx] = chan->band_type;
drivers/net/wireless/realtek/rtw89/fw.c
3454
h2c->bw[phy_idx] = chan->band_width;
drivers/net/wireless/realtek/rtw89/fw.c
3466
chan, phy_idx);
drivers/net/wireless/realtek/rtw89/fw.c
3849
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev,
drivers/net/wireless/realtek/rtw89/fw.c
3876
else if (chan->band_type == RTW89_BAND_2G)
drivers/net/wireless/realtek/rtw89/fw.c
3995
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, rtwvif_link->chanctx_idx);
drivers/net/wireless/realtek/rtw89/fw.c
4029
else if (chan->band_type == RTW89_BAND_2G)
drivers/net/wireless/realtek/rtw89/fw.c
4123
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, rtwvif_link->chanctx_idx);
drivers/net/wireless/realtek/rtw89/fw.c
4157
else if (chan->band_type == RTW89_BAND_2G)
drivers/net/wireless/realtek/rtw89/fw.c
4656
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev,
drivers/net/wireless/realtek/rtw89/fw.c
4673
else if (chan->band_type == RTW89_BAND_2G)
drivers/net/wireless/realtek/rtw89/fw.c
4736
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, rtwvif_link->chanctx_idx);
drivers/net/wireless/realtek/rtw89/fw.c
4752
else if (chan->band_type == RTW89_BAND_2G)
drivers/net/wireless/realtek/rtw89/fw.c
6773
struct ieee80211_channel *chan;
drivers/net/wireless/realtek/rtw89/fw.c
6783
chan = &sband->channels[i];
drivers/net/wireless/realtek/rtw89/fw.c
6784
if (chan->flags & IEEE80211_CHAN_DISABLED) {
drivers/net/wireless/realtek/rtw89/fw.c
6785
idx = (chan->hw_value - 1) / 4;
drivers/net/wireless/realtek/rtw89/fw.c
6939
scan_op[0].chan = *op;
drivers/net/wireless/realtek/rtw89/fw.c
6970
opch->w1 = le32_encode_bits(scan_op[i].chan.band_type,
drivers/net/wireless/realtek/rtw89/fw.c
6972
le32_encode_bits(scan_op[i].chan.band_width,
drivers/net/wireless/realtek/rtw89/fw.c
6976
le32_encode_bits(scan_op[i].chan.primary_channel,
drivers/net/wireless/realtek/rtw89/fw.c
6978
le32_encode_bits(scan_op[i].chan.channel,
drivers/net/wireless/realtek/rtw89/fw.c
7211
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, chanctx_idx);
drivers/net/wireless/realtek/rtw89/fw.c
7231
le32_encode_bits(chan->channel, RTW89_H2C_MCC_DIG_W0_CENTER_CH) |
drivers/net/wireless/realtek/rtw89/fw.c
7232
le32_encode_bits(chan->band_type, RTW89_H2C_MCC_DIG_W0_BAND_TYPE);
drivers/net/wireless/realtek/rtw89/fw.c
7265
const struct rtw89_chan *chan;
drivers/net/wireless/realtek/rtw89/fw.c
7286
chan = rtw89_chan_get(rtwdev, rtwvif_link->chanctx_idx);
drivers/net/wireless/realtek/rtw89/fw.c
7288
val = rtw89_chip_chan_to_rf18_val(rtwdev, chan);
drivers/net/wireless/realtek/rtw89/fw.c
7297
h2c->pri_ch[path] = chan->primary_channel;
drivers/net/wireless/realtek/rtw89/fw.c
7548
const struct rtw89_chan *chan, enum rtw89_tssi_mode tssi_mode)
drivers/net/wireless/realtek/rtw89/fw.c
7568
h2c->ch = chan->channel;
drivers/net/wireless/realtek/rtw89/fw.c
7569
h2c->bw = chan->band_width;
drivers/net/wireless/realtek/rtw89/fw.c
7570
h2c->band = chan->band_type;
drivers/net/wireless/realtek/rtw89/fw.c
7580
rtw89_phy_rfk_tssi_fill_fwcmd_efuse_to_de(rtwdev, phy_idx, chan, h2c);
drivers/net/wireless/realtek/rtw89/fw.c
7581
rtw89_phy_rfk_tssi_fill_fwcmd_tmeter_tbl(rtwdev, phy_idx, chan, h2c);
drivers/net/wireless/realtek/rtw89/fw.c
7601
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/fw.c
7638
h2c->band = chan->band_type;
drivers/net/wireless/realtek/rtw89/fw.c
7639
h2c->bw = chan->band_width;
drivers/net/wireless/realtek/rtw89/fw.c
7640
h2c->ch = chan->channel;
drivers/net/wireless/realtek/rtw89/fw.c
7662
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/fw.c
7681
h2c->cur_band = chan->band_type;
drivers/net/wireless/realtek/rtw89/fw.c
7682
h2c->cur_bw = chan->band_width;
drivers/net/wireless/realtek/rtw89/fw.c
7683
h2c->cur_ch = chan->channel;
drivers/net/wireless/realtek/rtw89/fw.c
7704
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/fw.c
7724
h2c->band = chan->band_type;
drivers/net/wireless/realtek/rtw89/fw.c
7725
h2c->bw = chan->band_width;
drivers/net/wireless/realtek/rtw89/fw.c
7726
h2c->ch = chan->channel;
drivers/net/wireless/realtek/rtw89/fw.c
7747
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/fw.c
7784
const struct rtw89_chan *chan, bool is_chl_k)
drivers/net/wireless/realtek/rtw89/fw.c
7810
v0->cur_band = chan->band_type;
drivers/net/wireless/realtek/rtw89/fw.c
7811
v0->cur_bw = chan->band_width;
drivers/net/wireless/realtek/rtw89/fw.c
7812
v0->cur_ch = chan->channel;
drivers/net/wireless/realtek/rtw89/fw.c
7874
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/fw.c
7894
h2c->cur_band = chan->band_type;
drivers/net/wireless/realtek/rtw89/fw.c
7895
h2c->cur_bw = chan->band_width;
drivers/net/wireless/realtek/rtw89/fw.c
7896
h2c->cur_ch = chan->channel;
drivers/net/wireless/realtek/rtw89/fw.c
7917
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/fw.c
7935
h2c->cur_band = chan->band_type;
drivers/net/wireless/realtek/rtw89/fw.c
7936
h2c->cur_bw = chan->band_width;
drivers/net/wireless/realtek/rtw89/fw.c
7937
h2c->cur_ch = chan->channel;
drivers/net/wireless/realtek/rtw89/fw.c
8656
ch_info->central_ch = ext->chan.channel;
drivers/net/wireless/realtek/rtw89/fw.c
8657
ch_info->pri_ch = ext->chan.primary_channel;
drivers/net/wireless/realtek/rtw89/fw.c
8658
ch_info->ch_band = ext->chan.band_type;
drivers/net/wireless/realtek/rtw89/fw.c
8659
ch_info->bw = ext->chan.band_width;
drivers/net/wireless/realtek/rtw89/fw.c
9300
.chan = *tmp_chan,
drivers/net/wireless/realtek/rtw89/fw.c
9306
ext->chan.channel, ext->chan.primary_channel);
drivers/net/wireless/realtek/rtw89/fw.c
9317
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev,
drivers/net/wireless/realtek/rtw89/fw.c
9330
rtwdev->scan_info.op_chan = *chan;
drivers/net/wireless/realtek/rtw89/fw.c
9334
chan->channel, chan->primary_channel);
drivers/net/wireless/realtek/rtw89/fw.c
9336
rtw89_hw_scan_set_extra_op_info(rtwdev, rtwvif, chan);
drivers/net/wireless/realtek/rtw89/fw.h
5429
const struct rtw89_chan *chan, enum rtw89_tssi_mode tssi_mode);
drivers/net/wireless/realtek/rtw89/fw.h
5431
const struct rtw89_chan *chan);
drivers/net/wireless/realtek/rtw89/fw.h
5433
const struct rtw89_chan *chan);
drivers/net/wireless/realtek/rtw89/fw.h
5435
const struct rtw89_chan *chan);
drivers/net/wireless/realtek/rtw89/fw.h
5437
const struct rtw89_chan *chan);
drivers/net/wireless/realtek/rtw89/fw.h
5439
const struct rtw89_chan *chan, bool is_chl_k);
drivers/net/wireless/realtek/rtw89/fw.h
5442
const struct rtw89_chan *chan);
drivers/net/wireless/realtek/rtw89/fw.h
5444
const struct rtw89_chan *chan);
drivers/net/wireless/realtek/rtw89/fw.h
5477
const struct rtw89_chan *chan, u8 phy_idx);
drivers/net/wireless/realtek/rtw89/mac.c
4720
const struct rtw89_chan *chan;
drivers/net/wireless/realtek/rtw89/mac.c
4731
chan = rtw89_chan_get(rtwdev, rtwvif_link->chanctx_idx);
drivers/net/wireless/realtek/rtw89/mac.c
4732
if (chan->channel != to_match->channel)
drivers/net/wireless/realtek/rtw89/mac.c
5196
if (!(oper.chan->flags & IEEE80211_CHAN_RADAR)) {
drivers/net/wireless/realtek/rtw89/mac.c
5273
op = &scan_info->extra_op.chan;
drivers/net/wireless/realtek/rtw89/mac.c
5296
u16 chan;
drivers/net/wireless/realtek/rtw89/mac.c
5309
chan = le32_get_bits(c2h->w2, RTW89_C2H_SCANOFLD_W2_PRI_CH);
drivers/net/wireless/realtek/rtw89/mac.c
5317
band = chan > 14 ? RTW89_BAND_5G : RTW89_BAND_2G;
drivers/net/wireless/realtek/rtw89/mac.c
5339
mac_idx, band, chan, reason, status, tx_fail, actual_period);
drivers/net/wireless/realtek/rtw89/mac.c
5344
op_chan = rtw89_hw_scan_search_op_chan(rtwdev, band, chan);
drivers/net/wireless/realtek/rtw89/mac.c
5349
rtw89_phy_nhm_get_result(rtwdev, band, chan);
drivers/net/wireless/realtek/rtw89/mac.c
5370
op_chan = rtw89_hw_scan_search_op_chan(rtwdev, band, chan);
drivers/net/wireless/realtek/rtw89/mac.c
5376
rtw89_chan_create(&new, chan, chan, band,
drivers/net/wireless/realtek/rtw89/mac80211.c
1483
struct ieee80211_channel *chan,
drivers/net/wireless/realtek/rtw89/mac80211.c
1509
roc->chan = *chan;
drivers/net/wireless/realtek/rtw89/mac80211.c
1949
survey->channel = conf->chandef.chan;
drivers/net/wireless/realtek/rtw89/mac80211.c
396
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev,
drivers/net/wireless/realtek/rtw89/mac80211.c
409
sifs = chan->band_type == RTW89_BAND_2G ? 10 : 16;
drivers/net/wireless/realtek/rtw89/mac80211.c
807
const struct rtw89_chan *chan;
drivers/net/wireless/realtek/rtw89/mac80211.c
820
chan = rtw89_chan_get(rtwdev, rtwvif_link->chanctx_idx);
drivers/net/wireless/realtek/rtw89/mac80211.c
821
if (chan->band_type == RTW89_BAND_6G)
drivers/net/wireless/realtek/rtw89/phy.c
204
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/phy.c
213
switch (chan->band_type) {
drivers/net/wireless/realtek/rtw89/phy.c
230
rtw89_warn(rtwdev, "unhandled band type %d\n", chan->band_type);
drivers/net/wireless/realtek/rtw89/phy.c
2371
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/phy.c
2375
if (!rtw89_can_apply_ant_gain(rtwdev, chan->band_type))
drivers/net/wireless/realtek/rtw89/phy.c
2381
offset_patha = rtw89_phy_ant_gain_query(rtwdev, RF_PATH_A, chan->freq);
drivers/net/wireless/realtek/rtw89/phy.c
2382
offset_pathb = rtw89_phy_ant_gain_query(rtwdev, RF_PATH_B, chan->freq);
drivers/net/wireless/realtek/rtw89/phy.c
2389
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/phy.c
2394
if (!rtw89_can_apply_ant_gain(rtwdev, chan->band_type)) {
drivers/net/wireless/realtek/rtw89/phy.c
2399
offset_patha = rtw89_phy_ant_gain_query(rtwdev, RF_PATH_A, chan->freq);
drivers/net/wireless/realtek/rtw89/phy.c
2400
offset_pathb = rtw89_phy_ant_gain_query(rtwdev, RF_PATH_B, chan->freq);
drivers/net/wireless/realtek/rtw89/phy.c
278
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy.c
282
u8 band = chan->band_type;
drivers/net/wireless/realtek/rtw89/phy.c
2825
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy.c
2829
u8 band = chan->band_type;
drivers/net/wireless/realtek/rtw89/phy.c
2830
u8 pri_ch = chan->primary_channel;
drivers/net/wireless/realtek/rtw89/phy.c
2831
u8 ch = chan->channel;
drivers/net/wireless/realtek/rtw89/phy.c
2832
u8 bw = chan->band_width;
drivers/net/wireless/realtek/rtw89/phy.c
289
chan->band_width == RTW89_CHANNEL_WIDTH_160 &&
drivers/net/wireless/realtek/rtw89/phy.c
3039
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy.c
3043
u8 band = chan->band_type;
drivers/net/wireless/realtek/rtw89/phy.c
3044
u8 ch = chan->channel;
drivers/net/wireless/realtek/rtw89/phy.c
3045
u8 bw = chan->band_width;
drivers/net/wireless/realtek/rtw89/phy.c
3070
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy.c
3081
u8 band = chan->band_type;
drivers/net/wireless/realtek/rtw89/phy.c
3082
u8 ch = chan->channel;
drivers/net/wireless/realtek/rtw89/phy.c
3127
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy.c
3134
u8 band = chan->band_type;
drivers/net/wireless/realtek/rtw89/phy.c
3155
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy.c
3160
u8 ch = chan->channel;
drivers/net/wireless/realtek/rtw89/phy.c
3161
u8 bw = chan->band_width;
drivers/net/wireless/realtek/rtw89/phy.c
3174
rtw89_phy_fill_txpwr_limit_ax(rtwdev, chan, &lmt, i);
drivers/net/wireless/realtek/rtw89/phy.c
3190
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy.c
3195
u8 ch = chan->channel;
drivers/net/wireless/realtek/rtw89/phy.c
3196
u8 bw = chan->band_width;
drivers/net/wireless/realtek/rtw89/phy.c
3209
rtw89_phy_fill_txpwr_limit_ru_ax(rtwdev, chan, &lmt_ru, i);
drivers/net/wireless/realtek/rtw89/phy.c
330
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev,
drivers/net/wireless/realtek/rtw89/phy.c
358
chan, &fix_giltf_en, &fix_giltf);
drivers/net/wireless/realtek/rtw89/phy.c
371
chan, &fix_giltf_en, &fix_giltf);
drivers/net/wireless/realtek/rtw89/phy.c
401
switch (chan->band_type) {
drivers/net/wireless/realtek/rtw89/phy.c
4143
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy.c
4151
ret = rtw89_fw_h2c_rf_tssi(rtwdev, phy_idx, chan, tssi_mode);
drivers/net/wireless/realtek/rtw89/phy.c
4161
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy.c
4168
ret = rtw89_fw_h2c_rf_iqk(rtwdev, phy_idx, chan);
drivers/net/wireless/realtek/rtw89/phy.c
4178
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy.c
4185
ret = rtw89_fw_h2c_rf_dpk(rtwdev, phy_idx, chan);
drivers/net/wireless/realtek/rtw89/phy.c
4195
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy.c
4202
ret = rtw89_fw_h2c_rf_txgapk(rtwdev, phy_idx, chan);
drivers/net/wireless/realtek/rtw89/phy.c
4212
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy.c
4219
ret = rtw89_fw_h2c_rf_dack(rtwdev, phy_idx, chan);
drivers/net/wireless/realtek/rtw89/phy.c
4229
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy.c
4236
ret = rtw89_fw_h2c_rf_rxdck(rtwdev, phy_idx, chan, is_chl_k);
drivers/net/wireless/realtek/rtw89/phy.c
4246
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy.c
4253
ret = rtw89_fw_h2c_rf_txiqk(rtwdev, phy_idx, chan);
drivers/net/wireless/realtek/rtw89/phy.c
4263
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy.c
4270
ret = rtw89_fw_h2c_rf_cim3k(rtwdev, phy_idx, chan);
drivers/net/wireless/realtek/rtw89/phy.c
441
ra_mask &= rtw89_phy_ra_mask_cfg(rtwdev, rtwsta_link, link_sta, chan);
drivers/net/wireless/realtek/rtw89/phy.c
4580
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy.c
4584
enum rtw89_band band = chan->band_type;
drivers/net/wireless/realtek/rtw89/phy.c
4585
u8 ch = chan->channel;
drivers/net/wireless/realtek/rtw89/phy.c
4650
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy.c
4654
enum rtw89_band band = chan->band_type;
drivers/net/wireless/realtek/rtw89/phy.c
4655
u8 ch = chan->channel;
drivers/net/wireless/realtek/rtw89/phy.c
471
ra_mask = rtw89_phy_ra_mask_cfg(rtwdev, rtwsta_link, link_sta, chan);
drivers/net/wireless/realtek/rtw89/phy.c
4722
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy.c
4727
u8 ch = chan->channel;
drivers/net/wireless/realtek/rtw89/phy.c
4739
trim_de = phy_tssi_get_ofdm_trim_de(rtwdev, phy, chan, i);
drivers/net/wireless/realtek/rtw89/phy.c
4762
ofdm_de = phy_tssi_get_ofdm_de(rtwdev, phy, chan, i);
drivers/net/wireless/realtek/rtw89/phy.c
4785
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy.c
4793
u8 subband = chan->subband_type;
drivers/net/wireless/realtek/rtw89/phy.c
490
ra->band = chan->band_type;
drivers/net/wireless/realtek/rtw89/phy.c
5408
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev,
drivers/net/wireless/realtek/rtw89/phy.c
5420
else if (chan->band_type >= RTW89_BAND_5G &&
drivers/net/wireless/realtek/rtw89/phy.c
5421
chan->band_width >= RTW89_CHANNEL_WIDTH_40)
drivers/net/wireless/realtek/rtw89/phy.c
598
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev,
drivers/net/wireless/realtek/rtw89/phy.c
6052
const struct rtw89_chan *chan;
drivers/net/wireless/realtek/rtw89/phy.c
6056
chan = conf.chans[bb->phy_idx];
drivers/net/wireless/realtek/rtw89/phy.c
6057
cck = chan->band_type == RTW89_BAND_2G;
drivers/net/wireless/realtek/rtw89/phy.c
624
u8 band = chan->band_type;
drivers/net/wireless/realtek/rtw89/phy.c
7246
const struct rtw89_chan *chan;
drivers/net/wireless/realtek/rtw89/phy.c
7250
chan = conf.chans[bb->phy_idx];
drivers/net/wireless/realtek/rtw89/phy.c
7252
switch (chan->band_type) {
drivers/net/wireless/realtek/rtw89/phy.c
7519
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/phy.c
7521
enum rtw89_bandwidth cbw = chan->band_width;
drivers/net/wireless/realtek/rtw89/phy.c
7551
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/phy.c
7558
under_region = rtw89_phy_dig_cal_under_region(rtwdev, bb, chan);
drivers/net/wireless/realtek/rtw89/phy.c
7588
const struct rtw89_chan *chan;
drivers/net/wireless/realtek/rtw89/phy.c
7593
chan = conf.chans[bb->phy_idx];
drivers/net/wireless/realtek/rtw89/phy.c
7601
pd_val = __rtw89_phy_dig_dyn_pd_th(rtwdev, bb, rssi, enable, chan);
drivers/net/wireless/realtek/rtw89/phy.c
7620
under_region = rtw89_phy_dig_cal_under_region(rtwdev, bb, chan);
drivers/net/wireless/realtek/rtw89/phy.c
7708
const struct rtw89_chan *chan;
drivers/net/wireless/realtek/rtw89/phy.c
7720
chan = rtw89_chan_get(rtwdev, rtwvif_link->chanctx_idx);
drivers/net/wireless/realtek/rtw89/phy.c
7723
is_linked, chan);
drivers/net/wireless/realtek/rtw89/phy.c
7729
rtwvif_link->chanctx_idx, chan->primary_channel,
drivers/net/wireless/realtek/rtw89/phy.c
806
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy.c
809
enum rtw89_bandwidth cbw = chan->band_width;
drivers/net/wireless/realtek/rtw89/phy.c
810
u8 pri_ch = chan->primary_channel;
drivers/net/wireless/realtek/rtw89/phy.c
811
u8 central_ch = chan->channel;
drivers/net/wireless/realtek/rtw89/phy.c
8277
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/phy.c
8282
if (desc->ch != chan->channel)
drivers/net/wireless/realtek/rtw89/phy.c
8285
if (desc->has_band && desc->band != chan->band_type)
drivers/net/wireless/realtek/rtw89/phy.c
8288
if (desc->has_bw && desc->bw != chan->band_width)
drivers/net/wireless/realtek/rtw89/phy.c
8299
static int rfk_chan_iter_search(const struct rtw89_chan *chan, void *data)
drivers/net/wireless/realtek/rtw89/phy.c
8303
if (rfk_chan_is_equivalent(&iter_data->desc, chan))
drivers/net/wireless/realtek/rtw89/phy.c
875
u8 rtw89_phy_get_txsb(struct rtw89_dev *rtwdev, const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy.c
878
enum rtw89_bandwidth cbw = chan->band_width;
drivers/net/wireless/realtek/rtw89/phy.c
879
u8 pri_ch = chan->primary_channel;
drivers/net/wireless/realtek/rtw89/phy.c
880
u8 central_ch = chan->channel;
drivers/net/wireless/realtek/rtw89/phy.h
1030
const struct rtw89_chan *chan);
drivers/net/wireless/realtek/rtw89/phy.h
1032
const struct rtw89_chan *chan);
drivers/net/wireless/realtek/rtw89/phy.h
1059
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy.h
1072
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy.h
1077
phy->set_txpwr_byrate(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/phy.h
1082
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy.h
1087
phy->set_txpwr_offset(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/phy.h
1092
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy.h
1097
phy->set_txpwr_limit(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/phy.h
1102
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy.h
1107
phy->set_txpwr_limit_ru(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/phy.h
1171
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy.h
1176
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy.h
1180
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy.h
1184
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy.h
1188
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy.h
1192
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy.h
1196
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy.h
1200
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy.h
1204
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy.h
1208
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy.h
692
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy.h
695
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy.h
698
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy.h
701
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy.h
980
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy.h
982
u8 rtw89_phy_get_txsb(struct rtw89_dev *rtwdev, const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy_be.c
1098
const struct rtw89_chan *chan;
drivers/net/wireless/realtek/rtw89/phy_be.c
1104
chan = conf.chans[phy_idx];
drivers/net/wireless/realtek/rtw89/phy_be.c
1107
rtw89_phy_bb_wrap_tx_rfsi_qam_comp_th_gen3_init(rtwdev, chan, mac_idx);
drivers/net/wireless/realtek/rtw89/phy_be.c
1115
rtw89_phy_bb_wrap_set_rfsi_bandedge_ch(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/phy_be.c
1261
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy_be.c
1265
u8 band = chan->band_type;
drivers/net/wireless/realtek/rtw89/phy_be.c
1278
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy_be.c
1285
u8 band = chan->band_type;
drivers/net/wireless/realtek/rtw89/phy_be.c
1532
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy_be.c
1536
u8 band = chan->band_type;
drivers/net/wireless/realtek/rtw89/phy_be.c
1537
u8 pri_ch = chan->primary_channel;
drivers/net/wireless/realtek/rtw89/phy_be.c
1538
u8 ch = chan->channel;
drivers/net/wireless/realtek/rtw89/phy_be.c
1539
u8 bw = chan->band_width;
drivers/net/wireless/realtek/rtw89/phy_be.c
1563
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy_be.c
1576
chan->band_type, chan->band_width);
drivers/net/wireless/realtek/rtw89/phy_be.c
1580
rtw89_phy_fill_limit_be(rtwdev, chan, &lmt, i);
drivers/net/wireless/realtek/rtw89/phy_be.c
1673
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy_be.c
1677
u8 band = chan->band_type;
drivers/net/wireless/realtek/rtw89/phy_be.c
1678
u8 ch = chan->channel;
drivers/net/wireless/realtek/rtw89/phy_be.c
1679
u8 bw = chan->band_width;
drivers/net/wireless/realtek/rtw89/phy_be.c
1784
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy_be.c
1788
u8 band = chan->band_type;
drivers/net/wireless/realtek/rtw89/phy_be.c
1789
u8 ch = chan->channel;
drivers/net/wireless/realtek/rtw89/phy_be.c
1790
u8 bw = chan->band_width;
drivers/net/wireless/realtek/rtw89/phy_be.c
1810
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy_be.c
1817
rtw89_phy_fill_limit_large_mru_be(rtwdev, chan, &lmt_lmru, has_bf);
drivers/net/wireless/realtek/rtw89/phy_be.c
1858
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy_be.c
1873
chan->band_type, chan->band_width);
drivers/net/wireless/realtek/rtw89/phy_be.c
1877
rtw89_phy_fill_limit_ru_be(rtwdev, chan, &lmt_ru, i);
drivers/net/wireless/realtek/rtw89/phy_be.c
1894
rtw89_phy_conf_limit_large_mru_be(rtwdev, chan, phy_idx, false);
drivers/net/wireless/realtek/rtw89/phy_be.c
1895
rtw89_phy_conf_limit_large_mru_be(rtwdev, chan, phy_idx, true);
drivers/net/wireless/realtek/rtw89/phy_be.c
616
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/phy_be.c
618
u8 pri_ch = chan->primary_channel;
drivers/net/wireless/realtek/rtw89/phy_be.c
621
switch (chan->band_type) {
drivers/net/wireless/realtek/rtw89/phy_be.c
670
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy_be.c
676
val = rtw89_phy_bb_wrap_be_bandedge_decision(rtwdev, chan);
drivers/net/wireless/realtek/rtw89/phy_be.c
679
chan->primary_channel == 13, phy_idx);
drivers/net/wireless/realtek/rtw89/phy_be.c
773
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/phy_be.c
784
ths = common_gen3->bands[chan->rfsi_band].qam_th;
drivers/net/wireless/realtek/rtw89/regd.c
1012
const struct rtw89_chan *chan;
drivers/net/wireless/realtek/rtw89/regd.c
1015
chan = rtw89_chan_get(rtwdev, rtwvif_link->chanctx_idx);
drivers/net/wireless/realtek/rtw89/regd.c
1016
if (chan->band_type != RTW89_BAND_6G)
drivers/net/wireless/realtek/rtw89/regd.c
1087
const struct rtw89_chan *chan;
drivers/net/wireless/realtek/rtw89/regd.c
1096
chan = rtw89_chan_get(rtwdev, rtwvif_link->chanctx_idx);
drivers/net/wireless/realtek/rtw89/regd.c
1097
if (chan->band_type != RTW89_BAND_6G)
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1171
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1174
u8 subband = chan->subband_type;
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1175
u8 central_ch = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1189
if (chan->band_type == RTW89_BAND_6G)
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1353
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1355
u8 center_chan = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1357
switch (chan->band_type) {
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1377
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1383
spur_freq = rtw8851b_spur_freq(rtwdev, chan);
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1390
freq_diff = (spur_freq - chan->freq) * 1000000;
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1409
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1418
spur_freq = rtw8851b_spur_freq(rtwdev, chan);
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1427
fc = chan->freq;
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1428
if (chan->band_width == RTW89_CHANNEL_WIDTH_160) {
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1431
chan->channel < chan->primary_channel) ||
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1433
chan->channel > chan->primary_channel))
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1441
if (chan->band_width == RTW89_CHANNEL_WIDTH_20) {
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1444
u16 tone_para = (chan->band_width == RTW89_CHANNEL_WIDTH_40) ?
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1452
if (chan->band_width == RTW89_CHANNEL_WIDTH_160 && notch2_chk) {
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1477
static void rtw8851b_set_cfr(struct rtw89_dev *rtwdev, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1479
if (chan->band_type == RTW89_BAND_2G &&
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1480
chan->band_width == RTW89_CHANNEL_WIDTH_20 &&
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1481
(chan->channel == 1 || chan->channel == 13)) {
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1502
static void rtw8851b_5m_mask(struct rtw89_dev *rtwdev, const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1505
u8 pri_ch = chan->pri_ch_idx;
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1509
switch (chan->band_width) {
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1661
static void rtw8851b_set_channel_bb(struct rtw89_dev *rtwdev, const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1664
u8 band = chan->band_type, chan_idx;
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1665
bool cck_en = chan->channel <= 14;
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1666
u8 pri_ch_idx = chan->pri_ch_idx;
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1669
rtw8851b_ctrl_sco_cck(rtwdev, chan->primary_channel);
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1671
rtw8851b_ctrl_ch(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1672
rtw8851b_ctrl_bw(rtwdev, pri_ch_idx, chan->band_width, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1674
rtw8851b_set_nbi_tone_idx(rtwdev, chan);
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1675
rtw8851b_set_csi_tone_idx(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1677
if (chan->band_type == RTW89_BAND_5G) {
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1689
chan_idx = rtw89_encode_chan_idx(rtwdev, chan->primary_channel, band);
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1691
rtw8851b_5m_mask(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1692
rtw8851b_set_cfr(rtwdev, chan);
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1697
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1701
rtw8851b_set_channel_mac(rtwdev, chan, mac_idx);
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1702
rtw8851b_set_channel_bb(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1703
rtw8851b_set_channel_rf(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1734
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1744
rtw8851b_bb_reset_en(rtwdev, chan->band_type, phy_idx, false);
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1749
rtw8851b_bb_reset_en(rtwdev, chan->band_type, phy_idx, true);
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1787
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1789
rtw8851b_tssi_scan(rtwdev, phy_idx, chan);
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1867
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1887
u8 ch = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1918
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1922
u8 band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1928
rtw8851b_bb_set_tx_shape_dfir(rtwdev, chan, tx_shape_cck, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1935
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1938
rtw89_phy_set_txpwr_byrate(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1939
rtw89_phy_set_txpwr_offset(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1940
rtw8851b_set_tx_shape(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1941
rtw89_phy_set_txpwr_limit(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1942
rtw89_phy_set_txpwr_limit_ru(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8851b.c
1999
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, RTW89_CHANCTX_0);
drivers/net/wireless/realtek/rtw89/rtw8851b.c
2005
if (chan->band_type == RTW89_BAND_2G) {
drivers/net/wireless/realtek/rtw89/rtw8851b.c
2022
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, RTW89_CHANCTX_0);
drivers/net/wireless/realtek/rtw89/rtw8851b.c
2044
if (chan->band_type == RTW89_BAND_2G) {
drivers/net/wireless/realtek/rtw89/rtw8851b.c
2067
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, RTW89_CHANCTX_0);
drivers/net/wireless/realtek/rtw89/rtw8851b.c
2081
rtw8851b_set_gain_offset(rtwdev, chan->subband_type, RTW89_PHY_0);
drivers/net/wireless/realtek/rtw89/rtw8851b.c
2462
u16 chan = phy_ppdu->chan_idx;
drivers/net/wireless/realtek/rtw89/rtw8851b.c
2466
if (chan == 0)
drivers/net/wireless/realtek/rtw89/rtw8851b.c
2469
rtw89_decode_chan_idx(rtwdev, chan, &ch, &band);
drivers/net/wireless/realtek/rtw89/rtw8851b.c
929
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8851b.c
937
switch (chan->band_width) {
drivers/net/wireless/realtek/rtw89/rtw8851b.c
939
txsc40 = rtw89_phy_get_txsc(rtwdev, chan, RTW89_CHANNEL_WIDTH_40);
drivers/net/wireless/realtek/rtw89/rtw8851b.c
942
txsc20 = rtw89_phy_get_txsc(rtwdev, chan, RTW89_CHANNEL_WIDTH_20);
drivers/net/wireless/realtek/rtw89/rtw8851b.c
948
switch (chan->band_width) {
drivers/net/wireless/realtek/rtw89/rtw8851b.c
965
if (chan->channel > 14) {
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
1619
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, chanctx_idx);
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
1623
iqk_info->iqk_band[path] = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
1624
iqk_info->iqk_bw[path] = chan->band_width;
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
1625
iqk_info->iqk_ch[path] = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
1892
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, chanctx_idx);
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
1897
dpk->bp[path][kidx].band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
1898
dpk->bp[path][kidx].ch = chan->band_width;
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
1899
dpk->bp[path][kidx].bw = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
2781
enum rtw89_rf_path path, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
2783
enum rtw89_band band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
2813
enum rtw89_rf_path path, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
2827
u8 ch = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
2828
u8 subband = chan->subband_type;
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
2917
enum rtw89_rf_path path, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
2919
enum rtw89_band band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
2928
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
2930
enum rtw89_band band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
3105
enum rtw89_rf_path path, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
3109
u8 ch = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
3140
enum rtw89_rf_path path, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
3144
u8 ch = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
3177
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
3180
u8 ch = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
3192
trim_de = _tssi_get_ofdm_trim_de(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
3208
ofdm_de = _tssi_get_ofdm_de(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
3209
trim_de = _tssi_get_ofdm_trim_de(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
3256
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
3259
u8 channel = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
3473
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, chanctx_idx);
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
3483
_tssi_set_sys(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
3487
_tssi_set_tmeter_tbl(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
3489
_tssi_slope_cal_org(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
3490
_tssi_alignment_default(rtwdev, phy, i, true, chan);
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
3495
_tssi_set_efuse_to_de(rtwdev, phy, chan);
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
3501
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
3503
u8 channel = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
3512
_tssi_set_sys(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
3513
_tssi_set_tmeter_tbl(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
3514
_tssi_slope_cal_org(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
3515
_tssi_alignment_default(rtwdev, phy, i, true, chan);
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
3519
_tssi_set_efuse_to_de(rtwdev, phy, chan);
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
3526
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, chanctx_idx);
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
3527
u8 channel = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
3544
_tssi_alimentk_done(rtwdev, phy, RF_PATH_A, chan);
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
3779
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
3782
rtw8851b_ctrl_bw_ch(rtwdev, phy_idx, chan->channel, chan->band_type,
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
3783
chan->band_width);
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
582
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, chanctx_idx);
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
586
chan->band_type == RTW89_BAND_2G ? "2G" :
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
587
chan->band_type == RTW89_BAND_5G ? "5G" : "6G",
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
588
chan->channel,
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
589
chan->band_width == RTW89_CHANNEL_WIDTH_20 ? "20M" :
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.c
590
chan->band_width == RTW89_CHANNEL_WIDTH_40 ? "40M" : "80M",
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.h
26
const struct rtw89_chan *chan);
drivers/net/wireless/realtek/rtw89/rtw8851b_rfk.h
31
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8852a.c
1346
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8852a.c
1349
bool cck_en = chan->channel <= 14;
drivers/net/wireless/realtek/rtw89/rtw8852a.c
1350
u8 pri_ch_idx = chan->pri_ch_idx;
drivers/net/wireless/realtek/rtw89/rtw8852a.c
1353
rtw8852a_ctrl_sco_cck(rtwdev, chan->channel,
drivers/net/wireless/realtek/rtw89/rtw8852a.c
1354
chan->primary_channel,
drivers/net/wireless/realtek/rtw89/rtw8852a.c
1355
chan->band_width);
drivers/net/wireless/realtek/rtw89/rtw8852a.c
1357
rtw8852a_ctrl_ch(rtwdev, chan->channel, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8852a.c
1358
rtw8852a_ctrl_bw(rtwdev, pri_ch_idx, chan->band_width, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8852a.c
1365
rtw8852a_spur_elimination(rtwdev, chan->channel);
drivers/net/wireless/realtek/rtw89/rtw8852a.c
1367
chan->primary_channel);
drivers/net/wireless/realtek/rtw89/rtw8852a.c
1372
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8852a.c
1376
rtw8852a_set_channel_mac(rtwdev, chan, mac_idx);
drivers/net/wireless/realtek/rtw89/rtw8852a.c
1377
rtw8852a_set_channel_bb(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8852a.c
1429
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8852a.c
1508
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852a.c
1510
rtw8852a_tssi_scan(rtwdev, phy_idx, chan);
drivers/net/wireless/realtek/rtw89/rtw8852a.c
1610
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8852a.c
1613
rtw89_phy_set_txpwr_byrate(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8852a.c
1614
rtw89_phy_set_txpwr_offset(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8852a.c
1615
rtw89_phy_set_txpwr_limit(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8852a.c
1616
rtw89_phy_set_txpwr_limit_ru(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8852a.c
1697
enum rtw89_phy_idx idx, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852a.c
1702
if (chan->band_type == RTW89_BAND_2G)
drivers/net/wireless/realtek/rtw89/rtw8852a.c
1720
enum rtw89_phy_idx idx, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852a.c
1730
rtw8852a_bb_set_pmac_tx(rtwdev, &tx_info, idx, chan);
drivers/net/wireless/realtek/rtw89/rtw8852a.c
2194
u16 chan = phy_ppdu->chan_idx;
drivers/net/wireless/realtek/rtw89/rtw8852a.c
2197
if (chan == 0)
drivers/net/wireless/realtek/rtw89/rtw8852a.c
2200
band = chan <= 14 ? NL80211_BAND_2GHZ : NL80211_BAND_5GHZ;
drivers/net/wireless/realtek/rtw89/rtw8852a.c
2201
status->freq = ieee80211_channel_to_frequency(chan, band);
drivers/net/wireless/realtek/rtw89/rtw8852a.c
876
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8852a.c
884
switch (chan->band_width) {
drivers/net/wireless/realtek/rtw89/rtw8852a.c
886
txsc40 = rtw89_phy_get_txsc(rtwdev, chan,
drivers/net/wireless/realtek/rtw89/rtw8852a.c
890
txsc20 = rtw89_phy_get_txsc(rtwdev, chan,
drivers/net/wireless/realtek/rtw89/rtw8852a.c
897
switch (chan->band_width) {
drivers/net/wireless/realtek/rtw89/rtw8852a.c
914
if (chan->channel > 14)
drivers/net/wireless/realtek/rtw89/rtw8852a.h
100
enum rtw89_phy_idx idx, const struct rtw89_chan *chan);
drivers/net/wireless/realtek/rtw89/rtw8852a.h
103
enum rtw89_phy_idx idx, const struct rtw89_chan *chan);
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
1372
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, chanctx_idx);
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
1393
iqk_info->iqk_band[path] = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
1394
iqk_info->iqk_bw[path] = chan->band_width;
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
1395
iqk_info->iqk_ch[path] = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
1874
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, chanctx_idx);
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
1877
dpk->bp[path][kidx].band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
1878
dpk->bp[path][kidx].ch = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
1879
dpk->bp[path][kidx].bw = chan->band_width;
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
2354
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, chanctx_idx);
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
2401
if (chan->band_width < RTW89_CHANNEL_WIDTH_80)
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
2547
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, chanctx_idx);
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
2551
cur_band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
2552
cur_ch = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
2685
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, chanctx_idx);
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
2687
if (fem->epa_2g && chan->band_type == RTW89_BAND_2G) {
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
2691
} else if (fem->epa_5g && chan->band_type == RTW89_BAND_5G) {
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
2847
enum rtw89_rf_path path, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
2849
enum rtw89_band band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
2858
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
2860
enum rtw89_band band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
2870
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
2872
enum rtw89_band band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
2900
enum rtw89_rf_path path, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
2914
u8 ch = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
2915
u8 subband = chan->subband_type;
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
3106
enum rtw89_rf_path path, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
3108
u8 subband = chan->subband_type;
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
3281
enum rtw89_rf_path path, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
3284
u8 ch = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
3318
enum rtw89_rf_path path, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
3321
u8 ch = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
3355
enum rtw89_phy_idx phy, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
3367
u8 ch = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
3378
trim_de = _tssi_get_ofdm_trim_de(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
3394
ofdm_de = _tssi_get_ofdm_de(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
3395
trim_de = _tssi_get_ofdm_trim_de(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
3485
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
3488
u8 ch = chan->channel, ch_tmp;
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
3489
u8 bw = chan->band_width;
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
3490
u8 band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
3491
u8 subband = chan->subband_type;
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
3523
u8 path, s16 pwr_dbm, u8 enable, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
3528
rtw8852a_bb_set_pmac_pkt_tx(rtwdev, enable, 20, 5000, 0, phy, chan);
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
3535
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, chanctx_idx);
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
3537
u8 ch = chan->channel, ch_tmp;
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
3538
u8 bw = chan->band_width;
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
3539
u8 band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
3573
_tssi_hw_tx(rtwdev, phy, RF_PATH_AB, xdbm, true, chan);
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
3575
_tssi_hw_tx(rtwdev, phy, RF_PATH_AB, xdbm, false, chan);
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
3699
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, chanctx_idx);
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
3708
_tssi_rf_setting(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
3709
_tssi_set_sys(rtwdev, phy, chan);
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
3710
_tssi_ini_txpwr_ctrl_bb(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
3713
_tssi_set_tmeter_tbl(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
3718
_tssi_pak(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
3722
_tssi_set_efuse_to_de(rtwdev, phy, chan);
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
3723
_tssi_high_power(rtwdev, phy, chan);
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
3728
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
3743
_tssi_rf_setting(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
3744
_tssi_set_sys(rtwdev, phy, chan);
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
3745
_tssi_set_tmeter_tbl(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
3746
_tssi_pak(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c
3750
_tssi_set_efuse_to_de(rtwdev, phy, chan);
drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.h
23
const struct rtw89_chan *chan);
drivers/net/wireless/realtek/rtw89/rtw8852b.c
629
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8852b.c
633
rtw8852bx_set_channel_mac(rtwdev, chan, mac_idx);
drivers/net/wireless/realtek/rtw89/rtw8852b.c
634
rtw8852bx_set_channel_bb(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8852b.c
635
rtw8852b_set_channel_rf(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8852b.c
677
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8852b.c
687
rtw8852b_bb_reset_en(rtwdev, chan->band_type, phy_idx, false);
drivers/net/wireless/realtek/rtw89/rtw8852b.c
692
rtw8852b_bb_reset_en(rtwdev, chan->band_type, phy_idx, true);
drivers/net/wireless/realtek/rtw89/rtw8852b.c
733
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852b.c
735
rtw8852b_tssi_scan(rtwdev, phy_idx, chan);
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1022
static void rtw8852bx_5m_mask(struct rtw89_dev *rtwdev, const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1025
u8 pri_ch = chan->pri_ch_idx;
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1029
switch (chan->band_width) {
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1122
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1124
u8 center_chan = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1126
switch (chan->band_type) {
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1144
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1150
spur_freq = rtw8852bt_spur_freq(rtwdev, chan);
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1157
freq_diff = (spur_freq - chan->freq) * 1000000;
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1167
void __rtw8852bx_set_channel_bb(struct rtw89_dev *rtwdev, const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1171
bool cck_en = chan->channel <= 14;
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1172
u8 pri_ch_idx = chan->pri_ch_idx;
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1173
u8 band = chan->band_type, chan_idx;
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1176
rtw8852bx_ctrl_sco_cck(rtwdev, chan->primary_channel);
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1178
rtw8852bx_ctrl_ch(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1179
rtw8852bx_ctrl_bw(rtwdev, pri_ch_idx, chan->band_width, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1182
rtw8852bt_set_csi_tone_idx(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1183
if (chip_id == RTL8852B && chan->band_type == RTW89_BAND_5G) {
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1198
chan_idx = rtw89_encode_chan_idx(rtwdev, chan->primary_channel, band);
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1200
rtw8852bx_5m_mask(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1270
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1290
u8 ch = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1321
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1325
u8 band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1331
rtw8852bx_bb_set_tx_shape_dfir(rtwdev, chan, tx_shape_cck, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1338
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1341
.center_freq = chan->freq,
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1359
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1364
pwr_ofst = rtw89_phy_ant_gain_pwr_offset(rtwdev, chan);
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1365
pwr_ofst += rtw8852bx_get_txpwr_sar_diff(rtwdev, chan);
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1370
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1373
rtw89_phy_set_txpwr_byrate(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1374
rtw89_phy_set_txpwr_offset(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1375
rtw8852bx_set_tx_shape(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1376
rtw89_phy_set_txpwr_limit(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1377
rtw89_phy_set_txpwr_limit_ru(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1378
rtw8852bx_set_txpwr_diff(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1480
enum rtw89_phy_idx idx, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1485
if (chan->band_type == RTW89_BAND_2G)
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1506
enum rtw89_phy_idx idx, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1517
rtw8852bx_bb_set_pmac_tx(rtwdev, &tx_info, idx, chan);
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1657
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1691
rtw8852bx_set_gain_offset(rtwdev, chan->subband_type, RTW89_PHY_0);
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1693
if (chan->band_type == RTW89_BAND_2G &&
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1746
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, RTW89_CHANCTX_0);
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1753
rtw8852bx_bb_ctrl_rx_path(rtwdev, rx_path, chan);
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1958
u16 chan = phy_ppdu->chan_idx;
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1962
if (chan == 0)
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
1965
rtw89_decode_chan_idx(rtwdev, chan, &ch, &band);
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
452
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
460
switch (chan->band_width) {
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
462
txsc40 = rtw89_phy_get_txsc(rtwdev, chan, RTW89_CHANNEL_WIDTH_40);
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
465
txsc20 = rtw89_phy_get_txsc(rtwdev, chan, RTW89_CHANNEL_WIDTH_20);
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
471
switch (chan->band_width) {
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
488
if (chan->channel > 14) {
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
746
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
749
u8 central_ch = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
750
u8 subband = chan->subband_type;
drivers/net/wireless/realtek/rtw89/rtw8852b_common.c
774
if (chan->band_type == RTW89_BAND_6G)
drivers/net/wireless/realtek/rtw89/rtw8852b_common.h
125
const struct rtw89_chan *chan);
drivers/net/wireless/realtek/rtw89/rtw8852b_common.h
131
enum rtw89_phy_idx idx, const struct rtw89_chan *chan);
drivers/net/wireless/realtek/rtw89/rtw8852b_common.h
139
const struct rtw89_chan *chan, u8 mac_idx);
drivers/net/wireless/realtek/rtw89/rtw8852b_common.h
140
void (*set_channel_bb)(struct rtw89_dev *rtwdev, const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8852b_common.h
156
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8852b_common.h
214
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852b_common.h
216
rtw8852bx_info.bb_ctrl_rx_path(rtwdev, rx_path, chan);
drivers/net/wireless/realtek/rtw89/rtw8852b_common.h
235
enum rtw89_phy_idx idx, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852b_common.h
238
chan);
drivers/net/wireless/realtek/rtw89/rtw8852b_common.h
264
const struct rtw89_chan *chan, u8 mac_idx)
drivers/net/wireless/realtek/rtw89/rtw8852b_common.h
266
rtw8852bx_info.set_channel_mac(rtwdev, chan, mac_idx);
drivers/net/wireless/realtek/rtw89/rtw8852b_common.h
270
void rtw8852bx_set_channel_bb(struct rtw89_dev *rtwdev, const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8852b_common.h
273
rtw8852bx_info.set_channel_bb(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8852b_common.h
326
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8852b_common.h
329
rtw8852bx_info.set_txpwr(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
1389
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, chanctx_idx);
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
1399
iqk_info->iqk_band[path] = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
1400
iqk_info->iqk_bw[path] = chan->band_width;
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
1401
iqk_info->iqk_ch[path] = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
1402
iqk_info->iqk_mcc_ch[idx][path] = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
1754
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, chanctx_idx);
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
1759
dpk->bp[path][kidx].band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
1760
dpk->bp[path][kidx].ch = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
1761
dpk->bp[path][kidx].bw = chan->band_width;
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
1780
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, chanctx_idx);
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
1784
if (chan->band_width == RTW89_CHANNEL_WIDTH_80) {
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
1798
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, chanctx_idx);
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
1805
if (chan->band_width == RTW89_CHANNEL_WIDTH_80) {
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
2212
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, chanctx_idx);
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
2259
if (chan->band_width < RTW89_CHANNEL_WIDTH_80)
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
2411
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, chanctx_idx);
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
2416
cur_band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
2417
cur_ch = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
2542
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, chanctx_idx);
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
2545
if (fem->epa_2g && chan->band_type == RTW89_BAND_2G) {
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
2549
} else if (fem->epa_5g && chan->band_type == RTW89_BAND_5G) {
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
2553
} else if (fem->epa_6g && chan->band_type == RTW89_BAND_6G) {
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
2720
enum rtw89_rf_path path, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
2722
enum rtw89_band band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
2731
enum rtw89_rf_path path, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
2733
enum rtw89_band band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
2774
enum rtw89_rf_path path, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
2788
u8 ch = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
2789
u8 subband = chan->subband_type;
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
2939
enum rtw89_rf_path path, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
2941
enum rtw89_band band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
2955
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
2957
enum rtw89_band band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
2959
u8 ch = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
3225
enum rtw89_rf_path path, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
3228
u8 ch = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
3260
enum rtw89_rf_path path, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
3263
u8 ch = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
3297
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
3300
u8 ch = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
3312
trim_de = _tssi_get_ofdm_trim_de(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
3328
ofdm_de = _tssi_get_ofdm_de(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
3329
trim_de = _tssi_get_ofdm_trim_de(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
3376
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
3379
u8 channel = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
3412
u8 enable, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
3428
rtw8852bx_bb_ctrl_rx_path(rtwdev, rx_path, chan);
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
3432
rtw8852bx_bb_set_pmac_pkt_tx(rtwdev, enable, cnt, period, 20, phy, chan);
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
3486
u32 *tssi_cw_rpt, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
3505
_tssi_hw_tx(rtwdev, phy, path, 100, 5000, power[j], true, chan);
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
3508
chan);
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
3539
_tssi_hw_tx(rtwdev, phy, path, 100, 5000, power[j], false, chan);
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
3546
_tssi_hw_tx(rtwdev, phy, path, 100, 5000, power[j], false, chan);
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
3560
enum rtw89_rf_path path, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
3569
u8 channel = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
3604
if (chan->band_type == RTW89_BAND_2G)
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
3628
ok = _tssi_get_cw_report(rtwdev, phy, path, power, tssi_cw_rpt, chan);
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
3816
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, chanctx_idx);
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
3827
_tssi_rf_setting(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
3828
_tssi_set_sys(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
3832
_tssi_set_tmeter_tbl(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
3834
_tssi_slope_cal_org(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
3835
_tssi_alignment_default(rtwdev, phy, i, true, chan);
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
3841
_tssi_alimentk(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
3847
_tssi_set_efuse_to_de(rtwdev, phy, chan);
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
3853
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
3856
u8 channel = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
3877
_tssi_rf_setting(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
3878
_tssi_set_sys(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
3879
_tssi_set_tmeter_tbl(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
3882
_tssi_alimentk_done(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
3884
_tssi_alignment_default(rtwdev, phy, i, true, chan);
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
3888
_tssi_set_efuse_to_de(rtwdev, phy, chan);
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
3895
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, chanctx_idx);
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
3896
u8 channel = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
3920
_tssi_alimentk_done(rtwdev, phy, RF_PATH_A, chan);
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
3921
_tssi_alimentk_done(rtwdev, phy, RF_PATH_B, chan);
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
4161
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
4164
rtw8852b_ctrl_bw_ch(rtwdev, phy_idx, chan->channel, chan->band_type,
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
4165
chan->band_width);
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
4173
const struct rtw89_chan *chan;
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
4177
chan = conf.chans[0];
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
4188
idx = rtw89_rfk_chan_lookup(rtwdev, desc, ARRAY_SIZE(desc), chan);
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
4190
rfk_mcc->ch[idx] = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.c
4191
rfk_mcc->band[idx] = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.h
23
const struct rtw89_chan *chan);
drivers/net/wireless/realtek/rtw89/rtw8852b_rfk.h
28
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8852bt.c
517
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8852bt.c
521
rtw8852bx_set_channel_mac(rtwdev, chan, mac_idx);
drivers/net/wireless/realtek/rtw89/rtw8852bt.c
522
rtw8852bx_set_channel_bb(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8852bt.c
523
rtw8852bt_set_channel_rf(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8852bt.c
538
u8 phy_idx, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852bt.c
543
rtw8852bt_tssi_scan(rtwdev, phy_idx, chan);
drivers/net/wireless/realtek/rtw89/rtw8852bt.c
562
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8852bt.c
569
rtw8852bt_tssi_cont_en_phyidx(rtwdev, false, RTW89_PHY_0, chan);
drivers/net/wireless/realtek/rtw89/rtw8852bt.c
572
rtw8852bt_bb_reset_en(rtwdev, chan->band_type, phy_idx, false);
drivers/net/wireless/realtek/rtw89/rtw8852bt.c
576
rtw8852bt_tssi_cont_en_phyidx(rtwdev, true, RTW89_PHY_0, chan);
drivers/net/wireless/realtek/rtw89/rtw8852bt.c
577
rtw8852bt_bb_reset_en(rtwdev, chan->band_type, phy_idx, true);
drivers/net/wireless/realtek/rtw89/rtw8852bt.c
618
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852bt.c
620
rtw8852bt_tssi_scan(rtwdev, phy_idx, chan);
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
1532
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, chanctx_idx);
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
1542
iqk_info->iqk_band[path] = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
1543
iqk_info->iqk_bw[path] = chan->band_width;
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
1544
iqk_info->iqk_ch[path] = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
1545
iqk_info->iqk_mcc_ch[idx][path] = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
1866
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, chanctx_idx);
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
1871
dpk->bp[path][kidx].band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
1872
dpk->bp[path][kidx].ch = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
1873
dpk->bp[path][kidx].bw = chan->band_width;
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
2264
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, chanctx_idx);
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
2284
if (chan->band_width < 2)
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
2322
if (chan->band_width == RTW89_CHANNEL_WIDTH_80)
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
2491
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, chanctx_idx);
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
2496
cur_band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
2497
cur_ch = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
2636
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, chanctx_idx);
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
2639
if (fem->epa_2g && chan->band_type == RTW89_BAND_2G) {
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
2643
} else if (fem->epa_5g && chan->band_type == RTW89_BAND_5G) {
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
2647
} else if (fem->epa_6g && chan->band_type == RTW89_BAND_6G) {
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
2805
enum rtw89_rf_path path, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
2807
enum rtw89_band band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
2816
enum rtw89_rf_path path, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
2818
enum rtw89_band band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
2822
if (chan->band_width == RTW89_CHANNEL_WIDTH_80)
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
2864
enum rtw89_rf_path path, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
2879
u8 ch = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
2880
u8 subband = chan->subband_type;
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3032
enum rtw89_rf_path path, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3034
enum rtw89_band band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3048
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3050
enum rtw89_band band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3052
u8 ch = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3294
enum rtw89_rf_path path, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3297
u8 ch = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3329
enum rtw89_rf_path path, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3332
u8 ch = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3366
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3369
u8 ch = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3381
trim_de = _tssi_get_ofdm_trim_de(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3397
ofdm_de = _tssi_get_ofdm_de(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3398
trim_de = _tssi_get_ofdm_trim_de(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3446
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3449
u8 channel = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3482
u8 enable, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3498
rtw8852bx_bb_ctrl_rx_path(rtwdev, rx_path, chan);
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3502
rtw8852bx_bb_set_pmac_pkt_tx(rtwdev, enable, cnt, period, 20, phy, chan);
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3556
u32 *tssi_cw_rpt, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3576
chan);
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3579
chan);
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3610
_tssi_hw_tx(rtwdev, phy, path, 100, 5000, power[j], false, chan);
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3618
_tssi_hw_tx(rtwdev, phy, path, 100, 5000, power[j], false, chan);
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3632
enum rtw89_rf_path path, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3641
u8 channel = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3660
if (chan->band_type == RTW89_BAND_2G)
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3685
ok = _tssi_get_cw_report(rtwdev, phy, path, power, tssi_cw_rpt, chan);
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3879
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, chanctx_idx);
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3894
_tssi_rf_setting(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3895
_tssi_set_sys(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3899
_tssi_set_tmeter_tbl(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3901
_tssi_slope_cal_org(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3902
_tssi_alignment_default(rtwdev, phy, i, true, chan);
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3908
_tssi_alimentk(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3914
_tssi_set_efuse_to_de(rtwdev, phy, chan);
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3922
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3925
u8 channel = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3946
_tssi_rf_setting(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3947
_tssi_set_sys(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3948
_tssi_set_tmeter_tbl(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3951
_tssi_alimentk_done(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3953
_tssi_alignment_default(rtwdev, phy, i, true, chan);
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3957
_tssi_set_efuse_to_de(rtwdev, phy, chan);
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3964
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, chanctx_idx);
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3965
u8 channel = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3986
_tssi_alimentk_done(rtwdev, phy, RF_PATH_A, chan);
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
3987
_tssi_alimentk_done(rtwdev, phy, RF_PATH_B, chan);
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
4228
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
4231
rtw8852bt_ctrl_bw_ch(rtwdev, phy_idx, chan->channel, chan->band_type,
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
4232
chan->band_width);
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
4240
const struct rtw89_chan *chan;
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
4244
chan = conf.chans[0];
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
4255
idx = rtw89_rfk_chan_lookup(rtwdev, desc, ARRAY_SIZE(desc), chan);
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
4257
rfk_mcc->ch[idx] = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.c
4258
rfk_mcc->band[idx] = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.h
23
const struct rtw89_chan *chan);
drivers/net/wireless/realtek/rtw89/rtw8852bt_rfk.h
28
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1077
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1096
if (chan->band_type == RTW89_BAND_2G) {
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1105
gain_band = rtw89_subband_to_gain_offset_band_of_ofdm(chan->subband_type);
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1120
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1124
u16 central_freq = chan->freq;
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1125
u8 central_ch = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1126
u8 band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1127
u8 subband = chan->subband_type;
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1139
rtw8852c_set_gain_offset(rtwdev, chan, phy_idx, RF_PATH_A);
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1152
rtw8852c_set_gain_offset(rtwdev, chan, phy_idx, RF_PATH_B);
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1181
rtw8852c_set_gain_offset(rtwdev, chan, phy_idx, RF_PATH_B);
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1238
chan_idx = rtw89_encode_chan_idx(rtwdev, chan->primary_channel, band);
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1389
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1391
u8 center_chan = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1392
u8 bw = chan->band_width;
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1394
switch (chan->band_type) {
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1428
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1434
spur_freq = rtw8852c_spur_freq(rtwdev, chan);
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1440
freq_diff = (spur_freq - chan->freq) * 1000000;
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1468
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1478
spur_freq = rtw8852c_spur_freq(rtwdev, chan);
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1485
fc = chan->freq;
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1486
if (chan->band_width == RTW89_CHANNEL_WIDTH_160) {
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1489
chan->channel < chan->primary_channel) ||
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1491
chan->channel > chan->primary_channel))
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1498
if (chan->band_width == RTW89_CHANNEL_WIDTH_20) {
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1501
u16 tone_para = (chan->band_width == RTW89_CHANNEL_WIDTH_40) ?
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1508
if (chan->band_width == RTW89_CHANNEL_WIDTH_160 && notch2_chk) {
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1550
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1554
rtw8852c_set_csi_tone_idx(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1557
if (chan->band_width == RTW89_CHANNEL_WIDTH_160 &&
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1563
} else if (chan->band_width == RTW89_CHANNEL_WIDTH_160 &&
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1570
rtw8852c_set_nbi_tone_idx(rtwdev, chan, RF_PATH_A);
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1572
rtw8852c_set_nbi_tone_idx(rtwdev, chan,
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1576
if (chan->band_width == RTW89_CHANNEL_WIDTH_160 &&
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1580
} else if (chan->band_width == RTW89_CHANNEL_WIDTH_160 &&
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1585
rtw8852c_set_nbi_tone_idx(rtwdev, chan, RF_PATH_B);
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1596
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1599
u8 pri_ch = chan->pri_ch_idx;
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1603
switch (chan->band_width) {
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1835
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1841
bool cck_en = chan->band_type == RTW89_BAND_2G;
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1842
u8 pri_ch_idx = chan->pri_ch_idx;
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1846
if (chan->band_type == RTW89_BAND_2G)
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1847
rtw8852c_ctrl_sco_cck(rtwdev, chan->channel,
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1848
chan->primary_channel,
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1849
chan->band_width);
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1851
rtw8852c_ctrl_ch(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1852
rtw8852c_ctrl_bw(rtwdev, pri_ch_idx, chan->band_width, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1865
rtw8852c_spur_elimination(rtwdev, chan, pri_ch_idx, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1866
rtw8852c_ctrl_btg_bt_rx(rtwdev, chan->band_type == RTW89_BAND_2G,
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1868
rtw8852c_5m_mask(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1870
if (chan->band_width == RTW89_CHANNEL_WIDTH_160 &&
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1875
if (chan->primary_channel > chan->channel) {
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1890
if (chan->band_type == RTW89_BAND_6G &&
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1891
chan->band_width == RTW89_CHANNEL_WIDTH_160)
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1917
if (chan->band_type == RTW89_BAND_6G)
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1925
ntx_path = chan->band_type == RTW89_BAND_6G ? RF_B : RF_AB;
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1933
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1937
rtw8852c_set_channel_mac(rtwdev, chan, mac_idx);
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1938
rtw8852c_set_channel_bb(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1939
rtw8852c_set_channel_rf(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1962
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1971
rtw8852c_tssi_cont_en_phyidx(rtwdev, false, phy_idx, chan);
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1974
rtw8852c_bb_reset_en(rtwdev, chan->band_type, phy_idx, false);
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1979
rtw8852c_tssi_cont_en_phyidx(rtwdev, true, phy_idx, chan);
drivers/net/wireless/realtek/rtw89/rtw8852c.c
1980
rtw8852c_bb_reset_en(rtwdev, chan->band_type, phy_idx, true);
drivers/net/wireless/realtek/rtw89/rtw8852c.c
2022
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852c.c
2024
rtw8852c_tssi_scan(rtwdev, phy_idx, chan);
drivers/net/wireless/realtek/rtw89/rtw8852c.c
2138
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8852c.c
2162
u8 ch = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852c.c
2193
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8852c.c
2197
u8 band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8852c.c
2203
rtw8852c_bb_set_tx_shape_dfir(rtwdev, chan, tx_shape_cck, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8852c.c
2216
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8852c.c
2221
pwr_ofst = rtw89_phy_ant_gain_pwr_offset(rtwdev, chan);
drivers/net/wireless/realtek/rtw89/rtw8852c.c
2226
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8852c.c
2230
.center_freq = chan->freq,
drivers/net/wireless/realtek/rtw89/rtw8852c.c
2251
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8852c.c
2254
rtw89_phy_set_txpwr_byrate(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8852c.c
2255
rtw89_phy_set_txpwr_offset(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8852c.c
2256
rtw8852c_set_tx_shape(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8852c.c
2257
rtw89_phy_set_txpwr_limit(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8852c.c
2258
rtw89_phy_set_txpwr_limit_ru(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8852c.c
2259
rtw8852c_set_txpwr_diff(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8852c.c
2260
rtw8852c_set_txpwr_sar_diff(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8852c.c
2322
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, RTW89_CHANCTX_0);
drivers/net/wireless/realtek/rtw89/rtw8852c.c
2323
u8 band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8852c.c
823
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8852c.c
833
switch (chan->band_width) {
drivers/net/wireless/realtek/rtw89/rtw8852c.c
835
txsc80 = rtw89_phy_get_txsc(rtwdev, chan,
drivers/net/wireless/realtek/rtw89/rtw8852c.c
839
txsc40 = rtw89_phy_get_txsc(rtwdev, chan,
drivers/net/wireless/realtek/rtw89/rtw8852c.c
843
txsc20 = rtw89_phy_get_txsc(rtwdev, chan,
drivers/net/wireless/realtek/rtw89/rtw8852c.c
850
switch (chan->band_width) {
drivers/net/wireless/realtek/rtw89/rtw8852c.c
875
switch (chan->band_type) {
drivers/net/wireless/realtek/rtw89/rtw8852c.c
884
rtw89_warn(rtwdev, "Invalid band_type:%d\n", chan->band_type);
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
1329
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, chanctx_idx);
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
1334
iqk_info->iqk_band[path] = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
1335
iqk_info->iqk_bw[path] = chan->band_width;
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
1336
iqk_info->iqk_ch[path] = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
1757
u8 _rx_dck_channel_calc(struct rtw89_dev *rtwdev, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
1761
if (chan->band_type == RTW89_BAND_5G) {
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
1762
if (chan->channel >= 36 && chan->channel <= 64) {
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
1764
} else if (chan->channel >= 100 && chan->channel <= 144) {
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
1765
target_ch = chan->channel + 32;
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
1767
target_ch = chan->channel + 33;
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
1768
} else if (chan->channel >= 149 && chan->channel <= 177) {
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
1769
target_ch = chan->channel - 33;
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
1771
} else if (chan->band_type == RTW89_BAND_6G) {
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
1772
if (chan->channel > 125)
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
1773
target_ch = chan->channel - 32;
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
1775
target_ch = chan->channel + 32;
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
1777
target_ch = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
1782
chan->channel, target_ch);
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
1911
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, chanctx_idx);
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
1916
dpk->bp[path][kidx].band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
1917
dpk->bp[path][kidx].ch = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
1918
dpk->bp[path][kidx].bw = chan->band_width;
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
2505
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, chanctx_idx);
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
2510
cur_band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
2511
cur_ch = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
2769
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, chanctx_idx);
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
2770
u8 band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
2903
enum rtw89_rf_path path, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
2905
enum rtw89_bandwidth bw = chan->band_width;
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
2906
enum rtw89_band band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
2956
enum rtw89_rf_path path, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
2958
enum rtw89_band band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
2982
enum rtw89_rf_path path, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
2997
u8 ch = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
2998
u8 subband = chan->subband_type;
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
3200
enum rtw89_rf_path path, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
3202
enum rtw89_band band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
3217
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
3219
enum rtw89_band band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
3627
enum rtw89_rf_path path, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
3630
enum rtw89_band band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
3631
u8 ch = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
3690
enum rtw89_rf_path path, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
3693
enum rtw89_band band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
3694
u8 ch = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
3754
enum rtw89_phy_idx phy, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
3757
u8 ch = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
3779
trim_de = _tssi_get_ofdm_trim_de(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
3795
ofdm_de = _tssi_get_ofdm_de(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
3796
trim_de = _tssi_get_ofdm_trim_de(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
3819
enum rtw89_rf_path path, const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
3828
_tssi_set_efuse_to_de(rtwdev, RTW89_PHY_1, chan);
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
3830
_tssi_set_efuse_to_de(rtwdev, RTW89_PHY_0, chan);
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
3838
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
3841
rtw8852c_tssi_cont_en(rtwdev, en, RF_PATH_A, chan);
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
3842
rtw8852c_tssi_cont_en(rtwdev, en, RF_PATH_B, chan);
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
3845
rtw8852c_tssi_cont_en(rtwdev, en, RF_PATH_A, chan);
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
3847
rtw8852c_tssi_cont_en(rtwdev, en, RF_PATH_B, chan);
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
4117
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
4120
rtw8852c_ctrl_bw_ch(rtwdev, phy_idx, chan->channel,
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
4121
chan->band_type,
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
4122
chan->band_width);
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
4129
const struct rtw89_chan *chan;
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
4144
chan = rtw89_chan_get(rtwdev, chan_idx);
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
4155
idx = rtw89_rfk_chan_lookup(rtwdev, desc, ARRAY_SIZE(desc), chan);
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
4157
rfk_mcc->ch[idx] = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
4158
rfk_mcc->band[idx] = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
4262
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, chanctx_idx);
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
4272
if (chan->band_type == RTW89_BAND_2G)
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
4298
dck_channel = _rx_dck_channel_calc(rtwdev, chan);
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
4299
_ctrl_ch(rtwdev, RTW89_PHY_0, dck_channel, chan->band_type);
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
4305
_ctrl_ch(rtwdev, RTW89_PHY_0, chan->channel, chan->band_type);
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
4343
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, chanctx_idx);
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
4361
_tssi_set_sys(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
4364
_tssi_set_dck(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
4366
_tssi_set_tmeter_tbl(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
4367
_tssi_slope_cal_org(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
4368
_tssi_set_aligk_default(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
4374
_tssi_set_efuse_to_de(rtwdev, phy, chan);
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
4378
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
4403
_tssi_set_sys(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
4404
_tssi_set_dck(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
4405
_tssi_set_tmeter_tbl(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
4406
_tssi_slope_cal_org(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
4407
_tssi_set_aligk_default(rtwdev, phy, i, chan);
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
4411
_tssi_set_efuse_to_de(rtwdev, phy, chan);
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.h
24
const struct rtw89_chan *chan);
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.h
26
const struct rtw89_chan *chan);
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.h
30
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1049
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1060
switch (chan->band_width) {
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1062
txsb80 = rtw89_phy_get_txsb(rtwdev, chan, RTW89_CHANNEL_WIDTH_80);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1065
txsb40 = rtw89_phy_get_txsb(rtwdev, chan, RTW89_CHANNEL_WIDTH_40);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1068
txsb20 = rtw89_phy_get_txsb(rtwdev, chan, RTW89_CHANNEL_WIDTH_20);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1074
switch (chan->band_width) {
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1103
switch (chan->band_type) {
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1112
rtw89_warn(rtwdev, "Invalid band_type:%d\n", chan->band_type);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1120
switch (chan->band_width) {
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1272
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1277
u8 gain_band = rtw89_subband_to_gain_band_be(chan->subband_type);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1317
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1322
u8 gain_band = rtw89_subband_to_gain_band_be(chan->subband_type);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1329
bw_type = chan->band_width <= RTW89_CHANNEL_WIDTH_40 ?
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1333
if (chan->band_type == RTW89_BAND_2G) {
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1345
if (chan->band_type == RTW89_BAND_2G) {
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1357
if (chan->band_type == RTW89_BAND_2G) {
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1369
if (chan->band_type == RTW89_BAND_2G) {
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1382
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1386
rtw8922a_set_lna_tia_gain(rtwdev, chan, path, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1387
rtw8922a_set_rpl_gain(rtwdev, chan, path, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1391
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1418
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1431
gain_band = rtw89_subband_to_gain_offset_band_of_ofdm(chan->subband_type);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1452
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1460
if (chan->band_type == RTW89_BAND_2G)
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1461
rtw8922a_set_rx_gain_normal_cck(rtwdev, chan, path);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1463
rtw8922a_set_rx_gain_normal_ofdm(rtwdev, chan, path);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1491
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1495
u16 central_freq = chan->freq;
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1496
u8 central_ch = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1497
u8 band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1508
rtw8922a_set_gain(rtwdev, chan, RF_PATH_A, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1509
rtw8922a_set_gain(rtwdev, chan, RF_PATH_B, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1514
rtw8922a_set_rx_gain_normal(rtwdev, chan, RF_PATH_A);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1515
rtw8922a_set_rx_gain_normal(rtwdev, chan, RF_PATH_B);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1524
chan_idx = rtw89_encode_chan_idx(rtwdev, chan->primary_channel, band);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1594
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1604
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1610
spur_freq = rtw8922a_spur_freq(rtwdev, chan);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1617
freq_diff = (spur_freq - chan->freq) * 1000000;
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1646
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1657
spur_freq = rtw8922a_spur_freq(rtwdev, chan);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1666
fc = chan->freq;
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1667
if (chan->band_width == RTW89_CHANNEL_WIDTH_160) {
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1670
chan->channel < chan->primary_channel) ||
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1672
chan->channel > chan->primary_channel))
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1680
if (chan->band_width == RTW89_CHANNEL_WIDTH_20) {
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1683
u16 tone_para = (chan->band_width == RTW89_CHANNEL_WIDTH_40) ?
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1691
if (chan->band_width == RTW89_CHANNEL_WIDTH_160 && notch2_chk) {
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1719
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1722
rtw8922a_set_csi_tone_idx(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1723
rtw8922a_set_nbi_tone_idx(rtwdev, chan, RF_PATH_A, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
1724
rtw8922a_set_nbi_tone_idx(rtwdev, chan, RF_PATH_B, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2087
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, RTW89_CHANCTX_0);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2088
u8 band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2180
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2183
bool cck_en = chan->band_type == RTW89_BAND_2G;
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2184
u8 pri_sb = chan->pri_sb_idx;
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2187
rtw8922a_ctrl_sco_cck(rtwdev, chan->primary_channel,
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2188
chan->band_width, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2190
rtw8922a_ctrl_ch(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2191
rtw8922a_ctrl_bw(rtwdev, pri_sb, chan->band_width, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2193
rtw8922a_spur_elimination(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2233
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2237
rtw8922a_set_channel_mac(rtwdev, chan, mac_idx);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2238
rtw8922a_set_channel_bb(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2239
rtw8922a_set_channel_rf(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2323
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2332
rtw8922a_hal_reset(rtwdev, phy_idx, mac_idx, chan->band_type, &p->tx_en, enter);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2351
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2355
rtw89_phy_rfk_dack_and_wait(rtwdev, phy_idx, chan, 58);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2357
rtw89_phy_rfk_rxdck_and_wait(rtwdev, phy_idx, chan, false, 128);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2362
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, RTW89_CHANCTX_0);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2364
__rtw8922a_rfk_init_late(rtwdev, RTW89_PHY_0, chan);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2366
__rtw8922a_rfk_init_late(rtwdev, RTW89_PHY_1, chan);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2392
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, chanctx_idx);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2402
rtw89_phy_rfk_txgapk_and_wait(rtwdev, phy_idx, chan, 54);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2403
rtw89_phy_rfk_iqk_and_wait(rtwdev, phy_idx, chan, 84);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2404
rtw89_phy_rfk_tssi_and_wait(rtwdev, phy_idx, chan, RTW89_TSSI_NORMAL, 20);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2405
rtw89_phy_rfk_dpk_and_wait(rtwdev, phy_idx, chan, 34);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2406
rtw89_phy_rfk_rxdck_and_wait(rtwdev, RTW89_PHY_0, chan, true, 32);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2414
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2416
rtw89_phy_rfk_tssi_and_wait(rtwdev, phy_idx, chan, RTW89_TSSI_SCAN, 6);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2455
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2458
s16 pwr_ofst = rtw89_phy_ant_gain_pwr_offset(rtwdev, chan);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2502
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2510
band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2521
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2525
.center_freq = chan->freq,
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2546
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2549
rtw89_phy_set_txpwr_byrate(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2550
rtw89_phy_set_txpwr_offset(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2551
rtw8922a_set_tx_shape(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2552
rtw89_phy_set_txpwr_limit(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2553
rtw89_phy_set_txpwr_limit_ru(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2554
rtw8922a_set_txpwr_diff(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2556
rtw8922a_set_txpwr_sar_diff(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2628
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, RTW89_CHANCTX_0);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2629
enum rtw89_band band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2686
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2688
u32 val = u32_encode_bits(chan->channel, RR_CFGCH_CH);
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2690
switch (chan->band_type) {
drivers/net/wireless/realtek/rtw89/rtw8922a.c
2704
switch (chan->band_width) {
drivers/net/wireless/realtek/rtw89/rtw8922a_rfk.c
104
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922a_rfk.c
107
rtw8922a_ctl_band_ch_bw(rtwdev, phy_idx, chan);
drivers/net/wireless/realtek/rtw89/rtw8922a_rfk.c
209
const struct rtw89_chan *chan, u8 path)
drivers/net/wireless/realtek/rtw89/rtw8922a_rfk.c
227
tbl_sel = rtw89_rfk_chan_lookup(rtwdev, desc, ARRAY_SIZE(desc), chan);
drivers/net/wireless/realtek/rtw89/rtw8922a_rfk.c
229
rfk_mcc->data[path].ch[tbl_sel] = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8922a_rfk.c
230
rfk_mcc->data[path].band[tbl_sel] = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8922a_rfk.c
231
rfk_mcc->data[path].bw[tbl_sel] = chan->band_width;
drivers/net/wireless/realtek/rtw89/rtw8922a_rfk.c
232
rfk_mcc->data[path].rf18[tbl_sel] = rtw89_chip_chan_to_rf18_val(rtwdev, chan);
drivers/net/wireless/realtek/rtw89/rtw8922a_rfk.c
239
const struct rtw89_chan *chan, u8 path)
drivers/net/wireless/realtek/rtw89/rtw8922a_rfk.c
257
tbl_sel = rtw89_rfk_chan_lookup(rtwdev, desc, ARRAY_SIZE(desc), chan);
drivers/net/wireless/realtek/rtw89/rtw8922a_rfk.c
259
rfk_mcc->ch[tbl_sel] = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8922a_rfk.c
260
rfk_mcc->band[tbl_sel] = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8922a_rfk.c
261
rfk_mcc->bw[tbl_sel] = chan->band_width;
drivers/net/wireless/realtek/rtw89/rtw8922a_rfk.c
262
rfk_mcc->rf18[tbl_sel] = rtw89_chip_chan_to_rf18_val(rtwdev, chan);
drivers/net/wireless/realtek/rtw89/rtw8922a_rfk.c
271
const struct rtw89_chan *chan, u8 path)
drivers/net/wireless/realtek/rtw89/rtw8922a_rfk.c
274
return rtw8922a_chlk_reload_sel_tbl_v1(rtwdev, chan, path);
drivers/net/wireless/realtek/rtw89/rtw8922a_rfk.c
276
return rtw8922a_chlk_reload_sel_tbl_v0(rtwdev, chan, path);
drivers/net/wireless/realtek/rtw89/rtw8922a_rfk.c
39
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8922a_rfk.c
77
rf_reg[path][i] |= rtw89_chip_chan_to_rf18_val(rtwdev, chan);
drivers/net/wireless/realtek/rtw89/rtw8922a_rfk.c
88
if (chan->band_type == RTW89_BAND_2G) {
drivers/net/wireless/realtek/rtw89/rtw8922a_rfk.h
12
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1133
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1144
switch (chan->band_width) {
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1146
txsb80 = rtw89_phy_get_txsb(rtwdev, chan, RTW89_CHANNEL_WIDTH_80);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1149
txsb40 = rtw89_phy_get_txsb(rtwdev, chan, RTW89_CHANNEL_WIDTH_40);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1152
txsb20 = rtw89_phy_get_txsb(rtwdev, chan, RTW89_CHANNEL_WIDTH_20);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1158
switch (chan->band_width) {
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1187
switch (chan->band_type) {
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1196
rtw89_warn(rtwdev, "Invalid band_type:%d\n", chan->band_type);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1204
switch (chan->band_width) {
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1255
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1258
u16 central_freq = chan->freq;
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1261
if (chan->band_type == RTW89_BAND_2G) {
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1378
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1383
u8 gain_band = rtw89_subband_to_gain_band_be(chan->subband_type);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1423
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1428
u8 gain_band = rtw89_subband_to_gain_band_be(chan->subband_type);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1435
bw_type = chan->band_width <= RTW89_CHANNEL_WIDTH_40 ?
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1439
if (chan->band_type == RTW89_BAND_2G) {
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1451
if (chan->band_type == RTW89_BAND_2G) {
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1464
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1469
u8 gain_band = rtw89_subband_to_gain_band_be(chan->subband_type);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1476
bw_type = chan->band_width <= RTW89_CHANNEL_WIDTH_40 ?
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1480
if (chan->band_type == RTW89_BAND_2G) {
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1492
if (chan->band_type == RTW89_BAND_2G) {
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1505
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1509
rtw8922d_set_rpl_gain(rtwdev, chan, path, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1510
rtw8922d_set_lna_tia_gain(rtwdev, chan, path, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1511
rtw8922d_set_op1db(rtwdev, chan, path, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1515
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1520
u8 fc_ch = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1535
band = rtw89_subband_to_gain_offset_band_of_ofdm(chan->subband_type);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1628
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1636
rx_gain_offset = -rtw8922d_get_rx_gain_by_chan(rtwdev, chan, path, true);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1638
if (chan->band_width == RTW89_CHANNEL_WIDTH_40)
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1646
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1652
rtw8922d_calc_rx_gain_normal_cck(rtwdev, chan, path, phy_idx, &calc);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1663
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1671
rx_gain_offset = rtw8922d_get_rx_gain_by_chan(rtwdev, chan, path, false);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1676
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1686
rtw8922d_calc_rx_gain_normal_ofdm(rtwdev, chan, path, phy_idx, &calc);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1694
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1703
if (chan->band_type == RTW89_BAND_2G)
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1704
rtw8922d_set_rx_gain_normal_cck(rtwdev, chan, path, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1706
rtw8922d_set_rx_gain_normal_ofdm(rtwdev, chan, path, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1710
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1715
rtw8922d_calc_rx_gain_normal_ofdm(rtwdev, chan, path, phy_idx, calc);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1717
if (chan->band_type != RTW89_BAND_2G)
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1720
rtw8922d_calc_rx_gain_normal_cck(rtwdev, chan, path, phy_idx, calc);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1724
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1727
u8 regd = rtw89_regd_get(rtwdev, chan->band_type);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1728
u8 central_ch = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1765
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1768
u16 central_freq = chan->freq;
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1769
u8 band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1777
rtw8922d_ctrl_ch_core(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1779
chan_idx = rtw89_encode_chan_idx(rtwdev, chan->primary_channel, band);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1782
rtw8922d_set_gain(rtwdev, chan, RF_PATH_A, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1783
rtw8922d_set_gain(rtwdev, chan, RF_PATH_B, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1785
rtw8922d_set_rx_gain_normal(rtwdev, chan, RF_PATH_A, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1786
rtw8922d_set_rx_gain_normal(rtwdev, chan, RF_PATH_B, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1789
rtw8922d_set_cck_parameters(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1831
static u32 rtw8922d_spur_freq(struct rtw89_dev *rtwdev, const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1854
if (chan->band_width >= RTW89_CHANNEL_WIDTH_ORDINARY_NUM)
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1857
freq_lower = chan->freq - cbw[chan->band_width] / 2;
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1858
freq_upper = chan->freq + cbw[chan->band_width] / 2;
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1875
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1881
spur_freq = rtw8922d_spur_freq(rtwdev, chan, false, RF_PATH_AB);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1888
freq_diff = (spur_freq - chan->freq) * 1000000;
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1917
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1928
spur_freq = rtw8922d_spur_freq(rtwdev, chan, true, path);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1937
fc = chan->freq;
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1938
if (chan->band_width == RTW89_CHANNEL_WIDTH_160) {
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1941
chan->channel < chan->primary_channel) ||
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1943
chan->channel > chan->primary_channel))
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1951
if (chan->band_width == RTW89_CHANNEL_WIDTH_20) {
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1954
u16 tone_para = (chan->band_width == RTW89_CHANNEL_WIDTH_40) ?
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1962
if (chan->band_width == RTW89_CHANNEL_WIDTH_160 && notch2_chk) {
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1990
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1993
rtw8922d_set_csi_tone_idx(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1994
rtw8922d_set_nbi_tone_idx(rtwdev, chan, RF_PATH_A, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
1995
rtw8922d_set_nbi_tone_idx(rtwdev, chan, RF_PATH_B, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2171
const struct rtw89_chan *chan, u8 nss,
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2200
comp_vals = &pwr_comp->sets[nss][chan->tx_comp_band][path].vals;
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2203
comp_base = &pwr_comp_v0->sets[nss][chan->tx_comp_band][path].base;
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2204
comp_vals = &pwr_comp_v0->sets[nss][chan->tx_comp_band][path].vals;
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2373
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2377
bool cck_en = chan->band_type == RTW89_BAND_2G;
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2378
u8 pri_sb = chan->pri_sb_idx;
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2381
rtw89_phy_bb_wrap_set_rfsi_ct_opt(rtwdev, chan->rfsi_band, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2382
rtw8922d_ctrl_ch(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2383
rtw8922d_ctrl_bw(rtwdev, pri_sb, chan->band_width, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2384
rtw89_phy_bb_wrap_set_rfsi_bandedge_ch(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2387
rtw8922d_ctrl_sco_cck(rtwdev, chan->primary_channel,
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2388
chan->band_width, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2390
rtw8922d_spur_elimination(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2393
if (chan->band_width == RTW89_CHANNEL_WIDTH_160)
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2395
else if (chan->band_width == RTW89_CHANNEL_WIDTH_80)
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2448
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2452
rtw8922d_set_channel_mac(rtwdev, chan, mac_idx);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2453
rtw8922d_set_channel_bb(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2454
rtw8922d_set_channel_rf(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2491
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2500
rtw8922d_hal_reset(rtwdev, phy_idx, mac_idx, chan->band_type, &p->tx_en, enter);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2521
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2527
rtw89_phy_rfk_rxdck_and_wait(rtwdev, phy_idx, chan, false, 128);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2529
rtw89_phy_rfk_dack_and_wait(rtwdev, phy_idx, chan, 58);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2534
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, RTW89_CHANCTX_0);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2536
__rtw8922d_rfk_init_late(rtwdev, RTW89_PHY_0, chan);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2538
__rtw8922d_rfk_init_late(rtwdev, RTW89_PHY_1, chan);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2598
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2604
ret = rtw89_phy_rfk_tssi_and_wait(rtwdev, phy_idx, chan, tssi_mode, ms);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2619
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, chanctx_idx);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2632
rtw89_phy_rfk_txgapk_and_wait(rtwdev, phy_idx, chan, 54);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2633
rtw89_phy_rfk_txiqk_and_wait(rtwdev, phy_idx, chan, 45);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2634
rtw89_phy_rfk_iqk_and_wait(rtwdev, phy_idx, chan, 84);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2635
rtw8922d_rfk_tssi(rtwdev, phy_idx, chan, RTW89_TSSI_NORMAL, 20);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2636
rtw89_phy_rfk_cim3k_and_wait(rtwdev, phy_idx, chan, 44);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2637
rtw89_phy_rfk_dpk_and_wait(rtwdev, phy_idx, chan, 68);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2638
rtw89_phy_rfk_rxdck_and_wait(rtwdev, RTW89_PHY_0, chan, true, 32);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2649
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2686
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2689
s16 pwr_ofst = rtw89_phy_ant_gain_pwr_offset(rtwdev, chan);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2721
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2729
rtw8922d_set_txpwr_diff(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2738
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2748
band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2755
th = d->bands[chan->rfsi_band].qam_comp_th0;
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2765
th = d->bands[chan->rfsi_band].qam_comp_ow;
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2798
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2802
.center_freq = chan->freq,
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2823
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2826
rtw89_phy_set_txpwr_byrate(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2827
rtw89_phy_set_txpwr_offset(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2828
rtw8922d_set_tx_shape(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2829
rtw89_phy_set_txpwr_limit(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2830
rtw89_phy_set_txpwr_limit_ru(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2831
rtw8922d_set_txpwr_ref(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2832
rtw8922d_set_txpwr_sar_diff(rtwdev, chan, phy_idx);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2907
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, RTW89_CHANCTX_0);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2908
enum rtw89_band band = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2957
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2959
u32 val = u32_encode_bits(chan->channel, RR_CFGCH_CH);
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2961
switch (chan->band_type) {
drivers/net/wireless/realtek/rtw89/rtw8922d.c
2975
switch (chan->band_width) {
drivers/net/wireless/realtek/rtw89/rtw8922d_rfk.c
191
const struct rtw89_chan *chan, u8 path)
drivers/net/wireless/realtek/rtw89/rtw8922d_rfk.c
209
tbl_sel = rtw89_rfk_chan_lookup(rtwdev, desc, ARRAY_SIZE(desc), chan);
drivers/net/wireless/realtek/rtw89/rtw8922d_rfk.c
211
rfk_mcc->ch[tbl_sel] = chan->channel;
drivers/net/wireless/realtek/rtw89/rtw8922d_rfk.c
212
rfk_mcc->band[tbl_sel] = chan->band_type;
drivers/net/wireless/realtek/rtw89/rtw8922d_rfk.c
213
rfk_mcc->bw[tbl_sel] = chan->band_width;
drivers/net/wireless/realtek/rtw89/rtw8922d_rfk.c
214
rfk_mcc->rf18[tbl_sel] = rtw89_chip_chan_to_rf18_val(rtwdev, chan);
drivers/net/wireless/realtek/rtw89/rtw8922d_rfk.c
47
const struct rtw89_chan *chan)
drivers/net/wireless/realtek/rtw89/rtw8922d_rfk.c
53
rf18 = rtw89_chip_chan_to_rf18_val(rtwdev, chan);
drivers/net/wireless/realtek/rtw89/rtw8922d_rfk.c
64
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/rtw8922d_rfk.c
67
rtw8922d_ctl_band_ch_bw(rtwdev, phy_idx, chan);
drivers/net/wireless/realtek/rtw89/rtw8922d_rfk.h
14
const struct rtw89_chan *chan,
drivers/net/wireless/realtek/rtw89/sar.c
528
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, RTW89_CHANCTX_0);
drivers/net/wireless/realtek/rtw89/sar.c
538
sar_parm.center_freq = chan->freq;
drivers/net/wireless/realtek/rtw89/sar.c
574
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, RTW89_CHANCTX_0);
drivers/net/wireless/realtek/rtw89/sar.c
575
u8 band = chan->band_type;
drivers/net/wireless/realtek/rtw89/sar.c
742
const struct rtw89_chan *chan = rtw89_chan_get(rtwdev, RTW89_CHANCTX_0);
drivers/net/wireless/realtek/rtw89/sar.c
779
"tas: band: %u, freq: %u\n", chan->band_type, chan->freq);
drivers/net/wireless/rsi/rsi_91x_mac80211.c
1786
struct ieee80211_channel *chan, int duration,
drivers/net/wireless/rsi/rsi_91x_mac80211.c
1797
__func__, chan->hw_value, duration);
drivers/net/wireless/rsi/rsi_91x_mac80211.c
1807
if (rsi_band_check(common, chan)) {
drivers/net/wireless/rsi/rsi_91x_mac80211.c
1814
if (rsi_set_channel(common, chan)) {
drivers/net/wireless/rsi/rsi_91x_mac80211.c
1823
__func__, chan->hw_value);
drivers/net/wireless/rsi/rsi_91x_mac80211.c
594
struct ieee80211_channel *curchan = hw->conf.chandef.chan;
drivers/net/wireless/rsi/rsi_91x_mac80211.c
761
channel = bss->chanreq.oper.chan;
drivers/net/wireless/rsi/rsi_91x_mac80211.c
780
channel = vif->bss_conf.chanreq.oper.chan;
drivers/net/wireless/rsi/rsi_91x_mgmt.c
1315
u8 band = hw->conf.chandef.chan->band;
drivers/net/wireless/rsi/rsi_mgmt.h
744
int rsi_band_check(struct rsi_common *common, struct ieee80211_channel *chan);
drivers/net/wireless/silabs/wfx/hif_tx.c
242
int wfx_hif_scan_uniq(struct wfx_vif *wvif, struct ieee80211_channel *chan, int duration)
drivers/net/wireless/silabs/wfx/hif_tx.c
254
body->tx_power_level = cpu_to_le32(chan->max_power);
drivers/net/wireless/silabs/wfx/hif_tx.c
256
body->channel_list[0] = chan->hw_value;
drivers/net/wireless/silabs/wfx/hif_tx.h
57
int wfx_hif_scan_uniq(struct wfx_vif *wvif, struct ieee80211_channel *chan, int duration);
drivers/net/wireless/silabs/wfx/scan.c
152
struct ieee80211_channel *chan = wvif->remain_on_channel_chan;
drivers/net/wireless/silabs/wfx/scan.c
166
ret = wfx_hif_scan_uniq(wvif, chan, duration);
drivers/net/wireless/silabs/wfx/scan.c
187
struct ieee80211_channel *chan, int duration,
drivers/net/wireless/silabs/wfx/scan.c
197
wvif->remain_on_channel_chan = chan;
drivers/net/wireless/silabs/wfx/scan.h
24
struct ieee80211_channel *chan, int duration,
drivers/net/wireless/silabs/wfx/sta.c
148
chan0 = vif_ch0->bss_conf.chanreq.oper.chan;
drivers/net/wireless/silabs/wfx/sta.c
154
chan1 = vif_ch1->bss_conf.chanreq.oper.chan;
drivers/net/wireless/silabs/wfx/sta.c
690
struct ieee80211_channel *ch = conf->def.chan;
drivers/net/wireless/silabs/wfx/sta.c
703
struct ieee80211_channel *ch = conf->def.chan;
drivers/net/wireless/st/cw1200/sta.c
344
(priv->channel != conf->chandef.chan)) {
drivers/net/wireless/st/cw1200/sta.c
345
struct ieee80211_channel *ch = conf->chandef.chan;
drivers/net/wireless/ti/wl1251/main.c
1339
survey->channel = conf->chandef.chan;
drivers/net/wireless/ti/wl1251/main.c
599
conf->chandef.chan->center_freq);
drivers/net/wireless/ti/wl12xx/cmd.c
290
cmd->channel = ch_switch->chandef.chan->hw_value;
drivers/net/wireless/ti/wl18xx/cmd.c
32
cmd->channel = ch_switch->chandef.chan->hw_value;
drivers/net/wireless/ti/wl18xx/cmd.c
36
switch (ch_switch->chandef.chan->band) {
drivers/net/wireless/ti/wl18xx/cmd.c
45
ch_switch->chandef.chan->band);
drivers/net/wireless/ti/wlcore/main.c
4725
ieee80211_frequency_to_channel(ctx->def.chan->center_freq),
drivers/net/wireless/ti/wlcore/main.c
4734
ieee80211_frequency_to_channel(ctx->def.chan->center_freq),
drivers/net/wireless/ti/wlcore/main.c
4746
ctx->def.chan->center_freq);
drivers/net/wireless/ti/wlcore/main.c
4772
ctx->def.chan->dfs_state == NL80211_DFS_USABLE) {
drivers/net/wireless/ti/wlcore/main.c
4792
ctx->def.chan->center_freq);
drivers/net/wireless/ti/wlcore/main.c
4799
ctx->radar_enabled, ctx->def.chan->dfs_state);
drivers/net/wireless/ti/wlcore/main.c
4813
wlvif->band = ctx->def.chan->band;
drivers/net/wireless/ti/wlcore/main.c
4821
ctx->def.chan->dfs_state == NL80211_DFS_USABLE) {
drivers/net/wireless/ti/wlcore/main.c
4846
ieee80211_frequency_to_channel(ctx->def.chan->center_freq),
drivers/net/wireless/ti/wlcore/main.c
4879
new_ctx->def.chan->center_freq);
drivers/net/wireless/ti/wlcore/main.c
4897
wlvif->band = new_ctx->def.chan->band;
drivers/net/wireless/ti/wlcore/main.c
5039
survey->channel = conf->chandef.chan;
drivers/net/wireless/ti/wlcore/main.c
5650
struct ieee80211_channel *chan,
drivers/net/wireless/ti/wlcore/main.c
5658
channel = ieee80211_frequency_to_channel(chan->center_freq);
drivers/net/wireless/ti/wlcore/main.c
5680
ret = wl12xx_start_dev(wl, wlvif, chan->band, channel);
drivers/net/wireless/virtual/mac80211_hwsim_i.h
163
struct ieee80211_channel *chan);
drivers/net/wireless/virtual/mac80211_hwsim_main.c
1006
rcu_dereference(vif->bss_conf.chanctx_conf)->def.chan);
drivers/net/wireless/virtual/mac80211_hwsim_main.c
1044
rcu_dereference(vif->bss_conf.chanctx_conf)->def.chan);
drivers/net/wireless/virtual/mac80211_hwsim_main.c
1136
if (!data->radar_background_chandef.chan)
drivers/net/wireless/virtual/mac80211_hwsim_main.c
1168
if (conf->def.chan &&
drivers/net/wireless/virtual/mac80211_hwsim_main.c
1169
conf->def.chan->band == NL80211_BAND_6GHZ &&
drivers/net/wireless/virtual/mac80211_hwsim_main.c
1170
conf->def.chan->center_freq == arg->freq_mhz)
drivers/net/wireless/virtual/mac80211_hwsim_main.c
1340
struct ieee80211_channel *chan)
drivers/net/wireless/virtual/mac80211_hwsim_main.c
1372
hdr->rt_channel = cpu_to_le16(chan->center_freq);
drivers/net/wireless/virtual/mac80211_hwsim_main.c
1390
static void mac80211_hwsim_monitor_ack(struct ieee80211_channel *chan,
drivers/net/wireless/virtual/mac80211_hwsim_main.c
1413
hdr->rt_channel = cpu_to_le16(chan->center_freq);
drivers/net/wireless/virtual/mac80211_hwsim_main.c
1804
if (!hwsim_chans_compat(data->channel, chanctx->def.chan))
drivers/net/wireless/virtual/mac80211_hwsim_main.c
1904
struct ieee80211_channel *chan)
drivers/net/wireless/virtual/mac80211_hwsim_main.c
1915
mac80211_hwsim_monitor_rx(hw, skb, chan);
drivers/net/wireless/virtual/mac80211_hwsim_main.c
1919
rx_status.freq = chan->center_freq;
drivers/net/wireless/virtual/mac80211_hwsim_main.c
1920
rx_status.freq_offset = chan->freq_offset ? 1 : 0;
drivers/net/wireless/virtual/mac80211_hwsim_main.c
1921
rx_status.band = chan->band;
drivers/net/wireless/virtual/mac80211_hwsim_main.c
1969
.channel = chan,
drivers/net/wireless/virtual/mac80211_hwsim_main.c
1992
if (!hwsim_chans_compat(chan, data2->tmp_chan) &&
drivers/net/wireless/virtual/mac80211_hwsim_main.c
1993
!hwsim_chans_compat(chan, data2->channel)) {
drivers/net/wireless/virtual/mac80211_hwsim_main.c
2140
if (WARN_ON(!chandef.chan)) {
drivers/net/wireless/virtual/mac80211_hwsim_main.c
2145
channel = chandef.chan;
drivers/net/wireless/virtual/mac80211_hwsim_main.c
2209
channel = chanctx_conf->def.chan;
drivers/net/wireless/virtual/mac80211_hwsim_main.c
2400
struct ieee80211_channel *chan)
drivers/net/wireless/virtual/mac80211_hwsim_main.c
2413
return mac80211_hwsim_tx_frame_nl(hw, skb, _portid, chan);
drivers/net/wireless/virtual/mac80211_hwsim_main.c
2417
mac80211_hwsim_tx_frame_no_nl(hw, skb, chan);
drivers/net/wireless/virtual/mac80211_hwsim_main.c
2443
rcu_dereference(link_conf->chanctx_conf)->def.chan);
drivers/net/wireless/virtual/mac80211_hwsim_main.c
2498
rcu_dereference(link_conf->chanctx_conf)->def.chan);
drivers/net/wireless/virtual/mac80211_hwsim_main.c
2575
if (conf->chandef.chan)
drivers/net/wireless/virtual/mac80211_hwsim_main.c
2579
conf->chandef.chan->center_freq,
drivers/net/wireless/virtual/mac80211_hwsim_main.c
2596
WARN_ON(conf->chandef.chan && data->use_chanctx);
drivers/net/wireless/virtual/mac80211_hwsim_main.c
2599
if (data->scanning && conf->chandef.chan) {
drivers/net/wireless/virtual/mac80211_hwsim_main.c
2609
data->channel = conf->chandef.chan;
drivers/net/wireless/virtual/mac80211_hwsim_main.c
2621
data->channel = conf->chandef.chan;
drivers/net/wireless/virtual/mac80211_hwsim_main.c
3311
struct ieee80211_channel *chan,
drivers/net/wireless/virtual/mac80211_hwsim_main.c
3323
hwsim->roc_chan = chan;
drivers/net/wireless/virtual/mac80211_hwsim_main.c
3328
chan->center_freq, duration);
drivers/net/wireless/virtual/mac80211_hwsim_main.c
3357
ctx->def.chan->center_freq, ctx->def.width,
drivers/net/wireless/virtual/mac80211_hwsim_main.c
3367
ctx->def.chan->center_freq, ctx->def.width,
drivers/net/wireless/virtual/mac80211_hwsim_main.c
3380
ctx->def.chan->center_freq, ctx->def.width,
drivers/net/wireless/virtual/mac80211_hwsim_main.c
3399
mac80211_hwsim_tx_frame(hw, skb, ctx->def.chan);
drivers/net/wireless/virtual/mac80211_hwsim_main.c
3426
mac80211_hwsim_tx_frame(hw, skb, ctx->def.chan);
drivers/net/wireless/virtual/mac80211_hwsim_main.c
3449
vifs[i].old_ctx->def.chan->center_freq,
drivers/net/wireless/virtual/mac80211_hwsim_main.c
3453
vifs[i].new_ctx->def.chan->center_freq,
drivers/net/wireless/virtual/mac80211_hwsim_main.c
4251
struct cfg80211_chan_def *chan)
drivers/net/wireless/virtual/mac80211_hwsim_main.c
4259
if (chan)
drivers/net/wireless/virtual/mac80211_hwsim_main.c
4260
data->radar_background_chandef = *chan;
drivers/net/wireless/virtual/mac80211_hwsim_nan.c
1036
if (!data->nan.local_sched[slot].chan)
drivers/net/wireless/virtual/mac80211_hwsim_nan.c
114
if (!sched_chandef.chan ||
drivers/net/wireless/virtual/mac80211_hwsim_nan.c
115
sched_chandef.chan->center_freq != rx_chan->center_freq)
drivers/net/wireless/virtual/mac80211_hwsim_nan.c
1334
if (peer_chan && peer_chan->chanreq.oper.chan)
drivers/net/wireless/virtual/mac80211_hwsim_nan.c
171
if (!local_chandef.chan)
drivers/net/wireless/virtual/mac80211_hwsim_nan.c
183
if (!peer_chandef->chan)
drivers/net/wireless/zydas/zd1211rw/zd_mac.c
1145
mac->channel = conf->chandef.chan->hw_value;
drivers/net/wireless/zydas/zd1211rw/zd_mac.c
1148
return zd_chip_set_channel(&mac->chip, conf->chandef.chan->hw_value);
drivers/net/wwan/mhi_wwan_ctrl.c
259
{ .chan = "DUN", .driver_data = WWAN_PORT_AT },
drivers/net/wwan/mhi_wwan_ctrl.c
260
{ .chan = "DUN2", .driver_data = WWAN_PORT_AT },
drivers/net/wwan/mhi_wwan_ctrl.c
261
{ .chan = "MBIM", .driver_data = WWAN_PORT_MBIM },
drivers/net/wwan/mhi_wwan_ctrl.c
262
{ .chan = "QMI", .driver_data = WWAN_PORT_QMI },
drivers/net/wwan/mhi_wwan_ctrl.c
263
{ .chan = "DIAG", .driver_data = WWAN_PORT_QCDM },
drivers/net/wwan/mhi_wwan_ctrl.c
264
{ .chan = "FIREHOSE", .driver_data = WWAN_PORT_FIREHOSE },
drivers/net/wwan/mhi_wwan_ctrl.c
265
{ .chan = "NMEA", .driver_data = WWAN_PORT_NMEA },
drivers/net/wwan/mhi_wwan_mbim.c
649
{ .chan = "IP_HW0_MBIM", .driver_data = 0 },
drivers/ntb/ntb_transport.c
1520
struct dma_chan *chan = qp->rx_dma_chan;
drivers/ntb/ntb_transport.c
1528
device = chan->device;
drivers/ntb/ntb_transport.c
1554
txd = device->device_prep_dma_memcpy(chan, unmap->addr[1],
drivers/ntb/ntb_transport.c
1587
struct dma_chan *chan = qp->rx_dma_chan;
drivers/ntb/ntb_transport.c
1590
if (!chan)
drivers/ntb/ntb_transport.c
1853
struct dma_chan *chan = qp->tx_dma_chan;
drivers/ntb/ntb_transport.c
1862
device = chan->device;
drivers/ntb/ntb_transport.c
1882
txd = device->device_prep_dma_memcpy(chan, dest, unmap->addr[0], len,
drivers/ntb/ntb_transport.c
1897
dma_async_issue_pending(chan);
drivers/ntb/ntb_transport.c
1912
struct dma_chan *chan = qp->tx_dma_chan;
drivers/ntb/ntb_transport.c
1927
if (!chan)
drivers/ntb/ntb_transport.c
2003
static bool ntb_dma_filter_fn(struct dma_chan *chan, void *node)
drivers/ntb/ntb_transport.c
2005
return dev_to_node(&chan->dev->device) == (int)(unsigned long)node;
drivers/ntb/ntb_transport.c
2187
struct dma_chan *chan = qp->tx_dma_chan;
drivers/ntb/ntb_transport.c
2196
dma_sync_wait(chan, qp->last_cookie);
drivers/ntb/ntb_transport.c
2197
dmaengine_terminate_all(chan);
drivers/ntb/ntb_transport.c
2199
dma_unmap_resource(chan->device->dev,
drivers/ntb/ntb_transport.c
2203
dma_release_channel(chan);
drivers/ntb/ntb_transport.c
2207
struct dma_chan *chan = qp->rx_dma_chan;
drivers/ntb/ntb_transport.c
2216
dma_sync_wait(chan, qp->last_cookie);
drivers/ntb/ntb_transport.c
2217
dmaengine_terminate_all(chan);
drivers/ntb/ntb_transport.c
2218
dma_release_channel(chan);
drivers/ntb/test/ntb_perf.c
859
static bool perf_dma_filter(struct dma_chan *chan, void *data)
drivers/ntb/test/ntb_perf.c
866
return node == NUMA_NO_NODE || node == dev_to_node(chan->device->dev);
drivers/nvme/target/pci-epf.c
278
static bool nvmet_pci_epf_dma_filter(struct dma_chan *chan, void *arg)
drivers/nvme/target/pci-epf.c
284
dma_get_slave_caps(chan, &caps);
drivers/nvme/target/pci-epf.c
286
return chan->device->dev == filter->dev &&
drivers/nvme/target/pci-epf.c
295
struct dma_chan *chan;
drivers/nvme/target/pci-epf.c
307
chan = dma_request_channel(mask, nvmet_pci_epf_dma_filter, &filter);
drivers/nvme/target/pci-epf.c
308
if (!chan)
drivers/nvme/target/pci-epf.c
311
nvme_epf->dma_rx_chan = chan;
drivers/nvme/target/pci-epf.c
314
chan = dma_request_channel(mask, nvmet_pci_epf_dma_filter, &filter);
drivers/nvme/target/pci-epf.c
315
if (!chan)
drivers/nvme/target/pci-epf.c
318
nvme_epf->dma_tx_chan = chan;
drivers/nvme/target/pci-epf.c
368
struct dma_chan *chan;
drivers/nvme/target/pci-epf.c
377
chan = nvme_epf->dma_rx_chan;
drivers/nvme/target/pci-epf.c
383
chan = nvme_epf->dma_tx_chan;
drivers/nvme/target/pci-epf.c
393
dma_dev = dmaengine_get_dma_device(chan);
drivers/nvme/target/pci-epf.c
399
ret = dmaengine_slave_config(chan, &sconf);
drivers/nvme/target/pci-epf.c
405
desc = dmaengine_prep_slave_single(chan, dma_addr, seg->length,
drivers/nvme/target/pci-epf.c
420
if (dma_sync_wait(chan, cookie) != DMA_COMPLETE) {
drivers/nvme/target/pci-epf.c
425
dmaengine_terminate_sync(chan);
drivers/of/unittest.c
3217
static int unittest_i2c_mux_select_chan(struct i2c_mux_core *muxc, u32 chan)
drivers/pci/controller/pci-hyperv.c
3042
struct vmbus_channel *chan = hbus->hdev->channel;
drivers/pci/controller/pci-hyperv.c
3063
ret = vmbus_recvpacket_raw(chan, buffer, bufferlen,
drivers/pci/controller/pci-hyperv.c
3091
lock_requestor(chan, flags);
drivers/pci/controller/pci-hyperv.c
3092
req_addr = __vmbus_request_addr_match(chan, req_id,
drivers/pci/controller/pci-hyperv.c
3095
unlock_requestor(chan, flags);
drivers/pci/controller/pci-hyperv.c
3113
unlock_requestor(chan, flags);
drivers/pci/controller/pci-hyperv.c
3893
struct vmbus_channel *chan = hdev->channel;
drivers/pci/controller/pci-hyperv.c
3909
if (chan->rescind)
drivers/pci/controller/pci-hyperv.c
3947
ret = vmbus_sendpacket_getid(chan, msg, sizeof(*msg),
drivers/pci/controller/pci-hyperv.c
3962
vmbus_request_addr_match(chan, trans_id,
drivers/pci/endpoint/functions/pci-epf-mhi.c
314
struct dma_chan *chan = epf_mhi->dma_chan_rx;
drivers/pci/endpoint/functions/pci-epf-mhi.c
331
ret = dmaengine_slave_config(chan, &config);
drivers/pci/endpoint/functions/pci-epf-mhi.c
345
desc = dmaengine_prep_slave_single(chan, dst_addr, buf_info->size,
drivers/pci/endpoint/functions/pci-epf-mhi.c
364
dma_async_issue_pending(chan);
drivers/pci/endpoint/functions/pci-epf-mhi.c
368
dmaengine_terminate_sync(chan);
drivers/pci/endpoint/functions/pci-epf-mhi.c
387
struct dma_chan *chan = epf_mhi->dma_chan_tx;
drivers/pci/endpoint/functions/pci-epf-mhi.c
404
ret = dmaengine_slave_config(chan, &config);
drivers/pci/endpoint/functions/pci-epf-mhi.c
418
desc = dmaengine_prep_slave_single(chan, src_addr, buf_info->size,
drivers/pci/endpoint/functions/pci-epf-mhi.c
437
dma_async_issue_pending(chan);
drivers/pci/endpoint/functions/pci-epf-mhi.c
441
dmaengine_terminate_sync(chan);
drivers/pci/endpoint/functions/pci-epf-mhi.c
495
struct dma_chan *chan = epf_mhi->dma_chan_rx;
drivers/pci/endpoint/functions/pci-epf-mhi.c
509
ret = dmaengine_slave_config(chan, &config);
drivers/pci/endpoint/functions/pci-epf-mhi.c
523
desc = dmaengine_prep_slave_single(chan, dst_addr, buf_info->size,
drivers/pci/endpoint/functions/pci-epf-mhi.c
554
dma_async_issue_pending(chan);
drivers/pci/endpoint/functions/pci-epf-mhi.c
574
struct dma_chan *chan = epf_mhi->dma_chan_tx;
drivers/pci/endpoint/functions/pci-epf-mhi.c
588
ret = dmaengine_slave_config(chan, &config);
drivers/pci/endpoint/functions/pci-epf-mhi.c
602
desc = dmaengine_prep_slave_single(chan, src_addr, buf_info->size,
drivers/pci/endpoint/functions/pci-epf-mhi.c
633
dma_async_issue_pending(chan);
drivers/pci/endpoint/functions/pci-epf-mhi.c
652
static bool pci_epf_mhi_filter(struct dma_chan *chan, void *node)
drivers/pci/endpoint/functions/pci-epf-mhi.c
658
dma_get_slave_caps(chan, &caps);
drivers/pci/endpoint/functions/pci-epf-mhi.c
660
return chan->device->dev == filter->dev && filter->dma_mask &
drivers/pci/endpoint/functions/pci-epf-test.c
164
struct dma_chan *chan = (dir == DMA_MEM_TO_DEV) ?
drivers/pci/endpoint/functions/pci-epf-test.c
174
if (IS_ERR_OR_NULL(chan)) {
drivers/pci/endpoint/functions/pci-epf-test.c
186
if (dmaengine_slave_config(chan, &sconf)) {
drivers/pci/endpoint/functions/pci-epf-test.c
190
tx = dmaengine_prep_slave_single(chan, dma_local, len, dir,
drivers/pci/endpoint/functions/pci-epf-test.c
193
tx = dmaengine_prep_dma_memcpy(chan, dma_dst, dma_src, len,
drivers/pci/endpoint/functions/pci-epf-test.c
203
epf_test->transfer_chan = chan;
drivers/pci/endpoint/functions/pci-epf-test.c
214
dma_async_issue_pending(chan);
drivers/pci/endpoint/functions/pci-epf-test.c
227
dmaengine_terminate_sync(chan);
drivers/pci/endpoint/functions/pci-epf-test.c
237
static bool epf_dma_filter_fn(struct dma_chan *chan, void *node)
drivers/pci/endpoint/functions/pci-epf-test.c
243
dma_get_slave_caps(chan, &caps);
drivers/pci/endpoint/functions/pci-epf-test.c
245
return chan->device->dev == filter->dev
drivers/pcmcia/max1600.c
22
int chan;
drivers/pcmcia/max1600.c
27
chan = 0;
drivers/pcmcia/max1600.c
30
chan = 1;
drivers/pcmcia/max1600.c
49
name = max1600_gpio_name[chan][i];
drivers/perf/arm-cmn.c
725
unsigned int chan = eventid >> 5;
drivers/perf/arm-cmn.c
730
if (chan == 4 && cmn->part == PART_CMN600)
drivers/perf/arm-cmn.c
733
if ((chan == 5 && cmn->rsp_vc_num < 2) ||
drivers/perf/arm-cmn.c
734
(chan == 6 && cmn->dat_vc_num < 2) ||
drivers/perf/arm-cmn.c
735
(chan == 7 && cmn->req_vc_num < 2) ||
drivers/perf/arm-cmn.c
736
(chan == 8 && cmn->snp_vc_num < 2))
drivers/platform/x86/silicom-platform.c
52
#define CHANNEL_TO_OFFSET(chan) (((chan) >> 3) - 0x14)
drivers/platform/x86/toshiba_acpi.c
2523
static int toshiba_iio_accel_get_axis(enum toshiba_iio_accel_chan chan)
drivers/platform/x86/toshiba_acpi.c
2532
switch (chan) {
drivers/platform/x86/toshiba_acpi.c
2549
struct iio_chan_spec const *chan,
drivers/platform/x86/toshiba_acpi.c
2556
ret = toshiba_iio_accel_get_axis(chan->channel);
drivers/platform/x86/toshiba_acpi.c
2568
#define TOSHIBA_IIO_ACCEL_CHANNEL(axis, chan) { \
drivers/platform/x86/toshiba_acpi.c
2571
.channel = chan, \
drivers/power/supply/generic-adc-battery.c
161
int chan;
drivers/power/supply/generic-adc-battery.c
198
for (chan = 0; chan < ARRAY_SIZE(gab_chan_name); chan++) {
drivers/power/supply/generic-adc-battery.c
199
adc_bat->channel[chan] = devm_iio_channel_get(&pdev->dev, gab_chan_name[chan]);
drivers/power/supply/generic-adc-battery.c
200
if (IS_ERR(adc_bat->channel[chan])) {
drivers/power/supply/generic-adc-battery.c
201
ret = PTR_ERR(adc_bat->channel[chan]);
drivers/power/supply/generic-adc-battery.c
203
return dev_err_probe(&pdev->dev, ret, "Failed to get ADC channel %s\n", gab_chan_name[chan]);
drivers/power/supply/generic-adc-battery.c
204
adc_bat->channel[chan] = NULL;
drivers/power/supply/generic-adc-battery.c
205
} else if (adc_bat->channel[chan]) {
drivers/power/supply/generic-adc-battery.c
210
if (properties[index2] == gab_dyn_props[chan])
drivers/power/supply/generic-adc-battery.c
214
properties[index++] = gab_dyn_props[chan];
drivers/power/supply/lp8788-charger.c
107
struct iio_channel *chan[LP8788_NUM_CHG_ADC];
drivers/power/supply/lp8788-charger.c
235
struct iio_channel *channel = pchg->chan[LP8788_VBATT];
drivers/power/supply/lp8788-charger.c
290
struct iio_channel *channel = pchg->chan[LP8788_BATT_TEMP];
drivers/power/supply/lp8788-charger.c
563
struct iio_channel *chan;
drivers/power/supply/lp8788-charger.c
569
chan = devm_iio_channel_get(dev, pdata->adc_vbatt);
drivers/power/supply/lp8788-charger.c
570
pchg->chan[LP8788_VBATT] = IS_ERR(chan) ? NULL : chan;
drivers/power/supply/lp8788-charger.c
573
chan = devm_iio_channel_get(dev, pdata->adc_batt_temp);
drivers/power/supply/lp8788-charger.c
574
pchg->chan[LP8788_BATT_TEMP] = IS_ERR(chan) ? NULL : chan;
drivers/power/supply/mt6370-charger.c
345
static int mt6370_chg_read_adc_chan(struct mt6370_priv *priv, unsigned int chan,
drivers/power/supply/mt6370-charger.c
350
if (chan >= MT6370_ADC_CHAN_MAX)
drivers/power/supply/mt6370-charger.c
353
ret = iio_read_channel_processed(&priv->iio_adcs[chan], val);
drivers/power/supply/qcom_smbx.c
602
static int smb_get_iio_chan(struct smb_chip *chip, struct iio_channel *chan,
drivers/power/supply/qcom_smbx.c
615
if (IS_ERR(chan)) {
drivers/power/supply/qcom_smbx.c
616
dev_err(chip->dev, "Failed to chan, err = %li", PTR_ERR(chan));
drivers/power/supply/qcom_smbx.c
617
return PTR_ERR(chan);
drivers/power/supply/qcom_smbx.c
620
return iio_read_channel_processed(chan, val);
drivers/power/supply/rt9467-charger.c
386
static int rt9467_get_adc_sel(enum rt9467_adc_chan chan, int *sel)
drivers/power/supply/rt9467-charger.c
388
switch (chan) {
drivers/power/supply/rt9467-charger.c
393
*sel = chan + 1;
drivers/power/supply/rt9467-charger.c
396
*sel = chan + 2;
drivers/power/supply/rt9467-charger.c
400
*sel = chan + 3;
drivers/power/supply/rt9467-charger.c
404
*sel = chan + 4;
drivers/power/supply/rt9467-charger.c
412
enum rt9467_adc_chan chan, int *val)
drivers/power/supply/rt9467-charger.c
420
ret = rt9467_get_adc_sel(chan, &adc_sel);
drivers/power/supply/rt9467-charger.c
443
dev_err(data->dev, "Failed to wait ADC conversion, chan = %d\n", chan);
drivers/power/supply/rt9467-charger.c
460
enum rt9467_adc_chan chan, int *val)
drivers/power/supply/rt9467-charger.c
465
ret = rt9467_get_adc_raw_data(data, chan, val);
drivers/power/supply/rt9467-charger.c
469
switch (chan) {
drivers/power/supply/rt9756.c
248
static int rt9756_get_adc(struct rt9756_data *data, enum rt9756_adc_chan chan,
drivers/power/supply/rt9756.c
252
unsigned int reg_addr = RT9756_REG_VBUSADC + chan * 2;
drivers/power/supply/rt9756.c
278
if (chan == ADC_TDIE) {
drivers/power/supply/rt9756.c
282
} else if (chan == ADC_IBAT)
drivers/power/supply/sbs-manager.c
172
static int sbsm_select(struct i2c_mux_core *muxc, u32 chan)
drivers/power/supply/sbs-manager.c
179
if (data->cur_chan == chan)
drivers/power/supply/sbs-manager.c
183
reg = BIT(SBSM_SMB_BAT_OFFSET + chan);
drivers/power/supply/sbs-manager.c
186
dev_err(dev, "Failed to select channel %i\n", chan);
drivers/power/supply/sbs-manager.c
188
data->cur_chan = chan;
drivers/ptp/ptp_chardev.c
101
if (chan != 0)
drivers/ptp/ptp_chardev.c
108
if (info->verify(info, pin, func, chan)) {
drivers/ptp/ptp_chardev.c
110
func, chan, pin);
drivers/ptp/ptp_chardev.c
118
ptp_disable_pinfunc(info, func, chan);
drivers/ptp/ptp_chardev.c
120
pin1->chan = 0;
drivers/ptp/ptp_chardev.c
126
ptp_disable_pinfunc(info, pin2->func, pin2->chan);
drivers/ptp/ptp_chardev.c
128
pin2->chan = chan;
drivers/ptp/ptp_chardev.c
21
enum ptp_pin_function func, unsigned int chan)
drivers/ptp/ptp_chardev.c
33
rq.extts.index = chan;
drivers/ptp/ptp_chardev.c
38
rq.perout.index = chan;
drivers/ptp/ptp_chardev.c
483
return ptp_set_pinfunc(ptp, pin_index, pd.func, pd.chan);
drivers/ptp/ptp_chardev.c
60
info->pin_config[i].chan);
drivers/ptp/ptp_chardev.c
71
enum ptp_pin_function func, unsigned int chan)
drivers/ptp/ptp_chardev.c
80
info->pin_config[i].chan == chan) {
drivers/ptp/ptp_chardev.c
93
if (chan >= info->n_ext_ts)
drivers/ptp/ptp_chardev.c
97
if (chan >= info->n_per_out)
drivers/ptp/ptp_clock.c
629
enum ptp_pin_function func, unsigned int chan)
drivers/ptp/ptp_clock.c
636
ptp->info->pin_config[i].chan == chan) {
drivers/ptp/ptp_clock.c
647
enum ptp_pin_function func, unsigned int chan)
drivers/ptp/ptp_clock.c
653
result = ptp_find_pin(ptp, func, chan);
drivers/ptp/ptp_clockmatrix.c
2013
enum ptp_pin_function func, unsigned int chan)
drivers/ptp/ptp_clockmatrix.c
2260
ppd->chan = index;
drivers/ptp/ptp_idt82p33.c
1140
enum ptp_pin_function func, unsigned int chan)
drivers/ptp/ptp_idt82p33.c
1186
ppd->chan = index;
drivers/ptp/ptp_ocp.c
1706
enum ptp_pin_function func, unsigned chan)
drivers/ptp/ptp_ocp.c
1722
if (chan)
drivers/ptp/ptp_ocp.c
1723
snprintf(buf, sizeof(buf), "OUT: GEN%d", chan);
drivers/ptp/ptp_private.h
149
enum ptp_pin_function func, unsigned int chan);
drivers/ptp/ptp_sysfs.c
395
unsigned int func, chan;
drivers/ptp/ptp_sysfs.c
406
chan = ptp->info->pin_config[index].chan;
drivers/ptp/ptp_sysfs.c
410
return sysfs_emit(page, "%u %u\n", func, chan);
drivers/ptp/ptp_sysfs.c
417
unsigned int func, chan;
drivers/ptp/ptp_sysfs.c
420
cnt = sscanf(buf, "%u %u", &func, &chan);
drivers/ptp/ptp_sysfs.c
430
err = ptp_set_pinfunc(ptp, index, func, chan);
drivers/pwm/pwm-atmel-tcb.c
519
struct atmel_tcb_channel *chan = &tcbpwmc->bkup;
drivers/pwm/pwm-atmel-tcb.c
522
regmap_read(tcbpwmc->regmap, ATMEL_TC_REG(channel, CMR), &chan->cmr);
drivers/pwm/pwm-atmel-tcb.c
523
regmap_read(tcbpwmc->regmap, ATMEL_TC_REG(channel, RA), &chan->ra);
drivers/pwm/pwm-atmel-tcb.c
524
regmap_read(tcbpwmc->regmap, ATMEL_TC_REG(channel, RB), &chan->rb);
drivers/pwm/pwm-atmel-tcb.c
525
regmap_read(tcbpwmc->regmap, ATMEL_TC_REG(channel, RC), &chan->rc);
drivers/pwm/pwm-atmel-tcb.c
534
struct atmel_tcb_channel *chan = &tcbpwmc->bkup;
drivers/pwm/pwm-atmel-tcb.c
537
regmap_write(tcbpwmc->regmap, ATMEL_TC_REG(channel, CMR), chan->cmr);
drivers/pwm/pwm-atmel-tcb.c
538
regmap_write(tcbpwmc->regmap, ATMEL_TC_REG(channel, RA), chan->ra);
drivers/pwm/pwm-atmel-tcb.c
539
regmap_write(tcbpwmc->regmap, ATMEL_TC_REG(channel, RB), chan->rb);
drivers/pwm/pwm-atmel-tcb.c
540
regmap_write(tcbpwmc->regmap, ATMEL_TC_REG(channel, RC), chan->rc);
drivers/pwm/pwm-atmel-tcb.c
542
if (chan->enabled)
drivers/pwm/pwm-bcm-kona.c
106
unsigned int value, chan = pwm->hwpwm;
drivers/pwm/pwm-bcm-kona.c
140
kona_pwmc_prepare_for_settings(kp, chan);
drivers/pwm/pwm-bcm-kona.c
143
value &= ~PRESCALE_MASK(chan);
drivers/pwm/pwm-bcm-kona.c
144
value |= prescale << PRESCALE_SHIFT(chan);
drivers/pwm/pwm-bcm-kona.c
147
writel(pc, kp->base + PERIOD_COUNT_OFFSET(chan));
drivers/pwm/pwm-bcm-kona.c
149
writel(dc, kp->base + DUTY_CYCLE_HIGH_OFFSET(chan));
drivers/pwm/pwm-bcm-kona.c
151
kona_pwmc_apply_settings(kp, chan);
drivers/pwm/pwm-bcm-kona.c
160
unsigned int chan = pwm->hwpwm;
drivers/pwm/pwm-bcm-kona.c
170
kona_pwmc_prepare_for_settings(kp, chan);
drivers/pwm/pwm-bcm-kona.c
175
value |= 1 << PWM_CONTROL_POLARITY_SHIFT(chan);
drivers/pwm/pwm-bcm-kona.c
177
value &= ~(1 << PWM_CONTROL_POLARITY_SHIFT(chan));
drivers/pwm/pwm-bcm-kona.c
181
kona_pwmc_apply_settings(kp, chan);
drivers/pwm/pwm-bcm-kona.c
205
unsigned int chan = pwm->hwpwm;
drivers/pwm/pwm-bcm-kona.c
208
kona_pwmc_prepare_for_settings(kp, chan);
drivers/pwm/pwm-bcm-kona.c
211
writel(0, kp->base + DUTY_CYCLE_HIGH_OFFSET(chan));
drivers/pwm/pwm-bcm-kona.c
212
writel(0, kp->base + PERIOD_COUNT_OFFSET(chan));
drivers/pwm/pwm-bcm-kona.c
216
value &= ~PRESCALE_MASK(chan);
drivers/pwm/pwm-bcm-kona.c
219
kona_pwmc_apply_settings(kp, chan);
drivers/pwm/pwm-bcm-kona.c
277
unsigned int chan;
drivers/pwm/pwm-bcm-kona.c
306
for (chan = 0; chan < chip->npwm; chan++)
drivers/pwm/pwm-bcm-kona.c
307
value |= (1 << PWM_CONTROL_TYPE_SHIFT(chan));
drivers/pwm/pwm-bcm-kona.c
39
#define PWM_CONTROL_SMOOTH_SHIFT(chan) (24 + (chan))
drivers/pwm/pwm-bcm-kona.c
40
#define PWM_CONTROL_TYPE_SHIFT(chan) (16 + (chan))
drivers/pwm/pwm-bcm-kona.c
41
#define PWM_CONTROL_POLARITY_SHIFT(chan) (8 + (chan))
drivers/pwm/pwm-bcm-kona.c
42
#define PWM_CONTROL_TRIGGER_SHIFT(chan) (chan)
drivers/pwm/pwm-bcm-kona.c
45
#define PRESCALE_SHIFT(chan) ((chan) << 2)
drivers/pwm/pwm-bcm-kona.c
46
#define PRESCALE_MASK(chan) (0x7 << PRESCALE_SHIFT(chan))
drivers/pwm/pwm-bcm-kona.c
50
#define PERIOD_COUNT_OFFSET(chan) (0x00000008 + ((chan) << 3))
drivers/pwm/pwm-bcm-kona.c
54
#define DUTY_CYCLE_HIGH_OFFSET(chan) (0x0000000c + ((chan) << 3))
drivers/pwm/pwm-bcm-kona.c
72
unsigned int chan)
drivers/pwm/pwm-bcm-kona.c
76
value |= 1 << PWM_CONTROL_SMOOTH_SHIFT(chan);
drivers/pwm/pwm-bcm-kona.c
77
value &= ~(1 << PWM_CONTROL_TRIGGER_SHIFT(chan));
drivers/pwm/pwm-bcm-kona.c
87
static void kona_pwmc_apply_settings(struct kona_pwmc *kp, unsigned int chan)
drivers/pwm/pwm-bcm-kona.c
92
value &= ~(1 << PWM_CONTROL_SMOOTH_SHIFT(chan));
drivers/pwm/pwm-bcm-kona.c
93
value |= 1 << PWM_CONTROL_TRIGGER_SHIFT(chan);
drivers/pwm/pwm-mc33xs2410.c
41
#define MC33XS2410_PWM_CTRL1_POL_INV(chan) BIT((chan) + 1)
drivers/pwm/pwm-mc33xs2410.c
45
#define MC33XS2410_PWM_CTRL3_EN(chan) BIT(4 + (chan) - 1)
drivers/pwm/pwm-mc33xs2410.c
48
#define MC33XS2410_PWM_FREQ(chan) (0x08 + (chan) - 1)
drivers/pwm/pwm-mc33xs2410.c
53
#define MC33XS2410_PWM_DC(chan) (0x0c + (chan) - 1)
drivers/pwm/pwm-samsung.c
154
static int pwm_samsung_is_tdiv(struct samsung_pwm_chip *our_chip, unsigned int chan)
drivers/pwm/pwm-samsung.c
160
reg >>= TCFG1_SHIFT(chan);
drivers/pwm/pwm-samsung.c
167
unsigned int chan)
drivers/pwm/pwm-samsung.c
175
if (chan >= 2)
drivers/pwm/pwm-samsung.c
183
unsigned int chan, unsigned long freq)
drivers/pwm/pwm-samsung.c
191
if (!pwm_samsung_is_tdiv(our_chip, chan)) {
drivers/pwm/pwm-samsung.c
192
clk = (chan < 2) ? our_chip->tclk0 : our_chip->tclk1;
drivers/pwm/pwm-samsung.c
200
"tclk of PWM %d is inoperational, using tdiv\n", chan);
drivers/pwm/pwm-samsung.c
203
rate = pwm_samsung_get_tin_rate(our_chip, chan);
drivers/pwm/pwm-samsung.c
224
pwm_samsung_set_divisor(our_chip, chan, BIT(div));
drivers/pwm/pwm-samsung.c
312
struct samsung_pwm_channel *chan = &our_chip->channel[pwm->hwpwm];
drivers/pwm/pwm-samsung.c
313
u32 tin_ns = chan->tin_ns, tcnt, tcmp, oldtcmp;
drivers/pwm/pwm-samsung.c
322
if (chan->period_ns != period_ns || force_period) {
drivers/pwm/pwm-samsung.c
33
#define REG_TCNTB(chan) (0x0c + ((chan) * 0xc))
drivers/pwm/pwm-samsung.c
34
#define REG_TCMPB(chan) (0x10 + ((chan) * 0xc))
drivers/pwm/pwm-samsung.c
373
chan->period_ns = period_ns;
drivers/pwm/pwm-samsung.c
374
chan->tin_ns = tin_ns;
drivers/pwm/pwm-samsung.c
375
chan->duty_ns = duty_ns;
drivers/pwm/pwm-samsung.c
40
#define TCFG1_SHIFT(chan) (4 * (chan))
drivers/pwm/pwm-samsung.c
50
#define TCON_START(chan) BIT(4 * (chan) + 0)
drivers/pwm/pwm-samsung.c
51
#define TCON_MANUALUPDATE(chan) BIT(4 * (chan) + 1)
drivers/pwm/pwm-samsung.c
52
#define TCON_INVERT(chan) BIT(4 * (chan) + 2)
drivers/pwm/pwm-samsung.c
53
#define _TCON_AUTORELOAD(chan) BIT(4 * (chan) + 3)
drivers/pwm/pwm-samsung.c
54
#define _TCON_AUTORELOAD4(chan) BIT(4 * (chan) + 2)
drivers/pwm/pwm-samsung.c
545
unsigned int chan;
drivers/pwm/pwm-samsung.c
55
#define TCON_AUTORELOAD(chan) \
drivers/pwm/pwm-samsung.c
56
((chan < 5) ? _TCON_AUTORELOAD(chan) : _TCON_AUTORELOAD4(chan))
drivers/pwm/pwm-samsung.c
578
for (chan = 0; chan < SAMSUNG_PWM_NUM; ++chan)
drivers/pwm/pwm-samsung.c
579
if (our_chip->variant.output_mask & BIT(chan))
drivers/pwm/pwm-samsung.c
580
pwm_samsung_set_invert(our_chip, chan, true);
drivers/pwm/pwm-samsung.c
608
struct samsung_pwm_channel *chan = &our_chip->channel[i];
drivers/pwm/pwm-samsung.c
617
if (chan->period_ns) {
drivers/pwm/pwm-samsung.c
618
__pwm_samsung_config(chip, pwm, chan->duty_ns,
drivers/pwm/pwm-samsung.c
619
chan->period_ns, true);
drivers/pwm/pwm-sophgo-sg2042.c
120
unsigned int chan = pwm->hwpwm;
drivers/pwm/pwm-sophgo-sg2042.c
124
period_ticks = readl(ddata->base + SG2042_PWM_PERIOD(chan));
drivers/pwm/pwm-sophgo-sg2042.c
125
hlperiod_ticks = readl(ddata->base + SG2042_PWM_HLPERIOD(chan));
drivers/pwm/pwm-sophgo-sg2042.c
42
#define SG2042_PWM_HLPERIOD(chan) ((chan) * 8 + 0)
drivers/pwm/pwm-sophgo-sg2042.c
43
#define SG2042_PWM_PERIOD(chan) ((chan) * 8 + 4)
drivers/pwm/pwm-sophgo-sg2042.c
69
static void pwm_sg2042_config(struct sg2042_pwm_ddata *ddata, unsigned int chan,
drivers/pwm/pwm-sophgo-sg2042.c
74
writel(period_ticks, base + SG2042_PWM_PERIOD(chan));
drivers/pwm/pwm-sophgo-sg2042.c
75
writel(hlperiod_ticks, base + SG2042_PWM_HLPERIOD(chan));
drivers/pwm/pwm-sun4i.c
53
#define PWM_REG_PRESCAL(reg, chan) (((reg) >> ((chan) * PWMCH_OFFSET)) & PWM_PRESCAL_MASK)
drivers/pwm/pwm-sun4i.c
55
#define BIT_CH(bit, chan) ((bit) << ((chan) * PWMCH_OFFSET))
drivers/rapidio/devices/rio_mport_cdev.c
596
*prep_dma_xfer(struct dma_chan *chan, struct rio_transfer_io *transfer,
drivers/rapidio/devices/rio_mport_cdev.c
625
return rio_dma_prep_xfer(chan, transfer->rioid, &tx_data, dir, flags);
drivers/rapidio/devices/rio_mport_cdev.c
679
struct dma_chan *chan;
drivers/rapidio/devices/rio_mport_cdev.c
690
chan = priv->dmach;
drivers/rapidio/devices/rio_mport_cdev.c
695
dev_name(&chan->dev->device),
drivers/rapidio/devices/rio_mport_cdev.c
699
tx = prep_dma_xfer(chan, xfer, sgt, nents, dir,
drivers/rapidio/devices/rio_mport_cdev.c
736
dma_async_issue_pending(chan);
drivers/rapidio/devices/rio_mport_cdev.c
797
struct dma_chan *chan;
drivers/rapidio/devices/rio_mport_cdev.c
812
chan = priv->dmach;
drivers/rapidio/devices/rio_mport_cdev.c
819
req->dmach = chan;
drivers/rapidio/devices/rio_mport_cdev.c
915
nents = dma_map_sg(chan->device->dev,
drivers/rapidio/devices/tsi721_dma.c
1022
struct dma_chan *chan, *_c;
drivers/rapidio/devices/tsi721_dma.c
1028
list_for_each_entry_safe(chan, _c, &mport->dma.channels,
drivers/rapidio/devices/tsi721_dma.c
1030
bdma_chan = to_tsi721_chan(chan);
drivers/rapidio/devices/tsi721_dma.c
1041
list_del(&chan->device_node);
drivers/rapidio/devices/tsi721_dma.c
413
struct dma_chan *dchan = desc->txd.chan;
drivers/rapidio/devices/tsi721_dma.c
47
static inline struct tsi721_bdma_chan *to_tsi721_chan(struct dma_chan *chan)
drivers/rapidio/devices/tsi721_dma.c
49
return container_of(chan, struct tsi721_bdma_chan, dchan);
drivers/rapidio/devices/tsi721_dma.c
696
struct tsi721_bdma_chan *bdma_chan = to_tsi721_chan(txd->chan);
drivers/rapidio/rio.c
1752
static bool rio_chan_filter(struct dma_chan *chan, void *arg)
drivers/rapidio/rio.c
1757
return mport == container_of(chan->device, struct rio_mport, dma);
drivers/rapidio/rio_cm.c
1144
new_ch->rem_channel = req->chan;
drivers/rapidio/rio_cm.c
1715
struct rio_cm_channel chan;
drivers/rapidio/rio_cm.c
1717
if (copy_from_user(&chan, arg, sizeof(chan)))
drivers/rapidio/rio_cm.c
1719
if (chan.mport_id >= RIO_MAX_MPORTS)
drivers/rapidio/rio_cm.c
1722
return riocm_ch_bind(chan.id, chan.mport_id, NULL);
drivers/rapidio/rio_cm.c
1779
struct rio_cm_channel chan;
drivers/rapidio/rio_cm.c
1784
if (copy_from_user(&chan, arg, sizeof(chan)))
drivers/rapidio/rio_cm.c
1786
if (chan.mport_id >= RIO_MAX_MPORTS)
drivers/rapidio/rio_cm.c
1793
if (cm->mport->id == chan.mport_id) {
drivers/rapidio/rio_cm.c
1802
if (chan.remote_destid >= RIO_ANY_DESTID(cm->mport->sys_size)) {
drivers/rapidio/rio_cm.c
1811
if (peer->rdev->destid == chan.remote_destid) {
drivers/rapidio/rio_cm.c
1822
return riocm_ch_connect(chan.id, cm, peer, chan.remote_channel);
drivers/rapidio/rio_cm.c
204
u16 chan; /* requester channel ID */
drivers/rapidio/rio_cm.c
399
req->chan = ntohs(hh->src_ch);
drivers/remoteproc/st_remoteproc.c
334
struct mbox_chan *chan;
drivers/remoteproc/st_remoteproc.c
384
chan = mbox_request_channel_byname(&ddata->mbox_client_vq0, "vq0_rx");
drivers/remoteproc/st_remoteproc.c
385
if (IS_ERR(chan)) {
drivers/remoteproc/st_remoteproc.c
386
ret = dev_err_probe(&rproc->dev, PTR_ERR(chan),
drivers/remoteproc/st_remoteproc.c
390
ddata->mbox_chan[ST_RPROC_VQ0 * MBOX_MAX + MBOX_RX] = chan;
drivers/remoteproc/st_remoteproc.c
392
chan = mbox_request_channel_byname(&ddata->mbox_client_vq0, "vq0_tx");
drivers/remoteproc/st_remoteproc.c
393
if (IS_ERR(chan)) {
drivers/remoteproc/st_remoteproc.c
394
ret = dev_err_probe(&rproc->dev, PTR_ERR(chan),
drivers/remoteproc/st_remoteproc.c
398
ddata->mbox_chan[ST_RPROC_VQ0 * MBOX_MAX + MBOX_TX] = chan;
drivers/remoteproc/st_remoteproc.c
400
chan = mbox_request_channel_byname(&ddata->mbox_client_vq1, "vq1_rx");
drivers/remoteproc/st_remoteproc.c
401
if (IS_ERR(chan)) {
drivers/remoteproc/st_remoteproc.c
402
ret = dev_err_probe(&rproc->dev, PTR_ERR(chan),
drivers/remoteproc/st_remoteproc.c
406
ddata->mbox_chan[ST_RPROC_VQ1 * MBOX_MAX + MBOX_RX] = chan;
drivers/remoteproc/st_remoteproc.c
408
chan = mbox_request_channel_byname(&ddata->mbox_client_vq1, "vq1_tx");
drivers/remoteproc/st_remoteproc.c
409
if (IS_ERR(chan)) {
drivers/remoteproc/st_remoteproc.c
410
ret = dev_err_probe(&rproc->dev, PTR_ERR(chan),
drivers/remoteproc/st_remoteproc.c
414
ddata->mbox_chan[ST_RPROC_VQ1 * MBOX_MAX + MBOX_TX] = chan;
drivers/remoteproc/stm32_rproc.c
314
if (ddata->mb[i].chan)
drivers/remoteproc/stm32_rproc.c
315
mbox_free_channel(ddata->mb[i].chan);
drivers/remoteproc/stm32_rproc.c
316
ddata->mb[i].chan = NULL;
drivers/remoteproc/stm32_rproc.c
375
ddata->mb[i].chan = mbox_request_channel_byname(cl, name);
drivers/remoteproc/stm32_rproc.c
376
if (IS_ERR(ddata->mb[i].chan)) {
drivers/remoteproc/stm32_rproc.c
377
if (PTR_ERR(ddata->mb[i].chan) == -EPROBE_DEFER) {
drivers/remoteproc/stm32_rproc.c
379
PTR_ERR(ddata->mb[i].chan),
drivers/remoteproc/stm32_rproc.c
385
ddata->mb[i].chan = NULL;
drivers/remoteproc/stm32_rproc.c
397
if (ddata->mb[j].chan)
drivers/remoteproc/stm32_rproc.c
398
mbox_free_channel(ddata->mb[j].chan);
drivers/remoteproc/stm32_rproc.c
501
if (idx >= 0 && ddata->mb[idx].chan) {
drivers/remoteproc/stm32_rproc.c
502
err = mbox_send_message(ddata->mb[idx].chan, "stop");
drivers/remoteproc/stm32_rproc.c
519
if (idx >= 0 && ddata->mb[idx].chan) {
drivers/remoteproc/stm32_rproc.c
520
err = mbox_send_message(ddata->mb[idx].chan, "detach");
drivers/remoteproc/stm32_rproc.c
573
if (!ddata->mb[i].chan)
drivers/remoteproc/stm32_rproc.c
575
err = mbox_send_message(ddata->mb[i].chan, "kick");
drivers/remoteproc/stm32_rproc.c
74
struct mbox_chan *chan;
drivers/scsi/aic7xxx/aic79xx_core.c
7950
char chan = SCB_GET_CHANNEL(ahd, scb);
drivers/scsi/aic7xxx/aic79xx_core.c
7954
match = ((chan == channel) || (channel == ALL_CHANNELS));
drivers/scsi/aic7xxx/aic7xxx_core.c
5695
char chan = SCB_GET_CHANNEL(ahc, scb);
drivers/scsi/aic7xxx/aic7xxx_core.c
5699
match = ((chan == channel) || (channel == ALL_CHANNELS));
drivers/soc/aspeed/aspeed-lpc-snoop.c
116
struct aspeed_lpc_snoop_channel *chan = snoop_file_to_chan(file);
drivers/soc/aspeed/aspeed-lpc-snoop.c
120
if (kfifo_is_empty(&chan->fifo)) {
drivers/soc/aspeed/aspeed-lpc-snoop.c
123
ret = wait_event_interruptible(chan->wq,
drivers/soc/aspeed/aspeed-lpc-snoop.c
124
!kfifo_is_empty(&chan->fifo));
drivers/soc/aspeed/aspeed-lpc-snoop.c
128
ret = kfifo_to_user(&chan->fifo, buffer, count, &copied);
drivers/soc/aspeed/aspeed-lpc-snoop.c
138
struct aspeed_lpc_snoop_channel *chan = snoop_file_to_chan(file);
drivers/soc/aspeed/aspeed-lpc-snoop.c
140
poll_wait(file, &chan->wq, pt);
drivers/soc/aspeed/aspeed-lpc-snoop.c
141
return !kfifo_is_empty(&chan->fifo) ? EPOLLIN : 0;
drivers/soc/aspeed/aspeed-lpc-snoop.c
152
static void put_fifo_with_discard(struct aspeed_lpc_snoop_channel *chan, u8 val)
drivers/soc/aspeed/aspeed-lpc-snoop.c
154
if (!kfifo_initialized(&chan->fifo))
drivers/soc/aspeed/aspeed-lpc-snoop.c
156
if (kfifo_is_full(&chan->fifo))
drivers/soc/aspeed/aspeed-lpc-snoop.c
157
kfifo_skip(&chan->fifo);
drivers/soc/aspeed/aspeed-lpc-snoop.c
158
kfifo_put(&chan->fifo, val);
drivers/soc/aspeed/aspeed-lpc-snoop.c
159
wake_up_interruptible(&chan->wq);
drivers/soc/aspeed/aspeed-lpc-snoop.c
184
put_fifo_with_discard(&lpc_snoop->chan[0], val);
drivers/soc/aspeed/aspeed-lpc-snoop.c
189
put_fifo_with_discard(&lpc_snoop->chan[1], val);
drivers/soc/aspeed/aspeed-lpc-snoop.c
289
aspeed_lpc_disable_snoop(lpc_snoop, &lpc_snoop->chan[0]);
drivers/soc/aspeed/aspeed-lpc-snoop.c
290
aspeed_lpc_disable_snoop(lpc_snoop, &lpc_snoop->chan[1]);
drivers/soc/aspeed/aspeed-lpc-snoop.c
329
static_assert(ARRAY_SIZE(channel_cfgs) == ARRAY_SIZE(lpc_snoop->chan),
drivers/soc/aspeed/aspeed-lpc-snoop.c
338
rc = aspeed_lpc_enable_snoop(dev, lpc_snoop, &lpc_snoop->chan[idx],
drivers/soc/aspeed/aspeed-lpc-snoop.c
86
struct aspeed_lpc_snoop_channel chan[ASPEED_LPC_SNOOP_INDEX_MAX + 1];
drivers/soc/fsl/qbman/qman.c
2465
cgr->chan = p->config->channel;
drivers/soc/fsl/qbman/qman.c
2513
if (cgr->chan != p->config->channel) {
drivers/soc/fsl/qbman/qman.c
2517
cgr->chan, p->config->channel);
drivers/soc/fsl/qe/qmc.c
1001
qmc_clrbits16(chan->s_param + QMC_SPE_CHAMR, QMC_SPE_CHAMR_TRANSP_SYNC);
drivers/soc/fsl/qe/qmc.c
1006
first_rx = chan->rx_ts_mask ? __ffs64(chan->rx_ts_mask) + 1 : 0;
drivers/soc/fsl/qe/qmc.c
1009
last_tx = fls64(chan->tx_ts_mask);
drivers/soc/fsl/qe/qmc.c
1017
qmc_write16(chan->s_param + QMC_SPE_TRNSYNC, trnsync);
drivers/soc/fsl/qe/qmc.c
1018
qmc_setbits16(chan->s_param + QMC_SPE_CHAMR, QMC_SPE_CHAMR_TRANSP_SYNC);
drivers/soc/fsl/qe/qmc.c
1021
chan->id, trnsync,
drivers/soc/fsl/qe/qmc.c
1022
first_rx, info.nb_rx_ts, chan->rx_ts_mask,
drivers/soc/fsl/qe/qmc.c
1023
last_tx, info.nb_tx_ts, chan->tx_ts_mask);
drivers/soc/fsl/qe/qmc.c
1028
static int qmc_chan_start_rx(struct qmc_chan *chan)
drivers/soc/fsl/qe/qmc.c
1033
spin_lock_irqsave(&chan->rx_lock, flags);
drivers/soc/fsl/qe/qmc.c
1035
if (!chan->is_rx_stopped) {
drivers/soc/fsl/qe/qmc.c
1041
ret = qmc_chan_setup_tsa_rx(chan, true);
drivers/soc/fsl/qe/qmc.c
1043
dev_err(chan->qmc->dev, "chan %u: Enable tsa entries failed (%d)\n",
drivers/soc/fsl/qe/qmc.c
1044
chan->id, ret);
drivers/soc/fsl/qe/qmc.c
1048
if (chan->mode == QMC_TRANSPARENT) {
drivers/soc/fsl/qe/qmc.c
1049
ret = qmc_setup_chan_trnsync(chan->qmc, chan);
drivers/soc/fsl/qe/qmc.c
1051
dev_err(chan->qmc->dev, "chan %u: setup TRNSYNC failed (%d)\n",
drivers/soc/fsl/qe/qmc.c
1052
chan->id, ret);
drivers/soc/fsl/qe/qmc.c
1058
qmc_write32(chan->s_param + QMC_SPE_RPACK, chan->qmc->data->rpack);
drivers/soc/fsl/qe/qmc.c
1059
qmc_write32(chan->s_param + QMC_SPE_ZDSTATE,
drivers/soc/fsl/qe/qmc.c
1060
chan->mode == QMC_TRANSPARENT ?
drivers/soc/fsl/qe/qmc.c
1061
chan->qmc->data->zdstate_transp :
drivers/soc/fsl/qe/qmc.c
1062
chan->qmc->data->zdstate_hdlc);
drivers/soc/fsl/qe/qmc.c
1063
qmc_write32(chan->s_param + QMC_SPE_RSTATE, chan->qmc->data->rstate);
drivers/soc/fsl/qe/qmc.c
1064
chan->is_rx_halted = false;
drivers/soc/fsl/qe/qmc.c
1066
chan->is_rx_stopped = false;
drivers/soc/fsl/qe/qmc.c
1069
spin_unlock_irqrestore(&chan->rx_lock, flags);
drivers/soc/fsl/qe/qmc.c
1073
static int qmc_chan_start_tx(struct qmc_chan *chan)
drivers/soc/fsl/qe/qmc.c
1078
spin_lock_irqsave(&chan->tx_lock, flags);
drivers/soc/fsl/qe/qmc.c
1080
if (!chan->is_tx_stopped) {
drivers/soc/fsl/qe/qmc.c
1086
ret = qmc_chan_setup_tsa_tx(chan, true);
drivers/soc/fsl/qe/qmc.c
1088
dev_err(chan->qmc->dev, "chan %u: Enable tsa entries failed (%d)\n",
drivers/soc/fsl/qe/qmc.c
1089
chan->id, ret);
drivers/soc/fsl/qe/qmc.c
1093
if (chan->mode == QMC_TRANSPARENT) {
drivers/soc/fsl/qe/qmc.c
1094
ret = qmc_setup_chan_trnsync(chan->qmc, chan);
drivers/soc/fsl/qe/qmc.c
1096
dev_err(chan->qmc->dev, "chan %u: setup TRNSYNC failed (%d)\n",
drivers/soc/fsl/qe/qmc.c
1097
chan->id, ret);
drivers/soc/fsl/qe/qmc.c
1106
qmc_setbits16(chan->s_param + QMC_SPE_CHAMR, QMC_SPE_CHAMR_ENT);
drivers/soc/fsl/qe/qmc.c
1109
qmc_setbits16(chan->s_param + QMC_SPE_CHAMR, QMC_SPE_CHAMR_POL);
drivers/soc/fsl/qe/qmc.c
1111
chan->is_tx_stopped = false;
drivers/soc/fsl/qe/qmc.c
1114
spin_unlock_irqrestore(&chan->tx_lock, flags);
drivers/soc/fsl/qe/qmc.c
1118
int qmc_chan_start(struct qmc_chan *chan, int direction)
drivers/soc/fsl/qe/qmc.c
1124
spin_lock_irqsave(&chan->ts_lock, flags);
drivers/soc/fsl/qe/qmc.c
1127
is_rx_rollback_needed = chan->is_rx_stopped;
drivers/soc/fsl/qe/qmc.c
1128
ret = qmc_chan_start_rx(chan);
drivers/soc/fsl/qe/qmc.c
1134
ret = qmc_chan_start_tx(chan);
drivers/soc/fsl/qe/qmc.c
1138
qmc_chan_stop_rx(chan);
drivers/soc/fsl/qe/qmc.c
1144
spin_unlock_irqrestore(&chan->ts_lock, flags);
drivers/soc/fsl/qe/qmc.c
1149
static void qmc_chan_reset_rx(struct qmc_chan *chan)
drivers/soc/fsl/qe/qmc.c
1156
spin_lock_irqsave(&chan->rx_lock, flags);
drivers/soc/fsl/qe/qmc.c
1157
bd = chan->rxbds;
drivers/soc/fsl/qe/qmc.c
1162
xfer_desc = &chan->rx_desc[bd - chan->rxbds];
drivers/soc/fsl/qe/qmc.c
1169
chan->rxbd_free = chan->rxbds;
drivers/soc/fsl/qe/qmc.c
1170
chan->rxbd_done = chan->rxbds;
drivers/soc/fsl/qe/qmc.c
1171
qmc_write16(chan->s_param + QMC_SPE_RBPTR,
drivers/soc/fsl/qe/qmc.c
1172
qmc_read16(chan->s_param + QMC_SPE_RBASE));
drivers/soc/fsl/qe/qmc.c
1174
chan->rx_pending = 0;
drivers/soc/fsl/qe/qmc.c
1176
spin_unlock_irqrestore(&chan->rx_lock, flags);
drivers/soc/fsl/qe/qmc.c
1179
static void qmc_chan_reset_tx(struct qmc_chan *chan)
drivers/soc/fsl/qe/qmc.c
1186
spin_lock_irqsave(&chan->tx_lock, flags);
drivers/soc/fsl/qe/qmc.c
1189
qmc_clrbits16(chan->s_param + QMC_SPE_CHAMR, QMC_SPE_CHAMR_ENT);
drivers/soc/fsl/qe/qmc.c
1191
bd = chan->txbds;
drivers/soc/fsl/qe/qmc.c
1196
xfer_desc = &chan->tx_desc[bd - chan->txbds];
drivers/soc/fsl/qe/qmc.c
1203
chan->txbd_free = chan->txbds;
drivers/soc/fsl/qe/qmc.c
1204
chan->txbd_done = chan->txbds;
drivers/soc/fsl/qe/qmc.c
1205
qmc_write16(chan->s_param + QMC_SPE_TBPTR,
drivers/soc/fsl/qe/qmc.c
1206
qmc_read16(chan->s_param + QMC_SPE_TBASE));
drivers/soc/fsl/qe/qmc.c
1209
qmc_write32(chan->s_param + QMC_SPE_TSTATE, chan->qmc->data->tstate);
drivers/soc/fsl/qe/qmc.c
1210
qmc_write32(chan->s_param + QMC_SPE_ZISTATE, chan->qmc->data->zistate);
drivers/soc/fsl/qe/qmc.c
1212
spin_unlock_irqrestore(&chan->tx_lock, flags);
drivers/soc/fsl/qe/qmc.c
1215
int qmc_chan_reset(struct qmc_chan *chan, int direction)
drivers/soc/fsl/qe/qmc.c
1218
qmc_chan_reset_rx(chan);
drivers/soc/fsl/qe/qmc.c
1221
qmc_chan_reset_tx(chan);
drivers/soc/fsl/qe/qmc.c
1230
struct qmc_chan *chan;
drivers/soc/fsl/qe/qmc.c
1259
list_for_each_entry(chan, &qmc->chan_head, list) {
drivers/soc/fsl/qe/qmc.c
1260
if (chan->tx_ts_mask_avail > tx_ts_assigned_mask) {
drivers/soc/fsl/qe/qmc.c
1261
dev_err(qmc->dev, "chan %u can use TSA unassigned Tx TS\n", chan->id);
drivers/soc/fsl/qe/qmc.c
1265
if (chan->rx_ts_mask_avail > rx_ts_assigned_mask) {
drivers/soc/fsl/qe/qmc.c
1266
dev_err(qmc->dev, "chan %u can use TSA unassigned Rx TS\n", chan->id);
drivers/soc/fsl/qe/qmc.c
1277
struct qmc_chan *chan;
drivers/soc/fsl/qe/qmc.c
1279
list_for_each_entry(chan, &qmc->chan_head, list)
drivers/soc/fsl/qe/qmc.c
1287
struct qmc_chan *chan;
drivers/soc/fsl/qe/qmc.c
1304
chan = devm_kzalloc(qmc->dev, sizeof(*chan), GFP_KERNEL);
drivers/soc/fsl/qe/qmc.c
1305
if (!chan)
drivers/soc/fsl/qe/qmc.c
1308
chan->id = chan_id;
drivers/soc/fsl/qe/qmc.c
1309
spin_lock_init(&chan->ts_lock);
drivers/soc/fsl/qe/qmc.c
1310
spin_lock_init(&chan->rx_lock);
drivers/soc/fsl/qe/qmc.c
1311
spin_lock_init(&chan->tx_lock);
drivers/soc/fsl/qe/qmc.c
1319
chan->tx_ts_mask_avail = ts_mask;
drivers/soc/fsl/qe/qmc.c
1320
chan->tx_ts_mask = chan->tx_ts_mask_avail;
drivers/soc/fsl/qe/qmc.c
1328
chan->rx_ts_mask_avail = ts_mask;
drivers/soc/fsl/qe/qmc.c
1329
chan->rx_ts_mask = chan->rx_ts_mask_avail;
drivers/soc/fsl/qe/qmc.c
1339
chan->mode = QMC_TRANSPARENT;
drivers/soc/fsl/qe/qmc.c
1341
chan->mode = QMC_HDLC;
drivers/soc/fsl/qe/qmc.c
1348
chan->is_reverse_data = of_property_read_bool(chan_np,
drivers/soc/fsl/qe/qmc.c
1351
list_add_tail(&chan->list, &qmc->chan_head);
drivers/soc/fsl/qe/qmc.c
1352
qmc->chans[chan->id] = chan;
drivers/soc/fsl/qe/qmc.c
1443
static int qmc_setup_chan(struct qmc *qmc, struct qmc_chan *chan)
drivers/soc/fsl/qe/qmc.c
1450
chan->qmc = qmc;
drivers/soc/fsl/qe/qmc.c
1453
chan->s_param = qmc->dpram + (chan->id * 64);
drivers/soc/fsl/qe/qmc.c
1455
chan->txbds = qmc->bd_table + (chan->id * (QMC_NB_TXBDS + QMC_NB_RXBDS));
drivers/soc/fsl/qe/qmc.c
1456
chan->rxbds = qmc->bd_table + (chan->id * (QMC_NB_TXBDS + QMC_NB_RXBDS)) + QMC_NB_TXBDS;
drivers/soc/fsl/qe/qmc.c
1458
chan->txbd_free = chan->txbds;
drivers/soc/fsl/qe/qmc.c
1459
chan->txbd_done = chan->txbds;
drivers/soc/fsl/qe/qmc.c
1460
chan->rxbd_free = chan->rxbds;
drivers/soc/fsl/qe/qmc.c
1461
chan->rxbd_done = chan->rxbds;
drivers/soc/fsl/qe/qmc.c
1464
val = chan->id * (QMC_NB_TXBDS + QMC_NB_RXBDS) * sizeof(cbd_t);
drivers/soc/fsl/qe/qmc.c
1465
qmc_write16(chan->s_param + QMC_SPE_TBASE, val);
drivers/soc/fsl/qe/qmc.c
1466
qmc_write16(chan->s_param + QMC_SPE_TBPTR, val);
drivers/soc/fsl/qe/qmc.c
1469
val = ((chan->id * (QMC_NB_TXBDS + QMC_NB_RXBDS)) + QMC_NB_TXBDS) * sizeof(cbd_t);
drivers/soc/fsl/qe/qmc.c
1470
qmc_write16(chan->s_param + QMC_SPE_RBASE, val);
drivers/soc/fsl/qe/qmc.c
1471
qmc_write16(chan->s_param + QMC_SPE_RBPTR, val);
drivers/soc/fsl/qe/qmc.c
1472
qmc_write32(chan->s_param + QMC_SPE_TSTATE, chan->qmc->data->tstate);
drivers/soc/fsl/qe/qmc.c
1473
qmc_write32(chan->s_param + QMC_SPE_RSTATE, chan->qmc->data->rstate);
drivers/soc/fsl/qe/qmc.c
1474
qmc_write32(chan->s_param + QMC_SPE_ZISTATE, chan->qmc->data->zistate);
drivers/soc/fsl/qe/qmc.c
1475
qmc_write32(chan->s_param + QMC_SPE_RPACK, chan->qmc->data->rpack);
drivers/soc/fsl/qe/qmc.c
1476
if (chan->mode == QMC_TRANSPARENT) {
drivers/soc/fsl/qe/qmc.c
1477
qmc_write32(chan->s_param + QMC_SPE_ZDSTATE, chan->qmc->data->zdstate_transp);
drivers/soc/fsl/qe/qmc.c
1478
qmc_write16(chan->s_param + QMC_SPE_TMRBLR, 60);
drivers/soc/fsl/qe/qmc.c
1480
if (chan->is_reverse_data)
drivers/soc/fsl/qe/qmc.c
1482
qmc_write16(chan->s_param + QMC_SPE_CHAMR, val);
drivers/soc/fsl/qe/qmc.c
1483
ret = qmc_setup_chan_trnsync(qmc, chan);
drivers/soc/fsl/qe/qmc.c
1487
qmc_write32(chan->s_param + QMC_SPE_ZDSTATE, chan->qmc->data->zdstate_hdlc);
drivers/soc/fsl/qe/qmc.c
1488
qmc_write16(chan->s_param + QMC_SPE_MFLR, 60);
drivers/soc/fsl/qe/qmc.c
1489
qmc_write16(chan->s_param + QMC_SPE_CHAMR,
drivers/soc/fsl/qe/qmc.c
1494
qmc_write16(chan->s_param + QMC_SPE_INTMSK, 0x0000);
drivers/soc/fsl/qe/qmc.c
1499
bd = chan->rxbds + i;
drivers/soc/fsl/qe/qmc.c
1502
bd = chan->rxbds + QMC_NB_RXBDS - 1;
drivers/soc/fsl/qe/qmc.c
1507
if (chan->mode == QMC_HDLC)
drivers/soc/fsl/qe/qmc.c
1512
bd = chan->txbds + i;
drivers/soc/fsl/qe/qmc.c
1515
bd = chan->txbds + QMC_NB_TXBDS - 1;
drivers/soc/fsl/qe/qmc.c
1523
struct qmc_chan *chan;
drivers/soc/fsl/qe/qmc.c
1526
list_for_each_entry(chan, &qmc->chan_head, list) {
drivers/soc/fsl/qe/qmc.c
1527
ret = qmc_setup_chan(qmc, chan);
drivers/soc/fsl/qe/qmc.c
1537
struct qmc_chan *chan;
drivers/soc/fsl/qe/qmc.c
1540
list_for_each_entry(chan, &qmc->chan_head, list) {
drivers/soc/fsl/qe/qmc.c
1542
if (chan->mode == QMC_HDLC) {
drivers/soc/fsl/qe/qmc.c
1543
qmc_write16(chan->s_param + QMC_SPE_INTMSK,
drivers/soc/fsl/qe/qmc.c
1548
qmc_write16(chan->s_param + QMC_SPE_INTMSK,
drivers/soc/fsl/qe/qmc.c
1554
ret = qmc_chan_stop(chan, QMC_CHAN_ALL);
drivers/soc/fsl/qe/qmc.c
1582
struct qmc_chan *chan;
drivers/soc/fsl/qe/qmc.c
1593
chan = qmc->chans[chan_id];
drivers/soc/fsl/qe/qmc.c
1594
if (!chan) {
drivers/soc/fsl/qe/qmc.c
1600
qmc_chan_write_done(chan);
drivers/soc/fsl/qe/qmc.c
1605
chan->nb_tx_underrun++;
drivers/soc/fsl/qe/qmc.c
1611
chan->nb_rx_busy++;
drivers/soc/fsl/qe/qmc.c
1613
spin_lock_irqsave(&chan->rx_lock, flags);
drivers/soc/fsl/qe/qmc.c
1614
if (chan->rx_pending && !chan->is_rx_stopped) {
drivers/soc/fsl/qe/qmc.c
1615
qmc_write32(chan->s_param + QMC_SPE_RPACK,
drivers/soc/fsl/qe/qmc.c
1616
chan->qmc->data->rpack);
drivers/soc/fsl/qe/qmc.c
1617
qmc_write32(chan->s_param + QMC_SPE_ZDSTATE,
drivers/soc/fsl/qe/qmc.c
1618
chan->mode == QMC_TRANSPARENT ?
drivers/soc/fsl/qe/qmc.c
1619
chan->qmc->data->zdstate_transp :
drivers/soc/fsl/qe/qmc.c
1620
chan->qmc->data->zdstate_hdlc);
drivers/soc/fsl/qe/qmc.c
1621
qmc_write32(chan->s_param + QMC_SPE_RSTATE,
drivers/soc/fsl/qe/qmc.c
1622
chan->qmc->data->rstate);
drivers/soc/fsl/qe/qmc.c
1623
chan->is_rx_halted = false;
drivers/soc/fsl/qe/qmc.c
1625
chan->is_rx_halted = true;
drivers/soc/fsl/qe/qmc.c
1627
spin_unlock_irqrestore(&chan->rx_lock, flags);
drivers/soc/fsl/qe/qmc.c
1631
qmc_chan_read_done(chan);
drivers/soc/fsl/qe/qmc.c
2199
void qmc_chan_put(struct qmc_chan *chan)
drivers/soc/fsl/qe/qmc.c
2201
put_device(chan->qmc->dev);
drivers/soc/fsl/qe/qmc.c
327
int qmc_chan_get_info(struct qmc_chan *chan, struct qmc_chan_info *info)
drivers/soc/fsl/qe/qmc.c
334
ret = tsa_serial_get_info(chan->qmc->tsa_serial, &tsa_info);
drivers/soc/fsl/qe/qmc.c
338
spin_lock_irqsave(&chan->ts_lock, flags);
drivers/soc/fsl/qe/qmc.c
340
info->mode = chan->mode;
drivers/soc/fsl/qe/qmc.c
343
info->nb_tx_ts = hweight64(chan->tx_ts_mask);
drivers/soc/fsl/qe/qmc.c
346
info->nb_rx_ts = hweight64(chan->rx_ts_mask);
drivers/soc/fsl/qe/qmc.c
348
spin_unlock_irqrestore(&chan->ts_lock, flags);
drivers/soc/fsl/qe/qmc.c
354
int qmc_chan_get_ts_info(struct qmc_chan *chan, struct qmc_chan_ts_info *ts_info)
drivers/soc/fsl/qe/qmc.c
358
spin_lock_irqsave(&chan->ts_lock, flags);
drivers/soc/fsl/qe/qmc.c
360
ts_info->rx_ts_mask_avail = chan->rx_ts_mask_avail;
drivers/soc/fsl/qe/qmc.c
361
ts_info->tx_ts_mask_avail = chan->tx_ts_mask_avail;
drivers/soc/fsl/qe/qmc.c
362
ts_info->rx_ts_mask = chan->rx_ts_mask;
drivers/soc/fsl/qe/qmc.c
363
ts_info->tx_ts_mask = chan->tx_ts_mask;
drivers/soc/fsl/qe/qmc.c
365
spin_unlock_irqrestore(&chan->ts_lock, flags);
drivers/soc/fsl/qe/qmc.c
371
int qmc_chan_set_ts_info(struct qmc_chan *chan, const struct qmc_chan_ts_info *ts_info)
drivers/soc/fsl/qe/qmc.c
377
if ((ts_info->rx_ts_mask & chan->rx_ts_mask_avail) != ts_info->rx_ts_mask)
drivers/soc/fsl/qe/qmc.c
379
if ((ts_info->tx_ts_mask & chan->tx_ts_mask_avail) != ts_info->tx_ts_mask)
drivers/soc/fsl/qe/qmc.c
383
if (chan->qmc->is_tsa_64rxtx) {
drivers/soc/fsl/qe/qmc.c
388
spin_lock_irqsave(&chan->ts_lock, flags);
drivers/soc/fsl/qe/qmc.c
390
if ((chan->tx_ts_mask != ts_info->tx_ts_mask && !chan->is_tx_stopped) ||
drivers/soc/fsl/qe/qmc.c
391
(chan->rx_ts_mask != ts_info->rx_ts_mask && !chan->is_rx_stopped)) {
drivers/soc/fsl/qe/qmc.c
392
dev_err(chan->qmc->dev, "Channel rx and/or tx not stopped\n");
drivers/soc/fsl/qe/qmc.c
395
chan->tx_ts_mask = ts_info->tx_ts_mask;
drivers/soc/fsl/qe/qmc.c
396
chan->rx_ts_mask = ts_info->rx_ts_mask;
drivers/soc/fsl/qe/qmc.c
399
spin_unlock_irqrestore(&chan->ts_lock, flags);
drivers/soc/fsl/qe/qmc.c
405
int qmc_chan_set_param(struct qmc_chan *chan, const struct qmc_chan_param *param)
drivers/soc/fsl/qe/qmc.c
407
if (param->mode != chan->mode)
drivers/soc/fsl/qe/qmc.c
416
qmc_write16(chan->qmc->scc_pram + QMC_GBL_MRBLR,
drivers/soc/fsl/qe/qmc.c
418
qmc_write16(chan->s_param + QMC_SPE_MFLR,
drivers/soc/fsl/qe/qmc.c
421
qmc_setbits16(chan->s_param + QMC_SPE_CHAMR,
drivers/soc/fsl/qe/qmc.c
424
qmc_clrbits16(chan->s_param + QMC_SPE_CHAMR,
drivers/soc/fsl/qe/qmc.c
430
qmc_write16(chan->s_param + QMC_SPE_TMRBLR,
drivers/soc/fsl/qe/qmc.c
442
int qmc_chan_write_submit(struct qmc_chan *chan, dma_addr_t addr, size_t length,
drivers/soc/fsl/qe/qmc.c
459
spin_lock_irqsave(&chan->tx_lock, flags);
drivers/soc/fsl/qe/qmc.c
460
bd = chan->txbd_free;
drivers/soc/fsl/qe/qmc.c
464
if (!(ctrl & (QMC_BD_TX_R | QMC_BD_TX_I)) && bd == chan->txbd_done) {
drivers/soc/fsl/qe/qmc.c
466
chan->txbd_done = chan->txbds;
drivers/soc/fsl/qe/qmc.c
468
chan->txbd_done++;
drivers/soc/fsl/qe/qmc.c
479
xfer_desc = &chan->tx_desc[bd - chan->txbds];
drivers/soc/fsl/qe/qmc.c
492
if (!chan->is_tx_stopped)
drivers/soc/fsl/qe/qmc.c
493
qmc_setbits16(chan->s_param + QMC_SPE_CHAMR, QMC_SPE_CHAMR_POL);
drivers/soc/fsl/qe/qmc.c
496
chan->txbd_free = chan->txbds;
drivers/soc/fsl/qe/qmc.c
498
chan->txbd_free++;
drivers/soc/fsl/qe/qmc.c
503
spin_unlock_irqrestore(&chan->tx_lock, flags);
drivers/soc/fsl/qe/qmc.c
508
static void qmc_chan_write_done(struct qmc_chan *chan)
drivers/soc/fsl/qe/qmc.c
525
spin_lock_irqsave(&chan->tx_lock, flags);
drivers/soc/fsl/qe/qmc.c
526
bd = chan->txbd_done;
drivers/soc/fsl/qe/qmc.c
533
xfer_desc = &chan->tx_desc[bd - chan->txbds];
drivers/soc/fsl/qe/qmc.c
542
chan->txbd_done = chan->txbds;
drivers/soc/fsl/qe/qmc.c
544
chan->txbd_done++;
drivers/soc/fsl/qe/qmc.c
547
spin_unlock_irqrestore(&chan->tx_lock, flags);
drivers/soc/fsl/qe/qmc.c
549
spin_lock_irqsave(&chan->tx_lock, flags);
drivers/soc/fsl/qe/qmc.c
552
bd = chan->txbd_done;
drivers/soc/fsl/qe/qmc.c
557
spin_unlock_irqrestore(&chan->tx_lock, flags);
drivers/soc/fsl/qe/qmc.c
560
int qmc_chan_read_submit(struct qmc_chan *chan, dma_addr_t addr, size_t length,
drivers/soc/fsl/qe/qmc.c
578
spin_lock_irqsave(&chan->rx_lock, flags);
drivers/soc/fsl/qe/qmc.c
579
bd = chan->rxbd_free;
drivers/soc/fsl/qe/qmc.c
583
if (!(ctrl & (QMC_BD_RX_E | QMC_BD_RX_I)) && bd == chan->rxbd_done) {
drivers/soc/fsl/qe/qmc.c
585
chan->rxbd_done = chan->rxbds;
drivers/soc/fsl/qe/qmc.c
587
chan->rxbd_done++;
drivers/soc/fsl/qe/qmc.c
598
xfer_desc = &chan->rx_desc[bd - chan->rxbds];
drivers/soc/fsl/qe/qmc.c
616
if (chan->is_rx_halted && !chan->is_rx_stopped) {
drivers/soc/fsl/qe/qmc.c
618
qmc_write32(chan->s_param + QMC_SPE_RPACK, chan->qmc->data->rpack);
drivers/soc/fsl/qe/qmc.c
619
qmc_write32(chan->s_param + QMC_SPE_ZDSTATE,
drivers/soc/fsl/qe/qmc.c
620
chan->mode == QMC_TRANSPARENT ?
drivers/soc/fsl/qe/qmc.c
621
chan->qmc->data->zdstate_transp :
drivers/soc/fsl/qe/qmc.c
622
chan->qmc->data->zdstate_hdlc);
drivers/soc/fsl/qe/qmc.c
623
qmc_write32(chan->s_param + QMC_SPE_RSTATE, chan->qmc->data->rstate);
drivers/soc/fsl/qe/qmc.c
624
chan->is_rx_halted = false;
drivers/soc/fsl/qe/qmc.c
626
chan->rx_pending++;
drivers/soc/fsl/qe/qmc.c
629
chan->rxbd_free = chan->rxbds;
drivers/soc/fsl/qe/qmc.c
631
chan->rxbd_free++;
drivers/soc/fsl/qe/qmc.c
635
spin_unlock_irqrestore(&chan->rx_lock, flags);
drivers/soc/fsl/qe/qmc.c
640
static void qmc_chan_read_done(struct qmc_chan *chan)
drivers/soc/fsl/qe/qmc.c
658
spin_lock_irqsave(&chan->rx_lock, flags);
drivers/soc/fsl/qe/qmc.c
659
bd = chan->rxbd_done;
drivers/soc/fsl/qe/qmc.c
666
xfer_desc = &chan->rx_desc[bd - chan->rxbds];
drivers/soc/fsl/qe/qmc.c
676
chan->rxbd_done = chan->rxbds;
drivers/soc/fsl/qe/qmc.c
678
chan->rxbd_done++;
drivers/soc/fsl/qe/qmc.c
680
chan->rx_pending--;
drivers/soc/fsl/qe/qmc.c
683
spin_unlock_irqrestore(&chan->rx_lock, flags);
drivers/soc/fsl/qe/qmc.c
701
spin_lock_irqsave(&chan->rx_lock, flags);
drivers/soc/fsl/qe/qmc.c
704
bd = chan->rxbd_done;
drivers/soc/fsl/qe/qmc.c
709
spin_unlock_irqrestore(&chan->rx_lock, flags);
drivers/soc/fsl/qe/qmc.c
712
static int qmc_chan_setup_tsa_64rxtx(struct qmc_chan *chan, const struct tsa_serial_info *info,
drivers/soc/fsl/qe/qmc.c
723
if (chan->tx_ts_mask != chan->rx_ts_mask) {
drivers/soc/fsl/qe/qmc.c
724
dev_err(chan->qmc->dev, "chan %u uses different Rx and Tx TS\n", chan->id);
drivers/soc/fsl/qe/qmc.c
728
val = QMC_TSA_VALID | QMC_TSA_MASK_8BIT | QMC_TSA_CHANNEL(chan->id);
drivers/soc/fsl/qe/qmc.c
732
if (!(chan->rx_ts_mask & (((u64)1) << i)))
drivers/soc/fsl/qe/qmc.c
735
curr = qmc_read16(chan->qmc->scc_pram + QMC_GBL_TSATRX + (i * 2));
drivers/soc/fsl/qe/qmc.c
737
dev_err(chan->qmc->dev, "chan %u TxRx entry %d already used\n",
drivers/soc/fsl/qe/qmc.c
738
chan->id, i);
drivers/soc/fsl/qe/qmc.c
745
if (!(chan->rx_ts_mask & (((u64)1) << i)))
drivers/soc/fsl/qe/qmc.c
748
qmc_clrsetbits16(chan->qmc->scc_pram + QMC_GBL_TSATRX + (i * 2),
drivers/soc/fsl/qe/qmc.c
755
static int qmc_chan_setup_tsa_32rx(struct qmc_chan *chan, const struct tsa_serial_info *info,
drivers/soc/fsl/qe/qmc.c
764
val = QMC_TSA_VALID | QMC_TSA_MASK_8BIT | QMC_TSA_CHANNEL(chan->id);
drivers/soc/fsl/qe/qmc.c
768
if (!(chan->rx_ts_mask & (((u64)1) << i)))
drivers/soc/fsl/qe/qmc.c
771
curr = qmc_read16(chan->qmc->scc_pram + QMC_GBL_TSATRX + (i * 2));
drivers/soc/fsl/qe/qmc.c
773
dev_err(chan->qmc->dev, "chan %u Rx entry %d already used\n",
drivers/soc/fsl/qe/qmc.c
774
chan->id, i);
drivers/soc/fsl/qe/qmc.c
781
if (!(chan->rx_ts_mask & (((u64)1) << i)))
drivers/soc/fsl/qe/qmc.c
784
qmc_clrsetbits16(chan->qmc->scc_pram + QMC_GBL_TSATRX + (i * 2),
drivers/soc/fsl/qe/qmc.c
791
static int qmc_chan_setup_tsa_32tx(struct qmc_chan *chan, const struct tsa_serial_info *info,
drivers/soc/fsl/qe/qmc.c
800
val = QMC_TSA_VALID | QMC_TSA_MASK_8BIT | QMC_TSA_CHANNEL(chan->id);
drivers/soc/fsl/qe/qmc.c
804
if (!(chan->tx_ts_mask & (((u64)1) << i)))
drivers/soc/fsl/qe/qmc.c
807
curr = qmc_read16(chan->qmc->scc_pram + QMC_GBL_TSATTX + (i * 2));
drivers/soc/fsl/qe/qmc.c
809
dev_err(chan->qmc->dev, "chan %u Tx entry %d already used\n",
drivers/soc/fsl/qe/qmc.c
810
chan->id, i);
drivers/soc/fsl/qe/qmc.c
817
if (!(chan->tx_ts_mask & (((u64)1) << i)))
drivers/soc/fsl/qe/qmc.c
820
qmc_clrsetbits16(chan->qmc->scc_pram + QMC_GBL_TSATTX + (i * 2),
drivers/soc/fsl/qe/qmc.c
827
static int qmc_chan_setup_tsa_tx(struct qmc_chan *chan, bool enable)
drivers/soc/fsl/qe/qmc.c
833
ret = tsa_serial_get_info(chan->qmc->tsa_serial, &info);
drivers/soc/fsl/qe/qmc.c
838
if (chan->qmc->is_tsa_64rxtx)
drivers/soc/fsl/qe/qmc.c
839
return qmc_chan_setup_tsa_64rxtx(chan, &info, enable);
drivers/soc/fsl/qe/qmc.c
841
return qmc_chan_setup_tsa_32tx(chan, &info, enable);
drivers/soc/fsl/qe/qmc.c
844
static int qmc_chan_setup_tsa_rx(struct qmc_chan *chan, bool enable)
drivers/soc/fsl/qe/qmc.c
850
ret = tsa_serial_get_info(chan->qmc->tsa_serial, &info);
drivers/soc/fsl/qe/qmc.c
855
if (chan->qmc->is_tsa_64rxtx)
drivers/soc/fsl/qe/qmc.c
856
return qmc_chan_setup_tsa_64rxtx(chan, &info, enable);
drivers/soc/fsl/qe/qmc.c
858
return qmc_chan_setup_tsa_32rx(chan, &info, enable);
drivers/soc/fsl/qe/qmc.c
861
static int qmc_chan_cpm1_command(struct qmc_chan *chan, u8 qmc_opcode)
drivers/soc/fsl/qe/qmc.c
863
return cpm_command(chan->id << 2, (qmc_opcode << 4) | 0x0E);
drivers/soc/fsl/qe/qmc.c
866
static int qmc_chan_qe_command(struct qmc_chan *chan, u32 cmd)
drivers/soc/fsl/qe/qmc.c
868
if (!qe_issue_cmd(cmd, chan->qmc->qe_subblock, chan->id, 0))
drivers/soc/fsl/qe/qmc.c
873
static int qmc_chan_stop_rx(struct qmc_chan *chan)
drivers/soc/fsl/qe/qmc.c
878
spin_lock_irqsave(&chan->rx_lock, flags);
drivers/soc/fsl/qe/qmc.c
880
if (chan->is_rx_stopped) {
drivers/soc/fsl/qe/qmc.c
887
ret = qmc_is_qe(chan->qmc) ?
drivers/soc/fsl/qe/qmc.c
888
qmc_chan_qe_command(chan, QE_QMC_STOP_RX) :
drivers/soc/fsl/qe/qmc.c
889
qmc_chan_cpm1_command(chan, 0x0);
drivers/soc/fsl/qe/qmc.c
891
dev_err(chan->qmc->dev, "chan %u: Send STOP RECEIVE failed (%d)\n",
drivers/soc/fsl/qe/qmc.c
892
chan->id, ret);
drivers/soc/fsl/qe/qmc.c
896
chan->is_rx_stopped = true;
drivers/soc/fsl/qe/qmc.c
898
if (!chan->qmc->is_tsa_64rxtx || chan->is_tx_stopped) {
drivers/soc/fsl/qe/qmc.c
899
ret = qmc_chan_setup_tsa_rx(chan, false);
drivers/soc/fsl/qe/qmc.c
901
dev_err(chan->qmc->dev, "chan %u: Disable tsa entries failed (%d)\n",
drivers/soc/fsl/qe/qmc.c
902
chan->id, ret);
drivers/soc/fsl/qe/qmc.c
908
spin_unlock_irqrestore(&chan->rx_lock, flags);
drivers/soc/fsl/qe/qmc.c
912
static int qmc_chan_stop_tx(struct qmc_chan *chan)
drivers/soc/fsl/qe/qmc.c
917
spin_lock_irqsave(&chan->tx_lock, flags);
drivers/soc/fsl/qe/qmc.c
919
if (chan->is_tx_stopped) {
drivers/soc/fsl/qe/qmc.c
926
ret = qmc_is_qe(chan->qmc) ?
drivers/soc/fsl/qe/qmc.c
927
qmc_chan_qe_command(chan, QE_QMC_STOP_TX) :
drivers/soc/fsl/qe/qmc.c
928
qmc_chan_cpm1_command(chan, 0x1);
drivers/soc/fsl/qe/qmc.c
930
dev_err(chan->qmc->dev, "chan %u: Send STOP TRANSMIT failed (%d)\n",
drivers/soc/fsl/qe/qmc.c
931
chan->id, ret);
drivers/soc/fsl/qe/qmc.c
935
chan->is_tx_stopped = true;
drivers/soc/fsl/qe/qmc.c
937
if (!chan->qmc->is_tsa_64rxtx || chan->is_rx_stopped) {
drivers/soc/fsl/qe/qmc.c
938
ret = qmc_chan_setup_tsa_tx(chan, false);
drivers/soc/fsl/qe/qmc.c
940
dev_err(chan->qmc->dev, "chan %u: Disable tsa entries failed (%d)\n",
drivers/soc/fsl/qe/qmc.c
941
chan->id, ret);
drivers/soc/fsl/qe/qmc.c
947
spin_unlock_irqrestore(&chan->tx_lock, flags);
drivers/soc/fsl/qe/qmc.c
951
static int qmc_chan_start_rx(struct qmc_chan *chan);
drivers/soc/fsl/qe/qmc.c
953
int qmc_chan_stop(struct qmc_chan *chan, int direction)
drivers/soc/fsl/qe/qmc.c
959
spin_lock_irqsave(&chan->ts_lock, flags);
drivers/soc/fsl/qe/qmc.c
962
is_rx_rollback_needed = !chan->is_rx_stopped;
drivers/soc/fsl/qe/qmc.c
963
ret = qmc_chan_stop_rx(chan);
drivers/soc/fsl/qe/qmc.c
969
ret = qmc_chan_stop_tx(chan);
drivers/soc/fsl/qe/qmc.c
973
qmc_chan_start_rx(chan);
drivers/soc/fsl/qe/qmc.c
979
spin_unlock_irqrestore(&chan->ts_lock, flags);
drivers/soc/fsl/qe/qmc.c
984
static int qmc_setup_chan_trnsync(struct qmc *qmc, struct qmc_chan *chan)
drivers/soc/fsl/qe/qmc.c
993
ret = tsa_serial_get_info(chan->qmc->tsa_serial, &info);
drivers/soc/fsl/qe/qmc.c
997
w_rx = hweight64(chan->rx_ts_mask);
drivers/soc/fsl/qe/qmc.c
998
w_tx = hweight64(chan->tx_ts_mask);
drivers/soc/mediatek/mtk-cmdq-helper.c
124
client->chan = mbox_request_channel(&client->client, index);
drivers/soc/mediatek/mtk-cmdq-helper.c
126
if (IS_ERR(client->chan)) {
drivers/soc/mediatek/mtk-cmdq-helper.c
130
err = PTR_ERR(client->chan);
drivers/soc/mediatek/mtk-cmdq-helper.c
142
mbox_free_channel(client->chan);
drivers/soc/mediatek/mtk-cmdq-helper.c
158
dev = client->chan->mbox->dev;
drivers/soc/mediatek/mtk-cmdq-helper.c
168
cmdq_get_mbox_priv(client->chan, &pkt->priv);
drivers/soc/mediatek/mtk-cmdq-helper.c
176
dma_unmap_single(client->chan->mbox->dev, pkt->pa_base, pkt->buf_size,
drivers/soc/microchip/mpfs-sys-controller.c
101
mbox_free_channel(sys_controller->chan);
drivers/soc/microchip/mpfs-sys-controller.c
147
sys_controller->chan = mbox_request_channel(&sys_controller->client, 0);
drivers/soc/microchip/mpfs-sys-controller.c
148
if (IS_ERR(sys_controller->chan)) {
drivers/soc/microchip/mpfs-sys-controller.c
149
ret = dev_err_probe(dev, PTR_ERR(sys_controller->chan),
drivers/soc/microchip/mpfs-sys-controller.c
177
mbox_free_channel(sys_controller->chan);
drivers/soc/microchip/mpfs-sys-controller.c
33
struct mbox_chan *chan;
drivers/soc/microchip/mpfs-sys-controller.c
55
ret = mbox_send_message(sys_controller->chan, msg);
drivers/soc/renesas/rcar-mfis.c
101
mbox_chan_received_data(chan, NULL);
drivers/soc/renesas/rcar-mfis.c
108
static int mfis_mb_startup(struct mbox_chan *chan)
drivers/soc/renesas/rcar-mfis.c
110
struct mfis_chan_priv *chan_priv = chan->con_priv;
drivers/soc/renesas/rcar-mfis.c
116
dev_name(chan->mbox->dev), chan);
drivers/soc/renesas/rcar-mfis.c
119
static void mfis_mb_shutdown(struct mbox_chan *chan)
drivers/soc/renesas/rcar-mfis.c
121
struct mfis_chan_priv *chan_priv = chan->con_priv;
drivers/soc/renesas/rcar-mfis.c
124
free_irq(chan_priv->irq, chan);
drivers/soc/renesas/rcar-mfis.c
127
static int mfis_mb_iicr_send_data(struct mbox_chan *chan, void *data)
drivers/soc/renesas/rcar-mfis.c
129
struct mfis_priv *priv = mfis_mb_mbox_to_priv(chan->mbox);
drivers/soc/renesas/rcar-mfis.c
130
struct mfis_chan_priv *chan_priv = chan->con_priv;
drivers/soc/renesas/rcar-mfis.c
142
static bool mfis_mb_iicr_last_tx_done(struct mbox_chan *chan)
drivers/soc/renesas/rcar-mfis.c
144
struct mfis_priv *priv = mfis_mb_mbox_to_priv(chan->mbox);
drivers/soc/renesas/rcar-mfis.c
145
struct mfis_chan_priv *chan_priv = chan->con_priv;
drivers/soc/renesas/rcar-mfis.c
195
struct mbox_chan *chan;
drivers/soc/renesas/rcar-mfis.c
209
chan = mbox->chans + 2 * chan_num + is_only_rx;
drivers/soc/renesas/rcar-mfis.c
212
chan = mbox->chans + chan_num;
drivers/soc/renesas/rcar-mfis.c
218
chan += mbox->num_chans / 2;
drivers/soc/renesas/rcar-mfis.c
223
chan_priv = chan->con_priv;
drivers/soc/renesas/rcar-mfis.c
240
return chan;
drivers/soc/renesas/rcar-mfis.c
248
struct mbox_chan *chan;
drivers/soc/renesas/rcar-mfis.c
260
chan = devm_kcalloc(dev, num_chan, sizeof(*chan), GFP_KERNEL);
drivers/soc/renesas/rcar-mfis.c
261
if (!chan)
drivers/soc/renesas/rcar-mfis.c
272
chan[i].con_priv = &priv->chan_privs[i];
drivers/soc/renesas/rcar-mfis.c
274
mbox->chans = chan;
drivers/soc/renesas/rcar-mfis.c
97
struct mbox_chan *chan = data;
drivers/soc/renesas/rcar-mfis.c
98
struct mfis_priv *priv = mfis_mb_mbox_to_priv(chan->mbox);
drivers/soc/renesas/rcar-mfis.c
99
struct mfis_chan_priv *chan_priv = chan->con_priv;
drivers/soc/tegra/fuse/fuse-tegra20.c
101
dma_release_channel(fuse->apbdma.chan);
drivers/soc/tegra/fuse/fuse-tegra20.c
102
fuse->apbdma.chan = NULL;
drivers/soc/tegra/fuse/fuse-tegra20.c
123
fuse->apbdma.chan = dma_request_channel(mask, dma_filter, NULL);
drivers/soc/tegra/fuse/fuse-tegra20.c
124
if (!fuse->apbdma.chan)
drivers/soc/tegra/fuse/fuse-tegra20.c
58
err = dmaengine_slave_config(fuse->apbdma.chan, &fuse->apbdma.config);
drivers/soc/tegra/fuse/fuse-tegra20.c
62
dma_desc = dmaengine_prep_slave_single(fuse->apbdma.chan,
drivers/soc/tegra/fuse/fuse-tegra20.c
75
dma_async_issue_pending(fuse->apbdma.chan);
drivers/soc/tegra/fuse/fuse-tegra20.c
80
dmaengine_terminate_all(fuse->apbdma.chan);
drivers/soc/tegra/fuse/fuse-tegra20.c
90
static bool dma_filter(struct dma_chan *chan, void *filter_param)
drivers/soc/tegra/fuse/fuse-tegra20.c
92
struct device_node *np = chan->device->dev->of_node;
drivers/soc/tegra/fuse/fuse.h
60
struct dma_chan *chan;
drivers/soc/ti/knav_dma.c
135
static bool check_config(struct knav_dma_chan *chan, struct knav_dma_cfg *cfg)
drivers/soc/ti/knav_dma.c
137
if (!memcmp(&chan->cfg, cfg, sizeof(*cfg)))
drivers/soc/ti/knav_dma.c
143
static int chan_start(struct knav_dma_chan *chan,
drivers/soc/ti/knav_dma.c
148
spin_lock(&chan->lock);
drivers/soc/ti/knav_dma.c
149
if ((chan->direction == DMA_MEM_TO_DEV) && chan->reg_chan) {
drivers/soc/ti/knav_dma.c
154
writel_relaxed(v, &chan->reg_chan->mode);
drivers/soc/ti/knav_dma.c
155
writel_relaxed(DMA_ENABLE, &chan->reg_chan->control);
drivers/soc/ti/knav_dma.c
158
if (chan->reg_tx_sched)
drivers/soc/ti/knav_dma.c
159
writel_relaxed(cfg->u.tx.priority, &chan->reg_tx_sched->prio);
drivers/soc/ti/knav_dma.c
161
if (chan->reg_rx_flow) {
drivers/soc/ti/knav_dma.c
177
writel_relaxed(v, &chan->reg_rx_flow->control);
drivers/soc/ti/knav_dma.c
178
writel_relaxed(0, &chan->reg_rx_flow->tags);
drivers/soc/ti/knav_dma.c
179
writel_relaxed(0, &chan->reg_rx_flow->tag_sel);
drivers/soc/ti/knav_dma.c
183
writel_relaxed(v, &chan->reg_rx_flow->fdq_sel[0]);
drivers/soc/ti/knav_dma.c
187
writel_relaxed(v, &chan->reg_rx_flow->fdq_sel[1]);
drivers/soc/ti/knav_dma.c
189
writel_relaxed(0, &chan->reg_rx_flow->thresh[0]);
drivers/soc/ti/knav_dma.c
190
writel_relaxed(0, &chan->reg_rx_flow->thresh[1]);
drivers/soc/ti/knav_dma.c
191
writel_relaxed(0, &chan->reg_rx_flow->thresh[2]);
drivers/soc/ti/knav_dma.c
195
memcpy(&chan->cfg, cfg, sizeof(*cfg));
drivers/soc/ti/knav_dma.c
196
spin_unlock(&chan->lock);
drivers/soc/ti/knav_dma.c
201
static int chan_teardown(struct knav_dma_chan *chan)
drivers/soc/ti/knav_dma.c
205
if (!chan->reg_chan)
drivers/soc/ti/knav_dma.c
209
writel_relaxed(DMA_TEARDOWN, &chan->reg_chan->control);
drivers/soc/ti/knav_dma.c
214
value = readl_relaxed(&chan->reg_chan->control);
drivers/soc/ti/knav_dma.c
219
if (readl_relaxed(&chan->reg_chan->control) & DMA_ENABLE) {
drivers/soc/ti/knav_dma.c
227
static void chan_stop(struct knav_dma_chan *chan)
drivers/soc/ti/knav_dma.c
229
spin_lock(&chan->lock);
drivers/soc/ti/knav_dma.c
230
if (chan->reg_rx_flow) {
drivers/soc/ti/knav_dma.c
232
writel_relaxed(0, &chan->reg_rx_flow->fdq_sel[0]);
drivers/soc/ti/knav_dma.c
233
writel_relaxed(0, &chan->reg_rx_flow->fdq_sel[1]);
drivers/soc/ti/knav_dma.c
234
writel_relaxed(0, &chan->reg_rx_flow->thresh[0]);
drivers/soc/ti/knav_dma.c
235
writel_relaxed(0, &chan->reg_rx_flow->thresh[1]);
drivers/soc/ti/knav_dma.c
236
writel_relaxed(0, &chan->reg_rx_flow->thresh[2]);
drivers/soc/ti/knav_dma.c
240
chan_teardown(chan);
drivers/soc/ti/knav_dma.c
243
if (chan->reg_rx_flow) {
drivers/soc/ti/knav_dma.c
244
writel_relaxed(0, &chan->reg_rx_flow->control);
drivers/soc/ti/knav_dma.c
245
writel_relaxed(0, &chan->reg_rx_flow->tags);
drivers/soc/ti/knav_dma.c
246
writel_relaxed(0, &chan->reg_rx_flow->tag_sel);
drivers/soc/ti/knav_dma.c
249
memset(&chan->cfg, 0, sizeof(struct knav_dma_cfg));
drivers/soc/ti/knav_dma.c
250
spin_unlock(&chan->lock);
drivers/soc/ti/knav_dma.c
311
struct knav_dma_chan *chan)
drivers/soc/ti/knav_dma.c
316
((chan->direction == DMA_MEM_TO_DEV) ? "tx chan" : "rx flow"),
drivers/soc/ti/knav_dma.c
317
chan_number(chan));
drivers/soc/ti/knav_dma.c
319
if (chan->direction == DMA_MEM_TO_DEV) {
drivers/soc/ti/knav_dma.c
321
chan->cfg.u.tx.filt_einfo,
drivers/soc/ti/knav_dma.c
322
chan->cfg.u.tx.filt_pswords,
drivers/soc/ti/knav_dma.c
323
chan->cfg.u.tx.priority);
drivers/soc/ti/knav_dma.c
326
chan->cfg.u.rx.einfo_present,
drivers/soc/ti/knav_dma.c
327
chan->cfg.u.rx.psinfo_present,
drivers/soc/ti/knav_dma.c
328
chan->cfg.u.rx.desc_type);
drivers/soc/ti/knav_dma.c
330
chan->cfg.u.rx.dst_q,
drivers/soc/ti/knav_dma.c
331
chan->cfg.u.rx.thresh);
drivers/soc/ti/knav_dma.c
333
seq_printf(s, "[%d]", chan->cfg.u.rx.fdq[i]);
drivers/soc/ti/knav_dma.c
341
struct knav_dma_chan *chan;
drivers/soc/ti/knav_dma.c
343
list_for_each_entry(chan, &dma->chan_list, list) {
drivers/soc/ti/knav_dma.c
344
if (atomic_read(&chan->ref_count))
drivers/soc/ti/knav_dma.c
345
dma_debug_show_channels(s, chan);
drivers/soc/ti/knav_dma.c
405
struct knav_dma_chan *chan = NULL, *iter2;
drivers/soc/ti/knav_dma.c
447
chan = iter2;
drivers/soc/ti/knav_dma.c
452
chan = iter2;
drivers/soc/ti/knav_dma.c
457
if (!chan) {
drivers/soc/ti/knav_dma.c
463
if (atomic_read(&chan->ref_count) >= 1) {
drivers/soc/ti/knav_dma.c
464
if (!check_config(chan, config)) {
drivers/soc/ti/knav_dma.c
471
if (atomic_inc_return(&chan->dma->ref_count) <= 1)
drivers/soc/ti/knav_dma.c
472
knav_dma_hw_init(chan->dma);
drivers/soc/ti/knav_dma.c
474
if (atomic_inc_return(&chan->ref_count) <= 1)
drivers/soc/ti/knav_dma.c
475
chan_start(chan, config);
drivers/soc/ti/knav_dma.c
480
return chan;
drivers/soc/ti/knav_dma.c
492
struct knav_dma_chan *chan = channel;
drivers/soc/ti/knav_dma.c
499
if (atomic_dec_return(&chan->ref_count) <= 0)
drivers/soc/ti/knav_dma.c
500
chan_stop(chan);
drivers/soc/ti/knav_dma.c
502
if (atomic_dec_return(&chan->dma->ref_count) <= 0)
drivers/soc/ti/knav_dma.c
503
knav_dma_hw_destroy(chan->dma);
drivers/soc/ti/knav_dma.c
506
chan->channel, chan->flow, chan->dma->name);
drivers/soc/ti/knav_dma.c
536
static int pktdma_init_rx_chan(struct knav_dma_chan *chan, u32 flow)
drivers/soc/ti/knav_dma.c
538
struct knav_dma_device *dma = chan->dma;
drivers/soc/ti/knav_dma.c
540
chan->flow = flow;
drivers/soc/ti/knav_dma.c
541
chan->reg_rx_flow = dma->reg_rx_flow + flow;
drivers/soc/ti/knav_dma.c
542
chan->channel = DMA_INVALID_ID;
drivers/soc/ti/knav_dma.c
543
dev_dbg(kdev->dev, "rx flow(%d) (%p)\n", chan->flow, chan->reg_rx_flow);
drivers/soc/ti/knav_dma.c
548
static int pktdma_init_tx_chan(struct knav_dma_chan *chan, u32 channel)
drivers/soc/ti/knav_dma.c
550
struct knav_dma_device *dma = chan->dma;
drivers/soc/ti/knav_dma.c
552
chan->channel = channel;
drivers/soc/ti/knav_dma.c
553
chan->reg_chan = dma->reg_tx_chan + channel;
drivers/soc/ti/knav_dma.c
554
chan->reg_tx_sched = dma->reg_tx_sched + channel;
drivers/soc/ti/knav_dma.c
555
chan->flow = DMA_INVALID_ID;
drivers/soc/ti/knav_dma.c
556
dev_dbg(kdev->dev, "tx channel(%d) (%p)\n", chan->channel, chan->reg_chan);
drivers/soc/ti/knav_dma.c
566
struct knav_dma_chan *chan;
drivers/soc/ti/knav_dma.c
569
chan = devm_kzalloc(dev, sizeof(*chan), GFP_KERNEL);
drivers/soc/ti/knav_dma.c
570
if (!chan)
drivers/soc/ti/knav_dma.c
573
INIT_LIST_HEAD(&chan->list);
drivers/soc/ti/knav_dma.c
574
chan->dma = dma;
drivers/soc/ti/knav_dma.c
575
chan->direction = DMA_TRANS_NONE;
drivers/soc/ti/knav_dma.c
576
atomic_set(&chan->ref_count, 0);
drivers/soc/ti/knav_dma.c
577
spin_lock_init(&chan->lock);
drivers/soc/ti/knav_dma.c
580
chan->direction = dir;
drivers/soc/ti/knav_dma.c
581
ret = pktdma_init_tx_chan(chan, chan_num);
drivers/soc/ti/knav_dma.c
583
chan->direction = dir;
drivers/soc/ti/knav_dma.c
584
ret = pktdma_init_rx_chan(chan, chan_num);
drivers/soc/ti/knav_dma.c
589
list_add_tail(&chan->list, &dma->chan_list);
drivers/spi/atmel-quadspi.c
774
static int atmel_qspi_dma_xfer(struct atmel_qspi *aq, struct dma_chan *chan,
drivers/spi/atmel-quadspi.c
782
tx = dmaengine_prep_dma_memcpy(chan, dma_dst, dma_src, len,
drivers/spi/atmel-quadspi.c
799
dma_async_issue_pending(chan);
drivers/spi/atmel-quadspi.c
803
dmaengine_terminate_sync(chan);
drivers/spi/spi-atcspi200.c
272
struct dma_chan *chan;
drivers/spi/spi-atcspi200.c
275
chan = spi->host->dma_rx;
drivers/spi/spi-atcspi200.c
279
chan = spi->host->dma_tx;
drivers/spi/spi-atcspi200.c
294
return dmaengine_slave_config(chan, &conf);
drivers/spi/spi-bcm2835.c
677
struct dma_chan *chan;
drivers/spi/spi-bcm2835.c
688
chan = ctlr->dma_tx;
drivers/spi/spi-bcm2835.c
694
chan = ctlr->dma_rx;
drivers/spi/spi-bcm2835.c
700
desc = dmaengine_prep_slave_sg(chan, sgl, nents, dir, flags);
drivers/spi/spi-dw-dma.c
26
static bool dw_spi_dma_chan_filter(struct dma_chan *chan, void *param)
drivers/spi/spi-dw-dma.c
30
if (s->dma_dev != chan->device->dev)
drivers/spi/spi-dw-dma.c
33
chan->private = s;
drivers/spi/spi-ep93xx.c
278
struct dma_chan *chan;
drivers/spi/spi-ep93xx.c
292
chan = espi->dma_rx;
drivers/spi/spi-ep93xx.c
299
chan = espi->dma_tx;
drivers/spi/spi-ep93xx.c
307
ret = dmaengine_slave_config(chan, &conf);
drivers/spi/spi-ep93xx.c
351
nents = dma_map_sg(chan->device->dev, sgt->sgl, sgt->nents, dir);
drivers/spi/spi-ep93xx.c
355
txd = dmaengine_prep_slave_sg(chan, sgt->sgl, nents, conf.direction,
drivers/spi/spi-ep93xx.c
358
dma_unmap_sg(chan->device->dev, sgt->sgl, sgt->nents, dir);
drivers/spi/spi-ep93xx.c
376
struct dma_chan *chan;
drivers/spi/spi-ep93xx.c
380
chan = espi->dma_rx;
drivers/spi/spi-ep93xx.c
383
chan = espi->dma_tx;
drivers/spi/spi-ep93xx.c
387
dma_unmap_sg(chan->device->dev, sgt->sgl, sgt->nents, dir);
drivers/spi/spi-ingenic.c
122
spi_ingenic_prepare_dma(struct spi_controller *ctlr, struct dma_chan *chan,
drivers/spi/spi-ingenic.c
150
ret = dmaengine_slave_config(chan, &cfg);
drivers/spi/spi-ingenic.c
154
desc = dmaengine_prep_slave_sg(chan, sg->sgl, sg->nents, dir,
drivers/spi/spi-ingenic.c
349
struct dma_chan *chan;
drivers/spi/spi-ingenic.c
351
chan = dma_request_chan(dev, "tx");
drivers/spi/spi-ingenic.c
352
if (IS_ERR(chan))
drivers/spi/spi-ingenic.c
353
return PTR_ERR(chan);
drivers/spi/spi-ingenic.c
354
ctlr->dma_tx = chan;
drivers/spi/spi-ingenic.c
356
chan = dma_request_chan(dev, "rx");
drivers/spi/spi-ingenic.c
357
if (IS_ERR(chan))
drivers/spi/spi-ingenic.c
358
return PTR_ERR(chan);
drivers/spi/spi-ingenic.c
359
ctlr->dma_rx = chan;
drivers/spi/spi-offload.c
336
static void spi_offload_release_dma_chan(void *chan)
drivers/spi/spi-offload.c
338
dma_release_channel(chan);
drivers/spi/spi-offload.c
355
struct dma_chan *chan;
drivers/spi/spi-offload.c
361
chan = offload->ops->tx_stream_request_dma_chan(offload);
drivers/spi/spi-offload.c
362
if (IS_ERR(chan))
drivers/spi/spi-offload.c
363
return chan;
drivers/spi/spi-offload.c
365
ret = devm_add_action_or_reset(dev, spi_offload_release_dma_chan, chan);
drivers/spi/spi-offload.c
369
return chan;
drivers/spi/spi-offload.c
387
struct dma_chan *chan;
drivers/spi/spi-offload.c
393
chan = offload->ops->rx_stream_request_dma_chan(offload);
drivers/spi/spi-offload.c
394
if (IS_ERR(chan))
drivers/spi/spi-offload.c
395
return chan;
drivers/spi/spi-offload.c
397
ret = devm_add_action_or_reset(dev, spi_offload_release_dma_chan, chan);
drivers/spi/spi-offload.c
401
return chan;
drivers/spi/spi-pl022.c
1036
struct dma_chan *chan;
drivers/spi/spi-pl022.c
1040
chan = dma_request_chan(dev, "rx");
drivers/spi/spi-pl022.c
1041
if (IS_ERR(chan)) {
drivers/spi/spi-pl022.c
1042
err = PTR_ERR(chan);
drivers/spi/spi-pl022.c
1046
pl022->dma_rx_channel = chan;
drivers/spi/spi-pl022.c
1048
chan = dma_request_chan(dev, "tx");
drivers/spi/spi-pl022.c
1049
if (IS_ERR(chan)) {
drivers/spi/spi-pl022.c
1050
err = PTR_ERR(chan);
drivers/spi/spi-pl022.c
1054
pl022->dma_tx_channel = chan;
drivers/spi/spi-pxa2xx-dma.c
105
chan = drv_data->controller->dma_rx;
drivers/spi/spi-pxa2xx-dma.c
108
ret = dmaengine_slave_config(chan, &cfg);
drivers/spi/spi-pxa2xx-dma.c
114
return dmaengine_prep_slave_sg(chan, sgt->sgl, sgt->nents, dir,
drivers/spi/spi-pxa2xx-dma.c
73
struct dma_chan *chan;
drivers/spi/spi-pxa2xx-dma.c
98
chan = drv_data->controller->dma_tx;
drivers/spi/spi-pxa2xx-pci.c
80
static bool lpss_dma_filter(struct dma_chan *chan, void *param)
drivers/spi/spi-pxa2xx-pci.c
84
if (dws->dma_dev != chan->device->dev)
drivers/spi/spi-pxa2xx-pci.c
87
chan->private = dws;
drivers/spi/spi-pxa2xx-platform.c
15
static bool pxa2xx_spi_idma_filter(struct dma_chan *chan, void *param)
drivers/spi/spi-pxa2xx-platform.c
17
return param == chan->device->dev;
drivers/spi/spi-qup.c
420
struct dma_chan *chan;
drivers/spi/spi-qup.c
424
chan = host->dma_tx;
drivers/spi/spi-qup.c
426
chan = host->dma_rx;
drivers/spi/spi-qup.c
428
desc = dmaengine_prep_slave_sg(chan, sgl, nents, dir, flags);
drivers/spi/spi-rspi.c
1098
struct dma_chan *chan;
drivers/spi/spi-rspi.c
1105
chan = dma_request_slave_channel_compat(mask, shdma_chan_filter,
drivers/spi/spi-rspi.c
1108
if (!chan) {
drivers/spi/spi-rspi.c
1120
ret = dmaengine_slave_config(chan, &cfg);
drivers/spi/spi-rspi.c
1123
dma_release_channel(chan);
drivers/spi/spi-rspi.c
1127
return chan;
drivers/spi/spi-rzv2h-rspi.c
274
struct dma_chan *chan, struct sg_table *sg,
drivers/spi/spi-rzv2h-rspi.c
288
ret = dmaengine_slave_config(chan, &config);
drivers/spi/spi-rzv2h-rspi.c
292
desc = dmaengine_prep_slave_sg(chan, sg->sgl, sg->nents, direction,
drivers/spi/spi-sh-msiof.c
1060
struct dma_chan *chan;
drivers/spi/spi-sh-msiof.c
1067
chan = dma_request_slave_channel_compat(mask, shdma_chan_filter,
drivers/spi/spi-sh-msiof.c
1070
if (!chan) {
drivers/spi/spi-sh-msiof.c
1085
ret = dmaengine_slave_config(chan, &cfg);
drivers/spi/spi-sh-msiof.c
1088
dma_release_channel(chan);
drivers/spi/spi-sh-msiof.c
1092
return chan;
drivers/spi/spi-spacemit-k1.c
235
struct dma_chan *chan;
drivers/spi/spi-spacemit-k1.c
251
chan = drv_data->host->dma_tx;
drivers/spi/spi-spacemit-k1.c
259
chan = drv_data->host->dma_rx;
drivers/spi/spi-spacemit-k1.c
269
if (dmaengine_slave_config(chan, &cfg))
drivers/spi/spi-spacemit-k1.c
272
return dmaengine_prep_slave_sg(chan, sgt->sgl, sgt->nents, dir,
drivers/spi/spi-spacemit-k1.c
624
struct dma_chan *chan;
drivers/spi/spi-spacemit-k1.c
626
chan = dma_request_chan(dev, "tx");
drivers/spi/spi-spacemit-k1.c
627
if (IS_ERR(chan))
drivers/spi/spi-spacemit-k1.c
628
return PTR_ERR(chan);
drivers/spi/spi-spacemit-k1.c
629
host->dma_tx = chan;
drivers/spi/spi-spacemit-k1.c
631
chan = dma_request_chan(dev, "rx");
drivers/spi/spi-spacemit-k1.c
632
if (IS_ERR(chan)) {
drivers/spi/spi-spacemit-k1.c
635
return PTR_ERR(chan);
drivers/spi/spi-spacemit-k1.c
637
host->dma_rx = chan;
drivers/spi/spi-ti-qspi.c
442
struct dma_chan *chan = qspi->rx_chan;
drivers/spi/spi-ti-qspi.c
449
tx = dmaengine_prep_dma_memcpy(chan, dma_dst, dma_src, len, flags);
drivers/spi/spi-ti-qspi.c
466
dma_async_issue_pending(chan);
drivers/spi/spi-ti-qspi.c
470
dmaengine_terminate_sync(chan);
drivers/spi/spi-topcliff-pch.c
806
static bool pch_spi_filter(struct dma_chan *chan, void *slave)
drivers/spi/spi-topcliff-pch.c
810
if ((chan->chan_id == param->chan_id) &&
drivers/spi/spi-topcliff-pch.c
811
(param->dma_dev == chan->device->dev)) {
drivers/spi/spi-topcliff-pch.c
812
chan->private = param;
drivers/spi/spi-topcliff-pch.c
822
struct dma_chan *chan;
drivers/spi/spi-topcliff-pch.c
847
chan = dma_request_channel(mask, pch_spi_filter, param);
drivers/spi/spi-topcliff-pch.c
848
if (!chan) {
drivers/spi/spi-topcliff-pch.c
853
dma->chan_tx = chan;
drivers/spi/spi-topcliff-pch.c
861
chan = dma_request_channel(mask, pch_spi_filter, param);
drivers/spi/spi-topcliff-pch.c
862
if (!chan) {
drivers/spi/spi-topcliff-pch.c
869
dma->chan_rx = chan;
drivers/spmi/spmi-mtk-pmif.c
317
reg_rdata = pmif_readl(arb, pbus, arb->chan.ch_sta);
drivers/spmi/spmi-mtk-pmif.c
375
inf_reg = &arb->chan;
drivers/spmi/spmi-mtk-pmif.c
451
inf_reg = &arb->chan;
drivers/spmi/spmi-mtk-pmif.c
73
struct ch_reg chan;
drivers/spmi/spmi-mtk-pmif.c
810
arb->chan.ch_sta = PMIF_SWINF_0_STA + chan_offset;
drivers/spmi/spmi-mtk-pmif.c
811
arb->chan.wdata = PMIF_SWINF_0_WDATA_31_0 + chan_offset;
drivers/spmi/spmi-mtk-pmif.c
812
arb->chan.rdata = PMIF_SWINF_0_RDATA_31_0 + chan_offset;
drivers/spmi/spmi-mtk-pmif.c
813
arb->chan.ch_send = PMIF_SWINF_0_ACC + chan_offset;
drivers/spmi/spmi-mtk-pmif.c
814
arb->chan.ch_rdy = PMIF_SWINF_0_VLD_CLR + chan_offset;
drivers/staging/fbtft/fbtft-core.c
347
static unsigned int chan_to_field(unsigned int chan, struct fb_bitfield *bf)
drivers/staging/fbtft/fbtft-core.c
349
chan &= 0xffff;
drivers/staging/fbtft/fbtft-core.c
350
chan >>= 16 - bf->length;
drivers/staging/fbtft/fbtft-core.c
351
return chan << bf->offset;
drivers/staging/iio/accel/adis16203.c
145
struct iio_chan_spec const *chan,
drivers/staging/iio/accel/adis16203.c
152
u8 addr = adis16203_addresses[chan->scan_index];
drivers/staging/iio/accel/adis16203.c
158
struct iio_chan_spec const *chan,
drivers/staging/iio/accel/adis16203.c
169
return adis_single_conversion(indio_dev, chan,
drivers/staging/iio/accel/adis16203.c
172
switch (chan->type) {
drivers/staging/iio/accel/adis16203.c
174
if (chan->channel == 0) {
drivers/staging/iio/accel/adis16203.c
197
addr = adis16203_addresses[chan->scan_index];
drivers/staging/iio/impedance-analyzer/ad5933.c
501
struct iio_chan_spec const *chan,
drivers/staging/media/tegra-video/csi.c
239
struct tegra_vi_channel *chan;
drivers/staging/media/tegra-video/csi.c
243
chan = v4l2_get_subdev_hostdata(&csi_chan->subdev);
drivers/staging/media/tegra-video/csi.c
244
src_subdev = tegra_channel_get_remote_source_subdev(chan);
drivers/staging/media/tegra-video/csi.c
293
struct tegra_vi_channel *chan = v4l2_get_subdev_hostdata(subdev);
drivers/staging/media/tegra-video/csi.c
327
csi_chan->pg_mode = chan->pg_mode;
drivers/staging/media/tegra-video/csi.c
349
src_subdev = tegra_channel_get_remote_source_subdev(chan);
drivers/staging/media/tegra-video/csi.c
382
struct tegra_vi_channel *chan = v4l2_get_subdev_hostdata(subdev);
drivers/staging/media/tegra-video/csi.c
394
src_subdev = tegra_channel_get_remote_source_subdev(chan);
drivers/staging/media/tegra-video/csi.c
448
struct v4l2_subdev *tegra_channel_get_remote_csi_subdev(struct tegra_vi_channel *chan)
drivers/staging/media/tegra-video/csi.c
453
pad = media_pad_remote_pad_first(&chan->pad);
drivers/staging/media/tegra-video/csi.c
469
struct tegra_csi_channel *chan;
drivers/staging/media/tegra-video/csi.c
472
chan = kzalloc_obj(*chan);
drivers/staging/media/tegra-video/csi.c
473
if (!chan)
drivers/staging/media/tegra-video/csi.c
476
list_add_tail(&chan->list, &csi->csi_chans);
drivers/staging/media/tegra-video/csi.c
477
chan->csi = csi;
drivers/staging/media/tegra-video/csi.c
483
chan->numlanes = lanes;
drivers/staging/media/tegra-video/csi.c
484
chan->numgangports = 1;
drivers/staging/media/tegra-video/csi.c
486
chan->numlanes = CSI_LANES_PER_BRICK;
drivers/staging/media/tegra-video/csi.c
487
chan->numgangports = lanes / CSI_LANES_PER_BRICK;
drivers/staging/media/tegra-video/csi.c
490
for (i = 0; i < chan->numgangports; i++)
drivers/staging/media/tegra-video/csi.c
491
chan->csi_port_nums[i] = port_num + i * CSI_PORTS_PER_BRICK;
drivers/staging/media/tegra-video/csi.c
493
chan->of_node = of_node_get(node);
drivers/staging/media/tegra-video/csi.c
494
chan->numpads = num_pads;
drivers/staging/media/tegra-video/csi.c
496
chan->pads[0].flags = MEDIA_PAD_FL_SINK;
drivers/staging/media/tegra-video/csi.c
497
chan->pads[1].flags = MEDIA_PAD_FL_SOURCE;
drivers/staging/media/tegra-video/csi.c
499
chan->pads[0].flags = MEDIA_PAD_FL_SOURCE;
drivers/staging/media/tegra-video/csi.c
505
chan->mipi = tegra_mipi_request(csi->dev, node);
drivers/staging/media/tegra-video/csi.c
506
if (IS_ERR(chan->mipi)) {
drivers/staging/media/tegra-video/csi.c
507
ret = PTR_ERR(chan->mipi);
drivers/staging/media/tegra-video/csi.c
508
chan->mipi = NULL;
drivers/staging/media/tegra-video/csi.c
604
static int tegra_csi_channel_init(struct tegra_csi_channel *chan)
drivers/staging/media/tegra-video/csi.c
606
struct tegra_csi *csi = chan->csi;
drivers/staging/media/tegra-video/csi.c
611
chan->format.code = MEDIA_BUS_FMT_SRGGB10_1X10;
drivers/staging/media/tegra-video/csi.c
612
chan->format.field = V4L2_FIELD_NONE;
drivers/staging/media/tegra-video/csi.c
613
chan->format.colorspace = V4L2_COLORSPACE_SRGB;
drivers/staging/media/tegra-video/csi.c
614
chan->format.width = TEGRA_DEF_WIDTH;
drivers/staging/media/tegra-video/csi.c
615
chan->format.height = TEGRA_DEF_HEIGHT;
drivers/staging/media/tegra-video/csi.c
616
csi_chan_update_blank_intervals(chan, chan->format.code,
drivers/staging/media/tegra-video/csi.c
617
chan->format.width,
drivers/staging/media/tegra-video/csi.c
618
chan->format.height);
drivers/staging/media/tegra-video/csi.c
620
subdev = &chan->subdev;
drivers/staging/media/tegra-video/csi.c
625
chan->csi_port_nums[0]);
drivers/staging/media/tegra-video/csi.c
628
kbasename(chan->of_node->full_name));
drivers/staging/media/tegra-video/csi.c
630
v4l2_set_subdevdata(subdev, chan);
drivers/staging/media/tegra-video/csi.c
631
subdev->fwnode = of_fwnode_handle(chan->of_node);
drivers/staging/media/tegra-video/csi.c
635
ret = media_entity_pads_init(&subdev->entity, chan->numpads,
drivers/staging/media/tegra-video/csi.c
636
chan->pads);
drivers/staging/media/tegra-video/csi.c
669
struct tegra_csi_channel *chan;
drivers/staging/media/tegra-video/csi.c
672
list_for_each_entry(chan, &csi->csi_chans, list) {
drivers/staging/media/tegra-video/csi.c
673
ret = tegra_csi_channel_init(chan);
drivers/staging/media/tegra-video/csi.c
677
chan->csi_port_nums[0], ret);
drivers/staging/media/tegra-video/csi.c
688
struct tegra_csi_channel *chan, *tmp;
drivers/staging/media/tegra-video/csi.c
690
list_for_each_entry_safe(chan, tmp, &csi->csi_chans, list) {
drivers/staging/media/tegra-video/csi.c
691
if (chan->mipi)
drivers/staging/media/tegra-video/csi.c
692
tegra_mipi_free(chan->mipi);
drivers/staging/media/tegra-video/csi.c
694
subdev = &chan->subdev;
drivers/staging/media/tegra-video/csi.c
701
of_node_put(chan->of_node);
drivers/staging/media/tegra-video/csi.c
702
list_del(&chan->list);
drivers/staging/media/tegra-video/csi.c
703
kfree(chan);
drivers/staging/media/tegra-video/tegra20.c
270
static void tegra20_vi_write(struct tegra_vi_channel *chan, unsigned int addr, u32 val)
drivers/staging/media/tegra-video/tegra20.c
272
writel(val, chan->vi->iomem + addr);
drivers/staging/media/tegra-video/tegra20.c
275
static int __maybe_unused tegra20_vi_read(struct tegra_vi_channel *chan, unsigned int addr)
drivers/staging/media/tegra-video/tegra20.c
277
return readl(chan->vi->iomem + addr);
drivers/staging/media/tegra-video/tegra20.c
308
static void tegra20_vi_get_input_formats(struct tegra_vi_channel *chan,
drivers/staging/media/tegra-video/tegra20.c
312
unsigned int input_mbus_code = chan->fmtinfo->code;
drivers/staging/media/tegra-video/tegra20.c
349
static void tegra20_vi_get_output_formats(struct tegra_vi_channel *chan,
drivers/staging/media/tegra-video/tegra20.c
353
u32 output_fourcc = chan->format.pixelformat;
drivers/staging/media/tegra-video/tegra20.c
423
static int tegra20_channel_host1x_syncpt_init(struct tegra_vi_channel *chan)
drivers/staging/media/tegra-video/tegra20.c
425
struct tegra_vi *vi = chan->vi;
drivers/staging/media/tegra-video/tegra20.c
432
chan->mw_ack_sp[0] = out_sp;
drivers/staging/media/tegra-video/tegra20.c
438
chan->frame_start_sp[0] = fs_sp;
drivers/staging/media/tegra-video/tegra20.c
443
static void tegra20_channel_host1x_syncpt_free(struct tegra_vi_channel *chan)
drivers/staging/media/tegra-video/tegra20.c
445
host1x_syncpt_put(chan->mw_ack_sp[0]);
drivers/staging/media/tegra-video/tegra20.c
446
host1x_syncpt_put(chan->frame_start_sp[0]);
drivers/staging/media/tegra-video/tegra20.c
470
static void tegra20_channel_queue_setup(struct tegra_vi_channel *chan)
drivers/staging/media/tegra-video/tegra20.c
472
unsigned int stride = chan->format.bytesperline;
drivers/staging/media/tegra-video/tegra20.c
473
unsigned int height = chan->format.height;
drivers/staging/media/tegra-video/tegra20.c
475
chan->start_offset = 0;
drivers/staging/media/tegra-video/tegra20.c
477
switch (chan->format.pixelformat) {
drivers/staging/media/tegra-video/tegra20.c
492
if (chan->vflip)
drivers/staging/media/tegra-video/tegra20.c
493
chan->start_offset += stride * (height - 1);
drivers/staging/media/tegra-video/tegra20.c
494
if (chan->hflip)
drivers/staging/media/tegra-video/tegra20.c
495
chan->start_offset += stride - 1;
drivers/staging/media/tegra-video/tegra20.c
500
chan->addr_offset_u = stride * height;
drivers/staging/media/tegra-video/tegra20.c
501
chan->addr_offset_v = chan->addr_offset_u + stride * height / 4;
drivers/staging/media/tegra-video/tegra20.c
504
if (chan->format.pixelformat == V4L2_PIX_FMT_YVU420)
drivers/staging/media/tegra-video/tegra20.c
505
swap(chan->addr_offset_u, chan->addr_offset_v);
drivers/staging/media/tegra-video/tegra20.c
507
chan->start_offset_u = chan->addr_offset_u;
drivers/staging/media/tegra-video/tegra20.c
508
chan->start_offset_v = chan->addr_offset_v;
drivers/staging/media/tegra-video/tegra20.c
510
if (chan->vflip) {
drivers/staging/media/tegra-video/tegra20.c
511
chan->start_offset += stride * (height - 1);
drivers/staging/media/tegra-video/tegra20.c
512
chan->start_offset_u += (stride / 2) * ((height / 2) - 1);
drivers/staging/media/tegra-video/tegra20.c
513
chan->start_offset_v += (stride / 2) * ((height / 2) - 1);
drivers/staging/media/tegra-video/tegra20.c
515
if (chan->hflip) {
drivers/staging/media/tegra-video/tegra20.c
516
chan->start_offset += stride - 1;
drivers/staging/media/tegra-video/tegra20.c
517
chan->start_offset_u += (stride / 2) - 1;
drivers/staging/media/tegra-video/tegra20.c
518
chan->start_offset_v += (stride / 2) - 1;
drivers/staging/media/tegra-video/tegra20.c
524
static void release_buffer(struct tegra_vi_channel *chan,
drivers/staging/media/tegra-video/tegra20.c
530
vb->sequence = chan->sequence++;
drivers/staging/media/tegra-video/tegra20.c
536
static void tegra20_channel_vi_buffer_setup(struct tegra_vi_channel *chan,
drivers/staging/media/tegra-video/tegra20.c
541
switch (chan->fmtinfo->fourcc) {
drivers/staging/media/tegra-video/tegra20.c
544
tegra20_vi_write(chan, TEGRA_VI_VB0_BASE_ADDRESS_U, base + chan->addr_offset_u);
drivers/staging/media/tegra-video/tegra20.c
545
tegra20_vi_write(chan, TEGRA_VI_VB0_START_ADDRESS_U, base + chan->start_offset_u);
drivers/staging/media/tegra-video/tegra20.c
546
tegra20_vi_write(chan, TEGRA_VI_VB0_BASE_ADDRESS_V, base + chan->addr_offset_v);
drivers/staging/media/tegra-video/tegra20.c
547
tegra20_vi_write(chan, TEGRA_VI_VB0_START_ADDRESS_V, base + chan->start_offset_v);
drivers/staging/media/tegra-video/tegra20.c
554
tegra20_vi_write(chan, TEGRA_VI_VB0_BASE_ADDRESS(TEGRA_VI_OUT_1), base);
drivers/staging/media/tegra-video/tegra20.c
555
tegra20_vi_write(chan, TEGRA_VI_VB0_START_ADDRESS(TEGRA_VI_OUT_1), base + chan->start_offset);
drivers/staging/media/tegra-video/tegra20.c
567
tegra20_vi_write(chan, TEGRA_VI_VB0_BASE_ADDRESS(TEGRA_VI_OUT_2), base);
drivers/staging/media/tegra-video/tegra20.c
568
tegra20_vi_write(chan, TEGRA_VI_VB0_START_ADDRESS(TEGRA_VI_OUT_2), base + chan->start_offset);
drivers/staging/media/tegra-video/tegra20.c
573
static int tegra20_channel_capture_frame(struct tegra_vi_channel *chan,
drivers/staging/media/tegra-video/tegra20.c
580
tegra20_channel_vi_buffer_setup(chan, buf);
drivers/staging/media/tegra-video/tegra20.c
601
val = host1x_syncpt_read(chan->frame_start_sp[0]);
drivers/staging/media/tegra-video/tegra20.c
603
err = host1x_syncpt_wait(chan->frame_start_sp[0],
drivers/staging/media/tegra-video/tegra20.c
609
dev_err_ratelimited(&chan->video.dev,
drivers/staging/media/tegra-video/tegra20.c
621
tegra20_vi_write(chan, TEGRA_VI_CAMERA_CONTROL, VI_CAMERA_CONTROL_VIP_ENABLE);
drivers/staging/media/tegra-video/tegra20.c
624
val = host1x_syncpt_read(chan->mw_ack_sp[0]);
drivers/staging/media/tegra-video/tegra20.c
626
err = host1x_syncpt_wait(chan->mw_ack_sp[0], val + 1,
drivers/staging/media/tegra-video/tegra20.c
632
dev_err_ratelimited(&chan->video.dev, "mw ack syncpt timeout: %d\n", err);
drivers/staging/media/tegra-video/tegra20.c
637
tegra20_vi_write(chan, TEGRA_VI_CAMERA_CONTROL,
drivers/staging/media/tegra-video/tegra20.c
641
release_buffer(chan, buf, VB2_BUF_STATE_DONE);
drivers/staging/media/tegra-video/tegra20.c
648
struct tegra_vi_channel *chan = data;
drivers/staging/media/tegra-video/tegra20.c
655
csi_subdev = tegra_channel_get_remote_csi_subdev(chan);
drivers/staging/media/tegra-video/tegra20.c
665
wait_event_interruptible(chan->start_wait,
drivers/staging/media/tegra-video/tegra20.c
667
(!list_empty(&chan->capture) && !err));
drivers/staging/media/tegra-video/tegra20.c
673
spin_lock(&chan->start_lock);
drivers/staging/media/tegra-video/tegra20.c
674
if (list_empty(&chan->capture)) {
drivers/staging/media/tegra-video/tegra20.c
675
spin_unlock(&chan->start_lock);
drivers/staging/media/tegra-video/tegra20.c
679
buf = list_first_entry(&chan->capture, struct tegra_channel_buffer, queue);
drivers/staging/media/tegra-video/tegra20.c
681
spin_unlock(&chan->start_lock);
drivers/staging/media/tegra-video/tegra20.c
683
err = tegra20_channel_capture_frame(chan, buf, csi_chan);
drivers/staging/media/tegra-video/tegra20.c
689
if (retries++ > chan->syncpt_timeout_retry)
drivers/staging/media/tegra-video/tegra20.c
690
vb2_queue_error(&chan->queue);
drivers/staging/media/tegra-video/tegra20.c
698
static void tegra20_camera_capture_setup(struct tegra_vi_channel *chan)
drivers/staging/media/tegra-video/tegra20.c
700
u32 output_fourcc = chan->format.pixelformat;
drivers/staging/media/tegra-video/tegra20.c
701
u32 data_type = chan->fmtinfo->img_dt;
drivers/staging/media/tegra-video/tegra20.c
702
int width = chan->format.width;
drivers/staging/media/tegra-video/tegra20.c
703
int height = chan->format.height;
drivers/staging/media/tegra-video/tegra20.c
704
int stride_l = chan->format.bytesperline * height;
drivers/staging/media/tegra-video/tegra20.c
712
tegra20_vi_write(chan, TEGRA_VI_OUTPUT_FRAME_SIZE(output_channel),
drivers/staging/media/tegra-video/tegra20.c
717
tegra20_vi_write(chan, TEGRA_VI_VI_ENABLE(output_channel), 0);
drivers/staging/media/tegra-video/tegra20.c
720
tegra20_vi_write(chan, TEGRA_VI_VB0_COUNT(output_channel), 1);
drivers/staging/media/tegra-video/tegra20.c
723
tegra20_vi_write(chan, TEGRA_VI_VB0_SIZE(output_channel),
drivers/staging/media/tegra-video/tegra20.c
727
tegra20_vi_write(chan, TEGRA_VI_VB0_BUFFER_STRIDE(output_channel),
drivers/staging/media/tegra-video/tegra20.c
731
tegra20_vi_write(chan, TEGRA_VI_VI_ENABLE(output_channel), 0);
drivers/staging/media/tegra-video/tegra20.c
736
struct tegra_vi_channel *chan = vb2_get_drv_priv(vq);
drivers/staging/media/tegra-video/tegra20.c
737
struct media_pipeline *pipe = &chan->video.pipe;
drivers/staging/media/tegra-video/tegra20.c
740
err = video_device_pipeline_start(&chan->video, pipe);
drivers/staging/media/tegra-video/tegra20.c
749
tegra20_vi_write(chan, TEGRA_VI_H_LPF_CONTROL,
drivers/staging/media/tegra-video/tegra20.c
754
tegra20_vi_write(chan, TEGRA_VI_VI_RAISE, VI_VI_RAISE_ON_EDGE);
drivers/staging/media/tegra-video/tegra20.c
756
err = tegra_channel_set_stream(chan, true);
drivers/staging/media/tegra-video/tegra20.c
760
tegra20_camera_capture_setup(chan);
drivers/staging/media/tegra-video/tegra20.c
762
chan->sequence = 0;
drivers/staging/media/tegra-video/tegra20.c
764
chan->kthread_start_capture = kthread_run(tegra20_chan_capture_kthread_start,
drivers/staging/media/tegra-video/tegra20.c
765
chan, "%s:0", chan->video.name);
drivers/staging/media/tegra-video/tegra20.c
766
if (IS_ERR(chan->kthread_start_capture)) {
drivers/staging/media/tegra-video/tegra20.c
767
err = PTR_ERR(chan->kthread_start_capture);
drivers/staging/media/tegra-video/tegra20.c
768
chan->kthread_start_capture = NULL;
drivers/staging/media/tegra-video/tegra20.c
769
dev_err_probe(&chan->video.dev, err, "failed to run capture kthread\n");
drivers/staging/media/tegra-video/tegra20.c
776
tegra_channel_set_stream(chan, false);
drivers/staging/media/tegra-video/tegra20.c
778
video_device_pipeline_stop(&chan->video);
drivers/staging/media/tegra-video/tegra20.c
780
tegra_channel_release_buffers(chan, VB2_BUF_STATE_QUEUED);
drivers/staging/media/tegra-video/tegra20.c
787
struct tegra_vi_channel *chan = vb2_get_drv_priv(vq);
drivers/staging/media/tegra-video/tegra20.c
789
if (chan->kthread_start_capture) {
drivers/staging/media/tegra-video/tegra20.c
790
kthread_stop(chan->kthread_start_capture);
drivers/staging/media/tegra-video/tegra20.c
791
chan->kthread_start_capture = NULL;
drivers/staging/media/tegra-video/tegra20.c
794
tegra_channel_release_buffers(chan, VB2_BUF_STATE_ERROR);
drivers/staging/media/tegra-video/tegra20.c
795
tegra_channel_set_stream(chan, false);
drivers/staging/media/tegra-video/tegra20.c
796
video_device_pipeline_stop(&chan->video);
drivers/staging/media/tegra-video/tegra210.c
147
static void tegra_vi_write(struct tegra_vi_channel *chan, unsigned int addr,
drivers/staging/media/tegra-video/tegra210.c
150
writel_relaxed(val, chan->vi->iomem + addr);
drivers/staging/media/tegra-video/tegra210.c
153
static u32 tegra_vi_read(struct tegra_vi_channel *chan, unsigned int addr)
drivers/staging/media/tegra-video/tegra210.c
155
return readl_relaxed(chan->vi->iomem + addr);
drivers/staging/media/tegra-video/tegra210.c
159
static void vi_csi_write(struct tegra_vi_channel *chan, u8 portno,
drivers/staging/media/tegra-video/tegra210.c
164
vi_csi_base = chan->vi->iomem + TEGRA210_VI_CSI_BASE(portno);
drivers/staging/media/tegra-video/tegra210.c
169
static u32 vi_csi_read(struct tegra_vi_channel *chan, u8 portno,
drivers/staging/media/tegra-video/tegra210.c
174
vi_csi_base = chan->vi->iomem + TEGRA210_VI_CSI_BASE(portno);
drivers/staging/media/tegra-video/tegra210.c
183
static int tegra210_channel_host1x_syncpt_init(struct tegra_vi_channel *chan)
drivers/staging/media/tegra-video/tegra210.c
185
struct tegra_vi *vi = chan->vi;
drivers/staging/media/tegra-video/tegra210.c
191
for (i = 0; i < chan->numgangports; i++) {
drivers/staging/media/tegra-video/tegra210.c
207
chan->frame_start_sp[i] = fs_sp;
drivers/staging/media/tegra-video/tegra210.c
208
chan->mw_ack_sp[i] = mw_sp;
drivers/staging/media/tegra-video/tegra210.c
209
spin_lock_init(&chan->sp_incr_lock[i]);
drivers/staging/media/tegra-video/tegra210.c
215
for (i = 0; i < chan->numgangports; i++) {
drivers/staging/media/tegra-video/tegra210.c
216
host1x_syncpt_put(chan->mw_ack_sp[i]);
drivers/staging/media/tegra-video/tegra210.c
217
host1x_syncpt_put(chan->frame_start_sp[i]);
drivers/staging/media/tegra-video/tegra210.c
222
static void tegra210_channel_host1x_syncpt_free(struct tegra_vi_channel *chan)
drivers/staging/media/tegra-video/tegra210.c
226
for (i = 0; i < chan->numgangports; i++) {
drivers/staging/media/tegra-video/tegra210.c
227
host1x_syncpt_put(chan->mw_ack_sp[i]);
drivers/staging/media/tegra-video/tegra210.c
228
host1x_syncpt_put(chan->frame_start_sp[i]);
drivers/staging/media/tegra-video/tegra210.c
260
static int tegra_channel_capture_setup(struct tegra_vi_channel *chan,
drivers/staging/media/tegra-video/tegra210.c
263
u32 height = chan->format.height;
drivers/staging/media/tegra-video/tegra210.c
264
u32 width = chan->format.width;
drivers/staging/media/tegra-video/tegra210.c
265
u32 format = chan->fmtinfo->img_fmt;
drivers/staging/media/tegra-video/tegra210.c
266
u32 data_type = chan->fmtinfo->img_dt;
drivers/staging/media/tegra-video/tegra210.c
267
u32 word_count = (width * chan->fmtinfo->bit_width) / 8;
drivers/staging/media/tegra-video/tegra210.c
278
if (chan->pg_mode || data_type == TEGRA_IMAGE_DT_YUV422_8 ||
drivers/staging/media/tegra-video/tegra210.c
287
if (chan->numgangports > 1) {
drivers/staging/media/tegra-video/tegra210.c
289
word_count = (width * chan->fmtinfo->bit_width) / 8;
drivers/staging/media/tegra-video/tegra210.c
292
vi_csi_write(chan, portno, TEGRA_VI_CSI_ERROR_STATUS, 0xffffffff);
drivers/staging/media/tegra-video/tegra210.c
293
vi_csi_write(chan, portno, TEGRA_VI_CSI_IMAGE_DEF,
drivers/staging/media/tegra-video/tegra210.c
297
vi_csi_write(chan, portno, TEGRA_VI_CSI_IMAGE_DT, data_type);
drivers/staging/media/tegra-video/tegra210.c
298
vi_csi_write(chan, portno, TEGRA_VI_CSI_IMAGE_SIZE_WC, word_count);
drivers/staging/media/tegra-video/tegra210.c
299
vi_csi_write(chan, portno, TEGRA_VI_CSI_IMAGE_SIZE,
drivers/staging/media/tegra-video/tegra210.c
304
static void tegra_channel_vi_soft_reset(struct tegra_vi_channel *chan,
drivers/staging/media/tegra-video/tegra210.c
308
tegra_vi_write(chan, TEGRA_VI_CFG_CG_CTRL, 0);
drivers/staging/media/tegra-video/tegra210.c
313
vi_csi_write(chan, portno, TEGRA_VI_CSI_SW_RESET, 0xf);
drivers/staging/media/tegra-video/tegra210.c
315
vi_csi_write(chan, portno, TEGRA_VI_CSI_SW_RESET, 0x0);
drivers/staging/media/tegra-video/tegra210.c
318
tegra_vi_write(chan, TEGRA_VI_CFG_CG_CTRL, VI_CG_2ND_LEVEL_EN);
drivers/staging/media/tegra-video/tegra210.c
321
static void tegra_channel_capture_error_recover(struct tegra_vi_channel *chan,
drivers/staging/media/tegra-video/tegra210.c
334
val = vi_csi_read(chan, portno, TEGRA_VI_CSI_ERROR_STATUS);
drivers/staging/media/tegra-video/tegra210.c
335
dev_dbg(&chan->video.dev, "TEGRA_VI_CSI_ERROR_STATUS 0x%08x\n", val);
drivers/staging/media/tegra-video/tegra210.c
336
vi_csi_write(chan, portno, TEGRA_VI_CSI_ERROR_STATUS, val);
drivers/staging/media/tegra-video/tegra210.c
338
val = tegra_vi_read(chan, TEGRA_VI_CFG_VI_INCR_SYNCPT_ERROR);
drivers/staging/media/tegra-video/tegra210.c
339
dev_dbg(&chan->video.dev,
drivers/staging/media/tegra-video/tegra210.c
341
tegra_vi_write(chan, TEGRA_VI_CFG_VI_INCR_SYNCPT_ERROR, val);
drivers/staging/media/tegra-video/tegra210.c
344
tegra_channel_vi_soft_reset(chan, portno);
drivers/staging/media/tegra-video/tegra210.c
345
tegra_channel_capture_setup(chan, portno);
drivers/staging/media/tegra-video/tegra210.c
348
subdev = tegra_channel_get_remote_csi_subdev(chan);
drivers/staging/media/tegra-video/tegra210.c
353
dequeue_buf_done(struct tegra_vi_channel *chan)
drivers/staging/media/tegra-video/tegra210.c
357
spin_lock(&chan->done_lock);
drivers/staging/media/tegra-video/tegra210.c
358
if (list_empty(&chan->done)) {
drivers/staging/media/tegra-video/tegra210.c
359
spin_unlock(&chan->done_lock);
drivers/staging/media/tegra-video/tegra210.c
363
buf = list_first_entry(&chan->done,
drivers/staging/media/tegra-video/tegra210.c
366
spin_unlock(&chan->done_lock);
drivers/staging/media/tegra-video/tegra210.c
371
static void release_buffer(struct tegra_vi_channel *chan,
drivers/staging/media/tegra-video/tegra210.c
377
vb->sequence = chan->sequence++;
drivers/staging/media/tegra-video/tegra210.c
383
static void tegra_channel_vi_buffer_setup(struct tegra_vi_channel *chan,
drivers/staging/media/tegra-video/tegra210.c
387
int bytesperline = chan->format.bytesperline;
drivers/staging/media/tegra-video/tegra210.c
388
u32 sizeimage = chan->format.sizeimage;
drivers/staging/media/tegra-video/tegra210.c
391
vi_csi_write(chan, portno, TEGRA_VI_CSI_SURFACE0_OFFSET_MSB,
drivers/staging/media/tegra-video/tegra210.c
393
vi_csi_write(chan, portno, TEGRA_VI_CSI_SURFACE0_OFFSET_LSB,
drivers/staging/media/tegra-video/tegra210.c
395
vi_csi_write(chan, portno, TEGRA_VI_CSI_SURFACE0_STRIDE, bytesperline);
drivers/staging/media/tegra-video/tegra210.c
397
if (chan->fmtinfo->fourcc != V4L2_PIX_FMT_NV16)
drivers/staging/media/tegra-video/tegra210.c
402
vi_csi_write(chan, portno, TEGRA_VI_CSI_SURFACE1_OFFSET_MSB,
drivers/staging/media/tegra-video/tegra210.c
404
vi_csi_write(chan, portno, TEGRA_VI_CSI_SURFACE1_OFFSET_LSB,
drivers/staging/media/tegra-video/tegra210.c
406
vi_csi_write(chan, portno, TEGRA_VI_CSI_SURFACE1_STRIDE, bytesperline);
drivers/staging/media/tegra-video/tegra210.c
409
static int tegra_channel_capture_frame(struct tegra_vi_channel *chan,
drivers/staging/media/tegra-video/tegra210.c
414
u8 *portnos = chan->portnos;
drivers/staging/media/tegra-video/tegra210.c
415
int gang_bpl = (chan->format.width >> 1) * chan->fmtinfo->bpp;
drivers/staging/media/tegra-video/tegra210.c
420
for (i = 0; i < chan->numgangports; i++) {
drivers/staging/media/tegra-video/tegra210.c
427
tegra_channel_vi_buffer_setup(chan, portnos[i], buf_offset,
drivers/staging/media/tegra-video/tegra210.c
445
thresh = host1x_syncpt_incr_max(chan->frame_start_sp[i], 1);
drivers/staging/media/tegra-video/tegra210.c
451
host1x_syncpt_id(chan->frame_start_sp[i]);
drivers/staging/media/tegra-video/tegra210.c
452
tegra_vi_write(chan, TEGRA_VI_CFG_VI_INCR_SYNCPT, value);
drivers/staging/media/tegra-video/tegra210.c
455
thresh = host1x_syncpt_incr_max(chan->mw_ack_sp[i], 1);
drivers/staging/media/tegra-video/tegra210.c
461
host1x_syncpt_id(chan->mw_ack_sp[i]);
drivers/staging/media/tegra-video/tegra210.c
462
tegra_vi_write(chan, TEGRA_VI_CFG_VI_INCR_SYNCPT, value);
drivers/staging/media/tegra-video/tegra210.c
466
for (i = 0; i < chan->numgangports; i++)
drivers/staging/media/tegra-video/tegra210.c
467
vi_csi_write(chan, portnos[i], TEGRA_VI_CSI_SINGLE_SHOT,
drivers/staging/media/tegra-video/tegra210.c
470
for (i = 0; i < chan->numgangports; i++) {
drivers/staging/media/tegra-video/tegra210.c
474
err = host1x_syncpt_wait(chan->frame_start_sp[i], fs_thresh[i],
drivers/staging/media/tegra-video/tegra210.c
479
host1x_syncpt_incr(chan->frame_start_sp[i]);
drivers/staging/media/tegra-video/tegra210.c
480
spin_lock(&chan->sp_incr_lock[i]);
drivers/staging/media/tegra-video/tegra210.c
481
host1x_syncpt_incr(chan->mw_ack_sp[i]);
drivers/staging/media/tegra-video/tegra210.c
482
spin_unlock(&chan->sp_incr_lock[i]);
drivers/staging/media/tegra-video/tegra210.c
484
tegra_channel_capture_error_recover(chan, portnos[i]);
drivers/staging/media/tegra-video/tegra210.c
489
dev_err_ratelimited(&chan->video.dev,
drivers/staging/media/tegra-video/tegra210.c
491
release_buffer(chan, buf, VB2_BUF_STATE_ERROR);
drivers/staging/media/tegra-video/tegra210.c
496
spin_lock(&chan->done_lock);
drivers/staging/media/tegra-video/tegra210.c
497
list_add_tail(&buf->queue, &chan->done);
drivers/staging/media/tegra-video/tegra210.c
498
spin_unlock(&chan->done_lock);
drivers/staging/media/tegra-video/tegra210.c
501
wake_up_interruptible(&chan->done_wait);
drivers/staging/media/tegra-video/tegra210.c
506
static void tegra_channel_capture_done(struct tegra_vi_channel *chan,
drivers/staging/media/tegra-video/tegra210.c
514
for (i = 0; i < chan->numgangports; i++) {
drivers/staging/media/tegra-video/tegra210.c
518
ret = host1x_syncpt_wait(chan->mw_ack_sp[i],
drivers/staging/media/tegra-video/tegra210.c
525
spin_lock(&chan->sp_incr_lock[i]);
drivers/staging/media/tegra-video/tegra210.c
526
host1x_syncpt_incr(chan->mw_ack_sp[i]);
drivers/staging/media/tegra-video/tegra210.c
527
spin_unlock(&chan->sp_incr_lock[i]);
drivers/staging/media/tegra-video/tegra210.c
532
dev_err_ratelimited(&chan->video.dev,
drivers/staging/media/tegra-video/tegra210.c
534
release_buffer(chan, buf, state);
drivers/staging/media/tegra-video/tegra210.c
539
struct tegra_vi_channel *chan = data;
drivers/staging/media/tegra-video/tegra210.c
550
wait_event_interruptible(chan->start_wait,
drivers/staging/media/tegra-video/tegra210.c
552
(!list_empty(&chan->capture) &&
drivers/staging/media/tegra-video/tegra210.c
559
spin_lock(&chan->start_lock);
drivers/staging/media/tegra-video/tegra210.c
560
if (list_empty(&chan->capture)) {
drivers/staging/media/tegra-video/tegra210.c
561
spin_unlock(&chan->start_lock);
drivers/staging/media/tegra-video/tegra210.c
565
buf = list_first_entry(&chan->capture,
drivers/staging/media/tegra-video/tegra210.c
568
spin_unlock(&chan->start_lock);
drivers/staging/media/tegra-video/tegra210.c
570
err = tegra_channel_capture_frame(chan, buf);
drivers/staging/media/tegra-video/tegra210.c
576
if (retries++ > chan->syncpt_timeout_retry)
drivers/staging/media/tegra-video/tegra210.c
577
vb2_queue_error(&chan->queue);
drivers/staging/media/tegra-video/tegra210.c
587
struct tegra_vi_channel *chan = data;
drivers/staging/media/tegra-video/tegra210.c
591
wait_event_interruptible(chan->done_wait,
drivers/staging/media/tegra-video/tegra210.c
592
!list_empty(&chan->done) ||
drivers/staging/media/tegra-video/tegra210.c
596
buf = dequeue_buf_done(chan);
drivers/staging/media/tegra-video/tegra210.c
598
tegra_channel_capture_done(chan, buf);
drivers/staging/media/tegra-video/tegra210.c
599
buf = dequeue_buf_done(chan);
drivers/staging/media/tegra-video/tegra210.c
611
struct tegra_vi_channel *chan = vb2_get_drv_priv(vq);
drivers/staging/media/tegra-video/tegra210.c
612
struct media_pipeline *pipe = &chan->video.pipe;
drivers/staging/media/tegra-video/tegra210.c
614
u8 *portnos = chan->portnos;
drivers/staging/media/tegra-video/tegra210.c
617
tegra_vi_write(chan, TEGRA_VI_CFG_CG_CTRL, VI_CG_2ND_LEVEL_EN);
drivers/staging/media/tegra-video/tegra210.c
620
val = tegra_vi_read(chan, TEGRA_VI_CFG_VI_INCR_SYNCPT_ERROR);
drivers/staging/media/tegra-video/tegra210.c
621
tegra_vi_write(chan, TEGRA_VI_CFG_VI_INCR_SYNCPT_ERROR, val);
drivers/staging/media/tegra-video/tegra210.c
630
tegra_vi_write(chan, TEGRA_VI_CFG_VI_INCR_SYNCPT_CNTRL,
drivers/staging/media/tegra-video/tegra210.c
634
ret = video_device_pipeline_start(&chan->video, pipe);
drivers/staging/media/tegra-video/tegra210.c
639
for (i = 0; i < chan->numgangports; i++) {
drivers/staging/media/tegra-video/tegra210.c
640
val = vi_csi_read(chan, portnos[i], TEGRA_VI_CSI_ERROR_STATUS);
drivers/staging/media/tegra-video/tegra210.c
641
vi_csi_write(chan, portnos[i], TEGRA_VI_CSI_ERROR_STATUS, val);
drivers/staging/media/tegra-video/tegra210.c
643
tegra_channel_capture_setup(chan, portnos[i]);
drivers/staging/media/tegra-video/tegra210.c
646
ret = tegra_channel_set_stream(chan, true);
drivers/staging/media/tegra-video/tegra210.c
650
chan->sequence = 0;
drivers/staging/media/tegra-video/tegra210.c
653
chan->kthread_start_capture = kthread_run(chan_capture_kthread_start,
drivers/staging/media/tegra-video/tegra210.c
654
chan, "%s:0",
drivers/staging/media/tegra-video/tegra210.c
655
chan->video.name);
drivers/staging/media/tegra-video/tegra210.c
656
if (IS_ERR(chan->kthread_start_capture)) {
drivers/staging/media/tegra-video/tegra210.c
657
ret = PTR_ERR(chan->kthread_start_capture);
drivers/staging/media/tegra-video/tegra210.c
658
chan->kthread_start_capture = NULL;
drivers/staging/media/tegra-video/tegra210.c
659
dev_err(&chan->video.dev,
drivers/staging/media/tegra-video/tegra210.c
664
chan->kthread_finish_capture = kthread_run(chan_capture_kthread_finish,
drivers/staging/media/tegra-video/tegra210.c
665
chan, "%s:1",
drivers/staging/media/tegra-video/tegra210.c
666
chan->video.name);
drivers/staging/media/tegra-video/tegra210.c
667
if (IS_ERR(chan->kthread_finish_capture)) {
drivers/staging/media/tegra-video/tegra210.c
668
ret = PTR_ERR(chan->kthread_finish_capture);
drivers/staging/media/tegra-video/tegra210.c
669
chan->kthread_finish_capture = NULL;
drivers/staging/media/tegra-video/tegra210.c
670
dev_err(&chan->video.dev,
drivers/staging/media/tegra-video/tegra210.c
678
kthread_stop(chan->kthread_start_capture);
drivers/staging/media/tegra-video/tegra210.c
680
tegra_channel_set_stream(chan, false);
drivers/staging/media/tegra-video/tegra210.c
682
video_device_pipeline_stop(&chan->video);
drivers/staging/media/tegra-video/tegra210.c
684
tegra_channel_release_buffers(chan, VB2_BUF_STATE_QUEUED);
drivers/staging/media/tegra-video/tegra210.c
690
struct tegra_vi_channel *chan = vb2_get_drv_priv(vq);
drivers/staging/media/tegra-video/tegra210.c
692
if (chan->kthread_start_capture) {
drivers/staging/media/tegra-video/tegra210.c
693
kthread_stop(chan->kthread_start_capture);
drivers/staging/media/tegra-video/tegra210.c
694
chan->kthread_start_capture = NULL;
drivers/staging/media/tegra-video/tegra210.c
697
if (chan->kthread_finish_capture) {
drivers/staging/media/tegra-video/tegra210.c
698
kthread_stop(chan->kthread_finish_capture);
drivers/staging/media/tegra-video/tegra210.c
699
chan->kthread_finish_capture = NULL;
drivers/staging/media/tegra-video/tegra210.c
702
tegra_channel_release_buffers(chan, VB2_BUF_STATE_ERROR);
drivers/staging/media/tegra-video/tegra210.c
703
tegra_channel_set_stream(chan, false);
drivers/staging/media/tegra-video/tegra210.c
704
video_device_pipeline_stop(&chan->video);
drivers/staging/media/tegra-video/vi.c
1001
ret = v4l2_ctrl_handler_setup(&chan->ctrl_handler);
drivers/staging/media/tegra-video/vi.c
1003
dev_err(chan->vi->dev,
drivers/staging/media/tegra-video/vi.c
1012
static void vi_tpg_fmts_bitmap_init(struct tegra_vi_channel *chan)
drivers/staging/media/tegra-video/vi.c
1016
bitmap_zero(chan->tpg_fmts_bitmap, MAX_FORMAT_NUM);
drivers/staging/media/tegra-video/vi.c
1018
index = tegra_get_format_idx_by_code(chan->vi,
drivers/staging/media/tegra-video/vi.c
1020
bitmap_set(chan->tpg_fmts_bitmap, index, 1);
drivers/staging/media/tegra-video/vi.c
1022
index = tegra_get_format_idx_by_code(chan->vi,
drivers/staging/media/tegra-video/vi.c
1025
bitmap_set(chan->tpg_fmts_bitmap, index, 1);
drivers/staging/media/tegra-video/vi.c
1028
static int vi_fmts_bitmap_init(struct tegra_vi_channel *chan)
drivers/staging/media/tegra-video/vi.c
1036
bitmap_zero(chan->fmts_bitmap, MAX_FORMAT_NUM);
drivers/staging/media/tegra-video/vi.c
1043
subdev = tegra_channel_get_remote_source_subdev(chan);
drivers/staging/media/tegra-video/vi.c
1050
index = tegra_get_format_idx_by_code(chan->vi, code.code, 0);
drivers/staging/media/tegra-video/vi.c
1052
bitmap_set(chan->fmts_bitmap, index, 1);
drivers/staging/media/tegra-video/vi.c
1056
index = tegra_get_format_idx_by_code(chan->vi,
drivers/staging/media/tegra-video/vi.c
1069
match_code = chan->vi->soc->default_video_format->code;
drivers/staging/media/tegra-video/vi.c
1070
index = tegra_get_format_idx_by_code(chan->vi, match_code, 0);
drivers/staging/media/tegra-video/vi.c
1074
bitmap_set(chan->fmts_bitmap, index, 1);
drivers/staging/media/tegra-video/vi.c
1078
tegra_channel_set_subdev_active_fmt(chan);
drivers/staging/media/tegra-video/vi.c
1083
static void tegra_channel_cleanup(struct tegra_vi_channel *chan)
drivers/staging/media/tegra-video/vi.c
1085
v4l2_ctrl_handler_free(&chan->ctrl_handler);
drivers/staging/media/tegra-video/vi.c
1086
media_entity_cleanup(&chan->video.entity);
drivers/staging/media/tegra-video/vi.c
1087
chan->vi->ops->channel_host1x_syncpt_free(chan);
drivers/staging/media/tegra-video/vi.c
1088
mutex_destroy(&chan->video_lock);
drivers/staging/media/tegra-video/vi.c
1093
struct tegra_vi_channel *chan, *tmp;
drivers/staging/media/tegra-video/vi.c
1098
list_for_each_entry_safe(chan, tmp, &vi->vi_chans, list) {
drivers/staging/media/tegra-video/vi.c
1099
tegra_channel_cleanup(chan);
drivers/staging/media/tegra-video/vi.c
1100
list_del(&chan->list);
drivers/staging/media/tegra-video/vi.c
1101
kfree(chan);
drivers/staging/media/tegra-video/vi.c
1105
static int tegra_channel_init(struct tegra_vi_channel *chan)
drivers/staging/media/tegra-video/vi.c
1107
struct tegra_vi *vi = chan->vi;
drivers/staging/media/tegra-video/vi.c
1111
mutex_init(&chan->video_lock);
drivers/staging/media/tegra-video/vi.c
1112
INIT_LIST_HEAD(&chan->capture);
drivers/staging/media/tegra-video/vi.c
1113
INIT_LIST_HEAD(&chan->done);
drivers/staging/media/tegra-video/vi.c
1114
spin_lock_init(&chan->start_lock);
drivers/staging/media/tegra-video/vi.c
1115
spin_lock_init(&chan->done_lock);
drivers/staging/media/tegra-video/vi.c
1116
init_waitqueue_head(&chan->start_wait);
drivers/staging/media/tegra-video/vi.c
1117
init_waitqueue_head(&chan->done_wait);
drivers/staging/media/tegra-video/vi.c
112
struct tegra_vi_channel *chan = vb2_get_drv_priv(vq);
drivers/staging/media/tegra-video/vi.c
1120
chan->fmtinfo = chan->vi->soc->default_video_format;
drivers/staging/media/tegra-video/vi.c
1121
chan->format.pixelformat = chan->fmtinfo->fourcc;
drivers/staging/media/tegra-video/vi.c
1122
chan->format.colorspace = V4L2_COLORSPACE_SRGB;
drivers/staging/media/tegra-video/vi.c
1123
chan->format.field = V4L2_FIELD_NONE;
drivers/staging/media/tegra-video/vi.c
1124
chan->format.width = TEGRA_DEF_WIDTH;
drivers/staging/media/tegra-video/vi.c
1125
chan->format.height = TEGRA_DEF_HEIGHT;
drivers/staging/media/tegra-video/vi.c
1126
chan->format.bytesperline = TEGRA_DEF_WIDTH * chan->fmtinfo->bpp;
drivers/staging/media/tegra-video/vi.c
1127
chan->format.sizeimage = chan->format.bytesperline * TEGRA_DEF_HEIGHT;
drivers/staging/media/tegra-video/vi.c
1128
vi->ops->vi_fmt_align(&chan->format, chan->fmtinfo->bpp);
drivers/staging/media/tegra-video/vi.c
1130
ret = vi->ops->channel_host1x_syncpt_init(chan);
drivers/staging/media/tegra-video/vi.c
1135
chan->pad.flags = MEDIA_PAD_FL_SINK;
drivers/staging/media/tegra-video/vi.c
1136
ret = media_entity_pads_init(&chan->video.entity, 1, &chan->pad);
drivers/staging/media/tegra-video/vi.c
1143
ret = v4l2_ctrl_handler_init(&chan->ctrl_handler, MAX_CID_CONTROLS);
drivers/staging/media/tegra-video/vi.c
1144
if (chan->ctrl_handler.error) {
drivers/staging/media/tegra-video/vi.c
115
return sizes[0] < chan->format.sizeimage ? -EINVAL : 0;
drivers/staging/media/tegra-video/vi.c
1151
chan->video.fops = &tegra_channel_fops;
drivers/staging/media/tegra-video/vi.c
1152
chan->video.v4l2_dev = &vid->v4l2_dev;
drivers/staging/media/tegra-video/vi.c
1153
chan->video.release = video_device_release_empty;
drivers/staging/media/tegra-video/vi.c
1154
chan->video.queue = &chan->queue;
drivers/staging/media/tegra-video/vi.c
1155
snprintf(chan->video.name, sizeof(chan->video.name), "%s-%s-%u",
drivers/staging/media/tegra-video/vi.c
1156
dev_name(vi->dev), "output", chan->portnos[0]);
drivers/staging/media/tegra-video/vi.c
1157
chan->video.vfl_type = VFL_TYPE_VIDEO;
drivers/staging/media/tegra-video/vi.c
1158
chan->video.vfl_dir = VFL_DIR_RX;
drivers/staging/media/tegra-video/vi.c
1159
chan->video.ioctl_ops = &tegra_channel_ioctl_ops;
drivers/staging/media/tegra-video/vi.c
1160
chan->video.ctrl_handler = &chan->ctrl_handler;
drivers/staging/media/tegra-video/vi.c
1161
chan->video.lock = &chan->video_lock;
drivers/staging/media/tegra-video/vi.c
1162
chan->video.device_caps = V4L2_CAP_VIDEO_CAPTURE |
drivers/staging/media/tegra-video/vi.c
1165
video_set_drvdata(&chan->video, chan);
drivers/staging/media/tegra-video/vi.c
1167
chan->queue.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
drivers/staging/media/tegra-video/vi.c
1168
chan->queue.io_modes = VB2_MMAP | VB2_DMABUF | VB2_READ;
drivers/staging/media/tegra-video/vi.c
1169
chan->queue.lock = &chan->video_lock;
drivers/staging/media/tegra-video/vi.c
1170
chan->queue.drv_priv = chan;
drivers/staging/media/tegra-video/vi.c
1171
chan->queue.buf_struct_size = sizeof(struct tegra_channel_buffer);
drivers/staging/media/tegra-video/vi.c
1172
chan->queue.ops = &tegra_channel_queue_qops;
drivers/staging/media/tegra-video/vi.c
1173
chan->queue.mem_ops = &vb2_dma_contig_memops;
drivers/staging/media/tegra-video/vi.c
1174
chan->queue.timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC;
drivers/staging/media/tegra-video/vi.c
1175
chan->queue.min_queued_buffers = 2;
drivers/staging/media/tegra-video/vi.c
1176
chan->queue.dev = vi->dev;
drivers/staging/media/tegra-video/vi.c
1177
ret = vb2_queue_init(&chan->queue);
drivers/staging/media/tegra-video/vi.c
118
sizes[0] = chan->format.sizeimage;
drivers/staging/media/tegra-video/vi.c
1184
v4l2_async_nf_init(&chan->notifier, &vid->v4l2_dev);
drivers/staging/media/tegra-video/vi.c
1189
v4l2_ctrl_handler_free(&chan->ctrl_handler);
drivers/staging/media/tegra-video/vi.c
119
alloc_devs[0] = chan->vi->dev;
drivers/staging/media/tegra-video/vi.c
1191
media_entity_cleanup(&chan->video.entity);
drivers/staging/media/tegra-video/vi.c
1193
vi->ops->channel_host1x_syncpt_free(chan);
drivers/staging/media/tegra-video/vi.c
1200
struct tegra_vi_channel *chan;
drivers/staging/media/tegra-video/vi.c
1209
chan = kzalloc_obj(*chan);
drivers/staging/media/tegra-video/vi.c
121
if (chan->vi->ops->channel_queue_setup)
drivers/staging/media/tegra-video/vi.c
1210
if (!chan)
drivers/staging/media/tegra-video/vi.c
1213
chan->vi = vi;
drivers/staging/media/tegra-video/vi.c
1214
chan->portnos[0] = port_num;
drivers/staging/media/tegra-video/vi.c
122
chan->vi->ops->channel_queue_setup(chan);
drivers/staging/media/tegra-video/vi.c
1220
chan->totalports = 1;
drivers/staging/media/tegra-video/vi.c
1222
chan->totalports = lanes / CSI_LANES_PER_BRICK;
drivers/staging/media/tegra-video/vi.c
1223
chan->numgangports = chan->totalports;
drivers/staging/media/tegra-video/vi.c
1225
for (i = 1; i < chan->totalports; i++)
drivers/staging/media/tegra-video/vi.c
1226
chan->portnos[i] = chan->portnos[0] + i * CSI_PORTS_PER_BRICK;
drivers/staging/media/tegra-video/vi.c
1228
chan->of_node = node;
drivers/staging/media/tegra-video/vi.c
1229
list_add_tail(&chan->list, &vi->vi_chans);
drivers/staging/media/tegra-video/vi.c
129
struct tegra_vi_channel *chan = vb2_get_drv_priv(vb->vb2_queue);
drivers/staging/media/tegra-video/vi.c
1312
struct tegra_vi_channel *chan;
drivers/staging/media/tegra-video/vi.c
1315
list_for_each_entry(chan, &vi->vi_chans, list) {
drivers/staging/media/tegra-video/vi.c
1316
ret = tegra_channel_init(chan);
drivers/staging/media/tegra-video/vi.c
132
unsigned long size = chan->format.sizeimage;
drivers/staging/media/tegra-video/vi.c
1320
chan->portnos[0], ret);
drivers/staging/media/tegra-video/vi.c
1328
list_for_each_entry_continue_reverse(chan, &vi->vi_chans, list)
drivers/staging/media/tegra-video/vi.c
1329
tegra_channel_cleanup(chan);
drivers/staging/media/tegra-video/vi.c
1339
struct tegra_vi_channel *chan;
drivers/staging/media/tegra-video/vi.c
1341
list_for_each_entry(chan, &vi->vi_chans, list)
drivers/staging/media/tegra-video/vi.c
1342
vb2_video_unregister_device(&chan->video);
drivers/staging/media/tegra-video/vi.c
135
v4l2_err(chan->video.v4l2_dev,
drivers/staging/media/tegra-video/vi.c
142
buf->chan = chan;
drivers/staging/media/tegra-video/vi.c
1465
static int tegra_vi_graph_build(struct tegra_vi_channel *chan,
drivers/staging/media/tegra-video/vi.c
1468
struct tegra_vi *vi = chan->vi;
drivers/staging/media/tegra-video/vi.c
150
struct tegra_vi_channel *chan = vb2_get_drv_priv(vb->vb2_queue);
drivers/staging/media/tegra-video/vi.c
1507
remote = &chan->video.entity;
drivers/staging/media/tegra-video/vi.c
1508
remote_pad = &chan->pad;
drivers/staging/media/tegra-video/vi.c
1524
ent = tegra_vi_graph_find_entity(&chan->notifier.done_list,
drivers/staging/media/tegra-video/vi.c
155
spin_lock(&chan->start_lock);
drivers/staging/media/tegra-video/vi.c
156
list_add_tail(&buf->queue, &chan->capture);
drivers/staging/media/tegra-video/vi.c
157
spin_unlock(&chan->start_lock);
drivers/staging/media/tegra-video/vi.c
1573
struct tegra_vi_channel *chan;
drivers/staging/media/tegra-video/vi.c
1577
chan = container_of(notifier, struct tegra_vi_channel, notifier);
drivers/staging/media/tegra-video/vi.c
1578
vi = chan->vi;
drivers/staging/media/tegra-video/vi.c
1593
ret = video_register_device(&chan->video, VFL_TYPE_VIDEO, -1);
drivers/staging/media/tegra-video/vi.c
160
wake_up_interruptible(&chan->start_wait);
drivers/staging/media/tegra-video/vi.c
1601
list_for_each_entry(asd, &chan->notifier.done_list, asc_entry) {
drivers/staging/media/tegra-video/vi.c
1603
ret = tegra_vi_graph_build(chan, entity);
drivers/staging/media/tegra-video/vi.c
1608
ret = tegra_channel_setup_ctrl_handler(chan);
drivers/staging/media/tegra-video/vi.c
1615
ret = vi_fmts_bitmap_init(chan);
drivers/staging/media/tegra-video/vi.c
1622
subdev = tegra_channel_get_remote_bridge_subdev(chan);
drivers/staging/media/tegra-video/vi.c
1630
v4l2_set_subdev_hostdata(subdev, chan);
drivers/staging/media/tegra-video/vi.c
1632
subdev = tegra_channel_get_remote_source_subdev(chan);
drivers/staging/media/tegra-video/vi.c
1633
v4l2_set_subdev_hostdata(subdev, chan);
drivers/staging/media/tegra-video/vi.c
1638
vb2_video_unregister_device(&chan->video);
drivers/staging/media/tegra-video/vi.c
164
tegra_channel_get_remote_bridge_subdev(struct tegra_vi_channel *chan)
drivers/staging/media/tegra-video/vi.c
1648
struct tegra_vi_channel *chan;
drivers/staging/media/tegra-video/vi.c
1650
chan = container_of(notifier, struct tegra_vi_channel, notifier);
drivers/staging/media/tegra-video/vi.c
1651
vi = chan->vi;
drivers/staging/media/tegra-video/vi.c
1657
entity = tegra_vi_graph_find_entity(&chan->notifier.waiting_list,
drivers/staging/media/tegra-video/vi.c
168
pad = media_pad_remote_pad_first(&chan->pad);
drivers/staging/media/tegra-video/vi.c
1682
static int tegra_vi_graph_parse_one(struct tegra_vi_channel *chan,
drivers/staging/media/tegra-video/vi.c
1685
struct tegra_vi *vi = chan->vi;
drivers/staging/media/tegra-video/vi.c
1707
tegra_vi_graph_find_entity(&chan->notifier.waiting_list,
drivers/staging/media/tegra-video/vi.c
1713
tvge = v4l2_async_nf_add_fwnode(&chan->notifier, remote,
drivers/staging/media/tegra-video/vi.c
1723
ret = tegra_vi_graph_parse_one(chan, remote);
drivers/staging/media/tegra-video/vi.c
1736
v4l2_async_nf_cleanup(&chan->notifier);
drivers/staging/media/tegra-video/vi.c
1743
struct tegra_vi_channel *chan;
drivers/staging/media/tegra-video/vi.c
1756
list_for_each_entry(chan, &vi->vi_chans, list) {
drivers/staging/media/tegra-video/vi.c
1760
chan->portnos[0], 0, 0);
drivers/staging/media/tegra-video/vi.c
1767
ret = tegra_vi_graph_parse_one(chan, remote);
drivers/staging/media/tegra-video/vi.c
1769
if (ret < 0 || list_empty(&chan->notifier.waiting_list))
drivers/staging/media/tegra-video/vi.c
1772
chan->notifier.ops = &tegra_vi_async_ops;
drivers/staging/media/tegra-video/vi.c
1773
ret = v4l2_async_nf_register(&chan->notifier);
drivers/staging/media/tegra-video/vi.c
1777
chan->portnos[0], ret);
drivers/staging/media/tegra-video/vi.c
1778
v4l2_async_nf_cleanup(&chan->notifier);
drivers/staging/media/tegra-video/vi.c
1787
struct tegra_vi_channel *chan;
drivers/staging/media/tegra-video/vi.c
1789
list_for_each_entry(chan, &vi->vi_chans, list) {
drivers/staging/media/tegra-video/vi.c
179
tegra_channel_get_remote_source_subdev(struct tegra_vi_channel *chan)
drivers/staging/media/tegra-video/vi.c
1790
vb2_video_unregister_device(&chan->video);
drivers/staging/media/tegra-video/vi.c
1791
v4l2_async_nf_unregister(&chan->notifier);
drivers/staging/media/tegra-video/vi.c
1792
v4l2_async_nf_cleanup(&chan->notifier);
drivers/staging/media/tegra-video/vi.c
1800
struct tegra_vi_channel *chan, *tmp;
drivers/staging/media/tegra-video/vi.c
1831
list_for_each_entry(chan, &vi->vi_chans, list)
drivers/staging/media/tegra-video/vi.c
1832
tegra_channel_cleanup(chan);
drivers/staging/media/tegra-video/vi.c
1834
list_for_each_entry_safe(chan, tmp, &vi->vi_chans, list) {
drivers/staging/media/tegra-video/vi.c
1835
list_del(&chan->list);
drivers/staging/media/tegra-video/vi.c
1836
kfree(chan);
drivers/staging/media/tegra-video/vi.c
185
subdev = tegra_channel_get_remote_bridge_subdev(chan);
drivers/staging/media/tegra-video/vi.c
202
static int tegra_channel_enable_stream(struct tegra_vi_channel *chan)
drivers/staging/media/tegra-video/vi.c
207
subdev = tegra_channel_get_remote_bridge_subdev(chan);
drivers/staging/media/tegra-video/vi.c
215
static int tegra_channel_disable_stream(struct tegra_vi_channel *chan)
drivers/staging/media/tegra-video/vi.c
220
subdev = tegra_channel_get_remote_bridge_subdev(chan);
drivers/staging/media/tegra-video/vi.c
228
int tegra_channel_set_stream(struct tegra_vi_channel *chan, bool on)
drivers/staging/media/tegra-video/vi.c
233
ret = tegra_channel_enable_stream(chan);
drivers/staging/media/tegra-video/vi.c
235
ret = tegra_channel_disable_stream(chan);
drivers/staging/media/tegra-video/vi.c
240
void tegra_channel_release_buffers(struct tegra_vi_channel *chan,
drivers/staging/media/tegra-video/vi.c
245
spin_lock(&chan->start_lock);
drivers/staging/media/tegra-video/vi.c
246
list_for_each_entry_safe(buf, nbuf, &chan->capture, queue) {
drivers/staging/media/tegra-video/vi.c
250
spin_unlock(&chan->start_lock);
drivers/staging/media/tegra-video/vi.c
252
spin_lock(&chan->done_lock);
drivers/staging/media/tegra-video/vi.c
253
list_for_each_entry_safe(buf, nbuf, &chan->done, queue) {
drivers/staging/media/tegra-video/vi.c
257
spin_unlock(&chan->done_lock);
drivers/staging/media/tegra-video/vi.c
262
struct tegra_vi_channel *chan = vb2_get_drv_priv(vq);
drivers/staging/media/tegra-video/vi.c
265
ret = pm_runtime_resume_and_get(chan->vi->dev);
drivers/staging/media/tegra-video/vi.c
267
dev_err(chan->vi->dev, "failed to get runtime PM: %d\n", ret);
drivers/staging/media/tegra-video/vi.c
271
ret = chan->vi->ops->vi_start_streaming(vq, count);
drivers/staging/media/tegra-video/vi.c
273
pm_runtime_put(chan->vi->dev);
drivers/staging/media/tegra-video/vi.c
280
struct tegra_vi_channel *chan = vb2_get_drv_priv(vq);
drivers/staging/media/tegra-video/vi.c
282
chan->vi->ops->vi_stop_streaming(vq);
drivers/staging/media/tegra-video/vi.c
283
pm_runtime_put(chan->vi->dev);
drivers/staging/media/tegra-video/vi.c
300
struct tegra_vi_channel *chan = video_drvdata(file);
drivers/staging/media/tegra-video/vi.c
303
strscpy(cap->card, chan->video.name, sizeof(cap->card));
drivers/staging/media/tegra-video/vi.c
305
dev_name(chan->vi->dev));
drivers/staging/media/tegra-video/vi.c
313
struct tegra_vi_channel *chan = video_drvdata(file);
drivers/staging/media/tegra-video/vi.c
316
subdev = tegra_channel_get_remote_source_subdev(chan);
drivers/staging/media/tegra-video/vi.c
317
return v4l2_g_parm_cap(&chan->video, subdev, a);
drivers/staging/media/tegra-video/vi.c
323
struct tegra_vi_channel *chan = video_drvdata(file);
drivers/staging/media/tegra-video/vi.c
326
subdev = tegra_channel_get_remote_source_subdev(chan);
drivers/staging/media/tegra-video/vi.c
327
return v4l2_s_parm_cap(&chan->video, subdev, a);
drivers/staging/media/tegra-video/vi.c
334
struct tegra_vi_channel *chan = video_drvdata(file);
drivers/staging/media/tegra-video/vi.c
342
fmtinfo = tegra_get_format_by_fourcc(chan->vi, sizes->pixel_format);
drivers/staging/media/tegra-video/vi.c
348
subdev = tegra_channel_get_remote_source_subdev(chan);
drivers/staging/media/tegra-video/vi.c
364
struct tegra_vi_channel *chan = video_drvdata(file);
drivers/staging/media/tegra-video/vi.c
374
fmtinfo = tegra_get_format_by_fourcc(chan->vi, ivals->pixel_format);
drivers/staging/media/tegra-video/vi.c
380
subdev = tegra_channel_get_remote_source_subdev(chan);
drivers/staging/media/tegra-video/vi.c
395
struct tegra_vi_channel *chan = video_drvdata(file);
drivers/staging/media/tegra-video/vi.c
397
unsigned long *fmts_bitmap = chan->tpg_fmts_bitmap;
drivers/staging/media/tegra-video/vi.c
400
fmts_bitmap = chan->fmts_bitmap;
drivers/staging/media/tegra-video/vi.c
408
f->pixelformat = tegra_get_format_fourcc_by_idx(chan->vi, index - 1);
drivers/staging/media/tegra-video/vi.c
416
struct tegra_vi_channel *chan = video_drvdata(file);
drivers/staging/media/tegra-video/vi.c
418
format->fmt.pix = chan->format;
drivers/staging/media/tegra-video/vi.c
423
static int __tegra_channel_try_format(struct tegra_vi_channel *chan,
drivers/staging/media/tegra-video/vi.c
443
subdev = tegra_channel_get_remote_source_subdev(chan);
drivers/staging/media/tegra-video/vi.c
459
fmtinfo = tegra_get_format_by_fourcc(chan->vi, pix->pixelformat);
drivers/staging/media/tegra-video/vi.c
461
pix->pixelformat = chan->format.pixelformat;
drivers/staging/media/tegra-video/vi.c
462
pix->colorspace = chan->format.colorspace;
drivers/staging/media/tegra-video/vi.c
463
fmtinfo = tegra_get_format_by_fourcc(chan->vi,
drivers/staging/media/tegra-video/vi.c
497
chan->vi->ops->vi_fmt_align(pix, fmtinfo->bpp);
drivers/staging/media/tegra-video/vi.c
508
struct tegra_vi_channel *chan = video_drvdata(file);
drivers/staging/media/tegra-video/vi.c
510
return __tegra_channel_try_format(chan, &format->fmt.pix);
drivers/staging/media/tegra-video/vi.c
513
static void tegra_channel_update_gangports(struct tegra_vi_channel *chan)
drivers/staging/media/tegra-video/vi.c
515
if (chan->format.width <= 1920)
drivers/staging/media/tegra-video/vi.c
516
chan->numgangports = 1;
drivers/staging/media/tegra-video/vi.c
518
chan->numgangports = chan->totalports;
drivers/staging/media/tegra-video/vi.c
524
struct tegra_vi_channel *chan = video_drvdata(file);
drivers/staging/media/tegra-video/vi.c
533
if (vb2_is_busy(&chan->queue))
drivers/staging/media/tegra-video/vi.c
537
ret = __tegra_channel_try_format(chan, pix);
drivers/staging/media/tegra-video/vi.c
541
fmtinfo = tegra_get_format_by_fourcc(chan->vi, pix->pixelformat);
drivers/staging/media/tegra-video/vi.c
545
subdev = tegra_channel_get_remote_source_subdev(chan);
drivers/staging/media/tegra-video/vi.c
551
chan->vi->ops->vi_fmt_align(pix, fmtinfo->bpp);
drivers/staging/media/tegra-video/vi.c
553
chan->format = *pix;
drivers/staging/media/tegra-video/vi.c
554
chan->fmtinfo = fmtinfo;
drivers/staging/media/tegra-video/vi.c
555
tegra_channel_update_gangports(chan);
drivers/staging/media/tegra-video/vi.c
560
static int tegra_channel_set_subdev_active_fmt(struct tegra_vi_channel *chan)
drivers/staging/media/tegra-video/vi.c
572
subdev = tegra_channel_get_remote_source_subdev(chan);
drivers/staging/media/tegra-video/vi.c
577
index = tegra_get_format_idx_by_code(chan->vi, fmt.format.code, 0);
drivers/staging/media/tegra-video/vi.c
581
chan->fmtinfo = &chan->vi->soc->video_formats[index];
drivers/staging/media/tegra-video/vi.c
582
v4l2_fill_pix_format(&chan->format, &fmt.format);
drivers/staging/media/tegra-video/vi.c
583
chan->format.pixelformat = chan->fmtinfo->fourcc;
drivers/staging/media/tegra-video/vi.c
584
chan->format.bytesperline = chan->format.width * chan->fmtinfo->bpp;
drivers/staging/media/tegra-video/vi.c
585
chan->format.sizeimage = chan->format.bytesperline *
drivers/staging/media/tegra-video/vi.c
586
chan->format.height;
drivers/staging/media/tegra-video/vi.c
587
chan->vi->ops->vi_fmt_align(&chan->format, chan->fmtinfo->bpp);
drivers/staging/media/tegra-video/vi.c
588
tegra_channel_update_gangports(chan);
drivers/staging/media/tegra-video/vi.c
608
struct tegra_vi_channel *chan = video_drvdata(file);
drivers/staging/media/tegra-video/vi.c
619
subdev = tegra_channel_get_remote_source_subdev(chan);
drivers/staging/media/tegra-video/vi.c
650
struct tegra_vi_channel *chan = video_drvdata(file);
drivers/staging/media/tegra-video/vi.c
660
subdev = tegra_channel_get_remote_source_subdev(chan);
drivers/staging/media/tegra-video/vi.c
667
if (vb2_is_busy(&chan->queue))
drivers/staging/media/tegra-video/vi.c
678
return tegra_channel_set_subdev_active_fmt(chan);
drivers/staging/media/tegra-video/vi.c
687
struct tegra_vi_channel *chan = video_drvdata(file);
drivers/staging/media/tegra-video/vi.c
690
subdev = tegra_channel_get_remote_source_subdev(chan);
drivers/staging/media/tegra-video/vi.c
700
struct tegra_vi_channel *chan = video_drvdata(file);
drivers/staging/media/tegra-video/vi.c
703
subdev = tegra_channel_get_remote_source_subdev(chan);
drivers/staging/media/tegra-video/vi.c
713
struct tegra_vi_channel *chan = video_drvdata(file);
drivers/staging/media/tegra-video/vi.c
716
subdev = tegra_channel_get_remote_source_subdev(chan);
drivers/staging/media/tegra-video/vi.c
720
return v4l2_device_call_until_err(chan->video.v4l2_dev, 0,
drivers/staging/media/tegra-video/vi.c
727
struct tegra_vi_channel *chan = video_drvdata(file);
drivers/staging/media/tegra-video/vi.c
733
subdev = tegra_channel_get_remote_source_subdev(chan);
drivers/staging/media/tegra-video/vi.c
744
if (vb2_is_busy(&chan->queue))
drivers/staging/media/tegra-video/vi.c
747
ret = v4l2_device_call_until_err(chan->video.v4l2_dev, 0,
drivers/staging/media/tegra-video/vi.c
752
chan->format.width = bt->width;
drivers/staging/media/tegra-video/vi.c
753
chan->format.height = bt->height;
drivers/staging/media/tegra-video/vi.c
754
chan->format.bytesperline = bt->width * chan->fmtinfo->bpp;
drivers/staging/media/tegra-video/vi.c
755
chan->format.sizeimage = chan->format.bytesperline * bt->height;
drivers/staging/media/tegra-video/vi.c
756
chan->vi->ops->vi_fmt_align(&chan->format, chan->fmtinfo->bpp);
drivers/staging/media/tegra-video/vi.c
757
tegra_channel_update_gangports(chan);
drivers/staging/media/tegra-video/vi.c
765
struct tegra_vi_channel *chan = video_drvdata(file);
drivers/staging/media/tegra-video/vi.c
768
subdev = tegra_channel_get_remote_source_subdev(chan);
drivers/staging/media/tegra-video/vi.c
772
return v4l2_device_call_until_err(chan->video.v4l2_dev, 0,
drivers/staging/media/tegra-video/vi.c
779
struct tegra_vi_channel *chan = video_drvdata(file);
drivers/staging/media/tegra-video/vi.c
782
subdev = tegra_channel_get_remote_source_subdev(chan);
drivers/staging/media/tegra-video/vi.c
792
struct tegra_vi_channel *chan = video_drvdata(file);
drivers/staging/media/tegra-video/vi.c
795
subdev = tegra_channel_get_remote_source_subdev(chan);
drivers/staging/media/tegra-video/vi.c
804
struct tegra_vi_channel *chan = video_drvdata(file);
drivers/staging/media/tegra-video/vi.c
806
v4l2_device_call_all(chan->video.v4l2_dev, 0, core, log_status);
drivers/staging/media/tegra-video/vi.c
814
struct tegra_vi_channel *chan = video_drvdata(file);
drivers/staging/media/tegra-video/vi.c
821
subdev = tegra_channel_get_remote_source_subdev(chan);
drivers/staging/media/tegra-video/vi.c
900
struct tegra_vi_channel *chan = container_of(ctrl->handler,
drivers/staging/media/tegra-video/vi.c
907
chan->pg_mode = ctrl->val + 1;
drivers/staging/media/tegra-video/vi.c
910
chan->syncpt_timeout_retry = ctrl->val;
drivers/staging/media/tegra-video/vi.c
913
chan->hflip = ctrl->val;
drivers/staging/media/tegra-video/vi.c
916
chan->vflip = ctrl->val;
drivers/staging/media/tegra-video/vi.c
947
static int tegra_channel_setup_ctrl_handler(struct tegra_vi_channel *chan)
drivers/staging/media/tegra-video/vi.c
953
v4l2_ctrl_new_std_menu_items(&chan->ctrl_handler, &vi_ctrl_ops,
drivers/staging/media/tegra-video/vi.c
957
if (chan->ctrl_handler.error) {
drivers/staging/media/tegra-video/vi.c
958
dev_err(chan->vi->dev, "failed to add TPG ctrl handler: %d\n",
drivers/staging/media/tegra-video/vi.c
959
chan->ctrl_handler.error);
drivers/staging/media/tegra-video/vi.c
960
v4l2_ctrl_handler_free(&chan->ctrl_handler);
drivers/staging/media/tegra-video/vi.c
961
return chan->ctrl_handler.error;
drivers/staging/media/tegra-video/vi.c
968
v4l2_ctrl_new_custom(&chan->ctrl_handler, &syncpt_timeout_ctrl, NULL);
drivers/staging/media/tegra-video/vi.c
969
if (chan->ctrl_handler.error) {
drivers/staging/media/tegra-video/vi.c
970
dev_err(chan->vi->dev, "failed to add %s ctrl handler: %d\n",
drivers/staging/media/tegra-video/vi.c
972
chan->ctrl_handler.error);
drivers/staging/media/tegra-video/vi.c
973
v4l2_ctrl_handler_free(&chan->ctrl_handler);
drivers/staging/media/tegra-video/vi.c
974
return chan->ctrl_handler.error;
drivers/staging/media/tegra-video/vi.c
977
subdev = tegra_channel_get_remote_source_subdev(chan);
drivers/staging/media/tegra-video/vi.c
981
ret = v4l2_ctrl_add_handler(&chan->ctrl_handler, subdev->ctrl_handler,
drivers/staging/media/tegra-video/vi.c
984
dev_err(chan->vi->dev,
drivers/staging/media/tegra-video/vi.c
987
v4l2_ctrl_handler_free(&chan->ctrl_handler);
drivers/staging/media/tegra-video/vi.c
992
if (chan->vi->soc->has_h_v_flip && !hflip)
drivers/staging/media/tegra-video/vi.c
993
v4l2_ctrl_new_std(&chan->ctrl_handler, &vi_ctrl_ops, V4L2_CID_HFLIP, 0, 1, 1, 0);
drivers/staging/media/tegra-video/vi.c
996
if (chan->vi->soc->has_h_v_flip && !vflip)
drivers/staging/media/tegra-video/vi.c
997
v4l2_ctrl_new_std(&chan->ctrl_handler, &vi_ctrl_ops, V4L2_CID_VFLIP, 0, 1, 1, 0);
drivers/staging/media/tegra-video/vi.h
244
struct tegra_vi_channel *chan;
drivers/staging/media/tegra-video/vi.h
303
tegra_channel_get_remote_csi_subdev(struct tegra_vi_channel *chan);
drivers/staging/media/tegra-video/vi.h
305
tegra_channel_get_remote_source_subdev(struct tegra_vi_channel *chan);
drivers/staging/media/tegra-video/vi.h
306
int tegra_channel_set_stream(struct tegra_vi_channel *chan, bool on);
drivers/staging/media/tegra-video/vi.h
307
void tegra_channel_release_buffers(struct tegra_vi_channel *chan,
drivers/staging/media/tegra-video/vi.h
59
int (*channel_host1x_syncpt_init)(struct tegra_vi_channel *chan);
drivers/staging/media/tegra-video/vi.h
60
void (*channel_host1x_syncpt_free)(struct tegra_vi_channel *chan);
drivers/staging/media/tegra-video/vi.h
62
void (*channel_queue_setup)(struct tegra_vi_channel *chan);
drivers/staging/media/tegra-video/video.c
32
struct tegra_vi_channel *chan;
drivers/staging/media/tegra-video/video.c
38
chan = v4l2_get_subdev_hostdata(sd);
drivers/staging/media/tegra-video/video.c
39
v4l2_event_queue(&chan->video, arg);
drivers/staging/media/tegra-video/video.c
40
if (ev->type == V4L2_EVENT_SOURCE_CHANGE && vb2_is_streaming(&chan->queue))
drivers/staging/media/tegra-video/video.c
41
vb2_queue_error(&chan->queue);
drivers/staging/media/tegra-video/vip.c
147
vip->chan.of_node = of_node_get(np);
drivers/staging/media/tegra-video/vip.c
148
vip->chan.pads[TEGRA_VIP_PAD_SINK].flags = MEDIA_PAD_FL_SINK;
drivers/staging/media/tegra-video/vip.c
149
vip->chan.pads[TEGRA_VIP_PAD_SOURCE].flags = MEDIA_PAD_FL_SOURCE;
drivers/staging/media/tegra-video/vip.c
163
subdev = &vip->chan.subdev;
drivers/staging/media/tegra-video/vip.c
167
kbasename(vip->chan.of_node->full_name));
drivers/staging/media/tegra-video/vip.c
169
v4l2_set_subdevdata(subdev, &vip->chan);
drivers/staging/media/tegra-video/vip.c
170
subdev->fwnode = of_fwnode_handle(vip->chan.of_node);
drivers/staging/media/tegra-video/vip.c
173
err = media_entity_pads_init(&subdev->entity, TEGRA_VIP_PADS_NUM, vip->chan.pads);
drivers/staging/media/tegra-video/vip.c
206
of_node_put(vip->chan.of_node);
drivers/staging/media/tegra-video/vip.c
213
struct v4l2_subdev *subdev = &vip->chan.subdev;
drivers/staging/media/tegra-video/vip.c
217
of_node_put(vip->chan.of_node);
drivers/staging/media/tegra-video/vip.c
34
static inline struct tegra_vip *vip_channel_to_vip(struct tegra_vip_channel *chan)
drivers/staging/media/tegra-video/vip.c
36
return container_of(chan, struct tegra_vip, chan);
drivers/staging/media/tegra-video/vip.c
40
static struct v4l2_subdev *tegra_vip_channel_get_prev_subdev(struct tegra_vip_channel *chan)
drivers/staging/media/tegra-video/vip.c
44
remote_pad = media_pad_remote_pad_first(&chan->pads[TEGRA_VIP_PAD_SINK]);
drivers/staging/media/tegra-video/vip.h
69
struct tegra_vip_channel chan;
drivers/staging/rtl8723bs/core/rtw_mlme_ext.c
260
u8 chan)
drivers/staging/rtl8723bs/core/rtw_mlme_ext.c
265
if (channel_set[i].ChannelNum == chan)
drivers/staging/rtl8723bs/include/ioctl_cfg80211.h
37
int rtw_ieee80211_channel_to_frequency(int chan);
drivers/staging/rtl8723bs/include/ioctl_cfg80211.h
55
#define rtw_cfg80211_ready_on_channel(adapter, cookie, chan, channel_type, duration, gfp) cfg80211_ready_on_channel((adapter)->rtw_wdev, cookie, chan, duration, gfp)
drivers/staging/rtl8723bs/include/ioctl_cfg80211.h
56
#define rtw_cfg80211_remain_on_channel_expired(adapter, cookie, chan, chan_type, gfp) cfg80211_remain_on_channel_expired((adapter)->rtw_wdev, cookie, chan, gfp)
drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c
197
int rtw_ieee80211_channel_to_frequency(int chan)
drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c
1978
struct ieee80211_channel *chan = NULL;
drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c
1991
chan = ieee80211_get_channel(adapter->rtw_wdev->wiphy, freq);
drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c
1995
cfg80211_chandef_create(chandef, chan, chan_type);
drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c
1997
cfg80211_chandef_create(chandef, chan, NL80211_CHAN_NO_HT);
drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c
200
if (chan == 14)
drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c
203
if (chan < 14)
drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c
204
return 2407 + chan * 5;
drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c
2536
struct ieee80211_channel *chan = params->chan;
drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c
2544
u8 tx_ch = (u8)ieee80211_frequency_to_channel(chan->center_freq);
drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c
366
struct ieee80211_channel *chan;
drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c
397
chan = ieee80211_get_channel(wiphy, freq);
drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c
398
cfg80211_ibss_joined(padapter->pnetdev, cur_network->network.mac_address, chan, GFP_ATOMIC);
drivers/staging/sm750fb/sm750.c
389
static inline unsigned int chan_to_field(unsigned int chan,
drivers/staging/sm750fb/sm750.c
392
chan &= 0xffff;
drivers/staging/sm750fb/sm750.c
393
chan >>= 16 - bf->length;
drivers/staging/sm750fb/sm750.c
394
return chan << bf->offset;
drivers/thermal/hisi_thermal.c
33
#define HI3660_OFFSET(chan) ((chan) * 0x40)
drivers/thermal/hisi_thermal.c
34
#define HI3660_TEMP(chan) (HI3660_OFFSET(chan) + 0x1C)
drivers/thermal/hisi_thermal.c
35
#define HI3660_TH(chan) (HI3660_OFFSET(chan) + 0x20)
drivers/thermal/hisi_thermal.c
36
#define HI3660_LAG(chan) (HI3660_OFFSET(chan) + 0x28)
drivers/thermal/hisi_thermal.c
37
#define HI3660_INT_EN(chan) (HI3660_OFFSET(chan) + 0x2C)
drivers/thermal/hisi_thermal.c
38
#define HI3660_INT_CLR(chan) (HI3660_OFFSET(chan) + 0x30)
drivers/thermal/qcom/qcom-spmi-adc-tm5.c
785
u32 chan, value, adc_channel, varr[2];
drivers/thermal/qcom/qcom-spmi-adc-tm5.c
790
ret = of_property_read_u32(node, "reg", &chan);
drivers/thermal/qcom/qcom-spmi-adc-tm5.c
796
if (chan >= ADC_TM5_NUM_CHANNELS) {
drivers/thermal/qcom/qcom-spmi-adc-tm5.c
797
dev_err(dev, "%s: channel number too big: %d\n", name, chan);
drivers/thermal/qcom/qcom-spmi-adc-tm5.c
801
channel->channel = chan;
drivers/thermal/qcom/qcom-spmi-adc-tm5.c
810
dev_err(dev, "%s: error parsing ADC channel number %d: %d\n", name, chan, ret);
drivers/thermal/qcom/qcom-spmi-adc-tm5.c
816
dev_err(dev, "%s: invalid args count for ADC channel %d\n", name, chan);
drivers/thermal/qcom/qcom-spmi-adc-tm5.c
825
dev_err(dev, "%s: invalid ADC channel number %d\n", name, chan);
drivers/thermal/thermal-generic-adc.c
85
struct iio_chan_spec const *chan,
drivers/tty/ipwireless/tty.c
398
int chan = ipwireless_ppp_channel_index(
drivers/tty/ipwireless/tty.c
401
if (chan < 0)
drivers/tty/ipwireless/tty.c
403
if (put_user(chan, (int __user *) arg))
drivers/tty/mips_ejtag_fdc.c
416
unsigned int chan)
drivers/tty/mips_ejtag_fdc.c
425
dport = &priv->ports[chan];
drivers/tty/mips_ejtag_fdc.c
437
priv->driver_name, chan, word.word,
drivers/tty/mips_ejtag_fdc.c
446
mips_ejtag_fdc_write(priv, REG_FDTX(chan), word.word);
drivers/tty/serial/8250/8250_dw.c
517
static bool dw8250_fallback_dma_filter(struct dma_chan *chan, void *param)
drivers/tty/serial/8250/8250_dw.c
522
static bool dw8250_idma_filter(struct dma_chan *chan, void *param)
drivers/tty/serial/8250/8250_dw.c
524
return param == chan->device->dev;
drivers/tty/serial/8250/8250_lpss.c
265
static bool lpss8250_dma_filter(struct dma_chan *chan, void *param)
drivers/tty/serial/8250/8250_lpss.c
269
if (dws->dma_dev != chan->device->dev)
drivers/tty/serial/8250/8250_lpss.c
272
chan->private = dws;
drivers/tty/serial/8250/8250_mid.c
243
static bool mid8250_dma_filter(struct dma_chan *chan, void *param)
drivers/tty/serial/8250/8250_mid.c
247
if (s->dma_dev != chan->device->dev || s->chan_id != chan->chan_id)
drivers/tty/serial/8250/8250_mid.c
250
chan->private = s;
drivers/tty/serial/8250/8250_mtk.c
468
static bool mtk8250_dma_filter(struct dma_chan *chan, void *param)
drivers/tty/serial/8250/8250_omap.c
1341
static bool the_no_dma_filter_fn(struct dma_chan *chan, void *param)
drivers/tty/serial/amba-pl011.c
1048
struct dma_chan *rxchan = dmarx->chan;
drivers/tty/serial/amba-pl011.c
1117
struct dma_chan *rxchan = uap->dmarx.chan;
drivers/tty/serial/amba-pl011.c
1166
if (!uap->dmatx.chan)
drivers/tty/serial/amba-pl011.c
1181
if (!uap->dmarx.chan)
drivers/tty/serial/amba-pl011.c
1185
ret = pl011_dmabuf_init(uap->dmarx.chan, &uap->dmarx.dbuf_a,
drivers/tty/serial/amba-pl011.c
1193
ret = pl011_dmabuf_init(uap->dmarx.chan, &uap->dmarx.dbuf_b,
drivers/tty/serial/amba-pl011.c
1198
pl011_dmabuf_free(uap->dmarx.chan, &uap->dmarx.dbuf_a,
drivers/tty/serial/amba-pl011.c
1249
dmaengine_terminate_all(uap->dmatx.chan);
drivers/tty/serial/amba-pl011.c
1251
dma_unmap_single(uap->dmatx.chan->device->dev,
drivers/tty/serial/amba-pl011.c
1262
dmaengine_terminate_all(uap->dmarx.chan);
drivers/tty/serial/amba-pl011.c
1264
pl011_dmabuf_free(uap->dmarx.chan, &uap->dmarx.dbuf_a, DMA_FROM_DEVICE);
drivers/tty/serial/amba-pl011.c
1265
pl011_dmabuf_free(uap->dmarx.chan, &uap->dmarx.dbuf_b, DMA_FROM_DEVICE);
drivers/tty/serial/amba-pl011.c
284
struct dma_chan *chan;
drivers/tty/serial/amba-pl011.c
300
struct dma_chan *chan;
drivers/tty/serial/amba-pl011.c
434
static int pl011_dmabuf_init(struct dma_chan *chan, struct pl011_dmabuf *db,
drivers/tty/serial/amba-pl011.c
437
db->buf = dma_alloc_coherent(chan->device->dev, PL011_DMA_BUFFER_SIZE,
drivers/tty/serial/amba-pl011.c
446
static void pl011_dmabuf_free(struct dma_chan *chan, struct pl011_dmabuf *db,
drivers/tty/serial/amba-pl011.c
450
dma_free_coherent(chan->device->dev,
drivers/tty/serial/amba-pl011.c
468
struct dma_chan *chan;
drivers/tty/serial/amba-pl011.c
472
chan = dma_request_chan(dev, "tx");
drivers/tty/serial/amba-pl011.c
473
if (IS_ERR(chan)) {
drivers/tty/serial/amba-pl011.c
474
if (PTR_ERR(chan) == -EPROBE_DEFER) {
drivers/tty/serial/amba-pl011.c
489
chan = dma_request_channel(mask, plat->dma_filter,
drivers/tty/serial/amba-pl011.c
491
if (!chan) {
drivers/tty/serial/amba-pl011.c
497
dmaengine_slave_config(chan, &tx_conf);
drivers/tty/serial/amba-pl011.c
498
uap->dmatx.chan = chan;
drivers/tty/serial/amba-pl011.c
501
dma_chan_name(uap->dmatx.chan));
drivers/tty/serial/amba-pl011.c
504
chan = dma_request_chan(dev, "rx");
drivers/tty/serial/amba-pl011.c
506
if (IS_ERR(chan) && plat && plat->dma_rx_param) {
drivers/tty/serial/amba-pl011.c
507
chan = dma_request_channel(mask, plat->dma_filter, plat->dma_rx_param);
drivers/tty/serial/amba-pl011.c
509
if (!chan) {
drivers/tty/serial/amba-pl011.c
515
if (!IS_ERR(chan)) {
drivers/tty/serial/amba-pl011.c
531
if (dma_get_slave_caps(chan, &caps) == 0) {
drivers/tty/serial/amba-pl011.c
534
dma_release_channel(chan);
drivers/tty/serial/amba-pl011.c
540
dmaengine_slave_config(chan, &rx_conf);
drivers/tty/serial/amba-pl011.c
541
uap->dmarx.chan = chan;
drivers/tty/serial/amba-pl011.c
581
dma_chan_name(uap->dmarx.chan));
drivers/tty/serial/amba-pl011.c
587
if (uap->dmatx.chan)
drivers/tty/serial/amba-pl011.c
588
dma_release_channel(uap->dmatx.chan);
drivers/tty/serial/amba-pl011.c
589
if (uap->dmarx.chan)
drivers/tty/serial/amba-pl011.c
590
dma_release_channel(uap->dmarx.chan);
drivers/tty/serial/amba-pl011.c
611
dma_unmap_single(dmatx->chan->device->dev, dmatx->dma,
drivers/tty/serial/amba-pl011.c
655
struct dma_chan *chan = dmatx->chan;
drivers/tty/serial/amba-pl011.c
656
struct dma_device *dma_dev = chan->device;
drivers/tty/serial/amba-pl011.c
690
if (chan->device->copy_align)
drivers/tty/serial/amba-pl011.c
691
count = ALIGN_DOWN(count, 1 << chan->device->copy_align);
drivers/tty/serial/amba-pl011.c
702
desc = dmaengine_prep_slave_single(chan, dmatx->dma, dmatx->len, DMA_MEM_TO_DEV,
drivers/tty/serial/amba-pl011.c
723
dma_dev->device_issue_pending(chan);
drivers/tty/serial/amba-pl011.c
866
dmaengine_terminate_async(uap->dmatx.chan);
drivers/tty/serial/amba-pl011.c
869
dma_unmap_single(uap->dmatx.chan->device->dev, uap->dmatx.dma,
drivers/tty/serial/amba-pl011.c
881
struct dma_chan *rxchan = uap->dmarx.chan;
drivers/tty/serial/amba-pl011.c
999
struct dma_chan *rxchan = dmarx->chan;
drivers/tty/serial/atmel_serial.c
1005
dma_async_issue_pending(chan);
drivers/tty/serial/atmel_serial.c
1019
struct dma_chan *chan;
drivers/tty/serial/atmel_serial.c
1025
chan = dma_request_chan(mfd_dev, "tx");
drivers/tty/serial/atmel_serial.c
1026
if (IS_ERR(chan)) {
drivers/tty/serial/atmel_serial.c
1030
atmel_port->chan_tx = chan;
drivers/tty/serial/atmel_serial.c
1086
struct dma_chan *chan = atmel_port->chan_rx;
drivers/tty/serial/atmel_serial.c
1088
if (chan) {
drivers/tty/serial/atmel_serial.c
1089
dmaengine_terminate_all(chan);
drivers/tty/serial/atmel_serial.c
1090
dma_release_channel(chan);
drivers/tty/serial/atmel_serial.c
1105
struct dma_chan *chan = atmel_port->chan_rx;
drivers/tty/serial/atmel_serial.c
1113
dmastat = dmaengine_tx_status(chan,
drivers/tty/serial/atmel_serial.c
1186
struct dma_chan *chan;
drivers/tty/serial/atmel_serial.c
1194
chan = dma_request_chan(mfd_dev, "rx");
drivers/tty/serial/atmel_serial.c
1195
if (IS_ERR(chan)) {
drivers/tty/serial/atmel_serial.c
1199
atmel_port->chan_rx = chan;
drivers/tty/serial/atmel_serial.c
863
struct dma_chan *chan = atmel_port->chan_tx;
drivers/tty/serial/atmel_serial.c
868
if (chan)
drivers/tty/serial/atmel_serial.c
869
dmaengine_terminate_all(chan);
drivers/tty/serial/atmel_serial.c
904
struct dma_chan *chan = atmel_port->chan_tx;
drivers/tty/serial/atmel_serial.c
906
if (chan) {
drivers/tty/serial/atmel_serial.c
907
dmaengine_terminate_all(chan);
drivers/tty/serial/atmel_serial.c
908
dma_release_channel(chan);
drivers/tty/serial/atmel_serial.c
925
struct dma_chan *chan = atmel_port->chan_tx;
drivers/tty/serial/atmel_serial.c
981
desc = dmaengine_prep_slave_sg(chan,
drivers/tty/serial/fsl_lpuart.c
1110
struct dma_chan *chan = sport->dma_rx_chan;
drivers/tty/serial/fsl_lpuart.c
1171
dmastat = dmaengine_tx_status(chan, sport->dma_rx_cookie, &state);
drivers/tty/serial/fsl_lpuart.c
1179
dma_sync_sg_for_cpu(chan->device->dev, &sport->rx_sgl, 1,
drivers/tty/serial/fsl_lpuart.c
1240
dma_sync_sg_for_device(chan->device->dev, &sport->rx_sgl, 1,
drivers/tty/serial/fsl_lpuart.c
1260
struct dma_chan *chan = sport->dma_rx_chan;
drivers/tty/serial/fsl_lpuart.c
1265
dmastat = dmaengine_tx_status(chan, sport->dma_rx_cookie, &state);
drivers/tty/serial/fsl_lpuart.c
1312
struct dma_chan *chan = sport->dma_rx_chan;
drivers/tty/serial/fsl_lpuart.c
1318
dmastat = dmaengine_tx_status(chan, sport->dma_rx_cookie, &state);
drivers/tty/serial/fsl_lpuart.c
1348
struct dma_chan *chan = sport->dma_rx_chan;
drivers/tty/serial/fsl_lpuart.c
1377
nent = dma_map_sg(chan->device->dev, &sport->rx_sgl, 1,
drivers/tty/serial/fsl_lpuart.c
1390
ret = dmaengine_slave_config(chan, &dma_rx_sconfig);
drivers/tty/serial/fsl_lpuart.c
1398
sport->dma_rx_desc = dmaengine_prep_dma_cyclic(chan,
drivers/tty/serial/fsl_lpuart.c
1413
dma_async_issue_pending(chan);
drivers/tty/serial/fsl_lpuart.c
1433
dma_unmap_sg(chan->device->dev, &sport->rx_sgl, 1, DMA_FROM_DEVICE);
drivers/tty/serial/fsl_lpuart.c
1444
struct dma_chan *chan = sport->dma_rx_chan;
drivers/tty/serial/fsl_lpuart.c
1446
dmaengine_terminate_sync(chan);
drivers/tty/serial/fsl_lpuart.c
1450
dma_unmap_sg(chan->device->dev, &sport->rx_sgl, 1, DMA_FROM_DEVICE);
drivers/tty/serial/fsl_lpuart.c
483
struct dma_chan *chan = sport->dma_tx_chan;
drivers/tty/serial/fsl_lpuart.c
494
ret = dma_map_sg(chan->device->dev, sgl, sport->dma_tx_nents,
drivers/tty/serial/fsl_lpuart.c
501
sport->dma_tx_desc = dmaengine_prep_slave_sg(chan, sgl,
drivers/tty/serial/fsl_lpuart.c
505
dma_unmap_sg(chan->device->dev, sgl, sport->dma_tx_nents,
drivers/tty/serial/fsl_lpuart.c
515
dma_async_issue_pending(chan);
drivers/tty/serial/fsl_lpuart.c
529
struct dma_chan *chan = sport->dma_tx_chan;
drivers/tty/serial/fsl_lpuart.c
538
dma_unmap_sg(chan->device->dev, sgl, sport->dma_tx_nents,
drivers/tty/serial/fsl_lpuart.c
604
struct dma_chan *chan = sport->dma_tx_chan;
drivers/tty/serial/fsl_lpuart.c
609
dma_unmap_sg(chan->device->dev, &sport->tx_sgl[0],
drivers/tty/serial/fsl_lpuart.c
613
dmaengine_terminate_async(chan);
drivers/tty/serial/imx.c
1192
struct dma_chan *chan = sport->dma_chan_rx;
drivers/tty/serial/imx.c
1202
status = dmaengine_tx_status(chan, sport->rx_cookie, &state);
drivers/tty/serial/imx.c
1272
struct dma_chan *chan = sport->dma_chan_rx;
drivers/tty/serial/imx.c
1287
desc = dmaengine_prep_dma_cyclic(chan, sg_dma_address(sgl),
drivers/tty/serial/imx.c
1302
dma_async_issue_pending(chan);
drivers/tty/serial/imx.c
1380
struct dma_chan *chan;
drivers/tty/serial/imx.c
1384
chan = dma_request_chan(dev, "rx");
drivers/tty/serial/imx.c
1385
if (IS_ERR(chan)) {
drivers/tty/serial/imx.c
1388
ret = PTR_ERR(chan);
drivers/tty/serial/imx.c
1391
sport->dma_chan_rx = chan;
drivers/tty/serial/imx.c
1413
chan = dma_request_chan(dev, "tx");
drivers/tty/serial/imx.c
1414
if (IS_ERR(chan)) {
drivers/tty/serial/imx.c
1417
ret = PTR_ERR(chan);
drivers/tty/serial/imx.c
1420
sport->dma_chan_tx = chan;
drivers/tty/serial/imx.c
627
struct dma_chan *chan = sport->dma_chan_tx;
drivers/tty/serial/imx.c
649
desc = dmaengine_prep_slave_sg(chan, sgl, ret,
drivers/tty/serial/imx.c
669
dma_async_issue_pending(chan);
drivers/tty/serial/msm_serial.c
1281
if (dma->chan) /* Terminate if any */
drivers/tty/serial/msm_serial.c
162
struct dma_chan *chan;
drivers/tty/serial/msm_serial.c
264
dmaengine_terminate_all(dma->chan);
drivers/tty/serial/msm_serial.c
291
if (dma->chan) {
drivers/tty/serial/msm_serial.c
293
dma_release_channel(dma->chan);
drivers/tty/serial/msm_serial.c
299
if (dma->chan) {
drivers/tty/serial/msm_serial.c
301
dma_release_channel(dma->chan);
drivers/tty/serial/msm_serial.c
320
dma->chan = dma_request_chan(dev, "tx");
drivers/tty/serial/msm_serial.c
321
if (IS_ERR(dma->chan))
drivers/tty/serial/msm_serial.c
337
ret = dmaengine_slave_config(dma->chan, &conf);
drivers/tty/serial/msm_serial.c
351
dma_release_channel(dma->chan);
drivers/tty/serial/msm_serial.c
368
dma->chan = dma_request_chan(dev, "rx");
drivers/tty/serial/msm_serial.c
369
if (IS_ERR(dma->chan))
drivers/tty/serial/msm_serial.c
389
ret = dmaengine_slave_config(dma->chan, &conf);
drivers/tty/serial/msm_serial.c
404
dma_release_channel(dma->chan);
drivers/tty/serial/msm_serial.c
468
dmaengine_tx_status(dma->chan, dma->cookie, &state);
drivers/tty/serial/msm_serial.c
515
dma->desc = dmaengine_prep_slave_sg(dma->chan, &dma->tx_sg, 1,
drivers/tty/serial/msm_serial.c
550
dma_async_issue_pending(dma->chan);
drivers/tty/serial/msm_serial.c
630
if (!dma->chan)
drivers/tty/serial/msm_serial.c
639
dma->desc = dmaengine_prep_slave_single(dma->chan, dma->rx.phys,
drivers/tty/serial/msm_serial.c
669
dma_async_issue_pending(dma->chan);
drivers/tty/serial/msm_serial.c
714
if (dma->chan)
drivers/tty/serial/msm_serial.c
936
if (!dma->chan || dma_count < dma_min)
drivers/tty/serial/msm_serial.c
979
dmaengine_terminate_all(dma->chan);
drivers/tty/serial/mxs-auart.c
899
struct dma_chan *chan;
drivers/tty/serial/mxs-auart.c
905
chan = dma_request_chan(s->dev, "rx");
drivers/tty/serial/mxs-auart.c
906
if (IS_ERR(chan))
drivers/tty/serial/mxs-auart.c
908
s->rx_dma_chan = chan;
drivers/tty/serial/mxs-auart.c
915
chan = dma_request_chan(s->dev, "tx");
drivers/tty/serial/mxs-auart.c
916
if (IS_ERR(chan))
drivers/tty/serial/mxs-auart.c
918
s->tx_dma_chan = chan;
drivers/tty/serial/pch_uart.c
654
static bool filter(struct dma_chan *chan, void *slave)
drivers/tty/serial/pch_uart.c
658
if ((chan->chan_id == param->chan_id) && (param->dma_dev ==
drivers/tty/serial/pch_uart.c
659
chan->device->dev)) {
drivers/tty/serial/pch_uart.c
660
chan->private = param;
drivers/tty/serial/pch_uart.c
670
struct dma_chan *chan;
drivers/tty/serial/pch_uart.c
688
chan = dma_request_channel(mask, filter, param);
drivers/tty/serial/pch_uart.c
689
if (!chan) {
drivers/tty/serial/pch_uart.c
694
priv->chan_tx = chan;
drivers/tty/serial/pch_uart.c
702
chan = dma_request_channel(mask, filter, param);
drivers/tty/serial/pch_uart.c
703
if (!chan) {
drivers/tty/serial/pch_uart.c
714
priv->chan_rx = chan;
drivers/tty/serial/pch_uart.c
720
dma_release_channel(chan);
drivers/tty/serial/sh-sci.c
1488
struct dma_chan *chan = s->chan_rx_saved;
drivers/tty/serial/sh-sci.c
1497
dmaengine_terminate_sync(chan);
drivers/tty/serial/sh-sci.c
1498
dma_free_coherent(chan->device->dev, s->buf_len_rx * 2, s->rx_buf[0],
drivers/tty/serial/sh-sci.c
1500
dma_release_channel(chan);
drivers/tty/serial/sh-sci.c
1533
struct dma_chan *chan = s->chan_rx;
drivers/tty/serial/sh-sci.c
1567
dma_async_issue_pending(chan);
drivers/tty/serial/sh-sci.c
1579
dmaengine_terminate_async(chan);
drivers/tty/serial/sh-sci.c
1588
struct dma_chan *chan = s->chan_tx_saved;
drivers/tty/serial/sh-sci.c
1593
dmaengine_terminate_sync(chan);
drivers/tty/serial/sh-sci.c
1594
dma_unmap_single(chan->device->dev, s->tx_dma_addr, UART_XMIT_SIZE,
drivers/tty/serial/sh-sci.c
1596
dma_release_channel(chan);
drivers/tty/serial/sh-sci.c
1601
struct dma_chan *chan = s->chan_rx;
drivers/tty/serial/sh-sci.c
1610
desc = dmaengine_prep_slave_sg(chan,
drivers/tty/serial/sh-sci.c
1626
dma_async_issue_pending(chan);
drivers/tty/serial/sh-sci.c
1634
dmaengine_terminate_async(chan);
drivers/tty/serial/sh-sci.c
1646
struct dma_chan *chan = s->chan_tx;
drivers/tty/serial/sh-sci.c
1670
desc = dmaengine_prep_slave_single(chan, buf, s->tx_dma_len,
drivers/tty/serial/sh-sci.c
1679
dma_sync_single_for_device(chan->device->dev, buf, s->tx_dma_len,
drivers/tty/serial/sh-sci.c
1695
dma_async_issue_pending(chan);
drivers/tty/serial/sh-sci.c
1709
struct dma_chan *chan = s->chan_rx;
drivers/tty/serial/sh-sci.c
1737
dmaengine_pause(chan);
drivers/tty/serial/sh-sci.c
1776
struct dma_chan *chan;
drivers/tty/serial/sh-sci.c
1780
chan = dma_request_chan(port->dev, dir == DMA_MEM_TO_DEV ? "tx" : "rx");
drivers/tty/serial/sh-sci.c
1781
if (IS_ERR(chan)) {
drivers/tty/serial/sh-sci.c
1795
ret = dmaengine_slave_config(chan, &cfg);
drivers/tty/serial/sh-sci.c
1798
dma_release_channel(chan);
drivers/tty/serial/sh-sci.c
1802
return chan;
drivers/tty/serial/sh-sci.c
1809
struct dma_chan *chan;
drivers/tty/serial/sh-sci.c
1832
chan = sci_request_dma_chan(port, DMA_MEM_TO_DEV);
drivers/tty/serial/sh-sci.c
1833
dev_dbg(port->dev, "%s: TX: got channel %p\n", __func__, chan);
drivers/tty/serial/sh-sci.c
1834
if (chan) {
drivers/tty/serial/sh-sci.c
1836
s->tx_dma_addr = dma_map_single(chan->device->dev,
drivers/tty/serial/sh-sci.c
1840
if (dma_mapping_error(chan->device->dev, s->tx_dma_addr)) {
drivers/tty/serial/sh-sci.c
1842
dma_release_channel(chan);
drivers/tty/serial/sh-sci.c
1849
s->chan_tx_saved = s->chan_tx = chan;
drivers/tty/serial/sh-sci.c
1853
chan = sci_request_dma_chan(port, DMA_DEV_TO_MEM);
drivers/tty/serial/sh-sci.c
1854
dev_dbg(port->dev, "%s: RX: got channel %p\n", __func__, chan);
drivers/tty/serial/sh-sci.c
1855
if (chan) {
drivers/tty/serial/sh-sci.c
1861
buf = dma_alloc_coherent(chan->device->dev, s->buf_len_rx * 2,
drivers/tty/serial/sh-sci.c
1866
dma_release_channel(chan);
drivers/tty/serial/sh-sci.c
1884
s->chan_rx_saved = s->chan_rx = chan;
drivers/tty/serial/stm32-usart.c
306
struct dma_chan *chan,
drivers/tty/serial/stm32-usart.c
319
dma_status = dmaengine_tx_status(chan, chan->cookie, NULL);
drivers/tty/serial/stm32-usart.c
323
ret = dmaengine_pause_or_resume(chan);
drivers/uio/uio_hv_generic.c
110
struct vmbus_channel *chan = context;
drivers/uio/uio_hv_generic.c
120
hv_dev = chan->primary_channel ?
drivers/uio/uio_hv_generic.c
121
chan->primary_channel->device_obj : chan->device_obj;
drivers/usb/dwc2/hcd.c
1014
chan->xfer_len + bytes_in_fifo);
drivers/usb/dwc2/hcd.c
1021
wire_frame = dwc2_frame_num_inc(chan->qh->next_active_frame, 1);
drivers/usb/dwc2/hcd.c
1033
chan->qh, wire_frame, frame_number,
drivers/usb/dwc2/hcd.c
1046
chan->qh->next_active_frame =
drivers/usb/dwc2/hcd.c
1057
static void dwc2_set_pid_isoc(struct dwc2_host_chan *chan)
drivers/usb/dwc2/hcd.c
1060
if (chan->speed == USB_SPEED_HIGH) {
drivers/usb/dwc2/hcd.c
1061
if (chan->ep_is_in) {
drivers/usb/dwc2/hcd.c
1062
if (chan->multi_count == 1)
drivers/usb/dwc2/hcd.c
1063
chan->data_pid_start = DWC2_HC_PID_DATA0;
drivers/usb/dwc2/hcd.c
1064
else if (chan->multi_count == 2)
drivers/usb/dwc2/hcd.c
1065
chan->data_pid_start = DWC2_HC_PID_DATA1;
drivers/usb/dwc2/hcd.c
1067
chan->data_pid_start = DWC2_HC_PID_DATA2;
drivers/usb/dwc2/hcd.c
1069
if (chan->multi_count == 1)
drivers/usb/dwc2/hcd.c
1070
chan->data_pid_start = DWC2_HC_PID_DATA0;
drivers/usb/dwc2/hcd.c
1072
chan->data_pid_start = DWC2_HC_PID_MDATA;
drivers/usb/dwc2/hcd.c
1075
chan->data_pid_start = DWC2_HC_PID_DATA0;
drivers/usb/dwc2/hcd.c
1094
struct dwc2_host_chan *chan)
drivers/usb/dwc2/hcd.c
1100
u32 *data_buf = (u32 *)chan->xfer_buf;
drivers/usb/dwc2/hcd.c
1102
if (dbg_hc(chan))
drivers/usb/dwc2/hcd.c
1105
remaining_count = chan->xfer_len - chan->xfer_count;
drivers/usb/dwc2/hcd.c
1106
if (remaining_count > chan->max_packet)
drivers/usb/dwc2/hcd.c
1107
byte_count = chan->max_packet;
drivers/usb/dwc2/hcd.c
1116
dwc2_writel(hsotg, *data_buf, HCFIFO(chan->hc_num));
drivers/usb/dwc2/hcd.c
1122
dwc2_writel(hsotg, data, HCFIFO(chan->hc_num));
drivers/usb/dwc2/hcd.c
1126
chan->xfer_count += byte_count;
drivers/usb/dwc2/hcd.c
1127
chan->xfer_buf += byte_count;
drivers/usb/dwc2/hcd.c
1140
struct dwc2_host_chan *chan)
drivers/usb/dwc2/hcd.c
1145
if (dbg_hc(chan))
drivers/usb/dwc2/hcd.c
1147
chan->hc_num);
drivers/usb/dwc2/hcd.c
1151
dwc2_writel(hsotg, hctsiz, HCTSIZ(chan->hc_num));
drivers/usb/dwc2/hcd.c
1153
hcchar = dwc2_readl(hsotg, HCCHAR(chan->hc_num));
drivers/usb/dwc2/hcd.c
1156
dwc2_writel(hsotg, hcchar, HCCHAR(chan->hc_num));
drivers/usb/dwc2/hcd.c
1193
struct dwc2_host_chan *chan)
drivers/usb/dwc2/hcd.c
1202
if (dbg_hc(chan))
drivers/usb/dwc2/hcd.c
1205
if (chan->do_ping) {
drivers/usb/dwc2/hcd.c
1207
if (dbg_hc(chan))
drivers/usb/dwc2/hcd.c
1209
dwc2_hc_do_ping(hsotg, chan);
drivers/usb/dwc2/hcd.c
1210
chan->xfer_started = 1;
drivers/usb/dwc2/hcd.c
1214
if (dbg_hc(chan))
drivers/usb/dwc2/hcd.c
1220
if (chan->do_split) {
drivers/usb/dwc2/hcd.c
1221
if (dbg_hc(chan))
drivers/usb/dwc2/hcd.c
1225
if (chan->complete_split && !chan->ep_is_in)
drivers/usb/dwc2/hcd.c
1230
chan->xfer_len = 0;
drivers/usb/dwc2/hcd.c
1231
else if (chan->ep_is_in || chan->xfer_len > chan->max_packet)
drivers/usb/dwc2/hcd.c
1232
chan->xfer_len = chan->max_packet;
drivers/usb/dwc2/hcd.c
1233
else if (!chan->ep_is_in && chan->xfer_len > 188)
drivers/usb/dwc2/hcd.c
1234
chan->xfer_len = 188;
drivers/usb/dwc2/hcd.c
1236
hctsiz |= chan->xfer_len << TSIZ_XFERSIZE_SHIFT &
drivers/usb/dwc2/hcd.c
1240
if (chan->ep_type == USB_ENDPOINT_XFER_INT ||
drivers/usb/dwc2/hcd.c
1241
chan->ep_type == USB_ENDPOINT_XFER_ISOC)
drivers/usb/dwc2/hcd.c
1246
if (dbg_hc(chan))
drivers/usb/dwc2/hcd.c
1252
if (chan->ep_type == USB_ENDPOINT_XFER_INT ||
drivers/usb/dwc2/hcd.c
1253
chan->ep_type == USB_ENDPOINT_XFER_ISOC) {
drivers/usb/dwc2/hcd.c
1262
chan->multi_count * chan->max_packet;
drivers/usb/dwc2/hcd.c
1264
if (chan->xfer_len > max_periodic_len)
drivers/usb/dwc2/hcd.c
1265
chan->xfer_len = max_periodic_len;
drivers/usb/dwc2/hcd.c
1266
} else if (chan->xfer_len > max_hc_xfer_size) {
drivers/usb/dwc2/hcd.c
1271
chan->xfer_len =
drivers/usb/dwc2/hcd.c
1272
max_hc_xfer_size - chan->max_packet + 1;
drivers/usb/dwc2/hcd.c
1275
if (chan->xfer_len > 0) {
drivers/usb/dwc2/hcd.c
1276
num_packets = (chan->xfer_len + chan->max_packet - 1) /
drivers/usb/dwc2/hcd.c
1277
chan->max_packet;
drivers/usb/dwc2/hcd.c
1280
chan->xfer_len = num_packets * chan->max_packet;
drivers/usb/dwc2/hcd.c
1281
} else if (chan->ep_is_in) {
drivers/usb/dwc2/hcd.c
1288
chan->xfer_len = num_packets * chan->max_packet;
drivers/usb/dwc2/hcd.c
1295
if (chan->ep_type == USB_ENDPOINT_XFER_INT ||
drivers/usb/dwc2/hcd.c
1296
chan->ep_type == USB_ENDPOINT_XFER_ISOC)
drivers/usb/dwc2/hcd.c
1301
chan->multi_count = num_packets;
drivers/usb/dwc2/hcd.c
1303
if (chan->ep_type == USB_ENDPOINT_XFER_ISOC)
drivers/usb/dwc2/hcd.c
1304
dwc2_set_pid_isoc(chan);
drivers/usb/dwc2/hcd.c
1306
hctsiz |= chan->xfer_len << TSIZ_XFERSIZE_SHIFT &
drivers/usb/dwc2/hcd.c
1310
ec_mc = chan->multi_count;
drivers/usb/dwc2/hcd.c
1313
chan->start_pkt_count = num_packets;
drivers/usb/dwc2/hcd.c
1315
hctsiz |= chan->data_pid_start << TSIZ_SC_MC_PID_SHIFT &
drivers/usb/dwc2/hcd.c
1317
dwc2_writel(hsotg, hctsiz, HCTSIZ(chan->hc_num));
drivers/usb/dwc2/hcd.c
1318
if (dbg_hc(chan)) {
drivers/usb/dwc2/hcd.c
1320
hctsiz, chan->hc_num);
drivers/usb/dwc2/hcd.c
1323
chan->hc_num);
drivers/usb/dwc2/hcd.c
1338
if (chan->align_buf) {
drivers/usb/dwc2/hcd.c
1339
if (dbg_hc(chan))
drivers/usb/dwc2/hcd.c
1341
dma_addr = chan->align_buf;
drivers/usb/dwc2/hcd.c
1343
dma_addr = chan->xfer_dma;
drivers/usb/dwc2/hcd.c
1345
dwc2_writel(hsotg, (u32)dma_addr, HCDMA(chan->hc_num));
drivers/usb/dwc2/hcd.c
1347
if (dbg_hc(chan))
drivers/usb/dwc2/hcd.c
1349
(unsigned long)dma_addr, chan->hc_num);
drivers/usb/dwc2/hcd.c
1353
if (chan->do_split) {
drivers/usb/dwc2/hcd.c
1354
u32 hcsplt = dwc2_readl(hsotg, HCSPLT(chan->hc_num));
drivers/usb/dwc2/hcd.c
1357
dwc2_writel(hsotg, hcsplt, HCSPLT(chan->hc_num));
drivers/usb/dwc2/hcd.c
1360
hcchar = dwc2_readl(hsotg, HCCHAR(chan->hc_num));
drivers/usb/dwc2/hcd.c
1363
dwc2_hc_set_even_odd_frame(hsotg, chan, &hcchar);
drivers/usb/dwc2/hcd.c
1368
__func__, chan->hc_num, hcchar);
drivers/usb/dwc2/hcd.c
1374
if (dbg_hc(chan))
drivers/usb/dwc2/hcd.c
1379
dwc2_writel(hsotg, hcchar, HCCHAR(chan->hc_num));
drivers/usb/dwc2/hcd.c
1380
if (dbg_hc(chan))
drivers/usb/dwc2/hcd.c
1382
chan->hc_num);
drivers/usb/dwc2/hcd.c
1384
chan->xfer_started = 1;
drivers/usb/dwc2/hcd.c
1385
chan->requests++;
drivers/usb/dwc2/hcd.c
1388
!chan->ep_is_in && chan->xfer_len > 0)
drivers/usb/dwc2/hcd.c
1390
dwc2_hc_write_packet(hsotg, chan);
drivers/usb/dwc2/hcd.c
1408
struct dwc2_host_chan *chan)
drivers/usb/dwc2/hcd.c
1413
if (chan->do_ping)
drivers/usb/dwc2/hcd.c
1416
if (chan->ep_type == USB_ENDPOINT_XFER_ISOC)
drivers/usb/dwc2/hcd.c
1417
dwc2_set_pid_isoc(chan);
drivers/usb/dwc2/hcd.c
1420
hctsiz |= chan->data_pid_start << TSIZ_SC_MC_PID_SHIFT &
drivers/usb/dwc2/hcd.c
1424
hctsiz |= (chan->ntd - 1) << TSIZ_NTD_SHIFT & TSIZ_NTD_MASK;
drivers/usb/dwc2/hcd.c
1427
hctsiz |= chan->schinfo << TSIZ_SCHINFO_SHIFT & TSIZ_SCHINFO_MASK;
drivers/usb/dwc2/hcd.c
1429
if (dbg_hc(chan)) {
drivers/usb/dwc2/hcd.c
1431
chan->hc_num);
drivers/usb/dwc2/hcd.c
1433
chan->data_pid_start);
drivers/usb/dwc2/hcd.c
1434
dev_vdbg(hsotg->dev, " NTD: %d\n", chan->ntd - 1);
drivers/usb/dwc2/hcd.c
1437
dwc2_writel(hsotg, hctsiz, HCTSIZ(chan->hc_num));
drivers/usb/dwc2/hcd.c
1439
dma_sync_single_for_device(hsotg->dev, chan->desc_list_addr,
drivers/usb/dwc2/hcd.c
1440
chan->desc_list_sz, DMA_TO_DEVICE);
drivers/usb/dwc2/hcd.c
1442
dwc2_writel(hsotg, chan->desc_list_addr, HCDMA(chan->hc_num));
drivers/usb/dwc2/hcd.c
1444
if (dbg_hc(chan))
drivers/usb/dwc2/hcd.c
1446
&chan->desc_list_addr, chan->hc_num);
drivers/usb/dwc2/hcd.c
1448
hcchar = dwc2_readl(hsotg, HCCHAR(chan->hc_num));
drivers/usb/dwc2/hcd.c
1450
hcchar |= chan->multi_count << HCCHAR_MULTICNT_SHIFT &
drivers/usb/dwc2/hcd.c
1456
__func__, chan->hc_num, hcchar);
drivers/usb/dwc2/hcd.c
1462
if (dbg_hc(chan))
drivers/usb/dwc2/hcd.c
1467
dwc2_writel(hsotg, hcchar, HCCHAR(chan->hc_num));
drivers/usb/dwc2/hcd.c
1468
if (dbg_hc(chan))
drivers/usb/dwc2/hcd.c
1470
chan->hc_num);
drivers/usb/dwc2/hcd.c
1472
chan->xfer_started = 1;
drivers/usb/dwc2/hcd.c
1473
chan->requests++;
drivers/usb/dwc2/hcd.c
1497
struct dwc2_host_chan *chan)
drivers/usb/dwc2/hcd.c
1499
if (dbg_hc(chan))
drivers/usb/dwc2/hcd.c
1501
chan->hc_num);
drivers/usb/dwc2/hcd.c
1503
if (chan->do_split)
drivers/usb/dwc2/hcd.c
1507
if (chan->data_pid_start == DWC2_HC_PID_SETUP)
drivers/usb/dwc2/hcd.c
1511
if (chan->ep_is_in) {
drivers/usb/dwc2/hcd.c
1524
u32 hcchar = dwc2_readl(hsotg, HCCHAR(chan->hc_num));
drivers/usb/dwc2/hcd.c
1526
dwc2_hc_set_even_odd_frame(hsotg, chan, &hcchar);
drivers/usb/dwc2/hcd.c
1529
if (dbg_hc(chan))
drivers/usb/dwc2/hcd.c
1532
dwc2_writel(hsotg, hcchar, HCCHAR(chan->hc_num));
drivers/usb/dwc2/hcd.c
1533
chan->requests++;
drivers/usb/dwc2/hcd.c
1539
if (chan->xfer_count < chan->xfer_len) {
drivers/usb/dwc2/hcd.c
1540
if (chan->ep_type == USB_ENDPOINT_XFER_INT ||
drivers/usb/dwc2/hcd.c
1541
chan->ep_type == USB_ENDPOINT_XFER_ISOC) {
drivers/usb/dwc2/hcd.c
1543
HCCHAR(chan->hc_num));
drivers/usb/dwc2/hcd.c
1545
dwc2_hc_set_even_odd_frame(hsotg, chan,
drivers/usb/dwc2/hcd.c
1550
dwc2_hc_write_packet(hsotg, chan);
drivers/usb/dwc2/hcd.c
1551
chan->requests++;
drivers/usb/dwc2/hcd.c
2271
struct dwc2_host_chan *chan, *chan_tmp;
drivers/usb/dwc2/hcd.c
2290
list_for_each_entry_safe(chan, chan_tmp, &hsotg->free_hc_list,
drivers/usb/dwc2/hcd.c
2292
list_del_init(&chan->hc_list_entry);
drivers/usb/dwc2/hcd.c
2296
chan = hsotg->hc_ptr_array[i];
drivers/usb/dwc2/hcd.c
2297
list_add_tail(&chan->hc_list_entry, &hsotg->free_hc_list);
drivers/usb/dwc2/hcd.c
2298
dwc2_hc_cleanup(hsotg, chan);
drivers/usb/dwc2/hcd.c
2306
struct dwc2_host_chan *chan,
drivers/usb/dwc2/hcd.c
2311
chan->do_split = 1;
drivers/usb/dwc2/hcd.c
2312
chan->xact_pos = qtd->isoc_split_pos;
drivers/usb/dwc2/hcd.c
2313
chan->complete_split = qtd->complete_split;
drivers/usb/dwc2/hcd.c
2315
chan->hub_addr = (u8)hub_addr;
drivers/usb/dwc2/hcd.c
2316
chan->hub_port = (u8)hub_port;
drivers/usb/dwc2/hcd.c
2320
struct dwc2_host_chan *chan,
drivers/usb/dwc2/hcd.c
2328
chan->ep_type = USB_ENDPOINT_XFER_CONTROL;
drivers/usb/dwc2/hcd.c
2333
chan->do_ping = 0;
drivers/usb/dwc2/hcd.c
2334
chan->ep_is_in = 0;
drivers/usb/dwc2/hcd.c
2335
chan->data_pid_start = DWC2_HC_PID_SETUP;
drivers/usb/dwc2/hcd.c
2337
chan->xfer_dma = urb->setup_dma;
drivers/usb/dwc2/hcd.c
2339
chan->xfer_buf = urb->setup_packet;
drivers/usb/dwc2/hcd.c
2340
chan->xfer_len = 8;
drivers/usb/dwc2/hcd.c
2345
chan->data_pid_start = qtd->data_toggle;
drivers/usb/dwc2/hcd.c
2355
chan->ep_is_in = 1;
drivers/usb/dwc2/hcd.c
2357
chan->ep_is_in =
drivers/usb/dwc2/hcd.c
2359
if (chan->ep_is_in)
drivers/usb/dwc2/hcd.c
2360
chan->do_ping = 0;
drivers/usb/dwc2/hcd.c
2361
chan->data_pid_start = DWC2_HC_PID_DATA1;
drivers/usb/dwc2/hcd.c
2362
chan->xfer_len = 0;
drivers/usb/dwc2/hcd.c
2364
chan->xfer_dma = hsotg->status_buf_dma;
drivers/usb/dwc2/hcd.c
2366
chan->xfer_buf = hsotg->status_buf;
drivers/usb/dwc2/hcd.c
2372
chan->ep_type = USB_ENDPOINT_XFER_BULK;
drivers/usb/dwc2/hcd.c
2376
chan->ep_type = USB_ENDPOINT_XFER_INT;
drivers/usb/dwc2/hcd.c
2380
chan->ep_type = USB_ENDPOINT_XFER_ISOC;
drivers/usb/dwc2/hcd.c
2388
chan->xfer_dma = urb->dma;
drivers/usb/dwc2/hcd.c
2389
chan->xfer_dma += frame_desc->offset +
drivers/usb/dwc2/hcd.c
2392
chan->xfer_buf = urb->buf;
drivers/usb/dwc2/hcd.c
2393
chan->xfer_buf += frame_desc->offset +
drivers/usb/dwc2/hcd.c
2397
chan->xfer_len = frame_desc->length - qtd->isoc_split_offset;
drivers/usb/dwc2/hcd.c
2399
if (chan->xact_pos == DWC2_HCSPLT_XACTPOS_ALL) {
drivers/usb/dwc2/hcd.c
2400
if (chan->xfer_len <= 188)
drivers/usb/dwc2/hcd.c
2401
chan->xact_pos = DWC2_HCSPLT_XACTPOS_ALL;
drivers/usb/dwc2/hcd.c
2403
chan->xact_pos = DWC2_HCSPLT_XACTPOS_BEGIN;
drivers/usb/dwc2/hcd.c
2411
struct dwc2_host_chan *chan)
drivers/usb/dwc2/hcd.c
2414
chan->max_packet > DWC2_KMEM_UNALIGNED_BUF_SIZE)
drivers/usb/dwc2/hcd.c
2430
chan->align_buf = 0;
drivers/usb/dwc2/hcd.c
2434
chan->align_buf = qh->dw_align_buf_dma;
drivers/usb/dwc2/hcd.c
2546
struct dwc2_host_chan *chan;
drivers/usb/dwc2/hcd.c
2563
chan = list_first_entry(&hsotg->free_hc_list, struct dwc2_host_chan,
drivers/usb/dwc2/hcd.c
2567
list_del_init(&chan->hc_list_entry);
drivers/usb/dwc2/hcd.c
2571
qh->channel = chan;
drivers/usb/dwc2/hcd.c
2578
chan->dev_addr = dwc2_hcd_get_dev_addr(&urb->pipe_info);
drivers/usb/dwc2/hcd.c
2579
chan->ep_num = dwc2_hcd_get_ep_num(&urb->pipe_info);
drivers/usb/dwc2/hcd.c
2580
chan->speed = qh->dev_speed;
drivers/usb/dwc2/hcd.c
2581
chan->max_packet = qh->maxp;
drivers/usb/dwc2/hcd.c
2583
chan->xfer_started = 0;
drivers/usb/dwc2/hcd.c
2584
chan->halt_status = DWC2_HC_XFER_NO_HALT_STATUS;
drivers/usb/dwc2/hcd.c
2585
chan->error_state = (qtd->error_count > 0);
drivers/usb/dwc2/hcd.c
2586
chan->halt_on_queue = 0;
drivers/usb/dwc2/hcd.c
2587
chan->halt_pending = 0;
drivers/usb/dwc2/hcd.c
2588
chan->requests = 0;
drivers/usb/dwc2/hcd.c
2597
chan->ep_is_in = (dwc2_hcd_is_pipe_in(&urb->pipe_info) != 0);
drivers/usb/dwc2/hcd.c
2598
if (chan->ep_is_in)
drivers/usb/dwc2/hcd.c
2599
chan->do_ping = 0;
drivers/usb/dwc2/hcd.c
2601
chan->do_ping = qh->ping_state;
drivers/usb/dwc2/hcd.c
2603
chan->data_pid_start = qh->data_toggle;
drivers/usb/dwc2/hcd.c
2604
chan->multi_count = 1;
drivers/usb/dwc2/hcd.c
2611
chan->xfer_dma = urb->dma + urb->actual_length;
drivers/usb/dwc2/hcd.c
2613
chan->xfer_buf = (u8 *)urb->buf + urb->actual_length;
drivers/usb/dwc2/hcd.c
2615
chan->xfer_len = urb->length - urb->actual_length;
drivers/usb/dwc2/hcd.c
2616
chan->xfer_count = 0;
drivers/usb/dwc2/hcd.c
2620
dwc2_hc_init_split(hsotg, chan, qtd, urb);
drivers/usb/dwc2/hcd.c
2622
chan->do_split = 0;
drivers/usb/dwc2/hcd.c
2625
dwc2_hc_init_xfer(hsotg, chan, qtd);
drivers/usb/dwc2/hcd.c
2629
chan->ep_is_in && (chan->xfer_dma & 0x3)) {
drivers/usb/dwc2/hcd.c
2631
if (dwc2_alloc_split_dma_aligned_buf(hsotg, qh, chan)) {
drivers/usb/dwc2/hcd.c
2635
chan->align_buf = 0;
drivers/usb/dwc2/hcd.c
2636
chan->multi_count = 0;
drivers/usb/dwc2/hcd.c
2637
list_add_tail(&chan->hc_list_entry,
drivers/usb/dwc2/hcd.c
2649
(chan->xfer_dma & 0x3));
drivers/usb/dwc2/hcd.c
2650
chan->align_buf = 0;
drivers/usb/dwc2/hcd.c
2653
if (chan->ep_type == USB_ENDPOINT_XFER_INT ||
drivers/usb/dwc2/hcd.c
2654
chan->ep_type == USB_ENDPOINT_XFER_ISOC)
drivers/usb/dwc2/hcd.c
2659
chan->multi_count = qh->maxp_mult;
drivers/usb/dwc2/hcd.c
2662
chan->desc_list_addr = qh->desc_list_dma;
drivers/usb/dwc2/hcd.c
2663
chan->desc_list_sz = qh->desc_list_sz;
drivers/usb/dwc2/hcd.c
2666
dwc2_hc_init(hsotg, chan);
drivers/usb/dwc2/hcd.c
2667
chan->qh = qh;
drivers/usb/dwc2/hcd.c
2789
struct dwc2_host_chan *chan,
drivers/usb/dwc2/hcd.c
2794
if (chan->do_split)
drivers/usb/dwc2/hcd.c
2796
list_move_tail(&chan->split_order_list_entry,
drivers/usb/dwc2/hcd.c
2799
if (hsotg->params.host_dma && chan->qh) {
drivers/usb/dwc2/hcd.c
2801
if (!chan->xfer_started ||
drivers/usb/dwc2/hcd.c
2802
chan->ep_type == USB_ENDPOINT_XFER_ISOC) {
drivers/usb/dwc2/hcd.c
2803
dwc2_hcd_start_xfer_ddma(hsotg, chan->qh);
drivers/usb/dwc2/hcd.c
2804
chan->qh->ping_state = 0;
drivers/usb/dwc2/hcd.c
2806
} else if (!chan->xfer_started) {
drivers/usb/dwc2/hcd.c
2807
dwc2_hc_start_transfer(hsotg, chan);
drivers/usb/dwc2/hcd.c
2808
chan->qh->ping_state = 0;
drivers/usb/dwc2/hcd.c
2810
} else if (chan->halt_pending) {
drivers/usb/dwc2/hcd.c
2812
} else if (chan->halt_on_queue) {
drivers/usb/dwc2/hcd.c
2813
dwc2_hc_halt(hsotg, chan, chan->halt_status);
drivers/usb/dwc2/hcd.c
2814
} else if (chan->do_ping) {
drivers/usb/dwc2/hcd.c
2815
if (!chan->xfer_started)
drivers/usb/dwc2/hcd.c
2816
dwc2_hc_start_transfer(hsotg, chan);
drivers/usb/dwc2/hcd.c
2817
} else if (!chan->ep_is_in ||
drivers/usb/dwc2/hcd.c
2818
chan->data_pid_start == DWC2_HC_PID_SETUP) {
drivers/usb/dwc2/hcd.c
2819
if ((fifo_dwords_avail * 4) >= chan->max_packet) {
drivers/usb/dwc2/hcd.c
2820
if (!chan->xfer_started) {
drivers/usb/dwc2/hcd.c
2821
dwc2_hc_start_transfer(hsotg, chan);
drivers/usb/dwc2/hcd.c
2824
retval = dwc2_hc_continue_transfer(hsotg, chan);
drivers/usb/dwc2/hcd.c
2830
if (!chan->xfer_started) {
drivers/usb/dwc2/hcd.c
2831
dwc2_hc_start_transfer(hsotg, chan);
drivers/usb/dwc2/hcd.c
2834
retval = dwc2_hc_continue_transfer(hsotg, chan);
drivers/usb/dwc2/hcd.c
3858
struct dwc2_host_chan *chan;
drivers/usb/dwc2/hcd.c
3874
chan = hsotg->hc_ptr_array[i];
drivers/usb/dwc2/hcd.c
3878
chan->dev_addr, chan->ep_num, chan->ep_is_in);
drivers/usb/dwc2/hcd.c
3879
dev_dbg(hsotg->dev, " speed: %d\n", chan->speed);
drivers/usb/dwc2/hcd.c
3880
dev_dbg(hsotg->dev, " ep_type: %d\n", chan->ep_type);
drivers/usb/dwc2/hcd.c
3881
dev_dbg(hsotg->dev, " max_packet: %d\n", chan->max_packet);
drivers/usb/dwc2/hcd.c
3883
chan->data_pid_start);
drivers/usb/dwc2/hcd.c
3884
dev_dbg(hsotg->dev, " multi_count: %d\n", chan->multi_count);
drivers/usb/dwc2/hcd.c
3886
chan->xfer_started);
drivers/usb/dwc2/hcd.c
3887
dev_dbg(hsotg->dev, " xfer_buf: %p\n", chan->xfer_buf);
drivers/usb/dwc2/hcd.c
3889
(unsigned long)chan->xfer_dma);
drivers/usb/dwc2/hcd.c
3890
dev_dbg(hsotg->dev, " xfer_len: %d\n", chan->xfer_len);
drivers/usb/dwc2/hcd.c
3891
dev_dbg(hsotg->dev, " xfer_count: %d\n", chan->xfer_count);
drivers/usb/dwc2/hcd.c
3893
chan->halt_on_queue);
drivers/usb/dwc2/hcd.c
3895
chan->halt_pending);
drivers/usb/dwc2/hcd.c
3896
dev_dbg(hsotg->dev, " halt_status: %d\n", chan->halt_status);
drivers/usb/dwc2/hcd.c
3897
dev_dbg(hsotg->dev, " do_split: %d\n", chan->do_split);
drivers/usb/dwc2/hcd.c
3899
chan->complete_split);
drivers/usb/dwc2/hcd.c
3900
dev_dbg(hsotg->dev, " hub_addr: %d\n", chan->hub_addr);
drivers/usb/dwc2/hcd.c
3901
dev_dbg(hsotg->dev, " hub_port: %d\n", chan->hub_port);
drivers/usb/dwc2/hcd.c
3902
dev_dbg(hsotg->dev, " xact_pos: %d\n", chan->xact_pos);
drivers/usb/dwc2/hcd.c
3903
dev_dbg(hsotg->dev, " requests: %d\n", chan->requests);
drivers/usb/dwc2/hcd.c
3904
dev_dbg(hsotg->dev, " qh: %p\n", chan->qh);
drivers/usb/dwc2/hcd.c
3906
if (chan->xfer_started) {
drivers/usb/dwc2/hcd.c
3921
if (!(chan->xfer_started && chan->qh))
drivers/usb/dwc2/hcd.c
3924
list_for_each_entry(qtd, &chan->qh->qtd_list, qtd_list_entry) {
drivers/usb/dwc2/hcd.c
403
struct dwc2_host_chan *chan)
drivers/usb/dwc2/hcd.c
414
if (!chan)
drivers/usb/dwc2/hcd.c
417
hcchar = dwc2_readl(hsotg, HCCHAR(chan->hc_num));
drivers/usb/dwc2/hcd.c
418
hcsplt = dwc2_readl(hsotg, HCSPLT(chan->hc_num));
drivers/usb/dwc2/hcd.c
419
hctsiz = dwc2_readl(hsotg, HCTSIZ(chan->hc_num));
drivers/usb/dwc2/hcd.c
420
hc_dma = dwc2_readl(hsotg, HCDMA(chan->hc_num));
drivers/usb/dwc2/hcd.c
422
dev_dbg(hsotg->dev, " Assigned to channel %p:\n", chan);
drivers/usb/dwc2/hcd.c
428
chan->dev_addr, chan->ep_num, chan->ep_is_in);
drivers/usb/dwc2/hcd.c
429
dev_dbg(hsotg->dev, " ep_type: %d\n", chan->ep_type);
drivers/usb/dwc2/hcd.c
430
dev_dbg(hsotg->dev, " max_packet: %d\n", chan->max_packet);
drivers/usb/dwc2/hcd.c
431
dev_dbg(hsotg->dev, " data_pid_start: %d\n", chan->data_pid_start);
drivers/usb/dwc2/hcd.c
432
dev_dbg(hsotg->dev, " xfer_started: %d\n", chan->xfer_started);
drivers/usb/dwc2/hcd.c
433
dev_dbg(hsotg->dev, " halt_status: %d\n", chan->halt_status);
drivers/usb/dwc2/hcd.c
434
dev_dbg(hsotg->dev, " xfer_buf: %p\n", chan->xfer_buf);
drivers/usb/dwc2/hcd.c
436
(unsigned long)chan->xfer_dma);
drivers/usb/dwc2/hcd.c
437
dev_dbg(hsotg->dev, " xfer_len: %d\n", chan->xfer_len);
drivers/usb/dwc2/hcd.c
438
dev_dbg(hsotg->dev, " qh: %p\n", chan->qh);
drivers/usb/dwc2/hcd.c
453
struct dwc2_host_chan *chan = hsotg->hc_ptr_array[i];
drivers/usb/dwc2/hcd.c
455
dev_dbg(hsotg->dev, " %2d: %p\n", i, chan);
drivers/usb/dwc2/hcd.c
496
struct dwc2_host_chan *chan)
drivers/usb/dwc2/hcd.c
500
switch (chan->ep_type) {
drivers/usb/dwc2/hcd.c
5043
struct dwc2_host_chan *chan = hsotg->hc_ptr_array[i];
drivers/usb/dwc2/hcd.c
5045
if (chan) {
drivers/usb/dwc2/hcd.c
5047
i, chan);
drivers/usb/dwc2/hcd.c
5049
kfree(chan);
drivers/usb/dwc2/hcd.c
508
if (chan->ep_is_in) {
drivers/usb/dwc2/hcd.c
513
if (chan->do_ping)
drivers/usb/dwc2/hcd.c
517
if (chan->do_split) {
drivers/usb/dwc2/hcd.c
519
if (chan->complete_split)
drivers/usb/dwc2/hcd.c
525
if (chan->error_state)
drivers/usb/dwc2/hcd.c
539
if (chan->ep_is_in)
drivers/usb/dwc2/hcd.c
541
if (chan->error_state)
drivers/usb/dwc2/hcd.c
543
if (chan->do_split) {
drivers/usb/dwc2/hcd.c
544
if (chan->complete_split)
drivers/usb/dwc2/hcd.c
558
if (chan->ep_is_in) {
drivers/usb/dwc2/hcd.c
568
dwc2_writel(hsotg, hcintmsk, HCINTMSK(chan->hc_num));
drivers/usb/dwc2/hcd.c
569
if (dbg_hc(chan))
drivers/usb/dwc2/hcd.c
574
struct dwc2_host_chan *chan)
drivers/usb/dwc2/hcd.c
583
if (dbg_hc(chan))
drivers/usb/dwc2/hcd.c
587
if (dbg_hc(chan))
drivers/usb/dwc2/hcd.c
589
if (chan->ep_type == USB_ENDPOINT_XFER_ISOC)
drivers/usb/dwc2/hcd.c
593
if (chan->error_state && !chan->do_split &&
drivers/usb/dwc2/hcd.c
594
chan->ep_type != USB_ENDPOINT_XFER_ISOC) {
drivers/usb/dwc2/hcd.c
595
if (dbg_hc(chan))
drivers/usb/dwc2/hcd.c
598
if (chan->ep_is_in) {
drivers/usb/dwc2/hcd.c
600
if (chan->ep_type != USB_ENDPOINT_XFER_INT)
drivers/usb/dwc2/hcd.c
605
dwc2_writel(hsotg, hcintmsk, HCINTMSK(chan->hc_num));
drivers/usb/dwc2/hcd.c
606
if (dbg_hc(chan))
drivers/usb/dwc2/hcd.c
611
struct dwc2_host_chan *chan)
drivers/usb/dwc2/hcd.c
616
if (dbg_hc(chan))
drivers/usb/dwc2/hcd.c
618
dwc2_hc_enable_dma_ints(hsotg, chan);
drivers/usb/dwc2/hcd.c
620
if (dbg_hc(chan))
drivers/usb/dwc2/hcd.c
622
dwc2_hc_enable_slave_ints(hsotg, chan);
drivers/usb/dwc2/hcd.c
627
intmsk |= 1 << chan->hc_num;
drivers/usb/dwc2/hcd.c
629
if (dbg_hc(chan))
drivers/usb/dwc2/hcd.c
636
if (dbg_hc(chan))
drivers/usb/dwc2/hcd.c
651
static void dwc2_hc_init(struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan)
drivers/usb/dwc2/hcd.c
653
u8 hc_num = chan->hc_num;
drivers/usb/dwc2/hcd.c
658
if (dbg_hc(chan))
drivers/usb/dwc2/hcd.c
667
dwc2_hc_enable_ints(hsotg, chan);
drivers/usb/dwc2/hcd.c
673
hcchar = chan->dev_addr << HCCHAR_DEVADDR_SHIFT & HCCHAR_DEVADDR_MASK;
drivers/usb/dwc2/hcd.c
674
hcchar |= chan->ep_num << HCCHAR_EPNUM_SHIFT & HCCHAR_EPNUM_MASK;
drivers/usb/dwc2/hcd.c
675
if (chan->ep_is_in)
drivers/usb/dwc2/hcd.c
677
if (chan->speed == USB_SPEED_LOW)
drivers/usb/dwc2/hcd.c
679
hcchar |= chan->ep_type << HCCHAR_EPTYPE_SHIFT & HCCHAR_EPTYPE_MASK;
drivers/usb/dwc2/hcd.c
680
hcchar |= chan->max_packet << HCCHAR_MPS_SHIFT & HCCHAR_MPS_MASK;
drivers/usb/dwc2/hcd.c
682
if (dbg_hc(chan)) {
drivers/usb/dwc2/hcd.c
689
chan->dev_addr);
drivers/usb/dwc2/hcd.c
691
chan->ep_num);
drivers/usb/dwc2/hcd.c
693
chan->ep_is_in);
drivers/usb/dwc2/hcd.c
695
chan->speed == USB_SPEED_LOW);
drivers/usb/dwc2/hcd.c
697
chan->ep_type);
drivers/usb/dwc2/hcd.c
699
chan->max_packet);
drivers/usb/dwc2/hcd.c
703
if (chan->do_split) {
drivers/usb/dwc2/hcd.c
704
if (dbg_hc(chan))
drivers/usb/dwc2/hcd.c
708
chan->complete_split ? "CSPLIT" : "SSPLIT");
drivers/usb/dwc2/hcd.c
709
if (chan->complete_split)
drivers/usb/dwc2/hcd.c
711
hcsplt |= chan->xact_pos << HCSPLT_XACTPOS_SHIFT &
drivers/usb/dwc2/hcd.c
713
hcsplt |= chan->hub_addr << HCSPLT_HUBADDR_SHIFT &
drivers/usb/dwc2/hcd.c
715
hcsplt |= chan->hub_port << HCSPLT_PRTADDR_SHIFT &
drivers/usb/dwc2/hcd.c
717
if (dbg_hc(chan)) {
drivers/usb/dwc2/hcd.c
719
chan->complete_split);
drivers/usb/dwc2/hcd.c
721
chan->xact_pos);
drivers/usb/dwc2/hcd.c
723
chan->hub_addr);
drivers/usb/dwc2/hcd.c
725
chan->hub_port);
drivers/usb/dwc2/hcd.c
727
chan->ep_is_in);
drivers/usb/dwc2/hcd.c
729
chan->max_packet);
drivers/usb/dwc2/hcd.c
731
chan->xfer_len);
drivers/usb/dwc2/hcd.c
766
void dwc2_hc_halt(struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan,
drivers/usb/dwc2/hcd.c
771
if (dbg_hc(chan))
drivers/usb/dwc2/hcd.c
782
if (!chan->do_split &&
drivers/usb/dwc2/hcd.c
783
(chan->ep_type == USB_ENDPOINT_XFER_ISOC ||
drivers/usb/dwc2/hcd.c
784
chan->ep_type == USB_ENDPOINT_XFER_INT)) {
drivers/usb/dwc2/hcd.c
805
dwc2_writel(hsotg, hcintmsk, HCINTMSK(chan->hc_num));
drivers/usb/dwc2/hcd.c
812
dwc2_writel(hsotg, ~hcintmsk, HCINT(chan->hc_num));
drivers/usb/dwc2/hcd.c
819
chan->halt_status = halt_status;
drivers/usb/dwc2/hcd.c
821
hcchar = dwc2_readl(hsotg, HCCHAR(chan->hc_num));
drivers/usb/dwc2/hcd.c
837
if (chan->halt_pending) {
drivers/usb/dwc2/hcd.c
845
__func__, chan->hc_num);
drivers/usb/dwc2/hcd.c
849
hcchar = dwc2_readl(hsotg, HCCHAR(chan->hc_num));
drivers/usb/dwc2/hcd.c
854
if (dbg_hc(chan))
drivers/usb/dwc2/hcd.c
858
if (dbg_hc(chan))
drivers/usb/dwc2/hcd.c
864
if (dbg_hc(chan))
drivers/usb/dwc2/hcd.c
869
if (chan->ep_type == USB_ENDPOINT_XFER_CONTROL ||
drivers/usb/dwc2/hcd.c
870
chan->ep_type == USB_ENDPOINT_XFER_BULK) {
drivers/usb/dwc2/hcd.c
889
if (dbg_hc(chan))
drivers/usb/dwc2/hcd.c
893
dwc2_writel(hsotg, hcchar, HCCHAR(chan->hc_num));
drivers/usb/dwc2/hcd.c
894
chan->halt_status = halt_status;
drivers/usb/dwc2/hcd.c
897
if (dbg_hc(chan))
drivers/usb/dwc2/hcd.c
899
chan->halt_pending = 1;
drivers/usb/dwc2/hcd.c
900
chan->halt_on_queue = 0;
drivers/usb/dwc2/hcd.c
902
if (dbg_hc(chan))
drivers/usb/dwc2/hcd.c
904
chan->halt_on_queue = 1;
drivers/usb/dwc2/hcd.c
907
if (dbg_hc(chan)) {
drivers/usb/dwc2/hcd.c
909
chan->hc_num);
drivers/usb/dwc2/hcd.c
913
chan->halt_pending);
drivers/usb/dwc2/hcd.c
915
chan->halt_on_queue);
drivers/usb/dwc2/hcd.c
917
chan->halt_status);
drivers/usb/dwc2/hcd.c
930
void dwc2_hc_cleanup(struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan)
drivers/usb/dwc2/hcd.c
934
chan->xfer_started = 0;
drivers/usb/dwc2/hcd.c
936
list_del_init(&chan->split_order_list_entry);
drivers/usb/dwc2/hcd.c
942
dwc2_writel(hsotg, 0, HCINTMSK(chan->hc_num));
drivers/usb/dwc2/hcd.c
945
dwc2_writel(hsotg, hcintmsk, HCINT(chan->hc_num));
drivers/usb/dwc2/hcd.c
959
struct dwc2_host_chan *chan, u32 *hcchar)
drivers/usb/dwc2/hcd.c
961
if (chan->ep_type == USB_ENDPOINT_XFER_INT ||
drivers/usb/dwc2/hcd.c
962
chan->ep_type == USB_ENDPOINT_XFER_ISOC) {
drivers/usb/dwc2/hcd.c
995
host_speed = (chan->speed != USB_SPEED_HIGH &&
drivers/usb/dwc2/hcd.c
996
!chan->do_split) ? chan->speed : USB_SPEED_HIGH;
drivers/usb/dwc2/hcd.h
425
struct dwc2_host_chan *chan;
drivers/usb/dwc2/hcd.h
452
void dwc2_hc_cleanup(struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan);
drivers/usb/dwc2/hcd.h
453
void dwc2_hc_halt(struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan,
drivers/usb/dwc2/hcd.h
456
struct dwc2_host_chan *chan);
drivers/usb/dwc2/hcd.h
562
struct dwc2_host_chan *chan, int chnum,
drivers/usb/dwc2/hcd.h
730
struct dwc2_host_chan *chan, int chnum,
drivers/usb/dwc2/hcd_ddma.c
1009
rc = dwc2_cmpl_host_isoc_dma_desc(hsotg, chan, qtd, qh,
drivers/usb/dwc2/hcd_ddma.c
1014
chan->speed);
drivers/usb/dwc2/hcd_ddma.c
1045
struct dwc2_host_chan *chan,
drivers/usb/dwc2/hcd_ddma.c
1054
if (chan->ep_is_in)
drivers/usb/dwc2/hcd_ddma.c
1092
chan->hc_num);
drivers/usb/dwc2/hcd_ddma.c
1096
if (chan->ep_type == USB_ENDPOINT_XFER_CONTROL) {
drivers/usb/dwc2/hcd_ddma.c
1127
struct dwc2_host_chan *chan,
drivers/usb/dwc2/hcd_ddma.c
1133
struct dwc2_qh *qh = chan->qh;
drivers/usb/dwc2/hcd_ddma.c
1155
failed = dwc2_update_non_isoc_urb_state_ddma(hsotg, chan, qtd, dma_desc,
drivers/usb/dwc2/hcd_ddma.c
1186
dwc2_hcd_save_data_toggle(hsotg, chan, chnum,
drivers/usb/dwc2/hcd_ddma.c
1199
struct dwc2_host_chan *chan,
drivers/usb/dwc2/hcd_ddma.c
1204
struct dwc2_qh *qh = chan->qh;
drivers/usb/dwc2/hcd_ddma.c
1209
if (chan->halt_status == DWC2_HC_XFER_URB_DEQUEUE) {
drivers/usb/dwc2/hcd_ddma.c
1224
if (dwc2_process_non_isoc_desc(hsotg, chan, chnum, qtd,
drivers/usb/dwc2/hcd_ddma.c
1244
dwc2_hcd_save_data_toggle(hsotg, chan, chnum, NULL);
drivers/usb/dwc2/hcd_ddma.c
1248
if (chan->hcint & HCINTMSK_NYET) {
drivers/usb/dwc2/hcd_ddma.c
1277
struct dwc2_host_chan *chan, int chnum,
drivers/usb/dwc2/hcd_ddma.c
1280
struct dwc2_qh *qh = chan->qh;
drivers/usb/dwc2/hcd_ddma.c
1284
if (chan->ep_type == USB_ENDPOINT_XFER_ISOC) {
drivers/usb/dwc2/hcd_ddma.c
1285
dwc2_complete_isoc_xfer_ddma(hsotg, chan, halt_status);
drivers/usb/dwc2/hcd_ddma.c
1307
dwc2_hc_halt(hsotg, chan, halt_status);
drivers/usb/dwc2/hcd_ddma.c
1318
if (!chan->halt_status)
drivers/usb/dwc2/hcd_ddma.c
1330
dwc2_complete_non_isoc_xfer_ddma(hsotg, chan, chnum,
drivers/usb/dwc2/hcd_ddma.c
203
struct dwc2_host_chan *chan;
drivers/usb/dwc2/hcd_ddma.c
222
chan = qh->channel;
drivers/usb/dwc2/hcd_ddma.c
232
hsotg->frame_list[j] |= 1 << chan->hc_num;
drivers/usb/dwc2/hcd_ddma.c
234
hsotg->frame_list[j] &= ~(1 << chan->hc_num);
drivers/usb/dwc2/hcd_ddma.c
250
chan->schinfo = 0;
drivers/usb/dwc2/hcd_ddma.c
251
if (chan->speed == USB_SPEED_HIGH && qh->host_interval) {
drivers/usb/dwc2/hcd_ddma.c
256
chan->schinfo |= j;
drivers/usb/dwc2/hcd_ddma.c
260
chan->schinfo = 0xff;
drivers/usb/dwc2/hcd_ddma.c
267
struct dwc2_host_chan *chan = qh->channel;
drivers/usb/dwc2/hcd_ddma.c
283
if (chan->qh) {
drivers/usb/dwc2/hcd_ddma.c
284
if (!list_empty(&chan->hc_list_entry))
drivers/usb/dwc2/hcd_ddma.c
285
list_del(&chan->hc_list_entry);
drivers/usb/dwc2/hcd_ddma.c
286
dwc2_hc_cleanup(hsotg, chan);
drivers/usb/dwc2/hcd_ddma.c
287
list_add_tail(&chan->hc_list_entry, &hsotg->free_hc_list);
drivers/usb/dwc2/hcd_ddma.c
288
chan->qh = NULL;
drivers/usb/dwc2/hcd_ddma.c
660
struct dwc2_host_chan *chan,
drivers/usb/dwc2/hcd_ddma.c
665
int len = chan->xfer_len;
drivers/usb/dwc2/hcd_ddma.c
667
if (len > HOST_DMA_NBYTES_LIMIT - (chan->max_packet - 1))
drivers/usb/dwc2/hcd_ddma.c
668
len = HOST_DMA_NBYTES_LIMIT - (chan->max_packet - 1);
drivers/usb/dwc2/hcd_ddma.c
670
if (chan->ep_is_in) {
drivers/usb/dwc2/hcd_ddma.c
673
if (len > 0 && chan->max_packet)
drivers/usb/dwc2/hcd_ddma.c
674
num_packets = (len + chan->max_packet - 1)
drivers/usb/dwc2/hcd_ddma.c
675
/ chan->max_packet;
drivers/usb/dwc2/hcd_ddma.c
681
len = num_packets * chan->max_packet;
drivers/usb/dwc2/hcd_ddma.c
691
dma_desc->buf = (u32)chan->xfer_dma;
drivers/usb/dwc2/hcd_ddma.c
703
if (len > chan->xfer_len) {
drivers/usb/dwc2/hcd_ddma.c
704
chan->xfer_len = 0;
drivers/usb/dwc2/hcd_ddma.c
706
chan->xfer_dma += len;
drivers/usb/dwc2/hcd_ddma.c
707
chan->xfer_len -= len;
drivers/usb/dwc2/hcd_ddma.c
715
struct dwc2_host_chan *chan = qh->channel;
drivers/usb/dwc2/hcd_ddma.c
719
(unsigned long)chan->xfer_dma, chan->xfer_len);
drivers/usb/dwc2/hcd_ddma.c
733
chan->xfer_dma = qtd->urb->dma +
drivers/usb/dwc2/hcd_ddma.c
735
chan->xfer_len = qtd->urb->length -
drivers/usb/dwc2/hcd_ddma.c
738
(unsigned long)chan->xfer_dma, chan->xfer_len);
drivers/usb/dwc2/hcd_ddma.c
756
dwc2_fill_host_dma_desc(hsotg, chan, qtd, qh, n_desc);
drivers/usb/dwc2/hcd_ddma.c
764
} while (chan->xfer_len > 0 &&
drivers/usb/dwc2/hcd_ddma.c
794
chan->ntd = n_desc;
drivers/usb/dwc2/hcd_ddma.c
820
struct dwc2_host_chan *chan = qh->channel;
drivers/usb/dwc2/hcd_ddma.c
823
switch (chan->ep_type) {
drivers/usb/dwc2/hcd_ddma.c
827
dwc2_hc_start_transfer_ddma(hsotg, chan);
drivers/usb/dwc2/hcd_ddma.c
832
dwc2_hc_start_transfer_ddma(hsotg, chan);
drivers/usb/dwc2/hcd_ddma.c
839
if (!chan->xfer_started) {
drivers/usb/dwc2/hcd_ddma.c
847
chan->ntd = dwc2_max_desc_num(qh);
drivers/usb/dwc2/hcd_ddma.c
850
dwc2_hc_start_transfer_ddma(hsotg, chan);
drivers/usb/dwc2/hcd_ddma.c
863
struct dwc2_host_chan *chan,
drivers/usb/dwc2/hcd_ddma.c
891
if (chan->ep_is_in)
drivers/usb/dwc2/hcd_ddma.c
924
if (chan->halt_status == DWC2_HC_XFER_URB_DEQUEUE)
drivers/usb/dwc2/hcd_ddma.c
939
struct dwc2_host_chan *chan,
drivers/usb/dwc2/hcd_ddma.c
948
qh = chan->qh;
drivers/usb/dwc2/hcd_ddma.c
951
if (chan->halt_status == DWC2_HC_XFER_URB_DEQUEUE) {
drivers/usb/dwc2/hcd_intr.c
100
chan->qh->tt_buffer_dirty = 0;
drivers/usb/dwc2/hcd_intr.c
1014
urb_xfer_done = dwc2_update_urb_state(hsotg, chan,
drivers/usb/dwc2/hcd_intr.c
1021
dwc2_hcd_save_data_toggle(hsotg, chan, chnum,
drivers/usb/dwc2/hcd_intr.c
1035
dwc2_complete_non_periodic_xfer(hsotg, chan, chnum, qtd,
drivers/usb/dwc2/hcd_intr.c
1040
urb_xfer_done = dwc2_update_urb_state(hsotg, chan, chnum, urb,
drivers/usb/dwc2/hcd_intr.c
1049
dwc2_hcd_save_data_toggle(hsotg, chan, chnum, qtd);
drivers/usb/dwc2/hcd_intr.c
1050
dwc2_complete_non_periodic_xfer(hsotg, chan, chnum, qtd,
drivers/usb/dwc2/hcd_intr.c
1055
urb_xfer_done = dwc2_update_urb_state(hsotg, chan, chnum, urb,
drivers/usb/dwc2/hcd_intr.c
1069
dwc2_hcd_save_data_toggle(hsotg, chan, chnum, qtd);
drivers/usb/dwc2/hcd_intr.c
1070
dwc2_complete_periodic_xfer(hsotg, chan, chnum, qtd,
drivers/usb/dwc2/hcd_intr.c
1077
halt_status = dwc2_update_isoc_urb_state(hsotg, chan,
drivers/usb/dwc2/hcd_intr.c
1080
dwc2_complete_periodic_xfer(hsotg, chan, chnum, qtd,
drivers/usb/dwc2/hcd_intr.c
1094
struct dwc2_host_chan *chan, int chnum,
drivers/usb/dwc2/hcd_intr.c
1104
dwc2_hcd_complete_xfer_ddma(hsotg, chan, chnum,
drivers/usb/dwc2/hcd_intr.c
1127
chan->qh->data_toggle = 0;
drivers/usb/dwc2/hcd_intr.c
1131
dwc2_halt_channel(hsotg, chan, qtd, DWC2_HC_XFER_STALL);
drivers/usb/dwc2/hcd_intr.c
1144
struct dwc2_host_chan *chan, int chnum,
drivers/usb/dwc2/hcd_intr.c
1149
u32 xfer_length = dwc2_get_actual_xfer_length(hsotg, chan, chnum,
drivers/usb/dwc2/hcd_intr.c
1162
__func__, (chan->ep_is_in ? "IN" : "OUT"), chnum);
drivers/usb/dwc2/hcd_intr.c
1164
chan->start_pkt_count);
drivers/usb/dwc2/hcd_intr.c
1167
dev_vdbg(hsotg->dev, " chan->max_packet %d\n", chan->max_packet);
drivers/usb/dwc2/hcd_intr.c
1181
struct dwc2_host_chan *chan, int chnum,
drivers/usb/dwc2/hcd_intr.c
1194
if (dbg_hc(chan))
drivers/usb/dwc2/hcd_intr.c
1217
if (chan->do_split) {
drivers/usb/dwc2/hcd_intr.c
1218
if (chan->complete_split)
drivers/usb/dwc2/hcd_intr.c
1223
!(chan->ep_type == USB_ENDPOINT_XFER_CONTROL &&
drivers/usb/dwc2/hcd_intr.c
1224
chan->ep_is_in);
drivers/usb/dwc2/hcd_intr.c
1225
dwc2_halt_channel(hsotg, chan, qtd, DWC2_HC_XFER_NAK);
drivers/usb/dwc2/hcd_intr.c
1232
if (hsotg->params.host_dma && chan->ep_is_in) {
drivers/usb/dwc2/hcd_intr.c
1250
if (!chan->qh->ping_state) {
drivers/usb/dwc2/hcd_intr.c
1251
dwc2_update_urb_state_abn(hsotg, chan, chnum, qtd->urb,
drivers/usb/dwc2/hcd_intr.c
1253
dwc2_hcd_save_data_toggle(hsotg, chan, chnum, qtd);
drivers/usb/dwc2/hcd_intr.c
1255
if (chan->speed == USB_SPEED_HIGH)
drivers/usb/dwc2/hcd_intr.c
1256
chan->qh->ping_state = 1;
drivers/usb/dwc2/hcd_intr.c
1264
dwc2_halt_channel(hsotg, chan, qtd, DWC2_HC_XFER_NAK);
drivers/usb/dwc2/hcd_intr.c
1268
dwc2_halt_channel(hsotg, chan, qtd, DWC2_HC_XFER_NAK);
drivers/usb/dwc2/hcd_intr.c
1286
struct dwc2_host_chan *chan, int chnum,
drivers/usb/dwc2/hcd_intr.c
1291
if (dbg_hc(chan))
drivers/usb/dwc2/hcd_intr.c
1295
if (chan->do_split) {
drivers/usb/dwc2/hcd_intr.c
1297
if (!chan->ep_is_in &&
drivers/usb/dwc2/hcd_intr.c
1298
chan->data_pid_start != DWC2_HC_PID_SETUP)
drivers/usb/dwc2/hcd_intr.c
1299
qtd->ssplit_out_xfer_count = chan->xfer_len;
drivers/usb/dwc2/hcd_intr.c
1301
if (chan->ep_type != USB_ENDPOINT_XFER_ISOC || chan->ep_is_in) {
drivers/usb/dwc2/hcd_intr.c
1303
dwc2_halt_channel(hsotg, chan, qtd, DWC2_HC_XFER_ACK);
drivers/usb/dwc2/hcd_intr.c
1306
switch (chan->xact_pos) {
drivers/usb/dwc2/hcd_intr.c
1337
if (chan->qh->ping_state) {
drivers/usb/dwc2/hcd_intr.c
1338
chan->qh->ping_state = 0;
drivers/usb/dwc2/hcd_intr.c
1346
dwc2_halt_channel(hsotg, chan, qtd, DWC2_HC_XFER_ACK);
drivers/usb/dwc2/hcd_intr.c
1365
struct dwc2_host_chan *chan, int chnum,
drivers/usb/dwc2/hcd_intr.c
1368
if (dbg_hc(chan))
drivers/usb/dwc2/hcd_intr.c
1376
if (chan->do_split && chan->complete_split) {
drivers/usb/dwc2/hcd_intr.c
1377
if (chan->ep_is_in && chan->ep_type == USB_ENDPOINT_XFER_ISOC &&
drivers/usb/dwc2/hcd_intr.c
1385
dwc2_release_channel(hsotg, chan, qtd,
drivers/usb/dwc2/hcd_intr.c
1388
dwc2_release_channel(hsotg, chan, qtd,
drivers/usb/dwc2/hcd_intr.c
1394
if (chan->ep_type == USB_ENDPOINT_XFER_INT ||
drivers/usb/dwc2/hcd_intr.c
1395
chan->ep_type == USB_ENDPOINT_XFER_ISOC) {
drivers/usb/dwc2/hcd_intr.c
1396
struct dwc2_qh *qh = chan->qh;
drivers/usb/dwc2/hcd_intr.c
1456
dwc2_halt_channel(hsotg, chan, qtd,
drivers/usb/dwc2/hcd_intr.c
1463
dwc2_halt_channel(hsotg, chan, qtd, DWC2_HC_XFER_NYET);
drivers/usb/dwc2/hcd_intr.c
1467
chan->qh->ping_state = 1;
drivers/usb/dwc2/hcd_intr.c
1470
dwc2_update_urb_state_abn(hsotg, chan, chnum, qtd->urb, qtd,
drivers/usb/dwc2/hcd_intr.c
1472
dwc2_hcd_save_data_toggle(hsotg, chan, chnum, qtd);
drivers/usb/dwc2/hcd_intr.c
1478
dwc2_halt_channel(hsotg, chan, qtd, DWC2_HC_XFER_NYET);
drivers/usb/dwc2/hcd_intr.c
1489
struct dwc2_host_chan *chan, int chnum,
drivers/usb/dwc2/hcd_intr.c
1495
dwc2_hc_handle_tt_clear(hsotg, chan, qtd);
drivers/usb/dwc2/hcd_intr.c
1498
dwc2_hcd_complete_xfer_ddma(hsotg, chan, chnum,
drivers/usb/dwc2/hcd_intr.c
1503
if (chan->ep_type != USB_ENDPOINT_XFER_ISOC) {
drivers/usb/dwc2/hcd_intr.c
1505
dwc2_halt_channel(hsotg, chan, qtd, DWC2_HC_XFER_BABBLE_ERR);
drivers/usb/dwc2/hcd_intr.c
1509
halt_status = dwc2_update_isoc_urb_state(hsotg, chan, chnum,
drivers/usb/dwc2/hcd_intr.c
1511
dwc2_halt_channel(hsotg, chan, qtd, halt_status);
drivers/usb/dwc2/hcd_intr.c
1523
struct dwc2_host_chan *chan, int chnum,
drivers/usb/dwc2/hcd_intr.c
1539
dwc2_hc_handle_tt_clear(hsotg, chan, qtd);
drivers/usb/dwc2/hcd_intr.c
1575
switch (chan->speed) {
drivers/usb/dwc2/hcd_intr.c
159
struct dwc2_host_chan *chan;
drivers/usb/dwc2/hcd_intr.c
1604
dwc2_hcd_complete_xfer_ddma(hsotg, chan, chnum,
drivers/usb/dwc2/hcd_intr.c
1616
dwc2_hc_halt(hsotg, chan, DWC2_HC_XFER_AHB_ERR);
drivers/usb/dwc2/hcd_intr.c
1627
struct dwc2_host_chan *chan, int chnum,
drivers/usb/dwc2/hcd_intr.c
1633
dwc2_hc_handle_tt_clear(hsotg, chan, qtd);
drivers/usb/dwc2/hcd_intr.c
1636
dwc2_hcd_complete_xfer_ddma(hsotg, chan, chnum,
drivers/usb/dwc2/hcd_intr.c
1645
if (!chan->qh->ping_state) {
drivers/usb/dwc2/hcd_intr.c
1646
dwc2_update_urb_state_abn(hsotg, chan, chnum, qtd->urb,
drivers/usb/dwc2/hcd_intr.c
1648
dwc2_hcd_save_data_toggle(hsotg, chan, chnum, qtd);
drivers/usb/dwc2/hcd_intr.c
1649
if (!chan->ep_is_in && chan->speed == USB_SPEED_HIGH)
drivers/usb/dwc2/hcd_intr.c
1650
chan->qh->ping_state = 1;
drivers/usb/dwc2/hcd_intr.c
1657
dwc2_halt_channel(hsotg, chan, qtd, DWC2_HC_XFER_XACT_ERR);
drivers/usb/dwc2/hcd_intr.c
166
chan = hsotg->hc_ptr_array[chnum];
drivers/usb/dwc2/hcd_intr.c
1661
if (chan->do_split && chan->complete_split)
drivers/usb/dwc2/hcd_intr.c
1663
dwc2_halt_channel(hsotg, chan, qtd, DWC2_HC_XFER_XACT_ERR);
drivers/usb/dwc2/hcd_intr.c
1669
halt_status = dwc2_update_isoc_urb_state(hsotg, chan,
drivers/usb/dwc2/hcd_intr.c
167
if (!chan) {
drivers/usb/dwc2/hcd_intr.c
1671
dwc2_halt_channel(hsotg, chan, qtd, halt_status);
drivers/usb/dwc2/hcd_intr.c
1685
struct dwc2_host_chan *chan, int chnum,
drivers/usb/dwc2/hcd_intr.c
1690
if (dbg_hc(chan))
drivers/usb/dwc2/hcd_intr.c
1694
dwc2_hc_handle_tt_clear(hsotg, chan, qtd);
drivers/usb/dwc2/hcd_intr.c
1701
dwc2_halt_channel(hsotg, chan, qtd, DWC2_HC_XFER_FRAME_OVERRUN);
drivers/usb/dwc2/hcd_intr.c
1704
halt_status = dwc2_update_isoc_urb_state(hsotg, chan, chnum,
drivers/usb/dwc2/hcd_intr.c
1706
dwc2_halt_channel(hsotg, chan, qtd, halt_status);
drivers/usb/dwc2/hcd_intr.c
1718
struct dwc2_host_chan *chan, int chnum,
drivers/usb/dwc2/hcd_intr.c
1724
if (chan->ep_is_in)
drivers/usb/dwc2/hcd_intr.c
1731
dwc2_hc_handle_tt_clear(hsotg, chan, qtd);
drivers/usb/dwc2/hcd_intr.c
1743
struct dwc2_host_chan *chan, int chnum,
drivers/usb/dwc2/hcd_intr.c
1752
if (chan->halt_status == DWC2_HC_XFER_NO_HALT_STATUS) {
drivers/usb/dwc2/hcd_intr.c
1769
chan->hcint, hcintmsk, hcsplt);
drivers/usb/dwc2/hcd_intr.c
1789
chan->halt_pending = 0;
drivers/usb/dwc2/hcd_intr.c
1790
dwc2_halt_channel(hsotg, chan, qtd, chan->halt_status);
drivers/usb/dwc2/hcd_intr.c
1803
struct dwc2_host_chan *chan, int chnum,
drivers/usb/dwc2/hcd_intr.c
1809
if (dbg_hc(chan))
drivers/usb/dwc2/hcd_intr.c
181
chan->data_pid_start);
drivers/usb/dwc2/hcd_intr.c
1819
if (chan->speed == USB_SPEED_HIGH && !chan->ep_is_in &&
drivers/usb/dwc2/hcd_intr.c
1820
(chan->ep_type == USB_ENDPOINT_XFER_CONTROL ||
drivers/usb/dwc2/hcd_intr.c
1821
chan->ep_type == USB_ENDPOINT_XFER_BULK)) {
drivers/usb/dwc2/hcd_intr.c
1826
if (chan->halt_status == DWC2_HC_XFER_URB_DEQUEUE ||
drivers/usb/dwc2/hcd_intr.c
1827
(chan->halt_status == DWC2_HC_XFER_AHB_ERR &&
drivers/usb/dwc2/hcd_intr.c
1830
dwc2_hcd_complete_xfer_ddma(hsotg, chan, chnum,
drivers/usb/dwc2/hcd_intr.c
1831
chan->halt_status);
drivers/usb/dwc2/hcd_intr.c
1839
dwc2_release_channel(hsotg, chan, qtd,
drivers/usb/dwc2/hcd_intr.c
1840
chan->halt_status);
drivers/usb/dwc2/hcd_intr.c
1846
if (chan->hcint & HCINTMSK_XFERCOMPL) {
drivers/usb/dwc2/hcd_intr.c
1854
if (chan->ep_type == USB_ENDPOINT_XFER_ISOC && !chan->ep_is_in)
drivers/usb/dwc2/hcd_intr.c
1855
dwc2_hc_ack_intr(hsotg, chan, chnum, qtd);
drivers/usb/dwc2/hcd_intr.c
1856
dwc2_hc_xfercomp_intr(hsotg, chan, chnum, qtd);
drivers/usb/dwc2/hcd_intr.c
1857
} else if (chan->hcint & HCINTMSK_STALL) {
drivers/usb/dwc2/hcd_intr.c
1858
dwc2_hc_stall_intr(hsotg, chan, chnum, qtd);
drivers/usb/dwc2/hcd_intr.c
1859
} else if ((chan->hcint & HCINTMSK_XACTERR) &&
drivers/usb/dwc2/hcd_intr.c
1862
if (chan->hcint &
drivers/usb/dwc2/hcd_intr.c
1878
dwc2_hc_xacterr_intr(hsotg, chan, chnum, qtd);
drivers/usb/dwc2/hcd_intr.c
1879
} else if ((chan->hcint & HCINTMSK_XCS_XACT) &&
drivers/usb/dwc2/hcd_intr.c
1881
dwc2_hc_xacterr_intr(hsotg, chan, chnum, qtd);
drivers/usb/dwc2/hcd_intr.c
1882
} else if ((chan->hcint & HCINTMSK_AHBERR) &&
drivers/usb/dwc2/hcd_intr.c
1884
dwc2_hc_ahberr_intr(hsotg, chan, chnum, qtd);
drivers/usb/dwc2/hcd_intr.c
1885
} else if (chan->hcint & HCINTMSK_BBLERR) {
drivers/usb/dwc2/hcd_intr.c
1886
dwc2_hc_babble_intr(hsotg, chan, chnum, qtd);
drivers/usb/dwc2/hcd_intr.c
1887
} else if (chan->hcint & HCINTMSK_FRMOVRUN) {
drivers/usb/dwc2/hcd_intr.c
1888
dwc2_hc_frmovrun_intr(hsotg, chan, chnum, qtd);
drivers/usb/dwc2/hcd_intr.c
189
dwc2_read_packet(hsotg, chan->xfer_buf, bcnt);
drivers/usb/dwc2/hcd_intr.c
1890
if (chan->hcint & HCINTMSK_NYET) {
drivers/usb/dwc2/hcd_intr.c
1897
dwc2_hc_nyet_intr(hsotg, chan, chnum, qtd);
drivers/usb/dwc2/hcd_intr.c
1898
} else if ((chan->hcint & HCINTMSK_NAK) &&
drivers/usb/dwc2/hcd_intr.c
1907
dwc2_hc_nak_intr(hsotg, chan, chnum, qtd);
drivers/usb/dwc2/hcd_intr.c
1908
} else if ((chan->hcint & HCINTMSK_ACK) &&
drivers/usb/dwc2/hcd_intr.c
1917
dwc2_hc_ack_intr(hsotg, chan, chnum, qtd);
drivers/usb/dwc2/hcd_intr.c
1919
if (chan->ep_type == USB_ENDPOINT_XFER_INT ||
drivers/usb/dwc2/hcd_intr.c
192
chan->xfer_count += bcnt;
drivers/usb/dwc2/hcd_intr.c
1920
chan->ep_type == USB_ENDPOINT_XFER_ISOC) {
drivers/usb/dwc2/hcd_intr.c
193
chan->xfer_buf += bcnt;
drivers/usb/dwc2/hcd_intr.c
1930
dwc2_halt_channel(hsotg, chan, qtd,
drivers/usb/dwc2/hcd_intr.c
1938
chan->hcint,
drivers/usb/dwc2/hcd_intr.c
1946
chan->hcint);
drivers/usb/dwc2/hcd_intr.c
1950
dwc2_update_urb_state_abn(hsotg, chan, chnum, qtd->urb,
drivers/usb/dwc2/hcd_intr.c
1964
dwc2_hcd_save_data_toggle(hsotg, chan, chnum, qtd);
drivers/usb/dwc2/hcd_intr.c
1965
dwc2_halt_channel(hsotg, chan, qtd, DWC2_HC_XFER_XACT_ERR);
drivers/usb/dwc2/hcd_intr.c
1981
struct dwc2_host_chan *chan, int chnum,
drivers/usb/dwc2/hcd_intr.c
1984
if (dbg_hc(chan))
drivers/usb/dwc2/hcd_intr.c
1989
dwc2_hc_chhltd_intr_dma(hsotg, chan, chnum, qtd);
drivers/usb/dwc2/hcd_intr.c
1991
if (!dwc2_halt_status_ok(hsotg, chan, chnum, qtd))
drivers/usb/dwc2/hcd_intr.c
1993
dwc2_release_channel(hsotg, chan, qtd, chan->halt_status);
drivers/usb/dwc2/hcd_intr.c
2019
struct dwc2_host_chan *chan;
drivers/usb/dwc2/hcd_intr.c
2022
chan = hsotg->hc_ptr_array[chnum];
drivers/usb/dwc2/hcd_intr.c
2029
if (!chan) {
drivers/usb/dwc2/hcd_intr.c
2034
if (dbg_hc(chan)) {
drivers/usb/dwc2/hcd_intr.c
2046
if (!chan->qh) {
drivers/usb/dwc2/hcd_intr.c
2051
chan->hcint = hcintraw;
drivers/usb/dwc2/hcd_intr.c
2058
if (chan->halt_status == DWC2_HC_XFER_URB_DEQUEUE) {
drivers/usb/dwc2/hcd_intr.c
2065
dwc2_hcd_complete_xfer_ddma(hsotg, chan, chnum,
drivers/usb/dwc2/hcd_intr.c
2066
chan->halt_status);
drivers/usb/dwc2/hcd_intr.c
2068
dwc2_release_channel(hsotg, chan, NULL,
drivers/usb/dwc2/hcd_intr.c
2069
chan->halt_status);
drivers/usb/dwc2/hcd_intr.c
2073
if (list_empty(&chan->qh->qtd_list)) {
drivers/usb/dwc2/hcd_intr.c
2082
chan->hcint, hcintmsk, hcint);
drivers/usb/dwc2/hcd_intr.c
2083
chan->halt_status = DWC2_HC_XFER_NO_HALT_STATUS;
drivers/usb/dwc2/hcd_intr.c
2085
chan->hcint = 0;
drivers/usb/dwc2/hcd_intr.c
2089
qtd = list_first_entry(&chan->qh->qtd_list, struct dwc2_qtd,
drivers/usb/dwc2/hcd_intr.c
2098
dwc2_hc_xfercomp_intr(hsotg, chan, chnum, qtd);
drivers/usb/dwc2/hcd_intr.c
2108
dwc2_hc_chhltd_intr(hsotg, chan, chnum, qtd);
drivers/usb/dwc2/hcd_intr.c
2109
if (!dwc2_check_qtd_still_ok(qtd, chan->qh))
drivers/usb/dwc2/hcd_intr.c
2113
dwc2_hc_ahberr_intr(hsotg, chan, chnum, qtd);
drivers/usb/dwc2/hcd_intr.c
2114
if (!dwc2_check_qtd_still_ok(qtd, chan->qh))
drivers/usb/dwc2/hcd_intr.c
2118
dwc2_hc_stall_intr(hsotg, chan, chnum, qtd);
drivers/usb/dwc2/hcd_intr.c
2119
if (!dwc2_check_qtd_still_ok(qtd, chan->qh))
drivers/usb/dwc2/hcd_intr.c
2123
dwc2_hc_nak_intr(hsotg, chan, chnum, qtd);
drivers/usb/dwc2/hcd_intr.c
2124
if (!dwc2_check_qtd_still_ok(qtd, chan->qh))
drivers/usb/dwc2/hcd_intr.c
2128
dwc2_hc_ack_intr(hsotg, chan, chnum, qtd);
drivers/usb/dwc2/hcd_intr.c
2129
if (!dwc2_check_qtd_still_ok(qtd, chan->qh))
drivers/usb/dwc2/hcd_intr.c
2133
dwc2_hc_nyet_intr(hsotg, chan, chnum, qtd);
drivers/usb/dwc2/hcd_intr.c
2134
if (!dwc2_check_qtd_still_ok(qtd, chan->qh))
drivers/usb/dwc2/hcd_intr.c
2138
dwc2_hc_xacterr_intr(hsotg, chan, chnum, qtd);
drivers/usb/dwc2/hcd_intr.c
2139
if (!dwc2_check_qtd_still_ok(qtd, chan->qh))
drivers/usb/dwc2/hcd_intr.c
2143
dwc2_hc_babble_intr(hsotg, chan, chnum, qtd);
drivers/usb/dwc2/hcd_intr.c
2144
if (!dwc2_check_qtd_still_ok(qtd, chan->qh))
drivers/usb/dwc2/hcd_intr.c
2148
dwc2_hc_frmovrun_intr(hsotg, chan, chnum, qtd);
drivers/usb/dwc2/hcd_intr.c
2149
if (!dwc2_check_qtd_still_ok(qtd, chan->qh))
drivers/usb/dwc2/hcd_intr.c
2153
dwc2_hc_datatglerr_intr(hsotg, chan, chnum, qtd);
drivers/usb/dwc2/hcd_intr.c
2154
if (!dwc2_check_qtd_still_ok(qtd, chan->qh))
drivers/usb/dwc2/hcd_intr.c
2159
chan->hcint = 0;
drivers/usb/dwc2/hcd_intr.c
2172
struct dwc2_host_chan *chan, *chan_tmp;
drivers/usb/dwc2/hcd_intr.c
2187
list_for_each_entry_safe(chan, chan_tmp, &hsotg->split_order,
drivers/usb/dwc2/hcd_intr.c
2189
int hc_num = chan->hc_num;
drivers/usb/dwc2/hcd_intr.c
407
struct dwc2_host_chan *chan, int chnum,
drivers/usb/dwc2/hcd_intr.c
417
if (chan->ep_is_in) {
drivers/usb/dwc2/hcd_intr.c
420
length = chan->xfer_len - count;
drivers/usb/dwc2/hcd_intr.c
423
} else if (chan->qh->do_split) {
drivers/usb/dwc2/hcd_intr.c
426
length = chan->xfer_len;
drivers/usb/dwc2/hcd_intr.c
439
length = (chan->start_pkt_count - count) * chan->max_packet;
drivers/usb/dwc2/hcd_intr.c
461
struct dwc2_host_chan *chan, int chnum,
drivers/usb/dwc2/hcd_intr.c
468
int xfer_length = dwc2_get_actual_xfer_length(hsotg, chan, chnum, qtd,
drivers/usb/dwc2/hcd_intr.c
481
if (xfer_length && chan->ep_type == USB_ENDPOINT_XFER_BULK &&
drivers/usb/dwc2/hcd_intr.c
484
!(urb->length % chan->max_packet)) {
drivers/usb/dwc2/hcd_intr.c
493
__func__, (chan->ep_is_in ? "IN" : "OUT"), chnum);
drivers/usb/dwc2/hcd_intr.c
494
dev_vdbg(hsotg->dev, " chan->xfer_len %d\n", chan->xfer_len);
drivers/usb/dwc2/hcd_intr.c
511
struct dwc2_host_chan *chan, int chnum,
drivers/usb/dwc2/hcd_intr.c
517
if (chan->ep_type != USB_ENDPOINT_XFER_CONTROL) {
drivers/usb/dwc2/hcd_intr.c
518
if (!chan->qh) {
drivers/usb/dwc2/hcd_intr.c
524
chan->qh->data_toggle = DWC2_HC_PID_DATA0;
drivers/usb/dwc2/hcd_intr.c
526
chan->qh->data_toggle = DWC2_HC_PID_DATA1;
drivers/usb/dwc2/hcd_intr.c
557
struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan,
drivers/usb/dwc2/hcd_intr.c
573
chan, chnum, qtd, halt_status, NULL);
drivers/usb/dwc2/hcd_intr.c
577
if (chan->ep_is_in)
drivers/usb/dwc2/hcd_intr.c
592
chan, chnum, qtd, halt_status, NULL);
drivers/usb/dwc2/hcd_intr.c
595
if (chan->qh->do_split &&
drivers/usb/dwc2/hcd_intr.c
596
chan->ep_type == USB_ENDPOINT_XFER_ISOC && chan->ep_is_in &&
drivers/usb/dwc2/hcd_intr.c
677
struct dwc2_host_chan *chan,
drivers/usb/dwc2/hcd_intr.c
68
struct dwc2_host_chan *chan,
drivers/usb/dwc2/hcd_intr.c
685
if (dbg_hc(chan))
drivers/usb/dwc2/hcd_intr.c
687
__func__, chan->hc_num, halt_status);
drivers/usb/dwc2/hcd_intr.c
723
dwc2_deactivate_qh(hsotg, chan->qh, free_qtd);
drivers/usb/dwc2/hcd_intr.c
731
if (!list_empty(&chan->hc_list_entry))
drivers/usb/dwc2/hcd_intr.c
732
list_del(&chan->hc_list_entry);
drivers/usb/dwc2/hcd_intr.c
733
dwc2_hc_cleanup(hsotg, chan);
drivers/usb/dwc2/hcd_intr.c
734
list_add_tail(&chan->hc_list_entry, &hsotg->free_hc_list);
drivers/usb/dwc2/hcd_intr.c
739
switch (chan->ep_type) {
drivers/usb/dwc2/hcd_intr.c
74
if (!chan->qh)
drivers/usb/dwc2/hcd_intr.c
756
haintmsk &= ~(1 << chan->hc_num);
drivers/usb/dwc2/hcd_intr.c
77
if (chan->qh->dev_speed == USB_SPEED_HIGH)
drivers/usb/dwc2/hcd_intr.c
776
struct dwc2_host_chan *chan, struct dwc2_qtd *qtd,
drivers/usb/dwc2/hcd_intr.c
779
if (dbg_hc(chan))
drivers/usb/dwc2/hcd_intr.c
783
if (dbg_hc(chan))
drivers/usb/dwc2/hcd_intr.c
785
dwc2_release_channel(hsotg, chan, qtd, halt_status);
drivers/usb/dwc2/hcd_intr.c
790
dwc2_hc_halt(hsotg, chan, halt_status);
drivers/usb/dwc2/hcd_intr.c
792
if (chan->halt_on_queue) {
drivers/usb/dwc2/hcd_intr.c
796
if (chan->ep_type == USB_ENDPOINT_XFER_CONTROL ||
drivers/usb/dwc2/hcd_intr.c
797
chan->ep_type == USB_ENDPOINT_XFER_BULK) {
drivers/usb/dwc2/hcd_intr.c
815
list_move_tail(&chan->qh->qh_list_entry,
drivers/usb/dwc2/hcd_intr.c
836
struct dwc2_host_chan *chan,
drivers/usb/dwc2/hcd_intr.c
844
if (chan->hcint & HCINTMSK_NYET) {
drivers/usb/dwc2/hcd_intr.c
851
chan->qh->ping_state = 1;
drivers/usb/dwc2/hcd_intr.c
864
if (chan->ep_is_in) {
drivers/usb/dwc2/hcd_intr.c
870
dwc2_halt_channel(hsotg, chan, qtd, halt_status);
drivers/usb/dwc2/hcd_intr.c
876
dwc2_release_channel(hsotg, chan, qtd, halt_status);
drivers/usb/dwc2/hcd_intr.c
886
struct dwc2_host_chan *chan, int chnum,
drivers/usb/dwc2/hcd_intr.c
894
if (!chan->ep_is_in || (hctsiz & TSIZ_PKTCNT_MASK) == 0)
drivers/usb/dwc2/hcd_intr.c
896
dwc2_release_channel(hsotg, chan, qtd, halt_status);
drivers/usb/dwc2/hcd_intr.c
899
dwc2_halt_channel(hsotg, chan, qtd, halt_status);
drivers/usb/dwc2/hcd_intr.c
903
struct dwc2_host_chan *chan, int chnum,
drivers/usb/dwc2/hcd_intr.c
915
len = dwc2_get_actual_xfer_length(hsotg, chan, chnum, qtd,
drivers/usb/dwc2/hcd_intr.c
924
if (chan->align_buf) {
drivers/usb/dwc2/hcd_intr.c
926
dma_unmap_single(hsotg->dev, chan->qh->dw_align_buf_dma,
drivers/usb/dwc2/hcd_intr.c
928
memcpy(qtd->urb->buf + (chan->xfer_dma - qtd->urb->dma),
drivers/usb/dwc2/hcd_intr.c
929
chan->qh->dw_align_buf, len);
drivers/usb/dwc2/hcd_intr.c
946
dwc2_release_channel(hsotg, chan, qtd,
drivers/usb/dwc2/hcd_intr.c
949
dwc2_release_channel(hsotg, chan, qtd,
drivers/usb/dwc2/hcd_intr.c
961
struct dwc2_host_chan *chan, int chnum,
drivers/usb/dwc2/hcd_intr.c
969
if (dbg_hc(chan))
drivers/usb/dwc2/hcd_intr.c
97
chan->qh->tt_buffer_dirty = 1;
drivers/usb/dwc2/hcd_intr.c
980
dwc2_hcd_complete_xfer_ddma(hsotg, chan, chnum, halt_status);
drivers/usb/dwc2/hcd_intr.c
988
if (chan->qh->do_split) {
drivers/usb/dwc2/hcd_intr.c
989
if (chan->ep_type == USB_ENDPOINT_XFER_ISOC && chan->ep_is_in &&
drivers/usb/dwc2/hcd_intr.c
992
dwc2_xfercomp_isoc_split_in(hsotg, chan, chnum,
drivers/usb/gadget/udc/bcm63xx_udc.c
372
static inline u32 usb_dmac_readl(struct bcm63xx_udc *udc, u32 off, int chan)
drivers/usb/gadget/udc/bcm63xx_udc.c
375
(ENETDMA_CHAN_WIDTH * chan));
drivers/usb/gadget/udc/bcm63xx_udc.c
379
int chan)
drivers/usb/gadget/udc/bcm63xx_udc.c
382
(ENETDMA_CHAN_WIDTH * chan));
drivers/usb/gadget/udc/bcm63xx_udc.c
385
static inline u32 usb_dmas_readl(struct bcm63xx_udc *udc, u32 off, int chan)
drivers/usb/gadget/udc/bcm63xx_udc.c
388
(ENETDMA_CHAN_WIDTH * chan));
drivers/usb/gadget/udc/bcm63xx_udc.c
392
int chan)
drivers/usb/gadget/udc/bcm63xx_udc.c
395
(ENETDMA_CHAN_WIDTH * chan));
drivers/usb/gadget/udc/omap_udc.h
108
#define UDC_TXDMA(chan) (UDC_BASE + 0x50 - 4 + 4 * (chan))
drivers/usb/gadget/udc/omap_udc.h
112
#define UDC_RXDMA(chan) (UDC_BASE + 0x60 - 4 + 4 * (chan))
drivers/usb/musb/tusb6010_omap.c
26
struct dma_chan *chan;
drivers/usb/musb/tusb6010_omap.c
297
ret = dmaengine_slave_config(dma_data->chan, &dma_cfg);
drivers/usb/musb/tusb6010_omap.c
303
dma_desc = dmaengine_prep_slave_single(dma_data->chan, dma_addr,
drivers/usb/musb/tusb6010_omap.c
342
dma_async_issue_pending(dma_data->chan);
drivers/usb/musb/tusb6010_omap.c
372
dmaengine_terminate_all(chdat->dma_data->chan);
drivers/usb/musb/tusb6010_omap.c
508
dmaengine_terminate_sync(chdat->dma_data->chan);
drivers/usb/musb/tusb6010_omap.c
528
if (tusb_dma && tusb_dma->dma_pool[i].chan)
drivers/usb/musb/tusb6010_omap.c
529
dma_release_channel(tusb_dma->dma_pool[i].chan);
drivers/usb/musb/tusb6010_omap.c
554
dma_data->chan = dma_request_chan(musb->controller,
drivers/usb/musb/tusb6010_omap.c
556
if (IS_ERR(dma_data->chan)) {
drivers/usb/musb/tusb6010_omap.c
559
ret = PTR_ERR(dma_data->chan);
drivers/usb/musb/tusb6010_omap.c
576
dma_release_channel(dma_data->chan);
drivers/usb/renesas_usbhs/fifo.c
1164
struct dma_chan *chan, int dtln)
drivers/usb/renesas_usbhs/fifo.c
1187
struct dma_chan *chan = usbhsf_dma_chan_get(fifo, pkt);
drivers/usb/renesas_usbhs/fifo.c
1199
pkt->actual = usbhs_dma_calc_received_size(pkt, chan, rcv_len);
drivers/usb/renesas_usbhs/fifo.c
121
struct dma_chan *chan = NULL;
drivers/usb/renesas_usbhs/fifo.c
1231
static bool usbhsf_dma_filter(struct dma_chan *chan, void *param)
drivers/usb/renesas_usbhs/fifo.c
124
chan = usbhsf_dma_chan_get(fifo, pkt);
drivers/usb/renesas_usbhs/fifo.c
1243
chan->private = slave;
drivers/usb/renesas_usbhs/fifo.c
125
if (chan) {
drivers/usb/renesas_usbhs/fifo.c
126
dmaengine_terminate_sync(chan);
drivers/usb/renesas_usbhs/fifo.c
811
struct dma_chan *chan = usbhsf_dma_chan_get(fifo, pkt);
drivers/usb/renesas_usbhs/fifo.c
813
return info->dma_map_ctrl(chan->device->dev, pkt, map);
drivers/usb/renesas_usbhs/fifo.c
824
struct dma_chan *chan;
drivers/usb/renesas_usbhs/fifo.c
833
chan = usbhsf_dma_chan_get(fifo, pkt);
drivers/usb/renesas_usbhs/fifo.c
836
desc = dmaengine_prep_slave_single(chan, pkt->dma + pkt->actual,
drivers/usb/renesas_usbhs/fifo.c
856
dma_async_issue_pending(chan);
drivers/video/fbdev/atmel_lcdfb.c
669
static inline unsigned int chan_to_field(unsigned int chan, const struct fb_bitfield *bf)
drivers/video/fbdev/atmel_lcdfb.c
671
chan &= 0xffff;
drivers/video/fbdev/atmel_lcdfb.c
672
chan >>= 16 - bf->length;
drivers/video/fbdev/atmel_lcdfb.c
673
return chan << bf->offset;
drivers/video/fbdev/aty/radeon_i2c.c
20
struct radeon_i2c_chan *chan = data;
drivers/video/fbdev/aty/radeon_i2c.c
21
struct radeonfb_info *rinfo = chan->rinfo;
drivers/video/fbdev/aty/radeon_i2c.c
24
val = INREG(chan->ddc_reg) & ~(VGA_DDC_CLK_OUT_EN);
drivers/video/fbdev/aty/radeon_i2c.c
28
OUTREG(chan->ddc_reg, val);
drivers/video/fbdev/aty/radeon_i2c.c
29
(void)INREG(chan->ddc_reg);
drivers/video/fbdev/aty/radeon_i2c.c
34
struct radeon_i2c_chan *chan = data;
drivers/video/fbdev/aty/radeon_i2c.c
35
struct radeonfb_info *rinfo = chan->rinfo;
drivers/video/fbdev/aty/radeon_i2c.c
38
val = INREG(chan->ddc_reg) & ~(VGA_DDC_DATA_OUT_EN);
drivers/video/fbdev/aty/radeon_i2c.c
42
OUTREG(chan->ddc_reg, val);
drivers/video/fbdev/aty/radeon_i2c.c
43
(void)INREG(chan->ddc_reg);
drivers/video/fbdev/aty/radeon_i2c.c
48
struct radeon_i2c_chan *chan = data;
drivers/video/fbdev/aty/radeon_i2c.c
49
struct radeonfb_info *rinfo = chan->rinfo;
drivers/video/fbdev/aty/radeon_i2c.c
52
val = INREG(chan->ddc_reg);
drivers/video/fbdev/aty/radeon_i2c.c
59
struct radeon_i2c_chan *chan = data;
drivers/video/fbdev/aty/radeon_i2c.c
60
struct radeonfb_info *rinfo = chan->rinfo;
drivers/video/fbdev/aty/radeon_i2c.c
63
val = INREG(chan->ddc_reg);
drivers/video/fbdev/aty/radeon_i2c.c
68
static int radeon_setup_i2c_bus(struct radeon_i2c_chan *chan, const char *name)
drivers/video/fbdev/aty/radeon_i2c.c
72
snprintf(chan->adapter.name, sizeof(chan->adapter.name),
drivers/video/fbdev/aty/radeon_i2c.c
74
chan->adapter.owner = THIS_MODULE;
drivers/video/fbdev/aty/radeon_i2c.c
75
chan->adapter.algo_data = &chan->algo;
drivers/video/fbdev/aty/radeon_i2c.c
76
chan->adapter.dev.parent = &chan->rinfo->pdev->dev;
drivers/video/fbdev/aty/radeon_i2c.c
77
chan->algo.setsda = radeon_gpio_setsda;
drivers/video/fbdev/aty/radeon_i2c.c
78
chan->algo.setscl = radeon_gpio_setscl;
drivers/video/fbdev/aty/radeon_i2c.c
79
chan->algo.getsda = radeon_gpio_getsda;
drivers/video/fbdev/aty/radeon_i2c.c
80
chan->algo.getscl = radeon_gpio_getscl;
drivers/video/fbdev/aty/radeon_i2c.c
81
chan->algo.udelay = 10;
drivers/video/fbdev/aty/radeon_i2c.c
82
chan->algo.timeout = 20;
drivers/video/fbdev/aty/radeon_i2c.c
83
chan->algo.data = chan;
drivers/video/fbdev/aty/radeon_i2c.c
85
i2c_set_adapdata(&chan->adapter, chan);
drivers/video/fbdev/aty/radeon_i2c.c
88
radeon_gpio_setsda(chan, 1);
drivers/video/fbdev/aty/radeon_i2c.c
89
radeon_gpio_setscl(chan, 1);
drivers/video/fbdev/aty/radeon_i2c.c
92
rc = i2c_bit_add_bus(&chan->adapter);
drivers/video/fbdev/aty/radeon_i2c.c
94
dev_dbg(&chan->rinfo->pdev->dev, "I2C bus %s registered.\n", name);
drivers/video/fbdev/aty/radeon_i2c.c
96
dev_warn(&chan->rinfo->pdev->dev, "Failed to register I2C bus %s.\n", name);
drivers/video/fbdev/geode/gx1fb_core.c
147
static inline u_int chan_to_field(u_int chan, struct fb_bitfield *bf)
drivers/video/fbdev/geode/gx1fb_core.c
149
chan &= 0xffff;
drivers/video/fbdev/geode/gx1fb_core.c
150
chan >>= 16 - bf->length;
drivers/video/fbdev/geode/gx1fb_core.c
151
return chan << bf->offset;
drivers/video/fbdev/geode/gxfb_core.c
173
static inline u_int chan_to_field(u_int chan, struct fb_bitfield *bf)
drivers/video/fbdev/geode/gxfb_core.c
175
chan &= 0xffff;
drivers/video/fbdev/geode/gxfb_core.c
176
chan >>= 16 - bf->length;
drivers/video/fbdev/geode/gxfb_core.c
177
return chan << bf->offset;
drivers/video/fbdev/geode/lxfb_core.c
283
static inline u_int chan_to_field(u_int chan, struct fb_bitfield *bf)
drivers/video/fbdev/geode/lxfb_core.c
285
chan &= 0xffff;
drivers/video/fbdev/geode/lxfb_core.c
286
chan >>= 16 - bf->length;
drivers/video/fbdev/geode/lxfb_core.c
287
return chan << bf->offset;
drivers/video/fbdev/i810/i810-i2c.c
100
chan->algo.getsda = i810i2c_getsda;
drivers/video/fbdev/i810/i810-i2c.c
101
chan->algo.getscl = i810i2c_getscl;
drivers/video/fbdev/i810/i810-i2c.c
102
chan->algo.udelay = 10;
drivers/video/fbdev/i810/i810-i2c.c
103
chan->algo.timeout = (HZ/2);
drivers/video/fbdev/i810/i810-i2c.c
104
chan->algo.data = chan;
drivers/video/fbdev/i810/i810-i2c.c
106
i2c_set_adapdata(&chan->adapter, chan);
drivers/video/fbdev/i810/i810-i2c.c
109
chan->algo.setsda(chan, 1);
drivers/video/fbdev/i810/i810-i2c.c
110
chan->algo.setscl(chan, 1);
drivers/video/fbdev/i810/i810-i2c.c
113
rc = i2c_bit_add_bus(&chan->adapter);
drivers/video/fbdev/i810/i810-i2c.c
116
dev_dbg(&chan->par->dev->dev, "I2C bus %s registered.\n",name);
drivers/video/fbdev/i810/i810-i2c.c
118
dev_warn(&chan->par->dev->dev, "Failed to register I2C bus "
drivers/video/fbdev/i810/i810-i2c.c
120
chan->par = NULL;
drivers/video/fbdev/i810/i810-i2c.c
128
par->chan[0].par = par;
drivers/video/fbdev/i810/i810-i2c.c
129
par->chan[1].par = par;
drivers/video/fbdev/i810/i810-i2c.c
130
par->chan[2].par = par;
drivers/video/fbdev/i810/i810-i2c.c
132
par->chan[0].ddc_base = GPIOA;
drivers/video/fbdev/i810/i810-i2c.c
133
i810_setup_i2c_bus(&par->chan[0], "I810-DDC");
drivers/video/fbdev/i810/i810-i2c.c
134
par->chan[1].ddc_base = GPIOB;
drivers/video/fbdev/i810/i810-i2c.c
135
i810_setup_i2c_bus(&par->chan[1], "I810-I2C");
drivers/video/fbdev/i810/i810-i2c.c
136
par->chan[2].ddc_base = GPIOC;
drivers/video/fbdev/i810/i810-i2c.c
137
i810_setup_i2c_bus(&par->chan[2], "I810-GPIOC");
drivers/video/fbdev/i810/i810-i2c.c
142
if (par->chan[0].par)
drivers/video/fbdev/i810/i810-i2c.c
143
i2c_del_adapter(&par->chan[0].adapter);
drivers/video/fbdev/i810/i810-i2c.c
144
par->chan[0].par = NULL;
drivers/video/fbdev/i810/i810-i2c.c
146
if (par->chan[1].par)
drivers/video/fbdev/i810/i810-i2c.c
147
i2c_del_adapter(&par->chan[1].adapter);
drivers/video/fbdev/i810/i810-i2c.c
148
par->chan[1].par = NULL;
drivers/video/fbdev/i810/i810-i2c.c
150
if (par->chan[2].par)
drivers/video/fbdev/i810/i810-i2c.c
151
i2c_del_adapter(&par->chan[2].adapter);
drivers/video/fbdev/i810/i810-i2c.c
152
par->chan[2].par = NULL;
drivers/video/fbdev/i810/i810-i2c.c
162
edid = fb_ddc_read(&par->chan[conn].adapter);
drivers/video/fbdev/i810/i810-i2c.c
44
struct i810fb_i2c_chan *chan = data;
drivers/video/fbdev/i810/i810-i2c.c
45
struct i810fb_par *par = chan->par;
drivers/video/fbdev/i810/i810-i2c.c
49
i810_writel(mmio, chan->ddc_base, SCL_DIR_MASK | SCL_VAL_MASK);
drivers/video/fbdev/i810/i810-i2c.c
51
i810_writel(mmio, chan->ddc_base, SCL_DIR | SCL_DIR_MASK | SCL_VAL_MASK);
drivers/video/fbdev/i810/i810-i2c.c
52
i810_readl(mmio, chan->ddc_base); /* flush posted write */
drivers/video/fbdev/i810/i810-i2c.c
57
struct i810fb_i2c_chan *chan = data;
drivers/video/fbdev/i810/i810-i2c.c
58
struct i810fb_par *par = chan->par;
drivers/video/fbdev/i810/i810-i2c.c
62
i810_writel(mmio, chan->ddc_base, SDA_DIR_MASK | SDA_VAL_MASK);
drivers/video/fbdev/i810/i810-i2c.c
64
i810_writel(mmio, chan->ddc_base, SDA_DIR | SDA_DIR_MASK | SDA_VAL_MASK);
drivers/video/fbdev/i810/i810-i2c.c
65
i810_readl(mmio, chan->ddc_base); /* flush posted write */
drivers/video/fbdev/i810/i810-i2c.c
70
struct i810fb_i2c_chan *chan = data;
drivers/video/fbdev/i810/i810-i2c.c
71
struct i810fb_par *par = chan->par;
drivers/video/fbdev/i810/i810-i2c.c
74
i810_writel(mmio, chan->ddc_base, SCL_DIR_MASK);
drivers/video/fbdev/i810/i810-i2c.c
75
i810_writel(mmio, chan->ddc_base, 0);
drivers/video/fbdev/i810/i810-i2c.c
76
return ((i810_readl(mmio, chan->ddc_base) & SCL_VAL_IN) != 0);
drivers/video/fbdev/i810/i810-i2c.c
81
struct i810fb_i2c_chan *chan = data;
drivers/video/fbdev/i810/i810-i2c.c
82
struct i810fb_par *par = chan->par;
drivers/video/fbdev/i810/i810-i2c.c
85
i810_writel(mmio, chan->ddc_base, SDA_DIR_MASK);
drivers/video/fbdev/i810/i810-i2c.c
86
i810_writel(mmio, chan->ddc_base, 0);
drivers/video/fbdev/i810/i810-i2c.c
87
return ((i810_readl(mmio, chan->ddc_base) & SDA_VAL_IN) != 0);
drivers/video/fbdev/i810/i810-i2c.c
90
static int i810_setup_i2c_bus(struct i810fb_i2c_chan *chan, const char *name)
drivers/video/fbdev/i810/i810-i2c.c
94
strcpy(chan->adapter.name, name);
drivers/video/fbdev/i810/i810-i2c.c
95
chan->adapter.owner = THIS_MODULE;
drivers/video/fbdev/i810/i810-i2c.c
96
chan->adapter.algo_data = &chan->algo;
drivers/video/fbdev/i810/i810-i2c.c
97
chan->adapter.dev.parent = &chan->par->dev->dev;
drivers/video/fbdev/i810/i810-i2c.c
98
chan->algo.setsda = i810i2c_setsda;
drivers/video/fbdev/i810/i810-i2c.c
99
chan->algo.setscl = i810i2c_setscl;
drivers/video/fbdev/i810/i810.h
264
struct i810fb_i2c_chan chan[3];
drivers/video/fbdev/imxfb.c
269
static inline u_int chan_to_field(u_int chan, struct fb_bitfield *bf)
drivers/video/fbdev/imxfb.c
271
chan &= 0xffff;
drivers/video/fbdev/imxfb.c
272
chan >>= 16 - bf->length;
drivers/video/fbdev/imxfb.c
273
return chan << bf->offset;
drivers/video/fbdev/mb862xx/mb862xxfbdrv.c
63
static inline unsigned int chan_to_field(unsigned int chan,
drivers/video/fbdev/mb862xx/mb862xxfbdrv.c
66
chan &= 0xffff;
drivers/video/fbdev/mb862xx/mb862xxfbdrv.c
67
chan >>= 16 - bf->length;
drivers/video/fbdev/mb862xx/mb862xxfbdrv.c
68
return chan << bf->offset;
drivers/video/fbdev/mmp/fb/mmpfb.c
297
static unsigned int chan_to_field(unsigned int chan, struct fb_bitfield *bf)
drivers/video/fbdev/mmp/fb/mmpfb.c
299
return ((chan & 0xffff) >> (16 - bf->length)) << bf->offset;
drivers/video/fbdev/nvidia/nv_i2c.c
100
chan->algo.data = chan;
drivers/video/fbdev/nvidia/nv_i2c.c
102
i2c_set_adapdata(&chan->adapter, chan);
drivers/video/fbdev/nvidia/nv_i2c.c
105
nvidia_gpio_setsda(chan, 1);
drivers/video/fbdev/nvidia/nv_i2c.c
106
nvidia_gpio_setscl(chan, 1);
drivers/video/fbdev/nvidia/nv_i2c.c
109
rc = i2c_bit_add_bus(&chan->adapter);
drivers/video/fbdev/nvidia/nv_i2c.c
111
dev_dbg(&chan->par->pci_dev->dev,
drivers/video/fbdev/nvidia/nv_i2c.c
114
dev_warn(&chan->par->pci_dev->dev,
drivers/video/fbdev/nvidia/nv_i2c.c
116
chan->par = NULL;
drivers/video/fbdev/nvidia/nv_i2c.c
124
par->chan[0].par = par;
drivers/video/fbdev/nvidia/nv_i2c.c
125
par->chan[1].par = par;
drivers/video/fbdev/nvidia/nv_i2c.c
126
par->chan[2].par = par;
drivers/video/fbdev/nvidia/nv_i2c.c
128
par->chan[0].ddc_base = (par->reverse_i2c) ? 0x36 : 0x3e;
drivers/video/fbdev/nvidia/nv_i2c.c
129
nvidia_setup_i2c_bus(&par->chan[0], "nvidia #0",
drivers/video/fbdev/nvidia/nv_i2c.c
132
par->chan[1].ddc_base = (par->reverse_i2c) ? 0x3e : 0x36;
drivers/video/fbdev/nvidia/nv_i2c.c
133
nvidia_setup_i2c_bus(&par->chan[1], "nvidia #1",
drivers/video/fbdev/nvidia/nv_i2c.c
136
par->chan[2].ddc_base = 0x50;
drivers/video/fbdev/nvidia/nv_i2c.c
137
nvidia_setup_i2c_bus(&par->chan[2], "nvidia #2", 0);
drivers/video/fbdev/nvidia/nv_i2c.c
145
if (!par->chan[i].par)
drivers/video/fbdev/nvidia/nv_i2c.c
147
i2c_del_adapter(&par->chan[i].adapter);
drivers/video/fbdev/nvidia/nv_i2c.c
148
par->chan[i].par = NULL;
drivers/video/fbdev/nvidia/nv_i2c.c
157
if (par->chan[conn - 1].par)
drivers/video/fbdev/nvidia/nv_i2c.c
158
edid = fb_ddc_read(&par->chan[conn - 1].adapter);
drivers/video/fbdev/nvidia/nv_i2c.c
30
struct nvidia_i2c_chan *chan = data;
drivers/video/fbdev/nvidia/nv_i2c.c
31
struct nvidia_par *par = chan->par;
drivers/video/fbdev/nvidia/nv_i2c.c
34
val = NVReadCrtc(par, chan->ddc_base + 1) & 0xf0;
drivers/video/fbdev/nvidia/nv_i2c.c
41
NVWriteCrtc(par, chan->ddc_base + 1, val | 0x01);
drivers/video/fbdev/nvidia/nv_i2c.c
46
struct nvidia_i2c_chan *chan = data;
drivers/video/fbdev/nvidia/nv_i2c.c
47
struct nvidia_par *par = chan->par;
drivers/video/fbdev/nvidia/nv_i2c.c
50
val = NVReadCrtc(par, chan->ddc_base + 1) & 0xf0;
drivers/video/fbdev/nvidia/nv_i2c.c
57
NVWriteCrtc(par, chan->ddc_base + 1, val | 0x01);
drivers/video/fbdev/nvidia/nv_i2c.c
62
struct nvidia_i2c_chan *chan = data;
drivers/video/fbdev/nvidia/nv_i2c.c
63
struct nvidia_par *par = chan->par;
drivers/video/fbdev/nvidia/nv_i2c.c
66
if (NVReadCrtc(par, chan->ddc_base) & 0x04)
drivers/video/fbdev/nvidia/nv_i2c.c
74
struct nvidia_i2c_chan *chan = data;
drivers/video/fbdev/nvidia/nv_i2c.c
75
struct nvidia_par *par = chan->par;
drivers/video/fbdev/nvidia/nv_i2c.c
78
if (NVReadCrtc(par, chan->ddc_base) & 0x08)
drivers/video/fbdev/nvidia/nv_i2c.c
84
static int nvidia_setup_i2c_bus(struct nvidia_i2c_chan *chan, const char *name,
drivers/video/fbdev/nvidia/nv_i2c.c
89
strscpy(chan->adapter.name, name, sizeof(chan->adapter.name));
drivers/video/fbdev/nvidia/nv_i2c.c
90
chan->adapter.owner = THIS_MODULE;
drivers/video/fbdev/nvidia/nv_i2c.c
91
chan->adapter.class = i2c_class;
drivers/video/fbdev/nvidia/nv_i2c.c
92
chan->adapter.algo_data = &chan->algo;
drivers/video/fbdev/nvidia/nv_i2c.c
93
chan->adapter.dev.parent = &chan->par->pci_dev->dev;
drivers/video/fbdev/nvidia/nv_i2c.c
94
chan->algo.setsda = nvidia_gpio_setsda;
drivers/video/fbdev/nvidia/nv_i2c.c
95
chan->algo.setscl = nvidia_gpio_setscl;
drivers/video/fbdev/nvidia/nv_i2c.c
96
chan->algo.getsda = nvidia_gpio_getsda;
drivers/video/fbdev/nvidia/nv_i2c.c
97
chan->algo.getscl = nvidia_gpio_getscl;
drivers/video/fbdev/nvidia/nv_i2c.c
98
chan->algo.udelay = 40;
drivers/video/fbdev/nvidia/nv_i2c.c
99
chan->algo.timeout = msecs_to_jiffies(2);
drivers/video/fbdev/nvidia/nv_type.h
153
struct nvidia_i2c_chan chan[3];
drivers/video/fbdev/omap2/omapfb/dss/dispc.c
905
int chan = 0, chan2 = 0;
drivers/video/fbdev/omap2/omapfb/dss/dispc.c
925
chan = 0;
drivers/video/fbdev/omap2/omapfb/dss/dispc.c
929
chan = 1;
drivers/video/fbdev/omap2/omapfb/dss/dispc.c
933
chan = 0;
drivers/video/fbdev/omap2/omapfb/dss/dispc.c
938
chan = 0;
drivers/video/fbdev/omap2/omapfb/dss/dispc.c
946
chan = 0;
drivers/video/fbdev/omap2/omapfb/dss/dispc.c
954
val = FLD_MOD(val, chan, shift, shift);
drivers/video/fbdev/pxa168fb.c
470
static unsigned int chan_to_field(unsigned int chan, struct fb_bitfield *bf)
drivers/video/fbdev/pxa168fb.c
472
return ((chan & 0xffff) >> (16 - bf->length)) << bf->offset;
drivers/video/fbdev/pxafb.c
135
static inline u_int chan_to_field(u_int chan, struct fb_bitfield *bf)
drivers/video/fbdev/pxafb.c
137
chan &= 0xffff;
drivers/video/fbdev/pxafb.c
138
chan >>= 16 - bf->length;
drivers/video/fbdev/pxafb.c
139
return chan << bf->offset;
drivers/video/fbdev/riva/fbdev.c
1723
if (!par->chan[i].par)
drivers/video/fbdev/riva/rivafb-i2c.c
100
chan->algo.setscl = riva_gpio_setscl;
drivers/video/fbdev/riva/rivafb-i2c.c
101
chan->algo.getsda = riva_gpio_getsda;
drivers/video/fbdev/riva/rivafb-i2c.c
102
chan->algo.getscl = riva_gpio_getscl;
drivers/video/fbdev/riva/rivafb-i2c.c
103
chan->algo.udelay = 40;
drivers/video/fbdev/riva/rivafb-i2c.c
104
chan->algo.timeout = msecs_to_jiffies(2);
drivers/video/fbdev/riva/rivafb-i2c.c
105
chan->algo.data = chan;
drivers/video/fbdev/riva/rivafb-i2c.c
107
i2c_set_adapdata(&chan->adapter, chan);
drivers/video/fbdev/riva/rivafb-i2c.c
110
riva_gpio_setsda(chan, 1);
drivers/video/fbdev/riva/rivafb-i2c.c
111
riva_gpio_setscl(chan, 1);
drivers/video/fbdev/riva/rivafb-i2c.c
114
rc = i2c_bit_add_bus(&chan->adapter);
drivers/video/fbdev/riva/rivafb-i2c.c
116
dev_dbg(&chan->par->pdev->dev, "I2C bus %s registered.\n", name);
drivers/video/fbdev/riva/rivafb-i2c.c
118
dev_warn(&chan->par->pdev->dev,
drivers/video/fbdev/riva/rivafb-i2c.c
120
chan->par = NULL;
drivers/video/fbdev/riva/rivafb-i2c.c
128
par->chan[0].par = par;
drivers/video/fbdev/riva/rivafb-i2c.c
129
par->chan[1].par = par;
drivers/video/fbdev/riva/rivafb-i2c.c
130
par->chan[2].par = par;
drivers/video/fbdev/riva/rivafb-i2c.c
132
par->chan[0].ddc_base = 0x36;
drivers/video/fbdev/riva/rivafb-i2c.c
133
par->chan[1].ddc_base = 0x3e;
drivers/video/fbdev/riva/rivafb-i2c.c
134
par->chan[2].ddc_base = 0x50;
drivers/video/fbdev/riva/rivafb-i2c.c
135
riva_setup_i2c_bus(&par->chan[0], "BUS1", I2C_CLASS_HWMON);
drivers/video/fbdev/riva/rivafb-i2c.c
136
riva_setup_i2c_bus(&par->chan[1], "BUS2", 0);
drivers/video/fbdev/riva/rivafb-i2c.c
137
riva_setup_i2c_bus(&par->chan[2], "BUS3", 0);
drivers/video/fbdev/riva/rivafb-i2c.c
145
if (!par->chan[i].par)
drivers/video/fbdev/riva/rivafb-i2c.c
147
i2c_del_adapter(&par->chan[i].adapter);
drivers/video/fbdev/riva/rivafb-i2c.c
148
par->chan[i].par = NULL;
drivers/video/fbdev/riva/rivafb-i2c.c
156
if (par->chan[conn].par)
drivers/video/fbdev/riva/rivafb-i2c.c
157
edid = fb_ddc_read(&par->chan[conn].adapter);
drivers/video/fbdev/riva/rivafb-i2c.c
29
struct riva_i2c_chan *chan = data;
drivers/video/fbdev/riva/rivafb-i2c.c
30
struct riva_par *par = chan->par;
drivers/video/fbdev/riva/rivafb-i2c.c
33
VGA_WR08(par->riva.PCIO, 0x3d4, chan->ddc_base + 1);
drivers/video/fbdev/riva/rivafb-i2c.c
41
VGA_WR08(par->riva.PCIO, 0x3d4, chan->ddc_base + 1);
drivers/video/fbdev/riva/rivafb-i2c.c
47
struct riva_i2c_chan *chan = data;
drivers/video/fbdev/riva/rivafb-i2c.c
48
struct riva_par *par = chan->par;
drivers/video/fbdev/riva/rivafb-i2c.c
51
VGA_WR08(par->riva.PCIO, 0x3d4, chan->ddc_base + 1);
drivers/video/fbdev/riva/rivafb-i2c.c
59
VGA_WR08(par->riva.PCIO, 0x3d4, chan->ddc_base + 1);
drivers/video/fbdev/riva/rivafb-i2c.c
65
struct riva_i2c_chan *chan = data;
drivers/video/fbdev/riva/rivafb-i2c.c
66
struct riva_par *par = chan->par;
drivers/video/fbdev/riva/rivafb-i2c.c
69
VGA_WR08(par->riva.PCIO, 0x3d4, chan->ddc_base);
drivers/video/fbdev/riva/rivafb-i2c.c
78
struct riva_i2c_chan *chan = data;
drivers/video/fbdev/riva/rivafb-i2c.c
79
struct riva_par *par = chan->par;
drivers/video/fbdev/riva/rivafb-i2c.c
82
VGA_WR08(par->riva.PCIO, 0x3d4, chan->ddc_base);
drivers/video/fbdev/riva/rivafb-i2c.c
89
static int riva_setup_i2c_bus(struct riva_i2c_chan *chan, const char *name,
drivers/video/fbdev/riva/rivafb-i2c.c
94
strscpy(chan->adapter.name, name);
drivers/video/fbdev/riva/rivafb-i2c.c
95
chan->adapter.owner = THIS_MODULE;
drivers/video/fbdev/riva/rivafb-i2c.c
96
chan->adapter.class = i2c_class;
drivers/video/fbdev/riva/rivafb-i2c.c
97
chan->adapter.algo_data = &chan->algo;
drivers/video/fbdev/riva/rivafb-i2c.c
98
chan->adapter.dev.parent = &chan->par->pdev->dev;
drivers/video/fbdev/riva/rivafb-i2c.c
99
chan->algo.setsda = riva_gpio_setsda;
drivers/video/fbdev/riva/rivafb.h
66
struct riva_i2c_chan chan[3];
drivers/video/fbdev/s3c-fb.c
723
static inline unsigned int chan_to_field(unsigned int chan,
drivers/video/fbdev/s3c-fb.c
726
chan &= 0xffff;
drivers/video/fbdev/s3c-fb.c
727
chan >>= 16 - bf->length;
drivers/video/fbdev/s3c-fb.c
728
return chan << bf->offset;
drivers/video/fbdev/sa1100fb.c
246
static inline u_int chan_to_field(u_int chan, struct fb_bitfield *bf)
drivers/video/fbdev/sa1100fb.c
248
chan &= 0xffff;
drivers/video/fbdev/sa1100fb.c
249
chan >>= 16 - bf->length;
drivers/video/fbdev/sa1100fb.c
250
return chan << bf->offset;
drivers/video/fbdev/savage/savagefb-i2c.c
100
VGAwCR(chan->reg, r, chan->par);
drivers/video/fbdev/savage/savagefb-i2c.c
105
struct savagefb_i2c_chan *chan = data;
drivers/video/fbdev/savage/savagefb-i2c.c
108
r = VGArCR(chan->reg, chan->par);
drivers/video/fbdev/savage/savagefb-i2c.c
116
VGAwCR(chan->reg, r, chan->par);
drivers/video/fbdev/savage/savagefb-i2c.c
121
struct savagefb_i2c_chan *chan = data;
drivers/video/fbdev/savage/savagefb-i2c.c
123
return (VGArCR(chan->reg, chan->par) & PROSAVAGE_I2C_SCL_IN) ? 1 : 0;
drivers/video/fbdev/savage/savagefb-i2c.c
128
struct savagefb_i2c_chan *chan = data;
drivers/video/fbdev/savage/savagefb-i2c.c
130
return (VGArCR(chan->reg, chan->par) & PROSAVAGE_I2C_SDA_IN) ? 1 : 0;
drivers/video/fbdev/savage/savagefb-i2c.c
133
static int savage_setup_i2c_bus(struct savagefb_i2c_chan *chan,
drivers/video/fbdev/savage/savagefb-i2c.c
138
if (chan->par) {
drivers/video/fbdev/savage/savagefb-i2c.c
139
strcpy(chan->adapter.name, name);
drivers/video/fbdev/savage/savagefb-i2c.c
140
chan->adapter.owner = THIS_MODULE;
drivers/video/fbdev/savage/savagefb-i2c.c
141
chan->adapter.algo_data = &chan->algo;
drivers/video/fbdev/savage/savagefb-i2c.c
142
chan->adapter.dev.parent = &chan->par->pcidev->dev;
drivers/video/fbdev/savage/savagefb-i2c.c
143
chan->algo.udelay = 10;
drivers/video/fbdev/savage/savagefb-i2c.c
144
chan->algo.timeout = 20;
drivers/video/fbdev/savage/savagefb-i2c.c
145
chan->algo.data = chan;
drivers/video/fbdev/savage/savagefb-i2c.c
147
i2c_set_adapdata(&chan->adapter, chan);
drivers/video/fbdev/savage/savagefb-i2c.c
150
chan->algo.setsda(chan, 1);
drivers/video/fbdev/savage/savagefb-i2c.c
151
chan->algo.setscl(chan, 1);
drivers/video/fbdev/savage/savagefb-i2c.c
154
rc = i2c_bit_add_bus(&chan->adapter);
drivers/video/fbdev/savage/savagefb-i2c.c
157
dev_dbg(&chan->par->pcidev->dev,
drivers/video/fbdev/savage/savagefb-i2c.c
160
dev_warn(&chan->par->pcidev->dev,
drivers/video/fbdev/savage/savagefb-i2c.c
170
par->chan.par = par;
drivers/video/fbdev/savage/savagefb-i2c.c
176
par->chan.reg = CR_SERIAL2;
drivers/video/fbdev/savage/savagefb-i2c.c
177
par->chan.ioaddr = par->mmio.vbase;
drivers/video/fbdev/savage/savagefb-i2c.c
178
par->chan.algo.setsda = prosavage_gpio_setsda;
drivers/video/fbdev/savage/savagefb-i2c.c
179
par->chan.algo.setscl = prosavage_gpio_setscl;
drivers/video/fbdev/savage/savagefb-i2c.c
180
par->chan.algo.getsda = prosavage_gpio_getsda;
drivers/video/fbdev/savage/savagefb-i2c.c
181
par->chan.algo.getscl = prosavage_gpio_getscl;
drivers/video/fbdev/savage/savagefb-i2c.c
184
par->chan.reg = CR_SERIAL1;
drivers/video/fbdev/savage/savagefb-i2c.c
186
par->chan.reg = CR_SERIAL2;
drivers/video/fbdev/savage/savagefb-i2c.c
187
par->chan.ioaddr = par->mmio.vbase;
drivers/video/fbdev/savage/savagefb-i2c.c
188
par->chan.algo.setsda = prosavage_gpio_setsda;
drivers/video/fbdev/savage/savagefb-i2c.c
189
par->chan.algo.setscl = prosavage_gpio_setscl;
drivers/video/fbdev/savage/savagefb-i2c.c
190
par->chan.algo.getsda = prosavage_gpio_getsda;
drivers/video/fbdev/savage/savagefb-i2c.c
191
par->chan.algo.getscl = prosavage_gpio_getscl;
drivers/video/fbdev/savage/savagefb-i2c.c
194
par->chan.reg = MM_SERIAL1;
drivers/video/fbdev/savage/savagefb-i2c.c
195
par->chan.ioaddr = par->mmio.vbase;
drivers/video/fbdev/savage/savagefb-i2c.c
196
par->chan.algo.setsda = savage4_gpio_setsda;
drivers/video/fbdev/savage/savagefb-i2c.c
197
par->chan.algo.setscl = savage4_gpio_setscl;
drivers/video/fbdev/savage/savagefb-i2c.c
198
par->chan.algo.getsda = savage4_gpio_getsda;
drivers/video/fbdev/savage/savagefb-i2c.c
199
par->chan.algo.getscl = savage4_gpio_getscl;
drivers/video/fbdev/savage/savagefb-i2c.c
202
par->chan.par = NULL;
drivers/video/fbdev/savage/savagefb-i2c.c
205
savage_setup_i2c_bus(&par->chan, "SAVAGE DDC2");
drivers/video/fbdev/savage/savagefb-i2c.c
212
if (par->chan.par)
drivers/video/fbdev/savage/savagefb-i2c.c
213
i2c_del_adapter(&par->chan.adapter);
drivers/video/fbdev/savage/savagefb-i2c.c
215
par->chan.par = NULL;
drivers/video/fbdev/savage/savagefb-i2c.c
223
if (par->chan.par)
drivers/video/fbdev/savage/savagefb-i2c.c
224
edid = fb_ddc_read(&par->chan.adapter);
drivers/video/fbdev/savage/savagefb-i2c.c
47
struct savagefb_i2c_chan *chan = data;
drivers/video/fbdev/savage/savagefb-i2c.c
50
r = readl(chan->ioaddr + chan->reg);
drivers/video/fbdev/savage/savagefb-i2c.c
55
writel(r, chan->ioaddr + chan->reg);
drivers/video/fbdev/savage/savagefb-i2c.c
56
readl(chan->ioaddr + chan->reg); /* flush posted write */
drivers/video/fbdev/savage/savagefb-i2c.c
61
struct savagefb_i2c_chan *chan = data;
drivers/video/fbdev/savage/savagefb-i2c.c
64
r = readl(chan->ioaddr + chan->reg);
drivers/video/fbdev/savage/savagefb-i2c.c
69
writel(r, chan->ioaddr + chan->reg);
drivers/video/fbdev/savage/savagefb-i2c.c
70
readl(chan->ioaddr + chan->reg); /* flush posted write */
drivers/video/fbdev/savage/savagefb-i2c.c
75
struct savagefb_i2c_chan *chan = data;
drivers/video/fbdev/savage/savagefb-i2c.c
77
return (0 != (readl(chan->ioaddr + chan->reg) & SAVAGE4_I2C_SCL_IN));
drivers/video/fbdev/savage/savagefb-i2c.c
82
struct savagefb_i2c_chan *chan = data;
drivers/video/fbdev/savage/savagefb-i2c.c
84
return (0 != (readl(chan->ioaddr + chan->reg) & SAVAGE4_I2C_SDA_IN));
drivers/video/fbdev/savage/savagefb-i2c.c
89
struct savagefb_i2c_chan *chan = data;
drivers/video/fbdev/savage/savagefb-i2c.c
92
r = VGArCR(chan->reg, chan->par);
drivers/video/fbdev/savage/savagefb.h
192
struct savagefb_i2c_chan chan;
drivers/video/fbdev/sh_mobile_lcdcfb.c
2007
dev_name(ch->lcdc->dev), (ch->cfg->chan == LCDC_CHAN_MAINLCD) ?
drivers/video/fbdev/sh_mobile_lcdcfb.c
2550
switch (pdata->ch[i].chan) {
drivers/video/fbdev/sh_mobile_lcdcfb.c
281
static int lcdc_chan_is_sublcd(struct sh_mobile_lcdc_chan *chan)
drivers/video/fbdev/sh_mobile_lcdcfb.c
283
return chan->cfg->chan == LCDC_CHAN_SUBLCD;
drivers/video/fbdev/sh_mobile_lcdcfb.c
286
static void lcdc_write_chan(struct sh_mobile_lcdc_chan *chan,
drivers/video/fbdev/sh_mobile_lcdcfb.c
289
iowrite32(data, chan->lcdc->base + chan->reg_offs[reg_nr]);
drivers/video/fbdev/sh_mobile_lcdcfb.c
291
iowrite32(data, chan->lcdc->base + chan->reg_offs[reg_nr] +
drivers/video/fbdev/sh_mobile_lcdcfb.c
295
static void lcdc_write_chan_mirror(struct sh_mobile_lcdc_chan *chan,
drivers/video/fbdev/sh_mobile_lcdcfb.c
298
iowrite32(data, chan->lcdc->base + chan->reg_offs[reg_nr] +
drivers/video/fbdev/sh_mobile_lcdcfb.c
302
static unsigned long lcdc_read_chan(struct sh_mobile_lcdc_chan *chan,
drivers/video/fbdev/sh_mobile_lcdcfb.c
305
return ioread32(chan->lcdc->base + chan->reg_offs[reg_nr]);
drivers/video/fbdev/sm501fb.c
907
static inline unsigned int chan_to_field(unsigned int chan,
drivers/video/fbdev/sm501fb.c
910
chan &= 0xffff;
drivers/video/fbdev/sm501fb.c
911
chan >>= 16 - bf->length;
drivers/video/fbdev/sm501fb.c
912
return chan << bf->offset;
drivers/video/fbdev/sm712fb.c
885
static inline unsigned int chan_to_field(unsigned int chan,
drivers/video/fbdev/sm712fb.c
888
chan &= 0xffff;
drivers/video/fbdev/sm712fb.c
889
chan >>= 16 - bf->length;
drivers/video/fbdev/sm712fb.c
890
return chan << bf->offset;
drivers/video/fbdev/tdfxfb.c
1174
struct tdfxfb_i2c_chan *chan = data;
drivers/video/fbdev/tdfxfb.c
1175
struct tdfx_par *par = chan->par;
drivers/video/fbdev/tdfxfb.c
1189
struct tdfxfb_i2c_chan *chan = data;
drivers/video/fbdev/tdfxfb.c
1190
struct tdfx_par *par = chan->par;
drivers/video/fbdev/tdfxfb.c
1208
struct tdfxfb_i2c_chan *chan = data;
drivers/video/fbdev/tdfxfb.c
1209
struct tdfx_par *par = chan->par;
drivers/video/fbdev/tdfxfb.c
1216
struct tdfxfb_i2c_chan *chan = data;
drivers/video/fbdev/tdfxfb.c
1217
struct tdfx_par *par = chan->par;
drivers/video/fbdev/tdfxfb.c
1224
struct tdfxfb_i2c_chan *chan = data;
drivers/video/fbdev/tdfxfb.c
1225
struct tdfx_par *par = chan->par;
drivers/video/fbdev/tdfxfb.c
1239
struct tdfxfb_i2c_chan *chan = data;
drivers/video/fbdev/tdfxfb.c
1240
struct tdfx_par *par = chan->par;
drivers/video/fbdev/tdfxfb.c
1254
struct tdfxfb_i2c_chan *chan = data;
drivers/video/fbdev/tdfxfb.c
1255
struct tdfx_par *par = chan->par;
drivers/video/fbdev/tdfxfb.c
1262
struct tdfxfb_i2c_chan *chan = data;
drivers/video/fbdev/tdfxfb.c
1263
struct tdfx_par *par = chan->par;
drivers/video/fbdev/tdfxfb.c
1268
static int tdfxfb_setup_ddc_bus(struct tdfxfb_i2c_chan *chan, const char *name,
drivers/video/fbdev/tdfxfb.c
1273
strscpy(chan->adapter.name, name, sizeof(chan->adapter.name));
drivers/video/fbdev/tdfxfb.c
1274
chan->adapter.owner = THIS_MODULE;
drivers/video/fbdev/tdfxfb.c
1275
chan->adapter.algo_data = &chan->algo;
drivers/video/fbdev/tdfxfb.c
1276
chan->adapter.dev.parent = dev;
drivers/video/fbdev/tdfxfb.c
1277
chan->algo.setsda = tdfxfb_ddc_setsda;
drivers/video/fbdev/tdfxfb.c
1278
chan->algo.setscl = tdfxfb_ddc_setscl;
drivers/video/fbdev/tdfxfb.c
1279
chan->algo.getsda = tdfxfb_ddc_getsda;
drivers/video/fbdev/tdfxfb.c
1280
chan->algo.getscl = tdfxfb_ddc_getscl;
drivers/video/fbdev/tdfxfb.c
1281
chan->algo.udelay = 10;
drivers/video/fbdev/tdfxfb.c
1282
chan->algo.timeout = msecs_to_jiffies(500);
drivers/video/fbdev/tdfxfb.c
1283
chan->algo.data = chan;
drivers/video/fbdev/tdfxfb.c
1285
i2c_set_adapdata(&chan->adapter, chan);
drivers/video/fbdev/tdfxfb.c
1287
rc = i2c_bit_add_bus(&chan->adapter);
drivers/video/fbdev/tdfxfb.c
1291
chan->par = NULL;
drivers/video/fbdev/tdfxfb.c
1296
static int tdfxfb_setup_i2c_bus(struct tdfxfb_i2c_chan *chan, const char *name,
drivers/video/fbdev/tdfxfb.c
1301
strscpy(chan->adapter.name, name, sizeof(chan->adapter.name));
drivers/video/fbdev/tdfxfb.c
1302
chan->adapter.owner = THIS_MODULE;
drivers/video/fbdev/tdfxfb.c
1303
chan->adapter.algo_data = &chan->algo;
drivers/video/fbdev/tdfxfb.c
1304
chan->adapter.dev.parent = dev;
drivers/video/fbdev/tdfxfb.c
1305
chan->algo.setsda = tdfxfb_i2c_setsda;
drivers/video/fbdev/tdfxfb.c
1306
chan->algo.setscl = tdfxfb_i2c_setscl;
drivers/video/fbdev/tdfxfb.c
1307
chan->algo.getsda = tdfxfb_i2c_getsda;
drivers/video/fbdev/tdfxfb.c
1308
chan->algo.getscl = tdfxfb_i2c_getscl;
drivers/video/fbdev/tdfxfb.c
1309
chan->algo.udelay = 10;
drivers/video/fbdev/tdfxfb.c
1310
chan->algo.timeout = msecs_to_jiffies(500);
drivers/video/fbdev/tdfxfb.c
1311
chan->algo.data = chan;
drivers/video/fbdev/tdfxfb.c
1313
i2c_set_adapdata(&chan->adapter, chan);
drivers/video/fbdev/tdfxfb.c
1315
rc = i2c_bit_add_bus(&chan->adapter);
drivers/video/fbdev/tdfxfb.c
1319
chan->par = NULL;
drivers/video/fbdev/tdfxfb.c
1331
par->chan[0].par = par;
drivers/video/fbdev/tdfxfb.c
1332
par->chan[1].par = par;
drivers/video/fbdev/tdfxfb.c
1334
tdfxfb_setup_ddc_bus(&par->chan[0], "Voodoo3-DDC", info->device);
drivers/video/fbdev/tdfxfb.c
1335
tdfxfb_setup_i2c_bus(&par->chan[1], "Voodoo3-I2C", info->device);
drivers/video/fbdev/tdfxfb.c
1340
if (par->chan[0].par)
drivers/video/fbdev/tdfxfb.c
1341
i2c_del_adapter(&par->chan[0].adapter);
drivers/video/fbdev/tdfxfb.c
1342
par->chan[0].par = NULL;
drivers/video/fbdev/tdfxfb.c
1344
if (par->chan[1].par)
drivers/video/fbdev/tdfxfb.c
1345
i2c_del_adapter(&par->chan[1].adapter);
drivers/video/fbdev/tdfxfb.c
1346
par->chan[1].par = NULL;
drivers/video/fbdev/tdfxfb.c
1355
if (par->chan[0].par)
drivers/video/fbdev/tdfxfb.c
1356
edid = fb_ddc_read(&par->chan[0].adapter);
drivers/video/fbdev/vt8500lcdfb.c
132
static inline u_int chan_to_field(u_int chan, struct fb_bitfield *bf)
drivers/video/fbdev/vt8500lcdfb.c
134
chan &= 0xffff;
drivers/video/fbdev/vt8500lcdfb.c
135
chan >>= 16 - bf->length;
drivers/video/fbdev/vt8500lcdfb.c
136
return chan << bf->offset;
drivers/video/fbdev/wm8505fb.c
185
static inline u_int chan_to_field(u_int chan, struct fb_bitfield *bf)
drivers/video/fbdev/wm8505fb.c
187
chan &= 0xffff;
drivers/video/fbdev/wm8505fb.c
188
chan >>= 16 - bf->length;
drivers/video/fbdev/wm8505fb.c
189
return chan << bf->offset;
fs/fuse/control.c
111
val = fuse_chan_max_background(fc->chan);
fs/fuse/control.c
129
fuse_chan_max_background_set(fc->chan, val);
fs/fuse/control.c
39
fuse_chan_abort(fc->chan, fc->abort_err);
fs/fuse/control.c
57
value = fuse_chan_num_waiting(fc->chan);
fs/fuse/cuse.c
429
fuse_chan_abort(fc->chan, false);
fs/fuse/cuse.c
526
fud = fuse_dev_alloc_install(cc->fc.chan);
fs/fuse/cuse.c
533
cc->fc.chan->initialized = 1;
fs/fuse/cuse.c
558
struct cuse_conn *cc = fc_to_cc(fud->chan->conn);
fs/fuse/cuse.c
590
return sprintf(buf, "%d\n", atomic_read(&cc->fc.chan->num_waiting));
fs/fuse/cuse.c
600
fuse_chan_abort(cc->fc.chan, false);
fs/fuse/dev.c
151
struct fuse_chan *fch = req->chan;
fs/fuse/dev.c
1520
struct fuse_chan *fch = fud->chan;
fs/fuse/dev.c
1864
struct fuse_chan *fch = fud->chan;
fs/fuse/dev.c
2085
fiq = &fud->chan->iq;
fs/fuse/dev.c
2218
struct fuse_chan *fch = xchg(&fud->chan, FUSE_DEV_CHAN_DISCONNECTED);
fs/fuse/dev.c
2260
return fasync_helper(fd, file, on, &fud->chan->iq.fasync);
fs/fuse/dev.c
2292
if (!fuse_dev_install_with_pq(new_fud, fud->chan, pq))
fs/fuse/dev.c
2313
return fuse_backing_open(fud->chan->conn, &map);
fs/fuse/dev.c
2330
return fuse_backing_close(fud->chan->conn, backing_id);
fs/fuse/dev.c
2374
seq_printf(seq, "fuse_connection:\t%u\n", fuse_conn_get_id(fud->chan->conn));
fs/fuse/dev.c
42
req->chan = fch;
fs/fuse/dev.c
469
old_fch = cmpxchg(&fud->chan, NULL, fch);
fs/fuse/dev.c
630
struct fuse_chan *fch = req->chan;
fs/fuse/dev.c
668
struct fuse_iqueue *fiq = &req->chan->iq;
fs/fuse/dev.c
699
struct fuse_chan *fch = req->chan;
fs/fuse/dev.c
748
struct fuse_iqueue *fiq = &req->chan->iq;
fs/fuse/dev.c
847
struct fuse_iqueue *fiq = &req->chan->iq;
fs/fuse/dev.c
863
struct fuse_chan *fch = req->chan;
fs/fuse/dev_uring.c
1062
struct fuse_chan *fch = ring->chan;
fs/fuse/dev_uring.c
1238
fch = fud->chan;
fs/fuse/dev_uring.c
1350
struct fuse_ring *ring = req->chan->ring;
fs/fuse/dev_uring.c
137
struct fuse_chan *fch = ring->chan;
fs/fuse/dev_uring.c
1392
struct fuse_chan *fch = req->chan;
fs/fuse/dev_uring.c
271
ring->chan = fch;
fs/fuse/dev_uring.c
287
struct fuse_chan *fch = ring->chan;
fs/fuse/dev_uring.c
483
fuse_conn_put(ring->chan->conn);
fs/fuse/dev_uring.c
495
fuse_conn_get(ring->chan->conn);
fs/fuse/dev_uring.c
64
struct fuse_chan *fch = ring->chan;
fs/fuse/dev_uring.c
94
struct fuse_chan *fch = ring->chan;
fs/fuse/dev_uring_i.h
110
struct fuse_chan *chan;
fs/fuse/dir.c
1020
fuse_chan_queue_forget(fm->fc->chan, forget, outarg.nodeid, 1);
fs/fuse/dir.c
432
fuse_chan_queue_forget(fm->fc->chan, forget,
fs/fuse/dir.c
595
fuse_chan_queue_forget(fm->fc->chan, forget, outarg->nodeid, 1);
fs/fuse/dir.c
895
fuse_chan_queue_forget(fm->fc->chan, forget, outentry.nodeid, 1);
fs/fuse/file.c
2321
fuse_chan_num_background(fc->chan) >= fc->congestion_threshold)
fs/fuse/file.c
933
if (fuse_chan_num_background(fc->chan) >= fc->congestion_threshold &&
fs/fuse/fuse_dev_i.h
108
struct fuse_chan *chan;
fs/fuse/fuse_dev_i.h
306
struct fuse_chan *chan;
fs/fuse/fuse_dev_i.h
347
return smp_load_acquire(&fud->chan);
fs/fuse/fuse_i.h
469
struct fuse_chan *chan;
fs/fuse/fuse_trace.h
116
__entry->connection = req->chan->conn->dev;
fs/fuse/fuse_trace.h
139
__entry->connection = req->chan->conn->dev;
fs/fuse/fuse_trace.h
93
__entry->connection = req->chan->conn->dev;
fs/fuse/inode.c
1010
fuse_chan_release(fc->chan);
fs/fuse/inode.c
1251
fuse_chan_max_background_set(fc->chan, max_background);
fs/fuse/inode.c
139
fuse_chan_queue_forget(fc->chan, sl->forget, sl->nodeid, 1);
fs/fuse/inode.c
1405
fuse_chan_io_uring_enable(fc->chan);
fs/fuse/inode.c
1415
fuse_init_server_timeout(fc->chan, timeout);
fs/fuse/inode.c
1429
fuse_chan_set_initialized(fc->chan, NULL);
fs/fuse/inode.c
1436
fuse_chan_set_initialized(fc->chan, &cp);
fs/fuse/inode.c
162
fuse_chan_queue_forget(fc->chan, fi->forget, fi->nodeid,
fs/fuse/inode.c
1800
fuse_dev_install(fud, fc->chan);
fs/fuse/inode.c
1846
return fuse_dev_verify(fsc->sget_key, get_fuse_conn_super(sb)->chan);
fs/fuse/inode.c
1963
fuse_chan_abort(fc->chan, false);
fs/fuse/inode.c
1964
fuse_chan_wait_aborted(fc->chan);
fs/fuse/inode.c
613
fuse_chan_abort(fc->chan, false);
fs/fuse/inode.c
985
fc->chan = fch;
fs/fuse/inode.c
993
fuse_uring_destruct(fc->chan);
fs/fuse/inode.c
994
fuse_chan_free(fc->chan);
fs/fuse/notify.c
356
fuse_chan_resend(fc->chan);
fs/fuse/req.c
69
return fuse_chan_send(fc->chan, args);
fs/fuse/req.c
83
return fuse_chan_send_bg(fc->chan, args, gfp_flags);
fs/fuse/req.c
98
return fuse_chan_send_notify_reply(fc->chan, args, unique);
fs/fuse/virtio_fs.c
1568
struct virtio_fs *fs = fc->chan->iq.priv;
fs/fuse/virtio_fs.c
1612
fuse_dev_install(fsvq->fud, fc->chan);
fs/fuse/virtio_fs.c
1631
struct virtio_fs *vfs = fc->chan->iq.priv;
fs/fuse/virtio_fs.c
1679
return fsc_fm->fc->chan->iq.priv == sb_fm->fc->chan->iq.priv;
fs/smb/client/cifs_debug.c
122
cifs_dump_channel(struct seq_file *m, int i, struct cifs_chan *chan)
fs/smb/client/cifs_debug.c
124
struct TCP_Server_Info *server = chan->server;
fs/smb/client/sess.c
484
struct cifs_chan *chan;
fs/smb/client/sess.c
580
chan = &ses->chans[ses->chan_count];
fs/smb/client/sess.c
581
chan->server = chan_server;
fs/smb/client/sess.c
582
if (IS_ERR(chan->server)) {
fs/smb/client/sess.c
583
rc = PTR_ERR(chan->server);
fs/smb/client/sess.c
584
chan->server = NULL;
fs/smb/client/sess.c
588
chan->iface = iface;
fs/smb/client/sess.c
593
cifs_chan_set_need_reconnect(ses, chan->server);
fs/smb/client/sess.c
599
rc = cifs_negotiate_protocol(xid, ses, chan->server);
fs/smb/client/sess.c
601
rc = cifs_setup_session(xid, ses, chan->server, ses->local_nls);
fs/smb/client/sess.c
606
if (rc && chan->server) {
fs/smb/client/sess.c
607
cifs_put_tcp_session(chan->server, 0);
fs/smb/client/sess.c
612
cifs_chan_clear_need_reconnect(ses, chan->server);
fs/smb/client/smb2transport.c
35
struct cifs_chan *chan;
fs/smb/client/smb2transport.c
80
chan = ses->chans + i;
fs/smb/client/smb2transport.c
81
if (chan->server == server) {
fs/smb/client/smb2transport.c
82
memcpy(key, chan->signkey, SMB3_SIGN_KEY_SIZE);
fs/smb/server/mgmt/user_session.c
102
&chan->conn->inet6_addr);
fs/smb/server/mgmt/user_session.c
105
&chan->conn->inet_addr);
fs/smb/server/mgmt/user_session.c
116
chan->conn->vals->req_capabilities);
fs/smb/server/mgmt/user_session.c
123
le16_to_cpu(chan->conn->signing_algorithm));
fs/smb/server/mgmt/user_session.c
129
le16_to_cpu(chan->conn->cipher_type));
fs/smb/server/mgmt/user_session.c
203
struct channel *chan;
fs/smb/server/mgmt/user_session.c
213
xa_for_each(&session->ksmbd_chann_list, id, chan) {
fs/smb/server/mgmt/user_session.c
214
down_read(&chan->conn->session_lock);
fs/smb/server/mgmt/user_session.c
218
if (!chan->conn->inet_addr)
fs/smb/server/mgmt/user_session.c
219
seq_printf(m, " %-40pI6c", &chan->conn->inet6_addr);
fs/smb/server/mgmt/user_session.c
222
seq_printf(m, " %-40pI4", &chan->conn->inet_addr);
fs/smb/server/mgmt/user_session.c
229
up_read(&chan->conn->session_lock);
fs/smb/server/mgmt/user_session.c
86
struct channel *chan;
fs/smb/server/mgmt/user_session.c
95
xa_for_each(&sess->ksmbd_chann_list, id, chan) {
fs/smb/server/mgmt/user_session.c
97
if (chan->conn->inet_addr)
fs/smb/server/mgmt/user_session.c
99
&chan->conn->inet_addr);
include/acpi/pcc.h
39
extern void pcc_mbox_free_channel(struct pcc_mbox_chan *chan);
include/acpi/pcc.h
46
static inline void pcc_mbox_free_channel(struct pcc_mbox_chan *chan) { }
include/linux/amba/pl08x.h
122
bool pl08x_filter_id(struct dma_chan *chan, void *chan_id);
include/linux/amba/pl08x.h
124
static inline bool pl08x_filter_id(struct dma_chan *chan, void *chan_id)
include/linux/amba/serial.h
226
bool (*dma_filter)(struct dma_chan *chan, void *filter_param);
include/linux/async_tx.h
158
void async_tx_submit(struct dma_chan *chan, struct dma_async_tx_descriptor *tx,
include/linux/async_tx.h
30
struct dma_chan *chan;
include/linux/async_tx.h
91
struct dma_chan *chan = tx->chan;
include/linux/async_tx.h
92
struct dma_device *dma = chan->device;
include/linux/async_tx.h
94
dma->device_issue_pending(chan);
include/linux/comedi/comedi_isadma.h
34
unsigned int chan;
include/linux/comedi/comedi_isadma.h
53
unsigned int chan;
include/linux/comedi/comedidev.h
720
unsigned int chan,
include/linux/comedi/comedidev.h
723
return s->range_table_list[chan]->range[range].min < 0;
include/linux/comedi/comedidev.h
743
unsigned int chan,
include/linux/comedi/comedidev.h
746
return s->range_table_list[chan]->range[range].min >= 0;
include/linux/comedi/comedidev.h
766
unsigned int chan,
include/linux/comedi/comedidev.h
769
return !!(s->range_table_list[chan]->range[range].flags & RF_EXTERNAL);
include/linux/comedi/comedilib.h
46
unsigned int chan, unsigned int *io);
include/linux/comedi/comedilib.h
48
unsigned int chan, unsigned int io);
include/linux/device-id/mhi.h
20
const char chan[MHI_NAME_SIZE];
include/linux/dma/imx-dma.h
60
static inline int imx_dma_is_ipu(struct dma_chan *chan)
include/linux/dma/imx-dma.h
62
return !strcmp(dev_name(chan->device->dev), "ipu-core");
include/linux/dma/imx-dma.h
65
static inline int imx_dma_is_general_purpose(struct dma_chan *chan)
include/linux/dma/imx-dma.h
67
return !strcmp(chan->device->dev->driver->name, "imx-sdma") ||
include/linux/dma/imx-dma.h
68
!strcmp(chan->device->dev->driver->name, "imx-dma");
include/linux/dma/mxs-dma.h
17
struct dma_chan *chan, u32 *pio, unsigned int npio,
include/linux/dma/mxs-dma.h
20
return dmaengine_prep_slave_sg(chan, (struct scatterlist *)pio, npio,
include/linux/dmaengine.h
1003
struct dma_chan *chan, const struct dma_vec *vecs, size_t nents,
include/linux/dmaengine.h
1006
if (!chan || !chan->device || !chan->device->device_prep_peripheral_dma_vec)
include/linux/dmaengine.h
1009
return chan->device->device_prep_peripheral_dma_vec(chan, vecs, nents,
include/linux/dmaengine.h
1014
struct dma_chan *chan, struct scatterlist *sgl, unsigned int sg_len,
include/linux/dmaengine.h
1017
if (!chan || !chan->device || !chan->device->device_prep_slave_sg)
include/linux/dmaengine.h
1020
return chan->device->device_prep_slave_sg(chan, sgl, sg_len,
include/linux/dmaengine.h
1027
struct dma_chan *chan, struct scatterlist *sgl, unsigned int sg_len,
include/linux/dmaengine.h
1031
if (!chan || !chan->device || !chan->device->device_prep_slave_sg)
include/linux/dmaengine.h
1034
return chan->device->device_prep_slave_sg(chan, sgl, sg_len,
include/linux/dmaengine.h
1040
struct dma_chan *chan, dma_addr_t buf_addr, size_t buf_len,
include/linux/dmaengine.h
1044
if (!chan || !chan->device || !chan->device->device_prep_dma_cyclic)
include/linux/dmaengine.h
1047
return chan->device->device_prep_dma_cyclic(chan, buf_addr, buf_len,
include/linux/dmaengine.h
1052
struct dma_chan *chan, struct dma_interleaved_template *xt,
include/linux/dmaengine.h
1055
if (!chan || !chan->device || !chan->device->device_prep_interleaved_dma)
include/linux/dmaengine.h
1058
!test_bit(DMA_REPEAT, chan->device->cap_mask.bits))
include/linux/dmaengine.h
1061
return chan->device->device_prep_interleaved_dma(chan, xt, flags);
include/linux/dmaengine.h
1073
struct dma_chan *chan, dma_addr_t dest, int value, size_t len,
include/linux/dmaengine.h
1076
if (!chan || !chan->device || !chan->device->device_prep_dma_memset)
include/linux/dmaengine.h
1079
return chan->device->device_prep_dma_memset(chan, dest, value,
include/linux/dmaengine.h
1084
struct dma_chan *chan, dma_addr_t dest, dma_addr_t src,
include/linux/dmaengine.h
1087
if (!chan || !chan->device || !chan->device->device_prep_dma_memcpy)
include/linux/dmaengine.h
1090
return chan->device->device_prep_dma_memcpy(chan, dest, src,
include/linux/dmaengine.h
1094
static inline bool dmaengine_is_metadata_mode_supported(struct dma_chan *chan,
include/linux/dmaengine.h
1097
if (!chan)
include/linux/dmaengine.h
1100
return !!(chan->device->desc_metadata_modes & mode);
include/linux/dmaengine.h
1136
static inline int dmaengine_terminate_all(struct dma_chan *chan)
include/linux/dmaengine.h
1138
if (chan->device->device_terminate_all)
include/linux/dmaengine.h
1139
return chan->device->device_terminate_all(chan);
include/linux/dmaengine.h
1165
static inline int dmaengine_terminate_async(struct dma_chan *chan)
include/linux/dmaengine.h
1167
if (chan->device->device_terminate_all)
include/linux/dmaengine.h
1168
return chan->device->device_terminate_all(chan);
include/linux/dmaengine.h
1191
static inline void dmaengine_synchronize(struct dma_chan *chan)
include/linux/dmaengine.h
1195
if (chan->device->device_synchronize)
include/linux/dmaengine.h
1196
chan->device->device_synchronize(chan);
include/linux/dmaengine.h
1213
static inline int dmaengine_terminate_sync(struct dma_chan *chan)
include/linux/dmaengine.h
1217
ret = dmaengine_terminate_async(chan);
include/linux/dmaengine.h
1221
dmaengine_synchronize(chan);
include/linux/dmaengine.h
1226
static inline int dmaengine_pause(struct dma_chan *chan)
include/linux/dmaengine.h
1228
if (chan->device->device_pause)
include/linux/dmaengine.h
1229
return chan->device->device_pause(chan);
include/linux/dmaengine.h
1234
static inline int dmaengine_resume(struct dma_chan *chan)
include/linux/dmaengine.h
1236
if (chan->device->device_resume)
include/linux/dmaengine.h
1237
return chan->device->device_resume(chan);
include/linux/dmaengine.h
1242
static inline enum dma_status dmaengine_tx_status(struct dma_chan *chan,
include/linux/dmaengine.h
1245
return chan->device->device_tx_status(chan, cookie, state);
include/linux/dmaengine.h
1400
struct dma_chan *chan);
include/linux/dmaengine.h
1454
static inline void dma_async_issue_pending(struct dma_chan *chan)
include/linux/dmaengine.h
1456
chan->device->device_issue_pending(chan);
include/linux/dmaengine.h
1470
static inline enum dma_status dma_async_is_tx_complete(struct dma_chan *chan,
include/linux/dmaengine.h
1476
status = chan->device->device_tx_status(chan, cookie, &state);
include/linux/dmaengine.h
1519
enum dma_status dma_sync_wait(struct dma_chan *chan, dma_cookie_t cookie);
include/linux/dmaengine.h
1530
void dma_release_channel(struct dma_chan *chan);
include/linux/dmaengine.h
1531
int dma_get_slave_caps(struct dma_chan *chan, struct dma_slave_caps *caps);
include/linux/dmaengine.h
1537
static inline enum dma_status dma_sync_wait(struct dma_chan *chan, dma_cookie_t cookie)
include/linux/dmaengine.h
1571
static inline void dma_release_channel(struct dma_chan *chan)
include/linux/dmaengine.h
1574
static inline int dma_get_slave_caps(struct dma_chan *chan,
include/linux/dmaengine.h
1586
ret = dma_get_slave_caps(tx->chan, &caps);
include/linux/dmaengine.h
1622
struct dma_chan *chan,
include/linux/dmaengine.h
1625
struct dma_chan *chan);
include/linux/dmaengine.h
1644
struct dma_chan *chan;
include/linux/dmaengine.h
1646
chan = dma_request_chan(dev, name);
include/linux/dmaengine.h
1647
if (!IS_ERR(chan))
include/linux/dmaengine.h
1648
return chan;
include/linux/dmaengine.h
1673
static inline struct device *dmaengine_get_dma_device(struct dma_chan *chan)
include/linux/dmaengine.h
1675
if (chan->dev->chan_dma_dev)
include/linux/dmaengine.h
1676
return &chan->dev->device;
include/linux/dmaengine.h
1678
return chan->device->dev;
include/linux/dmaengine.h
373
struct dma_chan *chan;
include/linux/dmaengine.h
525
static inline const char *dma_chan_name(struct dma_chan *chan)
include/linux/dmaengine.h
527
return dev_name(&chan->dev->device);
include/linux/dmaengine.h
541
typedef bool (*dma_filter_fn)(struct dma_chan *chan, void *filter_param);
include/linux/dmaengine.h
618
struct dma_chan *chan;
include/linux/dmaengine.h
899
int (*device_alloc_chan_resources)(struct dma_chan *chan);
include/linux/dmaengine.h
900
int (*device_router_config)(struct dma_chan *chan);
include/linux/dmaengine.h
901
void (*device_free_chan_resources)(struct dma_chan *chan);
include/linux/dmaengine.h
904
struct dma_chan *chan, dma_addr_t dst, dma_addr_t src,
include/linux/dmaengine.h
907
struct dma_chan *chan, dma_addr_t dst, dma_addr_t *src,
include/linux/dmaengine.h
910
struct dma_chan *chan, dma_addr_t *src, unsigned int src_cnt,
include/linux/dmaengine.h
913
struct dma_chan *chan, dma_addr_t *dst, dma_addr_t *src,
include/linux/dmaengine.h
917
struct dma_chan *chan, dma_addr_t *pq, dma_addr_t *src,
include/linux/dmaengine.h
921
struct dma_chan *chan, dma_addr_t dest, int value, size_t len,
include/linux/dmaengine.h
924
struct dma_chan *chan, struct scatterlist *sg,
include/linux/dmaengine.h
927
struct dma_chan *chan, unsigned long flags);
include/linux/dmaengine.h
930
struct dma_chan *chan, const struct dma_vec *vecs,
include/linux/dmaengine.h
934
struct dma_chan *chan, struct scatterlist *sgl,
include/linux/dmaengine.h
938
struct dma_chan *chan, dma_addr_t buf_addr, size_t buf_len,
include/linux/dmaengine.h
942
struct dma_chan *chan, struct dma_interleaved_template *xt,
include/linux/dmaengine.h
945
void (*device_caps)(struct dma_chan *chan, struct dma_slave_caps *caps);
include/linux/dmaengine.h
946
int (*device_config)(struct dma_chan *chan, struct dma_slave_config *config);
include/linux/dmaengine.h
947
int (*device_pause)(struct dma_chan *chan);
include/linux/dmaengine.h
948
int (*device_resume)(struct dma_chan *chan);
include/linux/dmaengine.h
949
int (*device_terminate_all)(struct dma_chan *chan);
include/linux/dmaengine.h
950
void (*device_synchronize)(struct dma_chan *chan);
include/linux/dmaengine.h
952
enum dma_status (*device_tx_status)(struct dma_chan *chan,
include/linux/dmaengine.h
955
void (*device_issue_pending)(struct dma_chan *chan);
include/linux/dmaengine.h
962
static inline int dmaengine_slave_config(struct dma_chan *chan,
include/linux/dmaengine.h
965
if (chan->device->device_config)
include/linux/dmaengine.h
966
return chan->device->device_config(chan, config);
include/linux/dmaengine.h
978
struct dma_chan *chan, dma_addr_t buf, size_t len,
include/linux/dmaengine.h
986
if (!chan || !chan->device || !chan->device->device_prep_slave_sg)
include/linux/dmaengine.h
989
return chan->device->device_prep_slave_sg(chan, &sg, 1,
include/linux/firmware/intel/stratix10-svc-client.h
267
void stratix10_svc_free_channel(struct stratix10_svc_chan *chan);
include/linux/firmware/intel/stratix10-svc-client.h
280
void *stratix10_svc_allocate_memory(struct stratix10_svc_chan *chan,
include/linux/firmware/intel/stratix10-svc-client.h
288
void stratix10_svc_free_memory(struct stratix10_svc_chan *chan, void *kaddr);
include/linux/firmware/intel/stratix10-svc-client.h
298
int stratix10_svc_send(struct stratix10_svc_chan *chan, void *msg);
include/linux/firmware/intel/stratix10-svc-client.h
308
void stratix10_svc_done(struct stratix10_svc_chan *chan);
include/linux/firmware/intel/stratix10-svc-client.h
337
int stratix10_svc_add_async_client(struct stratix10_svc_chan *chan, bool use_unique_clientid);
include/linux/firmware/intel/stratix10-svc-client.h
349
int stratix10_svc_remove_async_client(struct stratix10_svc_chan *chan);
include/linux/firmware/intel/stratix10-svc-client.h
365
int stratix10_svc_async_send(struct stratix10_svc_chan *chan, void *msg, void **handler,
include/linux/firmware/intel/stratix10-svc-client.h
381
int stratix10_svc_async_poll(struct stratix10_svc_chan *chan, void *tx_handle,
include/linux/firmware/intel/stratix10-svc-client.h
394
int stratix10_svc_async_done(struct stratix10_svc_chan *chan, void *tx_handle);
include/linux/firmware/samsung/exynos-acpm-protocol.h
26
u8 type, u8 reg, u8 chan, u8 *buf);
include/linux/firmware/samsung/exynos-acpm-protocol.h
28
u8 type, u8 reg, u8 chan, u8 count, u8 *buf);
include/linux/firmware/samsung/exynos-acpm-protocol.h
30
u8 type, u8 reg, u8 chan, u8 value);
include/linux/firmware/samsung/exynos-acpm-protocol.h
32
u8 type, u8 reg, u8 chan, u8 count, const u8 *buf);
include/linux/firmware/samsung/exynos-acpm-protocol.h
34
u8 type, u8 reg, u8 chan, u8 value, u8 mask);
include/linux/if_pppox.h
43
struct ppp_channel chan;
include/linux/iio/adc/ad_sigma_delta.h
171
unsigned int chan)
include/linux/iio/adc/ad_sigma_delta.h
174
return sd->info->disable_one(sd, chan);
include/linux/iio/adc/ad_sigma_delta.h
206
const struct iio_chan_spec *chan, int *val);
include/linux/iio/adc/ad_sigma_delta.h
70
int (*disable_one)(struct ad_sigma_delta *, unsigned int chan);
include/linux/iio/afe/rescale.h
23
struct iio_chan_spec chan;
include/linux/iio/backend.h
145
int (*chan_enable)(struct iio_backend *back, unsigned int chan);
include/linux/iio/backend.h
146
int (*chan_disable)(struct iio_backend *back, unsigned int chan);
include/linux/iio/backend.h
147
int (*data_format_set)(struct iio_backend *back, unsigned int chan,
include/linux/iio/backend.h
149
int (*data_source_set)(struct iio_backend *back, unsigned int chan,
include/linux/iio/backend.h
151
int (*data_source_get)(struct iio_backend *back, unsigned int chan,
include/linux/iio/backend.h
153
int (*set_sample_rate)(struct iio_backend *back, unsigned int chan,
include/linux/iio/backend.h
156
unsigned int chan,
include/linux/iio/backend.h
158
int (*chan_status)(struct iio_backend *back, unsigned int chan,
include/linux/iio/backend.h
160
int (*iodelay_set)(struct iio_backend *back, unsigned int chan,
include/linux/iio/backend.h
169
struct iio_chan_spec *chan);
include/linux/iio/backend.h
171
const struct iio_chan_spec *chan,
include/linux/iio/backend.h
174
const struct iio_chan_spec *chan, char *buf);
include/linux/iio/backend.h
179
unsigned int chan, unsigned int ratio);
include/linux/iio/backend.h
181
struct iio_chan_spec const *chan, int *val, int *val2,
include/linux/iio/backend.h
184
unsigned int chan, char *buf,
include/linux/iio/backend.h
211
int iio_backend_chan_enable(struct iio_backend *back, unsigned int chan);
include/linux/iio/backend.h
212
int iio_backend_chan_disable(struct iio_backend *back, unsigned int chan);
include/linux/iio/backend.h
216
int iio_backend_data_format_set(struct iio_backend *back, unsigned int chan,
include/linux/iio/backend.h
218
int iio_backend_data_source_set(struct iio_backend *back, unsigned int chan,
include/linux/iio/backend.h
220
int iio_backend_data_source_get(struct iio_backend *back, unsigned int chan,
include/linux/iio/backend.h
222
int iio_backend_set_sampling_freq(struct iio_backend *back, unsigned int chan,
include/linux/iio/backend.h
225
unsigned int chan,
include/linux/iio/backend.h
227
int iio_backend_chan_status(struct iio_backend *back, unsigned int chan,
include/linux/iio/backend.h
246
const struct iio_chan_spec *chan,
include/linux/iio/backend.h
249
const struct iio_chan_spec *chan, char *buf);
include/linux/iio/backend.h
254
unsigned int chan,
include/linux/iio/backend.h
257
struct iio_chan_spec const *chan, int *val, int *val2,
include/linux/iio/backend.h
260
struct iio_chan_spec *chan);
include/linux/iio/backend.h
276
struct iio_chan_spec const *chan,
include/linux/iio/backend.h
279
return iio_backend_read_raw(back, chan, val, val2, IIO_CHAN_INFO_SCALE);
include/linux/iio/backend.h
283
struct iio_chan_spec const *chan,
include/linux/iio/backend.h
286
return iio_backend_read_raw(back, chan, val, val2,
include/linux/iio/backend.h
291
unsigned int chan, char *buf,
include/linux/iio/buffer-dmaengine.h
32
struct dma_chan *chan,
include/linux/iio/common/cros_ec_sensors_core.h
111
struct iio_chan_spec const *chan,
include/linux/iio/common/cros_ec_sensors_core.h
115
struct iio_chan_spec const *chan,
include/linux/iio/common/cros_ec_sensors_core.h
122
struct iio_chan_spec const *chan,
include/linux/iio/consumer.h
209
int iio_read_channel_raw(struct iio_channel *chan,
include/linux/iio/consumer.h
224
int iio_read_channel_average_raw(struct iio_channel *chan, int *val);
include/linux/iio/consumer.h
239
int iio_read_channel_processed(struct iio_channel *chan, int *val);
include/linux/iio/consumer.h
253
int iio_read_channel_processed_scale(struct iio_channel *chan, int *val,
include/linux/iio/consumer.h
265
int iio_write_channel_attribute(struct iio_channel *chan, int val,
include/linux/iio/consumer.h
279
int iio_read_channel_attribute(struct iio_channel *chan, int *val,
include/linux/iio/consumer.h
291
int iio_write_channel_raw(struct iio_channel *chan, int val);
include/linux/iio/consumer.h
303
int iio_read_max_channel_raw(struct iio_channel *chan, int *val);
include/linux/iio/consumer.h
315
int iio_read_min_channel_raw(struct iio_channel *chan, int *val);
include/linux/iio/consumer.h
332
int iio_read_avail_channel_raw(struct iio_channel *chan,
include/linux/iio/consumer.h
345
int iio_read_avail_channel_attribute(struct iio_channel *chan,
include/linux/iio/consumer.h
369
int iio_read_channel_offset(struct iio_channel *chan, int *val,
include/linux/iio/consumer.h
382
int iio_read_channel_scale(struct iio_channel *chan, int *val,
include/linux/iio/consumer.h
423
int iio_convert_raw_to_processed(struct iio_channel *chan, int raw,
include/linux/iio/consumer.h
433
unsigned int iio_get_channel_ext_info_count(struct iio_channel *chan);
include/linux/iio/consumer.h
445
ssize_t iio_read_channel_ext_info(struct iio_channel *chan,
include/linux/iio/consumer.h
460
ssize_t iio_write_channel_ext_info(struct iio_channel *chan, const char *attr,
include/linux/iio/consumer.h
47
void iio_channel_release(struct iio_channel *chan);
include/linux/iio/consumer.h
471
ssize_t iio_read_channel_label(struct iio_channel *chan, char *buf);
include/linux/iio/consumer.h
82
void iio_channel_release_all(struct iio_channel *chan);
include/linux/iio/events.h
28
type, chan, chan1, chan2) \
include/linux/iio/events.h
32
((u16)chan))
include/linux/iio/iio.h
1059
const struct iio_chan_spec *chan)
include/linux/iio/iio.h
1063
if (chan->has_ext_scan_type) {
include/linux/iio/iio.h
1064
ret = indio_dev->info->get_current_scan_type(indio_dev, chan);
include/linux/iio/iio.h
1068
if (ret >= chan->num_ext_scan_type)
include/linux/iio/iio.h
1071
return &chan->ext_scan_type[ret];
include/linux/iio/iio.h
1074
return &chan->scan_type;
include/linux/iio/iio.h
1093
#define iio_for_each_active_channel(indio_dev, chan) \
include/linux/iio/iio.h
1094
for_each_set_bit((chan), (indio_dev)->active_scan_mask, \
include/linux/iio/iio.h
136
const struct iio_chan_spec *chan, char *buf);
include/linux/iio/iio.h
330
static inline bool iio_channel_has_info(const struct iio_chan_spec *chan,
include/linux/iio/iio.h
333
return (chan->info_mask_separate & BIT(type)) |
include/linux/iio/iio.h
334
(chan->info_mask_shared_by_type & BIT(type)) |
include/linux/iio/iio.h
335
(chan->info_mask_shared_by_dir & BIT(type)) |
include/linux/iio/iio.h
336
(chan->info_mask_shared_by_all & BIT(type));
include/linux/iio/iio.h
347
static inline bool iio_channel_has_available(const struct iio_chan_spec *chan,
include/linux/iio/iio.h
350
return (chan->info_mask_separate_available & BIT(type)) |
include/linux/iio/iio.h
351
(chan->info_mask_shared_by_type_available & BIT(type)) |
include/linux/iio/iio.h
352
(chan->info_mask_shared_by_dir_available & BIT(type)) |
include/linux/iio/iio.h
353
(chan->info_mask_shared_by_all_available & BIT(type));
include/linux/iio/iio.h
504
struct iio_chan_spec const *chan,
include/linux/iio/iio.h
510
struct iio_chan_spec const *chan,
include/linux/iio/iio.h
517
struct iio_chan_spec const *chan,
include/linux/iio/iio.h
524
struct iio_chan_spec const *chan,
include/linux/iio/iio.h
530
struct iio_chan_spec const *chan,
include/linux/iio/iio.h
534
struct iio_chan_spec const *chan,
include/linux/iio/iio.h
538
const struct iio_chan_spec *chan,
include/linux/iio/iio.h
543
const struct iio_chan_spec *chan,
include/linux/iio/iio.h
549
const struct iio_chan_spec *chan,
include/linux/iio/iio.h
555
const struct iio_chan_spec *chan,
include/linux/iio/iio.h
561
struct iio_chan_spec const *chan,
include/linux/iio/iio.h
569
const struct iio_chan_spec *chan);
include/linux/iio/iio.h
85
uintptr_t priv, const struct iio_chan_spec *chan, char *buf);
include/linux/iio/iio.h
87
uintptr_t priv, const struct iio_chan_spec *chan, char *buf);
include/linux/iio/iio.h
89
uintptr_t priv, const struct iio_chan_spec *chan, const char *buf,
include/linux/iio/imu/adis.h
457
const struct iio_chan_spec *chan,
include/linux/iio/imu/adis.h
460
#define ADIS_VOLTAGE_CHAN(addr, si, chan, name, info_all, bits) { \
include/linux/iio/imu/adis.h
463
.channel = (chan), \
include/linux/mailbox/mtk-cmdq-mailbox.h
109
u8 cmdq_get_shift_pa(struct mbox_chan *chan);
include/linux/mailbox/mtk-cmdq-mailbox.h
97
void cmdq_get_mbox_priv(struct mbox_chan *chan, struct cmdq_mbox_priv *priv);
include/linux/mailbox/riscv-rpmi-message.h
227
static inline int rpmi_mbox_send_message(struct mbox_chan *chan,
include/linux/mailbox/riscv-rpmi-message.h
233
ret = mbox_send_message(chan, msg);
include/linux/mailbox/riscv-rpmi-message.h
239
mbox_client_txdone(chan, ret);
include/linux/mailbox_client.h
40
int mbox_bind_client(struct mbox_chan *chan, struct mbox_client *cl);
include/linux/mailbox_client.h
44
int mbox_send_message(struct mbox_chan *chan, void *mssg);
include/linux/mailbox_client.h
45
int mbox_flush(struct mbox_chan *chan, unsigned long timeout);
include/linux/mailbox_client.h
46
void mbox_client_txdone(struct mbox_chan *chan, int r); /* atomic */
include/linux/mailbox_client.h
47
bool mbox_client_peek_data(struct mbox_chan *chan); /* atomic */
include/linux/mailbox_client.h
48
unsigned int mbox_chan_tx_slots_available(struct mbox_chan *chan); /* atomic */
include/linux/mailbox_client.h
49
void mbox_free_channel(struct mbox_chan *chan); /* may sleep */
include/linux/mailbox_controller.h
146
void mbox_chan_received_data(struct mbox_chan *chan, void *data); /* atomic */
include/linux/mailbox_controller.h
147
void mbox_chan_txdone(struct mbox_chan *chan, int r); /* atomic */
include/linux/mailbox_controller.h
55
int (*send_data)(struct mbox_chan *chan, void *data);
include/linux/mailbox_controller.h
56
int (*flush)(struct mbox_chan *chan, unsigned long timeout);
include/linux/mailbox_controller.h
57
int (*startup)(struct mbox_chan *chan);
include/linux/mailbox_controller.h
58
void (*shutdown)(struct mbox_chan *chan);
include/linux/mailbox_controller.h
59
bool (*last_tx_done)(struct mbox_chan *chan);
include/linux/mailbox_controller.h
60
bool (*peek_data)(struct mbox_chan *chan);
include/linux/mfd/stm32-timers.h
156
struct dma_chan *chan;
include/linux/mfd/viperboard.h
54
u8 chan;
include/linux/mtd/nand-qpic-common.h
413
struct dma_chan *chan;
include/linux/mtd/nand-qpic-common.h
465
struct dma_chan *chan, unsigned long flags);
include/linux/platform_data/dma-mcf-edma.h
22
bool mcf_edma_filter_fn(struct dma_chan *chan, void *param);
include/linux/platform_data/edma.h
48
#define EDMA_CTLR_CHAN(ctlr, chan) (((ctlr) << 16) | (chan))
include/linux/platform_data/edma.h
52
#define EDMA_FILTER_PARAM(ctlr, chan) ((int[]) { EDMA_CTLR_CHAN(ctlr, chan) })
include/linux/platform_data/usb-musb-ux500.h
17
bool (*dma_filter)(struct dma_chan *chan, void *filter_param);
include/linux/ptp_clock_kernel.h
223
enum ptp_pin_function func, unsigned int chan);
include/linux/ptp_clock_kernel.h
409
enum ptp_pin_function func, unsigned int chan);
include/linux/ptp_clock_kernel.h
427
enum ptp_pin_function func, unsigned int chan);
include/linux/ptp_clock_kernel.h
462
enum ptp_pin_function func, unsigned int chan)
include/linux/ptp_clock_kernel.h
466
unsigned int chan)
include/linux/relay.h
175
extern void relay_close(struct rchan *chan);
include/linux/relay.h
176
extern void relay_flush(struct rchan *chan);
include/linux/relay.h
177
size_t relay_stats(struct rchan *chan, int flags);
include/linux/relay.h
178
extern void relay_subbufs_consumed(struct rchan *chan,
include/linux/relay.h
181
extern void relay_reset(struct rchan *chan);
include/linux/relay.h
200
static inline void relay_write(struct rchan *chan,
include/linux/relay.h
208
buf = *this_cpu_ptr(chan->buf);
include/linux/relay.h
209
if (unlikely(buf->offset + length > chan->subbuf_size))
include/linux/relay.h
228
static inline void __relay_write(struct rchan *chan,
include/linux/relay.h
234
buf = *get_cpu_ptr(chan->buf);
include/linux/relay.h
235
if (unlikely(buf->offset + length > buf->chan->subbuf_size))
include/linux/relay.h
239
put_cpu_ptr(chan->buf);
include/linux/relay.h
253
static inline void *relay_reserve(struct rchan *chan, size_t length)
include/linux/relay.h
256
struct rchan_buf *buf = *get_cpu_ptr(chan->buf);
include/linux/relay.h
258
if (unlikely(buf->offset + length > buf->chan->subbuf_size)) {
include/linux/relay.h
267
put_cpu_ptr(chan->buf);
include/linux/relay.h
282
BUG_ON(length >= buf->chan->subbuf_size - 1);
include/linux/relay.h
57
struct rchan *chan; /* associated channel */
include/linux/shdma-base.h
126
bool shdma_chan_filter(struct dma_chan *chan, void *arg);
include/linux/shdma-base.h
128
static inline bool shdma_chan_filter(struct dma_chan *chan, void *arg)
include/linux/soc/mediatek/mtk-cmdq.h
75
struct mbox_chan *chan;
include/linux/stm.h
140
int notrace stm_source_write(struct stm_source_data *data, unsigned int chan,
include/linux/stmmac.h
140
u32 chan;
include/net/bluetooth/bluetooth.h
454
struct l2cap_chan *chan;
include/net/bluetooth/hci_core.h
1584
void hci_chan_del(struct hci_chan *chan);
include/net/bluetooth/hci_core.h
2337
void hci_send_acl(struct hci_chan *chan, struct sk_buff *skb, __u16 flags);
include/net/bluetooth/l2cap.h
620
int (*new_connection)(struct l2cap_chan *chan,
include/net/bluetooth/l2cap.h
622
int (*recv) (struct l2cap_chan * chan,
include/net/bluetooth/l2cap.h
624
void (*teardown) (struct l2cap_chan *chan, int err);
include/net/bluetooth/l2cap.h
625
void (*close) (struct l2cap_chan *chan);
include/net/bluetooth/l2cap.h
626
void (*state_change) (struct l2cap_chan *chan,
include/net/bluetooth/l2cap.h
628
void (*ready) (struct l2cap_chan *chan);
include/net/bluetooth/l2cap.h
629
void (*defer) (struct l2cap_chan *chan);
include/net/bluetooth/l2cap.h
630
void (*resume) (struct l2cap_chan *chan);
include/net/bluetooth/l2cap.h
631
void (*suspend) (struct l2cap_chan *chan);
include/net/bluetooth/l2cap.h
632
void (*set_shutdown) (struct l2cap_chan *chan);
include/net/bluetooth/l2cap.h
633
long (*get_sndtimeo) (struct l2cap_chan *chan);
include/net/bluetooth/l2cap.h
634
struct pid *(*get_peer_pid) (struct l2cap_chan *chan);
include/net/bluetooth/l2cap.h
635
struct sk_buff *(*alloc_skb) (struct l2cap_chan *chan,
include/net/bluetooth/l2cap.h
638
int (*filter) (struct l2cap_chan * chan,
include/net/bluetooth/l2cap.h
702
struct l2cap_chan *chan;
include/net/bluetooth/l2cap.h
827
static inline void l2cap_chan_lock(struct l2cap_chan *chan)
include/net/bluetooth/l2cap.h
829
mutex_lock_nested(&chan->lock, atomic_read(&chan->nesting));
include/net/bluetooth/l2cap.h
832
static inline void l2cap_chan_unlock(struct l2cap_chan *chan)
include/net/bluetooth/l2cap.h
834
mutex_unlock(&chan->lock);
include/net/bluetooth/l2cap.h
837
static inline void l2cap_set_timer(struct l2cap_chan *chan,
include/net/bluetooth/l2cap.h
840
BT_DBG("chan %p state %s timeout %ld", chan,
include/net/bluetooth/l2cap.h
841
state_to_string(chan->state), timeout);
include/net/bluetooth/l2cap.h
846
l2cap_chan_hold(chan);
include/net/bluetooth/l2cap.h
851
static inline bool l2cap_clear_timer(struct l2cap_chan *chan,
include/net/bluetooth/l2cap.h
860
l2cap_chan_put(chan);
include/net/bluetooth/l2cap.h
869
#define __set_ack_timer(c) l2cap_set_timer(c, &chan->ack_timer, \
include/net/bluetooth/l2cap.h
873
static inline int __seq_offset(struct l2cap_chan *chan, __u16 seq1, __u16 seq2)
include/net/bluetooth/l2cap.h
878
return chan->tx_win_max + 1 - seq2 + seq1;
include/net/bluetooth/l2cap.h
881
static inline __u16 __next_seq(struct l2cap_chan *chan, __u16 seq)
include/net/bluetooth/l2cap.h
883
return (seq + 1) % (chan->tx_win_max + 1);
include/net/bluetooth/l2cap.h
886
static inline int l2cap_chan_no_new_connection(struct l2cap_chan *chan,
include/net/bluetooth/l2cap.h
892
static inline int l2cap_chan_no_recv(struct l2cap_chan *chan, struct sk_buff *skb)
include/net/bluetooth/l2cap.h
897
static inline struct sk_buff *l2cap_chan_no_alloc_skb(struct l2cap_chan *chan,
include/net/bluetooth/l2cap.h
904
static inline void l2cap_chan_no_teardown(struct l2cap_chan *chan, int err)
include/net/bluetooth/l2cap.h
908
static inline void l2cap_chan_no_close(struct l2cap_chan *chan)
include/net/bluetooth/l2cap.h
912
static inline void l2cap_chan_no_ready(struct l2cap_chan *chan)
include/net/bluetooth/l2cap.h
916
static inline void l2cap_chan_no_state_change(struct l2cap_chan *chan,
include/net/bluetooth/l2cap.h
921
static inline void l2cap_chan_no_defer(struct l2cap_chan *chan)
include/net/bluetooth/l2cap.h
925
static inline void l2cap_chan_no_suspend(struct l2cap_chan *chan)
include/net/bluetooth/l2cap.h
929
static inline void l2cap_chan_no_resume(struct l2cap_chan *chan)
include/net/bluetooth/l2cap.h
933
static inline void l2cap_chan_no_set_shutdown(struct l2cap_chan *chan)
include/net/bluetooth/l2cap.h
937
static inline long l2cap_chan_no_get_sndtimeo(struct l2cap_chan *chan)
include/net/bluetooth/l2cap.h
949
void __l2cap_le_connect_rsp_defer(struct l2cap_chan *chan);
include/net/bluetooth/l2cap.h
950
void __l2cap_ecred_conn_rsp_defer(struct l2cap_chan *chan);
include/net/bluetooth/l2cap.h
951
void __l2cap_connect_rsp_defer(struct l2cap_chan *chan);
include/net/bluetooth/l2cap.h
953
int l2cap_add_psm(struct l2cap_chan *chan, bdaddr_t *src, __le16 psm);
include/net/bluetooth/l2cap.h
954
int l2cap_add_scid(struct l2cap_chan *chan, __u16 scid);
include/net/bluetooth/l2cap.h
957
void l2cap_chan_close(struct l2cap_chan *chan, int reason);
include/net/bluetooth/l2cap.h
958
int l2cap_chan_connect(struct l2cap_chan *chan, __le16 psm, u16 cid,
include/net/bluetooth/l2cap.h
960
int l2cap_chan_reconfigure(struct l2cap_chan *chan, __u16 mtu);
include/net/bluetooth/l2cap.h
961
int l2cap_chan_send(struct l2cap_chan *chan, struct msghdr *msg, size_t len,
include/net/bluetooth/l2cap.h
963
void l2cap_chan_busy(struct l2cap_chan *chan, int busy);
include/net/bluetooth/l2cap.h
964
void l2cap_chan_rx_avail(struct l2cap_chan *chan, ssize_t rx_avail);
include/net/bluetooth/l2cap.h
965
int l2cap_chan_check_security(struct l2cap_chan *chan, bool initiator);
include/net/bluetooth/l2cap.h
966
void l2cap_chan_set_defaults(struct l2cap_chan *chan, struct l2cap_chan *pchan);
include/net/bluetooth/l2cap.h
967
int l2cap_ertm_init(struct l2cap_chan *chan);
include/net/bluetooth/l2cap.h
968
void l2cap_chan_add(struct l2cap_conn *conn, struct l2cap_chan *chan);
include/net/bluetooth/l2cap.h
969
void __l2cap_chan_add(struct l2cap_conn *conn, struct l2cap_chan *chan);
include/net/bluetooth/l2cap.h
970
typedef void (*l2cap_chan_func_t)(struct l2cap_chan *chan, void *data);
include/net/bluetooth/l2cap.h
973
void l2cap_chan_del(struct l2cap_chan *chan, int err);
include/net/bluetooth/l2cap.h
974
void l2cap_send_conn_req(struct l2cap_chan *chan);
include/net/cfg80211.h
10021
struct ieee80211_channel *chan,
include/net/cfg80211.h
1026
return (chandef1->chan == chandef2->chan &&
include/net/cfg80211.h
10319
const struct ieee80211_channel *chan);
include/net/cfg80211.h
1059
return chandef->chan->band == NL80211_BAND_S1GHZ;
include/net/cfg80211.h
10805
struct ieee80211_channel *chan, gfp_t gfp);
include/net/cfg80211.h
10957
pri_1mhz_khz = ieee80211_channel_to_khz(chandef->chan);
include/net/cfg80211.h
1228
return min(chandef->chan->max_reg_power - 6,
include/net/cfg80211.h
1229
chandef->chan->max_power);
include/net/cfg80211.h
1231
return min(chandef->chan->max_reg_power - 3,
include/net/cfg80211.h
1232
chandef->chan->max_power);
include/net/cfg80211.h
1236
return chandef->chan->max_power;
include/net/cfg80211.h
3162
struct ieee80211_channel *chan;
include/net/cfg80211.h
3993
struct ieee80211_channel *chan;
include/net/cfg80211.h
4145
struct ieee80211_channel *chan;
include/net/cfg80211.h
5365
struct ieee80211_channel *chan);
include/net/cfg80211.h
5436
struct ieee80211_channel *chan,
include/net/cfg80211.h
7408
ieee80211_channel_to_khz(const struct ieee80211_channel *chan)
include/net/cfg80211.h
7410
return MHZ_TO_KHZ(chan->center_freq) + chan->freq_offset;
include/net/cfg80211.h
7419
u32 ieee80211_channel_to_freq_khz(int chan, enum nl80211_band band);
include/net/cfg80211.h
7428
ieee80211_channel_to_frequency(int chan, enum nl80211_band band)
include/net/cfg80211.h
7430
return KHZ_TO_MHZ(ieee80211_channel_to_freq_khz(chan, band));
include/net/cfg80211.h
7483
static inline bool cfg80211_channel_is_psc(struct ieee80211_channel *chan)
include/net/cfg80211.h
7485
if (chan->band != NL80211_BAND_6GHZ)
include/net/cfg80211.h
7488
return ieee80211_frequency_to_channel(chan->center_freq) % 16 == 5;
include/net/cfg80211.h
7524
struct ieee80211_channel *chan);
include/net/cfg80211.h
8255
.chan = rx_channel,
include/net/cfg80211.h
8389
.chan = rx_channel,
include/net/cfg80211.h
878
struct ieee80211_channel *chan;
include/net/cfg80211.h
9348
struct ieee80211_channel *chan,
include/net/cfg80211.h
9359
struct ieee80211_channel *chan,
include/net/cfg80211.h
9370
struct ieee80211_channel *chan, gfp_t gfp);
include/net/cfg80211.h
993
if (chandef->center_freq1 > chandef->chan->center_freq)
include/net/mac80211.h
4934
struct ieee80211_channel *chan,
include/net/mac80211.h
7423
conf->chandef.center_freq1 < conf->chandef.chan->center_freq;
include/net/mac80211.h
7430
conf->chandef.center_freq1 > conf->chandef.chan->center_freq;
include/soc/fsl/qe/qmc.h
104
int qmc_chan_read_submit(struct qmc_chan *chan, dma_addr_t addr, size_t length,
include/soc/fsl/qe/qmc.h
113
int qmc_chan_start(struct qmc_chan *chan, int direction);
include/soc/fsl/qe/qmc.h
114
int qmc_chan_stop(struct qmc_chan *chan, int direction);
include/soc/fsl/qe/qmc.h
115
int qmc_chan_reset(struct qmc_chan *chan, int direction);
include/soc/fsl/qe/qmc.h
43
void qmc_chan_put(struct qmc_chan *chan);
include/soc/fsl/qe/qmc.h
62
int qmc_chan_get_info(struct qmc_chan *chan, struct qmc_chan_info *info);
include/soc/fsl/qe/qmc.h
71
int qmc_chan_get_ts_info(struct qmc_chan *chan, struct qmc_chan_ts_info *ts_info);
include/soc/fsl/qe/qmc.h
72
int qmc_chan_set_ts_info(struct qmc_chan *chan, const struct qmc_chan_ts_info *ts_info);
include/soc/fsl/qe/qmc.h
88
int qmc_chan_set_param(struct qmc_chan *chan, const struct qmc_chan_param *param);
include/soc/fsl/qe/qmc.h
90
int qmc_chan_write_submit(struct qmc_chan *chan, dma_addr_t addr, size_t length,
include/soc/mscc/ocelot_ptp.h
54
enum ptp_pin_function func, unsigned int chan);
include/sound/designware_i2s.h
45
bool (*filter)(struct dma_chan *chan, void *slave);
include/sound/designware_i2s.h
55
bool (*filter)(struct dma_chan *chan, void *slave);
include/sound/dmaengine_pcm.h
176
struct dma_chan *chan[SNDRV_PCM_STREAM_LAST + 1];
include/sound/dmaengine_pcm.h
37
struct dma_chan *chan);
include/sound/dmaengine_pcm.h
99
struct dma_chan *chan);
include/sound/emu8000_reg.h
100
#define EMU8000_FMMOD_READ(emu, chan) \
include/sound/emu8000_reg.h
101
snd_emu8000_peek((emu), EMU8000_DATA3(emu), EMU8000_CMD(3, (chan)))
include/sound/emu8000_reg.h
102
#define EMU8000_TREMFRQ_READ(emu, chan) \
include/sound/emu8000_reg.h
103
snd_emu8000_peek((emu), EMU8000_DATA3(emu), EMU8000_CMD(4, (chan)))
include/sound/emu8000_reg.h
104
#define EMU8000_FM2FRQ2_READ(emu, chan) \
include/sound/emu8000_reg.h
105
snd_emu8000_peek((emu), EMU8000_DATA3(emu), EMU8000_CMD(5, (chan)))
include/sound/emu8000_reg.h
108
#define EMU8000_CPF_WRITE(emu, chan, val) \
include/sound/emu8000_reg.h
109
snd_emu8000_poke_dw((emu), EMU8000_DATA0(emu), EMU8000_CMD(0, (chan)), (val))
include/sound/emu8000_reg.h
110
#define EMU8000_PTRX_WRITE(emu, chan, val) \
include/sound/emu8000_reg.h
111
snd_emu8000_poke_dw((emu), EMU8000_DATA0(emu), EMU8000_CMD(1, (chan)), (val))
include/sound/emu8000_reg.h
112
#define EMU8000_CVCF_WRITE(emu, chan, val) \
include/sound/emu8000_reg.h
113
snd_emu8000_poke_dw((emu), EMU8000_DATA0(emu), EMU8000_CMD(2, (chan)), (val))
include/sound/emu8000_reg.h
114
#define EMU8000_VTFT_WRITE(emu, chan, val) \
include/sound/emu8000_reg.h
115
snd_emu8000_poke_dw((emu), EMU8000_DATA0(emu), EMU8000_CMD(3, (chan)), (val))
include/sound/emu8000_reg.h
116
#define EMU8000_PSST_WRITE(emu, chan, val) \
include/sound/emu8000_reg.h
117
snd_emu8000_poke_dw((emu), EMU8000_DATA0(emu), EMU8000_CMD(6, (chan)), (val))
include/sound/emu8000_reg.h
118
#define EMU8000_CSL_WRITE(emu, chan, val) \
include/sound/emu8000_reg.h
119
snd_emu8000_poke_dw((emu), EMU8000_DATA0(emu), EMU8000_CMD(7, (chan)), (val))
include/sound/emu8000_reg.h
120
#define EMU8000_CCCA_WRITE(emu, chan, val) \
include/sound/emu8000_reg.h
121
snd_emu8000_poke_dw((emu), EMU8000_DATA1(emu), EMU8000_CMD(0, (chan)), (val))
include/sound/emu8000_reg.h
151
#define EMU8000_INIT1_WRITE(emu, chan, val) \
include/sound/emu8000_reg.h
152
snd_emu8000_poke((emu), EMU8000_DATA1(emu), EMU8000_CMD(2, (chan)), (val))
include/sound/emu8000_reg.h
153
#define EMU8000_INIT2_WRITE(emu, chan, val) \
include/sound/emu8000_reg.h
154
snd_emu8000_poke((emu), EMU8000_DATA2(emu), EMU8000_CMD(2, (chan)), (val))
include/sound/emu8000_reg.h
155
#define EMU8000_INIT3_WRITE(emu, chan, val) \
include/sound/emu8000_reg.h
156
snd_emu8000_poke((emu), EMU8000_DATA1(emu), EMU8000_CMD(3, (chan)), (val))
include/sound/emu8000_reg.h
157
#define EMU8000_INIT4_WRITE(emu, chan, val) \
include/sound/emu8000_reg.h
158
snd_emu8000_poke((emu), EMU8000_DATA2(emu), EMU8000_CMD(3, (chan)), (val))
include/sound/emu8000_reg.h
159
#define EMU8000_ENVVOL_WRITE(emu, chan, val) \
include/sound/emu8000_reg.h
160
snd_emu8000_poke((emu), EMU8000_DATA1(emu), EMU8000_CMD(4, (chan)), (val))
include/sound/emu8000_reg.h
161
#define EMU8000_DCYSUSV_WRITE(emu, chan, val) \
include/sound/emu8000_reg.h
162
snd_emu8000_poke((emu), EMU8000_DATA1(emu), EMU8000_CMD(5, (chan)), (val))
include/sound/emu8000_reg.h
163
#define EMU8000_ENVVAL_WRITE(emu, chan, val) \
include/sound/emu8000_reg.h
164
snd_emu8000_poke((emu), EMU8000_DATA1(emu), EMU8000_CMD(6, (chan)), (val))
include/sound/emu8000_reg.h
165
#define EMU8000_DCYSUS_WRITE(emu, chan, val) \
include/sound/emu8000_reg.h
166
snd_emu8000_poke((emu), EMU8000_DATA1(emu), EMU8000_CMD(7, (chan)), (val))
include/sound/emu8000_reg.h
167
#define EMU8000_ATKHLDV_WRITE(emu, chan, val) \
include/sound/emu8000_reg.h
168
snd_emu8000_poke((emu), EMU8000_DATA2(emu), EMU8000_CMD(4, (chan)), (val))
include/sound/emu8000_reg.h
169
#define EMU8000_LFO1VAL_WRITE(emu, chan, val) \
include/sound/emu8000_reg.h
170
snd_emu8000_poke((emu), EMU8000_DATA2(emu), EMU8000_CMD(5, (chan)), (val))
include/sound/emu8000_reg.h
171
#define EMU8000_ATKHLD_WRITE(emu, chan, val) \
include/sound/emu8000_reg.h
172
snd_emu8000_poke((emu), EMU8000_DATA2(emu), EMU8000_CMD(6, (chan)), (val))
include/sound/emu8000_reg.h
173
#define EMU8000_LFO2VAL_WRITE(emu, chan, val) \
include/sound/emu8000_reg.h
174
snd_emu8000_poke((emu), EMU8000_DATA2(emu), EMU8000_CMD(7, (chan)), (val))
include/sound/emu8000_reg.h
175
#define EMU8000_IP_WRITE(emu, chan, val) \
include/sound/emu8000_reg.h
176
snd_emu8000_poke((emu), EMU8000_DATA3(emu), EMU8000_CMD(0, (chan)), (val))
include/sound/emu8000_reg.h
177
#define EMU8000_IFATN_WRITE(emu, chan, val) \
include/sound/emu8000_reg.h
178
snd_emu8000_poke((emu), EMU8000_DATA3(emu), EMU8000_CMD(1, (chan)), (val))
include/sound/emu8000_reg.h
179
#define EMU8000_PEFE_WRITE(emu, chan, val) \
include/sound/emu8000_reg.h
180
snd_emu8000_poke((emu), EMU8000_DATA3(emu), EMU8000_CMD(2, (chan)), (val))
include/sound/emu8000_reg.h
181
#define EMU8000_FMMOD_WRITE(emu, chan, val) \
include/sound/emu8000_reg.h
182
snd_emu8000_poke((emu), EMU8000_DATA3(emu), EMU8000_CMD(3, (chan)), (val))
include/sound/emu8000_reg.h
183
#define EMU8000_TREMFRQ_WRITE(emu, chan, val) \
include/sound/emu8000_reg.h
184
snd_emu8000_poke((emu), EMU8000_DATA3(emu), EMU8000_CMD(4, (chan)), (val))
include/sound/emu8000_reg.h
185
#define EMU8000_FM2FRQ2_WRITE(emu, chan, val) \
include/sound/emu8000_reg.h
186
snd_emu8000_poke((emu), EMU8000_DATA3(emu), EMU8000_CMD(5, (chan)), (val))
include/sound/emu8000_reg.h
188
#define EMU8000_0080_WRITE(emu, chan, val) \
include/sound/emu8000_reg.h
189
snd_emu8000_poke_dw((emu), EMU8000_DATA0(emu), EMU8000_CMD(4, (chan)), (val))
include/sound/emu8000_reg.h
190
#define EMU8000_00A0_WRITE(emu, chan, val) \
include/sound/emu8000_reg.h
191
snd_emu8000_poke_dw((emu), EMU8000_DATA0(emu), EMU8000_CMD(5, (chan)), (val))
include/sound/emu8000_reg.h
24
#define EMU8000_CMD(reg, chan) ((reg)<<5 | (chan))
include/sound/emu8000_reg.h
30
#define EMU8000_CPF_READ(emu, chan) \
include/sound/emu8000_reg.h
31
snd_emu8000_peek_dw((emu), EMU8000_DATA0(emu), EMU8000_CMD(0, (chan)))
include/sound/emu8000_reg.h
32
#define EMU8000_PTRX_READ(emu, chan) \
include/sound/emu8000_reg.h
33
snd_emu8000_peek_dw((emu), EMU8000_DATA0(emu), EMU8000_CMD(1, (chan)))
include/sound/emu8000_reg.h
34
#define EMU8000_CVCF_READ(emu, chan) \
include/sound/emu8000_reg.h
35
snd_emu8000_peek_dw((emu), EMU8000_DATA0(emu), EMU8000_CMD(2, (chan)))
include/sound/emu8000_reg.h
36
#define EMU8000_VTFT_READ(emu, chan) \
include/sound/emu8000_reg.h
37
snd_emu8000_peek_dw((emu), EMU8000_DATA0(emu), EMU8000_CMD(3, (chan)))
include/sound/emu8000_reg.h
38
#define EMU8000_PSST_READ(emu, chan) \
include/sound/emu8000_reg.h
39
snd_emu8000_peek_dw((emu), EMU8000_DATA0(emu), EMU8000_CMD(6, (chan)))
include/sound/emu8000_reg.h
40
#define EMU8000_CSL_READ(emu, chan) \
include/sound/emu8000_reg.h
41
snd_emu8000_peek_dw((emu), EMU8000_DATA0(emu), EMU8000_CMD(7, (chan)))
include/sound/emu8000_reg.h
42
#define EMU8000_CCCA_READ(emu, chan) \
include/sound/emu8000_reg.h
43
snd_emu8000_peek_dw((emu), EMU8000_DATA1(emu), EMU8000_CMD(0, (chan)))
include/sound/emu8000_reg.h
70
#define EMU8000_INIT1_READ(emu, chan) \
include/sound/emu8000_reg.h
71
snd_emu8000_peek((emu), EMU8000_DATA1(emu), EMU8000_CMD(2, (chan)))
include/sound/emu8000_reg.h
72
#define EMU8000_INIT2_READ(emu, chan) \
include/sound/emu8000_reg.h
73
snd_emu8000_peek((emu), EMU8000_DATA2(emu), EMU8000_CMD(2, (chan)))
include/sound/emu8000_reg.h
74
#define EMU8000_INIT3_READ(emu, chan) \
include/sound/emu8000_reg.h
75
snd_emu8000_peek((emu), EMU8000_DATA1(emu), EMU8000_CMD(3, (chan)))
include/sound/emu8000_reg.h
76
#define EMU8000_INIT4_READ(emu, chan) \
include/sound/emu8000_reg.h
77
snd_emu8000_peek((emu), EMU8000_DATA2(emu), EMU8000_CMD(3, (chan)))
include/sound/emu8000_reg.h
78
#define EMU8000_ENVVOL_READ(emu, chan) \
include/sound/emu8000_reg.h
79
snd_emu8000_peek((emu), EMU8000_DATA1(emu), EMU8000_CMD(4, (chan)))
include/sound/emu8000_reg.h
80
#define EMU8000_DCYSUSV_READ(emu, chan) \
include/sound/emu8000_reg.h
81
snd_emu8000_peek((emu), EMU8000_DATA1(emu), EMU8000_CMD(5, (chan)))
include/sound/emu8000_reg.h
82
#define EMU8000_ENVVAL_READ(emu, chan) \
include/sound/emu8000_reg.h
83
snd_emu8000_peek((emu), EMU8000_DATA1(emu), EMU8000_CMD(6, (chan)))
include/sound/emu8000_reg.h
84
#define EMU8000_DCYSUS_READ(emu, chan) \
include/sound/emu8000_reg.h
85
snd_emu8000_peek((emu), EMU8000_DATA1(emu), EMU8000_CMD(7, (chan)))
include/sound/emu8000_reg.h
86
#define EMU8000_ATKHLDV_READ(emu, chan) \
include/sound/emu8000_reg.h
87
snd_emu8000_peek((emu), EMU8000_DATA2(emu), EMU8000_CMD(4, (chan)))
include/sound/emu8000_reg.h
88
#define EMU8000_LFO1VAL_READ(emu, chan) \
include/sound/emu8000_reg.h
89
snd_emu8000_peek((emu), EMU8000_DATA2(emu), EMU8000_CMD(5, (chan)))
include/sound/emu8000_reg.h
90
#define EMU8000_ATKHLD_READ(emu, chan) \
include/sound/emu8000_reg.h
91
snd_emu8000_peek((emu), EMU8000_DATA2(emu), EMU8000_CMD(6, (chan)))
include/sound/emu8000_reg.h
92
#define EMU8000_LFO2VAL_READ(emu, chan) \
include/sound/emu8000_reg.h
93
snd_emu8000_peek((emu), EMU8000_DATA2(emu), EMU8000_CMD(7, (chan)))
include/sound/emu8000_reg.h
94
#define EMU8000_IP_READ(emu, chan) \
include/sound/emu8000_reg.h
95
snd_emu8000_peek((emu), EMU8000_DATA3(emu), EMU8000_CMD(0, (chan)))
include/sound/emu8000_reg.h
96
#define EMU8000_IFATN_READ(emu, chan) \
include/sound/emu8000_reg.h
97
snd_emu8000_peek((emu), EMU8000_DATA3(emu), EMU8000_CMD(1, (chan)))
include/sound/emu8000_reg.h
98
#define EMU8000_PEFE_READ(emu, chan) \
include/sound/emu8000_reg.h
99
snd_emu8000_peek((emu), EMU8000_DATA3(emu), EMU8000_CMD(2, (chan)))
include/sound/emux_synth.h
170
struct snd_midi_channel *chan; /* Midi channel for this note */
include/sound/opl3.h
280
struct snd_midi_channel *chan; /* Midi channel for this note */
include/sound/seq_midi_emul.h
69
void (*note_on)(void *private_data, int note, int vel, struct snd_midi_channel *chan);
include/sound/seq_midi_emul.h
70
void (*note_off)(void *private_data,int note, int vel, struct snd_midi_channel *chan); /* release note */
include/sound/seq_midi_emul.h
71
void (*key_press)(void *private_data, int note, int vel, struct snd_midi_channel *chan);
include/sound/seq_midi_emul.h
72
void (*note_terminate)(void *private_data, int note, struct snd_midi_channel *chan); /* terminate note immediately */
include/sound/seq_midi_emul.h
73
void (*control)(void *private_data, int type, struct snd_midi_channel *chan);
include/sound/seq_midi_emul.h
74
void (*nrpn)(void *private_data, struct snd_midi_channel *chan,
include/sound/spear_spdif.h
12
bool (*filter)(struct dma_chan *chan, void *slave);
include/trace/events/tegra_apb_dma.h
14
__string(chan, dev_name(&dc->dev->device))
include/trace/events/tegra_apb_dma.h
19
__assign_str(chan);
include/trace/events/tegra_apb_dma.h
24
__get_str(chan), __entry->cookie, __entry->residue)
include/trace/events/tegra_apb_dma.h
31
__string(chan, dev_name(&dc->dev->device))
include/trace/events/tegra_apb_dma.h
36
__assign_str(chan);
include/trace/events/tegra_apb_dma.h
41
__get_str(chan), __entry->count, __entry->ptr)
include/trace/events/tegra_apb_dma.h
48
__string(chan, dev_name(&dc->dev->device))
include/trace/events/tegra_apb_dma.h
52
__assign_str(chan);
include/trace/events/tegra_apb_dma.h
55
TP_printk("%s: irq %d\n", __get_str(chan), __entry->irq)
include/uapi/linux/comedi.h
56
#define CR_PACK(chan, rng, aref) \
include/uapi/linux/comedi.h
57
((((aref) & 0x3) << 24) | (((rng) & 0xff) << 16) | (chan))
include/uapi/linux/comedi.h
58
#define CR_PACK_FLAGS(chan, range, aref, flags) \
include/uapi/linux/comedi.h
59
(CR_PACK(chan, range, aref) | ((flags) & CR_FLAGS_MASK))
include/uapi/linux/ptp_clock.h
217
unsigned int chan;
include/video/sh_mobile_lcdc.h
175
int chan;
include/video/tdfx.h
202
struct tdfxfb_i2c_chan chan[2];
kernel/relay.c
146
static struct rchan_buf *relay_create_buf(struct rchan *chan)
kernel/relay.c
150
if (chan->n_subbufs > KMALLOC_MAX_SIZE / sizeof(size_t))
kernel/relay.c
156
buf->padding = kmalloc_objs(size_t, chan->n_subbufs);
kernel/relay.c
160
buf->start = relay_alloc_buf(buf, &chan->alloc_size);
kernel/relay.c
164
buf->chan = chan;
kernel/relay.c
165
kref_get(&buf->chan->kref);
kernel/relay.c
182
struct rchan *chan = container_of(kref, struct rchan, kref);
kernel/relay.c
183
free_percpu(chan->buf);
kernel/relay.c
184
kfree(chan);
kernel/relay.c
193
struct rchan *chan = buf->chan;
kernel/relay.c
202
*per_cpu_ptr(chan->buf, buf->cpu) = NULL;
kernel/relay.c
205
kref_put(&chan->kref, relay_destroy_channel);
kernel/relay.c
242
return (ready >= buf->chan->n_subbufs) ? 1 : 0;
kernel/relay.c
258
if (!buf->chan->cb->subbuf_start)
kernel/relay.c
261
return buf->chan->cb->subbuf_start(buf, subbuf,
kernel/relay.c
307
for (i = 0; i < buf->chan->n_subbufs; i++)
kernel/relay.c
324
void relay_reset(struct rchan *chan)
kernel/relay.c
329
if (!chan)
kernel/relay.c
332
if (chan->is_global && (buf = *per_cpu_ptr(chan->buf, 0))) {
kernel/relay.c
339
if ((buf = *per_cpu_ptr(chan->buf, i)))
kernel/relay.c
352
static struct dentry *relay_create_buf_file(struct rchan *chan,
kernel/relay.c
359
tmpname = kasprintf(GFP_KERNEL, "%s%d", chan->base_filename, cpu);
kernel/relay.c
364
dentry = chan->cb->create_buf_file(tmpname, chan->parent,
kernel/relay.c
366
&chan->is_global);
kernel/relay.c
380
static struct rchan_buf *relay_open_buf(struct rchan *chan, unsigned int cpu)
kernel/relay.c
385
if (chan->is_global)
kernel/relay.c
386
return *per_cpu_ptr(chan->buf, 0);
kernel/relay.c
388
buf = relay_create_buf(chan);
kernel/relay.c
392
if (chan->has_base_filename) {
kernel/relay.c
393
dentry = relay_create_buf_file(chan, buf, cpu);
kernel/relay.c
399
dentry = chan->cb->create_buf_file(NULL, NULL,
kernel/relay.c
401
&chan->is_global);
kernel/relay.c
409
if(chan->is_global) {
kernel/relay.c
410
*per_cpu_ptr(chan->buf, 0) = buf;
kernel/relay.c
433
buf->chan->cb->remove_buf_file(buf->dentry);
kernel/relay.c
439
struct rchan *chan;
kernel/relay.c
443
list_for_each_entry(chan, &relay_channels, list) {
kernel/relay.c
444
if (*per_cpu_ptr(chan->buf, cpu))
kernel/relay.c
446
buf = relay_open_buf(chan, cpu);
kernel/relay.c
452
*per_cpu_ptr(chan->buf, cpu) = buf;
kernel/relay.c
482
struct rchan *chan;
kernel/relay.c
492
chan = kzalloc_obj(struct rchan);
kernel/relay.c
493
if (!chan)
kernel/relay.c
496
chan->buf = alloc_percpu(struct rchan_buf *);
kernel/relay.c
497
if (!chan->buf) {
kernel/relay.c
498
kfree(chan);
kernel/relay.c
502
chan->version = RELAYFS_CHANNEL_VERSION;
kernel/relay.c
503
chan->n_subbufs = n_subbufs;
kernel/relay.c
504
chan->subbuf_size = subbuf_size;
kernel/relay.c
505
chan->alloc_size = PAGE_ALIGN(subbuf_size * n_subbufs);
kernel/relay.c
506
chan->parent = parent;
kernel/relay.c
507
chan->private_data = private_data;
kernel/relay.c
509
chan->has_base_filename = 1;
kernel/relay.c
510
strscpy(chan->base_filename, base_filename, NAME_MAX);
kernel/relay.c
512
chan->cb = cb;
kernel/relay.c
513
kref_init(&chan->kref);
kernel/relay.c
517
buf = relay_open_buf(chan, i);
kernel/relay.c
520
*per_cpu_ptr(chan->buf, i) = buf;
kernel/relay.c
522
list_add(&chan->list, &relay_channels);
kernel/relay.c
525
return chan;
kernel/relay.c
529
if ((buf = *per_cpu_ptr(chan->buf, i)))
kernel/relay.c
533
kref_put(&chan->kref, relay_destroy_channel);
kernel/relay.c
559
if (unlikely(length > buf->chan->subbuf_size))
kernel/relay.c
562
if (buf->offset != buf->chan->subbuf_size + 1) {
kernel/relay.c
565
prev_padding = buf->chan->subbuf_size - buf->offset;
kernel/relay.c
566
old_subbuf = buf->subbufs_produced % buf->chan->n_subbufs;
kernel/relay.c
571
buf->chan->subbuf_size -
kernel/relay.c
574
buf->early_bytes += buf->chan->subbuf_size -
kernel/relay.c
589
new_subbuf = buf->subbufs_produced % buf->chan->n_subbufs;
kernel/relay.c
590
new = buf->start + new_subbuf * buf->chan->subbuf_size;
kernel/relay.c
593
buf->offset = buf->chan->subbuf_size + 1;
kernel/relay.c
599
if (unlikely(length + buf->offset > buf->chan->subbuf_size))
kernel/relay.c
623
void relay_subbufs_consumed(struct rchan *chan,
kernel/relay.c
629
if (!chan || cpu >= NR_CPUS)
kernel/relay.c
632
buf = *per_cpu_ptr(chan->buf, cpu);
kernel/relay.c
633
if (!buf || subbufs_consumed > chan->n_subbufs)
kernel/relay.c
649
void relay_close(struct rchan *chan)
kernel/relay.c
654
if (!chan)
kernel/relay.c
658
if (chan->is_global && (buf = *per_cpu_ptr(chan->buf, 0)))
kernel/relay.c
662
if ((buf = *per_cpu_ptr(chan->buf, i)))
kernel/relay.c
665
list_del(&chan->list);
kernel/relay.c
666
kref_put(&chan->kref, relay_destroy_channel);
kernel/relay.c
677
void relay_flush(struct rchan *chan)
kernel/relay.c
682
if (!chan)
kernel/relay.c
685
if (chan->is_global && (buf = *per_cpu_ptr(chan->buf, 0))) {
kernel/relay.c
692
if ((buf = *per_cpu_ptr(chan->buf, i)))
kernel/relay.c
705
size_t relay_stats(struct rchan *chan, int flags)
kernel/relay.c
710
if (!chan || flags > RELAY_STATS_LAST)
kernel/relay.c
713
if (chan->is_global) {
kernel/relay.c
714
rbuf = *per_cpu_ptr(chan->buf, 0);
kernel/relay.c
721
rbuf = *per_cpu_ptr(chan->buf, i);
kernel/relay.c
810
size_t subbuf_size = buf->chan->subbuf_size;
kernel/relay.c
811
size_t n_subbufs = buf->chan->n_subbufs;
kernel/relay.c
819
relay_subbufs_consumed(buf->chan, buf->cpu, 1);
kernel/relay.c
827
read_subbuf = read_pos / buf->chan->subbuf_size;
kernel/relay.c
832
relay_subbufs_consumed(buf->chan, buf->cpu, 1);
kernel/relay.c
842
size_t subbuf_size = buf->chan->subbuf_size;
kernel/relay.c
843
size_t n_subbufs = buf->chan->n_subbufs;
kernel/relay.c
889
size_t subbuf_size = buf->chan->subbuf_size;
kernel/relay.c
90
if (length != (unsigned long)buf->chan->alloc_size)
kernel/relay.c
917
size_t subbuf_size = buf->chan->subbuf_size;
kernel/relay.c
918
size_t n_subbufs = buf->chan->n_subbufs;
kernel/relay.c
946
size_t subbuf_size = buf->chan->subbuf_size;
kernel/relay.c
947
size_t n_subbufs = buf->chan->n_subbufs;
net/9p/trans_virtio.c
107
struct virtio_chan *chan = client->trans;
net/9p/trans_virtio.c
110
if (chan)
net/9p/trans_virtio.c
111
chan->inuse = false;
net/9p/trans_virtio.c
130
struct virtio_chan *chan = vq->vdev->priv;
net/9p/trans_virtio.c
138
spin_lock_irqsave(&chan->lock, flags);
net/9p/trans_virtio.c
139
while ((req = virtqueue_get_buf(chan->vq, &len)) != NULL) {
net/9p/trans_virtio.c
140
if (!chan->ring_bufs_avail) {
net/9p/trans_virtio.c
141
chan->ring_bufs_avail = 1;
net/9p/trans_virtio.c
147
p9_client_cb(chan->client, req, REQ_STATUS_RCVD);
net/9p/trans_virtio.c
150
spin_unlock_irqrestore(&chan->lock, flags);
net/9p/trans_virtio.c
153
wake_up(chan->vc_wq);
net/9p/trans_virtio.c
260
struct virtio_chan *chan = client->trans;
net/9p/trans_virtio.c
267
spin_lock_irqsave(&chan->lock, flags);
net/9p/trans_virtio.c
271
out = pack_sg_list(chan->sg, 0,
net/9p/trans_virtio.c
274
sgs[out_sgs++] = chan->sg;
net/9p/trans_virtio.c
276
in = pack_sg_list(chan->sg, out,
net/9p/trans_virtio.c
279
sgs[out_sgs + in_sgs++] = chan->sg + out;
net/9p/trans_virtio.c
281
err = virtqueue_add_sgs(chan->vq, sgs, out_sgs, in_sgs, req,
net/9p/trans_virtio.c
285
chan->ring_bufs_avail = 0;
net/9p/trans_virtio.c
286
spin_unlock_irqrestore(&chan->lock, flags);
net/9p/trans_virtio.c
287
err = io_wait_event_killable(*chan->vc_wq,
net/9p/trans_virtio.c
288
chan->ring_bufs_avail);
net/9p/trans_virtio.c
295
spin_unlock_irqrestore(&chan->lock, flags);
net/9p/trans_virtio.c
301
virtqueue_kick(chan->vq);
net/9p/trans_virtio.c
302
spin_unlock_irqrestore(&chan->lock, flags);
net/9p/trans_virtio.c
308
static int p9_get_mapped_pages(struct virtio_chan *chan,
net/9p/trans_virtio.c
327
if (atomic_read(&vp_pinned) >= chan->p9_max_pages) {
net/9p/trans_virtio.c
329
(atomic_read(&vp_pinned) < chan->p9_max_pages));
net/9p/trans_virtio.c
428
struct virtio_chan *chan = client->trans;
net/9p/trans_virtio.c
438
int n = p9_get_mapped_pages(chan, &out_pages, uodata,
net/9p/trans_virtio.c
457
int n = p9_get_mapped_pages(chan, &in_pages, uidata,
net/9p/trans_virtio.c
472
spin_lock_irqsave(&chan->lock, flags);
net/9p/trans_virtio.c
477
out = pack_sg_list(chan->sg, 0,
net/9p/trans_virtio.c
481
sgs[out_sgs++] = chan->sg;
net/9p/trans_virtio.c
484
sgs[out_sgs++] = chan->sg + out;
net/9p/trans_virtio.c
485
out += pack_sg_list_p(chan->sg, out, VIRTQUEUE_NUM,
net/9p/trans_virtio.c
496
in = pack_sg_list(chan->sg, out,
net/9p/trans_virtio.c
499
sgs[out_sgs + in_sgs++] = chan->sg + out;
net/9p/trans_virtio.c
502
sgs[out_sgs + in_sgs++] = chan->sg + out + in;
net/9p/trans_virtio.c
503
pack_sg_list_p(chan->sg, out + in, VIRTQUEUE_NUM,
net/9p/trans_virtio.c
508
err = virtqueue_add_sgs(chan->vq, sgs, out_sgs, in_sgs, req,
net/9p/trans_virtio.c
512
chan->ring_bufs_avail = 0;
net/9p/trans_virtio.c
513
spin_unlock_irqrestore(&chan->lock, flags);
net/9p/trans_virtio.c
514
err = io_wait_event_killable(*chan->vc_wq,
net/9p/trans_virtio.c
515
chan->ring_bufs_avail);
net/9p/trans_virtio.c
522
spin_unlock_irqrestore(&chan->lock, flags);
net/9p/trans_virtio.c
529
virtqueue_kick(chan->vq);
net/9p/trans_virtio.c
530
spin_unlock_irqrestore(&chan->lock, flags);
net/9p/trans_virtio.c
573
struct virtio_chan *chan;
net/9p/trans_virtio.c
578
chan = vdev->priv;
net/9p/trans_virtio.c
579
tag_len = strlen(chan->tag);
net/9p/trans_virtio.c
581
memcpy(buf, chan->tag, tag_len + 1);
net/9p/trans_virtio.c
601
struct virtio_chan *chan;
net/9p/trans_virtio.c
609
chan = kmalloc_obj(struct virtio_chan);
net/9p/trans_virtio.c
610
if (!chan) {
net/9p/trans_virtio.c
616
chan->vdev = vdev;
net/9p/trans_virtio.c
619
chan->vq = virtio_find_single_vq(vdev, req_done, "requests");
net/9p/trans_virtio.c
620
if (IS_ERR(chan->vq)) {
net/9p/trans_virtio.c
621
err = PTR_ERR(chan->vq);
net/9p/trans_virtio.c
624
chan->vq->vdev->priv = chan;
net/9p/trans_virtio.c
625
spin_lock_init(&chan->lock);
net/9p/trans_virtio.c
627
sg_init_table(chan->sg, VIRTQUEUE_NUM);
net/9p/trans_virtio.c
629
chan->inuse = false;
net/9p/trans_virtio.c
644
chan->tag = tag;
net/9p/trans_virtio.c
649
chan->vc_wq = kmalloc_obj(wait_queue_head_t);
net/9p/trans_virtio.c
650
if (!chan->vc_wq) {
net/9p/trans_virtio.c
654
init_waitqueue_head(chan->vc_wq);
net/9p/trans_virtio.c
655
chan->ring_bufs_avail = 1;
net/9p/trans_virtio.c
657
chan->p9_max_pages = nr_free_buffer_pages()/4;
net/9p/trans_virtio.c
662
list_add_tail(&chan->chan_list, &virtio_chan_list);
net/9p/trans_virtio.c
677
kfree(chan);
net/9p/trans_virtio.c
700
struct virtio_chan *chan;
net/9p/trans_virtio.c
708
list_for_each_entry(chan, &virtio_chan_list, chan_list) {
net/9p/trans_virtio.c
709
if (!strcmp(devname, chan->tag)) {
net/9p/trans_virtio.c
710
if (!chan->inuse) {
net/9p/trans_virtio.c
711
chan->inuse = true;
net/9p/trans_virtio.c
725
client->trans = (void *)chan;
net/9p/trans_virtio.c
727
chan->client = client;
net/9p/trans_virtio.c
740
struct virtio_chan *chan = vdev->priv;
net/9p/trans_virtio.c
746
list_del(&chan->chan_list);
net/9p/trans_virtio.c
750
while (chan->inuse) {
net/9p/trans_virtio.c
768
kfree(chan->tag);
net/9p/trans_virtio.c
769
kfree(chan->vc_wq);
net/9p/trans_virtio.c
770
kfree(chan);
net/atm/pppoatm.c
108
ppp_output_wakeup(&pvcc->chan);
net/atm/pppoatm.c
175
ppp_unregister_channel(&pvcc->chan);
net/atm/pppoatm.c
204
if (pvcc->chan.ppp == NULL) { /* Not bound yet! */
net/atm/pppoatm.c
218
pvcc->chan.mtu += LLC_LEN;
net/atm/pppoatm.c
226
ppp_input(&pvcc->chan, skb);
net/atm/pppoatm.c
231
ppp_input_error(&pvcc->chan);
net/atm/pppoatm.c
289
static int pppoatm_send(struct ppp_channel *chan, struct sk_buff *skb)
net/atm/pppoatm.c
291
struct pppoatm_vcc *pvcc = chan_to_pvcc(chan);
net/atm/pppoatm.c
369
static int pppoatm_devppp_ioctl(struct ppp_channel *chan, unsigned int cmd,
net/atm/pppoatm.c
374
return put_user(chan_to_pvcc(chan)->flags, (int __user *) arg)
net/atm/pppoatm.c
377
return get_user(chan_to_pvcc(chan)->flags, (int __user *) arg)
net/atm/pppoatm.c
411
pvcc->chan.private = pvcc;
net/atm/pppoatm.c
412
pvcc->chan.ops = &pppoatm_ops;
net/atm/pppoatm.c
413
pvcc->chan.mtu = atmvcc->qos.txtp.max_sdu - PPP_HDRLEN -
net/atm/pppoatm.c
416
err = ppp_register_channel(&pvcc->chan);
net/atm/pppoatm.c
461
chan), (int __user *) argp) ? -EFAULT : 0;
net/atm/pppoatm.c
464
chan), (int __user *) argp) ? -EFAULT : 0;
net/atm/pppoatm.c
67
struct ppp_channel chan; /* interface to generic ppp layer */
net/atm/pppoatm.c
94
static inline struct pppoatm_vcc *chan_to_pvcc(const struct ppp_channel *chan)
net/atm/pppoatm.c
96
return (struct pppoatm_vcc *) (chan->private);
net/bluetooth/6lowpan.c
1051
l2cap_chan_hold(peer->chan);
net/bluetooth/6lowpan.c
1052
chans[nchans++] = peer->chan;
net/bluetooth/6lowpan.c
115
__peer_lookup_chan(struct lowpan_btle_dev *dev, struct l2cap_chan *chan)
net/bluetooth/6lowpan.c
1196
&peer->chan->dst, peer->chan->dst_type);
net/bluetooth/6lowpan.c
120
if (peer->chan == chan)
net/bluetooth/6lowpan.c
133
if (peer->chan->conn == conn)
net/bluetooth/6lowpan.c
179
&peer->chan->dst, peer->chan->dst_type,
net/bluetooth/6lowpan.c
35
struct l2cap_chan *chan;
net/bluetooth/6lowpan.c
353
static int chan_recv_cb(struct l2cap_chan *chan, struct sk_buff *skb)
net/bluetooth/6lowpan.c
359
peer = lookup_peer(chan->conn);
net/bluetooth/6lowpan.c
363
dev = lookup_dev(chan->conn);
net/bluetooth/6lowpan.c
393
lowpan_cb(skb)->chan = NULL;
net/bluetooth/6lowpan.c
410
*peer_addr = peer->chan->dst;
net/bluetooth/6lowpan.c
411
*peer_addr_type = peer->chan->dst_type;
net/bluetooth/6lowpan.c
412
lowpan_cb(skb)->chan = peer->chan;
net/bluetooth/6lowpan.c
437
static int send_pkt(struct l2cap_chan *chan, struct sk_buff *skb,
net/bluetooth/6lowpan.c
447
chan->data = skb;
net/bluetooth/6lowpan.c
455
err = l2cap_chan_send(chan, &msg, skb->len, NULL);
net/bluetooth/6lowpan.c
494
&pentry->chan->dst, pentry->chan->dst_type,
net/bluetooth/6lowpan.c
495
&pentry->peer_addr, pentry->chan);
net/bluetooth/6lowpan.c
496
ret = send_pkt(pentry->chan, local_skb, netdev);
net/bluetooth/6lowpan.c
534
if (lowpan_cb(skb)->chan) {
net/bluetooth/6lowpan.c
537
&lowpan_cb(skb)->addr, lowpan_cb(skb)->chan);
net/bluetooth/6lowpan.c
538
err = send_pkt(lowpan_cb(skb)->chan, skb, netdev);
net/bluetooth/6lowpan.c
629
struct l2cap_chan *chan;
net/bluetooth/6lowpan.c
631
chan = l2cap_chan_create();
net/bluetooth/6lowpan.c
632
if (!chan)
net/bluetooth/6lowpan.c
635
l2cap_chan_set_defaults(chan, NULL);
net/bluetooth/6lowpan.c
637
chan->chan_type = L2CAP_CHAN_CONN_ORIENTED;
net/bluetooth/6lowpan.c
638
chan->mode = L2CAP_MODE_LE_FLOWCTL;
net/bluetooth/6lowpan.c
639
chan->imtu = 1280;
net/bluetooth/6lowpan.c
64
struct l2cap_chan *chan;
net/bluetooth/6lowpan.c
641
return chan;
net/bluetooth/6lowpan.c
644
static struct l2cap_chan *add_peer_chan(struct l2cap_chan *chan,
net/bluetooth/6lowpan.c
654
peer->chan = chan;
net/bluetooth/6lowpan.c
656
baswap((void *)peer->lladdr, &chan->dst);
net/bluetooth/6lowpan.c
670
return peer->chan;
net/bluetooth/6lowpan.c
673
static int setup_netdev(struct l2cap_chan *chan, struct lowpan_btle_dev **dev)
net/bluetooth/6lowpan.c
686
baswap(&addr, &chan->src);
net/bluetooth/6lowpan.c
690
SET_NETDEV_DEV(netdev, &chan->conn->hcon->hdev->dev);
net/bluetooth/6lowpan.c
695
(*dev)->hdev = chan->conn->hcon->hdev;
net/bluetooth/6lowpan.c
714
netdev->ifindex, &chan->dst, chan->dst_type,
net/bluetooth/6lowpan.c
715
&chan->src, chan->src_type);
net/bluetooth/6lowpan.c
724
static inline void chan_ready_cb(struct l2cap_chan *chan)
net/bluetooth/6lowpan.c
729
dev = lookup_dev(chan->conn);
net/bluetooth/6lowpan.c
731
BT_DBG("chan %p conn %p dev %p", chan, chan->conn, dev);
net/bluetooth/6lowpan.c
734
if (setup_netdev(chan, &dev) < 0) {
net/bluetooth/6lowpan.c
735
l2cap_chan_del(chan, -ENOENT);
net/bluetooth/6lowpan.c
744
add_peer_chan(chan, dev, new_netdev);
net/bluetooth/6lowpan.c
779
static void chan_close_cb(struct l2cap_chan *chan)
net/bluetooth/6lowpan.c
787
BT_DBG("chan %p conn %p", chan, chan->conn);
net/bluetooth/6lowpan.c
793
peer = __peer_lookup_chan(dev, chan);
net/bluetooth/6lowpan.c
800
BT_DBG("chan %p orig refcnt %u", chan,
net/bluetooth/6lowpan.c
801
kref_read(&chan->kref));
net/bluetooth/6lowpan.c
803
l2cap_chan_put(chan);
net/bluetooth/6lowpan.c
822
static void chan_state_change_cb(struct l2cap_chan *chan, int state, int err)
net/bluetooth/6lowpan.c
824
BT_DBG("chan %p conn %p state %s err %d", chan, chan->conn,
net/bluetooth/6lowpan.c
828
static struct sk_buff *chan_alloc_skb_cb(struct l2cap_chan *chan,
net/bluetooth/6lowpan.c
844
static void chan_suspend_cb(struct l2cap_chan *chan)
net/bluetooth/6lowpan.c
848
BT_DBG("chan %p suspend", chan);
net/bluetooth/6lowpan.c
850
dev = lookup_dev(chan->conn);
net/bluetooth/6lowpan.c
857
static void chan_resume_cb(struct l2cap_chan *chan)
net/bluetooth/6lowpan.c
861
BT_DBG("chan %p resume", chan);
net/bluetooth/6lowpan.c
863
dev = lookup_dev(chan->conn);
net/bluetooth/6lowpan.c
870
static long chan_get_sndtimeo_cb(struct l2cap_chan *chan)
net/bluetooth/6lowpan.c
893
struct l2cap_chan *chan;
net/bluetooth/6lowpan.c
896
chan = chan_create();
net/bluetooth/6lowpan.c
897
if (!chan)
net/bluetooth/6lowpan.c
900
chan->ops = &bt_6lowpan_chan_ops;
net/bluetooth/6lowpan.c
902
err = l2cap_chan_connect(chan, cpu_to_le16(L2CAP_PSM_IPSP), 0,
net/bluetooth/6lowpan.c
905
BT_DBG("chan %p err %d", chan, err);
net/bluetooth/6lowpan.c
907
l2cap_chan_put(chan);
net/bluetooth/6lowpan.c
922
BT_DBG("peer %p chan %p", peer, peer->chan);
net/bluetooth/6lowpan.c
924
l2cap_chan_lock(peer->chan);
net/bluetooth/6lowpan.c
925
l2cap_chan_close(peer->chan, ENOENT);
net/bluetooth/6lowpan.c
926
l2cap_chan_unlock(peer->chan);
net/bluetooth/6lowpan.c
934
struct l2cap_chan *chan;
net/bluetooth/6lowpan.c
940
chan = chan_create();
net/bluetooth/6lowpan.c
941
if (!chan)
net/bluetooth/6lowpan.c
944
chan->ops = &bt_6lowpan_chan_ops;
net/bluetooth/6lowpan.c
945
chan->state = BT_LISTEN;
net/bluetooth/6lowpan.c
946
chan->src_type = BDADDR_LE_PUBLIC;
net/bluetooth/6lowpan.c
948
atomic_set(&chan->nesting, L2CAP_NESTING_PARENT);
net/bluetooth/6lowpan.c
950
BT_DBG("chan %p src type %u", chan, chan->src_type);
net/bluetooth/6lowpan.c
952
err = l2cap_add_psm(chan, addr, cpu_to_le16(L2CAP_PSM_IPSP));
net/bluetooth/6lowpan.c
954
l2cap_chan_put(chan);
net/bluetooth/6lowpan.c
959
return chan;
net/bluetooth/bnep/core.c
564
struct l2cap_chan *chan = l2cap_pi(session->sock->sk)->chan;
net/bluetooth/bnep/core.c
567
l2cap_chan_lock(chan);
net/bluetooth/bnep/core.c
568
conn = chan->conn;
net/bluetooth/bnep/core.c
571
l2cap_chan_unlock(chan);
net/bluetooth/bnep/core.c
597
baswap((void *) dst, &l2cap_pi(sock->sk)->chan->dst);
net/bluetooth/bnep/core.c
598
baswap((void *) src, &l2cap_pi(sock->sk)->chan->src);
net/bluetooth/hci_conn.c
2866
struct hci_chan *chan;
net/bluetooth/hci_conn.c
2875
chan = kzalloc_obj(*chan);
net/bluetooth/hci_conn.c
2876
if (!chan)
net/bluetooth/hci_conn.c
2879
chan->conn = hci_conn_get(conn);
net/bluetooth/hci_conn.c
2880
skb_queue_head_init(&chan->data_q);
net/bluetooth/hci_conn.c
2881
chan->state = BT_CONNECTED;
net/bluetooth/hci_conn.c
2883
list_add_rcu(&chan->list, &conn->chan_list);
net/bluetooth/hci_conn.c
2885
return chan;
net/bluetooth/hci_conn.c
2888
void hci_chan_del(struct hci_chan *chan)
net/bluetooth/hci_conn.c
2890
struct hci_conn *conn = chan->conn;
net/bluetooth/hci_conn.c
2893
BT_DBG("%s hcon %p chan %p", hdev->name, conn, chan);
net/bluetooth/hci_conn.c
2895
list_del_rcu(&chan->list);
net/bluetooth/hci_conn.c
2904
skb_queue_purge(&chan->data_q);
net/bluetooth/hci_conn.c
2905
kfree(chan);
net/bluetooth/hci_conn.c
2910
struct hci_chan *chan, *n;
net/bluetooth/hci_conn.c
2914
list_for_each_entry_safe(chan, n, &conn->chan_list, list)
net/bluetooth/hci_conn.c
2915
hci_chan_del(chan);
net/bluetooth/hci_core.c
3183
static void hci_queue_acl(struct hci_chan *chan, struct sk_buff_head *queue,
net/bluetooth/hci_core.c
3186
struct hci_conn *conn = chan->conn;
net/bluetooth/hci_core.c
3234
bt_dev_dbg(hdev, "chan %p queued %d", chan, skb_queue_len(queue));
net/bluetooth/hci_core.c
3237
void hci_send_acl(struct hci_chan *chan, struct sk_buff *skb, __u16 flags)
net/bluetooth/hci_core.c
3239
struct hci_dev *hdev = chan->conn->hdev;
net/bluetooth/hci_core.c
3241
BT_DBG("%s chan %p flags 0x%4.4x", hdev->name, chan, flags);
net/bluetooth/hci_core.c
3243
hci_queue_acl(chan, &chan->data_q, skb, flags);
net/bluetooth/hci_core.c
3452
struct hci_chan *chan = NULL;
net/bluetooth/hci_core.c
3492
chan = tmp;
net/bluetooth/hci_core.c
3502
if (!chan)
net/bluetooth/hci_core.c
3505
hci_quote_sent(chan->conn, num, quote);
net/bluetooth/hci_core.c
3507
BT_DBG("chan %p quote %d", chan, *quote);
net/bluetooth/hci_core.c
3508
return chan;
net/bluetooth/hci_core.c
3522
struct hci_chan *chan;
net/bluetooth/hci_core.c
3532
list_for_each_entry_rcu(chan, &conn->chan_list, list) {
net/bluetooth/hci_core.c
3535
if (chan->sent) {
net/bluetooth/hci_core.c
3536
chan->sent = 0;
net/bluetooth/hci_core.c
3540
if (skb_queue_empty(&chan->data_q))
net/bluetooth/hci_core.c
3543
skb = skb_peek(&chan->data_q);
net/bluetooth/hci_core.c
3549
BT_DBG("chan %p skb %p promoted to %d", chan, skb,
net/bluetooth/hci_core.c
3642
struct hci_chan *chan;
net/bluetooth/hci_core.c
3649
(chan = hci_chan_sent(hdev, ACL_LINK, &quote))) {
net/bluetooth/hci_core.c
3650
u32 priority = (skb_peek(&chan->data_q))->priority;
net/bluetooth/hci_core.c
3651
while (quote-- && (skb = skb_peek(&chan->data_q))) {
net/bluetooth/hci_core.c
3652
BT_DBG("chan %p skb %p len %d priority %u", chan, skb,
net/bluetooth/hci_core.c
3659
skb = skb_dequeue(&chan->data_q);
net/bluetooth/hci_core.c
3661
hci_conn_enter_active_mode(chan->conn,
net/bluetooth/hci_core.c
3664
hci_send_conn_frame(hdev, chan->conn, skb);
net/bluetooth/hci_core.c
3668
chan->sent++;
net/bluetooth/hci_core.c
3669
chan->conn->sent++;
net/bluetooth/hci_core.c
3694
struct hci_chan *chan;
net/bluetooth/hci_core.c
3708
while (*cnt && (chan = hci_chan_sent(hdev, LE_LINK, &quote))) {
net/bluetooth/hci_core.c
3709
u32 priority = (skb_peek(&chan->data_q))->priority;
net/bluetooth/hci_core.c
3710
while (quote-- && (skb = skb_peek(&chan->data_q))) {
net/bluetooth/hci_core.c
3711
BT_DBG("chan %p skb %p len %d priority %u", chan, skb,
net/bluetooth/hci_core.c
3718
skb = skb_dequeue(&chan->data_q);
net/bluetooth/hci_core.c
3720
hci_send_conn_frame(hdev, chan->conn, skb);
net/bluetooth/hci_core.c
3724
chan->sent++;
net/bluetooth/hci_core.c
3725
chan->conn->sent++;
net/bluetooth/hci_sock.c
1617
static int hci_mgmt_cmd(struct hci_mgmt_chan *chan, struct sock *sk,
net/bluetooth/hci_sock.c
1643
if (chan->channel == HCI_CHANNEL_CONTROL) {
net/bluetooth/hci_sock.c
1656
if (opcode >= chan->handler_count ||
net/bluetooth/hci_sock.c
1657
chan->handlers[opcode].func == NULL) {
net/bluetooth/hci_sock.c
1664
handler = &chan->handlers[opcode];
net/bluetooth/hci_sock.c
1714
if (hdev && chan->hdev_init)
net/bluetooth/hci_sock.c
1715
chan->hdev_init(sk, hdev);
net/bluetooth/hci_sock.c
1802
struct hci_mgmt_chan *chan;
net/bluetooth/hci_sock.c
1837
chan = __hci_mgmt_chan_find(hci_pi(sk)->channel);
net/bluetooth/hci_sock.c
1838
if (chan)
net/bluetooth/hci_sock.c
1839
err = hci_mgmt_cmd(chan, sk, skb);
net/bluetooth/hidp/core.c
1370
ctrl_chan = l2cap_pi(ctrl_sock->sk)->chan;
net/bluetooth/hidp/core.c
1371
intr_chan = l2cap_pi(intr_sock->sk)->chan;
net/bluetooth/hidp/core.c
1402
struct l2cap_chan *chan;
net/bluetooth/hidp/core.c
1412
chan = l2cap_pi(ctrl_sock->sk)->chan;
net/bluetooth/hidp/core.c
1414
l2cap_chan_lock(chan);
net/bluetooth/hidp/core.c
1415
if (chan->conn)
net/bluetooth/hidp/core.c
1416
conn = l2cap_conn_get(chan->conn);
net/bluetooth/hidp/core.c
1417
l2cap_chan_unlock(chan);
net/bluetooth/hidp/core.c
1422
ret = hidp_session_new(&session, &chan->dst, ctrl_sock,
net/bluetooth/hidp/core.c
801
&l2cap_pi(session->ctrl_sock->sk)->chan->src);
net/bluetooth/hidp/core.c
807
&l2cap_pi(session->ctrl_sock->sk)->chan->dst);
net/bluetooth/hidp/core.c
959
session->ctrl_mtu = min_t(uint, l2cap_pi(ctrl)->chan->omtu,
net/bluetooth/hidp/core.c
960
l2cap_pi(ctrl)->chan->imtu);
net/bluetooth/hidp/core.c
961
session->intr_mtu = min_t(uint, l2cap_pi(intr)->chan->omtu,
net/bluetooth/hidp/core.c
962
l2cap_pi(intr)->chan->imtu);
net/bluetooth/l2cap_core.c
1028
static void l2cap_do_send(struct l2cap_chan *chan, struct sk_buff *skb)
net/bluetooth/l2cap_core.c
1030
struct hci_conn *hcon = chan->conn->hcon;
net/bluetooth/l2cap_core.c
1033
BT_DBG("chan %p, skb %p len %d priority %u", chan, skb, skb->len,
net/bluetooth/l2cap_core.c
1041
(!test_bit(FLAG_FLUSHABLE, &chan->flags) &&
net/bluetooth/l2cap_core.c
1047
bt_cb(skb)->force_active = test_bit(FLAG_FORCE_ACTIVE, &chan->flags);
net/bluetooth/l2cap_core.c
1048
hci_send_acl(chan->conn->hchan, skb, flags);
net/bluetooth/l2cap_core.c
1099
static inline void __unpack_control(struct l2cap_chan *chan,
net/bluetooth/l2cap_core.c
1102
if (test_bit(FLAG_EXT_CTRL, &chan->flags)) {
net/bluetooth/l2cap_core.c
1151
static inline void __pack_control(struct l2cap_chan *chan,
net/bluetooth/l2cap_core.c
1155
if (test_bit(FLAG_EXT_CTRL, &chan->flags)) {
net/bluetooth/l2cap_core.c
1164
static inline unsigned int __ertm_hdr_size(struct l2cap_chan *chan)
net/bluetooth/l2cap_core.c
1166
if (test_bit(FLAG_EXT_CTRL, &chan->flags))
net/bluetooth/l2cap_core.c
1172
static struct sk_buff *l2cap_create_sframe_pdu(struct l2cap_chan *chan,
net/bluetooth/l2cap_core.c
1177
int hlen = __ertm_hdr_size(chan);
net/bluetooth/l2cap_core.c
1179
if (chan->fcs == L2CAP_FCS_CRC16)
net/bluetooth/l2cap_core.c
1189
lh->cid = cpu_to_le16(chan->dcid);
net/bluetooth/l2cap_core.c
1191
if (test_bit(FLAG_EXT_CTRL, &chan->flags))
net/bluetooth/l2cap_core.c
1196
if (chan->fcs == L2CAP_FCS_CRC16) {
net/bluetooth/l2cap_core.c
1205
static void l2cap_send_sframe(struct l2cap_chan *chan,
net/bluetooth/l2cap_core.c
1211
BT_DBG("chan %p, control %p", chan, control);
net/bluetooth/l2cap_core.c
1216
if (test_and_clear_bit(CONN_SEND_FBIT, &chan->conn_state) &&
net/bluetooth/l2cap_core.c
1221
clear_bit(CONN_RNR_SENT, &chan->conn_state);
net/bluetooth/l2cap_core.c
1223
set_bit(CONN_RNR_SENT, &chan->conn_state);
net/bluetooth/l2cap_core.c
1226
chan->last_acked_seq = control->reqseq;
net/bluetooth/l2cap_core.c
1227
__clear_ack_timer(chan);
net/bluetooth/l2cap_core.c
1233
if (test_bit(FLAG_EXT_CTRL, &chan->flags))
net/bluetooth/l2cap_core.c
1238
skb = l2cap_create_sframe_pdu(chan, control_field);
net/bluetooth/l2cap_core.c
1240
l2cap_do_send(chan, skb);
net/bluetooth/l2cap_core.c
1243
static void l2cap_send_rr_or_rnr(struct l2cap_chan *chan, bool poll)
net/bluetooth/l2cap_core.c
1247
BT_DBG("chan %p, poll %d", chan, poll);
net/bluetooth/l2cap_core.c
1253
if (test_bit(CONN_LOCAL_BUSY, &chan->conn_state))
net/bluetooth/l2cap_core.c
1258
control.reqseq = chan->buffer_seq;
net/bluetooth/l2cap_core.c
1259
l2cap_send_sframe(chan, &control);
net/bluetooth/l2cap_core.c
1262
static inline int __l2cap_no_conn_pending(struct l2cap_chan *chan)
net/bluetooth/l2cap_core.c
1264
if (chan->chan_type != L2CAP_CHAN_CONN_ORIENTED)
net/bluetooth/l2cap_core.c
1267
return !test_bit(CONF_CONNECT_PEND, &chan->conf_state);
net/bluetooth/l2cap_core.c
1270
void l2cap_send_conn_req(struct l2cap_chan *chan)
net/bluetooth/l2cap_core.c
1272
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
1275
req.scid = cpu_to_le16(chan->scid);
net/bluetooth/l2cap_core.c
1276
req.psm = chan->psm;
net/bluetooth/l2cap_core.c
1278
chan->ident = l2cap_get_ident(conn);
net/bluetooth/l2cap_core.c
1280
set_bit(CONF_CONNECT_PEND, &chan->conf_state);
net/bluetooth/l2cap_core.c
1282
l2cap_send_cmd(conn, chan->ident, L2CAP_CONN_REQ, sizeof(req), &req);
net/bluetooth/l2cap_core.c
1285
static void l2cap_chan_ready(struct l2cap_chan *chan)
net/bluetooth/l2cap_core.c
1291
if (chan->state == BT_CONNECTED)
net/bluetooth/l2cap_core.c
1295
chan->conf_state = 0;
net/bluetooth/l2cap_core.c
1296
__clear_chan_timer(chan);
net/bluetooth/l2cap_core.c
1298
switch (chan->mode) {
net/bluetooth/l2cap_core.c
1301
if (!chan->tx_credits)
net/bluetooth/l2cap_core.c
1302
chan->ops->suspend(chan);
net/bluetooth/l2cap_core.c
1306
chan->state = BT_CONNECTED;
net/bluetooth/l2cap_core.c
1308
chan->ops->ready(chan);
net/bluetooth/l2cap_core.c
1311
static void l2cap_le_connect(struct l2cap_chan *chan)
net/bluetooth/l2cap_core.c
1313
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
1316
if (test_and_set_bit(FLAG_LE_CONN_REQ_SENT, &chan->flags))
net/bluetooth/l2cap_core.c
1319
if (!chan->imtu)
net/bluetooth/l2cap_core.c
1320
chan->imtu = chan->conn->mtu;
net/bluetooth/l2cap_core.c
1322
l2cap_le_flowctl_init(chan, 0);
net/bluetooth/l2cap_core.c
1325
req.psm = chan->psm;
net/bluetooth/l2cap_core.c
1326
req.scid = cpu_to_le16(chan->scid);
net/bluetooth/l2cap_core.c
1327
req.mtu = cpu_to_le16(chan->imtu);
net/bluetooth/l2cap_core.c
1328
req.mps = cpu_to_le16(chan->mps);
net/bluetooth/l2cap_core.c
1329
req.credits = cpu_to_le16(chan->rx_credits);
net/bluetooth/l2cap_core.c
1331
chan->ident = l2cap_get_ident(conn);
net/bluetooth/l2cap_core.c
1333
l2cap_send_cmd(conn, chan->ident, L2CAP_LE_CONN_REQ,
net/bluetooth/l2cap_core.c
1342
struct l2cap_chan *chan;
net/bluetooth/l2cap_core.c
1347
static void l2cap_ecred_defer_connect(struct l2cap_chan *chan, void *data)
net/bluetooth/l2cap_core.c
1352
if (chan == conn->chan)
net/bluetooth/l2cap_core.c
1355
if (!test_and_clear_bit(FLAG_DEFER_SETUP, &chan->flags))
net/bluetooth/l2cap_core.c
1358
pid = chan->ops->get_peer_pid(chan);
net/bluetooth/l2cap_core.c
1361
if (conn->pid != pid || chan->psm != conn->chan->psm || chan->ident ||
net/bluetooth/l2cap_core.c
1362
chan->mode != L2CAP_MODE_EXT_FLOWCTL || chan->state != BT_CONNECT)
net/bluetooth/l2cap_core.c
1365
if (test_and_set_bit(FLAG_ECRED_CONN_REQ_SENT, &chan->flags))
net/bluetooth/l2cap_core.c
1368
l2cap_ecred_init(chan, 0);
net/bluetooth/l2cap_core.c
1371
chan->ident = conn->chan->ident;
net/bluetooth/l2cap_core.c
1374
conn->pdu.scid[conn->count] = cpu_to_le16(chan->scid);
net/bluetooth/l2cap_core.c
1379
static void l2cap_ecred_connect(struct l2cap_chan *chan)
net/bluetooth/l2cap_core.c
1381
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
1384
if (test_bit(FLAG_DEFER_SETUP, &chan->flags))
net/bluetooth/l2cap_core.c
1387
if (test_and_set_bit(FLAG_ECRED_CONN_REQ_SENT, &chan->flags))
net/bluetooth/l2cap_core.c
1390
l2cap_ecred_init(chan, 0);
net/bluetooth/l2cap_core.c
1393
data.pdu.req.psm = chan->psm;
net/bluetooth/l2cap_core.c
1394
data.pdu.req.mtu = cpu_to_le16(chan->imtu);
net/bluetooth/l2cap_core.c
1395
data.pdu.req.mps = cpu_to_le16(chan->mps);
net/bluetooth/l2cap_core.c
1396
data.pdu.req.credits = cpu_to_le16(chan->rx_credits);
net/bluetooth/l2cap_core.c
1397
data.pdu.scid[0] = cpu_to_le16(chan->scid);
net/bluetooth/l2cap_core.c
1399
chan->ident = l2cap_get_ident(conn);
net/bluetooth/l2cap_core.c
1402
data.chan = chan;
net/bluetooth/l2cap_core.c
1403
data.pid = chan->ops->get_peer_pid(chan);
net/bluetooth/l2cap_core.c
1407
l2cap_send_cmd(conn, chan->ident, L2CAP_ECRED_CONN_REQ,
net/bluetooth/l2cap_core.c
1412
static void l2cap_le_start(struct l2cap_chan *chan)
net/bluetooth/l2cap_core.c
1414
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
1416
if (!smp_conn_security(conn->hcon, chan->sec_level))
net/bluetooth/l2cap_core.c
1419
if (!chan->psm) {
net/bluetooth/l2cap_core.c
1420
l2cap_chan_ready(chan);
net/bluetooth/l2cap_core.c
1424
if (chan->state == BT_CONNECT) {
net/bluetooth/l2cap_core.c
1425
if (chan->mode == L2CAP_MODE_EXT_FLOWCTL)
net/bluetooth/l2cap_core.c
1426
l2cap_ecred_connect(chan);
net/bluetooth/l2cap_core.c
1428
l2cap_le_connect(chan);
net/bluetooth/l2cap_core.c
1432
static void l2cap_start_connection(struct l2cap_chan *chan)
net/bluetooth/l2cap_core.c
1434
if (chan->conn->hcon->type == LE_LINK) {
net/bluetooth/l2cap_core.c
1435
l2cap_le_start(chan);
net/bluetooth/l2cap_core.c
1437
l2cap_send_conn_req(chan);
net/bluetooth/l2cap_core.c
1460
struct l2cap_chan *chan)
net/bluetooth/l2cap_core.c
1474
if (chan->sec_level == BT_SECURITY_FIPS)
net/bluetooth/l2cap_core.c
1481
static void l2cap_do_start(struct l2cap_chan *chan)
net/bluetooth/l2cap_core.c
1483
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
1486
l2cap_le_start(chan);
net/bluetooth/l2cap_core.c
1498
if (!l2cap_chan_check_security(chan, true) ||
net/bluetooth/l2cap_core.c
1499
!__l2cap_no_conn_pending(chan))
net/bluetooth/l2cap_core.c
1502
if (l2cap_check_enc_key_size(conn->hcon, chan))
net/bluetooth/l2cap_core.c
1503
l2cap_start_connection(chan);
net/bluetooth/l2cap_core.c
1505
__set_chan_timer(chan, L2CAP_DISC_TIMEOUT);
net/bluetooth/l2cap_core.c
1524
static void l2cap_send_disconn_req(struct l2cap_chan *chan, int err)
net/bluetooth/l2cap_core.c
1526
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
1532
if (chan->mode == L2CAP_MODE_ERTM && chan->state == BT_CONNECTED) {
net/bluetooth/l2cap_core.c
1533
__clear_retrans_timer(chan);
net/bluetooth/l2cap_core.c
1534
__clear_monitor_timer(chan);
net/bluetooth/l2cap_core.c
1535
__clear_ack_timer(chan);
net/bluetooth/l2cap_core.c
1538
req.dcid = cpu_to_le16(chan->dcid);
net/bluetooth/l2cap_core.c
1539
req.scid = cpu_to_le16(chan->scid);
net/bluetooth/l2cap_core.c
1543
l2cap_state_change_and_error(chan, BT_DISCONN, err);
net/bluetooth/l2cap_core.c
1549
struct l2cap_chan *chan, *tmp;
net/bluetooth/l2cap_core.c
1553
list_for_each_entry_safe(chan, tmp, &conn->chan_l, list) {
net/bluetooth/l2cap_core.c
1554
l2cap_chan_lock(chan);
net/bluetooth/l2cap_core.c
1556
if (chan->chan_type != L2CAP_CHAN_CONN_ORIENTED) {
net/bluetooth/l2cap_core.c
1557
l2cap_chan_ready(chan);
net/bluetooth/l2cap_core.c
1558
l2cap_chan_unlock(chan);
net/bluetooth/l2cap_core.c
1562
if (chan->state == BT_CONNECT) {
net/bluetooth/l2cap_core.c
1563
if (!l2cap_chan_check_security(chan, true) ||
net/bluetooth/l2cap_core.c
1564
!__l2cap_no_conn_pending(chan)) {
net/bluetooth/l2cap_core.c
1565
l2cap_chan_unlock(chan);
net/bluetooth/l2cap_core.c
1569
if (!l2cap_mode_supported(chan->mode, conn->feat_mask)
net/bluetooth/l2cap_core.c
1571
&chan->conf_state)) {
net/bluetooth/l2cap_core.c
1572
l2cap_chan_close(chan, ECONNRESET);
net/bluetooth/l2cap_core.c
1573
l2cap_chan_unlock(chan);
net/bluetooth/l2cap_core.c
1577
if (l2cap_check_enc_key_size(conn->hcon, chan))
net/bluetooth/l2cap_core.c
1578
l2cap_start_connection(chan);
net/bluetooth/l2cap_core.c
1580
l2cap_chan_close(chan, ECONNREFUSED);
net/bluetooth/l2cap_core.c
1582
} else if (chan->state == BT_CONNECT2) {
net/bluetooth/l2cap_core.c
1585
rsp.scid = cpu_to_le16(chan->dcid);
net/bluetooth/l2cap_core.c
1586
rsp.dcid = cpu_to_le16(chan->scid);
net/bluetooth/l2cap_core.c
1588
if (l2cap_chan_check_security(chan, false)) {
net/bluetooth/l2cap_core.c
1589
if (test_bit(FLAG_DEFER_SETUP, &chan->flags)) {
net/bluetooth/l2cap_core.c
1592
chan->ops->defer(chan);
net/bluetooth/l2cap_core.c
1595
l2cap_state_change(chan, BT_CONFIG);
net/bluetooth/l2cap_core.c
1604
l2cap_send_cmd(conn, chan->ident, L2CAP_CONN_RSP,
net/bluetooth/l2cap_core.c
1607
if (test_bit(CONF_REQ_SENT, &chan->conf_state) ||
net/bluetooth/l2cap_core.c
1609
l2cap_chan_unlock(chan);
net/bluetooth/l2cap_core.c
1613
set_bit(CONF_REQ_SENT, &chan->conf_state);
net/bluetooth/l2cap_core.c
1615
l2cap_build_conf_req(chan, buf, sizeof(buf)), buf);
net/bluetooth/l2cap_core.c
1616
chan->num_conf_req++;
net/bluetooth/l2cap_core.c
1619
l2cap_chan_unlock(chan);
net/bluetooth/l2cap_core.c
1658
struct l2cap_chan *chan;
net/bluetooth/l2cap_core.c
1668
list_for_each_entry(chan, &conn->chan_l, list) {
net/bluetooth/l2cap_core.c
1670
l2cap_chan_lock(chan);
net/bluetooth/l2cap_core.c
1673
l2cap_le_start(chan);
net/bluetooth/l2cap_core.c
1674
} else if (chan->chan_type != L2CAP_CHAN_CONN_ORIENTED) {
net/bluetooth/l2cap_core.c
1676
l2cap_chan_ready(chan);
net/bluetooth/l2cap_core.c
1677
} else if (chan->state == BT_CONNECT) {
net/bluetooth/l2cap_core.c
1678
l2cap_do_start(chan);
net/bluetooth/l2cap_core.c
1681
l2cap_chan_unlock(chan);
net/bluetooth/l2cap_core.c
1695
struct l2cap_chan *chan;
net/bluetooth/l2cap_core.c
1699
list_for_each_entry(chan, &conn->chan_l, list) {
net/bluetooth/l2cap_core.c
1700
if (test_bit(FLAG_FORCE_RELIABLE, &chan->flags))
net/bluetooth/l2cap_core.c
1701
l2cap_chan_set_err(chan, err);
net/bluetooth/l2cap_core.c
179
int l2cap_add_psm(struct l2cap_chan *chan, bdaddr_t *src, __le16 psm)
net/bluetooth/l2cap_core.c
1796
struct l2cap_chan *chan, *l;
net/bluetooth/l2cap_core.c
1821
list_for_each_entry_safe(chan, l, &conn->chan_l, list) {
net/bluetooth/l2cap_core.c
1822
l2cap_chan_hold(chan);
net/bluetooth/l2cap_core.c
1823
l2cap_chan_lock(chan);
net/bluetooth/l2cap_core.c
1825
l2cap_chan_del(chan, err);
net/bluetooth/l2cap_core.c
1827
chan->ops->close(chan);
net/bluetooth/l2cap_core.c
1829
l2cap_chan_unlock(chan);
net/bluetooth/l2cap_core.c
1830
l2cap_chan_put(chan);
net/bluetooth/l2cap_core.c
185
if (psm && __l2cap_global_chan_by_addr(psm, src, chan->src_type)) {
net/bluetooth/l2cap_core.c
191
chan->psm = psm;
net/bluetooth/l2cap_core.c
192
chan->sport = psm;
net/bluetooth/l2cap_core.c
1920
struct l2cap_chan *chan = container_of(work, struct l2cap_chan,
net/bluetooth/l2cap_core.c
1923
BT_DBG("chan %p", chan);
net/bluetooth/l2cap_core.c
1925
l2cap_chan_lock(chan);
net/bluetooth/l2cap_core.c
1927
if (test_bit(FLAG_DEL, &chan->flags)) {
net/bluetooth/l2cap_core.c
1928
l2cap_chan_unlock(chan);
net/bluetooth/l2cap_core.c
1929
l2cap_chan_put(chan);
net/bluetooth/l2cap_core.c
1933
l2cap_tx(chan, NULL, NULL, L2CAP_EV_MONITOR_TO);
net/bluetooth/l2cap_core.c
1935
l2cap_chan_unlock(chan);
net/bluetooth/l2cap_core.c
1936
l2cap_chan_put(chan);
net/bluetooth/l2cap_core.c
1941
struct l2cap_chan *chan = container_of(work, struct l2cap_chan,
net/bluetooth/l2cap_core.c
1944
BT_DBG("chan %p", chan);
net/bluetooth/l2cap_core.c
1946
l2cap_chan_lock(chan);
net/bluetooth/l2cap_core.c
1948
if (test_bit(FLAG_DEL, &chan->flags)) {
net/bluetooth/l2cap_core.c
1949
l2cap_chan_unlock(chan);
net/bluetooth/l2cap_core.c
1950
l2cap_chan_put(chan);
net/bluetooth/l2cap_core.c
1954
l2cap_tx(chan, NULL, NULL, L2CAP_EV_RETRANS_TO);
net/bluetooth/l2cap_core.c
1955
l2cap_chan_unlock(chan);
net/bluetooth/l2cap_core.c
1956
l2cap_chan_put(chan);
net/bluetooth/l2cap_core.c
1959
static void l2cap_streaming_send(struct l2cap_chan *chan,
net/bluetooth/l2cap_core.c
1965
BT_DBG("chan %p, skbs %p", chan, skbs);
net/bluetooth/l2cap_core.c
1967
skb_queue_splice_tail_init(skbs, &chan->tx_q);
net/bluetooth/l2cap_core.c
1969
while (!skb_queue_empty(&chan->tx_q)) {
net/bluetooth/l2cap_core.c
197
if (chan->src_type == BDADDR_BREDR) {
net/bluetooth/l2cap_core.c
1971
skb = skb_dequeue(&chan->tx_q);
net/bluetooth/l2cap_core.c
1977
control->txseq = chan->next_tx_seq;
net/bluetooth/l2cap_core.c
1979
__pack_control(chan, control, skb);
net/bluetooth/l2cap_core.c
1981
if (chan->fcs == L2CAP_FCS_CRC16) {
net/bluetooth/l2cap_core.c
1986
l2cap_do_send(chan, skb);
net/bluetooth/l2cap_core.c
1990
chan->next_tx_seq = __next_seq(chan, chan->next_tx_seq);
net/bluetooth/l2cap_core.c
1991
chan->frames_sent++;
net/bluetooth/l2cap_core.c
1995
static int l2cap_ertm_send(struct l2cap_chan *chan)
net/bluetooth/l2cap_core.c
2001
BT_DBG("chan %p", chan);
net/bluetooth/l2cap_core.c
2003
if (chan->state != BT_CONNECTED)
net/bluetooth/l2cap_core.c
2006
if (test_bit(CONN_REMOTE_BUSY, &chan->conn_state))
net/bluetooth/l2cap_core.c
2009
while (chan->tx_send_head &&
net/bluetooth/l2cap_core.c
2010
chan->unacked_frames < chan->remote_tx_win &&
net/bluetooth/l2cap_core.c
2011
chan->tx_state == L2CAP_TX_STATE_XMIT) {
net/bluetooth/l2cap_core.c
2013
skb = chan->tx_send_head;
net/bluetooth/l2cap_core.c
2018
if (test_and_clear_bit(CONN_SEND_FBIT, &chan->conn_state))
net/bluetooth/l2cap_core.c
2021
control->reqseq = chan->buffer_seq;
net/bluetooth/l2cap_core.c
2022
chan->last_acked_seq = chan->buffer_seq;
net/bluetooth/l2cap_core.c
2023
control->txseq = chan->next_tx_seq;
net/bluetooth/l2cap_core.c
2025
__pack_control(chan, control, skb);
net/bluetooth/l2cap_core.c
2027
if (chan->fcs == L2CAP_FCS_CRC16) {
net/bluetooth/l2cap_core.c
2040
__set_retrans_timer(chan);
net/bluetooth/l2cap_core.c
2042
chan->next_tx_seq = __next_seq(chan, chan->next_tx_seq);
net/bluetooth/l2cap_core.c
2043
chan->unacked_frames++;
net/bluetooth/l2cap_core.c
2044
chan->frames_sent++;
net/bluetooth/l2cap_core.c
2047
if (skb_queue_is_last(&chan->tx_q, skb))
net/bluetooth/l2cap_core.c
2048
chan->tx_send_head = NULL;
net/bluetooth/l2cap_core.c
2050
chan->tx_send_head = skb_queue_next(&chan->tx_q, skb);
net/bluetooth/l2cap_core.c
2052
l2cap_do_send(chan, tx_skb);
net/bluetooth/l2cap_core.c
2057
chan->unacked_frames, skb_queue_len(&chan->tx_q));
net/bluetooth/l2cap_core.c
2062
static void l2cap_ertm_resend(struct l2cap_chan *chan)
net/bluetooth/l2cap_core.c
2069
BT_DBG("chan %p", chan);
net/bluetooth/l2cap_core.c
2071
if (test_bit(CONN_REMOTE_BUSY, &chan->conn_state))
net/bluetooth/l2cap_core.c
2074
while (chan->retrans_list.head != L2CAP_SEQ_LIST_CLEAR) {
net/bluetooth/l2cap_core.c
2075
seq = l2cap_seq_list_pop(&chan->retrans_list);
net/bluetooth/l2cap_core.c
2077
skb = l2cap_ertm_seq_in_queue(&chan->tx_q, seq);
net/bluetooth/l2cap_core.c
2087
if (chan->max_tx != 0 &&
net/bluetooth/l2cap_core.c
2088
bt_cb(skb)->l2cap.retries > chan->max_tx) {
net/bluetooth/l2cap_core.c
2089
BT_DBG("Retry limit exceeded (%d)", chan->max_tx);
net/bluetooth/l2cap_core.c
2090
l2cap_send_disconn_req(chan, ECONNRESET);
net/bluetooth/l2cap_core.c
2091
l2cap_seq_list_clear(&chan->retrans_list);
net/bluetooth/l2cap_core.c
2095
control.reqseq = chan->buffer_seq;
net/bluetooth/l2cap_core.c
2096
if (test_and_clear_bit(CONN_SEND_FBIT, &chan->conn_state))
net/bluetooth/l2cap_core.c
210
chan->src_type)) {
net/bluetooth/l2cap_core.c
211
chan->psm = cpu_to_le16(p);
net/bluetooth/l2cap_core.c
2111
l2cap_seq_list_clear(&chan->retrans_list);
net/bluetooth/l2cap_core.c
2116
if (test_bit(FLAG_EXT_CTRL, &chan->flags)) {
net/bluetooth/l2cap_core.c
212
chan->sport = cpu_to_le16(p);
net/bluetooth/l2cap_core.c
2125
if (chan->fcs == L2CAP_FCS_CRC16) {
net/bluetooth/l2cap_core.c
2132
l2cap_do_send(chan, tx_skb);
net/bluetooth/l2cap_core.c
2136
chan->last_acked_seq = chan->buffer_seq;
net/bluetooth/l2cap_core.c
2140
static void l2cap_retransmit(struct l2cap_chan *chan,
net/bluetooth/l2cap_core.c
2143
BT_DBG("chan %p, control %p", chan, control);
net/bluetooth/l2cap_core.c
2145
l2cap_seq_list_append(&chan->retrans_list, control->reqseq);
net/bluetooth/l2cap_core.c
2146
l2cap_ertm_resend(chan);
net/bluetooth/l2cap_core.c
2149
static void l2cap_retransmit_all(struct l2cap_chan *chan,
net/bluetooth/l2cap_core.c
2154
BT_DBG("chan %p, control %p", chan, control);
net/bluetooth/l2cap_core.c
2157
set_bit(CONN_SEND_FBIT, &chan->conn_state);
net/bluetooth/l2cap_core.c
2159
l2cap_seq_list_clear(&chan->retrans_list);
net/bluetooth/l2cap_core.c
2161
if (test_bit(CONN_REMOTE_BUSY, &chan->conn_state))
net/bluetooth/l2cap_core.c
2164
if (chan->unacked_frames) {
net/bluetooth/l2cap_core.c
2165
skb_queue_walk(&chan->tx_q, skb) {
net/bluetooth/l2cap_core.c
2167
skb == chan->tx_send_head)
net/bluetooth/l2cap_core.c
2171
skb_queue_walk_from(&chan->tx_q, skb) {
net/bluetooth/l2cap_core.c
2172
if (skb == chan->tx_send_head)
net/bluetooth/l2cap_core.c
2175
l2cap_seq_list_append(&chan->retrans_list,
net/bluetooth/l2cap_core.c
2179
l2cap_ertm_resend(chan);
net/bluetooth/l2cap_core.c
2183
static void l2cap_send_ack(struct l2cap_chan *chan)
net/bluetooth/l2cap_core.c
2186
u16 frames_to_ack = __seq_offset(chan, chan->buffer_seq,
net/bluetooth/l2cap_core.c
2187
chan->last_acked_seq);
net/bluetooth/l2cap_core.c
2191
chan, chan->last_acked_seq, chan->buffer_seq);
net/bluetooth/l2cap_core.c
2196
if (test_bit(CONN_LOCAL_BUSY, &chan->conn_state) &&
net/bluetooth/l2cap_core.c
2197
chan->rx_state == L2CAP_RX_STATE_RECV) {
net/bluetooth/l2cap_core.c
2198
__clear_ack_timer(chan);
net/bluetooth/l2cap_core.c
2200
control.reqseq = chan->buffer_seq;
net/bluetooth/l2cap_core.c
2201
l2cap_send_sframe(chan, &control);
net/bluetooth/l2cap_core.c
2203
if (!test_bit(CONN_REMOTE_BUSY, &chan->conn_state)) {
net/bluetooth/l2cap_core.c
2204
l2cap_ertm_send(chan);
net/bluetooth/l2cap_core.c
2206
if (chan->buffer_seq == chan->last_acked_seq)
net/bluetooth/l2cap_core.c
2213
threshold = chan->ack_win;
net/bluetooth/l2cap_core.c
2221
__clear_ack_timer(chan);
net/bluetooth/l2cap_core.c
2223
control.reqseq = chan->buffer_seq;
net/bluetooth/l2cap_core.c
2224
l2cap_send_sframe(chan, &control);
net/bluetooth/l2cap_core.c
2229
__set_ack_timer(chan);
net/bluetooth/l2cap_core.c
2233
static inline int l2cap_skbuff_fromiovec(struct l2cap_chan *chan,
net/bluetooth/l2cap_core.c
2237
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
224
int l2cap_add_scid(struct l2cap_chan *chan, __u16 scid)
net/bluetooth/l2cap_core.c
2254
tmp = chan->ops->alloc_skb(chan, 0, count,
net/bluetooth/l2cap_core.c
2277
static struct sk_buff *l2cap_create_connless_pdu(struct l2cap_chan *chan,
net/bluetooth/l2cap_core.c
2280
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
2285
BT_DBG("chan %p psm 0x%2.2x len %zu", chan,
net/bluetooth/l2cap_core.c
2286
__le16_to_cpu(chan->psm), len);
net/bluetooth/l2cap_core.c
229
chan->omtu = L2CAP_DEFAULT_MTU;
net/bluetooth/l2cap_core.c
2290
skb = chan->ops->alloc_skb(chan, hlen, count,
net/bluetooth/l2cap_core.c
2297
lh->cid = cpu_to_le16(chan->dcid);
net/bluetooth/l2cap_core.c
2299
put_unaligned(chan->psm, (__le16 *) skb_put(skb, L2CAP_PSMLEN_SIZE));
net/bluetooth/l2cap_core.c
230
chan->chan_type = L2CAP_CHAN_FIXED;
net/bluetooth/l2cap_core.c
2301
err = l2cap_skbuff_fromiovec(chan, msg, len, count, skb);
net/bluetooth/l2cap_core.c
2309
static struct sk_buff *l2cap_create_basic_pdu(struct l2cap_chan *chan,
net/bluetooth/l2cap_core.c
2312
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
2317
BT_DBG("chan %p len %zu", chan, len);
net/bluetooth/l2cap_core.c
232
chan->scid = scid;
net/bluetooth/l2cap_core.c
2321
skb = chan->ops->alloc_skb(chan, L2CAP_HDR_SIZE, count,
net/bluetooth/l2cap_core.c
2328
lh->cid = cpu_to_le16(chan->dcid);
net/bluetooth/l2cap_core.c
2331
err = l2cap_skbuff_fromiovec(chan, msg, len, count, skb);
net/bluetooth/l2cap_core.c
2339
static struct sk_buff *l2cap_create_iframe_pdu(struct l2cap_chan *chan,
net/bluetooth/l2cap_core.c
2343
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
2348
BT_DBG("chan %p len %zu", chan, len);
net/bluetooth/l2cap_core.c
2353
hlen = __ertm_hdr_size(chan);
net/bluetooth/l2cap_core.c
2358
if (chan->fcs == L2CAP_FCS_CRC16)
net/bluetooth/l2cap_core.c
2363
skb = chan->ops->alloc_skb(chan, hlen, count,
net/bluetooth/l2cap_core.c
2370
lh->cid = cpu_to_le16(chan->dcid);
net/bluetooth/l2cap_core.c
2374
if (test_bit(FLAG_EXT_CTRL, &chan->flags))
net/bluetooth/l2cap_core.c
2382
err = l2cap_skbuff_fromiovec(chan, msg, len, count, skb);
net/bluetooth/l2cap_core.c
2388
bt_cb(skb)->l2cap.fcs = chan->fcs;
net/bluetooth/l2cap_core.c
2393
static int l2cap_segment_sdu(struct l2cap_chan *chan,
net/bluetooth/l2cap_core.c
2402
BT_DBG("chan %p, msg %p, len %zu", chan, msg, len);
net/bluetooth/l2cap_core.c
2410
pdu_len = chan->conn->mtu;
net/bluetooth/l2cap_core.c
2416
if (chan->fcs)
net/bluetooth/l2cap_core.c
2419
pdu_len -= __ertm_hdr_size(chan);
net/bluetooth/l2cap_core.c
2422
pdu_len = min_t(size_t, pdu_len, chan->remote_mps);
net/bluetooth/l2cap_core.c
2437
skb = l2cap_create_iframe_pdu(chan, msg, pdu_len, sdu_len);
net/bluetooth/l2cap_core.c
2462
static struct sk_buff *l2cap_create_le_flowctl_pdu(struct l2cap_chan *chan,
net/bluetooth/l2cap_core.c
2466
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
2471
BT_DBG("chan %p len %zu", chan, len);
net/bluetooth/l2cap_core.c
2483
skb = chan->ops->alloc_skb(chan, hlen, count,
net/bluetooth/l2cap_core.c
2490
lh->cid = cpu_to_le16(chan->dcid);
net/bluetooth/l2cap_core.c
2496
err = l2cap_skbuff_fromiovec(chan, msg, len, count, skb);
net/bluetooth/l2cap_core.c
2505
static int l2cap_segment_le_sdu(struct l2cap_chan *chan,
net/bluetooth/l2cap_core.c
2513
BT_DBG("chan %p, msg %p, len %zu", chan, msg, len);
net/bluetooth/l2cap_core.c
2516
pdu_len = chan->remote_mps - L2CAP_SDULEN_SIZE;
net/bluetooth/l2cap_core.c
2522
skb = l2cap_create_le_flowctl_pdu(chan, msg, pdu_len, sdu_len);
net/bluetooth/l2cap_core.c
2541
static void l2cap_le_flowctl_send(struct l2cap_chan *chan)
net/bluetooth/l2cap_core.c
2545
BT_DBG("chan %p", chan);
net/bluetooth/l2cap_core.c
2547
while (chan->tx_credits && !skb_queue_empty(&chan->tx_q)) {
net/bluetooth/l2cap_core.c
2548
l2cap_do_send(chan, skb_dequeue(&chan->tx_q));
net/bluetooth/l2cap_core.c
2549
chan->tx_credits--;
net/bluetooth/l2cap_core.c
2553
BT_DBG("Sent %d credits %u queued %u", sent, chan->tx_credits,
net/bluetooth/l2cap_core.c
2554
skb_queue_len(&chan->tx_q));
net/bluetooth/l2cap_core.c
256
static void l2cap_state_change(struct l2cap_chan *chan, int state)
net/bluetooth/l2cap_core.c
258
BT_DBG("chan %p %s -> %s", chan, state_to_string(chan->state),
net/bluetooth/l2cap_core.c
2582
int l2cap_chan_send(struct l2cap_chan *chan, struct msghdr *msg, size_t len,
net/bluetooth/l2cap_core.c
2589
if (test_bit(FLAG_DEL, &chan->flags))
net/bluetooth/l2cap_core.c
2593
if (chan->chan_type == L2CAP_CHAN_CONN_LESS) {
net/bluetooth/l2cap_core.c
2594
skb = l2cap_create_connless_pdu(chan, msg, len);
net/bluetooth/l2cap_core.c
2600
l2cap_do_send(chan, skb);
net/bluetooth/l2cap_core.c
2604
switch (chan->mode) {
net/bluetooth/l2cap_core.c
2608
if (len > chan->omtu)
net/bluetooth/l2cap_core.c
261
chan->state = state;
net/bluetooth/l2cap_core.c
2613
err = l2cap_segment_le_sdu(chan, &seg_queue, msg, len);
net/bluetooth/l2cap_core.c
2615
if (chan->state != BT_CONNECTED) {
net/bluetooth/l2cap_core.c
262
chan->ops->state_change(chan, state, 0);
net/bluetooth/l2cap_core.c
2625
skb_queue_splice_tail_init(&seg_queue, &chan->tx_q);
net/bluetooth/l2cap_core.c
2627
l2cap_le_flowctl_send(chan);
net/bluetooth/l2cap_core.c
2629
if (!chan->tx_credits)
net/bluetooth/l2cap_core.c
2630
chan->ops->suspend(chan);
net/bluetooth/l2cap_core.c
2638
if (len > chan->omtu)
net/bluetooth/l2cap_core.c
2642
skb = l2cap_create_basic_pdu(chan, msg, len);
net/bluetooth/l2cap_core.c
2648
l2cap_do_send(chan, skb);
net/bluetooth/l2cap_core.c
265
static inline void l2cap_state_change_and_error(struct l2cap_chan *chan,
net/bluetooth/l2cap_core.c
2655
if (len > chan->omtu) {
net/bluetooth/l2cap_core.c
2666
err = l2cap_segment_sdu(chan, &seg_queue, msg, len);
net/bluetooth/l2cap_core.c
2671
if (chan->mode == L2CAP_MODE_ERTM) {
net/bluetooth/l2cap_core.c
2673
l2cap_tx(chan, NULL, &seg_queue, L2CAP_EV_DATA_REQUEST);
net/bluetooth/l2cap_core.c
2676
l2cap_streaming_send(chan, &seg_queue);
net/bluetooth/l2cap_core.c
268
chan->state = state;
net/bluetooth/l2cap_core.c
2688
BT_DBG("bad state %1.1x", chan->mode);
net/bluetooth/l2cap_core.c
269
chan->ops->state_change(chan, chan->state, err);
net/bluetooth/l2cap_core.c
2696
static void l2cap_send_srej(struct l2cap_chan *chan, u16 txseq)
net/bluetooth/l2cap_core.c
2701
BT_DBG("chan %p, txseq %u", chan, txseq);
net/bluetooth/l2cap_core.c
2707
for (seq = chan->expected_tx_seq; seq != txseq;
net/bluetooth/l2cap_core.c
2708
seq = __next_seq(chan, seq)) {
net/bluetooth/l2cap_core.c
2709
if (!l2cap_ertm_seq_in_queue(&chan->srej_q, seq)) {
net/bluetooth/l2cap_core.c
2711
l2cap_send_sframe(chan, &control);
net/bluetooth/l2cap_core.c
2712
l2cap_seq_list_append(&chan->srej_list, seq);
net/bluetooth/l2cap_core.c
2716
chan->expected_tx_seq = __next_seq(chan, txseq);
net/bluetooth/l2cap_core.c
2719
static void l2cap_send_srej_tail(struct l2cap_chan *chan)
net/bluetooth/l2cap_core.c
272
static inline void l2cap_chan_set_err(struct l2cap_chan *chan, int err)
net/bluetooth/l2cap_core.c
2723
BT_DBG("chan %p", chan);
net/bluetooth/l2cap_core.c
2725
if (chan->srej_list.tail == L2CAP_SEQ_LIST_CLEAR)
net/bluetooth/l2cap_core.c
2731
control.reqseq = chan->srej_list.tail;
net/bluetooth/l2cap_core.c
2732
l2cap_send_sframe(chan, &control);
net/bluetooth/l2cap_core.c
2735
static void l2cap_send_srej_list(struct l2cap_chan *chan, u16 txseq)
net/bluetooth/l2cap_core.c
274
chan->ops->state_change(chan, chan->state, err);
net/bluetooth/l2cap_core.c
2741
BT_DBG("chan %p, txseq %u", chan, txseq);
net/bluetooth/l2cap_core.c
2748
initial_head = chan->srej_list.head;
net/bluetooth/l2cap_core.c
2751
seq = l2cap_seq_list_pop(&chan->srej_list);
net/bluetooth/l2cap_core.c
2756
l2cap_send_sframe(chan, &control);
net/bluetooth/l2cap_core.c
2757
l2cap_seq_list_append(&chan->srej_list, seq);
net/bluetooth/l2cap_core.c
2758
} while (chan->srej_list.head != initial_head);
net/bluetooth/l2cap_core.c
2761
static void l2cap_process_reqseq(struct l2cap_chan *chan, u16 reqseq)
net/bluetooth/l2cap_core.c
2766
BT_DBG("chan %p, reqseq %u", chan, reqseq);
net/bluetooth/l2cap_core.c
2768
if (chan->unacked_frames == 0 || reqseq == chan->expected_ack_seq)
net/bluetooth/l2cap_core.c
277
static void __set_retrans_timer(struct l2cap_chan *chan)
net/bluetooth/l2cap_core.c
2772
chan->expected_ack_seq, chan->unacked_frames);
net/bluetooth/l2cap_core.c
2774
for (ackseq = chan->expected_ack_seq; ackseq != reqseq;
net/bluetooth/l2cap_core.c
2775
ackseq = __next_seq(chan, ackseq)) {
net/bluetooth/l2cap_core.c
2777
acked_skb = l2cap_ertm_seq_in_queue(&chan->tx_q, ackseq);
net/bluetooth/l2cap_core.c
2779
skb_unlink(acked_skb, &chan->tx_q);
net/bluetooth/l2cap_core.c
2781
chan->unacked_frames--;
net/bluetooth/l2cap_core.c
2785
chan->expected_ack_seq = reqseq;
net/bluetooth/l2cap_core.c
2787
if (chan->unacked_frames == 0)
net/bluetooth/l2cap_core.c
2788
__clear_retrans_timer(chan);
net/bluetooth/l2cap_core.c
279
if (!delayed_work_pending(&chan->monitor_timer) &&
net/bluetooth/l2cap_core.c
2790
BT_DBG("unacked_frames %u", chan->unacked_frames);
net/bluetooth/l2cap_core.c
2793
static void l2cap_abort_rx_srej_sent(struct l2cap_chan *chan)
net/bluetooth/l2cap_core.c
2795
BT_DBG("chan %p", chan);
net/bluetooth/l2cap_core.c
2797
chan->expected_tx_seq = chan->buffer_seq;
net/bluetooth/l2cap_core.c
2798
l2cap_seq_list_clear(&chan->srej_list);
net/bluetooth/l2cap_core.c
2799
skb_queue_purge(&chan->srej_q);
net/bluetooth/l2cap_core.c
280
chan->retrans_timeout) {
net/bluetooth/l2cap_core.c
2800
chan->rx_state = L2CAP_RX_STATE_RECV;
net/bluetooth/l2cap_core.c
2803
static void l2cap_tx_state_xmit(struct l2cap_chan *chan,
net/bluetooth/l2cap_core.c
2807
BT_DBG("chan %p, control %p, skbs %p, event %d", chan, control, skbs,
net/bluetooth/l2cap_core.c
281
l2cap_set_timer(chan, &chan->retrans_timer,
net/bluetooth/l2cap_core.c
2812
if (chan->tx_send_head == NULL)
net/bluetooth/l2cap_core.c
2813
chan->tx_send_head = skb_peek(skbs);
net/bluetooth/l2cap_core.c
2815
skb_queue_splice_tail_init(skbs, &chan->tx_q);
net/bluetooth/l2cap_core.c
2816
l2cap_ertm_send(chan);
net/bluetooth/l2cap_core.c
282
msecs_to_jiffies(chan->retrans_timeout));
net/bluetooth/l2cap_core.c
2820
set_bit(CONN_LOCAL_BUSY, &chan->conn_state);
net/bluetooth/l2cap_core.c
2822
if (chan->rx_state == L2CAP_RX_STATE_SREJ_SENT) {
net/bluetooth/l2cap_core.c
2826
l2cap_abort_rx_srej_sent(chan);
net/bluetooth/l2cap_core.c
2829
l2cap_send_ack(chan);
net/bluetooth/l2cap_core.c
2834
clear_bit(CONN_LOCAL_BUSY, &chan->conn_state);
net/bluetooth/l2cap_core.c
2836
if (test_bit(CONN_RNR_SENT, &chan->conn_state)) {
net/bluetooth/l2cap_core.c
2843
local_control.reqseq = chan->buffer_seq;
net/bluetooth/l2cap_core.c
2844
l2cap_send_sframe(chan, &local_control);
net/bluetooth/l2cap_core.c
2846
chan->retry_count = 1;
net/bluetooth/l2cap_core.c
2847
__set_monitor_timer(chan);
net/bluetooth/l2cap_core.c
2848
chan->tx_state = L2CAP_TX_STATE_WAIT_F;
net/bluetooth/l2cap_core.c
2852
l2cap_process_reqseq(chan, control->reqseq);
net/bluetooth/l2cap_core.c
2855
l2cap_send_rr_or_rnr(chan, 1);
net/bluetooth/l2cap_core.c
2856
chan->retry_count = 1;
net/bluetooth/l2cap_core.c
2857
__set_monitor_timer(chan);
net/bluetooth/l2cap_core.c
2858
__clear_ack_timer(chan);
net/bluetooth/l2cap_core.c
2859
chan->tx_state = L2CAP_TX_STATE_WAIT_F;
net/bluetooth/l2cap_core.c
286
static void __set_monitor_timer(struct l2cap_chan *chan)
net/bluetooth/l2cap_core.c
2862
l2cap_send_rr_or_rnr(chan, 1);
net/bluetooth/l2cap_core.c
2863
chan->retry_count = 1;
net/bluetooth/l2cap_core.c
2864
__set_monitor_timer(chan);
net/bluetooth/l2cap_core.c
2865
chan->tx_state = L2CAP_TX_STATE_WAIT_F;
net/bluetooth/l2cap_core.c
2875
static void l2cap_tx_state_wait_f(struct l2cap_chan *chan,
net/bluetooth/l2cap_core.c
2879
BT_DBG("chan %p, control %p, skbs %p, event %d", chan, control, skbs,
net/bluetooth/l2cap_core.c
288
__clear_retrans_timer(chan);
net/bluetooth/l2cap_core.c
2884
if (chan->tx_send_head == NULL)
net/bluetooth/l2cap_core.c
2885
chan->tx_send_head = skb_peek(skbs);
net/bluetooth/l2cap_core.c
2887
skb_queue_splice_tail_init(skbs, &chan->tx_q);
net/bluetooth/l2cap_core.c
289
if (chan->monitor_timeout) {
net/bluetooth/l2cap_core.c
2891
set_bit(CONN_LOCAL_BUSY, &chan->conn_state);
net/bluetooth/l2cap_core.c
2893
if (chan->rx_state == L2CAP_RX_STATE_SREJ_SENT) {
net/bluetooth/l2cap_core.c
2897
l2cap_abort_rx_srej_sent(chan);
net/bluetooth/l2cap_core.c
290
l2cap_set_timer(chan, &chan->monitor_timer,
net/bluetooth/l2cap_core.c
2900
l2cap_send_ack(chan);
net/bluetooth/l2cap_core.c
2905
clear_bit(CONN_LOCAL_BUSY, &chan->conn_state);
net/bluetooth/l2cap_core.c
2907
if (test_bit(CONN_RNR_SENT, &chan->conn_state)) {
net/bluetooth/l2cap_core.c
291
msecs_to_jiffies(chan->monitor_timeout));
net/bluetooth/l2cap_core.c
2913
local_control.reqseq = chan->buffer_seq;
net/bluetooth/l2cap_core.c
2914
l2cap_send_sframe(chan, &local_control);
net/bluetooth/l2cap_core.c
2916
chan->retry_count = 1;
net/bluetooth/l2cap_core.c
2917
__set_monitor_timer(chan);
net/bluetooth/l2cap_core.c
2918
chan->tx_state = L2CAP_TX_STATE_WAIT_F;
net/bluetooth/l2cap_core.c
2922
l2cap_process_reqseq(chan, control->reqseq);
net/bluetooth/l2cap_core.c
2927
__clear_monitor_timer(chan);
net/bluetooth/l2cap_core.c
2928
if (chan->unacked_frames > 0)
net/bluetooth/l2cap_core.c
2929
__set_retrans_timer(chan);
net/bluetooth/l2cap_core.c
2930
chan->retry_count = 0;
net/bluetooth/l2cap_core.c
2931
chan->tx_state = L2CAP_TX_STATE_XMIT;
net/bluetooth/l2cap_core.c
2932
BT_DBG("recv fbit tx_state 0x2.2%x", chan->tx_state);
net/bluetooth/l2cap_core.c
2939
if (chan->max_tx == 0 || chan->retry_count < chan->max_tx) {
net/bluetooth/l2cap_core.c
2940
l2cap_send_rr_or_rnr(chan, 1);
net/bluetooth/l2cap_core.c
2941
__set_monitor_timer(chan);
net/bluetooth/l2cap_core.c
2942
chan->retry_count++;
net/bluetooth/l2cap_core.c
2944
l2cap_send_disconn_req(chan, ECONNABORTED);
net/bluetooth/l2cap_core.c
2952
static void l2cap_tx(struct l2cap_chan *chan, struct l2cap_ctrl *control,
net/bluetooth/l2cap_core.c
2956
chan, control, skbs, event, chan->tx_state);
net/bluetooth/l2cap_core.c
2958
switch (chan->tx_state) {
net/bluetooth/l2cap_core.c
2960
l2cap_tx_state_xmit(chan, control, skbs, event);
net/bluetooth/l2cap_core.c
2963
l2cap_tx_state_wait_f(chan, control, skbs, event);
net/bluetooth/l2cap_core.c
2971
static void l2cap_pass_to_tx(struct l2cap_chan *chan,
net/bluetooth/l2cap_core.c
2974
BT_DBG("chan %p, control %p", chan, control);
net/bluetooth/l2cap_core.c
2975
l2cap_tx(chan, control, NULL, L2CAP_EV_RECV_REQSEQ_AND_FBIT);
net/bluetooth/l2cap_core.c
2978
static void l2cap_pass_to_tx_fbit(struct l2cap_chan *chan,
net/bluetooth/l2cap_core.c
2981
BT_DBG("chan %p, control %p", chan, control);
net/bluetooth/l2cap_core.c
2982
l2cap_tx(chan, control, NULL, L2CAP_EV_RECV_FBIT);
net/bluetooth/l2cap_core.c
2989
struct l2cap_chan *chan;
net/bluetooth/l2cap_core.c
2993
list_for_each_entry(chan, &conn->chan_l, list) {
net/bluetooth/l2cap_core.c
2994
if (chan->chan_type != L2CAP_CHAN_RAW)
net/bluetooth/l2cap_core.c
2998
if (bt_cb(skb)->l2cap.chan == chan)
net/bluetooth/l2cap_core.c
3004
if (chan->ops->recv(chan, nskb))
net/bluetooth/l2cap_core.c
3154
static void l2cap_add_opt_efs(void **ptr, struct l2cap_chan *chan, size_t size)
net/bluetooth/l2cap_core.c
3158
switch (chan->mode) {
net/bluetooth/l2cap_core.c
3160
efs.id = chan->local_id;
net/bluetooth/l2cap_core.c
3161
efs.stype = chan->local_stype;
net/bluetooth/l2cap_core.c
3162
efs.msdu = cpu_to_le16(chan->local_msdu);
net/bluetooth/l2cap_core.c
3163
efs.sdu_itime = cpu_to_le32(chan->local_sdu_itime);
net/bluetooth/l2cap_core.c
3171
efs.msdu = cpu_to_le16(chan->local_msdu);
net/bluetooth/l2cap_core.c
3172
efs.sdu_itime = cpu_to_le32(chan->local_sdu_itime);
net/bluetooth/l2cap_core.c
3187
struct l2cap_chan *chan = container_of(work, struct l2cap_chan,
net/bluetooth/l2cap_core.c
3191
BT_DBG("chan %p", chan);
net/bluetooth/l2cap_core.c
3193
l2cap_chan_lock(chan);
net/bluetooth/l2cap_core.c
3195
if (test_bit(FLAG_DEL, &chan->flags))
net/bluetooth/l2cap_core.c
3198
frames_to_ack = __seq_offset(chan, chan->buffer_seq,
net/bluetooth/l2cap_core.c
3199
chan->last_acked_seq);
net/bluetooth/l2cap_core.c
3202
l2cap_send_rr_or_rnr(chan, 0);
net/bluetooth/l2cap_core.c
3205
l2cap_chan_unlock(chan);
net/bluetooth/l2cap_core.c
3206
l2cap_chan_put(chan);
net/bluetooth/l2cap_core.c
3209
int l2cap_ertm_init(struct l2cap_chan *chan)
net/bluetooth/l2cap_core.c
3213
chan->next_tx_seq = 0;
net/bluetooth/l2cap_core.c
3214
chan->expected_tx_seq = 0;
net/bluetooth/l2cap_core.c
3215
chan->expected_ack_seq = 0;
net/bluetooth/l2cap_core.c
3216
chan->unacked_frames = 0;
net/bluetooth/l2cap_core.c
3217
chan->buffer_seq = 0;
net/bluetooth/l2cap_core.c
3218
chan->frames_sent = 0;
net/bluetooth/l2cap_core.c
3219
chan->last_acked_seq = 0;
net/bluetooth/l2cap_core.c
3220
chan->sdu = NULL;
net/bluetooth/l2cap_core.c
3221
chan->sdu_last_frag = NULL;
net/bluetooth/l2cap_core.c
3222
chan->sdu_len = 0;
net/bluetooth/l2cap_core.c
3224
skb_queue_head_init(&chan->tx_q);
net/bluetooth/l2cap_core.c
3226
if (chan->mode != L2CAP_MODE_ERTM)
net/bluetooth/l2cap_core.c
3229
chan->rx_state = L2CAP_RX_STATE_RECV;
net/bluetooth/l2cap_core.c
3230
chan->tx_state = L2CAP_TX_STATE_XMIT;
net/bluetooth/l2cap_core.c
3232
skb_queue_head_init(&chan->srej_q);
net/bluetooth/l2cap_core.c
3234
err = l2cap_seq_list_init(&chan->srej_list, chan->tx_win);
net/bluetooth/l2cap_core.c
3238
err = l2cap_seq_list_init(&chan->retrans_list, chan->remote_tx_win);
net/bluetooth/l2cap_core.c
3240
l2cap_seq_list_free(&chan->srej_list);
net/bluetooth/l2cap_core.c
3268
static void __l2cap_set_ertm_timeouts(struct l2cap_chan *chan,
net/bluetooth/l2cap_core.c
3275
static inline void l2cap_txwin_setup(struct l2cap_chan *chan)
net/bluetooth/l2cap_core.c
3277
if (chan->tx_win > L2CAP_DEFAULT_TX_WINDOW &&
net/bluetooth/l2cap_core.c
3278
__l2cap_ews_supported(chan->conn)) {
net/bluetooth/l2cap_core.c
3280
set_bit(FLAG_EXT_CTRL, &chan->flags);
net/bluetooth/l2cap_core.c
3281
chan->tx_win_max = L2CAP_DEFAULT_EXT_WINDOW;
net/bluetooth/l2cap_core.c
3283
chan->tx_win = min_t(u16, chan->tx_win,
net/bluetooth/l2cap_core.c
3285
chan->tx_win_max = L2CAP_DEFAULT_TX_WINDOW;
net/bluetooth/l2cap_core.c
3287
chan->ack_win = chan->tx_win;
net/bluetooth/l2cap_core.c
3290
static void l2cap_mtu_auto(struct l2cap_chan *chan)
net/bluetooth/l2cap_core.c
3292
struct hci_conn *conn = chan->conn->hcon;
net/bluetooth/l2cap_core.c
3294
chan->imtu = L2CAP_DEFAULT_MIN_MTU;
net/bluetooth/l2cap_core.c
3300
chan->imtu = 54;
net/bluetooth/l2cap_core.c
3306
chan->imtu = 83;
net/bluetooth/l2cap_core.c
3312
chan->imtu = 367;
net/bluetooth/l2cap_core.c
3318
chan->imtu = 552;
net/bluetooth/l2cap_core.c
3324
chan->imtu = 679;
net/bluetooth/l2cap_core.c
3330
chan->imtu = 1021;
net/bluetooth/l2cap_core.c
3333
static int l2cap_build_conf_req(struct l2cap_chan *chan, void *data, size_t data_size)
net/bluetooth/l2cap_core.c
3336
struct l2cap_conf_rfc rfc = { .mode = chan->mode };
net/bluetooth/l2cap_core.c
3341
BT_DBG("chan %p", chan);
net/bluetooth/l2cap_core.c
3343
if (chan->num_conf_req || chan->num_conf_rsp)
net/bluetooth/l2cap_core.c
3346
switch (chan->mode) {
net/bluetooth/l2cap_core.c
3349
if (test_bit(CONF_STATE2_DEVICE, &chan->conf_state))
net/bluetooth/l2cap_core.c
3352
if (__l2cap_efs_supported(chan->conn))
net/bluetooth/l2cap_core.c
3353
set_bit(FLAG_EFS_ENABLE, &chan->flags);
net/bluetooth/l2cap_core.c
3357
chan->mode = l2cap_select_mode(rfc.mode, chan->conn->feat_mask);
net/bluetooth/l2cap_core.c
3362
if (chan->imtu != L2CAP_DEFAULT_MTU) {
net/bluetooth/l2cap_core.c
3363
if (!chan->imtu)
net/bluetooth/l2cap_core.c
3364
l2cap_mtu_auto(chan);
net/bluetooth/l2cap_core.c
3365
l2cap_add_conf_opt(&ptr, L2CAP_CONF_MTU, 2, chan->imtu,
net/bluetooth/l2cap_core.c
3369
switch (chan->mode) {
net/bluetooth/l2cap_core.c
3374
if (!(chan->conn->feat_mask & L2CAP_FEAT_ERTM) &&
net/bluetooth/l2cap_core.c
3375
!(chan->conn->feat_mask & L2CAP_FEAT_STREAMING))
net/bluetooth/l2cap_core.c
3391
rfc.max_transmit = chan->max_tx;
net/bluetooth/l2cap_core.c
3393
__l2cap_set_ertm_timeouts(chan, &rfc);
net/bluetooth/l2cap_core.c
3395
size = min_t(u16, L2CAP_DEFAULT_MAX_PDU_SIZE, chan->conn->mtu -
net/bluetooth/l2cap_core.c
3400
l2cap_txwin_setup(chan);
net/bluetooth/l2cap_core.c
3402
rfc.txwin_size = min_t(u16, chan->tx_win,
net/bluetooth/l2cap_core.c
3408
if (test_bit(FLAG_EFS_ENABLE, &chan->flags))
net/bluetooth/l2cap_core.c
3409
l2cap_add_opt_efs(&ptr, chan, endptr - ptr);
net/bluetooth/l2cap_core.c
3411
if (test_bit(FLAG_EXT_CTRL, &chan->flags))
net/bluetooth/l2cap_core.c
3413
chan->tx_win, endptr - ptr);
net/bluetooth/l2cap_core.c
3415
if (chan->conn->feat_mask & L2CAP_FEAT_FCS)
net/bluetooth/l2cap_core.c
3416
if (chan->fcs == L2CAP_FCS_NONE ||
net/bluetooth/l2cap_core.c
3417
test_bit(CONF_RECV_NO_FCS, &chan->conf_state)) {
net/bluetooth/l2cap_core.c
3418
chan->fcs = L2CAP_FCS_NONE;
net/bluetooth/l2cap_core.c
3420
chan->fcs, endptr - ptr);
net/bluetooth/l2cap_core.c
3425
l2cap_txwin_setup(chan);
net/bluetooth/l2cap_core.c
3432
size = min_t(u16, L2CAP_DEFAULT_MAX_PDU_SIZE, chan->conn->mtu -
net/bluetooth/l2cap_core.c
3440
if (test_bit(FLAG_EFS_ENABLE, &chan->flags))
net/bluetooth/l2cap_core.c
3441
l2cap_add_opt_efs(&ptr, chan, endptr - ptr);
net/bluetooth/l2cap_core.c
3443
if (chan->conn->feat_mask & L2CAP_FEAT_FCS)
net/bluetooth/l2cap_core.c
3444
if (chan->fcs == L2CAP_FCS_NONE ||
net/bluetooth/l2cap_core.c
3445
test_bit(CONF_RECV_NO_FCS, &chan->conf_state)) {
net/bluetooth/l2cap_core.c
3446
chan->fcs = L2CAP_FCS_NONE;
net/bluetooth/l2cap_core.c
3448
chan->fcs, endptr - ptr);
net/bluetooth/l2cap_core.c
3453
req->dcid = cpu_to_le16(chan->dcid);
net/bluetooth/l2cap_core.c
3459
static int l2cap_parse_conf_req(struct l2cap_chan *chan, void *data, size_t data_size)
net/bluetooth/l2cap_core.c
3464
void *req = chan->conf_req;
net/bluetooth/l2cap_core.c
3465
void *req_end = req + chan->conf_len;
net/bluetooth/l2cap_core.c
3466
int len = chan->conf_len;
net/bluetooth/l2cap_core.c
3476
BT_DBG("chan %p", chan);
net/bluetooth/l2cap_core.c
3498
chan->flush_to = val;
net/bluetooth/l2cap_core.c
3514
set_bit(CONF_RECV_NO_FCS, &chan->conf_state);
net/bluetooth/l2cap_core.c
3538
if (chan->num_conf_rsp || chan->num_conf_req > 1)
net/bluetooth/l2cap_core.c
3541
switch (chan->mode) {
net/bluetooth/l2cap_core.c
3544
if (!test_bit(CONF_STATE2_DEVICE, &chan->conf_state)) {
net/bluetooth/l2cap_core.c
3545
chan->mode = l2cap_select_mode(rfc.mode,
net/bluetooth/l2cap_core.c
3546
chan->conn->feat_mask);
net/bluetooth/l2cap_core.c
3551
if (__l2cap_efs_supported(chan->conn))
net/bluetooth/l2cap_core.c
3552
set_bit(FLAG_EFS_ENABLE, &chan->flags);
net/bluetooth/l2cap_core.c
3557
if (chan->mode != rfc.mode)
net/bluetooth/l2cap_core.c
3564
if (chan->mode != rfc.mode) {
net/bluetooth/l2cap_core.c
3566
rfc.mode = chan->mode;
net/bluetooth/l2cap_core.c
3568
if (chan->num_conf_rsp == 1)
net/bluetooth/l2cap_core.c
3595
if (chan->mode == L2CAP_MODE_ERTM &&
net/bluetooth/l2cap_core.c
3596
chan->omtu && chan->omtu != L2CAP_DEFAULT_MTU)
net/bluetooth/l2cap_core.c
3597
mtu = chan->omtu;
net/bluetooth/l2cap_core.c
3605
chan->omtu = mtu;
net/bluetooth/l2cap_core.c
3606
set_bit(CONF_MTU_DONE, &chan->conf_state);
net/bluetooth/l2cap_core.c
3608
l2cap_add_conf_opt(&ptr, L2CAP_CONF_MTU, 2, chan->omtu, endptr - ptr);
net/bluetooth/l2cap_core.c
3611
if (chan->local_stype != L2CAP_SERV_NOTRAFIC &&
net/bluetooth/l2cap_core.c
3613
efs.stype != chan->local_stype) {
net/bluetooth/l2cap_core.c
3617
if (chan->num_conf_req >= 1)
net/bluetooth/l2cap_core.c
3626
set_bit(CONF_LOC_CONF_PEND, &chan->conf_state);
net/bluetooth/l2cap_core.c
3632
chan->fcs = L2CAP_FCS_NONE;
net/bluetooth/l2cap_core.c
3633
set_bit(CONF_MODE_DONE, &chan->conf_state);
net/bluetooth/l2cap_core.c
3637
if (!test_bit(CONF_EWS_RECV, &chan->conf_state))
net/bluetooth/l2cap_core.c
3638
chan->remote_tx_win = rfc.txwin_size;
net/bluetooth/l2cap_core.c
3642
chan->remote_max_tx = rfc.max_transmit;
net/bluetooth/l2cap_core.c
3645
chan->conn->mtu - L2CAP_EXT_HDR_SIZE -
net/bluetooth/l2cap_core.c
3648
chan->remote_mps = size;
net/bluetooth/l2cap_core.c
3650
__l2cap_set_ertm_timeouts(chan, &rfc);
net/bluetooth/l2cap_core.c
3652
set_bit(CONF_MODE_DONE, &chan->conf_state);
net/bluetooth/l2cap_core.c
3658
test_bit(FLAG_EFS_ENABLE, &chan->flags)) {
net/bluetooth/l2cap_core.c
3659
chan->remote_id = efs.id;
net/bluetooth/l2cap_core.c
3660
chan->remote_stype = efs.stype;
net/bluetooth/l2cap_core.c
3661
chan->remote_msdu = le16_to_cpu(efs.msdu);
net/bluetooth/l2cap_core.c
3662
chan->remote_flush_to =
net/bluetooth/l2cap_core.c
3664
chan->remote_acc_lat =
net/bluetooth/l2cap_core.c
3666
chan->remote_sdu_itime =
net/bluetooth/l2cap_core.c
3676
chan->conn->mtu - L2CAP_EXT_HDR_SIZE -
net/bluetooth/l2cap_core.c
3679
chan->remote_mps = size;
net/bluetooth/l2cap_core.c
3681
set_bit(CONF_MODE_DONE, &chan->conf_state);
net/bluetooth/l2cap_core.c
3692
rfc.mode = chan->mode;
net/bluetooth/l2cap_core.c
3696
set_bit(CONF_OUTPUT_DONE, &chan->conf_state);
net/bluetooth/l2cap_core.c
3698
rsp->scid = cpu_to_le16(chan->dcid);
net/bluetooth/l2cap_core.c
3705
static int l2cap_parse_conf_rsp(struct l2cap_chan *chan, void *rsp, int len,
net/bluetooth/l2cap_core.c
3717
BT_DBG("chan %p, rsp %p, len %d, req %p", chan, rsp, len, data);
net/bluetooth/l2cap_core.c
3732
chan->imtu = L2CAP_DEFAULT_MIN_MTU;
net/bluetooth/l2cap_core.c
3734
chan->imtu = val;
net/bluetooth/l2cap_core.c
3735
l2cap_add_conf_opt(&ptr, L2CAP_CONF_MTU, 2, chan->imtu,
net/bluetooth/l2cap_core.c
3742
chan->flush_to = val;
net/bluetooth/l2cap_core.c
3744
chan->flush_to, endptr - ptr);
net/bluetooth/l2cap_core.c
3751
if (test_bit(CONF_STATE2_DEVICE, &chan->conf_state) &&
net/bluetooth/l2cap_core.c
3752
rfc.mode != chan->mode)
net/bluetooth/l2cap_core.c
3754
chan->fcs = 0;
net/bluetooth/l2cap_core.c
3762
chan->ack_win = min_t(u16, val, chan->ack_win);
net/bluetooth/l2cap_core.c
3764
chan->tx_win, endptr - ptr);
net/bluetooth/l2cap_core.c
3771
if (chan->local_stype != L2CAP_SERV_NOTRAFIC &&
net/bluetooth/l2cap_core.c
3773
efs.stype != chan->local_stype)
net/bluetooth/l2cap_core.c
3785
&chan->conf_state);
net/bluetooth/l2cap_core.c
3790
if (chan->mode == L2CAP_MODE_BASIC && chan->mode != rfc.mode)
net/bluetooth/l2cap_core.c
3793
chan->mode = rfc.mode;
net/bluetooth/l2cap_core.c
3798
chan->retrans_timeout = le16_to_cpu(rfc.retrans_timeout);
net/bluetooth/l2cap_core.c
3799
chan->monitor_timeout = le16_to_cpu(rfc.monitor_timeout);
net/bluetooth/l2cap_core.c
3800
chan->mps = le16_to_cpu(rfc.max_pdu_size);
net/bluetooth/l2cap_core.c
3801
if (!test_bit(FLAG_EXT_CTRL, &chan->flags))
net/bluetooth/l2cap_core.c
3802
chan->ack_win = min_t(u16, chan->ack_win,
net/bluetooth/l2cap_core.c
3805
if (test_bit(FLAG_EFS_ENABLE, &chan->flags)) {
net/bluetooth/l2cap_core.c
3806
chan->local_msdu = le16_to_cpu(efs.msdu);
net/bluetooth/l2cap_core.c
3807
chan->local_sdu_itime =
net/bluetooth/l2cap_core.c
3809
chan->local_acc_lat = le32_to_cpu(efs.acc_lat);
net/bluetooth/l2cap_core.c
3810
chan->local_flush_to =
net/bluetooth/l2cap_core.c
3816
chan->mps = le16_to_cpu(rfc.max_pdu_size);
net/bluetooth/l2cap_core.c
3820
req->dcid = cpu_to_le16(chan->dcid);
net/bluetooth/l2cap_core.c
3826
static int l2cap_build_conf_rsp(struct l2cap_chan *chan, void *data,
net/bluetooth/l2cap_core.c
3832
BT_DBG("chan %p", chan);
net/bluetooth/l2cap_core.c
3834
rsp->scid = cpu_to_le16(chan->dcid);
net/bluetooth/l2cap_core.c
3841
void __l2cap_le_connect_rsp_defer(struct l2cap_chan *chan)
net/bluetooth/l2cap_core.c
3844
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
3846
BT_DBG("chan %p", chan);
net/bluetooth/l2cap_core.c
3848
rsp.dcid = cpu_to_le16(chan->scid);
net/bluetooth/l2cap_core.c
3849
rsp.mtu = cpu_to_le16(chan->imtu);
net/bluetooth/l2cap_core.c
3850
rsp.mps = cpu_to_le16(chan->mps);
net/bluetooth/l2cap_core.c
3851
rsp.credits = cpu_to_le16(chan->rx_credits);
net/bluetooth/l2cap_core.c
3854
l2cap_send_cmd(conn, chan->ident, L2CAP_LE_CONN_RSP, sizeof(rsp),
net/bluetooth/l2cap_core.c
3858
static void l2cap_ecred_list_defer(struct l2cap_chan *chan, void *data)
net/bluetooth/l2cap_core.c
3862
if (*result || test_bit(FLAG_ECRED_CONN_REQ_SENT, &chan->flags))
net/bluetooth/l2cap_core.c
3865
switch (chan->state) {
net/bluetooth/l2cap_core.c
3887
static void l2cap_ecred_rsp_defer(struct l2cap_chan *chan, void *data)
net/bluetooth/l2cap_core.c
3896
if (test_bit(FLAG_ECRED_CONN_REQ_SENT, &chan->flags) ||
net/bluetooth/l2cap_core.c
3897
!test_and_clear_bit(FLAG_DEFER_SETUP, &chan->flags))
net/bluetooth/l2cap_core.c
3901
chan->ident = 0;
net/bluetooth/l2cap_core.c
3905
rsp_flex->dcid[rsp->count++] = cpu_to_le16(chan->scid);
net/bluetooth/l2cap_core.c
3907
l2cap_chan_del(chan, ECONNRESET);
net/bluetooth/l2cap_core.c
3910
void __l2cap_ecred_conn_rsp_defer(struct l2cap_chan *chan)
net/bluetooth/l2cap_core.c
3912
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
3914
u16 id = chan->ident;
net/bluetooth/l2cap_core.c
3920
BT_DBG("chan %p id %d", chan, id);
net/bluetooth/l2cap_core.c
3924
data.pdu.rsp.mtu = cpu_to_le16(chan->imtu);
net/bluetooth/l2cap_core.c
3925
data.pdu.rsp.mps = cpu_to_le16(chan->mps);
net/bluetooth/l2cap_core.c
3926
data.pdu.rsp.credits = cpu_to_le16(chan->rx_credits);
net/bluetooth/l2cap_core.c
3946
void __l2cap_connect_rsp_defer(struct l2cap_chan *chan)
net/bluetooth/l2cap_core.c
3949
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
3953
rsp.scid = cpu_to_le16(chan->dcid);
net/bluetooth/l2cap_core.c
3954
rsp.dcid = cpu_to_le16(chan->scid);
net/bluetooth/l2cap_core.c
3959
BT_DBG("chan %p rsp_code %u", chan, rsp_code);
net/bluetooth/l2cap_core.c
3961
l2cap_send_cmd(conn, chan->ident, rsp_code, sizeof(rsp), &rsp);
net/bluetooth/l2cap_core.c
3963
if (test_and_set_bit(CONF_REQ_SENT, &chan->conf_state))
net/bluetooth/l2cap_core.c
3967
l2cap_build_conf_req(chan, buf, sizeof(buf)), buf);
net/bluetooth/l2cap_core.c
3968
chan->num_conf_req++;
net/bluetooth/l2cap_core.c
3971
static void l2cap_conf_rfc_get(struct l2cap_chan *chan, void *rsp, int len)
net/bluetooth/l2cap_core.c
3979
u16 txwin_ext = chan->ack_win;
net/bluetooth/l2cap_core.c
3981
.mode = chan->mode,
net/bluetooth/l2cap_core.c
3984
.max_pdu_size = cpu_to_le16(chan->imtu),
net/bluetooth/l2cap_core.c
3985
.txwin_size = min_t(u16, chan->ack_win, L2CAP_DEFAULT_TX_WINDOW),
net/bluetooth/l2cap_core.c
3988
BT_DBG("chan %p, rsp %p, len %d", chan, rsp, len);
net/bluetooth/l2cap_core.c
3990
if ((chan->mode != L2CAP_MODE_ERTM) && (chan->mode != L2CAP_MODE_STREAMING))
net/bluetooth/l2cap_core.c
4016
chan->retrans_timeout = le16_to_cpu(rfc.retrans_timeout);
net/bluetooth/l2cap_core.c
4017
chan->monitor_timeout = le16_to_cpu(rfc.monitor_timeout);
net/bluetooth/l2cap_core.c
4018
chan->mps = le16_to_cpu(rfc.max_pdu_size);
net/bluetooth/l2cap_core.c
4019
if (test_bit(FLAG_EXT_CTRL, &chan->flags))
net/bluetooth/l2cap_core.c
4020
chan->ack_win = min_t(u16, chan->ack_win, txwin_ext);
net/bluetooth/l2cap_core.c
4022
chan->ack_win = min_t(u16, chan->ack_win,
net/bluetooth/l2cap_core.c
4026
chan->mps = le16_to_cpu(rfc.max_pdu_size);
net/bluetooth/l2cap_core.c
404
struct l2cap_chan *chan = container_of(work, struct l2cap_chan,
net/bluetooth/l2cap_core.c
406
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
4066
struct l2cap_chan *chan;
net/bluetooth/l2cap_core.c
4068
chan = l2cap_chan_create();
net/bluetooth/l2cap_core.c
4069
if (!chan)
net/bluetooth/l2cap_core.c
4072
l2cap_chan_set_defaults(chan, pchan);
net/bluetooth/l2cap_core.c
4073
chan->ops = pchan->ops;
net/bluetooth/l2cap_core.c
4075
__l2cap_chan_add(conn, chan);
net/bluetooth/l2cap_core.c
4078
pchan->ops->new_connection(pchan, chan) < 0) {
net/bluetooth/l2cap_core.c
4079
l2cap_chan_del(chan, 0);
net/bluetooth/l2cap_core.c
4080
l2cap_chan_put(chan);
net/bluetooth/l2cap_core.c
4084
return chan;
net/bluetooth/l2cap_core.c
409
BT_DBG("chan %p state %s", chan, state_to_string(chan->state));
net/bluetooth/l2cap_core.c
4092
struct l2cap_chan *chan = NULL, *pchan = NULL;
net/bluetooth/l2cap_core.c
411
if (test_bit(FLAG_DEL, &chan->flags)) {
net/bluetooth/l2cap_core.c
412
l2cap_chan_put(chan);
net/bluetooth/l2cap_core.c
4133
chan = l2cap_new_connection(conn, pchan);
net/bluetooth/l2cap_core.c
4134
if (!chan)
net/bluetooth/l2cap_core.c
4144
bacpy(&chan->src, &conn->hcon->src);
net/bluetooth/l2cap_core.c
4145
bacpy(&chan->dst, &conn->hcon->dst);
net/bluetooth/l2cap_core.c
4146
chan->src_type = bdaddr_src_type(conn->hcon);
net/bluetooth/l2cap_core.c
4147
chan->dst_type = bdaddr_dst_type(conn->hcon);
net/bluetooth/l2cap_core.c
4148
chan->psm = psm;
net/bluetooth/l2cap_core.c
4149
chan->dcid = scid;
net/bluetooth/l2cap_core.c
4151
dcid = chan->scid;
net/bluetooth/l2cap_core.c
4153
__set_chan_timer(chan, chan->ops->get_sndtimeo(chan));
net/bluetooth/l2cap_core.c
4155
chan->ident = cmd->ident;
net/bluetooth/l2cap_core.c
4158
if (l2cap_chan_check_security(chan, false)) {
net/bluetooth/l2cap_core.c
4159
if (test_bit(FLAG_DEFER_SETUP, &chan->flags)) {
net/bluetooth/l2cap_core.c
4160
l2cap_state_change(chan, BT_CONNECT2);
net/bluetooth/l2cap_core.c
4163
chan->ops->defer(chan);
net/bluetooth/l2cap_core.c
4165
l2cap_state_change(chan, BT_CONFIG);
net/bluetooth/l2cap_core.c
4170
l2cap_state_change(chan, BT_CONNECT2);
net/bluetooth/l2cap_core.c
4175
l2cap_state_change(chan, BT_CONNECT2);
net/bluetooth/l2cap_core.c
420
l2cap_chan_lock(chan);
net/bluetooth/l2cap_core.c
4203
if (chan && !test_bit(CONF_REQ_SENT, &chan->conf_state) &&
net/bluetooth/l2cap_core.c
4206
set_bit(CONF_REQ_SENT, &chan->conf_state);
net/bluetooth/l2cap_core.c
4208
l2cap_build_conf_req(chan, buf, sizeof(buf)), buf);
net/bluetooth/l2cap_core.c
4209
chan->num_conf_req++;
net/bluetooth/l2cap_core.c
422
if (test_bit(FLAG_DEL, &chan->flags))
net/bluetooth/l2cap_core.c
4232
struct l2cap_chan *chan;
net/bluetooth/l2cap_core.c
425
if (chan->state == BT_CONNECTED || chan->state == BT_CONFIG)
net/bluetooth/l2cap_core.c
4252
chan = __l2cap_get_chan_by_scid(conn, scid);
net/bluetooth/l2cap_core.c
4253
if (!chan)
net/bluetooth/l2cap_core.c
4256
chan = __l2cap_get_chan_by_ident(conn, cmd->ident);
net/bluetooth/l2cap_core.c
4257
if (!chan)
net/bluetooth/l2cap_core.c
4261
chan = l2cap_chan_hold_unless_zero(chan);
net/bluetooth/l2cap_core.c
4262
if (!chan)
net/bluetooth/l2cap_core.c
4267
l2cap_chan_lock(chan);
net/bluetooth/l2cap_core.c
427
else if (chan->state == BT_CONNECT &&
net/bluetooth/l2cap_core.c
4276
l2cap_state_change(chan, BT_CONFIG);
net/bluetooth/l2cap_core.c
4277
chan->ident = 0;
net/bluetooth/l2cap_core.c
4278
chan->dcid = dcid;
net/bluetooth/l2cap_core.c
4279
clear_bit(CONF_CONNECT_PEND, &chan->conf_state);
net/bluetooth/l2cap_core.c
428
chan->sec_level != BT_SECURITY_SDP)
net/bluetooth/l2cap_core.c
4281
if (test_and_set_bit(CONF_REQ_SENT, &chan->conf_state))
net/bluetooth/l2cap_core.c
4285
l2cap_build_conf_req(chan, req, sizeof(req)), req);
net/bluetooth/l2cap_core.c
4286
chan->num_conf_req++;
net/bluetooth/l2cap_core.c
4290
set_bit(CONF_CONNECT_PEND, &chan->conf_state);
net/bluetooth/l2cap_core.c
4294
l2cap_chan_del(chan, ECONNREFUSED);
net/bluetooth/l2cap_core.c
4298
l2cap_chan_unlock(chan);
net/bluetooth/l2cap_core.c
4299
l2cap_chan_put(chan);
net/bluetooth/l2cap_core.c
4304
static inline void set_default_fcs(struct l2cap_chan *chan)
net/bluetooth/l2cap_core.c
4309
if (chan->mode != L2CAP_MODE_ERTM && chan->mode != L2CAP_MODE_STREAMING)
net/bluetooth/l2cap_core.c
4310
chan->fcs = L2CAP_FCS_NONE;
net/bluetooth/l2cap_core.c
4311
else if (!test_bit(CONF_RECV_NO_FCS, &chan->conf_state))
net/bluetooth/l2cap_core.c
4312
chan->fcs = L2CAP_FCS_CRC16;
net/bluetooth/l2cap_core.c
4315
static void l2cap_send_efs_conf_rsp(struct l2cap_chan *chan, void *data,
net/bluetooth/l2cap_core.c
4318
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
4320
BT_DBG("conn %p chan %p ident %d flags 0x%4.4x", conn, chan, ident,
net/bluetooth/l2cap_core.c
4323
clear_bit(CONF_LOC_CONF_PEND, &chan->conf_state);
net/bluetooth/l2cap_core.c
4324
set_bit(CONF_OUTPUT_DONE, &chan->conf_state);
net/bluetooth/l2cap_core.c
4327
l2cap_build_conf_rsp(chan, data,
net/bluetooth/l2cap_core.c
433
l2cap_chan_close(chan, reason);
net/bluetooth/l2cap_core.c
435
chan->ops->close(chan);
net/bluetooth/l2cap_core.c
4350
struct l2cap_chan *chan;
net/bluetooth/l2cap_core.c
4361
chan = l2cap_get_chan_by_scid(conn, dcid);
net/bluetooth/l2cap_core.c
4362
if (!chan) {
net/bluetooth/l2cap_core.c
4367
if (chan->state != BT_CONFIG && chan->state != BT_CONNECT2 &&
net/bluetooth/l2cap_core.c
4368
chan->state != BT_CONNECTED) {
net/bluetooth/l2cap_core.c
4369
cmd_reject_invalid_cid(conn, cmd->ident, chan->scid,
net/bluetooth/l2cap_core.c
4370
chan->dcid);
net/bluetooth/l2cap_core.c
4376
if (chan->conf_len + len > sizeof(chan->conf_req)) {
net/bluetooth/l2cap_core.c
4378
l2cap_build_conf_rsp(chan, rsp,
net/bluetooth/l2cap_core.c
438
l2cap_chan_unlock(chan);
net/bluetooth/l2cap_core.c
4384
memcpy(chan->conf_req + chan->conf_len, req->data, len);
net/bluetooth/l2cap_core.c
4385
chan->conf_len += len;
net/bluetooth/l2cap_core.c
4390
l2cap_build_conf_rsp(chan, rsp,
net/bluetooth/l2cap_core.c
4396
len = l2cap_parse_conf_req(chan, rsp, sizeof(rsp));
net/bluetooth/l2cap_core.c
4398
l2cap_send_disconn_req(chan, ECONNRESET);
net/bluetooth/l2cap_core.c
440
l2cap_chan_put(chan);
net/bluetooth/l2cap_core.c
4402
chan->ident = cmd->ident;
net/bluetooth/l2cap_core.c
4404
if (chan->num_conf_rsp < L2CAP_CONF_MAX_CONF_RSP)
net/bluetooth/l2cap_core.c
4405
chan->num_conf_rsp++;
net/bluetooth/l2cap_core.c
4408
chan->conf_len = 0;
net/bluetooth/l2cap_core.c
4410
if (!test_bit(CONF_OUTPUT_DONE, &chan->conf_state))
net/bluetooth/l2cap_core.c
4413
if (test_bit(CONF_INPUT_DONE, &chan->conf_state)) {
net/bluetooth/l2cap_core.c
4414
set_default_fcs(chan);
net/bluetooth/l2cap_core.c
4416
if (chan->state != BT_CONNECTED) {
net/bluetooth/l2cap_core.c
4417
if (chan->mode == L2CAP_MODE_ERTM ||
net/bluetooth/l2cap_core.c
4418
chan->mode == L2CAP_MODE_STREAMING)
net/bluetooth/l2cap_core.c
4419
err = l2cap_ertm_init(chan);
net/bluetooth/l2cap_core.c
4422
l2cap_send_disconn_req(chan, -err);
net/bluetooth/l2cap_core.c
4424
l2cap_chan_ready(chan);
net/bluetooth/l2cap_core.c
4430
if (!test_and_set_bit(CONF_REQ_SENT, &chan->conf_state)) {
net/bluetooth/l2cap_core.c
4433
l2cap_build_conf_req(chan, buf, sizeof(buf)), buf);
net/bluetooth/l2cap_core.c
4434
chan->num_conf_req++;
net/bluetooth/l2cap_core.c
4439
if (test_bit(CONF_REM_CONF_PEND, &chan->conf_state) &&
net/bluetooth/l2cap_core.c
4440
test_bit(CONF_LOC_CONF_PEND, &chan->conf_state)) {
net/bluetooth/l2cap_core.c
4445
l2cap_send_efs_conf_rsp(chan, rsp, cmd->ident, flags);
net/bluetooth/l2cap_core.c
4449
l2cap_chan_unlock(chan);
net/bluetooth/l2cap_core.c
445
struct l2cap_chan *chan;
net/bluetooth/l2cap_core.c
4450
l2cap_chan_put(chan);
net/bluetooth/l2cap_core.c
4460
struct l2cap_chan *chan;
net/bluetooth/l2cap_core.c
447
chan = kzalloc_obj(*chan, GFP_ATOMIC);
net/bluetooth/l2cap_core.c
4474
chan = l2cap_get_chan_by_scid(conn, scid);
net/bluetooth/l2cap_core.c
4475
if (!chan)
net/bluetooth/l2cap_core.c
448
if (!chan)
net/bluetooth/l2cap_core.c
4480
l2cap_conf_rfc_get(chan, rsp->data, len);
net/bluetooth/l2cap_core.c
4481
clear_bit(CONF_REM_CONF_PEND, &chan->conf_state);
net/bluetooth/l2cap_core.c
4485
set_bit(CONF_REM_CONF_PEND, &chan->conf_state);
net/bluetooth/l2cap_core.c
4487
if (test_bit(CONF_LOC_CONF_PEND, &chan->conf_state)) {
net/bluetooth/l2cap_core.c
4490
len = l2cap_parse_conf_rsp(chan, rsp->data, len,
net/bluetooth/l2cap_core.c
4493
l2cap_send_disconn_req(chan, ECONNRESET);
net/bluetooth/l2cap_core.c
4497
l2cap_send_efs_conf_rsp(chan, buf, cmd->ident, 0);
net/bluetooth/l2cap_core.c
4503
if (chan->num_conf_rsp <= L2CAP_CONF_MAX_CONF_RSP) {
net/bluetooth/l2cap_core.c
4507
l2cap_send_disconn_req(chan, ECONNRESET);
net/bluetooth/l2cap_core.c
451
skb_queue_head_init(&chan->tx_q);
net/bluetooth/l2cap_core.c
4513
len = l2cap_parse_conf_rsp(chan, rsp->data, len,
net/bluetooth/l2cap_core.c
4516
l2cap_send_disconn_req(chan, ECONNRESET);
net/bluetooth/l2cap_core.c
452
skb_queue_head_init(&chan->srej_q);
net/bluetooth/l2cap_core.c
4522
chan->num_conf_req++;
net/bluetooth/l2cap_core.c
453
mutex_init(&chan->lock);
net/bluetooth/l2cap_core.c
4530
l2cap_chan_set_err(chan, ECONNRESET);
net/bluetooth/l2cap_core.c
4532
__set_chan_timer(chan, L2CAP_DISC_REJ_TIMEOUT);
net/bluetooth/l2cap_core.c
4533
l2cap_send_disconn_req(chan, ECONNRESET);
net/bluetooth/l2cap_core.c
4540
set_bit(CONF_INPUT_DONE, &chan->conf_state);
net/bluetooth/l2cap_core.c
4542
if (test_bit(CONF_OUTPUT_DONE, &chan->conf_state)) {
net/bluetooth/l2cap_core.c
4543
set_default_fcs(chan);
net/bluetooth/l2cap_core.c
4545
if (chan->mode == L2CAP_MODE_ERTM ||
net/bluetooth/l2cap_core.c
4546
chan->mode == L2CAP_MODE_STREAMING)
net/bluetooth/l2cap_core.c
4547
err = l2cap_ertm_init(chan);
net/bluetooth/l2cap_core.c
4550
l2cap_send_disconn_req(chan, -err);
net/bluetooth/l2cap_core.c
4552
l2cap_chan_ready(chan);
net/bluetooth/l2cap_core.c
4556
l2cap_chan_unlock(chan);
net/bluetooth/l2cap_core.c
4557
l2cap_chan_put(chan);
net/bluetooth/l2cap_core.c
456
atomic_set(&chan->nesting, L2CAP_NESTING_NORMAL);
net/bluetooth/l2cap_core.c
4568
struct l2cap_chan *chan;
net/bluetooth/l2cap_core.c
4578
chan = l2cap_get_chan_by_scid(conn, dcid);
net/bluetooth/l2cap_core.c
4579
if (!chan) {
net/bluetooth/l2cap_core.c
4584
rsp.dcid = cpu_to_le16(chan->scid);
net/bluetooth/l2cap_core.c
4585
rsp.scid = cpu_to_le16(chan->dcid);
net/bluetooth/l2cap_core.c
4588
chan->ops->set_shutdown(chan);
net/bluetooth/l2cap_core.c
459
chan->rx_avail = -1;
net/bluetooth/l2cap_core.c
4590
l2cap_chan_del(chan, ECONNRESET);
net/bluetooth/l2cap_core.c
4592
chan->ops->close(chan);
net/bluetooth/l2cap_core.c
4594
l2cap_chan_unlock(chan);
net/bluetooth/l2cap_core.c
4595
l2cap_chan_put(chan);
net/bluetooth/l2cap_core.c
4606
struct l2cap_chan *chan;
net/bluetooth/l2cap_core.c
4616
chan = l2cap_get_chan_by_scid(conn, scid);
net/bluetooth/l2cap_core.c
4617
if (!chan) {
net/bluetooth/l2cap_core.c
462
list_add(&chan->global_l, &chan_list);
net/bluetooth/l2cap_core.c
4621
if (chan->state != BT_DISCONN) {
net/bluetooth/l2cap_core.c
4622
l2cap_chan_unlock(chan);
net/bluetooth/l2cap_core.c
4623
l2cap_chan_put(chan);
net/bluetooth/l2cap_core.c
4627
l2cap_chan_del(chan, 0);
net/bluetooth/l2cap_core.c
4629
chan->ops->close(chan);
net/bluetooth/l2cap_core.c
4631
l2cap_chan_unlock(chan);
net/bluetooth/l2cap_core.c
4632
l2cap_chan_put(chan);
net/bluetooth/l2cap_core.c
465
INIT_DELAYED_WORK(&chan->chan_timer, l2cap_chan_timeout);
net/bluetooth/l2cap_core.c
466
INIT_DELAYED_WORK(&chan->retrans_timer, l2cap_retrans_timeout);
net/bluetooth/l2cap_core.c
467
INIT_DELAYED_WORK(&chan->monitor_timer, l2cap_monitor_timeout);
net/bluetooth/l2cap_core.c
468
INIT_DELAYED_WORK(&chan->ack_timer, l2cap_ack_timeout);
net/bluetooth/l2cap_core.c
470
chan->state = BT_OPEN;
net/bluetooth/l2cap_core.c
472
kref_init(&chan->kref);
net/bluetooth/l2cap_core.c
475
set_bit(CONF_NOT_COMPLETE, &chan->conf_state);
net/bluetooth/l2cap_core.c
477
BT_DBG("chan %p", chan);
net/bluetooth/l2cap_core.c
479
return chan;
net/bluetooth/l2cap_core.c
4799
struct l2cap_chan *chan;
net/bluetooth/l2cap_core.c
4819
chan = __l2cap_get_chan_by_ident(conn, cmd->ident);
net/bluetooth/l2cap_core.c
4820
if (!chan)
net/bluetooth/l2cap_core.c
4823
chan = l2cap_chan_hold_unless_zero(chan);
net/bluetooth/l2cap_core.c
4824
if (!chan)
net/bluetooth/l2cap_core.c
4829
l2cap_chan_lock(chan);
net/bluetooth/l2cap_core.c
4838
chan->ident = 0;
net/bluetooth/l2cap_core.c
4839
chan->dcid = dcid;
net/bluetooth/l2cap_core.c
4840
chan->omtu = mtu;
net/bluetooth/l2cap_core.c
4841
chan->remote_mps = mps;
net/bluetooth/l2cap_core.c
4842
chan->tx_credits = credits;
net/bluetooth/l2cap_core.c
4843
l2cap_chan_ready(chan);
net/bluetooth/l2cap_core.c
485
struct l2cap_chan *chan = container_of(kref, struct l2cap_chan, kref);
net/bluetooth/l2cap_core.c
4852
l2cap_chan_del(chan, ECONNREFUSED);
net/bluetooth/l2cap_core.c
4857
if (chan->sec_level < sec_level)
net/bluetooth/l2cap_core.c
4858
chan->sec_level = sec_level;
net/bluetooth/l2cap_core.c
4861
clear_bit(FLAG_LE_CONN_REQ_SENT, &chan->flags);
net/bluetooth/l2cap_core.c
4863
smp_conn_security(hcon, chan->sec_level);
net/bluetooth/l2cap_core.c
4867
l2cap_chan_del(chan, ECONNREFUSED);
net/bluetooth/l2cap_core.c
487
BT_DBG("chan %p", chan);
net/bluetooth/l2cap_core.c
4871
l2cap_chan_unlock(chan);
net/bluetooth/l2cap_core.c
4872
l2cap_chan_put(chan);
net/bluetooth/l2cap_core.c
490
list_del(&chan->global_l);
net/bluetooth/l2cap_core.c
493
if (chan->conn)
net/bluetooth/l2cap_core.c
494
l2cap_conn_put(chan->conn);
net/bluetooth/l2cap_core.c
496
kfree(chan);
net/bluetooth/l2cap_core.c
4965
struct l2cap_chan *chan, *pchan;
net/bluetooth/l2cap_core.c
4995
chan = NULL;
net/bluetooth/l2cap_core.c
5004
chan = NULL;
net/bluetooth/l2cap_core.c
5014
chan = NULL;
net/bluetooth/l2cap_core.c
5021
chan = NULL;
net/bluetooth/l2cap_core.c
5028
chan = NULL;
net/bluetooth/l2cap_core.c
5035
chan = NULL;
net/bluetooth/l2cap_core.c
5039
chan = l2cap_new_connection(conn, pchan);
net/bluetooth/l2cap_core.c
5040
if (!chan) {
net/bluetooth/l2cap_core.c
5045
bacpy(&chan->src, &conn->hcon->src);
net/bluetooth/l2cap_core.c
5046
bacpy(&chan->dst, &conn->hcon->dst);
net/bluetooth/l2cap_core.c
5047
chan->src_type = bdaddr_src_type(conn->hcon);
net/bluetooth/l2cap_core.c
5048
chan->dst_type = bdaddr_dst_type(conn->hcon);
net/bluetooth/l2cap_core.c
5049
chan->psm = psm;
net/bluetooth/l2cap_core.c
5050
chan->dcid = scid;
net/bluetooth/l2cap_core.c
5051
chan->omtu = mtu;
net/bluetooth/l2cap_core.c
5052
chan->remote_mps = mps;
net/bluetooth/l2cap_core.c
5054
l2cap_le_flowctl_init(chan, __le16_to_cpu(req->credits));
net/bluetooth/l2cap_core.c
5056
dcid = chan->scid;
net/bluetooth/l2cap_core.c
5057
credits = chan->rx_credits;
net/bluetooth/l2cap_core.c
5059
__set_chan_timer(chan, chan->ops->get_sndtimeo(chan));
net/bluetooth/l2cap_core.c
5061
chan->ident = cmd->ident;
net/bluetooth/l2cap_core.c
5063
if (test_bit(FLAG_DEFER_SETUP, &chan->flags)) {
net/bluetooth/l2cap_core.c
5064
l2cap_state_change(chan, BT_CONNECT2);
net/bluetooth/l2cap_core.c
5071
chan->ops->defer(chan);
net/bluetooth/l2cap_core.c
5073
l2cap_chan_ready(chan);
net/bluetooth/l2cap_core.c
5085
if (chan) {
net/bluetooth/l2cap_core.c
5086
rsp.mtu = cpu_to_le16(chan->imtu);
net/bluetooth/l2cap_core.c
5087
rsp.mps = cpu_to_le16(chan->mps);
net/bluetooth/l2cap_core.c
5107
struct l2cap_chan *chan;
net/bluetooth/l2cap_core.c
5119
chan = l2cap_get_chan_by_dcid(conn, cid);
net/bluetooth/l2cap_core.c
5120
if (!chan)
net/bluetooth/l2cap_core.c
5123
max_credits = LE_FLOWCTL_MAX_CREDITS - chan->tx_credits;
net/bluetooth/l2cap_core.c
5126
l2cap_send_disconn_req(chan, ECONNRESET);
net/bluetooth/l2cap_core.c
5134
chan->tx_credits += credits;
net/bluetooth/l2cap_core.c
5137
l2cap_le_flowctl_send(chan);
net/bluetooth/l2cap_core.c
5139
if (chan->tx_credits)
net/bluetooth/l2cap_core.c
5140
chan->ops->resume(chan);
net/bluetooth/l2cap_core.c
5143
l2cap_chan_unlock(chan);
net/bluetooth/l2cap_core.c
5144
l2cap_chan_put(chan);
net/bluetooth/l2cap_core.c
5155
struct l2cap_chan *chan, *pchan;
net/bluetooth/l2cap_core.c
5261
chan = l2cap_new_connection(conn, pchan);
net/bluetooth/l2cap_core.c
5262
if (!chan) {
net/bluetooth/l2cap_core.c
5267
bacpy(&chan->src, &conn->hcon->src);
net/bluetooth/l2cap_core.c
5268
bacpy(&chan->dst, &conn->hcon->dst);
net/bluetooth/l2cap_core.c
5269
chan->src_type = bdaddr_src_type(conn->hcon);
net/bluetooth/l2cap_core.c
5270
chan->dst_type = bdaddr_dst_type(conn->hcon);
net/bluetooth/l2cap_core.c
5271
chan->psm = psm;
net/bluetooth/l2cap_core.c
5272
chan->dcid = scid;
net/bluetooth/l2cap_core.c
5273
chan->omtu = mtu;
net/bluetooth/l2cap_core.c
5274
chan->remote_mps = mps;
net/bluetooth/l2cap_core.c
5276
l2cap_ecred_init(chan, __le16_to_cpu(req->credits));
net/bluetooth/l2cap_core.c
528
void l2cap_chan_set_defaults(struct l2cap_chan *chan, struct l2cap_chan *pchan)
net/bluetooth/l2cap_core.c
5280
pdu->mtu = cpu_to_le16(chan->imtu);
net/bluetooth/l2cap_core.c
5281
pdu->mps = cpu_to_le16(chan->mps);
net/bluetooth/l2cap_core.c
5282
pdu->credits = cpu_to_le16(chan->rx_credits);
net/bluetooth/l2cap_core.c
5285
pdu->dcid[i] = cpu_to_le16(chan->scid);
net/bluetooth/l2cap_core.c
5287
__set_chan_timer(chan, chan->ops->get_sndtimeo(chan));
net/bluetooth/l2cap_core.c
5289
chan->ident = cmd->ident;
net/bluetooth/l2cap_core.c
5290
chan->mode = L2CAP_MODE_EXT_FLOWCTL;
net/bluetooth/l2cap_core.c
5292
if (test_bit(FLAG_DEFER_SETUP, &chan->flags)) {
net/bluetooth/l2cap_core.c
5293
l2cap_state_change(chan, BT_CONNECT2);
net/bluetooth/l2cap_core.c
5295
chan->ops->defer(chan);
net/bluetooth/l2cap_core.c
5297
l2cap_chan_ready(chan);
net/bluetooth/l2cap_core.c
530
chan->fcs = L2CAP_FCS_CRC16;
net/bluetooth/l2cap_core.c
531
chan->max_tx = L2CAP_DEFAULT_MAX_TX;
net/bluetooth/l2cap_core.c
532
chan->tx_win = L2CAP_DEFAULT_TX_WINDOW;
net/bluetooth/l2cap_core.c
5324
struct l2cap_chan *chan, *tmp;
net/bluetooth/l2cap_core.c
533
chan->tx_win_max = L2CAP_DEFAULT_TX_WINDOW;
net/bluetooth/l2cap_core.c
534
chan->remote_max_tx = chan->max_tx;
net/bluetooth/l2cap_core.c
5341
list_for_each_entry_safe(chan, tmp, &conn->chan_l, list) {
net/bluetooth/l2cap_core.c
5345
if (chan->ident != cmd->ident ||
net/bluetooth/l2cap_core.c
5346
chan->mode != L2CAP_MODE_EXT_FLOWCTL ||
net/bluetooth/l2cap_core.c
5347
chan->state == BT_CONNECTED)
net/bluetooth/l2cap_core.c
535
chan->remote_tx_win = chan->tx_win;
net/bluetooth/l2cap_core.c
5350
l2cap_chan_lock(chan);
net/bluetooth/l2cap_core.c
5354
l2cap_chan_del(chan, ECONNREFUSED);
net/bluetooth/l2cap_core.c
5355
l2cap_chan_unlock(chan);
net/bluetooth/l2cap_core.c
536
chan->ack_win = L2CAP_DEFAULT_TX_WINDOW;
net/bluetooth/l2cap_core.c
537
chan->sec_level = BT_SECURITY_LOW;
net/bluetooth/l2cap_core.c
5374
l2cap_chan_del(chan, ECONNREFUSED);
net/bluetooth/l2cap_core.c
5375
l2cap_chan_unlock(chan);
net/bluetooth/l2cap_core.c
538
chan->flush_to = L2CAP_DEFAULT_FLUSH_TO;
net/bluetooth/l2cap_core.c
539
chan->retrans_timeout = L2CAP_DEFAULT_RETRANS_TO;
net/bluetooth/l2cap_core.c
54
static int l2cap_build_conf_req(struct l2cap_chan *chan, void *data, size_t data_size);
net/bluetooth/l2cap_core.c
540
chan->monitor_timeout = L2CAP_DEFAULT_MONITOR_TO;
net/bluetooth/l2cap_core.c
5404
l2cap_chan_del(chan, ECONNREFUSED);
net/bluetooth/l2cap_core.c
5409
if (chan->sec_level < sec_level)
net/bluetooth/l2cap_core.c
5410
chan->sec_level = sec_level;
net/bluetooth/l2cap_core.c
5413
clear_bit(FLAG_ECRED_CONN_REQ_SENT, &chan->flags);
net/bluetooth/l2cap_core.c
5415
smp_conn_security(hcon, chan->sec_level);
net/bluetooth/l2cap_core.c
5419
l2cap_chan_del(chan, ECONNREFUSED);
net/bluetooth/l2cap_core.c
5425
l2cap_chan_del(chan, ECONNREFUSED);
net/bluetooth/l2cap_core.c
5429
chan->ident = 0;
net/bluetooth/l2cap_core.c
543
BT_DBG("chan %p pchan %p", chan, pchan);
net/bluetooth/l2cap_core.c
5430
chan->dcid = dcid;
net/bluetooth/l2cap_core.c
5431
chan->omtu = mtu;
net/bluetooth/l2cap_core.c
5432
chan->remote_mps = mps;
net/bluetooth/l2cap_core.c
5433
chan->tx_credits = credits;
net/bluetooth/l2cap_core.c
5434
l2cap_chan_ready(chan);
net/bluetooth/l2cap_core.c
5438
l2cap_chan_unlock(chan);
net/bluetooth/l2cap_core.c
545
chan->chan_type = pchan->chan_type;
net/bluetooth/l2cap_core.c
5451
struct l2cap_chan *chan[L2CAP_ECRED_MAX_CID] = {};
net/bluetooth/l2cap_core.c
546
chan->imtu = pchan->imtu;
net/bluetooth/l2cap_core.c
547
chan->omtu = pchan->omtu;
net/bluetooth/l2cap_core.c
548
chan->mode = pchan->mode;
net/bluetooth/l2cap_core.c
549
chan->fcs = pchan->fcs;
net/bluetooth/l2cap_core.c
5497
chan[i] = __l2cap_get_chan_by_dcid(conn, scid);
net/bluetooth/l2cap_core.c
5498
if (!chan[i]) {
net/bluetooth/l2cap_core.c
55
static void l2cap_send_disconn_req(struct l2cap_chan *chan, int err);
net/bluetooth/l2cap_core.c
550
chan->max_tx = pchan->max_tx;
net/bluetooth/l2cap_core.c
5506
if (chan[i]->omtu > mtu) {
net/bluetooth/l2cap_core.c
5507
BT_ERR("chan %p decreased MTU %u -> %u", chan[i],
net/bluetooth/l2cap_core.c
5508
chan[i]->omtu, mtu);
net/bluetooth/l2cap_core.c
551
chan->tx_win = pchan->tx_win;
net/bluetooth/l2cap_core.c
5519
if (chan[i]->remote_mps > mps && num_scid > 1) {
net/bluetooth/l2cap_core.c
552
chan->tx_win_max = pchan->tx_win_max;
net/bluetooth/l2cap_core.c
5520
BT_ERR("chan %p decreased MPS %u -> %u", chan[i],
net/bluetooth/l2cap_core.c
5521
chan[i]->remote_mps, mps);
net/bluetooth/l2cap_core.c
5529
chan[i]->omtu = mtu;
net/bluetooth/l2cap_core.c
553
chan->sec_level = pchan->sec_level;
net/bluetooth/l2cap_core.c
5530
chan[i]->remote_mps = mps;
net/bluetooth/l2cap_core.c
554
chan->conf_state = pchan->conf_state;
net/bluetooth/l2cap_core.c
5546
struct l2cap_chan *chan, *tmp;
net/bluetooth/l2cap_core.c
555
chan->flags = pchan->flags;
net/bluetooth/l2cap_core.c
5558
list_for_each_entry(chan, &conn->chan_l, list) {
net/bluetooth/l2cap_core.c
5559
if (chan->ident == cmd->ident)
net/bluetooth/l2cap_core.c
556
chan->tx_credits = pchan->tx_credits;
net/bluetooth/l2cap_core.c
5560
chan->ident = 0;
net/bluetooth/l2cap_core.c
5565
list_for_each_entry_safe(chan, tmp, &conn->chan_l, list) {
net/bluetooth/l2cap_core.c
5566
if (chan->ident != cmd->ident)
net/bluetooth/l2cap_core.c
5569
if (!l2cap_chan_hold_unless_zero(chan))
net/bluetooth/l2cap_core.c
557
chan->rx_credits = pchan->rx_credits;
net/bluetooth/l2cap_core.c
5571
l2cap_chan_lock(chan);
net/bluetooth/l2cap_core.c
5573
l2cap_chan_del(chan, ECONNRESET);
net/bluetooth/l2cap_core.c
5575
l2cap_chan_unlock(chan);
net/bluetooth/l2cap_core.c
5576
l2cap_chan_put(chan);
net/bluetooth/l2cap_core.c
5587
struct l2cap_chan *chan;
net/bluetooth/l2cap_core.c
559
if (chan->chan_type == L2CAP_CHAN_FIXED) {
net/bluetooth/l2cap_core.c
5592
chan = __l2cap_get_chan_by_ident(conn, cmd->ident);
net/bluetooth/l2cap_core.c
5593
if (!chan)
net/bluetooth/l2cap_core.c
5596
chan = l2cap_chan_hold_unless_zero(chan);
net/bluetooth/l2cap_core.c
5597
if (!chan)
net/bluetooth/l2cap_core.c
560
chan->scid = pchan->scid;
net/bluetooth/l2cap_core.c
5600
l2cap_chan_lock(chan);
net/bluetooth/l2cap_core.c
5601
l2cap_chan_del(chan, ECONNREFUSED);
net/bluetooth/l2cap_core.c
5602
l2cap_chan_unlock(chan);
net/bluetooth/l2cap_core.c
5603
l2cap_chan_put(chan);
net/bluetooth/l2cap_core.c
561
chan->dcid = pchan->scid;
net/bluetooth/l2cap_core.c
567
chan->conf_state = 0;
net/bluetooth/l2cap_core.c
568
set_bit(CONF_NOT_COMPLETE, &chan->conf_state);
net/bluetooth/l2cap_core.c
57
static void l2cap_tx(struct l2cap_chan *chan, struct l2cap_ctrl *control,
net/bluetooth/l2cap_core.c
570
set_bit(FLAG_FORCE_ACTIVE, &chan->flags);
net/bluetooth/l2cap_core.c
574
static __u16 l2cap_le_rx_credits(struct l2cap_chan *chan)
net/bluetooth/l2cap_core.c
576
size_t sdu_len = chan->sdu ? chan->sdu->len : 0;
net/bluetooth/l2cap_core.c
578
if (chan->mps == 0)
net/bluetooth/l2cap_core.c
5817
static int l2cap_check_fcs(struct l2cap_chan *chan, struct sk_buff *skb)
net/bluetooth/l2cap_core.c
5822
if (test_bit(FLAG_EXT_CTRL, &chan->flags))
net/bluetooth/l2cap_core.c
5827
if (chan->fcs == L2CAP_FCS_CRC16) {
net/bluetooth/l2cap_core.c
5838
static void l2cap_send_i_or_rr_or_rnr(struct l2cap_chan *chan)
net/bluetooth/l2cap_core.c
584
if (chan->rx_avail == -1)
net/bluetooth/l2cap_core.c
5842
BT_DBG("chan %p", chan);
net/bluetooth/l2cap_core.c
5847
control.reqseq = chan->buffer_seq;
net/bluetooth/l2cap_core.c
5848
set_bit(CONN_SEND_FBIT, &chan->conn_state);
net/bluetooth/l2cap_core.c
585
return (chan->imtu / chan->mps) + 1;
net/bluetooth/l2cap_core.c
5850
if (test_bit(CONN_LOCAL_BUSY, &chan->conn_state)) {
net/bluetooth/l2cap_core.c
5852
l2cap_send_sframe(chan, &control);
net/bluetooth/l2cap_core.c
5855
if (test_and_clear_bit(CONN_REMOTE_BUSY, &chan->conn_state) &&
net/bluetooth/l2cap_core.c
5856
chan->unacked_frames > 0)
net/bluetooth/l2cap_core.c
5857
__set_retrans_timer(chan);
net/bluetooth/l2cap_core.c
5860
l2cap_ertm_send(chan);
net/bluetooth/l2cap_core.c
5862
if (!test_bit(CONN_LOCAL_BUSY, &chan->conn_state) &&
net/bluetooth/l2cap_core.c
5863
test_bit(CONN_SEND_FBIT, &chan->conn_state)) {
net/bluetooth/l2cap_core.c
5868
l2cap_send_sframe(chan, &control);
net/bluetooth/l2cap_core.c
5891
static int l2cap_reassemble_sdu(struct l2cap_chan *chan, struct sk_buff *skb,
net/bluetooth/l2cap_core.c
5898
if (chan->sdu)
net/bluetooth/l2cap_core.c
590
if (chan->rx_avail <= sdu_len)
net/bluetooth/l2cap_core.c
5901
err = chan->ops->recv(chan, skb);
net/bluetooth/l2cap_core.c
5905
if (chan->sdu)
net/bluetooth/l2cap_core.c
5911
chan->sdu_len = get_unaligned_le16(skb->data);
net/bluetooth/l2cap_core.c
5914
if (chan->sdu_len > chan->imtu) {
net/bluetooth/l2cap_core.c
5919
if (skb->len >= chan->sdu_len)
net/bluetooth/l2cap_core.c
5922
chan->sdu = skb;
net/bluetooth/l2cap_core.c
5923
chan->sdu_last_frag = skb;
net/bluetooth/l2cap_core.c
593
return DIV_ROUND_UP(chan->rx_avail - sdu_len, chan->mps);
net/bluetooth/l2cap_core.c
5930
if (!chan->sdu)
net/bluetooth/l2cap_core.c
5933
append_skb_frag(chan->sdu, skb,
net/bluetooth/l2cap_core.c
5934
&chan->sdu_last_frag);
net/bluetooth/l2cap_core.c
5937
if (chan->sdu->len >= chan->sdu_len)
net/bluetooth/l2cap_core.c
5944
if (!chan->sdu)
net/bluetooth/l2cap_core.c
5947
append_skb_frag(chan->sdu, skb,
net/bluetooth/l2cap_core.c
5948
&chan->sdu_last_frag);
net/bluetooth/l2cap_core.c
5951
if (chan->sdu->len != chan->sdu_len)
net/bluetooth/l2cap_core.c
5954
err = chan->ops->recv(chan, chan->sdu);
net/bluetooth/l2cap_core.c
5958
chan->sdu = NULL;
net/bluetooth/l2cap_core.c
5959
chan->sdu_last_frag = NULL;
net/bluetooth/l2cap_core.c
596
static void l2cap_le_flowctl_init(struct l2cap_chan *chan, u16 tx_credits)
net/bluetooth/l2cap_core.c
5960
chan->sdu_len = 0;
net/bluetooth/l2cap_core.c
5967
kfree_skb(chan->sdu);
net/bluetooth/l2cap_core.c
5968
chan->sdu = NULL;
net/bluetooth/l2cap_core.c
5969
chan->sdu_last_frag = NULL;
net/bluetooth/l2cap_core.c
5970
chan->sdu_len = 0;
net/bluetooth/l2cap_core.c
5976
static int l2cap_resegment(struct l2cap_chan *chan)
net/bluetooth/l2cap_core.c
598
chan->sdu = NULL;
net/bluetooth/l2cap_core.c
5982
void l2cap_chan_busy(struct l2cap_chan *chan, int busy)
net/bluetooth/l2cap_core.c
5986
if (chan->mode != L2CAP_MODE_ERTM)
net/bluetooth/l2cap_core.c
599
chan->sdu_last_frag = NULL;
net/bluetooth/l2cap_core.c
5990
l2cap_tx(chan, NULL, NULL, event);
net/bluetooth/l2cap_core.c
5993
static int l2cap_rx_queued_iframes(struct l2cap_chan *chan)
net/bluetooth/l2cap_core.c
600
chan->sdu_len = 0;
net/bluetooth/l2cap_core.c
6000
BT_DBG("chan %p", chan);
net/bluetooth/l2cap_core.c
6002
while (!test_bit(CONN_LOCAL_BUSY, &chan->conn_state)) {
net/bluetooth/l2cap_core.c
6005
chan->buffer_seq, skb_queue_len(&chan->srej_q));
net/bluetooth/l2cap_core.c
6007
skb = l2cap_ertm_seq_in_queue(&chan->srej_q, chan->buffer_seq);
net/bluetooth/l2cap_core.c
601
chan->tx_credits = tx_credits;
net/bluetooth/l2cap_core.c
6012
skb_unlink(skb, &chan->srej_q);
net/bluetooth/l2cap_core.c
6013
chan->buffer_seq = __next_seq(chan, chan->buffer_seq);
net/bluetooth/l2cap_core.c
6014
err = l2cap_reassemble_sdu(chan, skb, &bt_cb(skb)->l2cap);
net/bluetooth/l2cap_core.c
6019
if (skb_queue_empty(&chan->srej_q)) {
net/bluetooth/l2cap_core.c
6020
chan->rx_state = L2CAP_RX_STATE_RECV;
net/bluetooth/l2cap_core.c
6021
l2cap_send_ack(chan);
net/bluetooth/l2cap_core.c
6027
static void l2cap_handle_srej(struct l2cap_chan *chan,
net/bluetooth/l2cap_core.c
603
chan->mps = min_t(u16, chan->imtu, chan->conn->mtu - L2CAP_HDR_SIZE);
net/bluetooth/l2cap_core.c
6032
BT_DBG("chan %p, control %p", chan, control);
net/bluetooth/l2cap_core.c
6034
if (control->reqseq == chan->next_tx_seq) {
net/bluetooth/l2cap_core.c
6036
l2cap_send_disconn_req(chan, ECONNRESET);
net/bluetooth/l2cap_core.c
604
chan->rx_credits = l2cap_le_rx_credits(chan);
net/bluetooth/l2cap_core.c
6040
skb = l2cap_ertm_seq_in_queue(&chan->tx_q, control->reqseq);
net/bluetooth/l2cap_core.c
6048
if (chan->max_tx != 0 && bt_cb(skb)->l2cap.retries >= chan->max_tx) {
net/bluetooth/l2cap_core.c
6049
BT_DBG("Retry limit exceeded (%d)", chan->max_tx);
net/bluetooth/l2cap_core.c
6050
l2cap_send_disconn_req(chan, ECONNRESET);
net/bluetooth/l2cap_core.c
6054
clear_bit(CONN_REMOTE_BUSY, &chan->conn_state);
net/bluetooth/l2cap_core.c
6057
l2cap_pass_to_tx(chan, control);
net/bluetooth/l2cap_core.c
6059
set_bit(CONN_SEND_FBIT, &chan->conn_state);
net/bluetooth/l2cap_core.c
606
skb_queue_head_init(&chan->tx_q);
net/bluetooth/l2cap_core.c
6060
l2cap_retransmit(chan, control);
net/bluetooth/l2cap_core.c
6061
l2cap_ertm_send(chan);
net/bluetooth/l2cap_core.c
6063
if (chan->tx_state == L2CAP_TX_STATE_WAIT_F) {
net/bluetooth/l2cap_core.c
6064
set_bit(CONN_SREJ_ACT, &chan->conn_state);
net/bluetooth/l2cap_core.c
6065
chan->srej_save_reqseq = control->reqseq;
net/bluetooth/l2cap_core.c
6068
l2cap_pass_to_tx_fbit(chan, control);
net/bluetooth/l2cap_core.c
6071
if (chan->srej_save_reqseq != control->reqseq ||
net/bluetooth/l2cap_core.c
6073
&chan->conn_state))
net/bluetooth/l2cap_core.c
6074
l2cap_retransmit(chan, control);
net/bluetooth/l2cap_core.c
6076
l2cap_retransmit(chan, control);
net/bluetooth/l2cap_core.c
6077
if (chan->tx_state == L2CAP_TX_STATE_WAIT_F) {
net/bluetooth/l2cap_core.c
6078
set_bit(CONN_SREJ_ACT, &chan->conn_state);
net/bluetooth/l2cap_core.c
6079
chan->srej_save_reqseq = control->reqseq;
net/bluetooth/l2cap_core.c
6085
static void l2cap_handle_rej(struct l2cap_chan *chan,
net/bluetooth/l2cap_core.c
609
static void l2cap_ecred_init(struct l2cap_chan *chan, u16 tx_credits)
net/bluetooth/l2cap_core.c
6090
BT_DBG("chan %p, control %p", chan, control);
net/bluetooth/l2cap_core.c
6092
if (control->reqseq == chan->next_tx_seq) {
net/bluetooth/l2cap_core.c
6094
l2cap_send_disconn_req(chan, ECONNRESET);
net/bluetooth/l2cap_core.c
6098
skb = l2cap_ertm_seq_in_queue(&chan->tx_q, control->reqseq);
net/bluetooth/l2cap_core.c
6100
if (chan->max_tx && skb &&
net/bluetooth/l2cap_core.c
6101
bt_cb(skb)->l2cap.retries >= chan->max_tx) {
net/bluetooth/l2cap_core.c
6102
BT_DBG("Retry limit exceeded (%d)", chan->max_tx);
net/bluetooth/l2cap_core.c
6103
l2cap_send_disconn_req(chan, ECONNRESET);
net/bluetooth/l2cap_core.c
6107
clear_bit(CONN_REMOTE_BUSY, &chan->conn_state);
net/bluetooth/l2cap_core.c
6109
l2cap_pass_to_tx(chan, control);
net/bluetooth/l2cap_core.c
611
l2cap_le_flowctl_init(chan, tx_credits);
net/bluetooth/l2cap_core.c
6112
if (!test_and_clear_bit(CONN_REJ_ACT, &chan->conn_state))
net/bluetooth/l2cap_core.c
6113
l2cap_retransmit_all(chan, control);
net/bluetooth/l2cap_core.c
6115
l2cap_retransmit_all(chan, control);
net/bluetooth/l2cap_core.c
6116
l2cap_ertm_send(chan);
net/bluetooth/l2cap_core.c
6117
if (chan->tx_state == L2CAP_TX_STATE_WAIT_F)
net/bluetooth/l2cap_core.c
6118
set_bit(CONN_REJ_ACT, &chan->conn_state);
net/bluetooth/l2cap_core.c
6122
static u8 l2cap_classify_txseq(struct l2cap_chan *chan, u16 txseq)
net/bluetooth/l2cap_core.c
6124
BT_DBG("chan %p, txseq %d", chan, txseq);
net/bluetooth/l2cap_core.c
6126
BT_DBG("last_acked_seq %d, expected_tx_seq %d", chan->last_acked_seq,
net/bluetooth/l2cap_core.c
6127
chan->expected_tx_seq);
net/bluetooth/l2cap_core.c
6129
if (chan->rx_state == L2CAP_RX_STATE_SREJ_SENT) {
net/bluetooth/l2cap_core.c
6130
if (__seq_offset(chan, txseq, chan->last_acked_seq) >=
net/bluetooth/l2cap_core.c
6131
chan->tx_win) {
net/bluetooth/l2cap_core.c
6135
if (chan->tx_win <= ((chan->tx_win_max + 1) >> 1)) {
net/bluetooth/l2cap_core.c
614
if (chan->mps < L2CAP_ECRED_MIN_MPS) {
net/bluetooth/l2cap_core.c
6144
if (chan->srej_list.head == txseq) {
net/bluetooth/l2cap_core.c
6149
if (l2cap_ertm_seq_in_queue(&chan->srej_q, txseq)) {
net/bluetooth/l2cap_core.c
615
chan->mps = L2CAP_ECRED_MIN_MPS;
net/bluetooth/l2cap_core.c
6154
if (l2cap_seq_list_contains(&chan->srej_list, txseq)) {
net/bluetooth/l2cap_core.c
616
chan->rx_credits = l2cap_le_rx_credits(chan);
net/bluetooth/l2cap_core.c
6160
if (chan->expected_tx_seq == txseq) {
net/bluetooth/l2cap_core.c
6161
if (__seq_offset(chan, txseq, chan->last_acked_seq) >=
net/bluetooth/l2cap_core.c
6162
chan->tx_win) {
net/bluetooth/l2cap_core.c
6171
if (__seq_offset(chan, txseq, chan->last_acked_seq) <
net/bluetooth/l2cap_core.c
6172
__seq_offset(chan, chan->expected_tx_seq, chan->last_acked_seq)) {
net/bluetooth/l2cap_core.c
6177
if (__seq_offset(chan, txseq, chan->last_acked_seq) >= chan->tx_win) {
net/bluetooth/l2cap_core.c
6195
if (chan->tx_win <= ((chan->tx_win_max + 1) >> 1)) {
net/bluetooth/l2cap_core.c
620
void __l2cap_chan_add(struct l2cap_conn *conn, struct l2cap_chan *chan)
net/bluetooth/l2cap_core.c
6208
static int l2cap_rx_state_recv(struct l2cap_chan *chan,
net/bluetooth/l2cap_core.c
6216
BT_DBG("chan %p, control %p, skb %p, event %d", chan, control, skb,
net/bluetooth/l2cap_core.c
6221
switch (l2cap_classify_txseq(chan, control->txseq)) {
net/bluetooth/l2cap_core.c
6223
l2cap_pass_to_tx(chan, control);
net/bluetooth/l2cap_core.c
6225
if (test_bit(CONN_LOCAL_BUSY, &chan->conn_state)) {
net/bluetooth/l2cap_core.c
623
__le16_to_cpu(chan->psm), chan->dcid);
net/bluetooth/l2cap_core.c
6231
chan->expected_tx_seq = __next_seq(chan,
net/bluetooth/l2cap_core.c
6234
chan->buffer_seq = chan->expected_tx_seq;
net/bluetooth/l2cap_core.c
6254
err = l2cap_reassemble_sdu(chan, skb, control);
net/bluetooth/l2cap_core.c
6260
&chan->conn_state)) {
net/bluetooth/l2cap_core.c
6262
l2cap_retransmit_all(chan, &local_control);
net/bluetooth/l2cap_core.c
6263
l2cap_ertm_send(chan);
net/bluetooth/l2cap_core.c
6267
if (!test_bit(CONN_LOCAL_BUSY, &chan->conn_state))
net/bluetooth/l2cap_core.c
6268
l2cap_send_ack(chan);
net/bluetooth/l2cap_core.c
627
chan->conn = l2cap_conn_get(conn);
net/bluetooth/l2cap_core.c
6271
l2cap_pass_to_tx(chan, control);
net/bluetooth/l2cap_core.c
6277
if (test_bit(CONN_LOCAL_BUSY, &chan->conn_state)) {
net/bluetooth/l2cap_core.c
6287
skb_queue_tail(&chan->srej_q, skb);
net/bluetooth/l2cap_core.c
629
switch (chan->chan_type) {
net/bluetooth/l2cap_core.c
6290
skb_queue_len(&chan->srej_q));
net/bluetooth/l2cap_core.c
6292
clear_bit(CONN_SREJ_ACT, &chan->conn_state);
net/bluetooth/l2cap_core.c
6293
l2cap_seq_list_clear(&chan->srej_list);
net/bluetooth/l2cap_core.c
6294
l2cap_send_srej(chan, control->txseq);
net/bluetooth/l2cap_core.c
6296
chan->rx_state = L2CAP_RX_STATE_SREJ_SENT;
net/bluetooth/l2cap_core.c
6299
l2cap_pass_to_tx(chan, control);
net/bluetooth/l2cap_core.c
6305
l2cap_send_disconn_req(chan, ECONNRESET);
net/bluetooth/l2cap_core.c
6310
l2cap_pass_to_tx(chan, control);
net/bluetooth/l2cap_core.c
6312
clear_bit(CONN_REMOTE_BUSY, &chan->conn_state);
net/bluetooth/l2cap_core.c
6315
&chan->conn_state)) {
net/bluetooth/l2cap_core.c
6317
l2cap_retransmit_all(chan, control);
net/bluetooth/l2cap_core.c
632
chan->scid = l2cap_alloc_cid(conn);
net/bluetooth/l2cap_core.c
6320
l2cap_ertm_send(chan);
net/bluetooth/l2cap_core.c
6322
l2cap_send_i_or_rr_or_rnr(chan);
net/bluetooth/l2cap_core.c
6325
&chan->conn_state) &&
net/bluetooth/l2cap_core.c
6326
chan->unacked_frames)
net/bluetooth/l2cap_core.c
6327
__set_retrans_timer(chan);
net/bluetooth/l2cap_core.c
6329
l2cap_ertm_send(chan);
net/bluetooth/l2cap_core.c
6333
set_bit(CONN_REMOTE_BUSY, &chan->conn_state);
net/bluetooth/l2cap_core.c
6334
l2cap_pass_to_tx(chan, control);
net/bluetooth/l2cap_core.c
6336
set_bit(CONN_SEND_FBIT, &chan->conn_state);
net/bluetooth/l2cap_core.c
6337
l2cap_send_rr_or_rnr(chan, 0);
net/bluetooth/l2cap_core.c
6339
__clear_retrans_timer(chan);
net/bluetooth/l2cap_core.c
634
chan->omtu = L2CAP_DEFAULT_MTU;
net/bluetooth/l2cap_core.c
6340
l2cap_seq_list_clear(&chan->retrans_list);
net/bluetooth/l2cap_core.c
6343
l2cap_handle_rej(chan, control);
net/bluetooth/l2cap_core.c
6346
l2cap_handle_srej(chan, control);
net/bluetooth/l2cap_core.c
6360
static int l2cap_rx_state_srej_sent(struct l2cap_chan *chan,
net/bluetooth/l2cap_core.c
6368
BT_DBG("chan %p, control %p, skb %p, event %d", chan, control, skb,
net/bluetooth/l2cap_core.c
6373
switch (l2cap_classify_txseq(chan, txseq)) {
net/bluetooth/l2cap_core.c
6376
l2cap_pass_to_tx(chan, control);
net/bluetooth/l2cap_core.c
6377
skb_queue_tail(&chan->srej_q, skb);
net/bluetooth/l2cap_core.c
6380
skb_queue_len(&chan->srej_q));
net/bluetooth/l2cap_core.c
6382
chan->expected_tx_seq = __next_seq(chan, txseq);
net/bluetooth/l2cap_core.c
6385
l2cap_seq_list_pop(&chan->srej_list);
net/bluetooth/l2cap_core.c
6387
l2cap_pass_to_tx(chan, control);
net/bluetooth/l2cap_core.c
6388
skb_queue_tail(&chan->srej_q, skb);
net/bluetooth/l2cap_core.c
639
chan->scid = L2CAP_CID_CONN_LESS;
net/bluetooth/l2cap_core.c
6391
skb_queue_len(&chan->srej_q));
net/bluetooth/l2cap_core.c
6393
err = l2cap_rx_queued_iframes(chan);
net/bluetooth/l2cap_core.c
640
chan->dcid = L2CAP_CID_CONN_LESS;
net/bluetooth/l2cap_core.c
6403
skb_queue_tail(&chan->srej_q, skb);
net/bluetooth/l2cap_core.c
6406
skb_queue_len(&chan->srej_q));
net/bluetooth/l2cap_core.c
6408
l2cap_pass_to_tx(chan, control);
net/bluetooth/l2cap_core.c
6409
l2cap_send_srej(chan, control->txseq);
net/bluetooth/l2cap_core.c
641
chan->omtu = L2CAP_DEFAULT_MTU;
net/bluetooth/l2cap_core.c
6417
skb_queue_tail(&chan->srej_q, skb);
net/bluetooth/l2cap_core.c
6420
skb_queue_len(&chan->srej_q));
net/bluetooth/l2cap_core.c
6422
l2cap_pass_to_tx(chan, control);
net/bluetooth/l2cap_core.c
6423
l2cap_send_srej_list(chan, control->txseq);
net/bluetooth/l2cap_core.c
6427
l2cap_pass_to_tx(chan, control);
net/bluetooth/l2cap_core.c
6438
l2cap_send_disconn_req(chan, ECONNRESET);
net/bluetooth/l2cap_core.c
6443
l2cap_pass_to_tx(chan, control);
net/bluetooth/l2cap_core.c
6445
clear_bit(CONN_REMOTE_BUSY, &chan->conn_state);
net/bluetooth/l2cap_core.c
6448
&chan->conn_state)) {
net/bluetooth/l2cap_core.c
6450
l2cap_retransmit_all(chan, control);
net/bluetooth/l2cap_core.c
6453
l2cap_ertm_send(chan);
net/bluetooth/l2cap_core.c
6456
&chan->conn_state) &&
net/bluetooth/l2cap_core.c
6457
chan->unacked_frames) {
net/bluetooth/l2cap_core.c
6458
__set_retrans_timer(chan);
net/bluetooth/l2cap_core.c
6461
set_bit(CONN_SEND_FBIT, &chan->conn_state);
net/bluetooth/l2cap_core.c
6462
l2cap_send_srej_tail(chan);
net/bluetooth/l2cap_core.c
6465
&chan->conn_state) &&
net/bluetooth/l2cap_core.c
6466
chan->unacked_frames)
net/bluetooth/l2cap_core.c
6467
__set_retrans_timer(chan);
net/bluetooth/l2cap_core.c
6469
l2cap_send_ack(chan);
net/bluetooth/l2cap_core.c
6473
set_bit(CONN_REMOTE_BUSY, &chan->conn_state);
net/bluetooth/l2cap_core.c
6474
l2cap_pass_to_tx(chan, control);
net/bluetooth/l2cap_core.c
6476
l2cap_send_srej_tail(chan);
net/bluetooth/l2cap_core.c
6482
rr_control.reqseq = chan->buffer_seq;
net/bluetooth/l2cap_core.c
6483
l2cap_send_sframe(chan, &rr_control);
net/bluetooth/l2cap_core.c
6488
l2cap_handle_rej(chan, control);
net/bluetooth/l2cap_core.c
6491
l2cap_handle_srej(chan, control);
net/bluetooth/l2cap_core.c
650
chan->scid = L2CAP_CID_SIGNALING;
net/bluetooth/l2cap_core.c
6503
static int l2cap_finish_move(struct l2cap_chan *chan)
net/bluetooth/l2cap_core.c
6505
BT_DBG("chan %p", chan);
net/bluetooth/l2cap_core.c
6507
chan->rx_state = L2CAP_RX_STATE_RECV;
net/bluetooth/l2cap_core.c
6508
chan->conn->mtu = chan->conn->hcon->mtu;
net/bluetooth/l2cap_core.c
651
chan->dcid = L2CAP_CID_SIGNALING;
net/bluetooth/l2cap_core.c
6510
return l2cap_resegment(chan);
net/bluetooth/l2cap_core.c
6513
static int l2cap_rx_state_wait_p(struct l2cap_chan *chan,
net/bluetooth/l2cap_core.c
6519
BT_DBG("chan %p, control %p, skb %p, event %d", chan, control, skb,
net/bluetooth/l2cap_core.c
652
chan->omtu = L2CAP_DEFAULT_MTU;
net/bluetooth/l2cap_core.c
6525
l2cap_process_reqseq(chan, control->reqseq);
net/bluetooth/l2cap_core.c
6527
if (!skb_queue_empty(&chan->tx_q))
net/bluetooth/l2cap_core.c
6528
chan->tx_send_head = skb_peek(&chan->tx_q);
net/bluetooth/l2cap_core.c
6530
chan->tx_send_head = NULL;
net/bluetooth/l2cap_core.c
6535
chan->next_tx_seq = control->reqseq;
net/bluetooth/l2cap_core.c
6536
chan->unacked_frames = 0;
net/bluetooth/l2cap_core.c
6538
err = l2cap_finish_move(chan);
net/bluetooth/l2cap_core.c
6542
set_bit(CONN_SEND_FBIT, &chan->conn_state);
net/bluetooth/l2cap_core.c
6543
l2cap_send_i_or_rr_or_rnr(chan);
net/bluetooth/l2cap_core.c
6548
return l2cap_rx_state_recv(chan, control, NULL, event);
net/bluetooth/l2cap_core.c
655
chan->local_id = L2CAP_BESTEFFORT_ID;
net/bluetooth/l2cap_core.c
6551
static int l2cap_rx_state_wait_f(struct l2cap_chan *chan,
net/bluetooth/l2cap_core.c
656
chan->local_stype = L2CAP_SERV_BESTEFFORT;
net/bluetooth/l2cap_core.c
6560
clear_bit(CONN_REMOTE_BUSY, &chan->conn_state);
net/bluetooth/l2cap_core.c
6562
chan->rx_state = L2CAP_RX_STATE_RECV;
net/bluetooth/l2cap_core.c
6563
l2cap_process_reqseq(chan, control->reqseq);
net/bluetooth/l2cap_core.c
6565
if (!skb_queue_empty(&chan->tx_q))
net/bluetooth/l2cap_core.c
6566
chan->tx_send_head = skb_peek(&chan->tx_q);
net/bluetooth/l2cap_core.c
6568
chan->tx_send_head = NULL;
net/bluetooth/l2cap_core.c
657
chan->local_msdu = L2CAP_DEFAULT_MAX_SDU_SIZE;
net/bluetooth/l2cap_core.c
6573
chan->next_tx_seq = control->reqseq;
net/bluetooth/l2cap_core.c
6574
chan->unacked_frames = 0;
net/bluetooth/l2cap_core.c
6575
chan->conn->mtu = chan->conn->hcon->mtu;
net/bluetooth/l2cap_core.c
6577
err = l2cap_resegment(chan);
net/bluetooth/l2cap_core.c
658
chan->local_sdu_itime = L2CAP_DEFAULT_SDU_ITIME;
net/bluetooth/l2cap_core.c
6580
err = l2cap_rx_state_recv(chan, control, skb, event);
net/bluetooth/l2cap_core.c
6585
static bool __valid_reqseq(struct l2cap_chan *chan, u16 reqseq)
net/bluetooth/l2cap_core.c
659
chan->local_acc_lat = L2CAP_DEFAULT_ACC_LAT;
net/bluetooth/l2cap_core.c
6590
unacked = __seq_offset(chan, chan->next_tx_seq, chan->expected_ack_seq);
net/bluetooth/l2cap_core.c
6591
return __seq_offset(chan, chan->next_tx_seq, reqseq) <= unacked;
net/bluetooth/l2cap_core.c
6594
static int l2cap_rx(struct l2cap_chan *chan, struct l2cap_ctrl *control,
net/bluetooth/l2cap_core.c
6599
BT_DBG("chan %p, control %p, skb %p, event %d, state %d", chan,
net/bluetooth/l2cap_core.c
660
chan->local_flush_to = L2CAP_EFS_DEFAULT_FLUSH_TO;
net/bluetooth/l2cap_core.c
6600
control, skb, event, chan->rx_state);
net/bluetooth/l2cap_core.c
6602
if (__valid_reqseq(chan, control->reqseq)) {
net/bluetooth/l2cap_core.c
6603
switch (chan->rx_state) {
net/bluetooth/l2cap_core.c
6605
err = l2cap_rx_state_recv(chan, control, skb, event);
net/bluetooth/l2cap_core.c
6608
err = l2cap_rx_state_srej_sent(chan, control, skb,
net/bluetooth/l2cap_core.c
6612
err = l2cap_rx_state_wait_p(chan, control, skb, event);
net/bluetooth/l2cap_core.c
6615
err = l2cap_rx_state_wait_f(chan, control, skb, event);
net/bluetooth/l2cap_core.c
662
l2cap_chan_hold(chan);
net/bluetooth/l2cap_core.c
6623
control->reqseq, chan->next_tx_seq,
net/bluetooth/l2cap_core.c
6624
chan->expected_ack_seq);
net/bluetooth/l2cap_core.c
6625
l2cap_send_disconn_req(chan, ECONNRESET);
net/bluetooth/l2cap_core.c
6631
static int l2cap_stream_rx(struct l2cap_chan *chan, struct l2cap_ctrl *control,
net/bluetooth/l2cap_core.c
665
if (chan->chan_type != L2CAP_CHAN_FIXED ||
net/bluetooth/l2cap_core.c
6651
BT_DBG("chan %p, control %p, skb %p, state %d", chan, control, skb,
net/bluetooth/l2cap_core.c
6652
chan->rx_state);
net/bluetooth/l2cap_core.c
6654
if (l2cap_classify_txseq(chan, txseq) == L2CAP_TXSEQ_EXPECTED) {
net/bluetooth/l2cap_core.c
6655
l2cap_pass_to_tx(chan, control);
net/bluetooth/l2cap_core.c
6657
BT_DBG("buffer_seq %u->%u", chan->buffer_seq,
net/bluetooth/l2cap_core.c
6658
__next_seq(chan, chan->buffer_seq));
net/bluetooth/l2cap_core.c
666
test_bit(FLAG_HOLD_HCI_CONN, &chan->flags))
net/bluetooth/l2cap_core.c
6660
chan->buffer_seq = __next_seq(chan, chan->buffer_seq);
net/bluetooth/l2cap_core.c
6662
l2cap_reassemble_sdu(chan, skb, control);
net/bluetooth/l2cap_core.c
6664
if (chan->sdu) {
net/bluetooth/l2cap_core.c
6665
kfree_skb(chan->sdu);
net/bluetooth/l2cap_core.c
6666
chan->sdu = NULL;
net/bluetooth/l2cap_core.c
6668
chan->sdu_last_frag = NULL;
net/bluetooth/l2cap_core.c
6669
chan->sdu_len = 0;
net/bluetooth/l2cap_core.c
6677
chan->last_acked_seq = txseq;
net/bluetooth/l2cap_core.c
6678
chan->expected_tx_seq = __next_seq(chan, txseq);
net/bluetooth/l2cap_core.c
6683
static int l2cap_data_rcv(struct l2cap_chan *chan, struct sk_buff *skb)
net/bluetooth/l2cap_core.c
6689
__unpack_control(chan, skb);
net/bluetooth/l2cap_core.c
6698
if (l2cap_check_fcs(chan, skb))
net/bluetooth/l2cap_core.c
670
list_add_tail(&chan->list, &conn->chan_l);
net/bluetooth/l2cap_core.c
6704
if (chan->fcs == L2CAP_FCS_CRC16)
net/bluetooth/l2cap_core.c
6707
if (len > chan->mps) {
net/bluetooth/l2cap_core.c
6708
l2cap_send_disconn_req(chan, ECONNRESET);
net/bluetooth/l2cap_core.c
6712
if (chan->ops->filter) {
net/bluetooth/l2cap_core.c
6713
if (chan->ops->filter(chan, skb))
net/bluetooth/l2cap_core.c
6727
if (control->final && chan->tx_state != L2CAP_TX_STATE_WAIT_F)
net/bluetooth/l2cap_core.c
673
void l2cap_chan_add(struct l2cap_conn *conn, struct l2cap_chan *chan)
net/bluetooth/l2cap_core.c
6730
if (chan->mode != L2CAP_MODE_STREAMING) {
net/bluetooth/l2cap_core.c
6732
err = l2cap_rx(chan, control, skb, event);
net/bluetooth/l2cap_core.c
6734
err = l2cap_stream_rx(chan, control, skb);
net/bluetooth/l2cap_core.c
6738
l2cap_send_disconn_req(chan, ECONNRESET);
net/bluetooth/l2cap_core.c
6746
if (chan->mode == L2CAP_MODE_STREAMING)
net/bluetooth/l2cap_core.c
6755
l2cap_send_disconn_req(chan, ECONNRESET);
net/bluetooth/l2cap_core.c
676
__l2cap_chan_add(conn, chan);
net/bluetooth/l2cap_core.c
6761
chan->tx_state != L2CAP_TX_STATE_WAIT_F))
net/bluetooth/l2cap_core.c
6765
if (l2cap_rx(chan, control, skb, event))
net/bluetooth/l2cap_core.c
6766
l2cap_send_disconn_req(chan, ECONNRESET);
net/bluetooth/l2cap_core.c
6776
static void l2cap_chan_le_send_credits(struct l2cap_chan *chan)
net/bluetooth/l2cap_core.c
6778
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
6780
u16 return_credits = l2cap_le_rx_credits(chan);
net/bluetooth/l2cap_core.c
6783
if (chan->mode != L2CAP_MODE_LE_FLOWCTL &&
net/bluetooth/l2cap_core.c
6784
chan->mode != L2CAP_MODE_EXT_FLOWCTL)
net/bluetooth/l2cap_core.c
6787
if (chan->rx_credits >= return_credits)
net/bluetooth/l2cap_core.c
6790
return_credits -= chan->rx_credits;
net/bluetooth/l2cap_core.c
6792
BT_DBG("chan %p returning %u credits to sender", chan, return_credits);
net/bluetooth/l2cap_core.c
6794
chan->rx_credits += return_credits;
net/bluetooth/l2cap_core.c
6796
pkt.cid = cpu_to_le16(chan->scid);
net/bluetooth/l2cap_core.c
680
void l2cap_chan_del(struct l2cap_chan *chan, int err)
net/bluetooth/l2cap_core.c
6813
void l2cap_chan_rx_avail(struct l2cap_chan *chan, ssize_t rx_avail)
net/bluetooth/l2cap_core.c
6815
if (chan->rx_avail == rx_avail)
net/bluetooth/l2cap_core.c
6818
BT_DBG("chan %p has %zd bytes avail for rx", chan, rx_avail);
net/bluetooth/l2cap_core.c
682
__clear_chan_timer(chan);
net/bluetooth/l2cap_core.c
6820
chan->rx_avail = rx_avail;
net/bluetooth/l2cap_core.c
6822
if (chan->state == BT_CONNECTED)
net/bluetooth/l2cap_core.c
6823
l2cap_chan_le_send_credits(chan);
net/bluetooth/l2cap_core.c
6826
static int l2cap_ecred_recv(struct l2cap_chan *chan, struct sk_buff *skb)
net/bluetooth/l2cap_core.c
6830
BT_DBG("SDU reassemble complete: chan %p skb->len %u", chan, skb->len);
net/bluetooth/l2cap_core.c
6833
err = chan->ops->recv(chan, skb);
net/bluetooth/l2cap_core.c
6835
if (err < 0 && chan->rx_avail != -1) {
net/bluetooth/l2cap_core.c
6837
l2cap_send_disconn_req(chan, ECONNRESET);
net/bluetooth/l2cap_core.c
684
BT_DBG("chan %p, err %d, state %s", chan, err,
net/bluetooth/l2cap_core.c
6842
l2cap_chan_le_send_credits(chan);
net/bluetooth/l2cap_core.c
6847
static int l2cap_ecred_data_rcv(struct l2cap_chan *chan, struct sk_buff *skb)
net/bluetooth/l2cap_core.c
685
state_to_string(chan->state));
net/bluetooth/l2cap_core.c
6851
if (!chan->rx_credits) {
net/bluetooth/l2cap_core.c
6853
l2cap_send_disconn_req(chan, ECONNRESET);
net/bluetooth/l2cap_core.c
6857
if (skb->len > chan->imtu) {
net/bluetooth/l2cap_core.c
6859
chan->imtu);
net/bluetooth/l2cap_core.c
6860
l2cap_send_disconn_req(chan, ECONNRESET);
net/bluetooth/l2cap_core.c
6864
if (skb->len > chan->mps) {
net/bluetooth/l2cap_core.c
6866
chan->mps);
net/bluetooth/l2cap_core.c
6867
l2cap_send_disconn_req(chan, ECONNRESET);
net/bluetooth/l2cap_core.c
687
chan->ops->teardown(chan, err);
net/bluetooth/l2cap_core.c
6871
chan->rx_credits--;
net/bluetooth/l2cap_core.c
6873
chan, chan->rx_credits + 1, chan->rx_credits);
net/bluetooth/l2cap_core.c
6878
if (!chan->rx_credits)
net/bluetooth/l2cap_core.c
6879
l2cap_chan_le_send_credits(chan);
net/bluetooth/l2cap_core.c
6883
if (!chan->sdu) {
net/bluetooth/l2cap_core.c
689
if (!test_and_set_bit(FLAG_DEL, &chan->flags)) {
net/bluetooth/l2cap_core.c
6895
sdu_len, skb->len, chan->imtu);
net/bluetooth/l2cap_core.c
6897
if (sdu_len > chan->imtu) {
net/bluetooth/l2cap_core.c
6899
sdu_len, chan->imtu);
net/bluetooth/l2cap_core.c
6900
l2cap_send_disconn_req(chan, ECONNRESET);
net/bluetooth/l2cap_core.c
691
list_del(&chan->list);
net/bluetooth/l2cap_core.c
6912
return l2cap_ecred_recv(chan, skb);
net/bluetooth/l2cap_core.c
6914
chan->sdu = skb;
net/bluetooth/l2cap_core.c
6915
chan->sdu_len = sdu_len;
net/bluetooth/l2cap_core.c
6916
chan->sdu_last_frag = skb;
net/bluetooth/l2cap_core.c
6919
if (skb->len + L2CAP_SDULEN_SIZE < chan->mps) {
net/bluetooth/l2cap_core.c
6923
BT_DBG("chan->mps %u -> %u", chan->mps, mps_len);
net/bluetooth/l2cap_core.c
6924
chan->mps = mps_len;
net/bluetooth/l2cap_core.c
6925
l2cap_chan_le_send_credits(chan);
net/bluetooth/l2cap_core.c
693
l2cap_chan_put(chan);
net/bluetooth/l2cap_core.c
6932
chan->sdu->len, skb->len, chan->sdu_len);
net/bluetooth/l2cap_core.c
6934
if (chan->sdu->len + skb->len > chan->sdu_len) {
net/bluetooth/l2cap_core.c
6936
l2cap_send_disconn_req(chan, ECONNRESET);
net/bluetooth/l2cap_core.c
6941
append_skb_frag(chan->sdu, skb, &chan->sdu_last_frag);
net/bluetooth/l2cap_core.c
6944
if (chan->sdu->len == chan->sdu_len) {
net/bluetooth/l2cap_core.c
6945
err = l2cap_ecred_recv(chan, chan->sdu);
net/bluetooth/l2cap_core.c
6947
chan->sdu = NULL;
net/bluetooth/l2cap_core.c
6948
chan->sdu_last_frag = NULL;
net/bluetooth/l2cap_core.c
6949
chan->sdu_len = 0;
net/bluetooth/l2cap_core.c
6956
kfree_skb(chan->sdu);
net/bluetooth/l2cap_core.c
6957
chan->sdu = NULL;
net/bluetooth/l2cap_core.c
6958
chan->sdu_last_frag = NULL;
net/bluetooth/l2cap_core.c
6959
chan->sdu_len = 0;
net/bluetooth/l2cap_core.c
6972
struct l2cap_chan *chan;
net/bluetooth/l2cap_core.c
6974
chan = l2cap_get_chan_by_scid(conn, cid);
net/bluetooth/l2cap_core.c
6975
if (!chan) {
net/bluetooth/l2cap_core.c
6982
BT_DBG("chan %p, len %d", chan, skb->len);
net/bluetooth/l2cap_core.c
6988
if (chan->chan_type == L2CAP_CHAN_FIXED)
net/bluetooth/l2cap_core.c
6989
l2cap_chan_ready(chan);
net/bluetooth/l2cap_core.c
699
if (chan->chan_type != L2CAP_CHAN_FIXED ||
net/bluetooth/l2cap_core.c
6991
if (chan->state != BT_CONNECTED)
net/bluetooth/l2cap_core.c
6994
switch (chan->mode) {
net/bluetooth/l2cap_core.c
6997
if (l2cap_ecred_data_rcv(chan, skb) < 0)
net/bluetooth/l2cap_core.c
700
test_bit(FLAG_HOLD_HCI_CONN, &chan->flags))
net/bluetooth/l2cap_core.c
7008
if (chan->imtu < skb->len) {
net/bluetooth/l2cap_core.c
701
hci_conn_drop(chan->conn->hcon);
net/bluetooth/l2cap_core.c
7013
if (!chan->ops->recv(chan, skb))
net/bluetooth/l2cap_core.c
7019
l2cap_data_rcv(chan, skb);
net/bluetooth/l2cap_core.c
7023
BT_DBG("chan %p: bad mode 0x%2.2x", chan, chan->mode);
net/bluetooth/l2cap_core.c
7031
l2cap_chan_unlock(chan);
net/bluetooth/l2cap_core.c
7032
l2cap_chan_put(chan);
net/bluetooth/l2cap_core.c
7039
struct l2cap_chan *chan;
net/bluetooth/l2cap_core.c
704
if (test_bit(CONF_NOT_COMPLETE, &chan->conf_state))
net/bluetooth/l2cap_core.c
7044
chan = l2cap_global_chan_by_psm(0, psm, &hcon->src, &hcon->dst,
net/bluetooth/l2cap_core.c
7046
if (!chan)
net/bluetooth/l2cap_core.c
7049
BT_DBG("chan %p, len %d", chan, skb->len);
net/bluetooth/l2cap_core.c
7051
l2cap_chan_lock(chan);
net/bluetooth/l2cap_core.c
7053
if (chan->state != BT_BOUND && chan->state != BT_CONNECTED)
net/bluetooth/l2cap_core.c
7056
if (chan->imtu < skb->len)
net/bluetooth/l2cap_core.c
7063
if (!chan->ops->recv(chan, skb)) {
net/bluetooth/l2cap_core.c
7064
l2cap_chan_unlock(chan);
net/bluetooth/l2cap_core.c
7065
l2cap_chan_put(chan);
net/bluetooth/l2cap_core.c
707
switch (chan->mode) {
net/bluetooth/l2cap_core.c
7070
l2cap_chan_unlock(chan);
net/bluetooth/l2cap_core.c
7071
l2cap_chan_put(chan);
net/bluetooth/l2cap_core.c
713
skb_queue_purge(&chan->tx_q);
net/bluetooth/l2cap_core.c
717
__clear_retrans_timer(chan);
net/bluetooth/l2cap_core.c
718
__clear_monitor_timer(chan);
net/bluetooth/l2cap_core.c
719
__clear_ack_timer(chan);
net/bluetooth/l2cap_core.c
721
skb_queue_purge(&chan->srej_q);
net/bluetooth/l2cap_core.c
7217
struct l2cap_chan *chan;
net/bluetooth/l2cap_core.c
7222
static void l2cap_chan_by_pid(struct l2cap_chan *chan, void *data)
net/bluetooth/l2cap_core.c
7227
if (chan == d->chan)
net/bluetooth/l2cap_core.c
723
l2cap_seq_list_free(&chan->srej_list);
net/bluetooth/l2cap_core.c
7230
if (!test_bit(FLAG_DEFER_SETUP, &chan->flags))
net/bluetooth/l2cap_core.c
7233
pid = chan->ops->get_peer_pid(chan);
net/bluetooth/l2cap_core.c
7236
if (d->pid != pid || chan->psm != d->chan->psm || chan->ident ||
net/bluetooth/l2cap_core.c
7237
chan->mode != L2CAP_MODE_EXT_FLOWCTL || chan->state != BT_CONNECT)
net/bluetooth/l2cap_core.c
724
l2cap_seq_list_free(&chan->retrans_list);
net/bluetooth/l2cap_core.c
7243
int l2cap_chan_connect(struct l2cap_chan *chan, __le16 psm, u16 cid,
net/bluetooth/l2cap_core.c
7251
BT_DBG("%pMR -> %pMR (type %u) psm 0x%4.4x mode 0x%2.2x", &chan->src,
net/bluetooth/l2cap_core.c
7252
dst, dst_type, __le16_to_cpu(psm), chan->mode);
net/bluetooth/l2cap_core.c
7254
hdev = hci_get_route(dst, &chan->src, chan->src_type);
net/bluetooth/l2cap_core.c
7261
chan->chan_type != L2CAP_CHAN_RAW) {
net/bluetooth/l2cap_core.c
7266
if (chan->chan_type == L2CAP_CHAN_CONN_ORIENTED && !psm) {
net/bluetooth/l2cap_core.c
7271
if (chan->chan_type == L2CAP_CHAN_FIXED && !cid) {
net/bluetooth/l2cap_core.c
7276
switch (chan->mode) {
net/bluetooth/l2cap_core.c
728
skb_queue_purge(&chan->tx_q);
net/bluetooth/l2cap_core.c
7297
switch (chan->state) {
net/bluetooth/l2cap_core.c
7321
bacpy(&chan->dst, dst);
net/bluetooth/l2cap_core.c
7322
chan->dst_type = dst_type;
net/bluetooth/l2cap_core.c
7324
chan->psm = psm;
net/bluetooth/l2cap_core.c
7325
chan->dcid = cid;
net/bluetooth/l2cap_core.c
7337
chan->sec_level, timeout,
net/bluetooth/l2cap_core.c
7341
chan->sec_level, timeout,
net/bluetooth/l2cap_core.c
7345
u8 auth_type = l2cap_get_auth_type(chan);
net/bluetooth/l2cap_core.c
7346
hcon = hci_connect_acl(hdev, dst, chan->sec_level, auth_type,
net/bluetooth/l2cap_core.c
7362
if (chan->mode == L2CAP_MODE_EXT_FLOWCTL) {
net/bluetooth/l2cap_core.c
7365
data.chan = chan;
net/bluetooth/l2cap_core.c
7366
data.pid = chan->ops->get_peer_pid(chan);
net/bluetooth/l2cap_core.c
737
struct l2cap_chan *chan, *l;
net/bluetooth/l2cap_core.c
7380
l2cap_chan_lock(chan);
net/bluetooth/l2cap_core.c
7389
bacpy(&chan->src, &hcon->src);
net/bluetooth/l2cap_core.c
739
list_for_each_entry_safe(chan, l, &conn->chan_l, list) {
net/bluetooth/l2cap_core.c
7390
chan->src_type = bdaddr_src_type(hcon);
net/bluetooth/l2cap_core.c
7392
__l2cap_chan_add(conn, chan);
net/bluetooth/l2cap_core.c
7397
l2cap_state_change(chan, BT_CONNECT);
net/bluetooth/l2cap_core.c
7398
__set_chan_timer(chan, chan->ops->get_sndtimeo(chan));
net/bluetooth/l2cap_core.c
740
if (chan->ident == id)
net/bluetooth/l2cap_core.c
7404
chan->sport = 0;
net/bluetooth/l2cap_core.c
7408
if (chan->chan_type != L2CAP_CHAN_CONN_ORIENTED) {
net/bluetooth/l2cap_core.c
7409
__clear_chan_timer(chan);
net/bluetooth/l2cap_core.c
741
func(chan, data);
net/bluetooth/l2cap_core.c
7410
if (l2cap_chan_check_security(chan, true))
net/bluetooth/l2cap_core.c
7411
l2cap_state_change(chan, BT_CONNECTED);
net/bluetooth/l2cap_core.c
7413
l2cap_do_start(chan);
net/bluetooth/l2cap_core.c
7419
l2cap_chan_unlock(chan);
net/bluetooth/l2cap_core.c
7428
static void l2cap_ecred_reconfigure(struct l2cap_chan *chan)
net/bluetooth/l2cap_core.c
7430
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
7433
pdu->mtu = cpu_to_le16(chan->imtu);
net/bluetooth/l2cap_core.c
7434
pdu->mps = cpu_to_le16(chan->mps);
net/bluetooth/l2cap_core.c
7435
pdu->scid[0] = cpu_to_le16(chan->scid);
net/bluetooth/l2cap_core.c
7437
chan->ident = l2cap_get_ident(conn);
net/bluetooth/l2cap_core.c
7439
l2cap_send_cmd(conn, chan->ident, L2CAP_ECRED_RECONF_REQ,
net/bluetooth/l2cap_core.c
7443
int l2cap_chan_reconfigure(struct l2cap_chan *chan, __u16 mtu)
net/bluetooth/l2cap_core.c
7445
if (chan->imtu > mtu)
net/bluetooth/l2cap_core.c
7448
BT_DBG("chan %p mtu 0x%4.4x", chan, mtu);
net/bluetooth/l2cap_core.c
7450
chan->imtu = mtu;
net/bluetooth/l2cap_core.c
7452
l2cap_ecred_reconfigure(chan);
net/bluetooth/l2cap_core.c
748
struct l2cap_chan *chan;
net/bluetooth/l2cap_core.c
750
list_for_each_entry(chan, &conn->chan_l, list) {
net/bluetooth/l2cap_core.c
751
func(chan, data);
net/bluetooth/l2cap_core.c
7558
struct l2cap_chan *chan, *next;
net/bluetooth/l2cap_core.c
7565
chan = l2cap_new_connection(conn, pchan);
net/bluetooth/l2cap_core.c
7566
if (chan) {
net/bluetooth/l2cap_core.c
7567
bacpy(&chan->src, &hcon->src);
net/bluetooth/l2cap_core.c
7568
bacpy(&chan->dst, &hcon->dst);
net/bluetooth/l2cap_core.c
7569
chan->src_type = bdaddr_src_type(hcon);
net/bluetooth/l2cap_core.c
7570
chan->dst_type = dst_type;
net/bluetooth/l2cap_core.c
7604
static inline void l2cap_check_encryption(struct l2cap_chan *chan, u8 encrypt)
net/bluetooth/l2cap_core.c
7606
if (chan->chan_type != L2CAP_CHAN_CONN_ORIENTED)
net/bluetooth/l2cap_core.c
7610
if (chan->sec_level == BT_SECURITY_MEDIUM) {
net/bluetooth/l2cap_core.c
7611
__set_chan_timer(chan, L2CAP_ENC_TIMEOUT);
net/bluetooth/l2cap_core.c
7612
} else if (chan->sec_level == BT_SECURITY_HIGH ||
net/bluetooth/l2cap_core.c
7613
chan->sec_level == BT_SECURITY_FIPS)
net/bluetooth/l2cap_core.c
7614
l2cap_chan_close(chan, ECONNREFUSED);
net/bluetooth/l2cap_core.c
7616
if (chan->sec_level == BT_SECURITY_MEDIUM)
net/bluetooth/l2cap_core.c
7617
__clear_chan_timer(chan);
net/bluetooth/l2cap_core.c
7624
struct l2cap_chan *chan;
net/bluetooth/l2cap_core.c
7633
list_for_each_entry(chan, &conn->chan_l, list) {
net/bluetooth/l2cap_core.c
7634
l2cap_chan_lock(chan);
net/bluetooth/l2cap_core.c
7636
BT_DBG("chan %p scid 0x%4.4x state %s", chan, chan->scid,
net/bluetooth/l2cap_core.c
7637
state_to_string(chan->state));
net/bluetooth/l2cap_core.c
7640
chan->sec_level = hcon->sec_level;
net/bluetooth/l2cap_core.c
7642
if (!__l2cap_no_conn_pending(chan)) {
net/bluetooth/l2cap_core.c
7643
l2cap_chan_unlock(chan);
net/bluetooth/l2cap_core.c
7647
if (!status && (chan->state == BT_CONNECTED ||
net/bluetooth/l2cap_core.c
7648
chan->state == BT_CONFIG)) {
net/bluetooth/l2cap_core.c
7649
chan->ops->resume(chan);
net/bluetooth/l2cap_core.c
7650
l2cap_check_encryption(chan, encrypt);
net/bluetooth/l2cap_core.c
7651
l2cap_chan_unlock(chan);
net/bluetooth/l2cap_core.c
7655
if (chan->state == BT_CONNECT) {
net/bluetooth/l2cap_core.c
7656
if (!status && l2cap_check_enc_key_size(hcon, chan))
net/bluetooth/l2cap_core.c
7657
l2cap_start_connection(chan);
net/bluetooth/l2cap_core.c
7659
__set_chan_timer(chan, L2CAP_DISC_TIMEOUT);
net/bluetooth/l2cap_core.c
7660
} else if (chan->state == BT_CONNECT2 &&
net/bluetooth/l2cap_core.c
7661
!(chan->mode == L2CAP_MODE_EXT_FLOWCTL ||
net/bluetooth/l2cap_core.c
7662
chan->mode == L2CAP_MODE_LE_FLOWCTL)) {
net/bluetooth/l2cap_core.c
7666
if (!status && l2cap_check_enc_key_size(hcon, chan)) {
net/bluetooth/l2cap_core.c
7667
if (test_bit(FLAG_DEFER_SETUP, &chan->flags)) {
net/bluetooth/l2cap_core.c
7670
chan->ops->defer(chan);
net/bluetooth/l2cap_core.c
7672
l2cap_state_change(chan, BT_CONFIG);
net/bluetooth/l2cap_core.c
7677
l2cap_state_change(chan, BT_DISCONN);
net/bluetooth/l2cap_core.c
7678
__set_chan_timer(chan, L2CAP_DISC_TIMEOUT);
net/bluetooth/l2cap_core.c
7683
rsp.scid = cpu_to_le16(chan->dcid);
net/bluetooth/l2cap_core.c
7684
rsp.dcid = cpu_to_le16(chan->scid);
net/bluetooth/l2cap_core.c
7687
l2cap_send_cmd(conn, chan->ident, L2CAP_CONN_RSP,
net/bluetooth/l2cap_core.c
7690
if (!test_bit(CONF_REQ_SENT, &chan->conf_state) &&
net/bluetooth/l2cap_core.c
7693
set_bit(CONF_REQ_SENT, &chan->conf_state);
net/bluetooth/l2cap_core.c
7696
l2cap_build_conf_req(chan, buf, sizeof(buf)),
net/bluetooth/l2cap_core.c
7698
chan->num_conf_req++;
net/bluetooth/l2cap_core.c
7702
l2cap_chan_unlock(chan);
net/bluetooth/l2cap_core.c
773
struct l2cap_chan *chan;
net/bluetooth/l2cap_core.c
777
list_for_each_entry(chan, &conn->chan_l, list) {
net/bluetooth/l2cap_core.c
778
l2cap_chan_lock(chan);
net/bluetooth/l2cap_core.c
779
bacpy(&chan->dst, &hcon->dst);
net/bluetooth/l2cap_core.c
780
chan->dst_type = bdaddr_dst_type(hcon);
net/bluetooth/l2cap_core.c
781
l2cap_chan_unlock(chan);
net/bluetooth/l2cap_core.c
787
static void l2cap_chan_le_connect_reject(struct l2cap_chan *chan)
net/bluetooth/l2cap_core.c
789
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
793
if (test_bit(FLAG_DEFER_SETUP, &chan->flags))
net/bluetooth/l2cap_core.c
798
l2cap_state_change(chan, BT_DISCONN);
net/bluetooth/l2cap_core.c
800
rsp.dcid = cpu_to_le16(chan->scid);
net/bluetooth/l2cap_core.c
801
rsp.mtu = cpu_to_le16(chan->imtu);
net/bluetooth/l2cap_core.c
802
rsp.mps = cpu_to_le16(chan->mps);
net/bluetooth/l2cap_core.c
803
rsp.credits = cpu_to_le16(chan->rx_credits);
net/bluetooth/l2cap_core.c
806
l2cap_send_cmd(conn, chan->ident, L2CAP_LE_CONN_RSP, sizeof(rsp),
net/bluetooth/l2cap_core.c
810
static void l2cap_chan_ecred_connect_reject(struct l2cap_chan *chan)
net/bluetooth/l2cap_core.c
812
l2cap_state_change(chan, BT_DISCONN);
net/bluetooth/l2cap_core.c
814
__l2cap_ecred_conn_rsp_defer(chan);
net/bluetooth/l2cap_core.c
817
static void l2cap_chan_connect_reject(struct l2cap_chan *chan)
net/bluetooth/l2cap_core.c
819
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
823
if (test_bit(FLAG_DEFER_SETUP, &chan->flags))
net/bluetooth/l2cap_core.c
828
l2cap_state_change(chan, BT_DISCONN);
net/bluetooth/l2cap_core.c
830
rsp.scid = cpu_to_le16(chan->dcid);
net/bluetooth/l2cap_core.c
831
rsp.dcid = cpu_to_le16(chan->scid);
net/bluetooth/l2cap_core.c
835
l2cap_send_cmd(conn, chan->ident, L2CAP_CONN_RSP, sizeof(rsp), &rsp);
net/bluetooth/l2cap_core.c
838
void l2cap_chan_close(struct l2cap_chan *chan, int reason)
net/bluetooth/l2cap_core.c
840
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
842
BT_DBG("chan %p state %s", chan, state_to_string(chan->state));
net/bluetooth/l2cap_core.c
844
switch (chan->state) {
net/bluetooth/l2cap_core.c
846
chan->ops->teardown(chan, 0);
net/bluetooth/l2cap_core.c
851
if (chan->chan_type == L2CAP_CHAN_CONN_ORIENTED) {
net/bluetooth/l2cap_core.c
852
__set_chan_timer(chan, chan->ops->get_sndtimeo(chan));
net/bluetooth/l2cap_core.c
853
l2cap_send_disconn_req(chan, reason);
net/bluetooth/l2cap_core.c
855
l2cap_chan_del(chan, reason);
net/bluetooth/l2cap_core.c
859
if (chan->chan_type == L2CAP_CHAN_CONN_ORIENTED) {
net/bluetooth/l2cap_core.c
861
l2cap_chan_connect_reject(chan);
net/bluetooth/l2cap_core.c
863
switch (chan->mode) {
net/bluetooth/l2cap_core.c
865
l2cap_chan_le_connect_reject(chan);
net/bluetooth/l2cap_core.c
868
l2cap_chan_ecred_connect_reject(chan);
net/bluetooth/l2cap_core.c
874
l2cap_chan_del(chan, reason);
net/bluetooth/l2cap_core.c
879
l2cap_chan_del(chan, reason);
net/bluetooth/l2cap_core.c
883
chan->ops->teardown(chan, 0);
net/bluetooth/l2cap_core.c
889
static inline u8 l2cap_get_auth_type(struct l2cap_chan *chan)
net/bluetooth/l2cap_core.c
891
switch (chan->chan_type) {
net/bluetooth/l2cap_core.c
893
switch (chan->sec_level) {
net/bluetooth/l2cap_core.c
904
if (chan->psm == cpu_to_le16(L2CAP_PSM_3DSP)) {
net/bluetooth/l2cap_core.c
905
if (chan->sec_level == BT_SECURITY_LOW)
net/bluetooth/l2cap_core.c
906
chan->sec_level = BT_SECURITY_SDP;
net/bluetooth/l2cap_core.c
908
if (chan->sec_level == BT_SECURITY_HIGH ||
net/bluetooth/l2cap_core.c
909
chan->sec_level == BT_SECURITY_FIPS)
net/bluetooth/l2cap_core.c
915
if (chan->psm == cpu_to_le16(L2CAP_PSM_SDP)) {
net/bluetooth/l2cap_core.c
916
if (chan->sec_level == BT_SECURITY_LOW)
net/bluetooth/l2cap_core.c
917
chan->sec_level = BT_SECURITY_SDP;
net/bluetooth/l2cap_core.c
919
if (chan->sec_level == BT_SECURITY_HIGH ||
net/bluetooth/l2cap_core.c
920
chan->sec_level == BT_SECURITY_FIPS)
net/bluetooth/l2cap_core.c
928
switch (chan->sec_level) {
net/bluetooth/l2cap_core.c
942
int l2cap_chan_check_security(struct l2cap_chan *chan, bool initiator)
net/bluetooth/l2cap_core.c
944
struct l2cap_conn *conn = chan->conn;
net/bluetooth/l2cap_core.c
948
return smp_conn_security(conn->hcon, chan->sec_level);
net/bluetooth/l2cap_core.c
950
auth_type = l2cap_get_auth_type(chan);
net/bluetooth/l2cap_core.c
952
return hci_conn_security(conn->hcon, chan->sec_level, auth_type,
net/bluetooth/l2cap_sock.c
1000
conn = chan->conn;
net/bluetooth/l2cap_sock.c
1010
set_bit(FLAG_FLUSHABLE, &chan->flags);
net/bluetooth/l2cap_sock.c
1012
clear_bit(FLAG_FLUSHABLE, &chan->flags);
net/bluetooth/l2cap_sock.c
1016
if (chan->chan_type != L2CAP_CHAN_CONN_ORIENTED &&
net/bluetooth/l2cap_sock.c
1017
chan->chan_type != L2CAP_CHAN_RAW) {
net/bluetooth/l2cap_sock.c
1029
set_bit(FLAG_FORCE_ACTIVE, &chan->flags);
net/bluetooth/l2cap_sock.c
1031
clear_bit(FLAG_FORCE_ACTIVE, &chan->flags);
net/bluetooth/l2cap_sock.c
1043
if (!bdaddr_type_is_le(chan->src_type)) {
net/bluetooth/l2cap_sock.c
1058
chan->omtu = mtu;
net/bluetooth/l2cap_sock.c
1062
if (!bdaddr_type_is_le(chan->src_type)) {
net/bluetooth/l2cap_sock.c
1067
if (chan->mode == L2CAP_MODE_LE_FLOWCTL &&
net/bluetooth/l2cap_sock.c
1077
if (chan->mode == L2CAP_MODE_EXT_FLOWCTL &&
net/bluetooth/l2cap_sock.c
1079
err = l2cap_chan_reconfigure(chan, mtu);
net/bluetooth/l2cap_sock.c
1081
chan->imtu = mtu;
net/bluetooth/l2cap_sock.c
1096
if (!chan->conn)
net/bluetooth/l2cap_sock.c
1099
conn = chan->conn;
net/bluetooth/l2cap_sock.c
1116
if (chan->chan_type != L2CAP_CHAN_CONN_ORIENTED) {
net/bluetooth/l2cap_sock.c
1128
err = l2cap_set_mode(chan, mode);
net/bluetooth/l2cap_sock.c
1132
BT_DBG("mode 0x%2.2x", chan->mode);
net/bluetooth/l2cap_sock.c
1149
struct l2cap_chan *chan = l2cap_pi(sk)->chan;
net/bluetooth/l2cap_sock.c
1179
l2cap_chan_lock(chan);
net/bluetooth/l2cap_sock.c
1180
err = l2cap_chan_send(chan, msg, len, &sockc);
net/bluetooth/l2cap_sock.c
1181
l2cap_chan_unlock(chan);
net/bluetooth/l2cap_sock.c
1186
static void l2cap_publish_rx_avail(struct l2cap_chan *chan)
net/bluetooth/l2cap_sock.c
1188
struct sock *sk = chan->data;
net/bluetooth/l2cap_sock.c
1193
l2cap_chan_rx_avail(chan, 0);
net/bluetooth/l2cap_sock.c
1197
if (!chan->mps) {
net/bluetooth/l2cap_sock.c
1198
l2cap_chan_rx_avail(chan, -1);
net/bluetooth/l2cap_sock.c
1206
expected_skbs = DIV_ROUND_UP(avail, chan->mps);
net/bluetooth/l2cap_sock.c
1209
l2cap_chan_rx_avail(chan, avail - skb_overhead);
net/bluetooth/l2cap_sock.c
1211
l2cap_chan_rx_avail(chan, -1);
net/bluetooth/l2cap_sock.c
1229
if (pi->chan->mode == L2CAP_MODE_EXT_FLOWCTL) {
net/bluetooth/l2cap_sock.c
1231
pi->chan->state = BT_CONNECTED;
net/bluetooth/l2cap_sock.c
1232
__l2cap_ecred_conn_rsp_defer(pi->chan);
net/bluetooth/l2cap_sock.c
1233
} else if (bdaddr_type_is_le(pi->chan->src_type)) {
net/bluetooth/l2cap_sock.c
1235
pi->chan->state = BT_CONNECTED;
net/bluetooth/l2cap_sock.c
1236
__l2cap_le_connect_rsp_defer(pi->chan);
net/bluetooth/l2cap_sock.c
1239
pi->chan->state = BT_CONFIG;
net/bluetooth/l2cap_sock.c
1240
__l2cap_connect_rsp_defer(pi->chan);
net/bluetooth/l2cap_sock.c
1254
if (pi->chan->mode != L2CAP_MODE_ERTM &&
net/bluetooth/l2cap_sock.c
1255
pi->chan->mode != L2CAP_MODE_LE_FLOWCTL &&
net/bluetooth/l2cap_sock.c
1256
pi->chan->mode != L2CAP_MODE_EXT_FLOWCTL)
net/bluetooth/l2cap_sock.c
1261
l2cap_publish_rx_avail(pi->chan);
net/bluetooth/l2cap_sock.c
1279
if (test_bit(CONN_LOCAL_BUSY, &pi->chan->conn_state) &&
net/bluetooth/l2cap_sock.c
1281
l2cap_chan_busy(pi->chan, 0);
net/bluetooth/l2cap_sock.c
1295
struct l2cap_chan *chan = l2cap_pi(sk)->chan;
net/bluetooth/l2cap_sock.c
1297
if (!chan)
net/bluetooth/l2cap_sock.c
1300
chan->data = NULL;
net/bluetooth/l2cap_sock.c
1301
l2cap_pi(sk)->chan = NULL;
net/bluetooth/l2cap_sock.c
1302
l2cap_chan_put(chan);
net/bluetooth/l2cap_sock.c
131
bacpy(&chan->src, &la.l2_bdaddr);
net/bluetooth/l2cap_sock.c
132
chan->src_type = la.l2_bdaddr_type;
net/bluetooth/l2cap_sock.c
1322
static int __l2cap_wait_ack(struct sock *sk, struct l2cap_chan *chan)
net/bluetooth/l2cap_sock.c
1334
chan->unacked_frames, time_after(jiffies, timeout) ? 0 :
net/bluetooth/l2cap_sock.c
135
err = l2cap_add_scid(chan, __le16_to_cpu(la.l2_cid));
net/bluetooth/l2cap_sock.c
1359
} while (chan->unacked_frames > 0 &&
net/bluetooth/l2cap_sock.c
1360
chan->state == BT_CONNECTED);
net/bluetooth/l2cap_sock.c
137
err = l2cap_add_psm(chan, &la.l2_bdaddr, la.l2_psm);
net/bluetooth/l2cap_sock.c
1370
struct l2cap_chan *chan;
net/bluetooth/l2cap_sock.c
1397
chan = l2cap_chan_hold_unless_zero(l2cap_pi(sk)->chan);
net/bluetooth/l2cap_sock.c
1398
if (!chan)
net/bluetooth/l2cap_sock.c
1401
BT_DBG("chan %p state %s", chan, state_to_string(chan->state));
net/bluetooth/l2cap_sock.c
1403
if (chan->mode == L2CAP_MODE_ERTM &&
net/bluetooth/l2cap_sock.c
1404
chan->unacked_frames > 0 &&
net/bluetooth/l2cap_sock.c
1405
chan->state == BT_CONNECTED) {
net/bluetooth/l2cap_sock.c
1406
err = __l2cap_wait_ack(sk, chan);
net/bluetooth/l2cap_sock.c
142
switch (chan->chan_type) {
net/bluetooth/l2cap_sock.c
1428
l2cap_chan_lock(chan);
net/bluetooth/l2cap_sock.c
1430
conn = l2cap_conn_hold_unless_zero(chan->conn);
net/bluetooth/l2cap_sock.c
1431
l2cap_chan_unlock(chan);
net/bluetooth/l2cap_sock.c
1437
l2cap_chan_lock(chan);
net/bluetooth/l2cap_sock.c
1438
l2cap_chan_close(chan, 0);
net/bluetooth/l2cap_sock.c
1439
l2cap_chan_unlock(chan);
net/bluetooth/l2cap_sock.c
145
chan->sec_level = BT_SECURITY_SDP;
net/bluetooth/l2cap_sock.c
1454
l2cap_chan_put(chan);
net/bluetooth/l2cap_sock.c
1472
struct l2cap_chan *chan;
net/bluetooth/l2cap_sock.c
1486
chan = l2cap_pi(sk)->chan;
net/bluetooth/l2cap_sock.c
1488
l2cap_chan_hold(chan);
net/bluetooth/l2cap_sock.c
1489
l2cap_chan_lock(chan);
net/bluetooth/l2cap_sock.c
1494
l2cap_chan_unlock(chan);
net/bluetooth/l2cap_sock.c
1495
l2cap_chan_put(chan);
net/bluetooth/l2cap_sock.c
150
chan->sec_level = BT_SECURITY_SDP;
net/bluetooth/l2cap_sock.c
153
chan->sec_level = BT_SECURITY_SDP;
net/bluetooth/l2cap_sock.c
1532
struct l2cap_chan *chan;
net/bluetooth/l2cap_sock.c
1535
chan = l2cap_chan_hold_unless_zero(l2cap_pi(sk)->chan);
net/bluetooth/l2cap_sock.c
1537
if (!chan) {
net/bluetooth/l2cap_sock.c
1543
BT_DBG("child chan %p state %s", chan,
net/bluetooth/l2cap_sock.c
1544
state_to_string(chan->state));
net/bluetooth/l2cap_sock.c
1546
l2cap_chan_lock(chan);
net/bluetooth/l2cap_sock.c
1551
if (chan->conn)
net/bluetooth/l2cap_sock.c
1552
__set_chan_timer(chan, 0);
net/bluetooth/l2cap_sock.c
1553
l2cap_chan_unlock(chan);
net/bluetooth/l2cap_sock.c
1555
l2cap_chan_put(chan);
net/bluetooth/l2cap_sock.c
1560
static int l2cap_sock_new_connection_cb(struct l2cap_chan *chan,
net/bluetooth/l2cap_sock.c
1563
struct sock *sk, *parent = chan->data;
net/bluetooth/l2cap_sock.c
1598
static int l2cap_sock_recv_cb(struct l2cap_chan *chan, struct sk_buff *skb)
net/bluetooth/l2cap_sock.c
1604
sk = chan->data;
net/bluetooth/l2cap_sock.c
161
set_bit(FLAG_HOLD_HCI_CONN, &chan->flags);
net/bluetooth/l2cap_sock.c
1610
if (chan->mode == L2CAP_MODE_ERTM && !list_empty(&pi->rx_busy)) {
net/bluetooth/l2cap_sock.c
1615
if (chan->mode != L2CAP_MODE_ERTM &&
net/bluetooth/l2cap_sock.c
1616
chan->mode != L2CAP_MODE_STREAMING &&
net/bluetooth/l2cap_sock.c
1617
chan->mode != L2CAP_MODE_LE_FLOWCTL &&
net/bluetooth/l2cap_sock.c
1618
chan->mode != L2CAP_MODE_EXT_FLOWCTL) {
net/bluetooth/l2cap_sock.c
1629
l2cap_publish_rx_avail(chan);
net/bluetooth/l2cap_sock.c
1641
(chan->mode == L2CAP_MODE_ERTM ||
net/bluetooth/l2cap_sock.c
1642
chan->mode == L2CAP_MODE_LE_FLOWCTL ||
net/bluetooth/l2cap_sock.c
1643
chan->mode == L2CAP_MODE_EXT_FLOWCTL)) {
net/bluetooth/l2cap_sock.c
1651
l2cap_chan_busy(chan, 1);
net/bluetooth/l2cap_sock.c
1661
static void l2cap_sock_close_cb(struct l2cap_chan *chan)
net/bluetooth/l2cap_sock.c
1663
struct sock *sk = chan->data;
net/bluetooth/l2cap_sock.c
1671
static void l2cap_sock_teardown_cb(struct l2cap_chan *chan, int err)
net/bluetooth/l2cap_sock.c
1673
struct sock *sk = chan->data;
net/bluetooth/l2cap_sock.c
1679
BT_DBG("chan %p state %s", chan, state_to_string(chan->state));
net/bluetooth/l2cap_sock.c
168
if (chan->psm && bdaddr_type_is_le(chan->src_type) &&
net/bluetooth/l2cap_sock.c
1688
lock_sock_nested(sk, atomic_read(&chan->nesting));
net/bluetooth/l2cap_sock.c
169
chan->mode != L2CAP_MODE_EXT_FLOWCTL)
net/bluetooth/l2cap_sock.c
1692
switch (chan->state) {
net/bluetooth/l2cap_sock.c
170
chan->mode = L2CAP_MODE_LE_FLOWCTL;
net/bluetooth/l2cap_sock.c
1700
chan->state = BT_CLOSED;
net/bluetooth/l2cap_sock.c
1705
chan->state = BT_CLOSED;
net/bluetooth/l2cap_sock.c
172
chan->state = BT_BOUND;
net/bluetooth/l2cap_sock.c
1725
static void l2cap_sock_state_change_cb(struct l2cap_chan *chan, int state,
net/bluetooth/l2cap_sock.c
1728
struct sock *sk = chan->data;
net/bluetooth/l2cap_sock.c
1739
static struct sk_buff *l2cap_sock_alloc_skb_cb(struct l2cap_chan *chan,
net/bluetooth/l2cap_sock.c
1743
struct sock *sk = chan->data;
net/bluetooth/l2cap_sock.c
1747
l2cap_chan_unlock(chan);
net/bluetooth/l2cap_sock.c
1749
l2cap_chan_lock(chan);
net/bluetooth/l2cap_sock.c
1757
if (chan->state != BT_CONNECTED) {
net/bluetooth/l2cap_sock.c
1764
bt_cb(skb)->l2cap.chan = chan;
net/bluetooth/l2cap_sock.c
1769
static void l2cap_sock_ready_cb(struct l2cap_chan *chan)
net/bluetooth/l2cap_sock.c
1771
struct sock *sk = chan->data;
net/bluetooth/l2cap_sock.c
1792
static void l2cap_sock_defer_cb(struct l2cap_chan *chan)
net/bluetooth/l2cap_sock.c
1794
struct sock *parent, *sk = chan->data;
net/bluetooth/l2cap_sock.c
1805
static void l2cap_sock_resume_cb(struct l2cap_chan *chan)
net/bluetooth/l2cap_sock.c
1807
struct sock *sk = chan->data;
net/bluetooth/l2cap_sock.c
1812
if (test_and_clear_bit(FLAG_PENDING_SECURITY, &chan->flags)) {
net/bluetooth/l2cap_sock.c
1814
chan->state = BT_CONNECTED;
net/bluetooth/l2cap_sock.c
1821
static void l2cap_sock_set_shutdown_cb(struct l2cap_chan *chan)
net/bluetooth/l2cap_sock.c
1823
struct sock *sk = chan->data;
net/bluetooth/l2cap_sock.c
1830
static long l2cap_sock_get_sndtimeo_cb(struct l2cap_chan *chan)
net/bluetooth/l2cap_sock.c
1832
struct sock *sk = chan->data;
net/bluetooth/l2cap_sock.c
184
struct l2cap_chan *chan = l2cap_pi(sk)->chan;
net/bluetooth/l2cap_sock.c
1840
static struct pid *l2cap_sock_get_peer_pid_cb(struct l2cap_chan *chan)
net/bluetooth/l2cap_sock.c
1842
struct sock *sk = chan->data;
net/bluetooth/l2cap_sock.c
1847
static void l2cap_sock_suspend_cb(struct l2cap_chan *chan)
net/bluetooth/l2cap_sock.c
1849
struct sock *sk = chan->data;
net/bluetooth/l2cap_sock.c
1855
static int l2cap_sock_filter(struct l2cap_chan *chan, struct sk_buff *skb)
net/bluetooth/l2cap_sock.c
1857
struct sock *sk = chan->data;
net/bluetooth/l2cap_sock.c
1859
switch (chan->mode) {
net/bluetooth/l2cap_sock.c
1920
struct l2cap_chan *chan = l2cap_pi(sk)->chan;
net/bluetooth/l2cap_sock.c
1935
chan->chan_type = L2CAP_CHAN_RAW;
net/bluetooth/l2cap_sock.c
1938
chan->chan_type = L2CAP_CHAN_CONN_LESS;
net/bluetooth/l2cap_sock.c
1943
chan->chan_type = L2CAP_CHAN_CONN_ORIENTED;
net/bluetooth/l2cap_sock.c
1947
chan->imtu = L2CAP_DEFAULT_MTU;
net/bluetooth/l2cap_sock.c
1948
chan->omtu = 0;
net/bluetooth/l2cap_sock.c
1950
chan->mode = L2CAP_MODE_ERTM;
net/bluetooth/l2cap_sock.c
1951
set_bit(CONF_STATE2_DEVICE, &chan->conf_state);
net/bluetooth/l2cap_sock.c
1953
chan->mode = L2CAP_MODE_BASIC;
net/bluetooth/l2cap_sock.c
1956
l2cap_chan_set_defaults(chan, NULL);
net/bluetooth/l2cap_sock.c
1960
chan->flush_to = L2CAP_DEFAULT_FLUSH_TO;
net/bluetooth/l2cap_sock.c
1962
chan->data = sk;
net/bluetooth/l2cap_sock.c
1963
chan->ops = &l2cap_chan_ops;
net/bluetooth/l2cap_sock.c
1965
l2cap_publish_rx_avail(chan);
net/bluetooth/l2cap_sock.c
1976
struct l2cap_chan *chan)
net/bluetooth/l2cap_sock.c
1990
l2cap_pi(sk)->chan = chan;
net/bluetooth/l2cap_sock.c
1999
struct l2cap_chan *chan;
net/bluetooth/l2cap_sock.c
2014
chan = l2cap_chan_create();
net/bluetooth/l2cap_sock.c
2015
if (!chan)
net/bluetooth/l2cap_sock.c
2018
sk = l2cap_sock_alloc(net, sock, protocol, GFP_ATOMIC, kern, chan);
net/bluetooth/l2cap_sock.c
2020
l2cap_chan_put(chan);
net/bluetooth/l2cap_sock.c
217
if (chan->src_type == BDADDR_BREDR && bacmp(&chan->src, BDADDR_ANY) &&
net/bluetooth/l2cap_sock.c
225
if (chan->scid != L2CAP_CID_ATT ||
net/bluetooth/l2cap_sock.c
235
chan->src_type = BDADDR_LE_PUBLIC;
net/bluetooth/l2cap_sock.c
238
if (chan->src_type != BDADDR_BREDR && la.l2_bdaddr_type == BDADDR_BREDR)
net/bluetooth/l2cap_sock.c
251
if (chan->psm && bdaddr_type_is_le(chan->src_type) &&
net/bluetooth/l2cap_sock.c
252
chan->mode != L2CAP_MODE_EXT_FLOWCTL)
net/bluetooth/l2cap_sock.c
253
chan->mode = L2CAP_MODE_LE_FLOWCTL;
net/bluetooth/l2cap_sock.c
255
err = l2cap_chan_connect(chan, la.l2_psm, __le16_to_cpu(la.l2_cid),
net/bluetooth/l2cap_sock.c
274
struct l2cap_chan *chan = l2cap_pi(sk)->chan;
net/bluetooth/l2cap_sock.c
291
switch (chan->mode) {
net/bluetooth/l2cap_sock.c
318
atomic_set(&chan->nesting, L2CAP_NESTING_PARENT);
net/bluetooth/l2cap_sock.c
320
chan->state = BT_LISTEN;
net/bluetooth/l2cap_sock.c
394
struct l2cap_chan *chan = l2cap_pi(sk)->chan;
net/bluetooth/l2cap_sock.c
406
la->l2_psm = chan->psm;
net/bluetooth/l2cap_sock.c
409
bacpy(&la->l2_bdaddr, &chan->dst);
net/bluetooth/l2cap_sock.c
410
la->l2_cid = cpu_to_le16(chan->dcid);
net/bluetooth/l2cap_sock.c
411
la->l2_bdaddr_type = chan->dst_type;
net/bluetooth/l2cap_sock.c
413
bacpy(&la->l2_bdaddr, &chan->src);
net/bluetooth/l2cap_sock.c
414
la->l2_cid = cpu_to_le16(chan->scid);
net/bluetooth/l2cap_sock.c
415
la->l2_bdaddr_type = chan->src_type;
net/bluetooth/l2cap_sock.c
421
static int l2cap_get_mode(struct l2cap_chan *chan)
net/bluetooth/l2cap_sock.c
423
switch (chan->mode) {
net/bluetooth/l2cap_sock.c
443
struct l2cap_chan *chan = l2cap_pi(sk)->chan;
net/bluetooth/l2cap_sock.c
462
if (bdaddr_type_is_le(chan->src_type) &&
net/bluetooth/l2cap_sock.c
463
chan->scid != L2CAP_CID_ATT) {
net/bluetooth/l2cap_sock.c
469
switch (chan->mode) {
net/bluetooth/l2cap_sock.c
47
struct l2cap_chan *chan);
net/bluetooth/l2cap_sock.c
483
opts.imtu = chan->imtu;
net/bluetooth/l2cap_sock.c
484
opts.omtu = chan->omtu;
net/bluetooth/l2cap_sock.c
485
opts.flush_to = chan->flush_to;
net/bluetooth/l2cap_sock.c
486
opts.mode = chan->mode;
net/bluetooth/l2cap_sock.c
487
opts.fcs = chan->fcs;
net/bluetooth/l2cap_sock.c
488
opts.max_tx = chan->max_tx;
net/bluetooth/l2cap_sock.c
489
opts.txwin_size = chan->tx_win;
net/bluetooth/l2cap_sock.c
491
BT_DBG("mode 0x%2.2x", chan->mode);
net/bluetooth/l2cap_sock.c
500
switch (chan->sec_level) {
net/bluetooth/l2cap_sock.c
520
if (test_bit(FLAG_ROLE_SWITCH, &chan->flags))
net/bluetooth/l2cap_sock.c
523
if (test_bit(FLAG_FORCE_RELIABLE, &chan->flags))
net/bluetooth/l2cap_sock.c
541
cinfo.hci_handle = chan->conn->hcon->handle;
net/bluetooth/l2cap_sock.c
542
memcpy(cinfo.dev_class, chan->conn->hcon->dev_class, 3);
net/bluetooth/l2cap_sock.c
563
struct l2cap_chan *chan = l2cap_pi(sk)->chan;
net/bluetooth/l2cap_sock.c
585
if (chan->chan_type != L2CAP_CHAN_CONN_ORIENTED &&
net/bluetooth/l2cap_sock.c
586
chan->chan_type != L2CAP_CHAN_FIXED &&
net/bluetooth/l2cap_sock.c
587
chan->chan_type != L2CAP_CHAN_RAW) {
net/bluetooth/l2cap_sock.c
593
if (chan->conn) {
net/bluetooth/l2cap_sock.c
594
sec.level = chan->conn->hcon->sec_level;
net/bluetooth/l2cap_sock.c
597
sec.key_size = chan->conn->hcon->enc_key_size;
net/bluetooth/l2cap_sock.c
599
sec.level = chan->sec_level;
net/bluetooth/l2cap_sock.c
622
opt = test_bit(FLAG_FLUSHABLE, &chan->flags);
net/bluetooth/l2cap_sock.c
636
pwr.force_active = test_bit(FLAG_FORCE_ACTIVE, &chan->flags);
net/bluetooth/l2cap_sock.c
645
opt = chan->chan_policy;
net/bluetooth/l2cap_sock.c
652
if (!bdaddr_type_is_le(chan->src_type)) {
net/bluetooth/l2cap_sock.c
662
mtu = chan->omtu;
net/bluetooth/l2cap_sock.c
669
if (!bdaddr_type_is_le(chan->src_type)) {
net/bluetooth/l2cap_sock.c
674
mtu = chan->imtu;
net/bluetooth/l2cap_sock.c
686
opt = hci_conn_get_phy(chan->conn->hcon);
net/bluetooth/l2cap_sock.c
699
if (chan->chan_type != L2CAP_CHAN_CONN_ORIENTED) {
net/bluetooth/l2cap_sock.c
704
mode = l2cap_get_mode(chan);
net/bluetooth/l2cap_sock.c
725
static bool l2cap_valid_mtu(struct l2cap_chan *chan, u16 mtu)
net/bluetooth/l2cap_sock.c
727
switch (chan->scid) {
net/bluetooth/l2cap_sock.c
745
struct l2cap_chan *chan = l2cap_pi(sk)->chan;
net/bluetooth/l2cap_sock.c
756
if (bdaddr_type_is_le(chan->src_type)) {
net/bluetooth/l2cap_sock.c
766
opts.imtu = chan->imtu;
net/bluetooth/l2cap_sock.c
767
opts.omtu = chan->omtu;
net/bluetooth/l2cap_sock.c
768
opts.flush_to = chan->flush_to;
net/bluetooth/l2cap_sock.c
769
opts.mode = chan->mode;
net/bluetooth/l2cap_sock.c
770
opts.fcs = chan->fcs;
net/bluetooth/l2cap_sock.c
771
opts.max_tx = chan->max_tx;
net/bluetooth/l2cap_sock.c
772
opts.txwin_size = chan->tx_win;
net/bluetooth/l2cap_sock.c
784
if (!l2cap_valid_mtu(chan, opts.imtu)) {
net/bluetooth/l2cap_sock.c
792
clear_bit(CONF_STATE2_DEVICE, &chan->conf_state);
net/bluetooth/l2cap_sock.c
807
chan->mode = opts.mode;
net/bluetooth/l2cap_sock.c
809
BT_DBG("mode 0x%2.2x", chan->mode);
net/bluetooth/l2cap_sock.c
811
chan->imtu = opts.imtu;
net/bluetooth/l2cap_sock.c
812
chan->omtu = opts.omtu;
net/bluetooth/l2cap_sock.c
813
chan->fcs = opts.fcs;
net/bluetooth/l2cap_sock.c
814
chan->max_tx = opts.max_tx;
net/bluetooth/l2cap_sock.c
815
chan->tx_win = opts.txwin_size;
net/bluetooth/l2cap_sock.c
816
chan->flush_to = opts.flush_to;
net/bluetooth/l2cap_sock.c
830
chan->sec_level = BT_SECURITY_LOW;
net/bluetooth/l2cap_sock.c
832
chan->sec_level = BT_SECURITY_MEDIUM;
net/bluetooth/l2cap_sock.c
834
chan->sec_level = BT_SECURITY_HIGH;
net/bluetooth/l2cap_sock.c
837
set_bit(FLAG_ROLE_SWITCH, &chan->flags);
net/bluetooth/l2cap_sock.c
839
clear_bit(FLAG_ROLE_SWITCH, &chan->flags);
net/bluetooth/l2cap_sock.c
842
set_bit(FLAG_FORCE_RELIABLE, &chan->flags);
net/bluetooth/l2cap_sock.c
844
clear_bit(FLAG_FORCE_RELIABLE, &chan->flags);
net/bluetooth/l2cap_sock.c
85
struct l2cap_chan *chan = l2cap_pi(sk)->chan;
net/bluetooth/l2cap_sock.c
856
static int l2cap_set_mode(struct l2cap_chan *chan, u8 mode)
net/bluetooth/l2cap_sock.c
860
if (bdaddr_type_is_le(chan->src_type))
net/bluetooth/l2cap_sock.c
863
clear_bit(CONF_STATE2_DEVICE, &chan->conf_state);
net/bluetooth/l2cap_sock.c
866
if (!disable_ertm || bdaddr_type_is_le(chan->src_type))
net/bluetooth/l2cap_sock.c
871
if (!disable_ertm || bdaddr_type_is_le(chan->src_type))
net/bluetooth/l2cap_sock.c
876
if (!bdaddr_type_is_le(chan->src_type))
net/bluetooth/l2cap_sock.c
882
if (!bdaddr_type_is_le(chan->src_type))
net/bluetooth/l2cap_sock.c
890
chan->mode = mode;
net/bluetooth/l2cap_sock.c
899
struct l2cap_chan *chan = l2cap_pi(sk)->chan;
net/bluetooth/l2cap_sock.c
920
if (chan->chan_type != L2CAP_CHAN_CONN_ORIENTED &&
net/bluetooth/l2cap_sock.c
921
chan->chan_type != L2CAP_CHAN_FIXED &&
net/bluetooth/l2cap_sock.c
922
chan->chan_type != L2CAP_CHAN_RAW) {
net/bluetooth/l2cap_sock.c
939
chan->sec_level = sec.level;
net/bluetooth/l2cap_sock.c
941
if (!chan->conn)
net/bluetooth/l2cap_sock.c
944
conn = chan->conn;
net/bluetooth/l2cap_sock.c
947
if (chan->scid == L2CAP_CID_ATT) {
net/bluetooth/l2cap_sock.c
953
set_bit(FLAG_PENDING_SECURITY, &chan->flags);
net/bluetooth/l2cap_sock.c
955
chan->state = BT_CONFIG;
net/bluetooth/l2cap_sock.c
961
if (!l2cap_chan_check_security(chan, true))
net/bluetooth/l2cap_sock.c
982
set_bit(FLAG_DEFER_SETUP, &chan->flags);
net/bluetooth/l2cap_sock.c
985
clear_bit(FLAG_DEFER_SETUP, &chan->flags);
net/bluetooth/mgmt.c
10726
static struct hci_mgmt_chan chan = {
net/bluetooth/mgmt.c
10735
return hci_mgmt_chan_register(&chan);
net/bluetooth/mgmt.c
10740
hci_mgmt_chan_unregister(&chan);
net/bluetooth/rfcomm/core.c
1337
struct l2cap_conn *conn = l2cap_pi(sk)->chan->conn;
net/bluetooth/rfcomm/core.c
2037
s->mtu = min(l2cap_pi(nsock->sk)->chan->omtu,
net/bluetooth/rfcomm/core.c
2038
l2cap_pi(nsock->sk)->chan->imtu) - 5;
net/bluetooth/rfcomm/core.c
2057
s->mtu = min(l2cap_pi(sk)->chan->omtu, l2cap_pi(sk)->chan->imtu) - 5;
net/bluetooth/rfcomm/core.c
212
struct l2cap_conn *conn = l2cap_pi(sk)->chan->conn;
net/bluetooth/rfcomm/core.c
2134
l2cap_pi(sk)->chan->imtu = 0;
net/bluetooth/rfcomm/core.c
2247
struct l2cap_chan *chan = l2cap_pi(s->sock->sk)->chan;
net/bluetooth/rfcomm/core.c
2251
&chan->src, &chan->dst,
net/bluetooth/rfcomm/core.c
730
struct l2cap_chan *chan;
net/bluetooth/rfcomm/core.c
732
chan = l2cap_pi(s->sock->sk)->chan;
net/bluetooth/rfcomm/core.c
734
if ((!bacmp(src, BDADDR_ANY) || !bacmp(&chan->src, src)) &&
net/bluetooth/rfcomm/core.c
735
!bacmp(&chan->dst, dst))
net/bluetooth/rfcomm/core.c
789
l2cap_pi(sk)->chan->imtu = 0;
net/bluetooth/rfcomm/core.c
790
l2cap_pi(sk)->chan->sec_level = sec_level;
net/bluetooth/rfcomm/core.c
792
l2cap_pi(sk)->chan->mode = L2CAP_MODE_ERTM;
net/bluetooth/rfcomm/core.c
821
struct l2cap_chan *chan = l2cap_pi(s->sock->sk)->chan;
net/bluetooth/rfcomm/core.c
823
bacpy(src, &chan->src);
net/bluetooth/rfcomm/core.c
825
bacpy(dst, &chan->dst);
net/bluetooth/rfcomm/sock.c
797
conn = l2cap_pi(l2cap_sk)->chan->conn;
net/bluetooth/smp.c
1013
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
1014
struct smp_chan *smp = chan->data;
net/bluetooth/smp.c
1362
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
1376
chan->data = smp;
net/bluetooth/smp.c
1600
struct l2cap_chan *chan;
net/bluetooth/smp.c
1610
chan = conn->smp;
net/bluetooth/smp.c
1611
if (!chan)
net/bluetooth/smp.c
1614
l2cap_chan_lock(chan);
net/bluetooth/smp.c
1615
if (!chan->data) {
net/bluetooth/smp.c
1620
smp = chan->data;
net/bluetooth/smp.c
1658
l2cap_chan_unlock(chan);
net/bluetooth/smp.c
1707
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
1709
struct smp_chan *smp = chan->data;
net/bluetooth/smp.c
1851
struct l2cap_chan *chan = hdev->smp_data;
net/bluetooth/smp.c
1854
if (!chan || !chan->data)
net/bluetooth/smp.c
1857
smp_dev = chan->data;
net/bluetooth/smp.c
1900
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
1901
struct smp_chan *smp = chan->data;
net/bluetooth/smp.c
2058
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
2059
struct smp_chan *smp = chan->data;
net/bluetooth/smp.c
2104
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
2105
struct smp_chan *smp = chan->data;
net/bluetooth/smp.c
2331
struct l2cap_chan *chan;
net/bluetooth/smp.c
2356
chan = conn->smp;
net/bluetooth/smp.c
2357
if (!chan) {
net/bluetooth/smp.c
2362
l2cap_chan_lock(chan);
net/bluetooth/smp.c
2365
if (chan->data) {
net/bluetooth/smp.c
2404
l2cap_chan_unlock(chan);
net/bluetooth/smp.c
2413
struct l2cap_chan *chan;
net/bluetooth/smp.c
2428
chan = conn->smp;
net/bluetooth/smp.c
2429
if (!chan)
net/bluetooth/smp.c
2432
l2cap_chan_lock(chan);
net/bluetooth/smp.c
2434
smp = chan->data;
net/bluetooth/smp.c
2449
l2cap_chan_unlock(chan);
net/bluetooth/smp.c
2458
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
2459
struct smp_chan *smp = chan->data;
net/bluetooth/smp.c
2487
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
2488
struct smp_chan *smp = chan->data;
net/bluetooth/smp.c
2523
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
2524
struct smp_chan *smp = chan->data;
net/bluetooth/smp.c
2553
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
2554
struct smp_chan *smp = chan->data;
net/bluetooth/smp.c
2621
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
2622
struct smp_chan *smp = chan->data;
net/bluetooth/smp.c
2696
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
2697
struct smp_chan *smp = chan->data;
net/bluetooth/smp.c
2835
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
2837
struct smp_chan *smp = chan->data;
net/bluetooth/smp.c
2907
static int smp_sig_channel(struct l2cap_chan *chan, struct sk_buff *skb)
net/bluetooth/smp.c
2909
struct l2cap_conn *conn = chan->conn;
net/bluetooth/smp.c
2926
smp = chan->data;
net/bluetooth/smp.c
3037
static void smp_teardown_cb(struct l2cap_chan *chan, int err)
net/bluetooth/smp.c
3039
struct l2cap_conn *conn = chan->conn;
net/bluetooth/smp.c
3041
bt_dev_dbg(conn->hcon->hdev, "chan %p", chan);
net/bluetooth/smp.c
3043
if (chan->data)
net/bluetooth/smp.c
3047
l2cap_chan_put(chan);
net/bluetooth/smp.c
3050
static void bredr_pairing(struct l2cap_chan *chan)
net/bluetooth/smp.c
3052
struct l2cap_conn *conn = chan->conn;
net/bluetooth/smp.c
3057
bt_dev_dbg(hdev, "chan %p", chan);
net/bluetooth/smp.c
3093
if (chan->data)
net/bluetooth/smp.c
3109
static void smp_resume_cb(struct l2cap_chan *chan)
net/bluetooth/smp.c
3111
struct smp_chan *smp = chan->data;
net/bluetooth/smp.c
3112
struct l2cap_conn *conn = chan->conn;
net/bluetooth/smp.c
3115
bt_dev_dbg(hcon->hdev, "chan %p", chan);
net/bluetooth/smp.c
3118
bredr_pairing(chan);
net/bluetooth/smp.c
3133
static void smp_ready_cb(struct l2cap_chan *chan)
net/bluetooth/smp.c
3135
struct l2cap_conn *conn = chan->conn;
net/bluetooth/smp.c
3138
bt_dev_dbg(hcon->hdev, "chan %p", chan);
net/bluetooth/smp.c
3146
conn->smp = chan;
net/bluetooth/smp.c
3149
bredr_pairing(chan);
net/bluetooth/smp.c
3152
static int smp_recv_cb(struct l2cap_chan *chan, struct sk_buff *skb)
net/bluetooth/smp.c
3156
bt_dev_dbg(chan->conn->hcon->hdev, "chan %p", chan);
net/bluetooth/smp.c
3158
err = smp_sig_channel(chan, skb);
net/bluetooth/smp.c
3160
struct smp_chan *smp = chan->data;
net/bluetooth/smp.c
3165
hci_disconnect(chan->conn->hcon, HCI_ERROR_AUTH_FAILURE);
net/bluetooth/smp.c
3171
static struct sk_buff *smp_alloc_skb_cb(struct l2cap_chan *chan,
net/bluetooth/smp.c
3182
bt_cb(skb)->l2cap.chan = chan;
net/bluetooth/smp.c
3204
static inline int smp_new_conn_cb(struct l2cap_chan *chan,
net/bluetooth/smp.c
3239
struct l2cap_chan *chan;
net/bluetooth/smp.c
3263
chan = l2cap_chan_create();
net/bluetooth/smp.c
3264
if (!chan) {
net/bluetooth/smp.c
3272
chan->data = smp;
net/bluetooth/smp.c
3274
l2cap_add_scid(chan, cid);
net/bluetooth/smp.c
3276
l2cap_chan_set_defaults(chan, NULL);
net/bluetooth/smp.c
3281
hci_copy_identity_address(hdev, &chan->src, &bdaddr_type);
net/bluetooth/smp.c
3284
chan->src_type = BDADDR_LE_PUBLIC;
net/bluetooth/smp.c
3286
chan->src_type = BDADDR_LE_RANDOM;
net/bluetooth/smp.c
3288
bacpy(&chan->src, &hdev->bdaddr);
net/bluetooth/smp.c
3289
chan->src_type = BDADDR_BREDR;
net/bluetooth/smp.c
3292
chan->state = BT_LISTEN;
net/bluetooth/smp.c
3293
chan->mode = L2CAP_MODE_BASIC;
net/bluetooth/smp.c
3294
chan->imtu = L2CAP_DEFAULT_MTU;
net/bluetooth/smp.c
3295
chan->ops = &smp_root_chan_ops;
net/bluetooth/smp.c
3298
atomic_set(&chan->nesting, L2CAP_NESTING_PARENT);
net/bluetooth/smp.c
3300
return chan;
net/bluetooth/smp.c
3303
static void smp_del_chan(struct l2cap_chan *chan)
net/bluetooth/smp.c
3307
BT_DBG("chan %p", chan);
net/bluetooth/smp.c
3309
smp = chan->data;
net/bluetooth/smp.c
3311
chan->data = NULL;
net/bluetooth/smp.c
3316
l2cap_chan_put(chan);
net/bluetooth/smp.c
3325
struct l2cap_chan *chan;
net/bluetooth/smp.c
3327
chan = smp_add_cid(hdev, L2CAP_CID_SMP_BREDR);
net/bluetooth/smp.c
3328
if (IS_ERR(chan))
net/bluetooth/smp.c
3329
return PTR_ERR(chan);
net/bluetooth/smp.c
3331
hdev->smp_bredr_data = chan;
net/bluetooth/smp.c
3333
struct l2cap_chan *chan;
net/bluetooth/smp.c
3335
chan = hdev->smp_bredr_data;
net/bluetooth/smp.c
3337
smp_del_chan(chan);
net/bluetooth/smp.c
3347
struct l2cap_chan *chan;
net/bluetooth/smp.c
3358
chan = hdev->smp_data;
net/bluetooth/smp.c
3360
smp_del_chan(chan);
net/bluetooth/smp.c
3363
chan = smp_add_cid(hdev, L2CAP_CID_SMP);
net/bluetooth/smp.c
3364
if (IS_ERR(chan))
net/bluetooth/smp.c
3365
return PTR_ERR(chan);
net/bluetooth/smp.c
3367
hdev->smp_data = chan;
net/bluetooth/smp.c
3376
chan = hdev->smp_bredr_data;
net/bluetooth/smp.c
3378
smp_del_chan(chan);
net/bluetooth/smp.c
3381
chan = smp_add_cid(hdev, L2CAP_CID_SMP_BREDR);
net/bluetooth/smp.c
3382
if (IS_ERR(chan)) {
net/bluetooth/smp.c
3383
int err = PTR_ERR(chan);
net/bluetooth/smp.c
3384
chan = hdev->smp_data;
net/bluetooth/smp.c
3386
smp_del_chan(chan);
net/bluetooth/smp.c
3390
hdev->smp_bredr_data = chan;
net/bluetooth/smp.c
3397
struct l2cap_chan *chan;
net/bluetooth/smp.c
3400
chan = hdev->smp_bredr_data;
net/bluetooth/smp.c
3402
smp_del_chan(chan);
net/bluetooth/smp.c
3406
chan = hdev->smp_data;
net/bluetooth/smp.c
3408
smp_del_chan(chan);
net/bluetooth/smp.c
479
struct l2cap_chan *chan = hdev->smp_data;
net/bluetooth/smp.c
483
if (!chan || !chan->data)
net/bluetooth/smp.c
497
struct l2cap_chan *chan = hdev->smp_data;
net/bluetooth/smp.c
500
if (!chan || !chan->data)
net/bluetooth/smp.c
519
struct l2cap_chan *chan = hdev->smp_data;
net/bluetooth/smp.c
523
if (!chan || !chan->data)
net/bluetooth/smp.c
526
smp = chan->data;
net/bluetooth/smp.c
569
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
574
if (!chan)
net/bluetooth/smp.c
589
l2cap_chan_send(chan, &msg, 1 + len, NULL);
net/bluetooth/smp.c
591
if (!chan->data)
net/bluetooth/smp.c
594
smp = chan->data;
net/bluetooth/smp.c
629
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
630
struct smp_chan *smp = chan->data;
net/bluetooth/smp.c
703
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
705
struct smp_chan *smp = chan->data;
net/bluetooth/smp.c
722
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
723
struct smp_chan *smp = chan->data;
net/bluetooth/smp.c
768
chan->data = NULL;
net/bluetooth/smp.c
776
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
784
if (chan->data)
net/bluetooth/smp.c
831
struct l2cap_chan *chan = conn->smp;
net/bluetooth/smp.c
832
struct smp_chan *smp = chan->data;
net/l2tp/l2tp_ppp.c
125
static int pppol2tp_xmit(struct ppp_channel *chan, struct sk_buff *skb);
net/l2tp/l2tp_ppp.c
1565
seq_printf(m, " interface %s\n", ppp_dev_name(&po->chan));
net/l2tp/l2tp_ppp.c
225
ppp_input(&po->chan, skb);
net/l2tp/l2tp_ppp.c
330
static int pppol2tp_xmit(struct ppp_channel *chan, struct sk_buff *skb)
net/l2tp/l2tp_ppp.c
332
struct sock *sk = (struct sock *)chan->private;
net/l2tp/l2tp_ppp.c
508
seq_printf(m, " interface %s\n", ppp_dev_name(&po->chan));
net/l2tp/l2tp_ppp.c
796
po->chan.hdrlen = PPPOL2TP_L2TP_HDR_SIZE_SEQ;
net/l2tp/l2tp_ppp.c
798
po->chan.private = sk;
net/l2tp/l2tp_ppp.c
799
po->chan.ops = &pppol2tp_chan_ops;
net/l2tp/l2tp_ppp.c
800
po->chan.mtu = pppol2tp_tunnel_mtu(tunnel);
net/l2tp/l2tp_ppp.c
801
po->chan.direct_xmit = true;
net/l2tp/l2tp_ppp.c
803
error = ppp_register_net_channel(sock_net(sk), &po->chan);
net/mac80211/airtime.c
773
band = conf->def.chan->band;
net/mac80211/cfg.c
1445
if (link->conf->chanreq.oper.chan->band == NL80211_BAND_S1GHZ)
net/mac80211/cfg.c
1846
sdata->vif.cfg.s1g = params->chandef.chan->band == NL80211_BAND_S1GHZ;
net/mac80211/cfg.c
3495
struct ieee80211_channel *chan;
net/mac80211/cfg.c
3529
chan = link->conf->chanreq.oper.chan;
net/mac80211/cfg.c
3530
radio_idx = cfg80211_get_radio_idx_by_chan(wiphy, chan);
net/mac80211/cfg.c
4123
sdata->vif.bss_conf.chanreq.oper.chan) {
net/mac80211/cfg.c
4127
band = sdata->vif.bss_conf.chanreq.oper.chan->band;
net/mac80211/cfg.c
4184
req_radio_idx = cfg80211_get_radio_idx_by_chan(wiphy, chandef->chan);
net/mac80211/cfg.c
4202
roc->chan);
net/mac80211/cfg.c
4641
if (sdata->u.ibss.chandef.chan->band !=
net/mac80211/cfg.c
4642
params->chandef.chan->band)
net/mac80211/cfg.c
4660
if (sdata->vif.bss_conf.chanreq.oper.chan->band !=
net/mac80211/cfg.c
4661
params->chandef.chan->band)
net/mac80211/cfg.c
4754
if (params->chandef.chan->freq_offset) {
net/mac80211/cfg.c
5012
band = chanctx_conf->def.chan->band;
net/mac80211/chan.c
1139
!sta->tdls_chandef.chan)
net/mac80211/chan.c
278
if (!a->ap.chan && !b->ap.chan)
net/mac80211/chan.c
291
if (a->ap.chan && b->ap.chan &&
net/mac80211/chan.c
321
tmp->ap = a->ap.chan ? a->ap : b->ap;
net/mac80211/chan.c
46
if (!nan_channel->chanreq.oper.chan)
net/mac80211/chan.c
679
local->hw.wiphy->bands[ctx->conf.def.chan->band];
net/mac80211/chan.c
958
struct ieee80211_channel *chan;
net/mac80211/chan.c
968
chan = link->conf->chanreq.oper.chan;
net/mac80211/chan.c
969
radio_idx = cfg80211_get_radio_idx_by_chan(wiphy, chan);
net/mac80211/driver-ops.h
799
struct ieee80211_channel *chan,
net/mac80211/driver-ops.h
808
trace_drv_remain_on_channel(local, sdata, chan, duration, type);
net/mac80211/driver-ops.h
810
chan, duration, type);
net/mac80211/ethtool.c
161
channel = chanctx_conf->def.chan;
net/mac80211/ethtool.c
165
channel = local->monitor_chanreq.oper.chan;
net/mac80211/ibss.c
1080
sdata->u.ibss.chandef.chan != cbss->channel)
net/mac80211/ibss.c
1171
band = chanctx_conf->def.chan->band;
net/mac80211/ibss.c
127
chandef->chan->center_freq);
net/mac80211/ibss.c
1295
struct ieee80211_channel *chan = NULL;
net/mac80211/ibss.c
1308
chan = ieee80211_get_channel(wiphy, freq);
net/mac80211/ibss.c
1309
if (!chan)
net/mac80211/ibss.c
1314
channels[n_chan] = chan;
net/mac80211/ibss.c
1369
struct ieee80211_channel *chan = NULL;
net/mac80211/ibss.c
1384
chan = ifibss->chandef.chan;
net/mac80211/ibss.c
1387
cbss = cfg80211_get_bss(local->hw.wiphy, chan, bssid,
net/mac80211/ibss.c
141
csa_settings->chandef.chan->center_freq);
net/mac80211/ibss.c
1692
if (params->chandef.chan->freq_offset) {
net/mac80211/ibss.c
222
struct ieee80211_channel *chan;
net/mac80211/ibss.c
257
chan = chanreq.oper.chan;
net/mac80211/ibss.c
267
chanreq.oper.center_freq1 = chan->center_freq;
net/mac80211/ibss.c
337
sdata->vif.bss_conf.use_short_slot = chan->band == NL80211_BAND_5GHZ;
net/mac80211/ibss.c
342
chan->band == NL80211_BAND_2GHZ && have_higher_than_11mbit;
net/mac80211/ibss.c
369
bss_meta.chan = chan;
net/mac80211/ibss.c
375
cfg80211_ibss_joined(sdata->dev, ifibss->bssid, chan, GFP_KERNEL);
net/mac80211/ibss.c
408
chandef.chan = cbss->channel;
net/mac80211/ibss.c
466
cbss = cfg80211_get_bss(sdata->local->hw.wiphy, ifibss->chandef.chan,
net/mac80211/ibss.c
512
ifibss->chandef.chan,
net/mac80211/ibss.c
519
cbss->channel = sdata->deflink.csa.chanreq.oper.chan;
net/mac80211/ibss.c
603
band = chanctx_conf->def.chan->band;
net/mac80211/ibss.c
657
cbss = cfg80211_get_bss(local->hw.wiphy, ifibss->chandef.chan,
net/mac80211/ibss.c
769
ifibss->chandef.chan->band,
net/mac80211/ibss.c
798
cfg80211_chandef_create(&params.chandef, params.chandef.chan,
net/mac80211/ibss.c
812
params.chandef.chan->center_freq,
net/mac80211/ibss.c
841
params.chandef.chan->center_freq);
net/mac80211/ibss.c
92
sband = local->hw.wiphy->bands[chandef->chan->band];
net/mac80211/ieee80211_i.h
1755
band = chanctx_conf->def.chan->band;
net/mac80211/ieee80211_i.h
1775
band = chanctx_conf->def.chan->band;
net/mac80211/ieee80211_i.h
2153
struct ieee80211_channel *chan,
net/mac80211/ieee80211_i.h
2714
struct ieee80211_channel *chan,
net/mac80211/ieee80211_i.h
2805
chanreq->ap.chan = NULL;
net/mac80211/ieee80211_i.h
370
struct ieee80211_channel *chan;
net/mac80211/iface.c
923
WARN_ON(nan_sched->channels[i].chanreq.oper.chan);
net/mac80211/main.c
112
if (ctx && !WARN_ON(!ctx->def.chan)) {
net/mac80211/main.c
1126
struct ieee80211_channel *chan)
net/mac80211/main.c
1129
.chan = chan,
net/mac80211/main.c
1130
.width = chan->band == NL80211_BAND_S1GHZ ?
net/mac80211/main.c
1133
.center_freq1 = chan->center_freq,
net/mac80211/main.c
1134
.freq1_offset = chan->freq_offset,
net/mac80211/main.c
122
if (local->scan_chandef.chan) {
net/mac80211/main.c
125
chandef.chan = local->tmp_channel;
net/mac80211/main.c
1269
if (!dflt_chandef.chan) {
net/mac80211/main.c
127
chandef.center_freq1 = chandef.chan->center_freq;
net/mac80211/main.c
128
chandef.freq1_offset = chandef.chan->freq_offset;
net/mac80211/main.c
137
chandef.chan ? chandef.chan->center_freq : -1,
net/mac80211/main.c
138
chandef.chan ? chandef.chan->freq_offset : 0,
net/mac80211/mesh.c
1025
csa->settings.chandef.chan->center_freq);
net/mac80211/mesh.c
103
cfg80211_chandef_create(&sta_chan_def, sdata->vif.bss_conf.chanreq.oper.chan,
net/mac80211/mesh.c
1323
params.chandef.chan->center_freq,
net/mac80211/mesh.c
1339
params.chandef.chan->center_freq,
net/mac80211/mesh.c
1357
params.chandef.chan->center_freq);
net/mac80211/mesh.c
1533
sdata->vif.bss_conf.chanreq.oper.chan->center_freq);
net/mac80211/mesh.c
404
struct ieee80211_channel *chan;
net/mac80211/mesh.c
416
chan = chanctx_conf->def.chan;
net/mac80211/mesh.c
422
*pos++ = ieee80211_frequency_to_channel(chan->center_freq);
net/mac80211/mesh.c
470
channel = chanctx_conf->def.chan;
net/mac80211/mesh.c
538
channel = chanctx_conf->def.chan;
net/mac80211/mesh.c
595
if (sdata->vif.bss_conf.chanreq.oper.chan->band == NL80211_BAND_6GHZ)
net/mac80211/mlme.c
1163
chanreq->ap.chan = NULL;
net/mac80211/mlme.c
1341
chanreq->oper.chan->center_freq);
net/mac80211/mlme.c
1596
struct ieee80211_channel *channel = link->conf->chanreq.oper.chan;
net/mac80211/mlme.c
1686
ap_chandef.chan->band == NL80211_BAND_6GHZ &&
net/mac80211/mlme.c
1748
link->u.mgd.bssid, frame, chanreq.oper.chan->center_freq,
net/mac80211/mlme.c
1749
chanreq.oper.chan->freq_offset, chanreq.oper.width,
net/mac80211/mlme.c
215
.chan = channel,
net/mac80211/mlme.c
2165
struct ieee80211_channel *chan = cbss->channel;
net/mac80211/mlme.c
2205
sband = local->hw.wiphy->bands[chan->band];
net/mac80211/mlme.c
2224
.chan = chan,
net/mac80211/mlme.c
2267
sband, chan, smps_mode,
net/mac80211/mlme.c
2316
ieee80211_put_reg_conn(skb, chan->flags);
net/mac80211/mlme.c
2984
if (link->u.mgd.csa.ap_chandef.chan->band == NL80211_BAND_6GHZ &&
net/mac80211/mlme.c
3118
struct ieee80211_channel *chan;
net/mac80211/mlme.c
3164
data->chan = ieee80211_get_channel(sdata->local->hw.wiphy, center_freq);
net/mac80211/mlme.c
3201
if (!data.chan) {
net/mac80211/mlme.c
3216
if (data.chan != link->csa.chanreq.oper.chan)
net/mac80211/mlme.c
3376
if (link->conf->chanreq.oper.chan->band !=
net/mac80211/mlme.c
3377
csa_ie.chanreq.oper.chan->band) {
net/mac80211/mlme.c
3381
csa_ie.chanreq.oper.chan->center_freq,
net/mac80211/mlme.c
3393
csa_ie.chanreq.oper.chan->center_freq,
net/mac80211/mlme.c
3394
csa_ie.chanreq.oper.chan->freq_offset,
net/mac80211/mlme.c
3602
int chan = ieee80211_frequency_to_channel(channel->center_freq);
net/mac80211/mlme.c
3644
if (first_channel + i * chan_increment == chan) {
net/mac80211/mlme.c
6054
if (WARN_ON(!link->conf->chanreq.oper.chan)) {
net/mac80211/mlme.c
6058
sband = local->hw.wiphy->bands[link->conf->chanreq.oper.chan->band];
net/mac80211/mlme.c
8036
u32 pri_khz = ieee80211_channel_to_khz(chanctx->def.chan);
net/mac80211/mlme.c
8075
struct ieee80211_channel *chan;
net/mac80211/mlme.c
8118
chan = chanctx_conf->def.chan;
net/mac80211/mlme.c
8388
if (WARN_ON(!bss_conf->chanreq.oper.chan))
net/mac80211/mlme.c
8391
sband = local->hw.wiphy->bands[bss_conf->chanreq.oper.chan->band];
net/mac80211/mlme.c
8412
changed |= ieee80211_handle_pwr_constr(link, chan, mgmt,
net/mac80211/nan.c
189
if (!nan_channel->chanreq.oper.chan)
net/mac80211/nan.c
244
if (!sched_cfg->channels[i].chanreq.oper.chan)
net/mac80211/nan.c
302
if (!sched_cfg->channels[i].chanreq.oper.chan)
net/mac80211/nan.c
324
struct ieee80211_nan_channel *chan = sched_idx_to_chan[i];
net/mac80211/nan.c
326
if (chan) {
net/mac80211/nan.c
327
ieee80211_nan_update_channel(sdata->local, chan,
net/mac80211/nan.c
331
chan = ieee80211_nan_find_free_channel(sched_cfg);
net/mac80211/nan.c
332
if (WARN_ON(!chan)) {
net/mac80211/nan.c
337
sched_idx_to_chan[i] = chan;
net/mac80211/nan.c
338
ieee80211_nan_init_channel(chan,
net/mac80211/nan.c
343
if (!chan->chanctx_conf) {
net/mac80211/nan.c
344
ret = ieee80211_nan_use_chanctx(sdata, chan, false);
net/mac80211/nan.c
346
memset(chan, 0, sizeof(*chan));
net/mac80211/nan.c
383
if (!chan_def->chan)
net/mac80211/nan.c
394
struct ieee80211_nan_channel *chan = &sched_cfg->channels[i];
net/mac80211/nan.c
396
*chan = backup_sched->channels[i];
net/mac80211/nan.c
402
if (!chan->chanctx_conf || sched->deferred)
net/mac80211/nan.c
407
chan->chanctx_conf = NULL;
net/mac80211/nan.c
414
WARN_ON(ieee80211_nan_use_chanctx(sdata, chan, true));
net/mac80211/nan.c
416
struct ieee80211_chanctx_conf *conf = chan->chanctx_conf;
net/mac80211/nan.c
463
struct ieee80211_nan_channel *chan = &sched_cfg->channels[i];
net/mac80211/nan.c
464
struct ieee80211_chanctx_conf *conf = chan->chanctx_conf;
net/mac80211/nan.c
466
if (!chan->chanreq.oper.chan)
net/mac80211/nan.c
470
ieee80211_nan_remove_channel(sdata, chan);
net/mac80211/nan.c
511
if (!local_chan->chanreq.oper.chan)
net/mac80211/nan.c
533
if (WARN_ON(!new_chan->chanreq.oper.chan))
net/mac80211/nan.c
70
if (!nan_channel->chanreq.oper.chan)
net/mac80211/nan.c
727
if (WARN_ON(!nan_channel || !nan_channel->chanreq.oper.chan))
net/mac80211/nan.c
779
struct ieee80211_nan_channel *chan =
net/mac80211/nan.c
784
if (!chan->chanreq.oper.chan || !chan->chanctx_conf)
net/mac80211/nan.c
789
chan_ctx = container_of(chan->chanctx_conf,
net/mac80211/nan.c
795
evac_chan = chan;
net/mac80211/nan.c
805
if (sched_cfg->schedule[s] == chan)
net/mac80211/nan.c
810
evac_chan = chan;
net/mac80211/ocb.c
70
band = chanctx_conf->def.chan->band;
net/mac80211/offchannel.c
1046
ret = ieee80211_start_roc_work(local, sdata, params->chan,
net/mac80211/offchannel.c
183
roc->cookie, roc->chan,
net/mac80211/offchannel.c
188
roc->chan, GFP_KERNEL);
net/mac80211/offchannel.c
249
roc->chan->band);
net/mac80211/offchannel.c
254
roc->chan, roc->req_duration,
net/mac80211/offchannel.c
314
if (tmp->sdata != roc->sdata || tmp->chan != roc->chan)
net/mac80211/offchannel.c
322
int ret = drv_remain_on_channel(local, roc->sdata, roc->chan,
net/mac80211/offchannel.c
334
tmp->chan != roc->chan)
net/mac80211/offchannel.c
345
if (tmp->sdata != roc->sdata || tmp->chan != roc->chan)
net/mac80211/offchannel.c
358
roc->on_channel = roc->chan == local->hw.conf.chandef.chan;
net/mac80211/offchannel.c
366
local->tmp_channel = roc->chan;
net/mac80211/offchannel.c
375
if (tmp->sdata != roc->sdata || tmp->chan != roc->chan)
net/mac80211/offchannel.c
596
roc->chan = channel;
net/mac80211/offchannel.c
644
if (tmp->chan != channel || tmp->sdata != sdata)
net/mac80211/offchannel.c
706
struct ieee80211_channel *chan,
net/mac80211/offchannel.c
715
return ieee80211_start_roc_work(local, sdata, chan,
net/mac80211/offchannel.c
912
if (need_offchan && !params->chan)
net/mac80211/offchannel.c
916
if (!params->chan && mlo_sta) {
net/mac80211/offchannel.c
938
if (mlo_sta && params->chan == chanctx_conf->def.chan &&
net/mac80211/offchannel.c
951
params->chan == chanctx_conf->def.chan)
net/mac80211/offchannel.c
961
need_offchan = params->chan &&
net/mac80211/offchannel.c
962
(params->chan !=
net/mac80211/offchannel.c
963
chanctx_conf->def.chan);
net/mac80211/rate.c
302
if (WARN_ON(!link->conf->chanreq.oper.chan))
net/mac80211/rate.c
305
band = link->conf->chanreq.oper.chan->band;
net/mac80211/rate.c
56
sband = local->hw.wiphy->bands[chanctx_conf->def.chan->band];
net/mac80211/rx.c
5348
if (!conf || !conf->def.chan)
net/mac80211/rx.c
5351
if (status->freq == conf->def.chan->center_freq) {
net/mac80211/rx.c
931
if (chandef->chan &&
net/mac80211/rx.c
932
chandef->chan->center_freq != status->freq)
net/mac80211/scan.c
1001
chan = scan_req->channels[local->scan_channel_idx];
net/mac80211/scan.c
1003
local->scan_chandef.chan = chan;
net/mac80211/scan.c
1004
local->scan_chandef.center_freq1 = chan->center_freq;
net/mac80211/scan.c
1005
local->scan_chandef.freq1_offset = chan->freq_offset;
net/mac80211/scan.c
1009
if (chan->band == NL80211_BAND_S1GHZ) {
net/mac80211/scan.c
1019
if (chan == local->hw.conf.chandef.chan)
net/mac80211/scan.c
1047
if ((chan->flags & (IEEE80211_CHAN_NO_IR | IEEE80211_CHAN_RADAR)) ||
net/mac80211/scan.c
1066
local->scan_chandef.chan = NULL;
net/mac80211/scan.c
194
bss_meta.chan = channel;
net/mac80211/scan.c
504
local->scan_chandef.chan = NULL;
net/mac80211/scan.c
695
enum nl80211_band band = local->hw.conf.chandef.chan->band;
net/mac80211/scan.c
718
tx_flags, local->hw.conf.chandef.chan);
net/mac80211/scan.c
836
(req->channels[0] == local->hw.conf.chandef.chan)) {
net/mac80211/scan.c
912
ieee80211_scan_get_channel_time(struct ieee80211_channel *chan)
net/mac80211/scan.c
918
if (chan->flags & (IEEE80211_CHAN_NO_IR | IEEE80211_CHAN_RADAR))
net/mac80211/scan.c
994
struct ieee80211_channel *chan;
net/mac80211/spectmgmt.c
139
chandef->chan = NULL;
net/mac80211/spectmgmt.c
161
chandef->chan = NULL;
net/mac80211/spectmgmt.c
165
control_freq = chandef->chan->center_freq;
net/mac80211/spectmgmt.c
217
chandef->chan = NULL;
net/mac80211/spectmgmt.c
28
u32 cf0 = ieee80211_channel_to_frequency(ccfs0, chandef->chan->band);
net/mac80211/spectmgmt.c
29
u32 cf1 = ieee80211_channel_to_frequency(ccfs1, chandef->chan->band);
net/mac80211/spectmgmt.c
340
new_chandef.chan = new_chan;
net/mac80211/spectmgmt.c
365
if (new_chandef.chan) {
net/mac80211/spectmgmt.c
85
chandef->chan = NULL;
net/mac80211/spectmgmt.c
89
control_freq = chandef->chan->center_freq;
net/mac80211/sta_info.c
1991
info->band = chanctx_conf->def.chan->band;
net/mac80211/sta_info.c
3735
return min(ieee80211_sta_usable_bw(link_sta, chandef->chan->band),
net/mac80211/sta_info.c
3749
band = chandef->chan->band;
net/mac80211/sta_info.c
3770
sta->tdls_chandef.chan)
net/mac80211/sta_info.c
3814
band = link->conf->chanreq.oper.chan->band;
net/mac80211/tdls.c
1331
sband = local->hw.wiphy->bands[conf->def.chan->band];
net/mac80211/tdls.c
1617
sta->sta.addr, chandef->chan->center_freq, chandef->width);
net/mac80211/tdls.c
1635
if (chandef->chan->freq_offset)
net/mac80211/tdls.c
1848
struct ieee80211_channel *chan;
net/mac80211/tdls.c
1900
chan = ieee80211_get_channel(sdata->local->hw.wiphy, freq);
net/mac80211/tdls.c
1901
if (!chan) {
net/mac80211/tdls.c
1944
cfg80211_chandef_create(&chandef, chan, chan_type);
net/mac80211/tdls.c
1997
tf->sa, params.chandef->chan->center_freq,
net/mac80211/tdls.c
339
if (abs(uc.chan->center_freq - centers_80mhz[i]) <= 30) {
net/mac80211/tdls.c
707
ieee80211_frequency_to_channel(chandef->chan->center_freq);
net/mac80211/tests/tpe.c
105
.c.chan = &chan6g_61,
net/mac80211/tests/tpe.c
115
.c.chan = &chan6g_61,
net/mac80211/tests/tpe.c
146
.ap.chan = &chan6g_1,
net/mac80211/tests/tpe.c
150
.used.chan = &chan6g_1,
net/mac80211/tests/tpe.c
167
.ap.chan = &chan6g_1,
net/mac80211/tests/tpe.c
171
.used.chan = &chan6g_1,
net/mac80211/tests/tpe.c
188
.ap.chan = &chan6g_1,
net/mac80211/tests/tpe.c
192
.used.chan = &chan6g_1,
net/mac80211/tests/tpe.c
214
.ap.chan = &chan6g_61,
net/mac80211/tests/tpe.c
218
.used.chan = &chan6g_61,
net/mac80211/tests/tpe.c
240
.ap.chan = &chan6g_33,
net/mac80211/tests/tpe.c
244
.used.chan = &chan6g_33,
net/mac80211/tests/tpe.c
36
.c.chan = &chan6g_1,
net/mac80211/tests/tpe.c
44
.c.chan = &chan6g_1,
net/mac80211/tests/tpe.c
53
.c.chan = &chan6g_1,
net/mac80211/tests/tpe.c
62
.c.chan = &chan6g_1,
net/mac80211/tests/tpe.c
70
.c.chan = &chan6g_1,
net/mac80211/tests/tpe.c
78
.c.chan = &chan6g_61,
net/mac80211/tests/tpe.c
86
.c.chan = &chan6g_61,
net/mac80211/tests/tpe.c
95
.c.chan = &chan6g_1,
net/mac80211/trace.h
1380
struct ieee80211_channel *chan,
net/mac80211/trace.h
1384
TP_ARGS(local, sdata, chan, duration, type),
net/mac80211/trace.h
1398
__entry->center_freq = chan->center_freq;
net/mac80211/trace.h
1399
__entry->freq_offset = chan->freq_offset;
net/mac80211/trace.h
1790
old_ctx->def.chan->center_freq);
net/mac80211/trace.h
1792
old_ctx->def.chan->freq_offset);
net/mac80211/trace.h
1802
new_ctx->def.chan->center_freq);
net/mac80211/trace.h
1804
new_ctx->def.chan->freq_offset);
net/mac80211/trace.h
51
__entry->n##control_freq = (c) && (c)->chan ? \
net/mac80211/trace.h
52
(c)->chan->center_freq : 0; \
net/mac80211/trace.h
53
__entry->n##freq_offset = (c) && (c)->chan ? \
net/mac80211/trace.h
54
(c)->chan->freq_offset : 0; \
net/mac80211/tx.c
2457
info->band = chandef->chan->band;
net/mac80211/tx.c
2902
band = chanctx_conf->def.chan->band;
net/mac80211/tx.c
3151
build.band = chanctx_conf->def.chan->band;
net/mac80211/tx.c
4947
info->band = chanctx_conf->def.chan->band;
net/mac80211/tx.c
5512
band = chanctx_conf->def.chan->band;
net/mac80211/tx.c
6309
info->band = chanctx_conf->def.chan->band;
net/mac80211/tx.c
6487
band = chanctx_conf->def.chan->band;
net/mac80211/util.c
1000
center_freq = chanctx_conf->def.chan->center_freq;
net/mac80211/util.c
1048
chanctx_conf->def.chan->band == NL80211_BAND_2GHZ) &&
net/mac80211/util.c
1313
if (chandef->chan && sband->band == NL80211_BAND_2GHZ) {
net/mac80211/util.c
1319
ieee80211_frequency_to_channel(chandef->chan->center_freq));
net/mac80211/util.c
1546
struct ieee80211_channel *chan,
net/mac80211/util.c
1565
chandef.chan = NULL;
net/mac80211/util.c
1567
chandef.chan = chan;
net/mac80211/util.c
1574
rate_masks[chan->band] = ratemask;
net/mac80211/util.c
1576
ie, ie_len, BIT(chan->band),
net/mac80211/util.c
2792
chandef->chan->center_freq);
net/mac80211/util.c
2798
if (chandef->center_freq1 > chandef->chan->center_freq)
net/mac80211/util.c
2887
if (chandef->chan->center_freq < chandef->center_freq1)
net/mac80211/util.c
2925
if (chandef->chan->band == NL80211_BAND_6GHZ)
net/mac80211/util.c
2939
if (chandef->chan->band == NL80211_BAND_6GHZ)
net/mac80211/util.c
2950
if (chandef->chan->band != NL80211_BAND_6GHZ)
net/mac80211/util.c
2953
cfg80211_chandef_create(&he_chandef, chandef->chan, NL80211_CHAN_NO_HT);
net/mac80211/util.c
2962
ieee80211_frequency_to_channel(he_chandef.chan->center_freq);
net/mac80211/util.c
2987
if (he_chandef.chan->center_freq < he_chandef.center_freq1)
net/mac80211/util.c
3054
if (chandef->chan->center_freq < chandef->center_freq1)
net/mac80211/util.c
3061
if (chandef->chan->center_freq < chandef->center_freq1)
net/mac80211/util.c
3109
cfg80211_chandef_create(chandef, chandef->chan, channel_type);
net/mac80211/util.c
3133
vht_cap = hw->wiphy->bands[chandef->chan->band]->vht_cap.cap;
net/mac80211/util.c
3193
cf0 = ieee80211_channel_to_frequency(ccf0, chandef->chan->band);
net/mac80211/util.c
3194
cf1 = ieee80211_channel_to_frequency(ccf1, chandef->chan->band);
net/mac80211/util.c
3244
chandef->chan->band);
net/mac80211/util.c
3261
chandef->chan->band);
net/mac80211/util.c
3267
chandef->chan->band);
net/mac80211/util.c
3281
if (chandef->chan->band != NL80211_BAND_6GHZ)
net/mac80211/util.c
3298
he_chandef.chan = ieee80211_get_channel(local->hw.wiphy, freq);
net/mac80211/util.c
3300
if (!he_chandef.chan)
net/mac80211/util.c
3409
chandef->chan =
net/mac80211/util.c
3412
return chandef->chan;
net/mac80211/util.c
3787
c->center_freq1 = c->chan->center_freq;
net/mac80211/util.c
3905
freq = csa_settings->chandef.chan->center_freq;
net/mac80211/util.c
4200
struct ieee80211_channel *chan;
net/mac80211/util.c
4204
chan = scan_req->channels[i];
net/mac80211/util.c
4205
chan_radio_idx = cfg80211_get_radio_idx_by_chan(wiphy, chan);
net/mac80211/util.c
4330
!chandef->chan))
net/mac802154/ieee802154_i.h
238
void mac802154_dev_set_page_channel(struct net_device *dev, u8 page, u8 chan);
net/mac802154/mib.c
21
void mac802154_dev_set_page_channel(struct net_device *dev, u8 page, u8 chan)
net/mac802154/mib.c
31
res = drv_set_channel(local, page, chan);
net/mac802154/mib.c
35
local->phy->current_channel = chan;
net/qrtr/mhi.c
160
{ .chan = "IPCR" },
net/rxrpc/call_object.c
447
u32 chan;
net/rxrpc/call_object.c
486
chan = sp->hdr.cid & RXRPC_CHANNELMASK;
net/rxrpc/call_object.c
487
conn->channels[chan].call_counter = call->call_id;
net/rxrpc/call_object.c
488
conn->channels[chan].call_id = call->call_id;
net/rxrpc/call_object.c
489
conn->channels[chan].call = call;
net/rxrpc/conn_client.c
415
struct rxrpc_channel *chan = &conn->channels[channel];
net/rxrpc/conn_client.c
419
u32 call_id = chan->call_counter + 1;
net/rxrpc/conn_client.c
444
chan->call_id = call_id;
net/rxrpc/conn_client.c
445
chan->call_debug_id = call->debug_id;
net/rxrpc/conn_client.c
446
chan->call = call;
net/rxrpc/conn_client.c
537
struct rxrpc_channel *chan = &conn->channels[channel];
net/rxrpc/conn_client.c
545
chan->call_counter++;
net/rxrpc/conn_client.c
546
if (chan->call_counter >= INT_MAX)
net/rxrpc/conn_client.c
576
struct rxrpc_channel *chan = NULL;
net/rxrpc/conn_client.c
601
chan = &conn->channels[channel];
net/rxrpc/conn_client.c
604
if (WARN_ON(chan->call != call))
net/rxrpc/conn_client.c
645
chan->final_ack_at = final_ack_at;
net/rxrpc/conn_client.c
652
chan->call = NULL;
net/rxrpc/conn_event.c
115
chan = &conn->channels[channel];
net/rxrpc/conn_event.c
120
call_id = chan->last_call;
net/rxrpc/conn_event.c
144
pkt.whdr.type = chan->last_type;
net/rxrpc/conn_event.c
152
switch (chan->last_type) {
net/rxrpc/conn_event.c
154
pkt.abort_code = htonl(chan->last_abort);
net/rxrpc/conn_event.c
170
pkt.ack.firstPacket = htonl(chan->last_seq + 1);
net/rxrpc/conn_event.c
171
pkt.ack.previousPacket = htonl(chan->last_seq);
net/rxrpc/conn_event.c
185
trace_rxrpc_tx_ack(chan->call_debug_id, serial,
net/rxrpc/conn_event.c
199
trace_rxrpc_tx_fail(chan->call_debug_id, serial, ret,
net/rxrpc/conn_event.c
202
trace_rxrpc_tx_packet(chan->call_debug_id, &pkt.whdr,
net/rxrpc/conn_event.c
354
struct rxrpc_channel *chan = &conn->channels[channel];
net/rxrpc/conn_event.c
360
ack_at = chan->final_ack_at;
net/rxrpc/conn_event.c
90
struct rxrpc_channel *chan;
net/rxrpc/conn_object.c
154
struct rxrpc_channel *chan =
net/rxrpc/conn_object.c
159
if (chan->call == call) {
net/rxrpc/conn_object.c
166
chan->last_seq = call->rx_highest_seq;
net/rxrpc/conn_object.c
167
chan->last_type = RXRPC_PACKET_TYPE_ACK;
net/rxrpc/conn_object.c
170
chan->last_abort = call->abort_code;
net/rxrpc/conn_object.c
171
chan->last_type = RXRPC_PACKET_TYPE_ABORT;
net/rxrpc/conn_object.c
174
chan->last_abort = RX_CALL_DEAD;
net/rxrpc/conn_object.c
175
chan->last_type = RXRPC_PACKET_TYPE_ABORT;
net/rxrpc/conn_object.c
179
chan->last_call = chan->call_id;
net/rxrpc/conn_object.c
180
chan->call_id = chan->call_counter;
net/rxrpc/conn_object.c
181
chan->call = NULL;
net/rxrpc/io_thread.c
332
struct rxrpc_channel *chan;
net/rxrpc/io_thread.c
368
chan = &conn->channels[channel];
net/rxrpc/io_thread.c
371
if (sp->hdr.callNumber < chan->last_call)
net/rxrpc/io_thread.c
374
if (sp->hdr.callNumber == chan->last_call) {
net/rxrpc/io_thread.c
375
if (chan->call ||
net/rxrpc/io_thread.c
383
chan->last_type == RXRPC_PACKET_TYPE_ACK)
net/rxrpc/io_thread.c
390
trace_rxrpc_rx_data(chan->call_debug_id,
net/rxrpc/io_thread.c
398
call = rxrpc_try_get_call(chan->call, rxrpc_call_get_input);
net/rxrpc/io_thread.c
400
if (sp->hdr.callNumber > chan->call_id) {
net/vmw_vsock/hyperv_transport.c
100
struct vmbus_channel *chan;
net/vmw_vsock/hyperv_transport.c
177
static void hvs_set_channel_pending_send_size(struct vmbus_channel *chan)
net/vmw_vsock/hyperv_transport.c
179
set_channel_pending_send_size(chan,
net/vmw_vsock/hyperv_transport.c
185
static bool hvs_channel_readable(struct vmbus_channel *chan)
net/vmw_vsock/hyperv_transport.c
187
u32 readable = hv_get_bytes_to_read(&chan->inbound);
net/vmw_vsock/hyperv_transport.c
193
static int hvs_channel_readable_payload(struct vmbus_channel *chan)
net/vmw_vsock/hyperv_transport.c
195
u32 readable = hv_get_bytes_to_read(&chan->inbound);
net/vmw_vsock/hyperv_transport.c
214
static size_t hvs_channel_writable_bytes(struct vmbus_channel *chan)
net/vmw_vsock/hyperv_transport.c
216
u32 writeable = hv_get_bytes_to_write(&chan->outbound);
net/vmw_vsock/hyperv_transport.c
231
static int __hvs_send_data(struct vmbus_channel *chan,
net/vmw_vsock/hyperv_transport.c
237
return vmbus_sendpacket(chan, hdr, sizeof(*hdr) + to_write,
net/vmw_vsock/hyperv_transport.c
241
static int hvs_send_data(struct vmbus_channel *chan,
net/vmw_vsock/hyperv_transport.c
244
return __hvs_send_data(chan, &send_buf->hdr, to_write);
net/vmw_vsock/hyperv_transport.c
252
struct vmbus_channel *chan = hvs->chan;
net/vmw_vsock/hyperv_transport.c
254
if (hvs_channel_readable(chan))
net/vmw_vsock/hyperv_transport.c
257
if (hv_get_bytes_to_write(&chan->outbound) > 0)
net/vmw_vsock/hyperv_transport.c
281
static void hvs_close_connection(struct vmbus_channel *chan)
net/vmw_vsock/hyperv_transport.c
283
struct sock *sk = get_per_channel_state(chan);
net/vmw_vsock/hyperv_transport.c
295
static void hvs_open_connection(struct vmbus_channel *chan)
net/vmw_vsock/hyperv_transport.c
309
if_type = &chan->offermsg.offer.if_type;
net/vmw_vsock/hyperv_transport.c
310
if_instance = &chan->offermsg.offer.if_instance;
net/vmw_vsock/hyperv_transport.c
311
conn_from_host = chan->offermsg.offer.u.pipe.user_def[0];
net/vmw_vsock/hyperv_transport.c
351
hvs_new->chan = chan;
net/vmw_vsock/hyperv_transport.c
354
hvs->chan = chan;
net/vmw_vsock/hyperv_transport.c
357
set_channel_read_mode(chan, HV_CALL_DIRECT);
net/vmw_vsock/hyperv_transport.c
384
chan->max_pkt_size = HVS_MAX_PKT_SIZE;
net/vmw_vsock/hyperv_transport.c
386
ret = vmbus_open(chan, sndbuf, rcvbuf, NULL, 0, hvs_channel_cb,
net/vmw_vsock/hyperv_transport.c
390
hvs_new->chan = NULL;
net/vmw_vsock/hyperv_transport.c
393
hvs->chan = NULL;
net/vmw_vsock/hyperv_transport.c
398
set_per_channel_state(chan, conn_from_host ? new : sk);
net/vmw_vsock/hyperv_transport.c
402
vmbus_set_chn_rescind_callback(chan, hvs_close_connection);
net/vmw_vsock/hyperv_transport.c
409
hvs_set_channel_pending_send_size(chan);
net/vmw_vsock/hyperv_transport.c
477
if (hvs->fin_sent || !hvs->chan)
net/vmw_vsock/hyperv_transport.c
481
(void)__hvs_send_data(hvs->chan, &hdr, 0);
net/vmw_vsock/hyperv_transport.c
545
struct vmbus_channel *chan = hvs->chan;
net/vmw_vsock/hyperv_transport.c
547
if (chan)
net/vmw_vsock/hyperv_transport.c
548
vmbus_hvsock_device_unregister(chan);
net/vmw_vsock/hyperv_transport.c
618
hvs->recv_desc = hv_pkt_iter_first(hvs->chan);
net/vmw_vsock/hyperv_transport.c
634
hvs->recv_desc = hv_pkt_iter_next(hvs->chan, hvs->recv_desc);
net/vmw_vsock/hyperv_transport.c
651
struct vmbus_channel *chan = hvs->chan;
net/vmw_vsock/hyperv_transport.c
668
max_writable = hvs_channel_writable_bytes(chan);
net/vmw_vsock/hyperv_transport.c
680
ret = hvs_send_data(hvs->chan, send_buf, to_write);
net/vmw_vsock/hyperv_transport.c
703
switch (hvs_channel_readable_payload(hvs->chan)) {
net/vmw_vsock/hyperv_transport.c
731
hvs->recv_desc = hv_pkt_iter_first(hvs->chan);
net/vmw_vsock/hyperv_transport.c
756
return hvs_channel_writable_bytes(hvs->chan);
net/vmw_vsock/hyperv_transport.c
768
return hvs->chan != NULL;
net/vmw_vsock/hyperv_transport.c
787
*readable = hvs_channel_readable(hvs->chan);
net/vmw_vsock/hyperv_transport.c
908
struct vmbus_channel *chan = hdev->channel;
net/vmw_vsock/hyperv_transport.c
910
hvs_open_connection(chan);
net/vmw_vsock/hyperv_transport.c
922
struct vmbus_channel *chan = hdev->channel;
net/vmw_vsock/hyperv_transport.c
924
vmbus_close(chan);
net/wireless/chan.c
1103
struct ieee80211_channel *chan,
net/wireless/chan.c
1109
if (!chandef->chan)
net/wireless/chan.c
1112
if (chandef->chan->center_freq == chan->center_freq)
net/wireless/chan.c
1124
if (chan->center_freq == freq)
net/wireless/chan.c
1133
if (chan->center_freq == freq)
net/wireless/chan.c
1183
struct ieee80211_channel *chan,
net/wireless/chan.c
1193
chan, primary_only))
net/wireless/chan.c
1198
return cfg80211_is_sub_chan(&wdev->u.ibss.chandef, chan,
net/wireless/chan.c
1201
return cfg80211_is_sub_chan(&wdev->u.mesh.chandef, chan,
net/wireless/chan.c
1211
struct ieee80211_channel *chan)
net/wireless/chan.c
1221
if (cfg80211_wdev_on_sub_chan(wdev, chan, false))
net/wireless/chan.c
1243
struct ieee80211_channel *chan)
net/wireless/chan.c
1249
if (!(chan->flags & IEEE80211_CHAN_RADAR))
net/wireless/chan.c
1260
found = cfg80211_is_wiphy_oper_chan(&rdev->wiphy, chan) ||
net/wireless/chan.c
1261
cfg80211_offchan_chain_is_active(rdev, chan);
net/wireless/chan.c
1363
struct ieee80211_channel *chan;
net/wireless/chan.c
1389
chan = ieee80211_get_channel(wiphy, freq);
net/wireless/chan.c
1390
if (!chan || chan->flags & IEEE80211_CHAN_DISABLED)
net/wireless/chan.c
1414
const struct ieee80211_channel *chan;
net/wireless/chan.c
1415
u32 pri_khz = ieee80211_channel_to_khz(chandef->chan);
net/wireless/chan.c
1428
if (chandef->chan->flags & IEEE80211_CHAN_S1G_NO_PRIMARY)
net/wireless/chan.c
1435
chan = ieee80211_get_channel_khz(wiphy, freq_khz);
net/wireless/chan.c
1436
if (!chan || (chan->flags & prohibited_flags))
net/wireless/chan.c
1477
ht_cap = &wiphy->bands[chandef->chan->band]->ht_cap;
net/wireless/chan.c
1478
vht_cap = &wiphy->bands[chandef->chan->band]->vht_cap;
net/wireless/chan.c
1479
edmg_cap = &wiphy->bands[chandef->chan->band]->edmg_cap;
net/wireless/chan.c
1490
chandef->chan->hw_value,
net/wireless/chan.c
1494
control_freq = chandef->chan->center_freq;
net/wireless/chan.c
1499
chandef->chan->band != NL80211_BAND_6GHZ)
net/wireless/chan.c
1508
if (chandef->chan->band == NL80211_BAND_6GHZ)
net/wireless/chan.c
1516
chandef->chan->flags & IEEE80211_CHAN_NO_HT40MINUS)
net/wireless/chan.c
1519
chandef->chan->flags & IEEE80211_CHAN_NO_HT40PLUS)
net/wireless/chan.c
1530
if (chandef->chan->band != NL80211_BAND_6GHZ && !support_80_80)
net/wireless/chan.c
1536
if (chandef->chan->band == NL80211_BAND_6GHZ)
net/wireless/chan.c
1544
if (chandef->chan->band == NL80211_BAND_6GHZ)
net/wireless/chan.c
1559
if (chandef->chan->band != NL80211_BAND_6GHZ)
net/wireless/chan.c
1626
struct ieee80211_channel *chan)
net/wireless/chan.c
1647
!(chan->flags & IEEE80211_CHAN_INDOOR_ONLY))
net/wireless/chan.c
1648
other_chan = wdev->links[link_id].ap.chandef.chan;
net/wireless/chan.c
1653
if (chan == other_chan)
net/wireless/chan.c
1656
if (chan->band != NL80211_BAND_5GHZ &&
net/wireless/chan.c
1657
chan->band != NL80211_BAND_6GHZ)
net/wireless/chan.c
1660
r1 = cfg80211_get_unii(chan->center_freq);
net/wireless/chan.c
1676
if (chan->center_freq == 5825 &&
net/wireless/chan.c
1697
struct ieee80211_channel *chan)
net/wireless/chan.c
1715
(chan->flags & IEEE80211_CHAN_INDOOR_ONLY))
net/wireless/chan.c
1718
if (!(chan->flags & IEEE80211_CHAN_IR_CONCURRENT))
net/wireless/chan.c
1731
ret = cfg80211_ir_permissive_check_wdev(iftype, wdev, chan);
net/wireless/chan.c
1796
chandef->chan);
net/wireless/chan.c
1842
struct ieee80211_channel *chan;
net/wireless/chan.c
1844
chan = &sband->channels[chanidx];
net/wireless/chan.c
1846
if (chan->flags & prohibited_flags)
net/wireless/chan.c
188
if (!cfg80211_valid_60g_freq(chandef->chan->center_freq))
net/wireless/chan.c
24
struct ieee80211_channel *chan,
net/wireless/chan.c
27
if (WARN_ON(!chan))
net/wireless/chan.c
31
.chan = chan,
net/wireless/chan.c
34
WARN_ON(chan->band == NL80211_BAND_60GHZ ||
net/wireless/chan.c
35
chan->band == NL80211_BAND_S1GHZ);
net/wireless/chan.c
393
if (!chandef->chan)
net/wireless/chan.c
399
control_freq = chandef->chan->center_freq;
net/wireless/chan.c
40
chandef->center_freq1 = chan->center_freq;
net/wireless/chan.c
413
ieee80211_channel_to_khz(chandef->chan))
net/wireless/chan.c
428
control_freq_khz = ieee80211_channel_to_khz(chandef->chan);
net/wireless/chan.c
44
chandef->center_freq1 = chan->center_freq;
net/wireless/chan.c
48
chandef->center_freq1 = chan->center_freq + 10;
net/wireless/chan.c
495
u32 control = c->chan->center_freq;
net/wireless/chan.c
52
chandef->center_freq1 = chan->center_freq - 10;
net/wireless/chan.c
550
pri_upper = tmp.chan->center_freq > cf1;
net/wireless/chan.c
631
switch (chandef->chan->band) {
net/wireless/chan.c
635
if (chandef->chan->center_freq < 5745)
net/wireless/chan.c
693
if (chandef->chan->center_freq < starting_freq)
net/wireless/chan.c
696
offset = chandef->chan->center_freq - starting_freq;
net/wireless/chan.c
776
if (c1->chan != c2->chan)
net/wireless/chan.c
922
struct ieee80211_channel *chan)
net/wireless/chan.c
942
if (chan == other_chan)
net/wireless/chan.c
950
if (cfg80211_is_sub_chan(&chandef, chan, false))
net/wireless/chan.c
962
struct ieee80211_channel *chan)
net/wireless/chan.c
971
!(chan->flags & IEEE80211_CHAN_DFS_CONCURRENT))
net/wireless/chan.c
983
wdev, chan);
net/wireless/core.h
509
struct ieee80211_channel *chan);
net/wireless/core.h
514
struct ieee80211_channel *chan,
net/wireless/core.h
517
struct ieee80211_channel *chan,
net/wireless/debugfs.c
62
static int ht_print_chan(struct ieee80211_channel *chan,
net/wireless/debugfs.c
68
if (chan->flags & IEEE80211_CHAN_DISABLED)
net/wireless/debugfs.c
72
chan->center_freq);
net/wireless/debugfs.c
77
chan->center_freq,
net/wireless/debugfs.c
78
(chan->flags & IEEE80211_CHAN_NO_HT40MINUS) ?
net/wireless/debugfs.c
80
(chan->flags & IEEE80211_CHAN_NO_HT40PLUS) ?
net/wireless/ibss.c
114
band = params->chandef.chan->band;
net/wireless/ibss.c
228
if (!wdev->wext.ibss.chandef.chan) {
net/wireless/ibss.c
233
struct ieee80211_channel *chan;
net/wireless/ibss.c
240
chan = &sband->channels[i];
net/wireless/ibss.c
241
if (chan->flags & IEEE80211_CHAN_NO_IR)
net/wireless/ibss.c
243
if (chan->flags & IEEE80211_CHAN_DISABLED)
net/wireless/ibss.c
245
new_chan = chan;
net/wireless/ibss.c
293
struct ieee80211_channel *chan = NULL;
net/wireless/ibss.c
308
chan = ieee80211_get_channel(wdev->wiphy, freq);
net/wireless/ibss.c
309
if (!chan)
net/wireless/ibss.c
311
if (chan->flags & IEEE80211_CHAN_NO_IR ||
net/wireless/ibss.c
312
chan->flags & IEEE80211_CHAN_DISABLED)
net/wireless/ibss.c
316
if (wdev->wext.ibss.chandef.chan == chan)
net/wireless/ibss.c
326
if (chan) {
net/wireless/ibss.c
327
cfg80211_chandef_create(&wdev->wext.ibss.chandef, chan,
net/wireless/ibss.c
343
struct ieee80211_channel *chan = NULL;
net/wireless/ibss.c
350
chan = wdev->u.ibss.current_bss->pub.channel;
net/wireless/ibss.c
351
else if (wdev->wext.ibss.chandef.chan)
net/wireless/ibss.c
352
chan = wdev->wext.ibss.chandef.chan;
net/wireless/ibss.c
354
if (chan) {
net/wireless/ibss.c
355
freq->m = chan->center_freq;
net/wireless/mesh.c
133
if (!setup->chandef.chan) {
net/wireless/mesh.c
138
if (!setup->chandef.chan) {
net/wireless/mesh.c
144
struct ieee80211_channel *chan;
net/wireless/mesh.c
152
chan = &sband->channels[i];
net/wireless/mesh.c
153
if (chan->flags & (IEEE80211_CHAN_NO_IR |
net/wireless/mesh.c
157
setup->chandef.chan = chan;
net/wireless/mesh.c
161
if (setup->chandef.chan)
net/wireless/mesh.c
166
if (!setup->chandef.chan)
net/wireless/mesh.c
170
setup->chandef.center_freq1 = setup->chandef.chan->center_freq;
net/wireless/mesh.c
179
rdev->wiphy.bands[setup->chandef.chan->band];
net/wireless/mesh.c
181
if (setup->chandef.chan->band == NL80211_BAND_2GHZ) {
net/wireless/mesh.c
246
chandef->chan);
net/wireless/nl80211.c
10959
struct ieee80211_channel *chan)
net/wireless/nl80211.c
10967
if (!cfg80211_wdev_channel_allowed(wdev, chan))
net/wireless/nl80211.c
10973
radio_idx = cfg80211_get_radio_idx_by_chan(wdev->wiphy, chan);
net/wireless/nl80211.c
10988
if (!chandef || !chandef->chan)
net/wireless/nl80211.c
10991
if (!(chandef->chan->flags & IEEE80211_CHAN_RADAR))
net/wireless/nl80211.c
11002
chandef->chan);
net/wireless/nl80211.c
11181
struct ieee80211_channel *chan;
net/wireless/nl80211.c
11187
chan = ieee80211_get_channel_khz(wiphy, freq);
net/wireless/nl80211.c
11188
if (!chan) {
net/wireless/nl80211.c
11194
if (chan->flags & IEEE80211_CHAN_DISABLED ||
net/wireless/nl80211.c
11195
chan->flags & IEEE80211_CHAN_S1G_NO_PRIMARY ||
net/wireless/nl80211.c
11196
!cfg80211_wdev_channel_allowed(wdev, chan))
net/wireless/nl80211.c
11199
request->req.channels[i] = chan;
net/wireless/nl80211.c
11212
struct ieee80211_channel *chan;
net/wireless/nl80211.c
11214
chan = &wiphy->bands[band]->channels[j];
net/wireless/nl80211.c
11216
if (chan->flags & IEEE80211_CHAN_DISABLED ||
net/wireless/nl80211.c
11217
chan->flags &
net/wireless/nl80211.c
11219
!cfg80211_wdev_channel_allowed(wdev, chan))
net/wireless/nl80211.c
11222
request->req.channels[i] = chan;
net/wireless/nl80211.c
11236
struct ieee80211_channel *chan = request->req.channels[i];
net/wireless/nl80211.c
11239
if (cfg80211_off_channel_oper_allowed(wdev, chan))
net/wireless/nl80211.c
11242
if (!cfg80211_wdev_on_sub_chan(wdev, chan, true)) {
net/wireless/nl80211.c
11628
struct ieee80211_channel *chan;
net/wireless/nl80211.c
11630
chan = ieee80211_get_channel(wiphy, nla_get_u32(attr));
net/wireless/nl80211.c
11632
if (!chan) {
net/wireless/nl80211.c
11638
if (chan->flags & IEEE80211_CHAN_DISABLED)
net/wireless/nl80211.c
11641
request->channels[i] = chan;
net/wireless/nl80211.c
11652
struct ieee80211_channel *chan;
net/wireless/nl80211.c
11654
chan = &wiphy->bands[band]->channels[j];
net/wireless/nl80211.c
11656
if (chan->flags & IEEE80211_CHAN_DISABLED)
net/wireless/nl80211.c
11659
request->channels[i] = chan;
net/wireless/nl80211.c
12021
if (chandef.chan->dfs_state == NL80211_DFS_UNAVAILABLE)
net/wireless/nl80211.c
12153
params.chandef.chan, info->extack);
net/wireless/nl80211.c
12170
wdev->links[link_id].ap.chandef.chan,
net/wireless/nl80211.c
12614
struct ieee80211_channel *chan;
net/wireless/nl80211.c
12683
chan = nl80211_get_valid_chan(&rdev->wiphy, freq);
net/wireless/nl80211.c
12684
if (!chan)
net/wireless/nl80211.c
12751
req.bss = cfg80211_get_bss(&rdev->wiphy, chan, bssid, ssid, ssid_len,
net/wireless/nl80211.c
12902
struct ieee80211_channel *chan;
net/wireless/nl80211.c
12916
chan = nl80211_get_valid_chan(&rdev->wiphy, freq);
net/wireless/nl80211.c
12917
if (!chan)
net/wireless/nl80211.c
12925
bss = __cfg80211_get_bss(&rdev->wiphy, chan, bssid,
net/wireless/nl80211.c
13459
wiphy->bands[ibss.chandef.chan->band];
net/wireless/nl80211.c
1380
struct ieee80211_channel *chan,
net/wireless/nl80211.c
1386
if (!large && chan->flags &
net/wireless/nl80211.c
1389
if (!large && chan->freq_offset)
net/wireless/nl80211.c
1393
chan->center_freq))
net/wireless/nl80211.c
1396
if (nla_put_u32(msg, NL80211_FREQUENCY_ATTR_OFFSET, chan->freq_offset))
net/wireless/nl80211.c
1399
if ((chan->flags & IEEE80211_CHAN_PSD) &&
net/wireless/nl80211.c
1400
nla_put_s8(msg, NL80211_FREQUENCY_ATTR_PSD, chan->psd))
net/wireless/nl80211.c
1403
if ((chan->flags & IEEE80211_CHAN_DISABLED) &&
net/wireless/nl80211.c
1406
if (chan->flags & IEEE80211_CHAN_NO_IR) {
net/wireless/nl80211.c
1412
if (chan->flags & IEEE80211_CHAN_RADAR) {
net/wireless/nl80211.c
1418
time = elapsed_jiffies_msecs(chan->dfs_state_entered);
net/wireless/nl80211.c
1421
chan->dfs_state))
net/wireless/nl80211.c
1428
chan->dfs_cac_ms))
net/wireless/nl80211.c
1434
if ((chan->flags & IEEE80211_CHAN_NO_HT40MINUS) &&
net/wireless/nl80211.c
1437
if ((chan->flags & IEEE80211_CHAN_NO_HT40PLUS) &&
net/wireless/nl80211.c
1440
if ((chan->flags & IEEE80211_CHAN_NO_80MHZ) &&
net/wireless/nl80211.c
1443
if ((chan->flags & IEEE80211_CHAN_NO_160MHZ) &&
net/wireless/nl80211.c
14454
if (!cfg80211_off_channel_oper_allowed(wdev, chandef.chan)) {
net/wireless/nl80211.c
1446
if ((chan->flags & IEEE80211_CHAN_INDOOR_ONLY) &&
net/wireless/nl80211.c
14484
err = rdev_remain_on_channel(rdev, wdev, chandef.chan,
net/wireless/nl80211.c
1449
if ((chan->flags & IEEE80211_CHAN_IR_CONCURRENT) &&
net/wireless/nl80211.c
1452
if ((chan->flags & IEEE80211_CHAN_NO_20MHZ) &&
net/wireless/nl80211.c
1455
if ((chan->flags & IEEE80211_CHAN_NO_10MHZ) &&
net/wireless/nl80211.c
1458
if ((chan->flags & IEEE80211_CHAN_NO_HE) &&
net/wireless/nl80211.c
1461
if ((chan->flags & IEEE80211_CHAN_NO_320MHZ) &&
net/wireless/nl80211.c
1464
if ((chan->flags & IEEE80211_CHAN_NO_EHT) &&
net/wireless/nl80211.c
1467
if ((chan->flags & IEEE80211_CHAN_DFS_CONCURRENT) &&
net/wireless/nl80211.c
14676
chandef.chan = NULL;
net/wireless/nl80211.c
14684
if (!chandef.chan && params.offchan)
net/wireless/nl80211.c
14688
!cfg80211_off_channel_oper_allowed(wdev, chandef.chan))
net/wireless/nl80211.c
1470
if ((chan->flags & IEEE80211_CHAN_NO_6GHZ_VLP_CLIENT) &&
net/wireless/nl80211.c
14724
params.chan = chandef.chan;
net/wireless/nl80211.c
1473
if ((chan->flags & IEEE80211_CHAN_NO_6GHZ_AFC_CLIENT) &&
net/wireless/nl80211.c
1476
if ((chan->flags & IEEE80211_CHAN_CAN_MONITOR) &&
net/wireless/nl80211.c
1479
if ((chan->flags & IEEE80211_CHAN_ALLOW_6GHZ_VLP_AP) &&
net/wireless/nl80211.c
1482
if ((chan->flags & IEEE80211_CHAN_ALLOW_20MHZ_ACTIVITY) &&
net/wireless/nl80211.c
1486
if ((chan->flags & IEEE80211_CHAN_NO_4MHZ) &&
net/wireless/nl80211.c
1489
if ((chan->flags & IEEE80211_CHAN_NO_8MHZ) &&
net/wireless/nl80211.c
1492
if ((chan->flags & IEEE80211_CHAN_NO_16MHZ) &&
net/wireless/nl80211.c
1495
if ((chan->flags & IEEE80211_CHAN_S1G_NO_PRIMARY) &&
net/wireless/nl80211.c
1498
if ((chan->flags & IEEE80211_CHAN_NO_UHR) &&
net/wireless/nl80211.c
1501
if (chan->cac_start_time &&
net/wireless/nl80211.c
1504
chan->cac_start_time,
net/wireless/nl80211.c
1510
DBM_TO_MBM(chan->max_power)))
net/wireless/nl80211.c
1515
freq_reg_info(wiphy, MHZ_TO_KHZ(chan->center_freq));
net/wireless/nl80211.c
15168
setup.chandef.chan = NULL;
net/wireless/nl80211.c
15177
if (!setup.chandef.chan)
net/wireless/nl80211.c
15180
sband = rdev->wiphy.bands[setup.chandef.chan->band];
net/wireless/nl80211.c
15196
if (!setup.chandef.chan)
net/wireless/nl80211.c
15199
err = validate_beacon_tx_rate(rdev, setup.chandef.chan->band,
net/wireless/nl80211.c
16300
struct ieee80211_channel *chan;
net/wireless/nl80211.c
16307
chan = ieee80211_get_channel(wiphy, freq);
net/wireless/nl80211.c
16308
if (!chan)
net/wireless/nl80211.c
16311
cfg80211_chandef_create(&def, chan, NL80211_CHAN_NO_HT);
net/wireless/nl80211.c
16315
return chan;
net/wireless/nl80211.c
16334
cfg->chan = nl80211_get_nan_channel(wiphy, freq);
net/wireless/nl80211.c
16335
if (!cfg->chan)
net/wireless/nl80211.c
16402
conf->band_cfgs[NL80211_BAND_2GHZ].chan =
net/wireless/nl80211.c
16404
if (!conf->band_cfgs[NL80211_BAND_2GHZ].chan)
net/wireless/nl80211.c
16490
if (!conf->band_cfgs[NL80211_BAND_5GHZ].chan &&
net/wireless/nl80211.c
16493
conf->band_cfgs[NL80211_BAND_5GHZ].chan =
net/wireless/nl80211.c
16495
if (!conf->band_cfgs[NL80211_BAND_5GHZ].chan)
net/wireless/nl80211.c
16496
conf->band_cfgs[NL80211_BAND_5GHZ].chan =
net/wireless/nl80211.c
16500
if (!conf->band_cfgs[NL80211_BAND_5GHZ].chan &&
net/wireless/nl80211.c
17171
if (chandef.chan->band == NL80211_BAND_6GHZ) {
net/wireless/nl80211.c
18185
if (chandef.chan->band == NL80211_BAND_2GHZ &&
net/wireless/nl80211.c
18754
wdev->links[params.link_id].ap.chandef.chan,
net/wireless/nl80211.c
18770
wdev->links[params.link_id].ap.chandef.chan,
net/wireless/nl80211.c
1905
struct ieee80211_channel *chan;
net/wireless/nl80211.c
1907
chan = ieee80211_get_channel_khz(wiphy, freq);
net/wireless/nl80211.c
1908
if (!chan || chan->flags & IEEE80211_CHAN_DISABLED)
net/wireless/nl80211.c
1910
return chan;
net/wireless/nl80211.c
21516
struct ieee80211_channel *chan,
net/wireless/nl80211.c
21537
nla_put_u32(msg, NL80211_ATTR_WIPHY_FREQ, chan->center_freq) ||
net/wireless/nl80211.c
21597
struct ieee80211_channel *chan,
net/wireless/nl80211.c
21603
trace_cfg80211_ready_on_channel(wdev, cookie, chan, duration);
net/wireless/nl80211.c
21605
rdev, wdev, cookie, chan,
net/wireless/nl80211.c
21611
struct ieee80211_channel *chan,
net/wireless/nl80211.c
21617
trace_cfg80211_ready_on_channel_expired(wdev, cookie, chan);
net/wireless/nl80211.c
21619
rdev, wdev, cookie, chan, 0, gfp);
net/wireless/nl80211.c
21624
struct ieee80211_channel *chan,
net/wireless/nl80211.c
21630
trace_cfg80211_tx_mgmt_expired(wdev, cookie, chan);
net/wireless/nl80211.c
21632
rdev, wdev, cookie, chan, 0, gfp);
net/wireless/nl80211.c
22367
chandef->chan);
net/wireless/nl80211.c
23263
struct ieee80211_channel *chan, gfp_t gfp)
net/wireless/nl80211.c
23270
trace_cfg80211_next_nan_dw_notif(wdev, chan);
net/wireless/nl80211.c
23287
nla_put_u32(msg, NL80211_ATTR_WIPHY_FREQ, chan->center_freq))
net/wireless/nl80211.c
3066
struct ieee80211_channel *chan;
net/wireless/nl80211.c
3240
chan = &sband->channels[i];
net/wireless/nl80211.c
3243
msg, &rdev->wiphy, chan,
net/wireless/nl80211.c
3946
chandef->chan = ieee80211_get_channel_khz(&rdev->wiphy, control_freq);
net/wireless/nl80211.c
3953
if (!chandef->chan) {
net/wireless/nl80211.c
3972
if (chandef->chan->band == NL80211_BAND_60GHZ ||
net/wireless/nl80211.c
3973
chandef->chan->band == NL80211_BAND_S1GHZ)
net/wireless/nl80211.c
3975
cfg80211_chandef_create(chandef, chandef->chan,
net/wireless/nl80211.c
4157
cur_chan = wdev->links[link_id].ap.chandef.chan;
net/wireless/nl80211.c
4158
if (chandef.chan != cur_chan)
net/wireless/nl80211.c
4611
chandef->chan->center_freq))
net/wireless/nl80211.c
4614
chandef->chan->freq_offset))
net/wireless/nl80211.c
6707
struct ieee80211_channel *chan,
net/wireless/nl80211.c
6829
if (bcn->he_oper && (chan->flags & IEEE80211_CHAN_NO_HE))
net/wireless/nl80211.c
6832
if (bcn->eht_oper && (chan->flags & IEEE80211_CHAN_NO_EHT))
net/wireless/nl80211.c
6835
if (bcn->uhr_oper && (chan->flags & IEEE80211_CHAN_NO_UHR))
net/wireless/nl80211.c
7024
if (!wdev->u.ap.preset_chandef.chan)
net/wireless/nl80211.c
7184
sband = rdev->wiphy.bands[chandef->chan->band];
net/wireless/nl80211.c
7341
} else if (wdev->u.ap.preset_chandef.chan) {
net/wireless/nl80211.c
7349
params->chandef.chan, info->extack);
net/wireless/nl80211.c
7377
err = validate_beacon_tx_rate(rdev, params->chandef.chan->band,
net/wireless/nl80211.c
7528
wdev->links[link_id].ap.chandef.chan,
net/wireless/ocb.c
33
if (WARN_ON(!setup->chandef.chan))
net/wireless/ocb.c
57
if (!wdev->u.ocb.chandef.chan)
net/wireless/of.c
13
struct ieee80211_channel *chan)
net/wireless/of.c
22
MHZ_TO_KHZ(chan->center_freq),
net/wireless/of.c
47
struct ieee80211_channel *chan = &sband->channels[i];
net/wireless/of.c
49
if (chan->flags & IEEE80211_CHAN_DISABLED)
net/wireless/of.c
54
chan)) {
net/wireless/of.c
56
chan->center_freq);
net/wireless/of.c
57
chan->flags |= IEEE80211_CHAN_DISABLED;
net/wireless/pmsr.c
43
switch (out->chandef.chan->band) {
net/wireless/rdev-ops.h
437
struct ieee80211_channel *chan)
net/wireless/rdev-ops.h
440
trace_rdev_libertas_set_mesh_channel(&rdev->wiphy, dev, chan);
net/wireless/rdev-ops.h
441
ret = rdev->ops->libertas_set_mesh_channel(&rdev->wiphy, dev, chan);
net/wireless/rdev-ops.h
738
struct ieee80211_channel *chan,
net/wireless/rdev-ops.h
742
trace_rdev_remain_on_channel(&rdev->wiphy, wdev, chan, duration,
net/wireless/rdev-ops.h
744
ret = rdev->ops->remain_on_channel(&rdev->wiphy, wdev, chan,
net/wireless/reg.c
1685
const struct ieee80211_channel *chan)
net/wireless/reg.c
1689
bool is_s1g = chan->band == NL80211_BAND_S1GHZ;
net/wireless/reg.c
1694
center_freq_khz = ieee80211_channel_to_khz(chan);
net/wireless/reg.c
1737
struct ieee80211_channel *chan,
net/wireless/reg.c
1750
bw_flags = reg_rule_to_chan_bw_flags(regd, reg_rule, chan);
net/wireless/reg.c
1760
chan->flags = chan->orig_flags =
net/wireless/reg.c
1762
chan->max_antenna_gain = chan->orig_mag =
net/wireless/reg.c
1764
chan->max_reg_power = chan->max_power = chan->orig_mpwr =
net/wireless/reg.c
1767
if (chan->flags & IEEE80211_CHAN_RADAR) {
net/wireless/reg.c
1768
chan->dfs_cac_ms = IEEE80211_DFS_MIN_CAC_TIME_MS;
net/wireless/reg.c
1770
chan->dfs_cac_ms = reg_rule->dfs_cac_ms;
net/wireless/reg.c
1773
if (chan->flags & IEEE80211_CHAN_PSD)
net/wireless/reg.c
1774
chan->psd = reg_rule->psd;
net/wireless/reg.c
1779
chan->dfs_state = NL80211_DFS_USABLE;
net/wireless/reg.c
1780
chan->dfs_state_entered = jiffies;
net/wireless/reg.c
1782
chan->beacon_found = false;
net/wireless/reg.c
1783
chan->flags = flags | bw_flags | map_regdom_flags(reg_rule->flags);
net/wireless/reg.c
1784
chan->max_antenna_gain =
net/wireless/reg.c
1785
min_t(int, chan->orig_mag,
net/wireless/reg.c
1787
chan->max_reg_power = (int) MBM_TO_DBM(power_rule->max_eirp);
net/wireless/reg.c
1789
if (chan->flags & IEEE80211_CHAN_RADAR) {
net/wireless/reg.c
1791
chan->dfs_cac_ms = reg_rule->dfs_cac_ms;
net/wireless/reg.c
1793
chan->dfs_cac_ms = IEEE80211_DFS_MIN_CAC_TIME_MS;
net/wireless/reg.c
1796
if (chan->flags & IEEE80211_CHAN_PSD)
net/wireless/reg.c
1797
chan->psd = reg_rule->psd;
net/wireless/reg.c
1799
if (chan->orig_mpwr) {
net/wireless/reg.c
1806
chan->max_power = chan->max_reg_power;
net/wireless/reg.c
1808
chan->max_power = min(chan->orig_mpwr,
net/wireless/reg.c
1809
chan->max_reg_power);
net/wireless/reg.c
1811
chan->max_power = chan->max_reg_power;
net/wireless/reg.c
1816
struct ieee80211_channel *chan,
net/wireless/reg.c
1834
bw_flags1 = reg_rule_to_chan_bw_flags(regd, rrule1, chan);
net/wireless/reg.c
1835
bw_flags2 = reg_rule_to_chan_bw_flags(regd, rrule2, chan);
net/wireless/reg.c
1844
chan->flags =
net/wireless/reg.c
1849
chan->orig_flags = chan->flags;
net/wireless/reg.c
1850
chan->max_antenna_gain =
net/wireless/reg.c
1853
chan->orig_mag = chan->max_antenna_gain;
net/wireless/reg.c
1854
chan->max_reg_power =
net/wireless/reg.c
1857
chan->max_power = chan->max_reg_power;
net/wireless/reg.c
1858
chan->orig_mpwr = chan->max_reg_power;
net/wireless/reg.c
1860
if (chan->flags & IEEE80211_CHAN_RADAR) {
net/wireless/reg.c
1861
chan->dfs_cac_ms = IEEE80211_DFS_MIN_CAC_TIME_MS;
net/wireless/reg.c
1863
chan->dfs_cac_ms = max_t(unsigned int,
net/wireless/reg.c
1870
chan->psd = min_t(s8, rrule1->psd, rrule2->psd);
net/wireless/reg.c
1872
chan->flags &= ~NL80211_RRF_PSD;
net/wireless/reg.c
1877
chan->dfs_state = NL80211_DFS_USABLE;
net/wireless/reg.c
1878
chan->dfs_state_entered = jiffies;
net/wireless/reg.c
1880
chan->beacon_found = false;
net/wireless/reg.c
1881
chan->flags = flags | bw_flags1 | bw_flags2 |
net/wireless/reg.c
1889
ieee80211_channel_to_khz(chan),
net/wireless/reg.c
1891
chan->flags &= ~IEEE80211_CHAN_NO_10MHZ;
net/wireless/reg.c
1893
ieee80211_channel_to_khz(chan),
net/wireless/reg.c
1895
chan->flags &= ~IEEE80211_CHAN_NO_20MHZ;
net/wireless/reg.c
1897
chan->max_antenna_gain =
net/wireless/reg.c
1898
min_t(int, chan->orig_mag,
net/wireless/reg.c
1902
chan->max_reg_power = min_t(int,
net/wireless/reg.c
1906
if (chan->flags & IEEE80211_CHAN_RADAR) {
net/wireless/reg.c
1908
chan->dfs_cac_ms = max_t(unsigned int,
net/wireless/reg.c
1912
chan->dfs_cac_ms = IEEE80211_DFS_MIN_CAC_TIME_MS;
net/wireless/reg.c
1915
if (chan->orig_mpwr) {
net/wireless/reg.c
1921
chan->max_power = chan->max_reg_power;
net/wireless/reg.c
1923
chan->max_power = min(chan->orig_mpwr,
net/wireless/reg.c
1924
chan->max_reg_power);
net/wireless/reg.c
1926
chan->max_power = chan->max_reg_power;
net/wireless/reg.c
1936
struct ieee80211_channel *chan)
net/wireless/reg.c
1938
const u32 orig_chan_freq = ieee80211_channel_to_khz(chan);
net/wireless/reg.c
1945
u32 flags = chan->orig_flags;
net/wireless/reg.c
1978
handle_channel_adjacent_rules(wiphy, initiator, chan,
net/wireless/reg.c
2003
chan->center_freq, chan->freq_offset);
net/wireless/reg.c
2004
chan->orig_flags |= IEEE80211_CHAN_DISABLED;
net/wireless/reg.c
2005
chan->flags = chan->orig_flags;
net/wireless/reg.c
2008
chan->center_freq, chan->freq_offset);
net/wireless/reg.c
2009
chan->flags |= IEEE80211_CHAN_DISABLED;
net/wireless/reg.c
2014
handle_channel_single_rule(wiphy, initiator, chan, flags, lr,
net/wireless/reg.c
2152
struct ieee80211_channel *chan;
net/wireless/reg.c
2157
sband = wiphy->bands[reg_beacon->chan.band];
net/wireless/reg.c
2158
chan = &sband->channels[chan_idx];
net/wireless/reg.c
2160
if (likely(!ieee80211_channel_equal(chan, &reg_beacon->chan)))
net/wireless/reg.c
2163
if (chan->beacon_found)
net/wireless/reg.c
2166
chan->beacon_found = true;
net/wireless/reg.c
2174
chan_before = *chan;
net/wireless/reg.c
2176
if (chan->flags & IEEE80211_CHAN_NO_IR) {
net/wireless/reg.c
2177
chan->flags &= ~IEEE80211_CHAN_NO_IR;
net/wireless/reg.c
2182
nl80211_send_beacon_hint_event(wiphy, &chan_before, chan);
net/wireless/reg.c
2198
if (!wiphy->bands[reg_beacon->chan.band])
net/wireless/reg.c
2201
sband = wiphy->bands[reg_beacon->chan.band];
net/wireless/reg.c
2217
if (!wiphy->bands[reg_beacon->chan.band])
net/wireless/reg.c
2219
sband = wiphy->bands[reg_beacon->chan.band];
net/wireless/reg.c
223
struct ieee80211_channel chan;
net/wireless/reg.c
2237
static bool is_ht40_allowed(struct ieee80211_channel *chan)
net/wireless/reg.c
2239
if (!chan)
net/wireless/reg.c
2241
if (chan->flags & IEEE80211_CHAN_DISABLED)
net/wireless/reg.c
2244
if ((chan->flags & IEEE80211_CHAN_NO_HT40) == IEEE80211_CHAN_NO_HT40)
net/wireless/reg.c
2364
struct ieee80211_channel *chan;
net/wireless/reg.c
2393
chan = wdev->links[link].client.current_bss->pub.channel;
net/wireless/reg.c
2394
if (!chan)
net/wireless/reg.c
2399
cfg80211_chandef_create(&chandef, chan,
net/wireless/reg.c
2408
if (!wdev->u.ocb.chandef.chan)
net/wireless/reg.c
2534
struct ieee80211_channel *chan,
net/wireless/reg.c
2543
center_freq_khz = ieee80211_channel_to_khz(chan);
net/wireless/reg.c
2552
chan->center_freq, chan->freq_offset);
net/wireless/reg.c
2554
chan->flags |= IEEE80211_CHAN_DISABLED;
net/wireless/reg.c
2556
chan->orig_flags |= IEEE80211_CHAN_DISABLED;
net/wireless/reg.c
2557
chan->flags = chan->orig_flags;
net/wireless/reg.c
2563
bw_flags = reg_rule_to_chan_bw_flags(regd, reg_rule, chan);
net/wireless/reg.c
2565
chan->dfs_state_entered = jiffies;
net/wireless/reg.c
2566
chan->dfs_state = NL80211_DFS_USABLE;
net/wireless/reg.c
2568
chan->beacon_found = false;
net/wireless/reg.c
2571
chan->flags = chan->orig_flags | bw_flags |
net/wireless/reg.c
2574
chan->flags |= map_regdom_flags(reg_rule->flags) | bw_flags;
net/wireless/reg.c
2576
chan->max_antenna_gain = (int) MBI_TO_DBI(power_rule->max_antenna_gain);
net/wireless/reg.c
2577
chan->max_reg_power = chan->max_power =
net/wireless/reg.c
2580
if (chan->flags & IEEE80211_CHAN_RADAR) {
net/wireless/reg.c
2582
chan->dfs_cac_ms = reg_rule->dfs_cac_ms;
net/wireless/reg.c
2584
chan->dfs_cac_ms = IEEE80211_DFS_MIN_CAC_TIME_MS;
net/wireless/reg.c
2587
if (chan->flags & IEEE80211_CHAN_PSD)
net/wireless/reg.c
2588
chan->psd = reg_rule->psd;
net/wireless/reg.c
2590
chan->max_power = chan->max_reg_power;
net/wireless/reg.c
3448
struct ieee80211_channel *chan;
net/wireless/reg.c
3456
chan = &sband->channels[i];
net/wireless/reg.c
3457
chan->flags = chan->orig_flags;
net/wireless/reg.c
3458
chan->max_antenna_gain = chan->orig_mag;
net/wireless/reg.c
3459
chan->max_power = chan->orig_mpwr;
net/wireless/reg.c
3460
chan->beacon_found = false;
net/wireless/reg.c
3649
&pending_beacon->chan))
net/wireless/reg.c
3684
memcpy(&reg_beacon->chan, beacon_chan,
net/wireless/reg.c
4266
chandef->chan->center_freq))
net/wireless/scan.c
1000
!cfg80211_wdev_channel_allowed(rdev_req->req.wdev, chan))
net/wireless/scan.c
1004
if (rdev_req->req.channels[i] == chan)
net/wireless/scan.c
1023
cfg80211_scan_req_add_chan(&request->req, chan, true);
net/wireless/scan.c
1036
if (cfg80211_channel_is_psc(chan) && !need_scan_psc)
net/wireless/scan.c
2289
drv_data->chan);
net/wireless/scan.c
2376
signal_valid = drv_data->chan == channel;
net/wireless/scan.c
3420
struct ieee80211_channel *chan)
net/wireless/scan.c
3436
if (cbss->pub.channel == chan)
net/wireless/scan.c
3443
cbss->pub.channel = chan;
net/wireless/scan.c
3484
bss->pub.channel = chan;
net/wireless/scan.c
3573
struct ieee80211_channel *chan;
net/wireless/scan.c
3576
chan = &wiphy->bands[band]->channels[j];
net/wireless/scan.c
3577
if (chan->flags & IEEE80211_CHAN_DISABLED ||
net/wireless/scan.c
3578
!cfg80211_wdev_channel_allowed(creq->req.wdev, chan))
net/wireless/scan.c
789
struct ieee80211_channel *chan,
net/wireless/scan.c
798
if (request->channels[i] == chan) {
net/wireless/scan.c
806
request->channels[n_channels] = chan;
net/wireless/scan.c
996
struct ieee80211_channel *chan =
net/wireless/scan.c
999
if (!chan || chan->flags & IEEE80211_CHAN_DISABLED ||
net/wireless/tests/chan.c
102
.chan = &chan_6ghz_1,
net/wireless/tests/chan.c
111
.chan = &chan_6ghz_1,
net/wireless/tests/chan.c
116
.chan = &chan_6ghz_5,
net/wireless/tests/chan.c
124
.chan = &chan_6ghz_105,
net/wireless/tests/chan.c
129
.chan = &chan_6ghz_105,
net/wireless/tests/chan.c
138
.chan = &chan_6ghz_105,
net/wireless/tests/chan.c
143
.chan = &chan_6ghz_105,
net/wireless/tests/chan.c
152
.chan = &chan_6ghz_105,
net/wireless/tests/chan.c
157
.chan = &chan_6ghz_105,
net/wireless/tests/chan.c
167
.chan = &chan_6ghz_105,
net/wireless/tests/chan.c
173
.chan = &chan_6ghz_105,
net/wireless/tests/chan.c
183
.chan = &chan_6ghz_105,
net/wireless/tests/chan.c
189
.chan = &chan_6ghz_105,
net/wireless/tests/chan.c
205
if (!params->c1.chan)
net/wireless/tests/chan.c
216
if (!params->c1.chan)
net/wireless/tests/chan.c
234
.chan = &chan_6ghz_1,
net/wireless/tests/chan.c
244
.chan = &chan_2ghz_1,
net/wireless/tests/chan.c
254
.chan = &chan_6ghz_1,
net/wireless/tests/chan.c
264
.chan = &chan_6ghz_105,
net/wireless/tests/chan.c
274
.chan = &chan_6ghz_105,
net/wireless/tests/chan.c
284
.chan = &chan_6ghz_105,
net/wireless/tests/chan.c
297
.chan = &chan_6ghz_105,
net/wireless/tests/chan.c
311
.chan = &chan_6ghz_105,
net/wireless/tests/chan.c
324
.chan = &chan_6ghz_105,
net/wireless/tests/chan.c
338
.chan = &chan_6ghz_105,
net/wireless/tests/chan.c
352
.chan = &chan_6ghz_105,
net/wireless/tests/chan.c
366
.chan = &chan_6ghz_105,
net/wireless/tests/chan.c
43
.chan = &chan_6ghz_1,
net/wireless/tests/chan.c
52
.chan = &chan_6ghz_1,
net/wireless/tests/chan.c
61
.chan = &chan_6ghz_1,
net/wireless/tests/chan.c
70
.chan = &chan_6ghz_1,
net/wireless/tests/chan.c
79
.chan = &chan_6ghz_1,
net/wireless/tests/chan.c
88
.chan = &chan_6ghz_1,
net/wireless/tests/chan.c
97
.chan = &chan_6ghz_1,
net/wireless/tests/scan.c
360
inform_bss.chan = ieee80211_get_channel_khz(wiphy, MHZ_TO_KHZ(2412));
net/wireless/tests/scan.c
361
KUNIT_ASSERT_NOT_NULL(test, inform_bss.chan);
net/wireless/tests/scan.c
376
KUNIT_EXPECT_PTR_EQ(test, bss->channel, inform_bss.chan);
net/wireless/tests/scan.c
556
inform_bss.chan = ieee80211_get_channel_khz(wiphy, MHZ_TO_KHZ(2412));
net/wireless/tests/scan.c
557
KUNIT_ASSERT_NOT_NULL(test, inform_bss.chan);
net/wireless/trace.h
122
#define CHAN_ASSIGN(chan) \
net/wireless/trace.h
124
if (chan) { \
net/wireless/trace.h
125
__entry->band = chan->band; \
net/wireless/trace.h
126
__entry->center_freq = chan->center_freq; \
net/wireless/trace.h
127
__entry->freq_offset = chan->freq_offset; \
net/wireless/trace.h
1363
struct ieee80211_channel *chan),
net/wireless/trace.h
1364
TP_ARGS(wiphy, netdev, chan),
net/wireless/trace.h
1373
CHAN_ASSIGN(chan);
net/wireless/trace.h
149
if ((chandef) && (chandef)->chan) { \
net/wireless/trace.h
150
__entry->band = (chandef)->chan->band; \
net/wireless/trace.h
152
(chandef)->chan->center_freq; \
net/wireless/trace.h
154
(chandef)->chan->freq_offset; \
net/wireless/trace.h
2167
struct ieee80211_channel *chan,
net/wireless/trace.h
2169
TP_ARGS(wiphy, wdev, chan, duration, rx_addr),
net/wireless/trace.h
2180
CHAN_ASSIGN(chan);
net/wireless/trace.h
2240
CHAN_ASSIGN(params->chan);
net/wireless/trace.h
3393
struct ieee80211_channel *chan,
net/wireless/trace.h
3395
TP_ARGS(wdev, cookie, chan, duration),
net/wireless/trace.h
3405
CHAN_ASSIGN(chan);
net/wireless/trace.h
3415
struct ieee80211_channel *chan),
net/wireless/trace.h
3416
TP_ARGS(wdev, cookie, chan),
net/wireless/trace.h
3425
CHAN_ASSIGN(chan);
net/wireless/trace.h
3433
struct ieee80211_channel *chan),
net/wireless/trace.h
3434
TP_ARGS(wdev, cookie, chan),
net/wireless/trace.h
3443
CHAN_ASSIGN(chan);
net/wireless/trace.h
3924
CHAN_ASSIGN(data->chan);
net/wireless/trace.h
4300
struct ieee80211_channel *chan),
net/wireless/trace.h
4301
TP_ARGS(wdev, chan),
net/wireless/trace.h
4308
CHAN_ASSIGN(chan);
net/wireless/util.c
101
return 902000 + chan * 500;
net/wireless/util.c
149
struct ieee80211_channel *chan = &sband->channels[i];
net/wireless/util.c
151
if (ieee80211_channel_to_khz(chan) == freq)
net/wireless/util.c
152
return chan;
net/wireless/util.c
2190
struct ieee80211_channel *chan,
net/wireless/util.c
2197
!chan || band != chan->band)
net/wireless/util.c
2200
control_freq = chan->center_freq;
net/wireless/util.c
2201
chandef->chan = chan;
net/wireless/util.c
2277
if (freq > chandef->chan->center_freq)
net/wireless/util.c
2317
if (freq > chandef->chan->center_freq)
net/wireless/util.c
2333
if (freq > chandef->chan->center_freq)
net/wireless/util.c
2349
if (freq > chandef->chan->center_freq)
net/wireless/util.c
2365
if (freq > chandef->chan->center_freq)
net/wireless/util.c
2620
const struct ieee80211_channel *chan)
net/wireless/util.c
2626
if (!chan)
net/wireless/util.c
2629
freq = ieee80211_channel_to_khz(chan);
net/wireless/util.c
3059
struct ieee80211_channel *chan)
net/wireless/util.c
3071
cfg80211_chandef_create(&chandef, chan, NL80211_CHAN_HT20);
net/wireless/util.c
69
u32 ieee80211_channel_to_freq_khz(int chan, enum nl80211_band band)
net/wireless/util.c
73
if (chan <= 0)
net/wireless/util.c
78
if (chan == 14)
net/wireless/util.c
80
else if (chan < 14)
net/wireless/util.c
81
return MHZ_TO_KHZ(2407 + chan * 5);
net/wireless/util.c
84
if (chan >= 182 && chan <= 196)
net/wireless/util.c
85
return MHZ_TO_KHZ(4000 + chan * 5);
net/wireless/util.c
87
return MHZ_TO_KHZ(5000 + chan * 5);
net/wireless/util.c
91
if (chan == 2)
net/wireless/util.c
93
if (chan <= 253)
net/wireless/util.c
94
return MHZ_TO_KHZ(5950 + chan * 5);
net/wireless/util.c
97
if (chan < 7)
net/wireless/util.c
98
return MHZ_TO_KHZ(56160 + chan * 2160);
net/wireless/wext-compat.c
194
struct ieee80211_channel *chan = &sband->channels[i];
net/wireless/wext-compat.c
196
if (!(chan->flags & IEEE80211_CHAN_DISABLED)) {
net/wireless/wext-compat.c
199
chan->center_freq);
net/wireless/wext-compat.c
200
range->freq[c].m = chan->center_freq;
net/wireless/wext-compat.c
791
chandef.chan = ieee80211_get_channel(&rdev->wiphy, freq);
net/wireless/wext-compat.c
792
if (!chandef.chan)
net/wireless/wext-compat.c
804
chandef.chan = ieee80211_get_channel(&rdev->wiphy, freq);
net/wireless/wext-compat.c
805
if (!chandef.chan)
net/wireless/wext-compat.c
837
freq->m = chandef.chan->center_freq;
net/wireless/wext-sme.c
105
wdev->wext.connect.channel = chan;
net/wireless/wext-sme.c
114
struct ieee80211_channel *chan = NULL;
net/wireless/wext-sme.c
124
chan = wdev->links[0].client.current_bss->pub.channel;
net/wireless/wext-sme.c
126
chan = wdev->wext.connect.channel;
net/wireless/wext-sme.c
128
if (chan) {
net/wireless/wext-sme.c
129
freq->m = chan->center_freq;
net/wireless/wext-sme.c
71
struct ieee80211_channel *chan = NULL;
net/wireless/wext-sme.c
83
chan = ieee80211_get_channel(wdev->wiphy, freq);
net/wireless/wext-sme.c
84
if (!chan)
net/wireless/wext-sme.c
86
if (chan->flags & IEEE80211_CHAN_DISABLED)
net/wireless/wext-sme.c
93
if (wdev->wext.connect.channel == chan)
scripts/mod/devicetable-offsets.c
252
DEVID_FIELD(mhi_device_id, chan);
scripts/mod/file2alias.c
1322
DEF_FIELD_ADDR(symval, mhi_device_id, chan);
scripts/mod/file2alias.c
1323
module_alias_printf(mod, false, MHI_DEVICE_MODALIAS_FMT, *chan);
scripts/mod/file2alias.c
1329
DEF_FIELD_ADDR(symval, mhi_device_id, chan);
scripts/mod/file2alias.c
1331
module_alias_printf(mod, false, MHI_EP_DEVICE_MODALIAS_FMT, *chan);
sound/core/pcm_dmaengine.c
153
struct dma_chan *chan = prtd->dma_chan;
sound/core/pcm_dmaengine.c
164
desc = dmaengine_prep_dma_cyclic(chan,
sound/core/pcm_dmaengine.c
308
struct dma_chan *chan)
sound/core/pcm_dmaengine.c
313
if (!chan)
sound/core/pcm_dmaengine.c
325
prtd->dma_chan = chan;
sound/core/pcm_dmaengine.c
409
struct dma_chan *chan)
sound/core/pcm_dmaengine.c
418
if (!hw || !chan || !dma_data)
sound/core/pcm_dmaengine.c
421
ret = dma_get_slave_caps(chan, &dma_caps);
sound/core/seq/seq_midi_emul.c
115
if (chan->note[ev->data.note.note] & SNDRV_MIDI_NOTE_ON) {
sound/core/seq/seq_midi_emul.c
117
ops->note_off(drv, ev->data.note.note, 0, chan);
sound/core/seq/seq_midi_emul.c
119
chan->note[ev->data.note.note] = SNDRV_MIDI_NOTE_ON;
sound/core/seq/seq_midi_emul.c
121
ops->note_on(drv, ev->data.note.note, ev->data.note.velocity, chan);
sound/core/seq/seq_midi_emul.c
124
if (! (chan->note[ev->data.note.note] & SNDRV_MIDI_NOTE_ON))
sound/core/seq/seq_midi_emul.c
127
note_off(ops, drv, chan, ev->data.note.note, ev->data.note.velocity);
sound/core/seq/seq_midi_emul.c
131
ops->key_press(drv, ev->data.note.note, ev->data.note.velocity, chan);
sound/core/seq/seq_midi_emul.c
134
do_control(ops, drv, chanset, chan,
sound/core/seq/seq_midi_emul.c
138
chan->midi_program = ev->data.control.value;
sound/core/seq/seq_midi_emul.c
141
chan->midi_pitchbend = ev->data.control.value;
sound/core/seq/seq_midi_emul.c
143
ops->control(drv, MIDI_CTL_PITCHBEND, chan);
sound/core/seq/seq_midi_emul.c
146
chan->midi_pressure = ev->data.control.value;
sound/core/seq/seq_midi_emul.c
148
ops->control(drv, MIDI_CTL_CHAN_PRESSURE, chan);
sound/core/seq/seq_midi_emul.c
154
chan->control[ev->data.control.param + 32] =
sound/core/seq/seq_midi_emul.c
156
do_control(ops, drv, chanset, chan,
sound/core/seq/seq_midi_emul.c
160
do_control(ops, drv, chanset, chan,
sound/core/seq/seq_midi_emul.c
166
chan->param_type = SNDRV_MIDI_PARAM_TYPE_NONREGISTERED;
sound/core/seq/seq_midi_emul.c
167
chan->control[MIDI_CTL_MSB_DATA_ENTRY]
sound/core/seq/seq_midi_emul.c
169
chan->control[MIDI_CTL_LSB_DATA_ENTRY]
sound/core/seq/seq_midi_emul.c
171
chan->control[MIDI_CTL_NONREG_PARM_NUM_MSB]
sound/core/seq/seq_midi_emul.c
173
chan->control[MIDI_CTL_NONREG_PARM_NUM_LSB]
sound/core/seq/seq_midi_emul.c
175
nrpn(ops, drv, chan, chanset);
sound/core/seq/seq_midi_emul.c
179
chan->param_type = SNDRV_MIDI_PARAM_TYPE_REGISTERED;
sound/core/seq/seq_midi_emul.c
180
chan->control[MIDI_CTL_MSB_DATA_ENTRY]
sound/core/seq/seq_midi_emul.c
182
chan->control[MIDI_CTL_LSB_DATA_ENTRY]
sound/core/seq/seq_midi_emul.c
184
chan->control[MIDI_CTL_REGIST_PARM_NUM_MSB]
sound/core/seq/seq_midi_emul.c
186
chan->control[MIDI_CTL_REGIST_PARM_NUM_LSB]
sound/core/seq/seq_midi_emul.c
188
rpn(ops, drv, chan, chanset);
sound/core/seq/seq_midi_emul.c
233
struct snd_midi_channel *chan,
sound/core/seq/seq_midi_emul.c
236
if (chan->gm_hold) {
sound/core/seq/seq_midi_emul.c
238
chan->note[note] |= SNDRV_MIDI_NOTE_RELEASED;
sound/core/seq/seq_midi_emul.c
239
} else if (chan->note[note] & SNDRV_MIDI_NOTE_SOSTENUTO) {
sound/core/seq/seq_midi_emul.c
242
chan->note[note] |= SNDRV_MIDI_NOTE_RELEASED;
sound/core/seq/seq_midi_emul.c
244
chan->note[note] = 0;
sound/core/seq/seq_midi_emul.c
246
ops->note_off(drv, note, vel, chan);
sound/core/seq/seq_midi_emul.c
257
struct snd_midi_channel *chan, int control, int value)
sound/core/seq/seq_midi_emul.c
261
if (control >= ARRAY_SIZE(chan->control))
sound/core/seq/seq_midi_emul.c
269
chan->control[control] = value;
sound/core/seq/seq_midi_emul.c
276
if (chan->note[i] & SNDRV_MIDI_NOTE_RELEASED) {
sound/core/seq/seq_midi_emul.c
277
chan->note[i] = SNDRV_MIDI_NOTE_OFF;
sound/core/seq/seq_midi_emul.c
279
ops->note_off(drv, i, 0, chan);
sound/core/seq/seq_midi_emul.c
290
if (chan->note[i] & SNDRV_MIDI_NOTE_ON)
sound/core/seq/seq_midi_emul.c
291
chan->note[i] |= SNDRV_MIDI_NOTE_SOSTENUTO;
sound/core/seq/seq_midi_emul.c
296
if (chan->note[i] & SNDRV_MIDI_NOTE_SOSTENUTO) {
sound/core/seq/seq_midi_emul.c
297
chan->note[i] &= ~SNDRV_MIDI_NOTE_SOSTENUTO;
sound/core/seq/seq_midi_emul.c
298
if (chan->note[i] & SNDRV_MIDI_NOTE_RELEASED) {
sound/core/seq/seq_midi_emul.c
299
chan->note[i] = SNDRV_MIDI_NOTE_OFF;
sound/core/seq/seq_midi_emul.c
301
ops->note_off(drv, i, 0, chan);
sound/core/seq/seq_midi_emul.c
308
chan->control[MIDI_CTL_LSB_DATA_ENTRY] = 0;
sound/core/seq/seq_midi_emul.c
311
if (chan->param_type == SNDRV_MIDI_PARAM_TYPE_REGISTERED)
sound/core/seq/seq_midi_emul.c
312
rpn(ops, drv, chan, chset);
sound/core/seq/seq_midi_emul.c
314
nrpn(ops, drv, chan, chset);
sound/core/seq/seq_midi_emul.c
318
chan->param_type = SNDRV_MIDI_PARAM_TYPE_REGISTERED;
sound/core/seq/seq_midi_emul.c
322
chan->param_type = SNDRV_MIDI_PARAM_TYPE_NONREGISTERED;
sound/core/seq/seq_midi_emul.c
326
all_sounds_off(ops, drv, chan);
sound/core/seq/seq_midi_emul.c
330
all_notes_off(ops, drv, chan);
sound/core/seq/seq_midi_emul.c
336
chan->drum_channel = 1;
sound/core/seq/seq_midi_emul.c
338
chan->drum_channel = 0;
sound/core/seq/seq_midi_emul.c
34
struct snd_midi_channel *chan,
sound/core/seq/seq_midi_emul.c
345
snd_midi_reset_controllers(chan);
sound/core/seq/seq_midi_emul.c
365
ops->control(drv, control, chan);
sound/core/seq/seq_midi_emul.c
38
struct snd_midi_channel *chan,
sound/core/seq/seq_midi_emul.c
383
struct snd_midi_channel *chan = chset->channels + i;
sound/core/seq/seq_midi_emul.c
384
memset(chan->note, 0, sizeof(chan->note));
sound/core/seq/seq_midi_emul.c
386
chan->midi_aftertouch = 0;
sound/core/seq/seq_midi_emul.c
387
chan->midi_pressure = 0;
sound/core/seq/seq_midi_emul.c
388
chan->midi_program = 0;
sound/core/seq/seq_midi_emul.c
389
chan->midi_pitchbend = 0;
sound/core/seq/seq_midi_emul.c
390
snd_midi_reset_controllers(chan);
sound/core/seq/seq_midi_emul.c
391
chan->gm_rpn_pitch_bend_range = 256; /* 2 semitones */
sound/core/seq/seq_midi_emul.c
392
chan->gm_rpn_fine_tuning = 0;
sound/core/seq/seq_midi_emul.c
393
chan->gm_rpn_coarse_tuning = 0;
sound/core/seq/seq_midi_emul.c
396
chan->drum_channel = 1;
sound/core/seq/seq_midi_emul.c
398
chan->drum_channel = 0;
sound/core/seq/seq_midi_emul.c
407
rpn(const struct snd_midi_op *ops, void *drv, struct snd_midi_channel *chan,
sound/core/seq/seq_midi_emul.c
41
struct snd_midi_channel *chan,
sound/core/seq/seq_midi_emul.c
414
type = (chan->control[MIDI_CTL_REGIST_PARM_NUM_MSB] << 8) |
sound/core/seq/seq_midi_emul.c
415
chan->control[MIDI_CTL_REGIST_PARM_NUM_LSB];
sound/core/seq/seq_midi_emul.c
416
val = (chan->control[MIDI_CTL_MSB_DATA_ENTRY] << 7) |
sound/core/seq/seq_midi_emul.c
417
chan->control[MIDI_CTL_LSB_DATA_ENTRY];
sound/core/seq/seq_midi_emul.c
422
chan->gm_rpn_pitch_bend_range = val;
sound/core/seq/seq_midi_emul.c
427
chan->gm_rpn_fine_tuning = val - 8192;
sound/core/seq/seq_midi_emul.c
432
chan->gm_rpn_coarse_tuning = val - 8192;
sound/core/seq/seq_midi_emul.c
44
struct snd_midi_channel *chan,
sound/core/seq/seq_midi_emul.c
447
nrpn(const struct snd_midi_op *ops, void *drv, struct snd_midi_channel *chan,
sound/core/seq/seq_midi_emul.c
452
ops->nrpn(drv, chan, chset);
sound/core/seq/seq_midi_emul.c
50
struct snd_midi_channel *chan);
sound/core/seq/seq_midi_emul.c
52
struct snd_midi_channel *chan);
sound/core/seq/seq_midi_emul.c
53
static void snd_midi_reset_controllers(struct snd_midi_channel *chan);
sound/core/seq/seq_midi_emul.c
590
struct snd_midi_channel *chan)
sound/core/seq/seq_midi_emul.c
597
if (chan->note[n]) {
sound/core/seq/seq_midi_emul.c
598
ops->note_terminate(drv, n, chan);
sound/core/seq/seq_midi_emul.c
599
chan->note[n] = 0;
sound/core/seq/seq_midi_emul.c
609
struct snd_midi_channel *chan)
sound/core/seq/seq_midi_emul.c
616
if (chan->note[n] == SNDRV_MIDI_NOTE_ON)
sound/core/seq/seq_midi_emul.c
617
note_off(ops, drv, chan, n, 0);
sound/core/seq/seq_midi_emul.c
650
struct snd_midi_channel *chan = chset->channels + ch;
sound/core/seq/seq_midi_emul.c
651
snd_midi_reset_controllers(chan);
sound/core/seq/seq_midi_emul.c
652
chan->gm_rpn_pitch_bend_range = 256; /* 2 semitones */
sound/core/seq/seq_midi_emul.c
653
chan->gm_rpn_fine_tuning = 0;
sound/core/seq/seq_midi_emul.c
654
chan->gm_rpn_coarse_tuning = 0;
sound/core/seq/seq_midi_emul.c
657
chan->drum_channel = 1;
sound/core/seq/seq_midi_emul.c
659
chan->drum_channel = 0;
sound/core/seq/seq_midi_emul.c
689
static void snd_midi_reset_controllers(struct snd_midi_channel *chan)
sound/core/seq/seq_midi_emul.c
691
memset(chan->control, 0, sizeof(chan->control));
sound/core/seq/seq_midi_emul.c
692
chan->gm_volume = 127;
sound/core/seq/seq_midi_emul.c
693
chan->gm_expression = 127;
sound/core/seq/seq_midi_emul.c
694
chan->gm_pan = 64;
sound/core/seq/seq_midi_emul.c
76
struct snd_midi_channel *chan;
sound/core/seq/seq_midi_emul.c
93
chan = chanset->channels + dest_channel;
sound/drivers/opl3/opl3_drums.c
122
int vel, struct snd_midi_channel *chan)
sound/drivers/opl3/opl3_drums.c
131
snd_opl3_calc_volume(&reg_val, vel, chan);
sound/drivers/opl3/opl3_drums.c
138
if (chan->gm_pan < 43)
sound/drivers/opl3/opl3_drums.c
140
if (chan->gm_pan > 85)
sound/drivers/opl3/opl3_drums.c
170
struct snd_midi_channel *chan)
sound/drivers/opl3/opl3_drums.c
203
snd_opl3_drum_vol_set(opl3, drum_voice, vel, chan);
sound/drivers/opl3/opl3_midi.c
135
struct snd_midi_channel *chan) {
sound/drivers/opl3/opl3_midi.c
22
struct snd_midi_channel *chan);
sound/drivers/opl3/opl3_midi.c
246
vp->chan);
sound/drivers/opl3/opl3_midi.c
282
void snd_opl3_note_on(void *p, int note, int vel, struct snd_midi_channel *chan)
sound/drivers/opl3/opl3_midi.c
312
chan->number, chan->midi_program, note, vel);
sound/drivers/opl3/opl3_midi.c
317
if (chan->drum_channel) {
sound/drivers/opl3/opl3_midi.c
322
bank = chan->gm_bank_select;
sound/drivers/opl3/opl3_midi.c
323
prg = chan->midi_program;
sound/drivers/opl3/opl3_midi.c
327
if (chan->number >= MAX_OPL3_VOICES)
sound/drivers/opl3/opl3_midi.c
332
prg = chan->midi_program;
sound/drivers/opl3/opl3_midi.c
338
snd_opl3_drum_switch(opl3, note, vel, 1, chan);
sound/drivers/opl3/opl3_midi.c
366
voice = opl3_get_voice(opl3, instr_4op, chan);
sound/drivers/opl3/opl3_midi.c
369
voice = snd_opl3_oss_map[chan->number];
sound/drivers/opl3/opl3_midi.c
435
snd_opl3_calc_volume(&vol_op[3], vel, chan);
sound/drivers/opl3/opl3_midi.c
438
snd_opl3_calc_volume(&vol_op[2], vel, chan);
sound/drivers/opl3/opl3_midi.c
441
snd_opl3_calc_volume(&vol_op[0], vel, chan);
sound/drivers/opl3/opl3_midi.c
444
snd_opl3_calc_volume(&vol_op[1], vel, chan);
sound/drivers/opl3/opl3_midi.c
447
snd_opl3_calc_volume(&vol_op[1], vel, chan);
sound/drivers/opl3/opl3_midi.c
449
snd_opl3_calc_volume(&vol_op[0], vel, chan);
sound/drivers/opl3/opl3_midi.c
487
if (chan->gm_pan < 43)
sound/drivers/opl3/opl3_midi.c
489
if (chan->gm_pan > 85)
sound/drivers/opl3/opl3_midi.c
499
if (chan->gm_pan < 43)
sound/drivers/opl3/opl3_midi.c
501
if (chan->gm_pan > 85)
sound/drivers/opl3/opl3_midi.c
521
snd_opl3_calc_pitch(&fnum, &blocknum, note, chan);
sound/drivers/opl3/opl3_midi.c
54
struct snd_midi_channel *chan)
sound/drivers/opl3/opl3_midi.c
552
vp->chan = chan;
sound/drivers/opl3/opl3_midi.c
560
vp2->chan = chan;
sound/drivers/opl3/opl3_midi.c
59
volume = (vel * chan->gm_volume * chan->gm_expression) / (127*127);
sound/drivers/opl3/opl3_midi.c
639
struct snd_midi_channel *chan)
sound/drivers/opl3/opl3_midi.c
649
chan->number, chan->midi_program, note);
sound/drivers/opl3/opl3_midi.c
652
if (chan->drum_channel && use_internal_drums) {
sound/drivers/opl3/opl3_midi.c
653
snd_opl3_drum_switch(opl3, note, vel, 0, chan);
sound/drivers/opl3/opl3_midi.c
660
if (vp->state > 0 && vp->chan == chan && vp->note == note) {
sound/drivers/opl3/opl3_midi.c
666
if (chan->number < MAX_OPL3_VOICES) {
sound/drivers/opl3/opl3_midi.c
667
voice = snd_opl3_oss_map[chan->number];
sound/drivers/opl3/opl3_midi.c
674
struct snd_midi_channel *chan)
sound/drivers/opl3/opl3_midi.c
679
snd_opl3_note_off_unsafe(p, note, vel, chan);
sound/drivers/opl3/opl3_midi.c
685
void snd_opl3_key_press(void *p, int note, int vel, struct snd_midi_channel *chan)
sound/drivers/opl3/opl3_midi.c
688
chan->number, chan->midi_program);
sound/drivers/opl3/opl3_midi.c
694
void snd_opl3_terminate_note(void *p, int note, struct snd_midi_channel *chan)
sound/drivers/opl3/opl3_midi.c
697
chan->number, chan->midi_program);
sound/drivers/opl3/opl3_midi.c
714
if (vp->chan == NULL)
sound/drivers/opl3/opl3_midi.c
727
snd_opl3_calc_pitch(&fnum, &blocknum, vp->note, vp->chan);
sound/drivers/opl3/opl3_midi.c
748
static void snd_opl3_pitch_ctrl(struct snd_opl3 *opl3, struct snd_midi_channel *chan)
sound/drivers/opl3/opl3_midi.c
758
if (vp->state > 0 && vp->chan == chan) {
sound/drivers/opl3/opl3_midi.c
764
if (chan->number < MAX_OPL3_VOICES) {
sound/drivers/opl3/opl3_midi.c
765
voice = snd_opl3_oss_map[chan->number];
sound/drivers/opl3/opl3_midi.c
775
void snd_opl3_control(void *p, int type, struct snd_midi_channel *chan)
sound/drivers/opl3/opl3_midi.c
781
type, chan->number, chan->midi_program);
sound/drivers/opl3/opl3_midi.c
785
if (chan->control[MIDI_CTL_MSB_MODWHEEL] > 63)
sound/drivers/opl3/opl3_midi.c
793
if (chan->control[MIDI_CTL_E2_TREMOLO_DEPTH] > 63)
sound/drivers/opl3/opl3_midi.c
801
snd_opl3_pitch_ctrl(opl3, chan);
sound/drivers/opl3/opl3_midi.c
809
void snd_opl3_nrpn(void *p, struct snd_midi_channel *chan,
sound/drivers/opl3/opl3_midi.c
813
chan->number, chan->midi_program);
sound/drivers/opl3/opl3_midi.c
87
int note, struct snd_midi_channel *chan)
sound/drivers/opl3/opl3_midi.c
93
if (chan->midi_pitchbend) {
sound/drivers/opl3/opl3_midi.c
94
int pitchbend = chan->midi_pitchbend;
sound/drivers/opl3/opl3_voice.h
18
void snd_opl3_note_on(void *p, int note, int vel, struct snd_midi_channel *chan);
sound/drivers/opl3/opl3_voice.h
19
void snd_opl3_note_off(void *p, int note, int vel, struct snd_midi_channel *chan);
sound/drivers/opl3/opl3_voice.h
20
void snd_opl3_key_press(void *p, int note, int vel, struct snd_midi_channel *chan);
sound/drivers/opl3/opl3_voice.h
21
void snd_opl3_terminate_note(void *p, int note, struct snd_midi_channel *chan);
sound/drivers/opl3/opl3_voice.h
22
void snd_opl3_control(void *p, int type, struct snd_midi_channel *chan);
sound/drivers/opl3/opl3_voice.h
23
void snd_opl3_nrpn(void *p, struct snd_midi_channel *chan, struct snd_midi_channel_set *chset);
sound/drivers/opl3/opl3_voice.h
26
void snd_opl3_calc_volume(unsigned char *reg, int vel, struct snd_midi_channel *chan);
sound/drivers/opl3/opl3_voice.h
31
void snd_opl3_drum_switch(struct snd_opl3 *opl3, int note, int vel, int on_off, struct snd_midi_channel *chan);
sound/drivers/opl4/opl4_local.h
162
struct snd_midi_channel *chan;
sound/drivers/opl4/opl4_local.h
225
void snd_opl4_note_on(void *p, int note, int vel, struct snd_midi_channel *chan);
sound/drivers/opl4/opl4_local.h
226
void snd_opl4_note_off(void *p, int note, int vel, struct snd_midi_channel *chan);
sound/drivers/opl4/opl4_local.h
227
void snd_opl4_terminate_note(void *p, int note, struct snd_midi_channel *chan);
sound/drivers/opl4/opl4_local.h
228
void snd_opl4_control(void *p, int type, struct snd_midi_channel *chan);
sound/drivers/opl4/opl4_synth.c
309
static void snd_opl4_do_for_note(struct snd_opl4 *opl4, int note, struct snd_midi_channel *chan,
sound/drivers/opl4/opl4_synth.c
318
if (voice->chan == chan && voice->note == note) {
sound/drivers/opl4/opl4_synth.c
328
struct snd_midi_channel *chan,
sound/drivers/opl4/opl4_synth.c
337
if (voice->chan == chan) {
sound/drivers/opl4/opl4_synth.c
355
if (voice->chan)
sound/drivers/opl4/opl4_synth.c
366
att += snd_opl4_volume_table[voice->chan->gm_volume & 0x7f];
sound/drivers/opl4/opl4_synth.c
367
att += snd_opl4_volume_table[voice->chan->gm_expression & 0x7f];
sound/drivers/opl4/opl4_synth.c
383
if (!voice->chan->drum_channel)
sound/drivers/opl4/opl4_synth.c
384
pan += (voice->chan->control[MIDI_CTL_MSB_PAN] - 0x40) >> 3;
sound/drivers/opl4/opl4_synth.c
399
if (voice->chan->drum_channel)
sound/drivers/opl4/opl4_synth.c
402
* (voice->chan->control[MIDI_CTL_VIBRATO_DEPTH] & 0x7f);
sound/drivers/opl4/opl4_synth.c
413
struct snd_midi_channel *chan = voice->chan;
sound/drivers/opl4/opl4_synth.c
416
note = chan->drum_channel ? 60 : voice->note;
sound/drivers/opl4/opl4_synth.c
423
if (!chan->drum_channel)
sound/drivers/opl4/opl4_synth.c
424
pitch += chan->gm_rpn_coarse_tuning;
sound/drivers/opl4/opl4_synth.c
425
pitch += chan->gm_rpn_fine_tuning >> 7;
sound/drivers/opl4/opl4_synth.c
426
pitch += chan->midi_pitchbend * chan->gm_rpn_pitch_bend_range / 0x2000;
sound/drivers/opl4/opl4_synth.c
473
void snd_opl4_note_on(void *private_data, int note, int vel, struct snd_midi_channel *chan)
sound/drivers/opl4/opl4_synth.c
482
i = chan->drum_channel ? 0x80 : (chan->midi_program & 0x7f);
sound/drivers/opl4/opl4_synth.c
498
voice[i]->chan = chan;
sound/drivers/opl4/opl4_synth.c
552
void snd_opl4_note_off(void *private_data, int note, int vel, struct snd_midi_channel *chan)
sound/drivers/opl4/opl4_synth.c
556
snd_opl4_do_for_note(opl4, note, chan, snd_opl4_voice_off);
sound/drivers/opl4/opl4_synth.c
567
void snd_opl4_terminate_note(void *private_data, int note, struct snd_midi_channel *chan)
sound/drivers/opl4/opl4_synth.c
571
snd_opl4_do_for_note(opl4, note, chan, snd_opl4_terminate_voice);
sound/drivers/opl4/opl4_synth.c
574
void snd_opl4_control(void *private_data, int type, struct snd_midi_channel *chan)
sound/drivers/opl4/opl4_synth.c
580
chan->control[MIDI_CTL_VIBRATO_DEPTH] = chan->control[MIDI_CTL_MSB_MODWHEEL];
sound/drivers/opl4/opl4_synth.c
581
snd_opl4_do_for_channel(opl4, chan, snd_opl4_update_vibrato_depth);
sound/drivers/opl4/opl4_synth.c
584
snd_opl4_do_for_channel(opl4, chan, snd_opl4_update_volume);
sound/drivers/opl4/opl4_synth.c
587
snd_opl4_do_for_channel(opl4, chan, snd_opl4_update_pan);
sound/drivers/opl4/opl4_synth.c
590
snd_opl4_do_for_channel(opl4, chan, snd_opl4_update_volume);
sound/drivers/opl4/opl4_synth.c
596
snd_opl4_do_for_channel(opl4, chan, snd_opl4_update_vibrato_depth);
sound/drivers/opl4/opl4_synth.c
608
snd_opl4_do_for_channel(opl4, chan, snd_opl4_update_pitch);
sound/hda/codecs/hdmi/atihdmi.c
417
int chan = 7 - atihdmi_paired_swap_fc_lfe(7 - c);
sound/hda/codecs/hdmi/atihdmi.c
418
int spk = cap->speakers[chan];
sound/hda/codecs/hdmi/atihdmi.c
422
if (cap->speakers[chan + (chan % 2 ? -1 : 1)])
sound/hda/codecs/hdmi/nvhdmi-mcp.c
65
int chan = channels ? (channels - 1) : 1;
sound/hda/codecs/hdmi/nvhdmi-mcp.c
92
(0x71 - chan - chanmask));
sound/isa/sb/emu8000_callback.c
226
struct snd_midi_channel *chan;
sound/isa/sb/emu8000_callback.c
231
chan = vp->chan;
sound/isa/sb/emu8000_callback.c
274
temp += (int)chan->control[MIDI_CTL_E3_CHORUS_DEPTH] * 9 / 10;
sound/isa/sb/emu8000_callback.c
311
temp += (int)vp->chan->control[MIDI_CTL_E1_REVERB_DEPTH] * 9 / 10;
sound/isa/sb/emu8000_callback.c
379
modulation = vp->chan->gm_modulation + vp->chan->midi_pressure;
sound/isa/sb/emu8000_callback.c
404
modulation = vp->chan->gm_modulation + vp->chan->midi_pressure;
sound/mips/sgio2audio.c
355
src_pos = readq(&mace->perif.audio.chan[ch].read_ptr);
sound/mips/sgio2audio.c
378
writeq(src_pos, &mace->perif.audio.chan[ch].read_ptr); /* in bytes */
sound/mips/sgio2audio.c
401
dst_pos = readq(&mace->perif.audio.chan[ch].write_ptr);
sound/mips/sgio2audio.c
426
writeq(dst_pos, &mace->perif.audio.chan[ch].write_ptr); /* in bytes */
sound/mips/sgio2audio.c
435
struct snd_sgio2audio_chan *chan = substream->runtime->private_data;
sound/mips/sgio2audio.c
436
int ch = chan->idx;
sound/mips/sgio2audio.c
439
writeq(CHANNEL_CONTROL_RESET, &mace->perif.audio.chan[ch].control);
sound/mips/sgio2audio.c
441
writeq(0, &mace->perif.audio.chan[ch].control);
sound/mips/sgio2audio.c
449
&mace->perif.audio.chan[ch].control);
sound/mips/sgio2audio.c
455
struct snd_sgio2audio_chan *chan = substream->runtime->private_data;
sound/mips/sgio2audio.c
457
writeq(0, &mace->perif.audio.chan[chan->idx].control);
sound/mips/sgio2audio.c
463
struct snd_sgio2audio_chan *chan = dev_id;
sound/mips/sgio2audio.c
468
substream = chan->substream;
sound/mips/sgio2audio.c
470
ch = chan->idx;
sound/mips/sgio2audio.c
474
readq(&mace->perif.audio.chan[ch].depth) - 32;
sound/mips/sgio2audio.c
483
struct snd_sgio2audio_chan *chan = dev_id;
sound/mips/sgio2audio.c
488
substream = chan->substream;
sound/mips/sgio2audio.c
490
ch = chan->idx;
sound/mips/sgio2audio.c
493
readq(&mace->perif.audio.chan[ch].depth) - 32;
sound/mips/sgio2audio.c
502
struct snd_sgio2audio_chan *chan = dev_id;
sound/mips/sgio2audio.c
505
substream = chan->substream;
sound/mips/sgio2audio.c
577
struct snd_sgio2audio_chan *chan = substream->runtime->private_data;
sound/mips/sgio2audio.c
578
int ch = chan->idx;
sound/mips/sgio2audio.c
631
struct snd_sgio2audio_chan *chan = substream->runtime->private_data;
sound/mips/sgio2audio.c
635
chip->channel[chan->idx].pos);
sound/mips/snd-n64.c
102
priv->chan.nextpos += count;
sound/mips/snd-n64.c
103
priv->chan.nextpos %= priv->chan.bufsize;
sound/mips/snd-n64.c
119
if (priv->chan.substream && snd_pcm_running(priv->chan.substream)) {
sound/mips/snd-n64.c
120
scoped_guard(spinlock_irqsave, &priv->chan.lock) {
sound/mips/snd-n64.c
121
priv->chan.pos = priv->chan.nextpos;
sound/mips/snd-n64.c
124
snd_pcm_period_elapsed(priv->chan.substream);
sound/mips/snd-n64.c
125
if (priv->chan.substream && snd_pcm_running(priv->chan.substream))
sound/mips/snd-n64.c
218
guard(spinlock_irq)(&priv->chan.lock);
sound/mips/snd-n64.c
221
priv->chan.pos = 0;
sound/mips/snd-n64.c
222
priv->chan.nextpos = 0;
sound/mips/snd-n64.c
223
priv->chan.substream = substream;
sound/mips/snd-n64.c
224
priv->chan.writesize = snd_pcm_lib_period_bytes(substream);
sound/mips/snd-n64.c
225
priv->chan.bufsize = snd_pcm_lib_buffer_bytes(substream);
sound/mips/snd-n64.c
256
priv->chan.pos);
sound/mips/snd-n64.c
263
priv->chan.substream = NULL;
sound/mips/snd-n64.c
296
spin_lock_init(&priv->chan.lock);
sound/mips/snd-n64.c
63
} chan;
sound/mips/snd-n64.c
83
struct snd_pcm_runtime *runtime = priv->chan.substream->runtime;
sound/mips/snd-n64.c
86
guard(spinlock_irqsave)(&priv->chan.lock);
sound/mips/snd-n64.c
88
count = priv->chan.writesize;
sound/mips/snd-n64.c
90
memcpy(priv->ring_base + priv->chan.nextpos,
sound/mips/snd-n64.c
91
runtime->dma_area + priv->chan.nextpos, count);
sound/mips/snd-n64.c
98
n64audio_write_reg(priv, AI_ADDR_REG, priv->ring_base_dma + priv->chan.nextpos);
sound/pci/emu10k1/emu10k1_callback.c
316
struct snd_midi_channel *chan;
sound/pci/emu10k1/emu10k1_callback.c
324
chan = vp->chan;
sound/pci/emu10k1/emu10k1_callback.c
354
temp += (int)vp->chan->control[MIDI_CTL_E1_REVERB_DEPTH] * 9 / 10;
sound/pci/emu10k1/emu10k1_callback.c
361
temp += (int)chan->control[MIDI_CTL_E3_CHORUS_DEPTH] * 9 / 10;
sound/pci/emu10k1/emu10k1_callback.c
494
modulation = vp->chan->gm_modulation + vp->chan->midi_pressure;
sound/pci/emu10k1/emu10k1_callback.c
510
modulation = vp->chan->gm_modulation + vp->chan->midi_pressure;
sound/pci/es1968.c
1424
struct esschan *chan = runtime->private_data;
sound/pci/es1968.c
1427
if (chan->memory) {
sound/pci/es1968.c
1428
if (chan->memory->buf.bytes >= size) {
sound/pci/es1968.c
1432
snd_es1968_free_memory(chip, chan->memory);
sound/pci/es1968.c
1434
chan->memory = snd_es1968_new_memory(chip, size);
sound/pci/es1968.c
1435
if (chan->memory == NULL) {
sound/pci/es1968.c
1440
snd_pcm_set_runtime_buffer(substream, &chan->memory->buf);
sound/pci/es1968.c
1449
struct esschan *chan;
sound/pci/es1968.c
1453
chan = runtime->private_data;
sound/pci/es1968.c
1454
if (chan->memory) {
sound/pci/es1968.c
1455
snd_es1968_free_memory(chip, chan->memory);
sound/pci/es1968.c
1456
chan->memory = NULL;
sound/pci/rme9652/hdspm.c
1149
static inline int hdspm_read_in_gain(struct hdspm * hdspm, unsigned int chan,
sound/pci/rme9652/hdspm.c
1152
if (chan >= HDSPM_MIXER_CHANNELS || in >= HDSPM_MIXER_CHANNELS)
sound/pci/rme9652/hdspm.c
1155
return hdspm->mixer->ch[chan].in[in];
sound/pci/rme9652/hdspm.c
1158
static inline int hdspm_read_pb_gain(struct hdspm * hdspm, unsigned int chan,
sound/pci/rme9652/hdspm.c
1161
if (chan >= HDSPM_MIXER_CHANNELS || pb >= HDSPM_MIXER_CHANNELS)
sound/pci/rme9652/hdspm.c
1163
return hdspm->mixer->ch[chan].pb[pb];
sound/pci/rme9652/hdspm.c
1166
static int hdspm_write_in_gain(struct hdspm *hdspm, unsigned int chan,
sound/pci/rme9652/hdspm.c
1169
if (chan >= HDSPM_MIXER_CHANNELS || in >= HDSPM_MIXER_CHANNELS)
sound/pci/rme9652/hdspm.c
1174
((in + 128 * chan) * sizeof(u32)),
sound/pci/rme9652/hdspm.c
1175
(hdspm->mixer->ch[chan].in[in] = data & 0xFFFF));
sound/pci/rme9652/hdspm.c
1179
static int hdspm_write_pb_gain(struct hdspm *hdspm, unsigned int chan,
sound/pci/rme9652/hdspm.c
1182
if (chan >= HDSPM_MIXER_CHANNELS || pb >= HDSPM_MIXER_CHANNELS)
sound/pci/rme9652/hdspm.c
1187
((64 + pb + 128 * chan) * sizeof(u32)),
sound/pci/rme9652/hdspm.c
1188
(hdspm->mixer->ch[chan].pb[pb] = data & 0xFFFF));
sound/pci/via82xx.c
213
#define VIA8233_INTR_MASK(chan) ((VIA8233_REG_SGD_STAT_FLAG|VIA8233_REG_SGD_STAT_EOL) << ((chan) * 4))
sound/soc/apple/mca.c
802
struct dma_chan *chan)
sound/soc/apple/mca.c
804
struct device *dma_dev = chan->device->dev;
sound/soc/apple/mca.c
822
&hw, chan);
sound/soc/apple/mca.c
835
struct dma_chan *chan = cl->dma_chans[substream->stream];
sound/soc/apple/mca.c
841
ret = mca_set_runtime_hwparams(component, substream, chan);
sound/soc/apple/mca.c
845
return snd_dmaengine_pcm_open(substream, chan);
sound/soc/apple/mca.c
853
struct dma_chan *chan = snd_dmaengine_pcm_get_chan(substream);
sound/soc/apple/mca.c
873
return dmaengine_slave_config(chan, &slave_config);
sound/soc/apple/mca.c
964
struct dma_chan *chan;
sound/soc/apple/mca.c
969
chan = mca_request_dma_channel(cl, i);
sound/soc/apple/mca.c
971
if (IS_ERR_OR_NULL(chan)) {
sound/soc/apple/mca.c
974
if (chan && PTR_ERR(chan) == -EPROBE_DEFER)
sound/soc/apple/mca.c
975
return PTR_ERR(chan);
sound/soc/apple/mca.c
978
i, cl->no, chan);
sound/soc/apple/mca.c
980
if (!chan)
sound/soc/apple/mca.c
982
return PTR_ERR(chan);
sound/soc/apple/mca.c
985
cl->dma_chans[i] = chan;
sound/soc/apple/mca.c
987
chan->device->dev, 512 * 1024 * 6,
sound/soc/codecs/adau7118.c
131
int chan, ret;
sound/soc/codecs/adau7118.c
135
for (chan = 0; chan < tx_num; chan++) {
sound/soc/codecs/adau7118.c
137
ADAU7118_REG_SPT_CX(chan),
sound/soc/codecs/adau7118.c
139
ADAU7118_SPT_SLOT(tx_slot[chan]));
sound/soc/codecs/audio-iio-aux.c
103
struct audio_iio_aux_chan *chan)
sound/soc/codecs/audio-iio-aux.c
107
.name = chan->name,
sound/soc/codecs/audio-iio-aux.c
111
.private_value = (unsigned long)chan,
sound/soc/codecs/audio-iio-aux.c
131
struct audio_iio_aux_chan *chan)
sound/soc/codecs/audio-iio-aux.c
137
char *input_name __free(kfree) = kasprintf(GFP_KERNEL, "%s IN", chan->name);
sound/soc/codecs/audio-iio-aux.c
141
char *output_name __free(kfree) = kasprintf(GFP_KERNEL, "%s OUT", chan->name);
sound/soc/codecs/audio-iio-aux.c
145
char *pga_name __free(kfree) = kasprintf(GFP_KERNEL, "%s PGA", chan->name);
sound/soc/codecs/audio-iio-aux.c
169
struct audio_iio_aux_chan *chan;
sound/soc/codecs/audio-iio-aux.c
174
chan = iio_aux->chans + i;
sound/soc/codecs/audio-iio-aux.c
176
ret = iio_read_max_channel_raw(chan->iio_chan, &chan->max);
sound/soc/codecs/audio-iio-aux.c
180
i, chan->name);
sound/soc/codecs/audio-iio-aux.c
182
ret = iio_read_min_channel_raw(chan->iio_chan, &chan->min);
sound/soc/codecs/audio-iio-aux.c
186
i, chan->name);
sound/soc/codecs/audio-iio-aux.c
188
if (chan->min > chan->max) {
sound/soc/codecs/audio-iio-aux.c
195
i, chan->name);
sound/soc/codecs/audio-iio-aux.c
196
swap(chan->min, chan->max);
sound/soc/codecs/audio-iio-aux.c
200
ret = iio_write_channel_raw(chan->iio_chan,
sound/soc/codecs/audio-iio-aux.c
201
chan->is_invert_range ? chan->max : chan->min);
sound/soc/codecs/audio-iio-aux.c
205
i, chan->name);
sound/soc/codecs/audio-iio-aux.c
207
ret = audio_iio_aux_add_controls(component, chan);
sound/soc/codecs/audio-iio-aux.c
211
ret = audio_iio_aux_add_dapms(component, chan);
sound/soc/codecs/audio-iio-aux.c
216
i, chan->name, chan->min, chan->max,
sound/soc/codecs/audio-iio-aux.c
217
str_on_off(chan->is_invert_range));
sound/soc/codecs/audio-iio-aux.c
36
struct audio_iio_aux_chan *chan = (struct audio_iio_aux_chan *)kcontrol->private_value;
sound/soc/codecs/audio-iio-aux.c
40
uinfo->value.integer.max = chan->max - chan->min;
sound/soc/codecs/audio-iio-aux.c
49
struct audio_iio_aux_chan *chan = (struct audio_iio_aux_chan *)kcontrol->private_value;
sound/soc/codecs/audio-iio-aux.c
50
int max = chan->max;
sound/soc/codecs/audio-iio-aux.c
51
int min = chan->min;
sound/soc/codecs/audio-iio-aux.c
52
bool invert_range = chan->is_invert_range;
sound/soc/codecs/audio-iio-aux.c
56
ret = iio_read_channel_raw(chan->iio_chan, &val);
sound/soc/codecs/audio-iio-aux.c
70
struct audio_iio_aux_chan *chan = (struct audio_iio_aux_chan *)kcontrol->private_value;
sound/soc/codecs/audio-iio-aux.c
71
int max = chan->max;
sound/soc/codecs/audio-iio-aux.c
72
int min = chan->min;
sound/soc/codecs/audio-iio-aux.c
73
bool invert_range = chan->is_invert_range;
sound/soc/codecs/audio-iio-aux.c
88
ret = iio_read_channel_raw(chan->iio_chan, &tmp);
sound/soc/codecs/audio-iio-aux.c
95
ret = iio_write_channel_raw(chan->iio_chan, val);
sound/soc/codecs/aw88261.c
792
int chan;
sound/soc/codecs/aw88261.c
844
if ((chan = __ffs(tx_mask)) > 16)
sound/soc/codecs/aw88261.c
847
aw88261->tx_slotvld_mask = chan << AW88261_I2S_TX_SLOTVLD_START_BIT;
sound/soc/codecs/aw88261.c
851
if ((chan = __ffs(rx_mask)) > 16)
sound/soc/codecs/aw88261.c
854
aw88261->rxl_slotvld_mask = chan << AW88261_I2S_RXL_SLOTVLD_START_BIT;
sound/soc/codecs/aw88261.c
857
if ((rx_mask & ~BIT(chan)) != 0) {
sound/soc/codecs/aw88261.c
858
if ((chan = __ffs(rx_mask & ~BIT(chan))) > 16)
sound/soc/codecs/aw88261.c
861
aw88261->rxr_slotvld_mask = chan << AW88261_I2S_RXR_SLOTVLD_START_BIT;
sound/soc/codecs/peb2466.c
672
unsigned int chan;
sound/soc/codecs/peb2466.c
689
chan = 0;
sound/soc/codecs/peb2466.c
690
while (mask && chan < PEB2466_NB_CHANNEL) {
sound/soc/codecs/peb2466.c
692
ret = regmap_write(peb2466->regmap, PEB2466_CR5(chan), slot);
sound/soc/codecs/peb2466.c
695
chan, ret);
sound/soc/codecs/peb2466.c
698
chan++;
sound/soc/codecs/peb2466.c
708
peb2466->max_chan_playback = chan;
sound/soc/codecs/peb2466.c
712
chan = 0;
sound/soc/codecs/peb2466.c
713
while (mask && chan < PEB2466_NB_CHANNEL) {
sound/soc/codecs/peb2466.c
715
ret = regmap_write(peb2466->regmap, PEB2466_CR4(chan), slot);
sound/soc/codecs/peb2466.c
718
chan, ret);
sound/soc/codecs/peb2466.c
721
chan++;
sound/soc/codecs/peb2466.c
731
peb2466->max_chan_capture = chan;
sound/soc/codecs/tas5805m.c
360
unsigned int chan, global1, global2;
sound/soc/codecs/tas5805m.c
372
regmap_read(rm, REG_CHAN_FAULT, &chan);
sound/soc/codecs/tas5805m.c
378
chan, global1, global2);
sound/soc/fsl/fsl_asrc_dma.c
222
be_chan = soc_component_to_pcm(component_be)->chan[substream->stream];
sound/soc/fsl/fsl_asrc_dma.c
32
static bool filter(struct dma_chan *chan, void *param)
sound/soc/fsl/fsl_asrc_dma.c
34
if (!imx_dma_is_general_purpose(chan))
sound/soc/fsl/fsl_asrc_dma.c
37
chan->private = param;
sound/soc/fsl/fsl_asrc_dma.c
476
struct dma_chan *chan;
sound/soc/fsl/fsl_asrc_dma.c
497
chan = asrc->get_dma_channel(pair, IN);
sound/soc/fsl/fsl_asrc_dma.c
498
if (!chan) {
sound/soc/fsl/fsl_asrc_dma.c
506
chan->device->dev,
sound/soc/fsl/fsl_asrc_dma.c
509
dma_release_channel(chan);
sound/soc/fsl/fsl_asrc_m2m.c
102
struct dma_chan *chan,
sound/soc/fsl/fsl_asrc_m2m.c
145
ret = dmaengine_slave_config(chan, &slave_config);
sound/soc/fsl/fsl_asrc_m2m.c
170
pair->desc[dir] = dmaengine_prep_slave_sg(chan, sg, sg_len,
sound/soc/fsl/fsl_asrc_m2m.c
261
dma_async_issue_pending(pair->desc[IN]->chan);
sound/soc/fsl/fsl_asrc_m2m.c
266
dma_async_issue_pending(pair->desc[OUT]->chan);
sound/soc/fsl/imx-pcm-dma.c
22
static bool filter(struct dma_chan *chan, void *param)
sound/soc/fsl/imx-pcm-dma.c
24
if (!imx_dma_is_general_purpose(chan))
sound/soc/fsl/imx-pcm-dma.c
27
chan->private = param;
sound/soc/img/img-i2s-in.c
101
writel(val, i2s->channel_base + (chan * IMG_I2S_IN_CH_STRIDE) + reg);
sound/soc/img/img-i2s-in.c
104
static inline u32 img_i2s_in_ch_readl(struct img_i2s_in *i2s, u32 chan,
sound/soc/img/img-i2s-in.c
107
return readl(i2s->channel_base + (chan * IMG_I2S_IN_CH_STRIDE) + reg);
sound/soc/img/img-i2s-in.c
110
static inline void img_i2s_in_ch_disable(struct img_i2s_in *i2s, u32 chan)
sound/soc/img/img-i2s-in.c
114
reg = img_i2s_in_ch_readl(i2s, chan, IMG_I2S_IN_CH_CTL);
sound/soc/img/img-i2s-in.c
116
img_i2s_in_ch_writel(i2s, chan, reg, IMG_I2S_IN_CH_CTL);
sound/soc/img/img-i2s-in.c
119
static inline void img_i2s_in_ch_enable(struct img_i2s_in *i2s, u32 chan)
sound/soc/img/img-i2s-in.c
123
reg = img_i2s_in_ch_readl(i2s, chan, IMG_I2S_IN_CH_CTL);
sound/soc/img/img-i2s-in.c
125
img_i2s_in_ch_writel(i2s, chan, reg, IMG_I2S_IN_CH_CTL);
sound/soc/img/img-i2s-in.c
98
static inline void img_i2s_in_ch_writel(struct img_i2s_in *i2s, u32 chan,
sound/soc/img/img-i2s-out.c
110
u32 chan, u32 val, u32 reg)
sound/soc/img/img-i2s-out.c
112
writel(val, i2s->channel_base + (chan * IMG_I2S_OUT_CH_STRIDE) + reg);
sound/soc/img/img-i2s-out.c
115
static inline u32 img_i2s_out_ch_readl(struct img_i2s_out *i2s, u32 chan,
sound/soc/img/img-i2s-out.c
118
return readl(i2s->channel_base + (chan * IMG_I2S_OUT_CH_STRIDE) + reg);
sound/soc/img/img-i2s-out.c
121
static inline void img_i2s_out_ch_disable(struct img_i2s_out *i2s, u32 chan)
sound/soc/img/img-i2s-out.c
125
reg = img_i2s_out_ch_readl(i2s, chan, IMG_I2S_OUT_CH_CTL);
sound/soc/img/img-i2s-out.c
127
img_i2s_out_ch_writel(i2s, chan, reg, IMG_I2S_OUT_CH_CTL);
sound/soc/img/img-i2s-out.c
130
static inline void img_i2s_out_ch_enable(struct img_i2s_out *i2s, u32 chan)
sound/soc/img/img-i2s-out.c
134
reg = img_i2s_out_ch_readl(i2s, chan, IMG_I2S_OUT_CH_CTL);
sound/soc/img/img-i2s-out.c
136
img_i2s_out_ch_writel(i2s, chan, reg, IMG_I2S_OUT_CH_CTL);
sound/soc/intel/boards/bdw-rt5650.c
88
struct snd_interval *chan = hw_param_interval(params,
sound/soc/intel/boards/bdw-rt5650.c
93
chan->min = 2;
sound/soc/intel/boards/bdw-rt5650.c
94
chan->max = 4;
sound/soc/intel/boards/bdw-rt5677.c
140
struct snd_interval *chan = hw_param_interval(params,
sound/soc/intel/boards/bdw-rt5677.c
145
chan->min = chan->max = 2;
sound/soc/intel/catpt/core.h
109
int catpt_dma_memcpy_todsp(struct catpt_dev *cdev, struct dma_chan *chan,
sound/soc/intel/catpt/core.h
112
int catpt_dma_memcpy_fromdsp(struct catpt_dev *cdev, struct dma_chan *chan,
sound/soc/intel/catpt/core.h
142
int catpt_store_streams_context(struct catpt_dev *cdev, struct dma_chan *chan);
sound/soc/intel/catpt/core.h
143
int catpt_store_module_states(struct catpt_dev *cdev, struct dma_chan *chan);
sound/soc/intel/catpt/core.h
144
int catpt_store_memdumps(struct catpt_dev *cdev, struct dma_chan *chan);
sound/soc/intel/catpt/device.c
31
struct dma_chan *chan;
sound/soc/intel/catpt/device.c
34
chan = catpt_dma_request_config_chan(cdev);
sound/soc/intel/catpt/device.c
35
if (IS_ERR(chan))
sound/soc/intel/catpt/device.c
36
return PTR_ERR(chan);
sound/soc/intel/catpt/device.c
49
ret = catpt_store_memdumps(cdev, chan);
sound/soc/intel/catpt/device.c
55
ret = catpt_store_module_states(cdev, chan);
sound/soc/intel/catpt/device.c
61
ret = catpt_store_streams_context(cdev, chan);
sound/soc/intel/catpt/device.c
66
dma_release_channel(chan);
sound/soc/intel/catpt/dsp.c
103
return catpt_dma_memcpy(cdev, chan, dst_addr | CATPT_DMA_DSP_ADDR_MASK,
sound/soc/intel/catpt/dsp.c
107
int catpt_dma_memcpy_fromdsp(struct catpt_dev *cdev, struct dma_chan *chan,
sound/soc/intel/catpt/dsp.c
111
return catpt_dma_memcpy(cdev, chan, dst_addr,
sound/soc/intel/catpt/dsp.c
18
static bool catpt_dma_filter(struct dma_chan *chan, void *param)
sound/soc/intel/catpt/dsp.c
20
return param == chan->device->dev;
sound/soc/intel/catpt/dsp.c
33
struct dma_chan *chan;
sound/soc/intel/catpt/dsp.c
40
chan = dma_request_channel(mask, catpt_dma_filter, cdev->dev);
sound/soc/intel/catpt/dsp.c
41
if (!chan) {
sound/soc/intel/catpt/dsp.c
52
ret = dmaengine_slave_config(chan, &config);
sound/soc/intel/catpt/dsp.c
55
dma_release_channel(chan);
sound/soc/intel/catpt/dsp.c
59
return chan;
sound/soc/intel/catpt/dsp.c
62
static int catpt_dma_memcpy(struct catpt_dev *cdev, struct dma_chan *chan,
sound/soc/intel/catpt/dsp.c
70
desc = dmaengine_prep_dma_memcpy(chan, dst_addr, src_addr, size,
sound/soc/intel/catpt/dsp.c
79
CATPT_HMDC_HDDA(CATPT_DMA_DEVID, chan->chan_id),
sound/soc/intel/catpt/dsp.c
80
CATPT_HMDC_HDDA(CATPT_DMA_DEVID, chan->chan_id));
sound/soc/intel/catpt/dsp.c
94
CATPT_HMDC_HDDA(CATPT_DMA_DEVID, chan->chan_id), 0);
sound/soc/intel/catpt/dsp.c
99
int catpt_dma_memcpy_todsp(struct catpt_dev *cdev, struct dma_chan *chan,
sound/soc/intel/catpt/loader.c
111
int catpt_store_module_states(struct catpt_dev *cdev, struct dma_chan *chan)
sound/soc/intel/catpt/loader.c
128
ret = catpt_dma_memcpy_fromdsp(cdev, chan,
sound/soc/intel/catpt/loader.c
141
int catpt_store_memdumps(struct catpt_dev *cdev, struct dma_chan *chan)
sound/soc/intel/catpt/loader.c
161
ret = catpt_dma_memcpy_fromdsp(cdev, chan,
sound/soc/intel/catpt/loader.c
175
catpt_restore_streams_context(struct catpt_dev *cdev, struct dma_chan *chan)
sound/soc/intel/catpt/loader.c
189
ret = catpt_dma_memcpy_todsp(cdev, chan,
sound/soc/intel/catpt/loader.c
202
static int catpt_restore_memdumps(struct catpt_dev *cdev, struct dma_chan *chan)
sound/soc/intel/catpt/loader.c
224
ret = catpt_dma_memcpy_todsp(cdev, chan,
sound/soc/intel/catpt/loader.c
238
struct dma_chan *chan, dma_addr_t paddr,
sound/soc/intel/catpt/loader.c
274
ret = catpt_dma_memcpy_todsp(cdev, chan, common.start,
sound/soc/intel/catpt/loader.c
287
struct dma_chan *chan, dma_addr_t paddr,
sound/soc/intel/catpt/loader.c
316
ret = catpt_dma_memcpy_todsp(cdev, chan, dst_addr, paddr, blk->size);
sound/soc/intel/catpt/loader.c
326
struct dma_chan *chan, dma_addr_t paddr,
sound/soc/intel/catpt/loader.c
343
ret = catpt_load_block(cdev, chan, paddr + offset,
sound/soc/intel/catpt/loader.c
347
ret = catpt_restore_fwimage(cdev, chan, paddr + offset,
sound/soc/intel/catpt/loader.c
361
ret = catpt_restore_memdumps(cdev, chan);
sound/soc/intel/catpt/loader.c
369
struct dma_chan *chan, dma_addr_t paddr,
sound/soc/intel/catpt/loader.c
387
ret = catpt_dma_memcpy_todsp(cdev, chan,
sound/soc/intel/catpt/loader.c
393
ret = catpt_load_block(cdev, chan, paddr + offset,
sound/soc/intel/catpt/loader.c
410
struct dma_chan *chan, dma_addr_t paddr,
sound/soc/intel/catpt/loader.c
428
ret = catpt_load_block(cdev, chan, paddr + offset, blk, true);
sound/soc/intel/catpt/loader.c
457
struct dma_chan *chan, dma_addr_t paddr,
sound/soc/intel/catpt/loader.c
482
ret = catpt_restore_basefw(cdev, chan, paddr + offset,
sound/soc/intel/catpt/loader.c
486
ret = catpt_restore_module(cdev, chan, paddr + offset,
sound/soc/intel/catpt/loader.c
503
struct dma_chan *chan, dma_addr_t paddr,
sound/soc/intel/catpt/loader.c
526
ret = catpt_load_module(cdev, chan, paddr + offset, mod);
sound/soc/intel/catpt/loader.c
538
static int catpt_load_image(struct catpt_dev *cdev, struct dma_chan *chan,
sound/soc/intel/catpt/loader.c
568
ret = catpt_restore_firmware(cdev, chan, paddr, fw);
sound/soc/intel/catpt/loader.c
570
ret = catpt_load_firmware(cdev, chan, paddr, fw);
sound/soc/intel/catpt/loader.c
580
struct dma_chan *chan;
sound/soc/intel/catpt/loader.c
583
chan = catpt_dma_request_config_chan(cdev);
sound/soc/intel/catpt/loader.c
584
if (IS_ERR(chan))
sound/soc/intel/catpt/loader.c
585
return PTR_ERR(chan);
sound/soc/intel/catpt/loader.c
587
ret = catpt_load_image(cdev, chan, cdev->spec->fw_name,
sound/soc/intel/catpt/loader.c
594
ret = catpt_restore_streams_context(cdev, chan);
sound/soc/intel/catpt/loader.c
598
dma_release_channel(chan);
sound/soc/intel/catpt/loader.c
84
int catpt_store_streams_context(struct catpt_dev *cdev, struct dma_chan *chan)
sound/soc/intel/catpt/loader.c
98
ret = catpt_dma_memcpy_fromdsp(cdev, chan,
sound/soc/intel/keembay/kmb_platform.c
137
int chan = kmb_i2s->config.chan_nr;
sound/soc/intel/keembay/kmb_platform.c
143
for (j = 0; j < chan / 2; j++) {
sound/soc/intel/keembay/kmb_platform.c
145
((u16 *)buf)[rx_ptr * chan + (j * 2)] =
sound/soc/intel/keembay/kmb_platform.c
147
((u16 *)buf)[rx_ptr * chan + ((j * 2) + 1)] =
sound/soc/intel/keembay/kmb_platform.c
150
((u32 *)buf)[rx_ptr * chan + (j * 2)] =
sound/soc/intel/keembay/kmb_platform.c
152
((u32 *)buf)[rx_ptr * chan + ((j * 2) + 1)] =
sound/soc/pxa/pxa2xx-pcm-lib.c
36
struct dma_chan *chan = snd_dmaengine_pcm_get_chan(substream);
sound/soc/pxa/pxa2xx-pcm-lib.c
54
ret = dmaengine_slave_config(chan, &config);
sound/soc/qcom/lpass-apq8016.c
127
int chan = 0;
sound/soc/qcom/lpass-apq8016.c
130
chan = find_first_zero_bit(&drvdata->dma_ch_bit_map,
sound/soc/qcom/lpass-apq8016.c
133
if (chan >= v->rdma_channels)
sound/soc/qcom/lpass-apq8016.c
136
chan = find_next_zero_bit(&drvdata->dma_ch_bit_map,
sound/soc/qcom/lpass-apq8016.c
141
if (chan >= v->wrdma_channel_start + v->wrdma_channels)
sound/soc/qcom/lpass-apq8016.c
145
set_bit(chan, &drvdata->dma_ch_bit_map);
sound/soc/qcom/lpass-apq8016.c
147
return chan;
sound/soc/qcom/lpass-apq8016.c
150
static int apq8016_lpass_free_dma_channel(struct lpass_data *drvdata, int chan, unsigned int dai_id)
sound/soc/qcom/lpass-apq8016.c
152
clear_bit(chan, &drvdata->dma_ch_bit_map);
sound/soc/qcom/lpass-ipq806x.c
106
static int ipq806x_lpass_free_dma_channel(struct lpass_data *drvdata, int chan, unsigned int dai_id)
sound/soc/qcom/lpass-lpaif-reg.h
102
#define LPAIF_IRQ_PER(chan) (1 << (LPAIF_IRQ_BITSTRIDE * (chan)))
sound/soc/qcom/lpass-lpaif-reg.h
103
#define LPAIF_IRQ_XRUN(chan) (2 << (LPAIF_IRQ_BITSTRIDE * (chan)))
sound/soc/qcom/lpass-lpaif-reg.h
104
#define LPAIF_IRQ_ERR(chan) (4 << (LPAIF_IRQ_BITSTRIDE * (chan)))
sound/soc/qcom/lpass-lpaif-reg.h
106
#define LPAIF_IRQ_ALL(chan) (7 << (LPAIF_IRQ_BITSTRIDE * (chan)))
sound/soc/qcom/lpass-lpaif-reg.h
107
#define LPAIF_IRQ_HDMI_REQ_ON_PRELOAD(chan) (1 << (14 + chan))
sound/soc/qcom/lpass-lpaif-reg.h
108
#define LPAIF_IRQ_HDMI_SDEEP_AUD_DIS(chan) (1 << (24 + chan))
sound/soc/qcom/lpass-lpaif-reg.h
112
#define LPAIF_HDMI_RDMA_REG_ADDR(v, addr, chan) \
sound/soc/qcom/lpass-lpaif-reg.h
113
(v->hdmi_rdma_reg_base + (addr) + v->hdmi_rdma_reg_stride * (chan))
sound/soc/qcom/lpass-lpaif-reg.h
117
#define LPAIF_HDMI_RDMACTL_REG(v, chan) LPAIF_HDMI_RDMA_REG_ADDR(v, 0x00, (chan))
sound/soc/qcom/lpass-lpaif-reg.h
118
#define LPAIF_HDMI_RDMABASE_REG(v, chan) LPAIF_HDMI_RDMA_REG_ADDR(v, 0x04, (chan))
sound/soc/qcom/lpass-lpaif-reg.h
119
#define LPAIF_HDMI_RDMABUFF_REG(v, chan) LPAIF_HDMI_RDMA_REG_ADDR(v, 0x08, (chan))
sound/soc/qcom/lpass-lpaif-reg.h
120
#define LPAIF_HDMI_RDMACURR_REG(v, chan) LPAIF_HDMI_RDMA_REG_ADDR(v, 0x0C, (chan))
sound/soc/qcom/lpass-lpaif-reg.h
121
#define LPAIF_HDMI_RDMAPER_REG(v, chan) LPAIF_HDMI_RDMA_REG_ADDR(v, 0x10, (chan))
sound/soc/qcom/lpass-lpaif-reg.h
122
#define LPAIF_HDMI_RDMAPERCNT_REG(v, chan) LPAIF_HDMI_RDMA_REG_ADDR(v, 0x14, (chan))
sound/soc/qcom/lpass-lpaif-reg.h
124
#define LPAIF_RDMA_REG_ADDR(v, addr, chan) \
sound/soc/qcom/lpass-lpaif-reg.h
125
(v->rdma_reg_base + (addr) + v->rdma_reg_stride * (chan))
sound/soc/qcom/lpass-lpaif-reg.h
129
#define LPAIF_RDMACTL_REG(v, chan) LPAIF_RDMA_REG_ADDR(v, 0x00, (chan))
sound/soc/qcom/lpass-lpaif-reg.h
130
#define LPAIF_RDMABASE_REG(v, chan) LPAIF_RDMA_REG_ADDR(v, 0x04, (chan))
sound/soc/qcom/lpass-lpaif-reg.h
131
#define LPAIF_RDMABUFF_REG(v, chan) LPAIF_RDMA_REG_ADDR(v, 0x08, (chan))
sound/soc/qcom/lpass-lpaif-reg.h
132
#define LPAIF_RDMACURR_REG(v, chan) LPAIF_RDMA_REG_ADDR(v, 0x0C, (chan))
sound/soc/qcom/lpass-lpaif-reg.h
133
#define LPAIF_RDMAPER_REG(v, chan) LPAIF_RDMA_REG_ADDR(v, 0x10, (chan))
sound/soc/qcom/lpass-lpaif-reg.h
134
#define LPAIF_RDMAPERCNT_REG(v, chan) LPAIF_RDMA_REG_ADDR(v, 0x14, (chan))
sound/soc/qcom/lpass-lpaif-reg.h
136
#define LPAIF_WRDMA_REG_ADDR(v, addr, chan) \
sound/soc/qcom/lpass-lpaif-reg.h
138
v->wrdma_reg_stride * (chan - v->wrdma_channel_start))
sound/soc/qcom/lpass-lpaif-reg.h
140
#define LPAIF_WRDMACTL_REG(v, chan) LPAIF_WRDMA_REG_ADDR(v, 0x00, (chan))
sound/soc/qcom/lpass-lpaif-reg.h
141
#define LPAIF_WRDMABASE_REG(v, chan) LPAIF_WRDMA_REG_ADDR(v, 0x04, (chan))
sound/soc/qcom/lpass-lpaif-reg.h
142
#define LPAIF_WRDMABUFF_REG(v, chan) LPAIF_WRDMA_REG_ADDR(v, 0x08, (chan))
sound/soc/qcom/lpass-lpaif-reg.h
143
#define LPAIF_WRDMACURR_REG(v, chan) LPAIF_WRDMA_REG_ADDR(v, 0x0C, (chan))
sound/soc/qcom/lpass-lpaif-reg.h
144
#define LPAIF_WRDMAPER_REG(v, chan) LPAIF_WRDMA_REG_ADDR(v, 0x10, (chan))
sound/soc/qcom/lpass-lpaif-reg.h
145
#define LPAIF_WRDMAPERCNT_REG(v, chan) LPAIF_WRDMA_REG_ADDR(v, 0x14, (chan))
sound/soc/qcom/lpass-lpaif-reg.h
147
#define LPAIF_INTFDMA_REG(v, chan, reg, dai_id) \
sound/soc/qcom/lpass-lpaif-reg.h
149
LPAIF_HDMI_RDMA##reg##_REG(v, chan) : \
sound/soc/qcom/lpass-lpaif-reg.h
150
LPAIF_RDMA##reg##_REG(v, chan))
sound/soc/qcom/lpass-lpaif-reg.h
152
#define __LPAIF_DMA_REG(v, chan, dir, reg, dai_id) \
sound/soc/qcom/lpass-lpaif-reg.h
154
(LPAIF_INTFDMA_REG(v, chan, reg, dai_id)) : \
sound/soc/qcom/lpass-lpaif-reg.h
155
LPAIF_WRDMA##reg##_REG(v, chan))
sound/soc/qcom/lpass-lpaif-reg.h
157
#define LPAIF_DMACTL_REG(v, chan, dir, dai_id) \
sound/soc/qcom/lpass-lpaif-reg.h
159
__LPAIF_CDC_DMA_REG(v, chan, dir, CTL, dai_id) : \
sound/soc/qcom/lpass-lpaif-reg.h
160
__LPAIF_DMA_REG(v, chan, dir, CTL, dai_id))
sound/soc/qcom/lpass-lpaif-reg.h
161
#define LPAIF_DMABASE_REG(v, chan, dir, dai_id) \
sound/soc/qcom/lpass-lpaif-reg.h
163
__LPAIF_CDC_DMA_REG(v, chan, dir, BASE, dai_id) : \
sound/soc/qcom/lpass-lpaif-reg.h
164
__LPAIF_DMA_REG(v, chan, dir, BASE, dai_id))
sound/soc/qcom/lpass-lpaif-reg.h
165
#define LPAIF_DMABUFF_REG(v, chan, dir, dai_id) \
sound/soc/qcom/lpass-lpaif-reg.h
167
__LPAIF_CDC_DMA_REG(v, chan, dir, BUFF, dai_id) : \
sound/soc/qcom/lpass-lpaif-reg.h
168
__LPAIF_DMA_REG(v, chan, dir, BUFF, dai_id))
sound/soc/qcom/lpass-lpaif-reg.h
169
#define LPAIF_DMACURR_REG(v, chan, dir, dai_id) \
sound/soc/qcom/lpass-lpaif-reg.h
171
__LPAIF_CDC_DMA_REG(v, chan, dir, CURR, dai_id) : \
sound/soc/qcom/lpass-lpaif-reg.h
172
__LPAIF_DMA_REG(v, chan, dir, CURR, dai_id))
sound/soc/qcom/lpass-lpaif-reg.h
173
#define LPAIF_DMAPER_REG(v, chan, dir, dai_id) \
sound/soc/qcom/lpass-lpaif-reg.h
175
__LPAIF_CDC_DMA_REG(v, chan, dir, PER, dai_id) : \
sound/soc/qcom/lpass-lpaif-reg.h
176
__LPAIF_DMA_REG(v, chan, dir, PER, dai_id))
sound/soc/qcom/lpass-lpaif-reg.h
177
#define LPAIF_DMAPERCNT_REG(v, chan, dir, dai_id) \
sound/soc/qcom/lpass-lpaif-reg.h
179
__LPAIF_CDC_DMA_REG(v, chan, dir, PERCNT, dai_id) : \
sound/soc/qcom/lpass-lpaif-reg.h
180
__LPAIF_DMA_REG(v, chan, dir, PERCNT, dai_id))
sound/soc/qcom/lpass-lpaif-reg.h
182
#define LPAIF_CDC_RDMA_REG_ADDR(v, addr, chan, dai_id) \
sound/soc/qcom/lpass-lpaif-reg.h
184
(v->rxtx_rdma_reg_base + (addr) + v->rxtx_rdma_reg_stride * (chan)) : \
sound/soc/qcom/lpass-lpaif-reg.h
185
(v->va_rdma_reg_base + (addr) + v->va_rdma_reg_stride * (chan)))
sound/soc/qcom/lpass-lpaif-reg.h
187
#define LPAIF_CDC_RXTX_RDMACTL_REG(v, chan, dai_id) \
sound/soc/qcom/lpass-lpaif-reg.h
188
LPAIF_CDC_RDMA_REG_ADDR(v, 0x00, (chan), dai_id)
sound/soc/qcom/lpass-lpaif-reg.h
189
#define LPAIF_CDC_RXTX_RDMABASE_REG(v, chan, dai_id) \
sound/soc/qcom/lpass-lpaif-reg.h
190
LPAIF_CDC_RDMA_REG_ADDR(v, 0x04, (chan), dai_id)
sound/soc/qcom/lpass-lpaif-reg.h
191
#define LPAIF_CDC_RXTX_RDMABUFF_REG(v, chan, dai_id) \
sound/soc/qcom/lpass-lpaif-reg.h
192
LPAIF_CDC_RDMA_REG_ADDR(v, 0x08, (chan), dai_id)
sound/soc/qcom/lpass-lpaif-reg.h
193
#define LPAIF_CDC_RXTX_RDMACURR_REG(v, chan, dai_id) \
sound/soc/qcom/lpass-lpaif-reg.h
194
LPAIF_CDC_RDMA_REG_ADDR(v, 0x0C, (chan), dai_id)
sound/soc/qcom/lpass-lpaif-reg.h
195
#define LPAIF_CDC_RXTX_RDMAPER_REG(v, chan, dai_id) \
sound/soc/qcom/lpass-lpaif-reg.h
196
LPAIF_CDC_RDMA_REG_ADDR(v, 0x10, (chan), dai_id)
sound/soc/qcom/lpass-lpaif-reg.h
197
#define LPAIF_CDC_RXTX_RDMA_INTF_REG(v, chan, dai_id) \
sound/soc/qcom/lpass-lpaif-reg.h
198
LPAIF_CDC_RDMA_REG_ADDR(v, 0x50, (chan), dai_id)
sound/soc/qcom/lpass-lpaif-reg.h
200
#define LPAIF_CDC_VA_RDMACTL_REG(v, chan, dai_id) LPAIF_CDC_RDMA_REG_ADDR(v, 0x00, (chan), dai_id)
sound/soc/qcom/lpass-lpaif-reg.h
201
#define LPAIF_CDC_VA_RDMABASE_REG(v, chan, dai_id) LPAIF_CDC_RDMA_REG_ADDR(v, 0x04, (chan), dai_id)
sound/soc/qcom/lpass-lpaif-reg.h
202
#define LPAIF_CDC_VA_RDMABUFF_REG(v, chan, dai_id) LPAIF_CDC_RDMA_REG_ADDR(v, 0x08, (chan), dai_id)
sound/soc/qcom/lpass-lpaif-reg.h
203
#define LPAIF_CDC_VA_RDMACURR_REG(v, chan, dai_id) LPAIF_CDC_RDMA_REG_ADDR(v, 0x0C, (chan), dai_id)
sound/soc/qcom/lpass-lpaif-reg.h
204
#define LPAIF_CDC_VA_RDMAPER_REG(v, chan, dai_id) LPAIF_CDC_RDMA_REG_ADDR(v, 0x10, (chan), dai_id)
sound/soc/qcom/lpass-lpaif-reg.h
205
#define LPAIF_CDC_VA_RDMA_INTF_REG(v, chan, dai_id) \
sound/soc/qcom/lpass-lpaif-reg.h
206
LPAIF_CDC_RDMA_REG_ADDR(v, 0x50, (chan), dai_id)
sound/soc/qcom/lpass-lpaif-reg.h
208
#define LPAIF_CDC_WRDMA_REG_ADDR(v, addr, chan, dai_id) \
sound/soc/qcom/lpass-lpaif-reg.h
211
v->rxtx_wrdma_reg_stride * (chan - v->rxtx_wrdma_channel_start)) : \
sound/soc/qcom/lpass-lpaif-reg.h
213
v->va_wrdma_reg_stride * (chan - v->va_wrdma_channel_start)))
sound/soc/qcom/lpass-lpaif-reg.h
215
#define LPAIF_CDC_RXTX_WRDMACTL_REG(v, chan, dai_id) \
sound/soc/qcom/lpass-lpaif-reg.h
216
LPAIF_CDC_WRDMA_REG_ADDR(v, 0x00, (chan), dai_id)
sound/soc/qcom/lpass-lpaif-reg.h
217
#define LPAIF_CDC_RXTX_WRDMABASE_REG(v, chan, dai_id) \
sound/soc/qcom/lpass-lpaif-reg.h
218
LPAIF_CDC_WRDMA_REG_ADDR(v, 0x04, (chan), dai_id)
sound/soc/qcom/lpass-lpaif-reg.h
219
#define LPAIF_CDC_RXTX_WRDMABUFF_REG(v, chan, dai_id) \
sound/soc/qcom/lpass-lpaif-reg.h
220
LPAIF_CDC_WRDMA_REG_ADDR(v, 0x08, (chan), dai_id)
sound/soc/qcom/lpass-lpaif-reg.h
221
#define LPAIF_CDC_RXTX_WRDMACURR_REG(v, chan, dai_id) \
sound/soc/qcom/lpass-lpaif-reg.h
222
LPAIF_CDC_WRDMA_REG_ADDR(v, 0x0C, (chan), dai_id)
sound/soc/qcom/lpass-lpaif-reg.h
223
#define LPAIF_CDC_RXTX_WRDMAPER_REG(v, chan, dai_id) \
sound/soc/qcom/lpass-lpaif-reg.h
224
LPAIF_CDC_WRDMA_REG_ADDR(v, 0x10, (chan), dai_id)
sound/soc/qcom/lpass-lpaif-reg.h
225
#define LPAIF_CDC_RXTX_WRDMA_INTF_REG(v, chan, dai_id) \
sound/soc/qcom/lpass-lpaif-reg.h
226
LPAIF_CDC_WRDMA_REG_ADDR(v, 0x50, (chan), dai_id)
sound/soc/qcom/lpass-lpaif-reg.h
228
#define LPAIF_CDC_VA_WRDMACTL_REG(v, chan, dai_id) \
sound/soc/qcom/lpass-lpaif-reg.h
229
LPAIF_CDC_WRDMA_REG_ADDR(v, 0x00, (chan), dai_id)
sound/soc/qcom/lpass-lpaif-reg.h
230
#define LPAIF_CDC_VA_WRDMABASE_REG(v, chan, dai_id) \
sound/soc/qcom/lpass-lpaif-reg.h
231
LPAIF_CDC_WRDMA_REG_ADDR(v, 0x04, (chan), dai_id)
sound/soc/qcom/lpass-lpaif-reg.h
232
#define LPAIF_CDC_VA_WRDMABUFF_REG(v, chan, dai_id) \
sound/soc/qcom/lpass-lpaif-reg.h
233
LPAIF_CDC_WRDMA_REG_ADDR(v, 0x08, (chan), dai_id)
sound/soc/qcom/lpass-lpaif-reg.h
234
#define LPAIF_CDC_VA_WRDMACURR_REG(v, chan, dai_id) \
sound/soc/qcom/lpass-lpaif-reg.h
235
LPAIF_CDC_WRDMA_REG_ADDR(v, 0x0C, (chan), dai_id)
sound/soc/qcom/lpass-lpaif-reg.h
236
#define LPAIF_CDC_VA_WRDMAPER_REG(v, chan, dai_id) \
sound/soc/qcom/lpass-lpaif-reg.h
237
LPAIF_CDC_WRDMA_REG_ADDR(v, 0x10, (chan), dai_id)
sound/soc/qcom/lpass-lpaif-reg.h
238
#define LPAIF_CDC_VA_WRDMA_INTF_REG(v, chan, dai_id) \
sound/soc/qcom/lpass-lpaif-reg.h
239
LPAIF_CDC_WRDMA_REG_ADDR(v, 0x50, (chan), dai_id)
sound/soc/qcom/lpass-lpaif-reg.h
241
#define __LPAIF_CDC_RDDMA_REG(v, chan, dir, reg, dai_id) \
sound/soc/qcom/lpass-lpaif-reg.h
242
(is_rxtx_cdc_dma_port(dai_id) ? LPAIF_CDC_RXTX_RDMA##reg##_REG(v, chan, dai_id) : \
sound/soc/qcom/lpass-lpaif-reg.h
243
LPAIF_CDC_VA_RDMA##reg##_REG(v, chan, dai_id))
sound/soc/qcom/lpass-lpaif-reg.h
245
#define __LPAIF_CDC_WRDMA_REG(v, chan, dir, reg, dai_id) \
sound/soc/qcom/lpass-lpaif-reg.h
246
(is_rxtx_cdc_dma_port(dai_id) ? LPAIF_CDC_RXTX_WRDMA##reg##_REG(v, chan, dai_id) : \
sound/soc/qcom/lpass-lpaif-reg.h
247
LPAIF_CDC_VA_WRDMA##reg##_REG(v, chan, dai_id))
sound/soc/qcom/lpass-lpaif-reg.h
249
#define __LPAIF_CDC_DMA_REG(v, chan, dir, reg, dai_id) \
sound/soc/qcom/lpass-lpaif-reg.h
251
__LPAIF_CDC_RDDMA_REG(v, chan, dir, reg, dai_id) : \
sound/soc/qcom/lpass-lpaif-reg.h
252
__LPAIF_CDC_WRDMA_REG(v, chan, dir, reg, dai_id))
sound/soc/qcom/lpass-lpaif-reg.h
254
#define LPAIF_CDC_INTF_REG(v, chan, dir, dai_id) \
sound/soc/qcom/lpass-lpaif-reg.h
256
LPAIF_CDC_RDMA_INTF_REG(v, chan, dai_id) : \
sound/soc/qcom/lpass-lpaif-reg.h
257
LPAIF_CDC_WRDMA_INTF_REG(v, chan, dai_id))
sound/soc/qcom/lpass-lpaif-reg.h
259
#define LPAIF_INTF_REG(v, chan, dir, dai_id) \
sound/soc/qcom/lpass-lpaif-reg.h
261
LPAIF_CDC_INTF_REG(v, chan, dir, dai_id) : \
sound/soc/qcom/lpass-lpaif-reg.h
262
LPAIF_DMACTL_REG(v, chan, dir, dai_id))
sound/soc/qcom/lpass-platform.c
1025
int rv, chan;
sound/soc/qcom/lpass-platform.c
1035
for (chan = 0; chan < LPASS_MAX_DMA_CHANNELS; chan++) {
sound/soc/qcom/lpass-platform.c
1036
if (irqs & LPAIF_IRQ_ALL(chan) && drvdata->substream[chan]) {
sound/soc/qcom/lpass-platform.c
1038
drvdata->substream[chan],
sound/soc/qcom/lpass-platform.c
1039
drvdata, chan, irqs);
sound/soc/qcom/lpass-platform.c
1053
int rv, chan;
sound/soc/qcom/lpass-platform.c
1063
for (chan = 0; chan < LPASS_MAX_HDMI_DMA_CHANNELS; chan++) {
sound/soc/qcom/lpass-platform.c
1064
if (irqs & (LPAIF_IRQ_ALL(chan) | LPAIF_IRQ_HDMI_REQ_ON_PRELOAD(chan) |
sound/soc/qcom/lpass-platform.c
1066
LPAIF_IRQ_HDMI_SDEEP_AUD_DIS(chan))
sound/soc/qcom/lpass-platform.c
1067
&& drvdata->hdmi_substream[chan]) {
sound/soc/qcom/lpass-platform.c
1069
drvdata->hdmi_substream[chan],
sound/soc/qcom/lpass-platform.c
1070
drvdata, chan, irqs);
sound/soc/qcom/lpass-platform.c
1084
int chan;
sound/soc/qcom/lpass-platform.c
1090
for (chan = 0; chan < LPASS_MAX_CDC_DMA_CHANNELS; chan++) {
sound/soc/qcom/lpass-platform.c
1091
if (irqs & LPAIF_IRQ_ALL(chan) && drvdata->rxtx_substream[chan]) {
sound/soc/qcom/lpass-platform.c
1093
drvdata->rxtx_substream[chan],
sound/soc/qcom/lpass-platform.c
1094
drvdata, chan, irqs);
sound/soc/qcom/lpass-platform.c
1109
int chan;
sound/soc/qcom/lpass-platform.c
1115
for (chan = 0; chan < LPASS_MAX_VA_CDC_DMA_CHANNELS; chan++) {
sound/soc/qcom/lpass-platform.c
1116
if (irqs & LPAIF_IRQ_ALL(chan) && drvdata->va_substream[chan]) {
sound/soc/qcom/lpass-platform.c
1118
drvdata->va_substream[chan],
sound/soc/qcom/lpass-platform.c
1119
drvdata, chan, irqs);
sound/soc/qcom/lpass-platform.c
927
int chan, u32 interrupts)
sound/soc/qcom/lpass-platform.c
938
mask = LPAIF_IRQ_ALL(chan);
sound/soc/qcom/lpass-platform.c
943
val = (LPAIF_IRQ_HDMI_REQ_ON_PRELOAD(chan) |
sound/soc/qcom/lpass-platform.c
945
LPAIF_IRQ_HDMI_SDEEP_AUD_DIS(chan));
sound/soc/qcom/lpass-platform.c
971
if (interrupts & LPAIF_IRQ_PER(chan)) {
sound/soc/qcom/lpass-platform.c
972
rv = regmap_write_bits(map, reg, mask, (LPAIF_IRQ_PER(chan) | val));
sound/soc/qcom/lpass-platform.c
982
if (interrupts & LPAIF_IRQ_XRUN(chan)) {
sound/soc/qcom/lpass-platform.c
983
rv = regmap_write_bits(map, reg, mask, (LPAIF_IRQ_XRUN(chan) | val));
sound/soc/qcom/lpass-platform.c
995
if (interrupts & LPAIF_IRQ_ERR(chan)) {
sound/soc/qcom/lpass-platform.c
996
rv = regmap_write_bits(map, reg, mask, (LPAIF_IRQ_ERR(chan) | val));
sound/soc/qcom/lpass-sc7180.c
104
if (chan >= v->wrdma_channel_start + v->wrdma_channels)
sound/soc/qcom/lpass-sc7180.c
108
set_bit(chan, &drvdata->dma_ch_bit_map);
sound/soc/qcom/lpass-sc7180.c
110
return chan;
sound/soc/qcom/lpass-sc7180.c
113
static int sc7180_lpass_free_dma_channel(struct lpass_data *drvdata, int chan, unsigned int dai_id)
sound/soc/qcom/lpass-sc7180.c
116
clear_bit(chan, &drvdata->hdmi_dma_ch_bit_map);
sound/soc/qcom/lpass-sc7180.c
118
clear_bit(chan, &drvdata->dma_ch_bit_map);
sound/soc/qcom/lpass-sc7180.c
80
int chan = 0;
sound/soc/qcom/lpass-sc7180.c
84
chan = find_first_zero_bit(&drvdata->hdmi_dma_ch_bit_map,
sound/soc/qcom/lpass-sc7180.c
87
if (chan >= v->hdmi_rdma_channels)
sound/soc/qcom/lpass-sc7180.c
90
set_bit(chan, &drvdata->hdmi_dma_ch_bit_map);
sound/soc/qcom/lpass-sc7180.c
93
chan = find_first_zero_bit(&drvdata->dma_ch_bit_map,
sound/soc/qcom/lpass-sc7180.c
96
if (chan >= v->rdma_channels)
sound/soc/qcom/lpass-sc7180.c
99
chan = find_next_zero_bit(&drvdata->dma_ch_bit_map,
sound/soc/qcom/lpass-sc7280.c
114
int chan = 0;
sound/soc/qcom/lpass-sc7280.c
119
chan = find_first_zero_bit(&drvdata->dma_ch_bit_map,
sound/soc/qcom/lpass-sc7280.c
122
if (chan >= v->rdma_channels)
sound/soc/qcom/lpass-sc7280.c
125
chan = find_next_zero_bit(&drvdata->dma_ch_bit_map,
sound/soc/qcom/lpass-sc7280.c
130
if (chan >= v->wrdma_channel_start + v->wrdma_channels)
sound/soc/qcom/lpass-sc7280.c
133
set_bit(chan, &drvdata->dma_ch_bit_map);
sound/soc/qcom/lpass-sc7280.c
136
chan = find_first_zero_bit(&drvdata->hdmi_dma_ch_bit_map,
sound/soc/qcom/lpass-sc7280.c
138
if (chan >= v->hdmi_rdma_channels)
sound/soc/qcom/lpass-sc7280.c
140
set_bit(chan, &drvdata->hdmi_dma_ch_bit_map);
sound/soc/qcom/lpass-sc7280.c
143
chan = find_first_zero_bit(&drvdata->rxtx_dma_ch_bit_map,
sound/soc/qcom/lpass-sc7280.c
145
if (chan >= v->rxtx_rdma_channels)
sound/soc/qcom/lpass-sc7280.c
149
chan = find_next_zero_bit(&drvdata->rxtx_dma_ch_bit_map,
sound/soc/qcom/lpass-sc7280.c
153
if (chan >= v->rxtx_wrdma_channel_start + v->rxtx_wrdma_channels)
sound/soc/qcom/lpass-sc7280.c
155
set_bit(chan, &drvdata->rxtx_dma_ch_bit_map);
sound/soc/qcom/lpass-sc7280.c
158
chan = find_next_zero_bit(&drvdata->va_dma_ch_bit_map,
sound/soc/qcom/lpass-sc7280.c
162
if (chan >= v->va_wrdma_channel_start + v->va_wrdma_channels)
sound/soc/qcom/lpass-sc7280.c
164
set_bit(chan, &drvdata->va_dma_ch_bit_map);
sound/soc/qcom/lpass-sc7280.c
170
return chan;
sound/soc/qcom/lpass-sc7280.c
173
static int sc7280_lpass_free_dma_channel(struct lpass_data *drvdata, int chan, unsigned int dai_id)
sound/soc/qcom/lpass-sc7280.c
177
clear_bit(chan, &drvdata->dma_ch_bit_map);
sound/soc/qcom/lpass-sc7280.c
180
clear_bit(chan, &drvdata->hdmi_dma_ch_bit_map);
sound/soc/qcom/lpass-sc7280.c
184
clear_bit(chan, &drvdata->rxtx_dma_ch_bit_map);
sound/soc/qcom/lpass-sc7280.c
187
clear_bit(chan, &drvdata->va_dma_ch_bit_map);
sound/soc/renesas/fsi.c
1367
desc = dmaengine_prep_dma_cyclic(io->chan,
sound/soc/renesas/fsi.c
1386
dma_async_issue_pending(io->chan);
sound/soc/renesas/fsi.c
1419
dmaengine_terminate_all(io->chan);
sound/soc/renesas/fsi.c
1436
io->chan = dma_request_channel(mask, shdma_chan_filter,
sound/soc/renesas/fsi.c
1439
io->chan = dma_request_chan(dev, is_play ? "tx" : "rx");
sound/soc/renesas/fsi.c
1440
if (IS_ERR(io->chan))
sound/soc/renesas/fsi.c
1441
io->chan = NULL;
sound/soc/renesas/fsi.c
1443
if (io->chan) {
sound/soc/renesas/fsi.c
1457
ret = dmaengine_slave_config(io->chan, &cfg);
sound/soc/renesas/fsi.c
1459
dma_release_channel(io->chan);
sound/soc/renesas/fsi.c
1460
io->chan = NULL;
sound/soc/renesas/fsi.c
1464
if (!io->chan) {
sound/soc/renesas/fsi.c
1485
if (io->chan)
sound/soc/renesas/fsi.c
1486
dma_release_channel(io->chan);
sound/soc/renesas/fsi.c
1488
io->chan = NULL;
sound/soc/renesas/fsi.c
229
struct dma_chan *chan;
sound/soc/renesas/rcar/core.c
287
int chan = rsnd_runtime_channel_original_with_params(io, params);
sound/soc/renesas/rcar/core.c
310
return chan;
sound/soc/renesas/rcar/core.c
313
int rsnd_channel_normalization(int chan)
sound/soc/renesas/rcar/core.c
315
if (WARN_ON((chan > 8) || (chan < 0)))
sound/soc/renesas/rcar/core.c
319
if (chan == 6)
sound/soc/renesas/rcar/core.c
320
chan = 8;
sound/soc/renesas/rcar/core.c
322
return chan;
sound/soc/renesas/rcar/core.c
329
int chan = rsnd_io_is_play(io) ?
sound/soc/renesas/rcar/core.c
335
chan /= rsnd_rdai_ssi_lane_get(rdai);
sound/soc/renesas/rcar/core.c
337
return rsnd_channel_normalization(chan);
sound/soc/renesas/rcar/core.c
344
int chan = rsnd_io_is_play(io) ?
sound/soc/renesas/rcar/core.c
348
return (chan > 2) && (lane > 1);
sound/soc/renesas/rcar/dma.c
104
if (dmaen->chan)
sound/soc/renesas/rcar/dma.c
107
dmaen->chan = NULL;
sound/soc/renesas/rcar/dma.c
121
if (dmaen->chan)
sound/soc/renesas/rcar/dma.c
129
dmaen->chan = rsnd_dmaen_request_channel(io,
sound/soc/renesas/rcar/dma.c
132
if (IS_ERR_OR_NULL(dmaen->chan)) {
sound/soc/renesas/rcar/dma.c
133
dmaen->chan = NULL;
sound/soc/renesas/rcar/dma.c
138
return snd_dmaengine_pcm_open(io->substream, dmaen->chan);
sound/soc/renesas/rcar/dma.c
187
ret = dmaengine_slave_config(dmaen->chan, &cfg);
sound/soc/renesas/rcar/dma.c
199
struct dma_chan *chan = NULL;
sound/soc/renesas/rcar/dma.c
205
chan = NULL;
sound/soc/renesas/rcar/dma.c
209
if (i == rsnd_mod_id_raw(mod) && (!chan))
sound/soc/renesas/rcar/dma.c
210
chan = of_dma_request_slave_channel(np, x);
sound/soc/renesas/rcar/dma.c
217
return chan;
sound/soc/renesas/rcar/dma.c
226
struct dma_chan *chan;
sound/soc/renesas/rcar/dma.c
229
chan = rsnd_dmaen_request_channel(io, mod_from, mod_to);
sound/soc/renesas/rcar/dma.c
230
if (IS_ERR_OR_NULL(chan)) {
sound/soc/renesas/rcar/dma.c
232
if (PTR_ERR(chan) == -EPROBE_DEFER)
sound/soc/renesas/rcar/dma.c
233
return PTR_ERR(chan);
sound/soc/renesas/rcar/dma.c
249
io->dmac_dev = chan->device->dev;
sound/soc/renesas/rcar/dma.c
25
struct dma_chan *chan;
sound/soc/renesas/rcar/dma.c
251
dma_release_channel(chan);
sound/soc/renesas/rcar/msiof.c
412
struct dma_chan *chan;
sound/soc/renesas/rcar/msiof.c
417
chan = of_dma_request_slave_channel(dev->of_node, dma_names[is_play]);
sound/soc/renesas/rcar/msiof.c
418
if (IS_ERR(chan))
sound/soc/renesas/rcar/msiof.c
419
return PTR_ERR(chan);
sound/soc/renesas/rcar/msiof.c
421
ret = snd_dmaengine_pcm_open(substream, chan);
sound/soc/renesas/rcar/msiof.c
431
dma_release_channel(chan);
sound/soc/renesas/rcar/msiof.c
491
struct dma_chan *chan = snd_dmaengine_pcm_get_chan(substream);
sound/soc/renesas/rcar/msiof.c
504
return dmaengine_slave_config(chan, &cfg);
sound/soc/renesas/rcar/rsnd.h
469
int rsnd_channel_normalization(int chan);
sound/soc/renesas/rcar/src.c
284
int chan;
sound/soc/renesas/rcar/src.c
293
chan = rsnd_runtime_channel_original(io);
sound/soc/renesas/rcar/src.c
313
adinr = rsnd_get_adinr_bit(mod, io) | chan;
sound/soc/renesas/rcar/src.c
378
if (chptn[idx] & (1 << chan))
sound/soc/renesas/rcar/src.c
381
if (chan > 8 ||
sound/soc/renesas/rcar/ssi.c
1048
seq_printf(m, "chan: %d\n", ssi->chan);
sound/soc/renesas/rcar/ssi.c
272
int chan = rsnd_runtime_channel_for_ssi(io);
sound/soc/renesas/rcar/ssi.c
289
chan = rsnd_io_converted_chan(io);
sound/soc/renesas/rcar/ssi.c
291
chan = rsnd_channel_normalization(chan);
sound/soc/renesas/rcar/ssi.c
299
if (ssi->chan != chan) {
sound/soc/renesas/rcar/ssi.c
308
main_rate = rsnd_ssi_clk_query(rdai, rate, chan, &idx);
sound/soc/renesas/rcar/ssi.c
330
ssi->chan = chan;
sound/soc/renesas/rcar/ssi.c
333
rsnd_mod_name(mod), chan, rate);
sound/soc/renesas/rcar/ssi.c
360
ssi->chan = 0;
sound/soc/renesas/rcar/ssi.c
89
int chan;
sound/soc/renesas/siu.h
109
struct dma_chan *chan; /* DMA channel */
sound/soc/renesas/siu_pcm.c
121
desc = dmaengine_prep_slave_sg(siu_stream->chan,
sound/soc/renesas/siu_pcm.c
139
dma_async_issue_pending(siu_stream->chan);
sound/soc/renesas/siu_pcm.c
171
desc = dmaengine_prep_slave_sg(siu_stream->chan,
sound/soc/renesas/siu_pcm.c
189
dma_async_issue_pending(siu_stream->chan);
sound/soc/renesas/siu_pcm.c
281
static bool filter(struct dma_chan *chan, void *secondary)
sound/soc/renesas/siu_pcm.c
287
chan->private = &param->shdma_slave;
sound/soc/renesas/siu_pcm.c
322
siu_stream->chan = dma_request_channel(mask, filter, param);
sound/soc/renesas/siu_pcm.c
323
if (!siu_stream->chan) {
sound/soc/renesas/siu_pcm.c
348
dma_release_channel(siu_stream->chan);
sound/soc/renesas/siu_pcm.c
349
siu_stream->chan = NULL;
sound/soc/soc-generic-dmaengine-pcm.c
104
struct dma_chan *chan = pcm->chan[substream->stream];
sound/soc/soc-generic-dmaengine-pcm.c
143
chan);
sound/soc/soc-generic-dmaengine-pcm.c
152
struct dma_chan *chan = pcm->chan[substream->stream];
sound/soc/soc-generic-dmaengine-pcm.c
159
return snd_dmaengine_pcm_open(substream, chan);
sound/soc/soc-generic-dmaengine-pcm.c
190
if ((pcm->flags & SND_DMAENGINE_PCM_FLAG_HALF_DUPLEX) && pcm->chan[0])
sound/soc/soc-generic-dmaengine-pcm.c
191
return pcm->chan[0];
sound/soc/soc-generic-dmaengine-pcm.c
201
struct dma_chan *chan)
sound/soc/soc-generic-dmaengine-pcm.c
206
ret = dma_get_slave_caps(chan, &dma_caps);
sound/soc/soc-generic-dmaengine-pcm.c
244
if (!pcm->chan[i] && config->chan_names[i])
sound/soc/soc-generic-dmaengine-pcm.c
245
pcm->chan[i] = dma_request_slave_channel(dev,
sound/soc/soc-generic-dmaengine-pcm.c
248
if (!pcm->chan[i] && (pcm->flags & SND_DMAENGINE_PCM_FLAG_COMPAT)) {
sound/soc/soc-generic-dmaengine-pcm.c
249
pcm->chan[i] = dmaengine_pcm_compat_request_channel(
sound/soc/soc-generic-dmaengine-pcm.c
253
if (!pcm->chan[i]) {
sound/soc/soc-generic-dmaengine-pcm.c
265
if (!dmaengine_pcm_can_report_residue(dev, pcm->chan[i]))
sound/soc/soc-generic-dmaengine-pcm.c
31
if (!pcm->chan[substream->stream])
sound/soc/soc-generic-dmaengine-pcm.c
34
return pcm->chan[substream->stream]->device->dev;
sound/soc/soc-generic-dmaengine-pcm.c
364
struct dma_chan *chan;
sound/soc/soc-generic-dmaengine-pcm.c
389
chan = dma_request_chan(dev, name);
sound/soc/soc-generic-dmaengine-pcm.c
390
if (IS_ERR(chan)) {
sound/soc/soc-generic-dmaengine-pcm.c
396
if (PTR_ERR(chan) == -EPROBE_DEFER)
sound/soc/soc-generic-dmaengine-pcm.c
398
pcm->chan[i] = NULL;
sound/soc/soc-generic-dmaengine-pcm.c
400
pcm->chan[i] = chan;
sound/soc/soc-generic-dmaengine-pcm.c
407
pcm->chan[1] = pcm->chan[0];
sound/soc/soc-generic-dmaengine-pcm.c
417
if (!pcm->chan[i])
sound/soc/soc-generic-dmaengine-pcm.c
419
dma_release_channel(pcm->chan[i]);
sound/soc/soc-generic-dmaengine-pcm.c
81
struct dma_chan *chan = snd_dmaengine_pcm_get_chan(substream);
sound/soc/soc-generic-dmaengine-pcm.c
94
return dmaengine_slave_config(chan, &slave_config);
sound/soc/soc-topology.c
186
struct snd_soc_tplg_channel *chan, int map)
sound/soc/soc-topology.c
191
if (le32_to_cpu(chan[i].id) == map)
sound/soc/soc-topology.c
192
return le32_to_cpu(chan[i].reg);
sound/soc/soc-topology.c
199
struct snd_soc_tplg_channel *chan, int map)
sound/soc/soc-topology.c
204
if (le32_to_cpu(chan[i].id) == map)
sound/soc/soc-topology.c
205
return le32_to_cpu(chan[i].shift);
sound/soc/spear/spear_pcm.c
39
bool (*filter)(struct dma_chan *chan, void *slave))
sound/soc/spear/spear_pcm.h
11
bool (*filter)(struct dma_chan *chan, void *slave));
sound/soc/sprd/sprd-mcdt.c
112
struct sprd_mcdt_chan chan[MCDT_CHANNEL_NUM];
sound/soc/sprd/sprd-mcdt.c
531
struct sprd_mcdt_chan *chan = &mcdt->chan[i];
sound/soc/sprd/sprd-mcdt.c
534
if (chan->cb)
sound/soc/sprd/sprd-mcdt.c
535
chan->cb->notify(chan->cb->data);
sound/soc/sprd/sprd-mcdt.c
541
struct sprd_mcdt_chan *chan =
sound/soc/sprd/sprd-mcdt.c
542
&mcdt->chan[i + MCDT_ADC_CHANNEL_NUM];
sound/soc/sprd/sprd-mcdt.c
545
if (chan->cb)
sound/soc/sprd/sprd-mcdt.c
546
chan->cb->notify(chan->cb->data);
sound/soc/sprd/sprd-mcdt.c
567
int sprd_mcdt_chan_write(struct sprd_mcdt_chan *chan, char *tx_buf, u32 size)
sound/soc/sprd/sprd-mcdt.c
569
struct sprd_mcdt_dev *mcdt = chan->mcdt;
sound/soc/sprd/sprd-mcdt.c
575
if (chan->dma_enable) {
sound/soc/sprd/sprd-mcdt.c
581
if (sprd_mcdt_chan_fifo_sts(mcdt, chan->id, MCDT_DAC_FIFO_REAL_FULL)) {
sound/soc/sprd/sprd-mcdt.c
586
avail = sprd_mcdt_dac_fifo_avail(mcdt, chan->id);
sound/soc/sprd/sprd-mcdt.c
594
sprd_mcdt_dac_write_fifo(mcdt, chan->id, *buf++);
sound/soc/sprd/sprd-mcdt.c
613
int sprd_mcdt_chan_read(struct sprd_mcdt_chan *chan, char *rx_buf, u32 size)
sound/soc/sprd/sprd-mcdt.c
615
struct sprd_mcdt_dev *mcdt = chan->mcdt;
sound/soc/sprd/sprd-mcdt.c
621
if (chan->dma_enable) {
sound/soc/sprd/sprd-mcdt.c
626
if (sprd_mcdt_chan_fifo_sts(mcdt, chan->id, MCDT_ADC_FIFO_REAL_EMPTY)) {
sound/soc/sprd/sprd-mcdt.c
631
avail = sprd_mcdt_adc_fifo_avail(mcdt, chan->id);
sound/soc/sprd/sprd-mcdt.c
636
sprd_mcdt_adc_read_fifo(mcdt, chan->id, buf++);
sound/soc/sprd/sprd-mcdt.c
660
int sprd_mcdt_chan_int_enable(struct sprd_mcdt_chan *chan, u32 water_mark,
sound/soc/sprd/sprd-mcdt.c
663
struct sprd_mcdt_dev *mcdt = chan->mcdt;
sound/soc/sprd/sprd-mcdt.c
668
if (chan->dma_enable || chan->int_enable) {
sound/soc/sprd/sprd-mcdt.c
673
switch (chan->type) {
sound/soc/sprd/sprd-mcdt.c
675
sprd_mcdt_adc_fifo_clear(mcdt, chan->id);
sound/soc/sprd/sprd-mcdt.c
676
sprd_mcdt_adc_set_watermark(mcdt, chan->id, water_mark,
sound/soc/sprd/sprd-mcdt.c
678
sprd_mcdt_chan_int_en(mcdt, chan->id,
sound/soc/sprd/sprd-mcdt.c
680
sprd_mcdt_ap_int_enable(mcdt, chan->id, true);
sound/soc/sprd/sprd-mcdt.c
684
sprd_mcdt_dac_fifo_clear(mcdt, chan->id);
sound/soc/sprd/sprd-mcdt.c
685
sprd_mcdt_dac_set_watermark(mcdt, chan->id,
sound/soc/sprd/sprd-mcdt.c
687
sprd_mcdt_chan_int_en(mcdt, chan->id,
sound/soc/sprd/sprd-mcdt.c
689
sprd_mcdt_ap_int_enable(mcdt, chan->id, true);
sound/soc/sprd/sprd-mcdt.c
698
chan->cb = cb;
sound/soc/sprd/sprd-mcdt.c
699
chan->int_enable = true;
sound/soc/sprd/sprd-mcdt.c
710
void sprd_mcdt_chan_int_disable(struct sprd_mcdt_chan *chan)
sound/soc/sprd/sprd-mcdt.c
712
struct sprd_mcdt_dev *mcdt = chan->mcdt;
sound/soc/sprd/sprd-mcdt.c
716
if (!chan->int_enable)
sound/soc/sprd/sprd-mcdt.c
720
switch (chan->type) {
sound/soc/sprd/sprd-mcdt.c
722
sprd_mcdt_chan_int_en(mcdt, chan->id,
sound/soc/sprd/sprd-mcdt.c
724
sprd_mcdt_chan_int_clear(mcdt, chan->id, MCDT_ADC_FIFO_AF_INT);
sound/soc/sprd/sprd-mcdt.c
725
sprd_mcdt_ap_int_enable(mcdt, chan->id, false);
sound/soc/sprd/sprd-mcdt.c
729
sprd_mcdt_chan_int_en(mcdt, chan->id,
sound/soc/sprd/sprd-mcdt.c
731
sprd_mcdt_chan_int_clear(mcdt, chan->id, MCDT_DAC_FIFO_AE_INT);
sound/soc/sprd/sprd-mcdt.c
732
sprd_mcdt_ap_int_enable(mcdt, chan->id, false);
sound/soc/sprd/sprd-mcdt.c
739
chan->int_enable = false;
sound/soc/sprd/sprd-mcdt.c
755
int sprd_mcdt_chan_dma_enable(struct sprd_mcdt_chan *chan,
sound/soc/sprd/sprd-mcdt.c
759
struct sprd_mcdt_dev *mcdt = chan->mcdt;
sound/soc/sprd/sprd-mcdt.c
764
if (chan->dma_enable || chan->int_enable ||
sound/soc/sprd/sprd-mcdt.c
770
switch (chan->type) {
sound/soc/sprd/sprd-mcdt.c
772
sprd_mcdt_adc_fifo_clear(mcdt, chan->id);
sound/soc/sprd/sprd-mcdt.c
773
sprd_mcdt_adc_set_watermark(mcdt, chan->id,
sound/soc/sprd/sprd-mcdt.c
775
sprd_mcdt_adc_dma_enable(mcdt, chan->id, true);
sound/soc/sprd/sprd-mcdt.c
776
sprd_mcdt_adc_dma_chn_select(mcdt, chan->id, dma_chan);
sound/soc/sprd/sprd-mcdt.c
777
sprd_mcdt_adc_dma_ack_select(mcdt, chan->id, dma_chan);
sound/soc/sprd/sprd-mcdt.c
781
sprd_mcdt_dac_fifo_clear(mcdt, chan->id);
sound/soc/sprd/sprd-mcdt.c
782
sprd_mcdt_dac_set_watermark(mcdt, chan->id,
sound/soc/sprd/sprd-mcdt.c
784
sprd_mcdt_dac_dma_enable(mcdt, chan->id, true);
sound/soc/sprd/sprd-mcdt.c
785
sprd_mcdt_dac_dma_chn_select(mcdt, chan->id, dma_chan);
sound/soc/sprd/sprd-mcdt.c
786
sprd_mcdt_dac_dma_ack_select(mcdt, chan->id, dma_chan);
sound/soc/sprd/sprd-mcdt.c
795
chan->dma_enable = true;
sound/soc/sprd/sprd-mcdt.c
805
void sprd_mcdt_chan_dma_disable(struct sprd_mcdt_chan *chan)
sound/soc/sprd/sprd-mcdt.c
807
struct sprd_mcdt_dev *mcdt = chan->mcdt;
sound/soc/sprd/sprd-mcdt.c
811
if (!chan->dma_enable)
sound/soc/sprd/sprd-mcdt.c
814
switch (chan->type) {
sound/soc/sprd/sprd-mcdt.c
816
sprd_mcdt_adc_dma_enable(mcdt, chan->id, false);
sound/soc/sprd/sprd-mcdt.c
817
sprd_mcdt_adc_fifo_clear(mcdt, chan->id);
sound/soc/sprd/sprd-mcdt.c
821
sprd_mcdt_dac_dma_enable(mcdt, chan->id, false);
sound/soc/sprd/sprd-mcdt.c
822
sprd_mcdt_dac_fifo_clear(mcdt, chan->id);
sound/soc/sprd/sprd-mcdt.c
829
chan->dma_enable = false;
sound/soc/sprd/sprd-mcdt.c
865
void sprd_mcdt_free_chan(struct sprd_mcdt_chan *chan)
sound/soc/sprd/sprd-mcdt.c
869
sprd_mcdt_chan_dma_disable(chan);
sound/soc/sprd/sprd-mcdt.c
870
sprd_mcdt_chan_int_disable(chan);
sound/soc/sprd/sprd-mcdt.c
875
if (temp == chan)
sound/soc/sprd/sprd-mcdt.c
879
list_add_tail(&chan->list, &sprd_mcdt_chan_list);
sound/soc/sprd/sprd-mcdt.c
889
struct sprd_mcdt_chan *chan = &mcdt->chan[i];
sound/soc/sprd/sprd-mcdt.c
892
chan->id = i;
sound/soc/sprd/sprd-mcdt.c
893
chan->type = SPRD_MCDT_ADC_CHAN;
sound/soc/sprd/sprd-mcdt.c
894
chan->fifo_phys = res->start + MCDT_CH0_RXD + i * 4;
sound/soc/sprd/sprd-mcdt.c
896
chan->id = i - MCDT_ADC_CHANNEL_NUM;
sound/soc/sprd/sprd-mcdt.c
897
chan->type = SPRD_MCDT_DAC_CHAN;
sound/soc/sprd/sprd-mcdt.c
898
chan->fifo_phys = res->start + MCDT_CH0_TXD +
sound/soc/sprd/sprd-mcdt.c
902
chan->mcdt = mcdt;
sound/soc/sprd/sprd-mcdt.c
903
INIT_LIST_HEAD(&chan->list);
sound/soc/sprd/sprd-mcdt.c
906
list_add_tail(&chan->list, &sprd_mcdt_chan_list);
sound/soc/sprd/sprd-mcdt.c
946
struct sprd_mcdt_chan *chan, *temp;
sound/soc/sprd/sprd-mcdt.c
950
list_for_each_entry_safe(chan, temp, &sprd_mcdt_chan_list, list)
sound/soc/sprd/sprd-mcdt.c
951
list_del(&chan->list);
sound/soc/sprd/sprd-mcdt.h
102
void sprd_mcdt_chan_dma_disable(struct sprd_mcdt_chan *chan)
sound/soc/sprd/sprd-mcdt.h
54
void sprd_mcdt_free_chan(struct sprd_mcdt_chan *chan);
sound/soc/sprd/sprd-mcdt.h
56
int sprd_mcdt_chan_write(struct sprd_mcdt_chan *chan, char *tx_buf, u32 size);
sound/soc/sprd/sprd-mcdt.h
57
int sprd_mcdt_chan_read(struct sprd_mcdt_chan *chan, char *rx_buf, u32 size);
sound/soc/sprd/sprd-mcdt.h
58
int sprd_mcdt_chan_int_enable(struct sprd_mcdt_chan *chan, u32 water_mark,
sound/soc/sprd/sprd-mcdt.h
60
void sprd_mcdt_chan_int_disable(struct sprd_mcdt_chan *chan);
sound/soc/sprd/sprd-mcdt.h
62
int sprd_mcdt_chan_dma_enable(struct sprd_mcdt_chan *chan,
sound/soc/sprd/sprd-mcdt.h
64
void sprd_mcdt_chan_dma_disable(struct sprd_mcdt_chan *chan);
sound/soc/sprd/sprd-mcdt.h
74
void sprd_mcdt_free_chan(struct sprd_mcdt_chan *chan)
sound/soc/sprd/sprd-mcdt.h
77
int sprd_mcdt_chan_write(struct sprd_mcdt_chan *chan, char *tx_buf, u32 size)
sound/soc/sprd/sprd-mcdt.h
82
int sprd_mcdt_chan_read(struct sprd_mcdt_chan *chan, char *rx_buf, u32 size)
sound/soc/sprd/sprd-mcdt.h
87
int sprd_mcdt_chan_int_enable(struct sprd_mcdt_chan *chan, u32 water_mark,
sound/soc/sprd/sprd-mcdt.h
93
void sprd_mcdt_chan_int_disable(struct sprd_mcdt_chan *chan)
sound/soc/sprd/sprd-mcdt.h
96
int sprd_mcdt_chan_dma_enable(struct sprd_mcdt_chan *chan,
sound/soc/sprd/sprd-pcm-compress.c
156
dma->chan = dma_request_slave_channel(dev,
sound/soc/sprd/sprd-pcm-compress.c
158
if (!dma->chan) {
sound/soc/sprd/sprd-pcm-compress.c
227
ret = dmaengine_slave_config(dma->chan, &config);
sound/soc/sprd/sprd-pcm-compress.c
238
dma->desc = dma->chan->device->device_prep_slave_sg(dma->chan, sg,
sound/soc/sprd/sprd-pcm-compress.c
260
dma_release_channel(dma->chan);
sound/soc/sprd/sprd-pcm-compress.c
309
dma_release_channel(stream->dma[0].chan);
sound/soc/sprd/sprd-pcm-compress.c
311
dma_release_channel(stream->dma[1].chan);
sound/soc/sprd/sprd-pcm-compress.c
403
if (dma->chan) {
sound/soc/sprd/sprd-pcm-compress.c
404
dma_release_channel(dma->chan);
sound/soc/sprd/sprd-pcm-compress.c
405
dma->chan = NULL;
sound/soc/sprd/sprd-pcm-compress.c
43
struct dma_chan *chan;
sound/soc/sprd/sprd-pcm-compress.c
453
if (dma->chan)
sound/soc/sprd/sprd-pcm-compress.c
454
dma_async_issue_pending(dma->chan);
sound/soc/sprd/sprd-pcm-compress.c
464
if (dma->chan)
sound/soc/sprd/sprd-pcm-compress.c
465
dmaengine_terminate_async(dma->chan);
sound/soc/sprd/sprd-pcm-compress.c
482
if (dma->chan)
sound/soc/sprd/sprd-pcm-compress.c
483
dmaengine_pause(dma->chan);
sound/soc/sprd/sprd-pcm-compress.c
494
if (dma->chan)
sound/soc/sprd/sprd-pcm-compress.c
495
dmaengine_resume(dma->chan);
sound/soc/sprd/sprd-pcm-dma.c
149
if (data->chan) {
sound/soc/sprd/sprd-pcm-dma.c
150
dma_release_channel(data->chan);
sound/soc/sprd/sprd-pcm-dma.c
151
data->chan = NULL;
sound/soc/sprd/sprd-pcm-dma.c
174
data->chan = dma_request_slave_channel(dev,
sound/soc/sprd/sprd-pcm-dma.c
176
if (!data->chan) {
sound/soc/sprd/sprd-pcm-dma.c
21
struct dma_chan *chan;
sound/soc/sprd/sprd-pcm-dma.c
229
struct dma_chan *chan = data->chan;
sound/soc/sprd/sprd-pcm-dma.c
266
ret = dmaengine_slave_config(chan, &config);
sound/soc/sprd/sprd-pcm-dma.c
279
data->desc = chan->device->device_prep_slave_sg(chan, sg,
sound/soc/sprd/sprd-pcm-dma.c
337
dma_async_issue_pending(data->chan);
sound/soc/sprd/sprd-pcm-dma.c
346
if (data->chan)
sound/soc/sprd/sprd-pcm-dma.c
347
dmaengine_resume(data->chan);
sound/soc/sprd/sprd-pcm-dma.c
355
if (data->chan)
sound/soc/sprd/sprd-pcm-dma.c
356
dmaengine_terminate_async(data->chan);
sound/soc/sprd/sprd-pcm-dma.c
365
if (data->chan)
sound/soc/sprd/sprd-pcm-dma.c
366
dmaengine_pause(data->chan);
sound/soc/sprd/sprd-pcm-dma.c
391
if (!data->chan)
sound/soc/sprd/sprd-pcm-dma.c
394
status = dmaengine_tx_status(data->chan, data->cookie, &state);
sound/soc/sunxi/sun4i-i2s.c
119
#define SUN8I_I2S_CHAN_CFG_RX_SLOT_NUM(chan) ((chan - 1) << 4)
sound/soc/sunxi/sun4i-i2s.c
121
#define SUN8I_I2S_CHAN_CFG_TX_SLOT_NUM(chan) (chan - 1)
sound/soc/sunxi/sun4i-i2s.c
137
#define SUN50I_H6_I2S_TX_CHAN_SEL(chan) ((chan - 1) << 16)
sound/soc/sunxi/sun4i-i2s.c
88
#define SUN4I_I2S_TX_CHAN_MAP(chan, sample) ((sample) << (chan << 2))
sound/soc/tegra/tegra210_mvc.c
102
mvc->volume[chan] = ((val * (1<<8)) / 100) << 16;
sound/soc/tegra/tegra210_mvc.c
105
mvc->volume[chan] = (val * (1<<8)) / 100;
sound/soc/tegra/tegra210_mvc.c
264
u8 chan = TEGRA210_MVC_GET_CHAN(mc->reg, TEGRA210_MVC_TARGET_VOL);
sound/soc/tegra/tegra210_mvc.c
265
s32 val = mvc->volume[chan];
sound/soc/tegra/tegra210_mvc.c
293
u8 chan = TEGRA210_MVC_GET_CHAN(mc->reg, TEGRA210_MVC_TARGET_VOL);
sound/soc/tegra/tegra210_mvc.c
294
int old_volume = mvc->volume[chan];
sound/soc/tegra/tegra210_mvc.c
303
tegra210_mvc_conv_vol(mvc, chan, ucontrol->value.integer.value[0]);
sound/soc/tegra/tegra210_mvc.c
305
if (mvc->volume[chan] == old_volume) {
sound/soc/tegra/tegra210_mvc.c
319
mvc->volume[i] = mvc->volume[chan];
sound/soc/tegra/tegra210_mvc.c
324
TEGRA210_MVC_REG_OFFSET(TEGRA210_MVC_INIT_VOL, chan),
sound/soc/tegra/tegra210_mvc.c
325
mvc->volume[chan]);
sound/soc/tegra/tegra210_mvc.c
327
regmap_write(mvc->regmap, mc->reg, mvc->volume[chan]);
sound/soc/tegra/tegra210_mvc.c
527
#define TEGRA210_MVC_VOL_CTRL(chan) \
sound/soc/tegra/tegra210_mvc.c
528
SOC_SINGLE_EXT("Channel" #chan " Volume", \
sound/soc/tegra/tegra210_mvc.c
530
(chan - 1)), \
sound/soc/tegra/tegra210_mvc.c
91
static void tegra210_mvc_conv_vol(struct tegra210_mvc *mvc, u8 chan, s32 val)
sound/soc/tegra/tegra210_peq.c
206
#define TEGRA210_PEQ_GAIN_PARAMS_CTRL(chan) \
sound/soc/tegra/tegra210_peq.c
207
TEGRA_SOC_BYTES_EXT("PEQ Channel-" #chan " Biquad Gain Params", \
sound/soc/tegra/tegra210_peq.c
210
(TEGRA210_PEQ_GAIN_PARAM_SIZE_PER_CH * chan), 0xffffffff, \
sound/soc/tegra/tegra210_peq.c
214
#define TEGRA210_PEQ_SHIFT_PARAMS_CTRL(chan) \
sound/soc/tegra/tegra210_peq.c
215
TEGRA_SOC_BYTES_EXT("PEQ Channel-" #chan " Biquad Shift Params", \
sound/soc/tegra/tegra210_peq.c
218
(TEGRA210_PEQ_SHIFT_PARAM_SIZE_PER_CH * chan), 0x1f, \
sound/soc/tegra/tegra_pcm.c
101
chan = dma_request_chan(cpu_dai->dev, dmap->chan_name);
sound/soc/tegra/tegra_pcm.c
102
if (IS_ERR(chan)) {
sound/soc/tegra/tegra_pcm.c
109
ret = snd_dmaengine_pcm_open(substream, chan);
sound/soc/tegra/tegra_pcm.c
115
dma_release_channel(chan);
sound/soc/tegra/tegra_pcm.c
148
struct dma_chan *chan;
sound/soc/tegra/tegra_pcm.c
158
chan = snd_dmaengine_pcm_get_chan(substream);
sound/soc/tegra/tegra_pcm.c
177
ret = dmaengine_slave_config(chan, &slave_config);
sound/soc/tegra/tegra_pcm.c
81
struct dma_chan *chan;
sound/soc/ti/davinci-mcasp.c
2464
struct dma_chan *chan;
sound/soc/ti/davinci-mcasp.c
2472
chan = dma_request_chan(mcasp->dev, tmp);
sound/soc/ti/davinci-mcasp.c
2473
if (IS_ERR(chan))
sound/soc/ti/davinci-mcasp.c
2474
return dev_err_probe(mcasp->dev, PTR_ERR(chan),
sound/soc/ti/davinci-mcasp.c
2476
if (WARN_ON(!chan->device || !chan->device->dev)) {
sound/soc/ti/davinci-mcasp.c
2477
dma_release_channel(chan);
sound/soc/ti/davinci-mcasp.c
2481
if (chan->device->dev->of_node)
sound/soc/ti/davinci-mcasp.c
2482
ret = of_property_read_string(chan->device->dev->of_node,
sound/soc/ti/davinci-mcasp.c
2487
dma_release_channel(chan);
sound/synth/emux/emux_effect.c
107
effect_set_word(unsigned short *valp, struct snd_midi_channel *chan, int type)
sound/synth/emux/emux_effect.c
110
struct snd_emux_effect_table *fx = chan->private;
sound/synth/emux/emux_effect.c
124
effect_get_offset(struct snd_midi_channel *chan, int lo, int hi, int mode)
sound/synth/emux/emux_effect.c
127
struct snd_emux_effect_table *fx = chan->private;
sound/synth/emux/emux_effect.c
143
struct snd_midi_channel *chan, int type, int val)
sound/synth/emux/emux_effect.c
155
snd_emux_send_effect(port, chan, type, val, mode);
sound/synth/emux/emux_effect.c
163
snd_emux_send_effect(struct snd_emux_port *port, struct snd_midi_channel *chan,
sound/synth/emux/emux_effect.c
173
fx = chan->private;
sound/synth/emux/emux_effect.c
200
if (!STATE_IS_PLAYING(vp->state) || vp->chan != chan)
sound/synth/emux/emux_effect.c
206
effect_set_byte(srcp, chan, type);
sound/synth/emux/emux_effect.c
209
effect_set_word((unsigned short *)srcp, chan, type);
sound/synth/emux/emux_effect.c
215
snd_emux_update_channel(port, chan, parm_defs[type].update);
sound/synth/emux/emux_effect.c
223
struct snd_midi_channel *chan = vp->chan;
sound/synth/emux/emux_effect.c
228
fx = chan->private;
sound/synth/emux/emux_effect.c
249
effect_set_byte(srcp, chan, i);
sound/synth/emux/emux_effect.c
251
effect_set_word((unsigned short*)srcp, chan, i);
sound/synth/emux/emux_effect.c
255
vp->reg.start += effect_get_offset(chan, EMUX_FX_SAMPLE_START,
sound/synth/emux/emux_effect.c
259
vp->reg.loopstart += effect_get_offset(chan, EMUX_FX_LOOP_START,
sound/synth/emux/emux_effect.c
263
vp->reg.loopend += effect_get_offset(chan, EMUX_FX_LOOP_END,
sound/synth/emux/emux_effect.c
86
effect_set_byte(unsigned char *valp, struct snd_midi_channel *chan, int type)
sound/synth/emux/emux_effect.c
89
struct snd_emux_effect_table *fx = chan->private;
sound/synth/emux/emux_nrpn.c
273
snd_emux_nrpn(void *p, struct snd_midi_channel *chan,
sound/synth/emux/emux_nrpn.c
279
if (snd_BUG_ON(!port || !chan))
sound/synth/emux/emux_nrpn.c
282
if (chan->control[MIDI_CTL_NONREG_PARM_NUM_MSB] == 127 &&
sound/synth/emux/emux_nrpn.c
283
chan->control[MIDI_CTL_NONREG_PARM_NUM_LSB] <= 26) {
sound/synth/emux/emux_nrpn.c
287
val = (chan->control[MIDI_CTL_MSB_DATA_ENTRY] << 7) |
sound/synth/emux/emux_nrpn.c
288
chan->control[MIDI_CTL_LSB_DATA_ENTRY];
sound/synth/emux/emux_nrpn.c
292
port, chan, chan->control[MIDI_CTL_NONREG_PARM_NUM_LSB],
sound/synth/emux/emux_nrpn.c
298
chan->control[MIDI_CTL_NONREG_PARM_NUM_MSB] == 1) {
sound/synth/emux/emux_nrpn.c
302
val = chan->control[MIDI_CTL_MSB_DATA_ENTRY];
sound/synth/emux/emux_nrpn.c
305
port, chan, chan->control[MIDI_CTL_NONREG_PARM_NUM_LSB],
sound/synth/emux/emux_nrpn.c
349
snd_emux_xg_control(struct snd_emux_port *port, struct snd_midi_channel *chan,
sound/synth/emux/emux_nrpn.c
352
if (param >= ARRAY_SIZE(chan->control))
sound/synth/emux/emux_nrpn.c
356
port, chan, param,
sound/synth/emux/emux_nrpn.c
357
chan->control[param],
sound/synth/emux/emux_nrpn.c
40
struct snd_midi_channel *chan,
sound/synth/emux/emux_nrpn.c
47
snd_emux_send_effect(port, chan, table[i].effect,
sound/synth/emux/emux_oss.c
329
struct snd_midi_channel *chan;
sound/synth/emux/emux_oss.c
333
chan = NULL;
sound/synth/emux/emux_oss.c
335
chan = &port->chset.channels[voice];
sound/synth/emux/emux_oss.c
347
if (chan)
sound/synth/emux/emux_oss.c
348
snd_emux_send_effect_oss(port, chan, p1, p2);
sound/synth/emux/emux_oss.c
377
if (chan) {
sound/synth/emux/emux_oss.c
378
chan->midi_pressure = p1;
sound/synth/emux/emux_oss.c
379
snd_emux_update_channel(port, chan, SNDRV_EMUX_UPDATE_FMMOD|SNDRV_EMUX_UPDATE_FM2FRQ2);
sound/synth/emux/emux_oss.c
391
chan = &port->chset.channels[i];
sound/synth/emux/emux_oss.c
392
chan->drum_channel = ((port->drum_flags >> i) & 1) ? 1 : 0;
sound/synth/emux/emux_oss.c
423
struct snd_midi_channel *chan;
sound/synth/emux/emux_oss.c
433
chan = &port->chset.channels[voice];
sound/synth/emux/emux_oss.c
440
chan->midi_program = p1;
sound/synth/emux/emux_oss.c
445
chan->control[MIDI_CTL_MSB_PAN] = (int)p1 << 3;
sound/synth/emux/emux_oss.c
446
snd_emux_update_channel(port, chan, SNDRV_EMUX_UPDATE_PAN);
sound/synth/emux/emux_oss.c
467
snd_emux_send_effect(port, chan, EMUX_FX_SAMPLE_START,
sound/synth/emux/emux_oss.c
470
snd_emux_send_effect(port, chan, EMUX_FX_COARSE_SAMPLE_START,
sound/synth/emux/emux_seq.c
224
struct snd_midi_channel *chan = port->chset.channels + i;
sound/synth/emux/emux_seq.c
225
chan->drum_channel = ((port->drum_flags >> i) & 1) ? 1 : 0;
sound/synth/emux/emux_synth.c
120
vp->chan == chan) {
sound/synth/emux/emux_synth.c
130
struct snd_emux_effect_table *fx = chan->private;
sound/synth/emux/emux_synth.c
143
snd_emux_note_off(void *p, int note, int vel, struct snd_midi_channel *chan)
sound/synth/emux/emux_synth.c
151
if (snd_BUG_ON(!port || !chan))
sound/synth/emux/emux_synth.c
162
vp->chan == chan && vp->key == note) {
sound/synth/emux/emux_synth.c
216
snd_emux_key_press(void *p, int note, int vel, struct snd_midi_channel *chan)
sound/synth/emux/emux_synth.c
224
if (snd_BUG_ON(!port || !chan))
sound/synth/emux/emux_synth.c
235
vp->chan == chan && vp->key == note) {
sound/synth/emux/emux_synth.c
247
snd_emux_update_channel(struct snd_emux_port *port, struct snd_midi_channel *chan, int update)
sound/synth/emux/emux_synth.c
263
if (vp->chan == chan)
sound/synth/emux/emux_synth.c
27
int *notep, int vel, struct snd_midi_channel *chan,
sound/synth/emux/emux_synth.c
29
static int get_bank(struct snd_emux_port *port, struct snd_midi_channel *chan);
sound/synth/emux/emux_synth.c
299
snd_emux_control(void *p, int type, struct snd_midi_channel *chan)
sound/synth/emux/emux_synth.c
304
if (snd_BUG_ON(!port || !chan))
sound/synth/emux/emux_synth.c
31
struct snd_midi_channel *chan, int free);
sound/synth/emux/emux_synth.c
310
snd_emux_update_channel(port, chan, SNDRV_EMUX_UPDATE_VOLUME);
sound/synth/emux/emux_synth.c
314
snd_emux_update_channel(port, chan, SNDRV_EMUX_UPDATE_PAN);
sound/synth/emux/emux_synth.c
320
if (chan->control[type] >= 64)
sound/synth/emux/emux_synth.c
321
snd_emux_send_effect(port, chan, EMUX_FX_CUTOFF, -160,
sound/synth/emux/emux_synth.c
324
snd_emux_send_effect(port, chan, EMUX_FX_CUTOFF, 0,
sound/synth/emux/emux_synth.c
330
snd_emux_update_channel(port, chan, SNDRV_EMUX_UPDATE_PITCH);
sound/synth/emux/emux_synth.c
335
snd_emux_update_channel(port, chan,
sound/synth/emux/emux_synth.c
343
snd_emux_xg_control(port, chan, type);
sound/synth/emux/emux_synth.c
352
terminate_note1(struct snd_emux *emu, int note, struct snd_midi_channel *chan, int free)
sound/synth/emux/emux_synth.c
360
if (STATE_IS_PLAYING(vp->state) && vp->chan == chan &&
sound/synth/emux/emux_synth.c
371
snd_emux_terminate_note(void *p, int note, struct snd_midi_channel *chan)
sound/synth/emux/emux_synth.c
377
if (snd_BUG_ON(!port || !chan))
sound/synth/emux/emux_synth.c
384
terminate_note1(emu, note, chan, 1);
sound/synth/emux/emux_synth.c
46
snd_emux_note_on(void *p, int note, int vel, struct snd_midi_channel *chan)
sound/synth/emux/emux_synth.c
477
vp->chan = NULL;
sound/synth/emux/emux_synth.c
496
if (vp->chan == NULL || vp->port == NULL)
sound/synth/emux/emux_synth.c
55
if (snd_BUG_ON(!port || !chan))
sound/synth/emux/emux_synth.c
621
struct snd_midi_channel *chan = vp->chan;
sound/synth/emux/emux_synth.c
628
pan = chan->control[MIDI_CTL_MSB_PAN] - 64;
sound/synth/emux/emux_synth.c
63
nvoices = get_zone(emu, port, &note, vel, chan, table);
sound/synth/emux/emux_synth.c
724
struct snd_midi_channel *chan = vp->chan;
sound/synth/emux/emux_synth.c
727
expression_vol = chan->control[MIDI_CTL_MSB_EXPRESSION];
sound/synth/emux/emux_synth.c
732
main_vol = chan->control[MIDI_CTL_MSB_MAIN_VOLUME];
sound/synth/emux/emux_synth.c
742
main_vol = chan->control[MIDI_CTL_MSB_MAIN_VOLUME] * vp->reg.amplitude / 127;
sound/synth/emux/emux_synth.c
757
if (chan->private) {
sound/synth/emux/emux_synth.c
758
struct snd_emux_effect_table *fx = chan->private;
sound/synth/emux/emux_synth.c
76
terminate_note1(emu, key, chan, 0);
sound/synth/emux/emux_synth.c
768
if (!SF_IS_DRUM_BANK(get_bank(port, chan))
sound/synth/emux/emux_synth.c
793
struct snd_midi_channel *chan = vp->chan;
sound/synth/emux/emux_synth.c
804
if (chan->midi_pitchbend != 0) {
sound/synth/emux/emux_synth.c
806
offset += chan->midi_pitchbend * chan->gm_rpn_pitch_bend_range / 3072;
sound/synth/emux/emux_synth.c
814
offset += chan->gm_rpn_coarse_tuning * 4096 / (12 * 128);
sound/synth/emux/emux_synth.c
815
offset += chan->gm_rpn_fine_tuning / 24;
sound/synth/emux/emux_synth.c
819
if (chan->private) {
sound/synth/emux/emux_synth.c
820
struct snd_emux_effect_table *fx = chan->private;
sound/synth/emux/emux_synth.c
841
get_bank(struct snd_emux_port *port, struct snd_midi_channel *chan)
sound/synth/emux/emux_synth.c
847
val = chan->control[MIDI_CTL_MSB_BANK];
sound/synth/emux/emux_synth.c
850
return chan->control[MIDI_CTL_LSB_BANK];
sound/synth/emux/emux_synth.c
853
if (chan->drum_channel)
sound/synth/emux/emux_synth.c
856
return chan->control[MIDI_CTL_MSB_BANK];
sound/synth/emux/emux_synth.c
859
if (chan->drum_channel)
sound/synth/emux/emux_synth.c
861
return chan->control[MIDI_CTL_MSB_BANK];
sound/synth/emux/emux_synth.c
871
int *notep, int vel, struct snd_midi_channel *chan,
sound/synth/emux/emux_synth.c
876
bank = get_bank(port, chan);
sound/synth/emux/emux_synth.c
877
preset = chan->midi_program;
sound/synth/emux/emux_synth.c
905
vp->chan = NULL;
sound/synth/emux/emux_synth.c
95
vp->chan = chan;
sound/synth/emux/emux_voice.h
34
void snd_emux_note_on(void *p, int note, int vel, struct snd_midi_channel *chan);
sound/synth/emux/emux_voice.h
35
void snd_emux_note_off(void *p, int note, int vel, struct snd_midi_channel *chan);
sound/synth/emux/emux_voice.h
36
void snd_emux_key_press(void *p, int note, int vel, struct snd_midi_channel *chan);
sound/synth/emux/emux_voice.h
37
void snd_emux_terminate_note(void *p, int note, struct snd_midi_channel *chan);
sound/synth/emux/emux_voice.h
38
void snd_emux_control(void *p, int type, struct snd_midi_channel *chan);
sound/synth/emux/emux_voice.h
42
struct snd_midi_channel *chan, int update);
sound/synth/emux/emux_voice.h
54
struct snd_midi_channel *chan, int type, int val);
sound/synth/emux/emux_voice.h
56
struct snd_midi_channel *chan, int type, int val, int mode);
sound/synth/emux/emux_voice.h
63
struct snd_midi_channel *chan, int param);
sound/synth/emux/emux_voice.h
64
void snd_emux_nrpn(void *private_data, struct snd_midi_channel *chan,
sound/usb/mixer_quirks.c
1571
int out, chan, err;
sound/usb/mixer_quirks.c
1590
for (chan = 0; chan < num_outs + num_ins; chan++) {
sound/usb/mixer_quirks.c
1592
if (chan < num_outs) {
sound/usb/mixer_quirks.c
1595
chan + 1, out + 1);
sound/usb/mixer_quirks.c
1599
chan - num_outs + 1, out + 1);
sound/usb/mixer_quirks.c
1603
offset = chan * num_outs;
sound/usb/mixer_quirks.c
1658
int chan, err;
sound/usb/mixer_quirks.c
1677
for (chan = 0; chan < num_outs + num_ins; chan++) {
sound/usb/mixer_quirks.c
1678
if (chan < num_outs) {
sound/usb/mixer_quirks.c
1681
chan + 1);
sound/usb/mixer_quirks.c
1685
chan - num_outs + 1);
sound/usb/mixer_quirks.c
1688
cmask = (chan == 0) ? 0 : BIT(chan - 1);
sound/usb/mixer_quirks.c
1703
int chan, err;
sound/usb/mixer_quirks.c
1724
for (chan = 0; chan < num_outs; chan++) {
sound/usb/mixer_quirks.c
1727
chan + 1);
sound/usb/mixer_quirks.c
1729
cmask = (chan == 0) ? 0 :
sound/usb/mixer_quirks.c
1730
BIT(chan + (chan % 2) * num_outs - 1);
tools/iio/iio_event_monitor.c
295
int chan = IIO_EVENT_CODE_EXTRACT_CHAN(event->id);
tools/iio/iio_event_monitor.c
312
if (chan >= 0) {
tools/iio/iio_event_monitor.c
313
printf(", channel: %d", chan);
tools/testing/nvdimm/test/ndtest.c
37
#define NFIT_DIMM_HANDLE(node, socket, imc, chan, dimm) \
tools/testing/nvdimm/test/ndtest.c
39
| ((imc & 0xf) << 8) | ((chan & 0xf) << 4) | (dimm & 0xf))
tools/testing/nvdimm/test/nfit.c
120
#define NFIT_DIMM_HANDLE(node, socket, imc, chan, dimm) \
tools/testing/nvdimm/test/nfit.c
122
| ((imc & 0xf) << 8) | ((chan & 0xf) << 4) | (dimm & 0xf))
tools/testing/selftests/drivers/net/hw/ncdevmem.c
560
struct ethtool_channels_get_rsp *chan;
tools/testing/selftests/drivers/net/hw/ncdevmem.c
580
chan = ethtool_channels_get(ys, gchan);
tools/testing/selftests/drivers/net/hw/ncdevmem.c
582
if (!chan) {
tools/testing/selftests/drivers/net/hw/ncdevmem.c
596
if (chan->_present.combined_count) {
tools/testing/selftests/drivers/net/hw/ncdevmem.c
597
if (chan->_present.rx_count || chan->_present.tx_count) {
tools/testing/selftests/drivers/net/hw/ncdevmem.c
612
} else if (chan->_present.rx_count) {
tools/testing/selftests/drivers/net/hw/ncdevmem.c
627
chan->combined_count);
tools/testing/selftests/drivers/net/hw/ncdevmem.c
628
ethtool_channels_set_req_set_rx_count(schan, chan->rx_count);
tools/testing/selftests/drivers/net/hw/ncdevmem.c
629
ethtool_channels_set_req_set_tx_count(schan, chan->tx_count);
tools/testing/selftests/drivers/net/hw/ncdevmem.c
640
ethtool_channels_get_rsp_free(chan);
tools/testing/selftests/ptp/testptp.c
442
desc.chan = index;
tools/testing/selftests/ptp/testptp.c
499
desc.name, desc.index, desc.func, desc.chan);