Home
last modified time | relevance | path

Searched refs:addr (Results 1 – 25 of 307) sorted by relevance

12345678910>>...13

/sound/soc/intel/haswell/
Dsst-haswell-dsp.c137 ram = dsp->addr.lpe; in hsw_parse_module()
139 block->ram_offset + dsp->addr.iram_offset; in hsw_parse_module()
144 ram = dsp->addr.lpe; in hsw_parse_module()
256 reg = readl(sst->addr.pci_cfg + SST_VDRTCTL2); in hsw_set_dsp_D3()
258 writel(reg, sst->addr.pci_cfg + SST_VDRTCTL2); in hsw_set_dsp_D3()
261 val = readl(sst->addr.pci_cfg + SST_VDRTCTL0); in hsw_set_dsp_D3()
265 writel(val, sst->addr.pci_cfg + SST_VDRTCTL0); in hsw_set_dsp_D3()
268 val = readl(sst->addr.pci_cfg + SST_VDRTCTL2); in hsw_set_dsp_D3()
270 writel(val, sst->addr.pci_cfg + SST_VDRTCTL2); in hsw_set_dsp_D3()
277 val = readl(sst->addr.pci_cfg + SST_PMCS); in hsw_set_dsp_D3()
[all …]
/sound/soc/codecs/
Drt5677-spi.c112 int rt5677_spi_read(u32 addr, void *rxbuf, size_t len) in rt5677_spi_read() argument
127 if ((addr & 3) || (len & 3)) { in rt5677_spi_read()
128 dev_err(&g_spi->dev, "Bad read align 0x%x(%zu)\n", addr, len); in rt5677_spi_read()
141 spi_cmd = rt5677_spi_select_cmd(true, (addr + offset) & 7, in rt5677_spi_read()
146 header[1] = ((addr + offset) & 0xff000000) >> 24; in rt5677_spi_read()
147 header[2] = ((addr + offset) & 0x00ff0000) >> 16; in rt5677_spi_read()
148 header[3] = ((addr + offset) & 0x0000ff00) >> 8; in rt5677_spi_read()
149 header[4] = ((addr + offset) & 0x000000ff) >> 0; in rt5677_spi_read()
166 int rt5677_spi_write(u32 addr, const void *txbuf, size_t len) in rt5677_spi_write() argument
181 if (addr & 3) { in rt5677_spi_write()
[all …]
Dsigmadsp-i2c.c18 unsigned int addr, const uint8_t data[], size_t len) in sigmadsp_write_i2c() argument
27 put_unaligned_be16(addr, buf); in sigmadsp_write_i2c()
41 unsigned int addr, uint8_t data[], size_t len) in sigmadsp_read_i2c() argument
48 put_unaligned_be16(addr, buf); in sigmadsp_read_i2c()
50 msgs[0].addr = client->addr; in sigmadsp_read_i2c()
55 msgs[1].addr = client->addr; in sigmadsp_read_i2c()
/sound/ppc/
Dburgundy.c58 snd_pmac_burgundy_wcw(struct snd_pmac *chip, unsigned addr, unsigned val) in snd_pmac_burgundy_wcw() argument
60 out_le32(&chip->awacs->codec_ctrl, addr + 0x200c00 + (val & 0xff)); in snd_pmac_burgundy_wcw()
62 out_le32(&chip->awacs->codec_ctrl, addr + 0x200d00 +((val>>8) & 0xff)); in snd_pmac_burgundy_wcw()
64 out_le32(&chip->awacs->codec_ctrl, addr + 0x200e00 +((val>>16) & 0xff)); in snd_pmac_burgundy_wcw()
66 out_le32(&chip->awacs->codec_ctrl, addr + 0x200f00 +((val>>24) & 0xff)); in snd_pmac_burgundy_wcw()
71 snd_pmac_burgundy_rcw(struct snd_pmac *chip, unsigned addr) in snd_pmac_burgundy_rcw() argument
78 out_le32(&chip->awacs->codec_ctrl, addr + 0x100000); in snd_pmac_burgundy_rcw()
83 out_le32(&chip->awacs->codec_ctrl, addr + 0x100100); in snd_pmac_burgundy_rcw()
88 out_le32(&chip->awacs->codec_ctrl, addr + 0x100200); in snd_pmac_burgundy_rcw()
93 out_le32(&chip->awacs->codec_ctrl, addr + 0x100300); in snd_pmac_burgundy_rcw()
[all …]
/sound/soc/intel/baytrail/
Dsst-baytrail-dsp.c93 dsp->addr.iram_offset; in sst_byt_parse_module()
98 dsp->addr.dram_offset; in sst_byt_parse_module()
103 (dsp->addr.fw_ext - dsp->addr.lpe); in sst_byt_parse_module()
172 reg = readl(sst->addr.pci_cfg + i); in sst_byt_dump_shim()
215 memcpy_toio(sst->addr.lpe + SST_BYT_MAILBOX_OFFSET, in sst_byt_boot()
260 sst->addr.lpe_base = pdata->lpe_base; in sst_byt_resource_map()
261 sst->addr.lpe = ioremap(pdata->lpe_base, pdata->lpe_size); in sst_byt_resource_map()
262 if (!sst->addr.lpe) in sst_byt_resource_map()
266 sst->addr.pci_cfg = ioremap(pdata->pcicfg_base, pdata->pcicfg_size); in sst_byt_resource_map()
267 if (!sst->addr.pci_cfg) { in sst_byt_resource_map()
[all …]
/sound/isa/gus/
Dgus_io.c107 unsigned int addr, int w_16bit) in __snd_gf1_write_addr() argument
111 addr = ((addr >> 1) & ~0x0000000f) | (addr & 0x0000000f); in __snd_gf1_write_addr()
112 __snd_gf1_write8(gus, SNDRV_GF1_VB_UPPER_ADDRESS, (unsigned char) ((addr >> 26) & 0x03)); in __snd_gf1_write_addr()
114 addr = (addr & 0x00c0000f) | ((addr & 0x003ffff0) >> 1); in __snd_gf1_write_addr()
115 __snd_gf1_write16(gus, reg, (unsigned short) (addr >> 11)); in __snd_gf1_write_addr()
116 __snd_gf1_write16(gus, reg + 1, (unsigned short) (addr << 5)); in __snd_gf1_write_addr()
177 unsigned int addr, short w_16bit) in snd_gf1_write_addr() argument
179 __snd_gf1_write_addr(gus, reg, addr, w_16bit); in snd_gf1_write_addr()
260 unsigned int addr, short w_16bit)
265 __snd_gf1_write_addr(gus, reg, addr, w_16bit);
[all …]
Dgus_mixer.c75 #define ICS_DOUBLE(xname, xindex, addr) \ argument
79 .private_value = addr }
94 int addr = kcontrol->private_value & 0xff; in snd_ics_get_double() local
98 left = gus->gf1.ics_regs[addr][0]; in snd_ics_get_double()
99 right = gus->gf1.ics_regs[addr][1]; in snd_ics_get_double()
110 int addr = kcontrol->private_value & 0xff; in snd_ics_put_double() local
117 oval1 = gus->gf1.ics_regs[addr][0]; in snd_ics_put_double()
118 oval2 = gus->gf1.ics_regs[addr][1]; in snd_ics_put_double()
120 gus->gf1.ics_regs[addr][0] = val1; in snd_ics_put_double()
121 gus->gf1.ics_regs[addr][1] = val2; in snd_ics_put_double()
[all …]
Dgus_dma.c38 unsigned int addr, in snd_gf1_dma_program() argument
49 addr, buf_addr, count); in snd_gf1_dma_program()
53 address = addr >> 1; in snd_gf1_dma_program()
55 if (addr & 0x1f) { in snd_gf1_dma_program()
56 snd_printd("snd_gf1_dma_transfer: unaligned address (0x%x)?\n", addr); in snd_gf1_dma_program()
59 address = (addr & 0x000c0000) | ((addr & 0x0003ffff) >> 1); in snd_gf1_dma_program()
62 address = addr; in snd_gf1_dma_program()
144 snd_gf1_dma_program(gus, block->addr, block->buf_addr, block->count, (unsigned short) block->cmd); in snd_gf1_dma_interrupt()
149 block->addr, block->buf_addr, block->count, block->cmd); in snd_gf1_dma_interrupt()
212 block->addr, (long) block->buffer, block->count, in snd_gf1_dma_transfer_block()
[all …]
/sound/pci/trident/
Dtrident_memory.c37 #define __set_tlb_bus(trident,page,ptr,addr) \ argument
38 do { (trident)->tlb.entries[page] = cpu_to_le32((addr) & ~(SNDRV_TRIDENT_PAGE_SIZE-1)); \
50 #define set_tlb_bus(trident,page,ptr,addr) __set_tlb_bus(trident,page,ptr,addr) argument
52 …tlb_bus(trident, page, (unsigned long)trident->tlb.silent_page.area, trident->tlb.silent_page.addr)
73 unsigned long ptr, dma_addr_t addr) in set_tlb_bus() argument
76 __set_tlb_bus(trident, page, ptr, addr); in set_tlb_bus()
77 __set_tlb_bus(trident, page+1, ptr + SNDRV_TRIDENT_PAGE_SIZE, addr + SNDRV_TRIDENT_PAGE_SIZE); in set_tlb_bus()
82 …lb_bus(trident, page, (unsigned long)trident->tlb.silent_page.area, trident->tlb.silent_page.addr); in set_silent_tlb()
83 …_bus(trident, page+1, (unsigned long)trident->tlb.silent_page.area, trident->tlb.silent_page.addr); in set_silent_tlb()
103 unsigned long ptr, dma_addr_t addr) in set_tlb_bus() argument
[all …]
/sound/hda/
Dhdac_controller.c47 bus->corb.addr = bus->rb.addr; in snd_hdac_bus_init_cmd_io()
49 snd_hdac_chip_writel(bus, CORBLBASE, (u32)bus->corb.addr); in snd_hdac_bus_init_cmd_io()
50 snd_hdac_chip_writel(bus, CORBUBASE, upper_32_bits(bus->corb.addr)); in snd_hdac_bus_init_cmd_io()
66 bus->rirb.addr = bus->rb.addr + 2048; in snd_hdac_bus_init_cmd_io()
70 snd_hdac_chip_writel(bus, RIRBLBASE, (u32)bus->rirb.addr); in snd_hdac_bus_init_cmd_io()
71 snd_hdac_chip_writel(bus, RIRBUBASE, upper_32_bits(bus->rirb.addr)); in snd_hdac_bus_init_cmd_io()
124 unsigned int addr = cmd >> 28; in azx_command_addr() local
126 if (snd_BUG_ON(addr >= HDA_MAX_CODECS)) in azx_command_addr()
127 addr = 0; in azx_command_addr()
128 return addr; in azx_command_addr()
[all …]
Dhdac_bus.c68 int snd_hdac_bus_exec_verb(struct hdac_bus *bus, unsigned int addr, in snd_hdac_bus_exec_verb() argument
74 err = snd_hdac_bus_exec_verb_unlocked(bus, addr, cmd, res); in snd_hdac_bus_exec_verb()
88 int snd_hdac_bus_exec_verb_unlocked(struct hdac_bus *bus, unsigned int addr, in snd_hdac_bus_exec_verb_unlocked() argument
107 err = bus->ops->get_response(bus, addr, &tmp); in snd_hdac_bus_exec_verb_unlocked()
112 err = bus->ops->get_response(bus, addr, res); in snd_hdac_bus_exec_verb_unlocked()
113 trace_hda_get_response(bus, addr, *res); in snd_hdac_bus_exec_verb_unlocked()
186 if (bus->caddr_tbl[codec->addr]) { in snd_hdac_bus_add_device()
188 codec->addr); in snd_hdac_bus_add_device()
193 bus->caddr_tbl[codec->addr] = codec; in snd_hdac_bus_add_device()
194 set_bit(codec->addr, &bus->codec_powered); in snd_hdac_bus_add_device()
[all …]
/sound/pci/ctxfi/
Dctvmem.c66 block->addr = entry->addr; in get_vm_block()
69 entry->addr += size; in get_vm_block()
91 if (entry->addr >= (block->addr + block->size)) in put_vm_block()
98 if ((block->addr + block->size) == entry->addr) { in put_vm_block()
99 entry->addr = block->addr; in put_vm_block()
113 if ((pre_ent->addr + pre_ent->size) > entry->addr) in put_vm_block()
143 pte_start = (block->addr >> CT_PAGE_SHIFT); in ct_vm_map()
146 unsigned long addr; in ct_vm_map() local
147 addr = snd_pcm_sgbuf_get_addr(substream, i << CT_PAGE_SHIFT); in ct_vm_map()
148 ptp[pte_start + i] = addr; in ct_vm_map()
[all …]
/sound/hda/ext/
Dhdac_ext_bus.c28 static void hdac_ext_writel(u32 value, u32 __iomem *addr) in hdac_ext_writel() argument
30 writel(value, addr); in hdac_ext_writel()
33 static u32 hdac_ext_readl(u32 __iomem *addr) in hdac_ext_readl() argument
35 return readl(addr); in hdac_ext_readl()
38 static void hdac_ext_writew(u16 value, u16 __iomem *addr) in hdac_ext_writew() argument
40 writew(value, addr); in hdac_ext_writew()
43 static u16 hdac_ext_readw(u16 __iomem *addr) in hdac_ext_readw() argument
45 return readw(addr); in hdac_ext_readw()
48 static void hdac_ext_writeb(u8 value, u8 __iomem *addr) in hdac_ext_writeb() argument
50 writeb(value, addr); in hdac_ext_writeb()
[all …]
/sound/soc/samsung/
Di2s.c61 void __iomem *addr; member
116 u32 mod = readl(i2s->addr + I2SMOD); in is_slave()
128 active = readl(i2s->addr + I2SCON); in tx_active()
166 active = readl(i2s->addr + I2SCON) & CON_RXDMA_ACTIVE; in rx_active()
228 rfs = readl(i2s->addr + I2SMOD) >> i2s->variant_regs->rfs_off; in get_rfs()
246 u32 mod = readl(i2s->addr + I2SMOD); in set_rfs()
278 writel(mod, i2s->addr + I2SMOD); in set_rfs()
285 bfs = readl(i2s->addr + I2SMOD) >> i2s->variant_regs->bfs_off; in get_bfs()
304 u32 mod = readl(i2s->addr + I2SMOD); in set_bfs()
349 writel(mod, i2s->addr + I2SMOD); in set_bfs()
[all …]
/sound/firewire/bebob/
Dbebob_command.c93 avc_bridgeco_fill_extension_addr(u8 *buf, u8 *addr) in avc_bridgeco_fill_extension_addr() argument
95 buf[1] = addr[0]; in avc_bridgeco_fill_extension_addr()
96 memcpy(buf + 4, addr + 1, 5); in avc_bridgeco_fill_extension_addr()
100 avc_bridgeco_fill_plug_info_extension_command(u8 *buf, u8 *addr, in avc_bridgeco_fill_plug_info_extension_command() argument
106 avc_bridgeco_fill_extension_addr(buf, addr); in avc_bridgeco_fill_plug_info_extension_command()
111 u8 addr[AVC_BRIDGECO_ADDR_BYTES], in avc_bridgeco_get_plug_type()
122 avc_bridgeco_fill_plug_info_extension_command(buf, addr, 0x00); in avc_bridgeco_get_plug_type()
148 u8 addr[AVC_BRIDGECO_ADDR_BYTES], in avc_bridgeco_get_plug_ch_pos()
154 avc_bridgeco_fill_plug_info_extension_command(buf, addr, 0x03); in avc_bridgeco_get_plug_ch_pos()
180 u8 addr[AVC_BRIDGECO_ADDR_BYTES], in avc_bridgeco_get_plug_section_type()
[all …]
Dbebob_stream.c125 u8 addr[AVC_BRIDGECO_ADDR_BYTES], input[7]; in snd_bebob_stream_get_clock_src() local
164 avc_bridgeco_fill_msu_addr(addr, AVC_BRIDGECO_PLUG_DIR_IN, in snd_bebob_stream_get_clock_src()
166 err = avc_bridgeco_get_plug_input(bebob->unit, addr, input); in snd_bebob_stream_get_clock_src()
219 avc_bridgeco_fill_unit_addr(addr, in snd_bebob_stream_get_clock_src()
223 err = avc_bridgeco_get_plug_type(bebob->unit, addr, in snd_bebob_stream_get_clock_src()
261 u8 *buf, addr[AVC_BRIDGECO_ADDR_BYTES], type; in map_data_channels() local
278 avc_bridgeco_fill_unit_addr(addr, dir, AVC_BRIDGECO_PLUG_UNIT_ISOC, 0); in map_data_channels()
279 err = avc_bridgeco_get_plug_ch_pos(bebob->unit, addr, buf, 256); in map_data_channels()
298 avc_bridgeco_fill_unit_addr(addr, dir, in map_data_channels()
300 err = avc_bridgeco_get_plug_section_type(bebob->unit, addr, in map_data_channels()
[all …]
/sound/pci/oxygen/
Dxonar_dg.c84 int cs4245_read_spi(struct oxygen *chip, u8 addr) in cs4245_read_spi() argument
93 ((CS4245_SPI_ADDRESS | CS4245_SPI_WRITE) << 8) | addr); in cs4245_read_spi()
105 data->cs4245_shadow[addr] = oxygen_read8(chip, OXYGEN_SPI_DATA1); in cs4245_read_spi()
113 unsigned char addr; in cs4245_shadow_control() local
116 for (addr = 1; addr < ARRAY_SIZE(data->cs4245_shadow); addr++) { in cs4245_shadow_control()
118 cs4245_read_spi(chip, addr) : in cs4245_shadow_control()
119 cs4245_write_spi(chip, addr)); in cs4245_shadow_control()
288 unsigned int addr; in dump_cs4245_registers() local
292 for (addr = 1; addr < ARRAY_SIZE(data->cs4245_shadow); addr++) in dump_cs4245_registers()
293 snd_iprintf(buffer, " %02x", data->cs4245_shadow[addr]); in dump_cs4245_registers()
Doxygen_io.c30 return inb(chip->addr + reg); in oxygen_read8()
36 return inw(chip->addr + reg); in oxygen_read16()
42 return inl(chip->addr + reg); in oxygen_read32()
48 outb(value, chip->addr + reg); in oxygen_write8()
55 outw(value, chip->addr + reg); in oxygen_write16()
62 outl(value, chip->addr + reg); in oxygen_write32()
70 u8 tmp = inb(chip->addr + reg); in oxygen_write8_masked()
73 outb(tmp, chip->addr + reg); in oxygen_write8_masked()
81 u16 tmp = inw(chip->addr + reg); in oxygen_write16_masked()
84 outw(tmp, chip->addr + reg); in oxygen_write16_masked()
[all …]
/sound/oss/
Dhex2hex.c26 int addr; in loadhex() local
33 if (fscanf(inf, "%04x", &addr) != 1) in loadhex()
35 sum += addr/256; in loadhex()
36 sum += addr%256; in loadhex()
49 if (addr >= MAX_SIZE) in loadhex()
51 buf[addr++] = c; in loadhex()
52 if (addr > l) in loadhex()
53 l = addr; in loadhex()
/sound/core/
Dsgbuf.c48 if (!(sgbuf->table[i].addr & ~PAGE_MASK)) in snd_free_sgbuf_pages()
51 tmpb.addr = sgbuf->table[i].addr & PAGE_MASK; in snd_free_sgbuf_pages()
52 tmpb.bytes = (sgbuf->table[i].addr & ~PAGE_MASK) << PAGE_SHIFT; in snd_free_sgbuf_pages()
77 dmab->addr = 0; in snd_malloc_sgbuf_pages()
113 table->addr = tmpb.addr; in snd_malloc_sgbuf_pages()
115 table->addr |= chunk; /* mark head */ in snd_malloc_sgbuf_pages()
119 tmpb.addr += PAGE_SIZE; in snd_malloc_sgbuf_pages()
152 pg = sg->table[start].addr >> PAGE_SHIFT; in snd_sgbuf_get_chunk_size()
158 if ((sg->table[start].addr >> PAGE_SHIFT) != pg) in snd_sgbuf_get_chunk_size()
/sound/core/seq/
Dseq_ports.c68 if (port->addr.port == num) { in snd_seq_port_use_ptr()
88 num = pinfo->addr.port; in snd_seq_port_query_nearest()
92 if (port->addr.port < num) in snd_seq_port_query_nearest()
94 if (port->addr.port == num) { in snd_seq_port_query_nearest()
98 if (found == NULL || port->addr.port < found->addr.port) in snd_seq_port_query_nearest()
149 new_port->addr.client = client->number; in snd_seq_create_port()
150 new_port->addr.port = -1; in snd_seq_create_port()
162 if (p->addr.port > num) in snd_seq_create_port()
165 num = p->addr.port + 1; in snd_seq_create_port()
170 new_port->addr.port = num; /* store the port number in the port */ in snd_seq_create_port()
[all …]
/sound/pci/
Dsis7019.h209 #define SIS_PLAY_DMA_ADDR(addr, num) \ argument
210 ((num * SIS_PLAY_DMA_SIZE) + (addr) + SIS_PLAY_DMA_OFFSET)
234 #define SIS_CAPTURE_DMA_ADDR(addr, num) \ argument
235 ((num * SIS_CAPTURE_DMA_SIZE) + (addr) + SIS_CAPTURE_DMA_OFFSET)
282 #define SIS_MIXER_START_ADDR(addr, num) \ argument
283 ((num * SIS_MIXER_START_SIZE) + (addr) + SIS_MIXER_START_OFFSET)
290 #define SIS_MIXER_ADDR(addr, num) \ argument
291 ((num * SIS_MIXER_SIZE) + (addr) + SIS_MIXER_OFFSET)
320 #define SIS_WAVE_ADDR(addr, num) \ argument
321 ((num * SIS_WAVE_SIZE) + (addr) + SIS_WAVE_OFFSET)
/sound/i2c/other/
Dak4xxx-adda.c363 #define AK_COMPOSE(chip,addr,shift,mask) \ argument
364 (((chip) << 8) | (addr) | ((shift) << 16) | ((mask) << 24))
383 int addr = AK_GET_ADDR(kcontrol->private_value); in snd_akm4xxx_volume_get() local
385 ucontrol->value.integer.value[0] = snd_akm4xxx_get_vol(ak, chip, addr); in snd_akm4xxx_volume_get()
389 static int put_ak_reg(struct snd_kcontrol *kcontrol, int addr, in put_ak_reg() argument
396 if (snd_akm4xxx_get_vol(ak, chip, addr) == nval) in put_ak_reg()
399 snd_akm4xxx_set_vol(ak, chip, addr, nval); in put_ak_reg()
410 snd_akm4xxx_write(ak, chip, addr, nval); in put_ak_reg()
441 int addr = AK_GET_ADDR(kcontrol->private_value); in snd_akm4xxx_stereo_volume_get() local
443 ucontrol->value.integer.value[0] = snd_akm4xxx_get_vol(ak, chip, addr); in snd_akm4xxx_stereo_volume_get()
[all …]
/sound/soc/intel/common/
Dsst-dsp.c32 void sst_shim32_write(void __iomem *addr, u32 offset, u32 value) in sst_shim32_write() argument
34 writel(value, addr + offset); in sst_shim32_write()
38 u32 sst_shim32_read(void __iomem *addr, u32 offset) in sst_shim32_read() argument
40 return readl(addr + offset); in sst_shim32_read()
44 void sst_shim32_write64(void __iomem *addr, u32 offset, u64 value) in sst_shim32_write64() argument
46 memcpy_toio(addr + offset, &value, sizeof(value)); in sst_shim32_write64()
50 u64 sst_shim32_read64(void __iomem *addr, u32 offset) in sst_shim32_read64() argument
54 memcpy_fromio(&val, addr + offset, sizeof(val)); in sst_shim32_read64()
97 sst->ops->write(sst->addr.shim, offset, value); in sst_dsp_shim_write()
108 val = sst->ops->read(sst->addr.shim, offset); in sst_dsp_shim_read()
[all …]
/sound/soc/tegra/
Dtegra20_das.c51 u32 addr; in tegra20_das_connect_dap_to_dac() local
57 addr = TEGRA20_DAS_DAP_CTRL_SEL + in tegra20_das_connect_dap_to_dac()
61 tegra20_das_write(addr, reg); in tegra20_das_connect_dap_to_dac()
70 u32 addr; in tegra20_das_connect_dap_to_dap() local
76 addr = TEGRA20_DAS_DAP_CTRL_SEL + in tegra20_das_connect_dap_to_dap()
83 tegra20_das_write(addr, reg); in tegra20_das_connect_dap_to_dap()
91 u32 addr; in tegra20_das_connect_dac_to_dap() local
97 addr = TEGRA20_DAS_DAC_INPUT_DATA_CLK_SEL + in tegra20_das_connect_dac_to_dap()
103 tegra20_das_write(addr, reg); in tegra20_das_connect_dac_to_dap()

12345678910>>...13